Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion 404.html
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,6 @@
<ul class="nav-icons flex g-one-half">
<li>
<button class="theme-toggle" id="themeToggle" aria-label="Toggle Dark Mode">
<i class="fa-solid fa-moon" id="themeIcon" aria-hidden="true"></i>
</button>
</li>
<li><a href="search.html" class="icon" aria-label="Search"><i class="fa-solid fa-magnifying-glass" aria-hidden="true"></i></a></li>
Expand Down
1 change: 0 additions & 1 deletion Lighting.html
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,6 @@
<ul class="nav-icons flex g-one-half">
<li>
<button class="theme-toggle" id="themeToggle" aria-label="Toggle Dark Mode">
<i class="fa-solid fa-moon" id="themeIcon" aria-hidden="true"></i>
</button>
</li>
<li><a href="search.html" class="icon" aria-label="Search"><i class="fa-solid fa-magnifying-glass" aria-hidden="true"></i></a></li>
Expand Down
62 changes: 33 additions & 29 deletions about.html
Original file line number Diff line number Diff line change
Expand Up @@ -27,49 +27,53 @@
<body>
<header>
<nav class="navbar flex between wrapper">
<a href="index.html" class="logo">Furnix.</a>
<a href="index.html" class="logo">Furnix<span class="logo-dot">.</span></a>
<ul class="navList" id="list" aria-hidden="true">
<li class="nav-close-item"><button class="nav-close-btn" id="navClose" aria-label="Close menu">
<i class="fa-solid fa-xmark" aria-hidden="true"></i>
</button></li>
<li><a href="collections.html" class="link">collections</a></li>
<li><a href="furniture.html" class="link">furniture</a></li>
<li><a href="designers.html" class="link">designers</a></li>
<li><a href="trends.html" class="link">trends</a></li>
<li><a href="about.html" class="link">about us</a></li>
<li><a href="contact.html" class="link">contact us</a></li>
<li><a href="collections.html" class="link">Collections</a></li>
<li><a href="furniture.html" class="link">Furniture</a></li>
<li><a href="designers.html" class="link">Designers</a></li>
<li><a href="trends.html" class="link">Trends</a></li>
<li><a href="about.html" class="link">About Us</a></li>
<li><a href="contact.html" class="link">Contact Us</a></li>
<li class="nav-social-item"><ul class="footer-social-icon flex">
<li><a href="#" class="icon" aria-label="Facebook"><i class="fa-brands fa-facebook-f" aria-hidden="true"></i></a></li>
<li><a href="#" class="icon" aria-label="X"><i class="fa-brands fa-x-twitter" aria-hidden="true"></i></a></li>
<li><a href="#" class="icon" aria-label="Instagram"><i class="fa-brands fa-instagram" aria-hidden="true"></i></a></li>
<li><a href="#" class="icon" aria-label="Pinterest"><i class="fa-brands fa-pinterest-p" aria-hidden="true"></i></a></li>
</ul></li>
</ul>
<ul class="nav-icons flex g-one-half">
<li>
<button class="theme-toggle" id="themeToggle" aria-label="Toggle Dark Mode">
<i class="fa-solid fa-moon" id="themeIcon" aria-hidden="true"></i>
</button>
</li>
<li><a href="search.html" class="icon" aria-label="Search"><i class="fa-solid fa-magnifying-glass" aria-hidden="true"></i></a></li>
<li><a href="login.html" class="icon" aria-label="Account"><i class="fa-solid fa-user" aria-hidden="true"></i></a></li>
<li>
<a href="wishlist.html" class="icon nav-icon-wrapper" aria-label="Wishlist">
<i class="fa-solid fa-heart" aria-hidden="true"></i>
<span id="wishlist-badge" class="nav-badge">0</span>
</a>
</li>
<li>
<a href="cart.html" class="icon cart-nav-icon nav-icon-wrapper" aria-label="Cart">
<i class="fa-solid fa-shopping-bag" aria-hidden="true"></i>
<span id="cart-badge" class="nav-badge">0</span>
</a>
</li>
<li><a href="#" class="icon" id="menu" aria-label="Open menu" aria-controls="list" aria-expanded="false"><i class="fa-solid fa-bars" aria-hidden="true"></i></a></li>
</ul>
<div class="nav-right flex">
<div class="nav-divider"></div>
<ul class="nav-icons flex">
<li>
<button class="theme-toggle" id="themeToggle" aria-label="Filter & Settings">
</button>
</li>
<li><a href="search.html" class="icon" aria-label="Search"><i class="fa-solid fa-magnifying-glass" aria-hidden="true"></i></a></li>
<li><a href="login.html" class="icon" aria-label="Account"><i class="fa-solid fa-user" aria-hidden="true"></i></a></li>
<li>
<a href="wishlist.html" class="icon nav-icon-wrapper" aria-label="Wishlist">
<i class="fa-solid fa-heart" aria-hidden="true"></i>
<span id="wishlist-badge" class="nav-badge">0</span>
</a>
</li>
<li>
<a href="cart.html" class="icon cart-nav-icon nav-icon-wrapper" aria-label="Cart">
<i class="fa-solid fa-bag-shopping" aria-hidden="true"></i>
<span id="cart-badge" class="nav-badge">0</span>
</a>
</li>
<li><a href="#" class="icon" id="menu" aria-label="Open menu" aria-controls="list" aria-expanded="false"><i class="fa-solid fa-bars" aria-hidden="true"></i></a></li>
</ul>
</div>
</nav>
</header>



<main>
<!-- Page Header -->
<section class="wrapper about-hero">
Expand Down
1 change: 0 additions & 1 deletion accessories.html
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,6 @@
<ul class="nav-icons flex g-one-half">
<li>
<button class="theme-toggle" id="themeToggle" aria-label="Toggle Dark Mode">
<i class="fa-solid fa-moon" id="themeIcon" aria-hidden="true"></i>
</button>
</li>
<li><a href="search.html" class="icon" aria-label="Search"><i class="fa-solid fa-magnifying-glass" aria-hidden="true"></i></a></li>
Expand Down
135 changes: 93 additions & 42 deletions app.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,39 @@
// Navbar Scroll Listener & Active Link Handler
window.addEventListener("scroll", () => {
const header = document.querySelector("header");
if (header) {
if (window.scrollY > 20) {
header.classList.add("navbar-scrolled");
} else {
header.classList.remove("navbar-scrolled");
}
}
});

document.addEventListener("DOMContentLoaded", () => {
const links = document.querySelectorAll(".navList .link");
const currentPath = window.location.pathname.toLowerCase();

links.forEach((link) => {
const href = link.getAttribute("href");
if (!href) return;
const cleanHref = href.toLowerCase();

if (
(cleanHref !== "#" && currentPath.endsWith(cleanHref)) ||
(cleanHref === "index.html" && (currentPath.endsWith("/") || currentPath.endsWith("index.html") || currentPath === ""))
) {
link.classList.add("active");
link.setAttribute("aria-current", "page");
}
});
});

const menuBtn = document.getElementById("menu");
const navList = document.getElementById("list");
const navClose = document.getElementById("navClose");


if (menuBtn && navList) {
menuBtn.addEventListener("click", (e) => {
e.preventDefault();
Expand Down Expand Up @@ -976,55 +1008,74 @@ function shareProduct(title, urlEnding) {



/* ---- THEME TOGGLE LOGIC ---- */
document.addEventListener("DOMContentLoaded", () => {
const themeToggle = document.getElementById("themeToggle");
const themeIcon = document.getElementById("themeIcon");
/* ---- THEME TOGGLE LOGIC (Sun ↔ Moon animated switch) ---- */
(function () {
// Inline SVG markup for Sun and Moon — matches lucide-react icon paths
const SUN_SVG = `<svg class="ts-icon ts-sun" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
aria-hidden="true">
<circle cx="12" cy="12" r="4"/>
<line x1="12" y1="2" x2="12" y2="4"/>
<line x1="12" y1="20" x2="12" y2="22"/>
<line x1="4.22" y1="4.22" x2="5.64" y2="5.64"/>
<line x1="18.36" y1="18.36" x2="19.78" y2="19.78"/>
<line x1="2" y1="12" x2="4" y2="12"/>
<line x1="20" y1="12" x2="22" y2="12"/>
<line x1="4.22" y1="19.78" x2="5.64" y2="18.36"/>
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"/>
</svg>`;

const MOON_SVG = `<svg class="ts-icon ts-moon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
aria-hidden="true">
<path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"/>
</svg>`;

function injectIcons() {
document.querySelectorAll('.theme-toggle').forEach(function (btn) {
// Only inject once
if (btn.querySelector('.ts-sun')) return;
// Clear any existing children (FontAwesome icon etc.)
btn.innerHTML = SUN_SVG + MOON_SVG;
btn.setAttribute('aria-label', 'Toggle light / dark mode');
});
}

function applyTheme(theme) {
document.documentElement.setAttribute("data-theme", theme);
if (themeIcon) {
if (theme === "dark") {
themeIcon.classList.remove("fa-moon");
themeIcon.classList.add("fa-sun");
} else {
themeIcon.classList.remove("fa-sun");
themeIcon.classList.add("fa-moon");
}
}
document.documentElement.setAttribute('data-theme', theme);
document.documentElement.classList.toggle('dark', theme === 'dark');
// Update aria-pressed on all toggle buttons
document.querySelectorAll('.theme-toggle').forEach(function (btn) {
btn.setAttribute('aria-pressed', theme === 'dark' ? 'true' : 'false');
});
}

const currentTheme =
document.documentElement.getAttribute("data-theme") || "light";
applyTheme(currentTheme);

if (themeToggle) {
themeToggle.addEventListener("click", () => {
const current = document.documentElement.getAttribute("data-theme");
const next = current === "dark" ? "light" : "dark";

// Rotating icon animation
if (themeIcon) {
themeIcon.style.transform = "rotate(180deg) scale(0)";
themeIcon.style.transition = "transform 0.15s ease-in-out";

setTimeout(() => {
applyTheme(next);
localStorage.setItem("theme", next);

themeIcon.style.transform = "rotate(360deg) scale(1)";
setTimeout(() => {
themeIcon.style.transition = "";
themeIcon.style.transform = "";
}, 150);
}, 150);
} else {
function init() {
// Resolve initial theme (init-theme.js may have already set it)
const saved = localStorage.getItem('theme');
const prefersDark = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches;
const initial = saved || (prefersDark ? 'dark' : 'light');

injectIcons();
applyTheme(initial);

document.querySelectorAll('.theme-toggle').forEach(function (btn) {
btn.addEventListener('click', function () {
const current = document.documentElement.getAttribute('data-theme') || 'light';
const next = current === 'dark' ? 'light' : 'dark';
localStorage.setItem('theme', next);
applyTheme(next);
localStorage.setItem("theme", next);
}
});
});
}
});

if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', init);
} else {
init();
}
})();




Expand Down
64 changes: 34 additions & 30 deletions cart.html
Original file line number Diff line number Diff line change
Expand Up @@ -53,51 +53,55 @@ <h3>Order Placed Successfully!</h3>
</div>
</div>

<header>
<header>
<nav class="navbar flex between wrapper">
<a href="index.html" class="logo">Furnix.</a>
<a href="index.html" class="logo">Furnix<span class="logo-dot">.</span></a>
<ul class="navList" id="list" aria-hidden="true">
<li class="nav-close-item"><button class="nav-close-btn" id="navClose" aria-label="Close menu">
<i class="fa-solid fa-xmark" aria-hidden="true"></i>
</button></li>
<li><a href="collections.html" class="link">collections</a></li>
<li><a href="furniture.html" class="link">furniture</a></li>
<li><a href="designers.html" class="link">designers</a></li>
<li><a href="trends.html" class="link">trends</a></li>
<li><a href="about.html" class="link">about us</a></li>
<li><a href="contact.html" class="link">contact us</a></li>
<li><a href="collections.html" class="link">Collections</a></li>
<li><a href="furniture.html" class="link">Furniture</a></li>
<li><a href="designers.html" class="link">Designers</a></li>
<li><a href="trends.html" class="link">Trends</a></li>
<li><a href="about.html" class="link">About Us</a></li>
<li><a href="contact.html" class="link">Contact Us</a></li>
<li class="nav-social-item"><ul class="footer-social-icon flex">
<li><a href="#" class="icon" aria-label="Facebook"><i class="fa-brands fa-facebook-f" aria-hidden="true"></i></a></li>
<li><a href="#" class="icon" aria-label="X"><i class="fa-brands fa-x-twitter" aria-hidden="true"></i></a></li>
<li><a href="#" class="icon" aria-label="Instagram"><i class="fa-brands fa-instagram" aria-hidden="true"></i></a></li>
<li><a href="#" class="icon" aria-label="Pinterest"><i class="fa-brands fa-pinterest-p" aria-hidden="true"></i></a></li>
</ul></li>
</ul>
<ul class="nav-icons flex g-one-half">
<li>
<button class="theme-toggle" id="themeToggle" aria-label="Toggle Dark Mode">
<i class="fa-solid fa-moon" id="themeIcon" aria-hidden="true"></i>
</button>
</li>
<li><a href="search.html" class="icon" aria-label="Search"><i class="fa-solid fa-magnifying-glass" aria-hidden="true"></i></a></li>
<li><a href="login.html" class="icon" aria-label="Account"><i class="fa-solid fa-user" aria-hidden="true"></i></a></li>
<li>
<a href="wishlist.html" class="icon nav-icon-wrapper" aria-label="Wishlist">
<i class="fa-solid fa-heart" aria-hidden="true"></i>
<span id="wishlist-badge" class="nav-badge">0</span>
</a>
</li>
<li>
<a href="cart.html" class="icon cart-nav-icon nav-icon-wrapper" aria-label="Cart">
<i class="fa-solid fa-shopping-bag" aria-hidden="true"></i>
<span id="cart-badge" class="nav-badge">0</span>
</a>
</li>
<li><a href="#" class="icon" id="menu" aria-label="Open menu" aria-controls="list" aria-expanded="false"><i class="fa-solid fa-bars" aria-hidden="true"></i></a></li>
</ul>
<div class="nav-right flex">
<div class="nav-divider"></div>
<ul class="nav-icons flex">
<li>
<button class="theme-toggle" id="themeToggle" aria-label="Filter & Settings">
</button>
</li>
<li><a href="search.html" class="icon" aria-label="Search"><i class="fa-solid fa-magnifying-glass" aria-hidden="true"></i></a></li>
<li><a href="login.html" class="icon" aria-label="Account"><i class="fa-solid fa-user" aria-hidden="true"></i></a></li>
<li>
<a href="wishlist.html" class="icon nav-icon-wrapper" aria-label="Wishlist">
<i class="fa-solid fa-heart" aria-hidden="true"></i>
<span id="wishlist-badge" class="nav-badge">0</span>
</a>
</li>
<li>
<a href="cart.html" class="icon cart-nav-icon nav-icon-wrapper" aria-label="Cart">
<i class="fa-solid fa-bag-shopping" aria-hidden="true"></i>
<span id="cart-badge" class="nav-badge">0</span>
</a>
</li>
<li><a href="#" class="icon" id="menu" aria-label="Open menu" aria-controls="list" aria-expanded="false"><i class="fa-solid fa-bars" aria-hidden="true"></i></a></li>
</ul>
</div>
</nav>
</header>



<main>
<section class="wrapper page-section">

Expand Down
Loading