Compare commits

..

2 Commits

Author SHA1 Message Date
Goutam cc65a42f89 Updated CSS styles 2026-05-01 13:05:11 +05:30
Goutam 70d76e1881 Updated CSS styles 2026-05-01 12:17:59 +05:30
3 changed files with 668 additions and 25 deletions
+50 -15
View File
@@ -1,11 +1,20 @@
'use client'; 'use client';
import { useState } from 'react'; import { useEffect, useState } from 'react';
import Link from 'next/link'; import Link from 'next/link';
import Image from 'next/image'; import Image from 'next/image';
export default function Header() { export default function Header() {
const [open, setOpen] = useState(false); const [open, setOpen] = useState(false);
const [navOpen, setNavOpen] = useState(false);
useEffect(() => {
const lock = open || navOpen;
document.body.style.overflow = lock ? 'hidden' : '';
return () => { document.body.style.overflow = ''; };
}, [open, navOpen]);
const closeAll = () => { setOpen(false); setNavOpen(false); };
return ( return (
<> <>
@@ -13,46 +22,72 @@ export default function Header() {
<div className="container"> <div className="container">
<div className="ux-navbar"> <div className="ux-navbar">
<Link href="/"> <Link href="/" className="ux-brand" onClick={closeAll}>
<Image <Image
src="/assets/images/footerlogo.png" src="/assets/images/footerlogo.png"
alt="Logo" alt="Logo"
width={120} width={120}
height={40} height={40}
priority
/> />
</Link> </Link>
<ul className="ux-nav"> <ul className={`ux-nav ${navOpen ? 'is-open' : ''}`}>
<li><Link href="/work">Work</Link></li> <li><Link href="/work" onClick={closeAll}>Work</Link></li>
<li><Link href="/services">Services</Link></li> <li><Link href="/services" onClick={closeAll}>Services</Link></li>
<li><Link href="/about">About</Link></li> <li><Link href="/about" onClick={closeAll}>About</Link></li>
<li><Link href="/process">Process</Link></li> <li><Link href="/process" onClick={closeAll}>Process</Link></li>
{/* ⚠️ FIX */}
<li className="ux-nav-cta"> <li className="ux-nav-cta">
<Link href="/start_project">Start a Project</Link> <Link href="/start_project" onClick={closeAll}>Start a Project</Link>
</li> </li>
</ul> </ul>
{/* TOGGLE BUTTON */} <div className="ux-header-actions">
<div <button
className="ux-menu" type="button"
onClick={() => setOpen(!open)} className={`ux-hamburger ${navOpen ? 'is-active' : ''}`}
aria-label="Toggle navigation"
aria-expanded={navOpen}
onClick={() => { setNavOpen(!navOpen); setOpen(false); }}
>
<span></span><span></span><span></span>
</button>
<button
type="button"
className={`ux-menu ${open ? 'active' : ''}`}
aria-label="Toggle contact panel"
aria-expanded={open}
onClick={() => { setOpen(!open); setNavOpen(false); }}
> >
<Image <Image
className="icon open-icon" className="icon open-icon"
src="/assets/images/menutoggle.svg" src="/assets/images/menutoggle.svg"
alt="menu" alt=""
width={30} width={30}
height={30} height={30}
/> />
<Image
className="icon close-icon"
src="/assets/images/closetoggle.svg"
alt=""
width={30}
height={30}
/>
</button>
</div> </div>
</div> </div>
</div> </div>
</header> </header>
{/* RIGHT PANEL */} <div
className={`ux-overlay ${(open || navOpen) ? 'active' : ''}`}
onClick={closeAll}
aria-hidden="true"
/>
<div className={`contact-panel ${open ? 'active' : ''}`}> <div className={`contact-panel ${open ? 'active' : ''}`}>
<h4> <h4>
<Image src="/assets/images/hello.svg" alt="hello" width={24} height={24} /> <Image src="/assets/images/hello.svg" alt="hello" width={24} height={24} />
+601
View File
@@ -0,0 +1,601 @@
/* ==========================================================================
AAideA — Responsive Stylesheet
Mobile-first overrides on top of style.css.
Breakpoints (Bootstrap 5 aligned):
xs : < 576px (default / mobile)
sm : >= 576px
md : >= 768px
lg : >= 992px
xl : >= 1200px
xxl: >= 1400px
========================================================================== */
/* ---------------- GLOBAL TOKENS & BASE ---------------- */
:root {
--ux-radius: 14px;
--ux-gap: clamp(12px, 2vw, 24px);
--ux-section-y: clamp(48px, 8vw, 110px);
--ux-container-x: clamp(16px, 4vw, 32px);
--ux-tap: 44px;
}
html { -webkit-text-size-adjust: 100%; }
body { overflow-x: hidden; }
img, svg, video { max-width: 100%; height: auto; }
* { box-sizing: border-box; }
.container, .container-fluid {
padding-left: var(--ux-container-x);
padding-right: var(--ux-container-x);
}
/* Touch-friendly defaults: every interactive element gets minimum 44px tap target */
.ux-btn-primary,
.ux-btn-secondary,
.ux-footer-cta-btn,
.ux-result-btn,
button,
a.btn {
min-height: var(--ux-tap);
display: inline-flex;
align-items: center;
justify-content: center;
}
.ux-input,
.ux-textarea {
width: 100%;
font-size: 16px; /* prevent iOS zoom on focus */
}
/* ============================================================
HEADER + MOBILE NAVIGATION
============================================================ */
.ux-header { padding: 14px 0; }
.ux-navbar {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
padding: 12px 16px;
flex-wrap: nowrap;
}
.ux-navbar img { width: auto; height: auto; max-width: 110px; }
.ux-brand { display: inline-flex; align-items: center; }
.ux-header-actions {
display: flex;
align-items: center;
gap: 10px;
}
/* HAMBURGER (mobile only by default) */
.ux-hamburger {
width: 40px;
height: 40px;
display: inline-flex;
flex-direction: column;
justify-content: center;
align-items: center;
gap: 5px;
background: transparent;
border: 1px solid rgba(255,255,255,0.18);
border-radius: 10px;
padding: 0;
cursor: pointer;
}
.ux-hamburger span {
display: block;
width: 20px;
height: 2px;
background: #fff;
border-radius: 2px;
transition: transform .25s ease, opacity .2s ease;
}
.ux-hamburger.is-active span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.ux-hamburger.is-active span:nth-child(2) { opacity: 0; }
.ux-hamburger.is-active span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
/* CONTACT TOGGLE: hide the close icon by default and reveal when active */
.ux-menu { width: 40px; height: 40px; background: transparent; border: 0; padding: 0; }
.ux-menu .icon {/* width: 100%; *//* height: 100%; */}
.ux-menu .close-icon { opacity: 0; transform: rotate(90deg); }
.ux-menu.active .open-icon { opacity: 0; transform: rotate(90deg); }
.ux-menu.active .close-icon { opacity: 1; transform: rotate(0); }
/* OVERLAY (shared by mobile nav + contact panel on small screens) */
.ux-overlay {
position: fixed;
inset: 0;
background: rgba(0,0,0,0.55);
opacity: 0;
pointer-events: none;
transition: opacity .3s ease;
z-index: 0;
}
.ux-overlay.active { opacity: 1; pointer-events: auto; }
/* MOBILE NAV DRAWER (default = mobile) */
.ux-nav {
position: fixed;
top: 0;
right: 0;
width: min(82vw, 320px);
height: 100dvh;
background: #0e1414;
flex-direction: column;
gap: 6px;
padding: 88px 24px 32px;
margin: 0;
list-style: none;
transform: translateX(100%);
transition: transform .35s ease;
z-index: 95;
box-shadow: -10px 0 40px rgba(0,0,0,0.45);
overflow-y: auto;
}
.ux-nav.is-open { transform: translateX(0); }
.ux-nav li {/* width: 100%; */}
.ux-nav li a {
display: flex;
align-items: center;
width: 100%;
padding: 14px 8px;
font-size: 17px;
color: #fff;
border-bottom: 1px solid rgba(255,255,255,0.06);
text-decoration: none;
min-height: var(--ux-tap);
}
.ux-nav .ux-nav-cta a {
margin-top: 12px;
background: var(--primary);
color: #000 !important;
border-radius: 30px;
justify-content: center;
border: 0;
padding: 12px 22px;
font-weight: 600;
}
/* CONTACT PANEL: full-width sheet on mobile */
.contact-panel {
top: 0;
right: -100%;
width: min(88vw, 360px);
height: 100dvh;
border-radius: 0;
padding: 80px 22px 24px;
overflow-y: auto;
z-index: 96;
}
.contact-panel.active { right: 0; }
.contact-panel .images { flex-wrap: wrap; }
.contact-panel .images img { width: 72px; height: 72px; }
/* ============================================================
HERO
============================================================ */
.ux-hero-section {
padding: 120px 0 40px;
background-size: cover;
background-position: center top;
}
.ux-hero-title { font-size: clamp(28px, 7vw, 52px); }
.ux-hero-subtitle { width: 100%; font-size: 15px; }
.ux-hero-actions {
flex-wrap: wrap;
gap: 12px;
margin-top: 28px;
}
.ux-hero-actions .btn {/* width: 100%; */max-width: 320px;}
.ux-bottom-wrapper { margin-top: 40px; }
.ux-bottom-wrapper .ux-img-card img { width: 100%; }
.ux-stat-box { padding: 24px 20px; }
.ux-counter { font-size: 32px; }
.ux-dark h2 { font-size: 28px; }
.ux-dark h5,
.ux-dark p {font-size: 21px;line-height: 1.45;}
.ux-about-img{
margin: 0 0 20px;
}
/* ============================================================
ABOUT SECTION
============================================================ */
.ux-about-section { padding: var(--ux-section-y) 0; }
.ux-section-label {/* width: 100%; */}
.ux-main-heading { font-size: clamp(20px, 4vw, 32px); }
.ux-sub-heading { font-size: 16px; }
.ux-big-counter { font-size: clamp(40px, 10vw, 70px); }
.ux-small-text { width: 100%; }
.ux-about-img { height: auto; max-height: 280px; }
.ux-card-text { max-width: 100%; }
/* PARTNERS */
.partners-wrapper {
grid-template-columns: repeat(2, 1fr);
gap: 8px;
}
.partner-item { height: 80px; }
.partner-item img { max-width: 90px; }
/* ============================================================
WORK / SWIPER
============================================================ */
.ux-work-section { padding: 30px 0 50px; }
.ux-work-card img { height: auto; max-height: 240px; }
.ux-work-card h4 { font-size: 17px; }
.displayflexhead {
width: 100%;
flex-direction: column;
gap: 10px;
}
.ux-swiper-nav { gap: 10px; }
.ux-swiper-nav .ux-arrow {
width: 70px;
height: 40px;
display: inline-flex;
align-items: center;
justify-content: center;
}
/* ============================================================
WHY SECTION
============================================================ */
.ux-why-section { padding: var(--ux-section-y) 0; }
.ux-why-img img { height: auto; max-height: 260px; }
.ux-why-card { padding: 22px 20px; }
.main-headingexit { width: 100%; }
/* ============================================================
BUILD / SELL SECTION
============================================================ */
.ux-build-section { padding: var(--ux-section-y) 0; background-size: cover; }
.ux-build-card { padding: 26px 22px; }
.ux-build-card h5 {}
.ux-build-card p {}
.ux-build-swiper .swiper-slide { width: 86%; }
/* ============================================================
PROCESS SECTION
============================================================ */
.ux-process-section { padding: var(--ux-section-y) 0; }
.ux-process-card {/* width: 100%; *//* padding: 24px 22px; */}
.ux-step-arrow { display: none; }
/* ============================================================
FOOTER CTA + MAIN FOOTER
============================================================ */
.ux-footer-hero { padding: 60px 0; background-size: cover; background-position: center; }
.ux-footer-title { font-size: clamp(22px, 5vw, 30px); }
.ux-footer-cta-btn {
font-size: 16px;
padding: 6px 6px 6px 22px;
}
.ux-footer-cta-btn .ux-btn-icon { width: 38px; height: 38px; }
.ux-footer-grid {
grid-template-columns: 1fr;
border-left: 0;
border-right: 0;
}
.ux-footer-left {
padding: 32px 22px;
border-right: 0;
border-bottom: 1px solid rgba(255,255,255,0.08);
}
.ux-footer-desc { max-width: 100%; font-size: 15px; line-height: 1.7; }
.ux-footer-right { grid-template-columns: repeat(2, 1fr); }
.ux-footer-links { padding: 26px 22px; }
.ux-footer-links h6 { font-size: 16px; margin-bottom: 12px; }
.ux-footer-links a { font-size: 14px; margin-bottom: 10px; }
.ux-footer-bottom {
flex-direction: column;
align-items: flex-start;
padding: 18px 22px;
gap: 14px;
text-align: left;
}
.ux-footer-bottom p { font-size: 13px; }
.ux-footer-social { gap: 14px; flex-wrap: wrap; }
/* ============================================================
START PROJECT / BREADCRUMB HERO
============================================================ */
.ux-project-hero { padding: 130px 0 60px; background-size: cover; }
.ux-project-title { font-size: clamp(26px, 6vw, 50px); }
.ux-project-subtitle { font-size: 15px; }
.ux-breadcrumb-wrap { margin-bottom: 36px; flex-wrap: wrap; }
.ux-joined-box {
position: static;
margin: 30px auto 0;
justify-content: center;
flex-wrap: wrap;
}
.ux-avatar-group img { width: 48px; height: 48px; border-width: 2px; margin-left: -10px; }
/* CONTACT FORM */
.ux-contact-section { padding: 50px 0; }
.ux-contact-left,
.ux-contact-box {}
.ux-contact-email { font-size: clamp(24px, 6vw, 35px); margin-bottom: 36px; }
.ux-contact-link { font-size: 18px; }
.ux-contact-title { font-size: clamp(20px, 4vw, 26px); margin-bottom: 24px; }
.ux-input {}
.ux-textarea { font-size: 16px; padding: 16px 18px; }
/* CASE ACCORDION */
.ux-case-section { padding: 50px 0; }
.ux-case-btn { padding: 22px 22px !important; flex-wrap: wrap; gap: 10px; }
.ux-case-head {/* width: 100%; */}
.ux-case-head h3 { font-size: clamp(20px, 5vw, 29px); }
.ux-case-head p { font-size: 15px; }
.ux-case-right { padding-right: 0; margin-left: 0; }
.ux-case-body { padding: 0 18px 24px !important; }
.ux-case-inner {
grid-template-columns: 1fr;
gap: 18px;
padding: 18px;
}
.ux-case-img { height: auto; max-height: 220px; }
.ux-case-grid { grid-template-columns: 1fr; gap: 18px; }
.ux-case-grid strong { font-size: 17px; }
/* RESULT / DELIVER */
.ux-result-section { padding: 50px 0; }
.ux-result-box {
grid-template-columns: 1fr;
margin-bottom: 50px;
padding: 26px;
}
.ux-result-left { padding-right: 0; border-right: 0; padding-bottom: 22px; border-bottom: 1px solid #e3e3e3; }
.ux-result-right { padding-left: 0; padding-top: 22px; }
.ux-build-grid { grid-template-columns: repeat(2, 1fr); }
.ux-ai-grid { grid-template-columns: 1fr; }
.ux-mini-card { min-height: auto; }
.ux-mini-card span { font-size: 32px; top: 8px; right: 12px; }
.ux-mini-card p { margin-top: 56px; font-size: 14px; }
.ux-deliver-box {
grid-template-columns: 1fr;
gap: 24px;
padding: 26px;
}
.ux-deliver-center img { height: auto; max-height: 240px; }
/* ============================================================
PROCESS STEP CARD
============================================================ */
.ux-process-step-section { padding: 50px 0; }
.ux-process-step-box { padding: 24px 22px; margin: 0 0 28px; }
.ux-process-title { font-size: clamp(20px, 5vw, 28px); }
.ux-process-grid { grid-template-columns: 1fr; gap: 24px; }
.ux-process-image img { height: auto; max-height: 280px; }
.ux-process-content { padding-right: 0; }
.ux-process-item { margin-bottom: 22px; }
/* SYSTEMS WRAPPER */
.systems-wrapper {
flex-direction: column;
gap: 30px;
padding: 40px 0;
}
.systems-left,
.systems-right { width: 100%; }
.systems-left { position: static; }
.systems-left .desc { width: 100%; }
.system-card { padding: 22px; }
.system-card ul { grid-template-columns: 1fr; }
/* CONNECT SECTION (FLOW) */
.connect-section { padding: 50px 0 30px; }
.connect-section h2 { font-size: clamp(22px, 5vw, 30px); }
.connect-flow { gap: 8px; }
.flow-item { padding: 8px 18px 8px 8px; font-size: 13px; }
.arrow { display: none; }
.bottom-text { font-size: 17px; margin: 30px auto; }
/* APPROACH / DELIVER */
.ux-approach-section { padding: 60px 0; }
.ux-section-desc { font-size: 16px; margin-left: 0; max-width: 100%; }
.ux-card { padding: 22px 20px; }
.ux-card-top { margin-bottom: 22px; }
.ux-card h4 { font-size: 19px; }
.ux-deliver-section { padding: 30px 0 60px; }
.ux-snapshot-box { padding: 28px 24px; }
.ux-snapshot-box h2 { font-size: clamp(30px, 8vw, 48px); }
.ux-snapshot-box p { font-size: 17px; }
/* GROWTH SECTION */
.ux-growth-section { margin: 24px auto; padding: 30px 0; }
.ux-growth-title { font-size: clamp(22px, 5vw, 30px); }
.ux-growth-bottom { font-size: 17px; }
/* BREACAMP OFFLINE TEXT BLOCK */
.breacampoffline {
flex-direction: column;
gap: 14px;
margin: 30px auto 0;
align-items: stretch;
}
.breacampoffline p { width: 100%; }
/* ==========================================================================
>= 576px (sm)
========================================================================== */
@media (min-width: 576px) {
.ux-hero-actions .btn { width: auto; }
.partners-wrapper { grid-template-columns: repeat(3, 1fr); }
.ux-build-grid { grid-template-columns: repeat(2, 1fr); }
.ux-ai-grid { grid-template-columns: repeat(2, 1fr); }
.ux-footer-right { grid-template-columns: repeat(3, 1fr); }
.ux-build-swiper .swiper-slide { width: 60%; }
}
/* ==========================================================================
>= 768px (md / tablet)
========================================================================== */
@media (min-width: 768px) {
.ux-header { padding: 18px 0; }
.ux-navbar { padding: 14px 22px; }
.ux-hero-section { padding: 160px 0 50px; }
.ux-hero-subtitle { width: 80%; }
.partners-wrapper { grid-template-columns: repeat(4, 1fr); }
.partner-item { height: 90px; }
.ux-case-inner { grid-template-columns: 280px 1fr; }
.ux-case-grid { grid-template-columns: repeat(2, 1fr); }
.ux-result-box { grid-template-columns: 1.3fr .9fr; }
.ux-result-left {
padding-right: 26px;
padding-bottom: 0;
border-right: 1px solid #e3e3e3;
border-bottom: 0;
}
.ux-result-right { padding-left: 30px; padding-top: 0; }
.ux-build-grid { grid-template-columns: repeat(3, 1fr); }
.ux-ai-grid { grid-template-columns: repeat(3, 1fr); }
.ux-deliver-box { grid-template-columns: .9fr 1fr .8fr; }
.ux-process-grid { grid-template-columns: 1fr 1fr; }
.ux-footer-grid { grid-template-columns: 1.1fr 1fr; }
.ux-footer-left {
padding: 38px 32px;
border-right: 1px solid rgba(255,255,255,0.08);
border-bottom: 0;
}
.ux-footer-bottom {
flex-direction: row;
align-items: center;
text-align: left;
padding: 18px 28px;
}
.systems-wrapper { padding: 60px 0; }
.ux-build-swiper .swiper-slide { width: 45%; }
}
/* ==========================================================================
>= 992px (lg / desktop) — restore original desktop nav
========================================================================== */
@media (min-width: 992px) {
.ux-header { padding: 20px 0; }
.ux-navbar { padding: 15px 25px; }
.ux-hamburger { display: none; }
.ux-nav {
position: static;
width: auto;
height: auto;
background: transparent;
flex-direction: row;
gap: 30px;
padding: 0;
transform: none;
box-shadow: none;
overflow: visible;
}
.ux-nav li a {
padding: 0;
border-bottom: 0;
font-size: 16px;
min-height: auto;
}
.ux-nav .ux-nav-cta a {
margin-top: 0;
background: transparent;
color: var(--primary) !important;
padding: 0;
font-weight: 400;
}
/* Contact panel returns to floating card */
.contact-panel {
top: 100px;
right: -350px;
width: 320px;
height: auto;
border-radius: 12px;
padding: 20px;
}
.contact-panel.active { right: 40px; }
.ux-overlay { display: none; }
.ux-hero-section { padding: 200px 0 60px; }
.ux-hero-subtitle { width: 60%; }
.partners-wrapper { grid-template-columns: repeat(6, 1fr); }
.partner-item { height: 100px; }
.partner-item img { max-width: 120px; }
.ux-build-grid { grid-template-columns: repeat(4, 1fr); }
.ux-build-swiper .swiper-slide { width: 330px; }
.ux-joined-box {
position: absolute;
right: 8%;
bottom: 50px;
margin: 0;
flex-wrap: nowrap;
}
.ux-avatar-group img { width: 64px; height: 64px; border-width: 3px; margin-left: -14px; }
.ux-step-arrow { display: block; }
.systems-wrapper {
flex-direction: row;
gap: 80px;
padding: 80px 20px;
}
.systems-left { width: 45%; position: sticky; top: 90px; }
.systems-right { width: 65%; }
.systems-left .desc { width: 70%; }
.system-card ul { grid-template-columns: 1fr 1fr; }
.breacampoffline {
flex-direction: row;
align-items: self-start;
gap: 20px;
justify-content: center;
}
.breacampoffline p { width: 33%; }
.displayflexhead { flex-direction: row; width: 62%; gap: 0; }
.arrow { display: inline; }
.flow-item { padding: 10px 40px 10px 10px; font-size: 14px; }
}
/* ==========================================================================
>= 1200px (xl)
========================================================================== */
@media (min-width: 1200px) {
.ux-hero-section { padding: 200px 0 60px; }
.ux-project-hero { padding: 190px 0 100px; }
}
/* ==========================================================================
Reduced motion respect
========================================================================== */
@media (prefers-reduced-motion: reduce) {
.ux-nav,
.contact-panel,
.ux-overlay,
.ux-hamburger span,
.ux-menu .icon { transition: none !important; }
}
+9 -2
View File
@@ -428,6 +428,7 @@ h2 {
.ux-process-card img { .ux-process-card img {
border-radius: 12px; border-radius: 12px;
margin-top: 20px; margin-top: 20px;
width: 100%;
} }
/* STEP TEXT */ /* STEP TEXT */
@@ -436,6 +437,7 @@ h2 {
font-weight: 700; font-weight: 700;
display: block; display: block;
margin-bottom: 10px; margin-bottom: 10px;
color: white;
-webkit-text-stroke: 1px #DEDEDE; -webkit-text-stroke: 1px #DEDEDE;
} }
@@ -1008,7 +1010,7 @@ h2 {
right:16px; right:16px;
font-size:46px; font-size:46px;
font-weight:700; font-weight:700;
/* color:#ececec; */ color: white;
-webkit-text-stroke: 1px #DEDEDE; -webkit-text-stroke: 1px #DEDEDE;
} }
@@ -1101,7 +1103,7 @@ h2 {
line-height:1; line-height:1;
margin-bottom:8px; margin-bottom:8px;
-webkit-text-stroke: 1px #DEDEDE; -webkit-text-stroke: 1px #DEDEDE;
color: snow; color: white;
} }
/* TITLE */ /* TITLE */
@@ -1175,6 +1177,7 @@ h2 {
} }
.breacampoffline p { .breacampoffline p {
width: 33%; width: 33%;
color: white;
} }
.breacampoffline { .breacampoffline {
display: flex; display: flex;
@@ -1816,3 +1819,7 @@ h2 {
width: auto; width: auto;
height: auto; height: auto;
} }
.ux-footer-social img {
width: 19px;
height: 19px;
}