WaveslabJS Documentation
Welcome to the WaveslabJS documentation. This modern frontend library helps you build responsive websites quickly with powerful components. Download a Sample Website built using it or visit
Installation
Install WaveslabJS using npm:
npm
npm install waveslabjs
Project Setup
Basic project structure for using WaveslabJS:
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>WaveslabJS App</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<div id="app"></div>
<script type="module" src="script.js"></script>
</body>
</html>
Core Components
WaveslabJS provides several ready-to-use components:
Header Component
JavaScript
const header = waves.createheader("My App", {
"Home": "/",
"About": "#about",
"Contact": "#contact"
});
Footer Component
JavaScript
const footer = waves.createfooter("My App", {
"Company": [
{ "About": "#about" },
{ "Careers": "#careers" }
],
"Legal": [
{ "Privacy": "#privacy" }
]
});
Hero Section
JavaScript
let page = new Page();
page.createhero({
"title": "Welcome to My App",
"p": "Building modern web applications with ease",
"img": "hero-image.jpg",
"buttons": {
"Get Started": "#start",
"Learn More": "#learn"
}
});
Features Section
JavaScript
page.createfeatures({
"title": "Key Features",
"p": "What makes us special",
"cards": [
{
"i": "fas fa-rocket",
"h": "Fast Performance",
"p": "Optimized for speed"
},
{
"i": "fas fa-mobile",
"h": "Responsive",
"p": "Works on all devices"
}
]
});
Custom Styling
All WaveslabJS components can be styled with custom CSS:
Component Styling
JavaScript
// Hero with custom styles
page.createhero({
// content...
}, {
"background": "#f8f9fa",
"padding": "4rem 0",
"border-radius": "8px"
});
// Features with custom styles
page.createfeatures({
// content...
}, {
"background": "#ffffff",
"padding": "3rem 0"
});
Global CSS
CSS
/* Base styles */
:root {
--primary-color: #4d84ff;
--secondary-color: #6c757d;
}
/* Custom header styles */
.waves-header {
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}
/* Custom button styles */
.waves-btn {
transition: all 0.3s ease;
}
Routing System
WaveslabJS includes a simple routing system:
Setting Up Routes
JavaScript
// Define pages
const pages = {
"Home": {
"desc": "Welcome page",
"#": "home"
},
"About": {
"desc": "About us",
"#": "about"
}
};
// Set up routes
waves.setRoutes(pages);
// Handle routes
waves.routes.get("Home", (res, err) => {
res.send(homePage.render());
});
waves.routes.get("About", (res, err) => {
res.send(aboutPage.render());
});
Static Header & Footer
JavaScript
// Create header and footer
const header = waves.createheader(...);
const footer = waves.createfooter(...);
// Set them as static across all pages
waves.statichnf(header, footer);