Initial commit

This commit is contained in:
dk
2026-03-14 10:59:14 +00:00
commit d6939c24ea
632 changed files with 79589 additions and 0 deletions

149
src/app/about/page.tsx Normal file
View File

@@ -0,0 +1,149 @@
"use client";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import Link from "next/link";
import NavbarLayoutFloatingOverlay from "@/components/navbar/NavbarLayoutFloatingOverlay/NavbarLayoutFloatingOverlay";
import HeroBillboardRotatedCarousel from "@/components/sections/hero/HeroBillboardRotatedCarousel";
import TextAbout from "@/components/sections/about/TextAbout";
import FooterLogoEmphasis from "@/components/sections/footer/FooterLogoEmphasis";
import { BookOpen, Award } from "lucide-react";
export default function AboutPage() {
const navItems = [
{ name: "Home", id: "home" },
{ name: "About", id: "about" },
{ name: "Academics", id: "academics" },
{ name: "Staff", id: "staff" },
{ name: "Admissions", id: "admissions" },
];
const footerColumns = [
{
items: [
{ label: "Home", href: "/" },
{ label: "About", href: "/about" },
{ label: "Academics", href: "/academics" },
{ label: "Staff", href: "/staff" },
],
},
{
items: [
{ label: "Admissions", href: "/admissions" },
{ label: "Student Life", href: "#" },
{ label: "Events", href: "#" },
{ label: "News", href: "#" },
],
},
{
items: [
{ label: "Contact Us", href: "#" },
{ label: "Location", href: "#" },
{ label: "Phone", href: "#" },
{ label: "Email", href: "#" },
],
},
{
items: [
{ label: "Privacy Policy", href: "#" },
{ label: "Terms of Service", href: "#" },
{ label: "Careers", href: "#" },
{ label: "Partners", href: "#" },
],
},
];
return (
<ThemeProvider
defaultButtonVariant="text-shift"
defaultTextAnimation="entrance-slide"
borderRadius="rounded"
contentWidth="compact"
sizing="largeSmallSizeLargeTitles"
background="floatingGradient"
cardStyle="subtle-shadow"
primaryButtonStyle="radial-glow"
secondaryButtonStyle="layered"
headingFontWeight="light"
>
<div id="nav" data-section="nav">
<NavbarLayoutFloatingOverlay
brandName="Gamo Bayra"
navItems={navItems}
button={{
text: "Enroll Now",
href: "/admissions",
}}
/>
</div>
<div id="hero-about" data-section="hero-about">
<HeroBillboardRotatedCarousel
title="Our Heritage and Mission"
description="For nearly five decades, Gamo Bayra has been a beacon of educational excellence, nurturing generations of leaders who have positively impacted their communities and the nation."
tag="Our Journey"
tagIcon={BookOpen}
tagAnimation="slide-up"
buttons={[{ text: "Back to Home", href: "/" }]}
buttonAnimation="blur-reveal"
carouselItems={[
{
id: "carousel-a1",
imageSrc: "http://img.b2bpic.net/free-photo/medieval-church-brick-gothic-tower-spire_169016-68140.jpg",
imageAlt: "Campus aerial view",
},
{
id: "carousel-a2",
imageSrc: "http://img.b2bpic.net/free-photo/medieval-church-brick-gothic-tower-spire_169016-68140.jpg",
imageAlt: "School facilities",
},
{
id: "carousel-a3",
imageSrc: "http://img.b2bpic.net/free-photo/medieval-church-brick-gothic-tower-spire_169016-68140.jpg",
imageAlt: "Dormitory accommodations",
},
{
id: "carousel-a4",
imageSrc: "http://img.b2bpic.net/free-photo/medieval-church-brick-gothic-tower-spire_169016-68140.jpg",
imageAlt: "Outdoor spaces",
},
{
id: "carousel-a5",
imageSrc: "http://img.b2bpic.net/free-photo/medieval-church-brick-gothic-tower-spire_169016-68140.jpg",
imageAlt: "Student activities",
},
{
id: "carousel-a6",
imageSrc: "http://img.b2bpic.net/free-photo/medieval-church-brick-gothic-tower-spire_169016-68140.jpg",
imageAlt: "Campus community",
},
]}
autoPlay={true}
autoPlayInterval={5000}
background={{ variant: "gradient-bars" }}
ariaLabel="About page hero section"
/>
</div>
<div id="about-extended" data-section="about-extended">
<TextAbout
tag="Our Foundation"
tagIcon={Award}
tagAnimation="opacity"
title="Building Tomorrow's Leaders Today"
buttons={[{ text: "Explore Academics", href: "/academics" }]}
buttonAnimation="slide-up"
useInvertedBackground={true}
ariaLabel="Extended about section"
/>
</div>
<div id="footer-about" data-section="footer-about">
<FooterLogoEmphasis
logoText="Gamo Bayra Boarding Secondary School"
columns={footerColumns}
ariaLabel="Footer navigation"
/>
</div>
</ThemeProvider>
);
}

224
src/app/academics/page.tsx Normal file
View File

@@ -0,0 +1,224 @@
"use client";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import NavbarLayoutFloatingOverlay from "@/components/navbar/NavbarLayoutFloatingOverlay/NavbarLayoutFloatingOverlay";
import HeroBillboardRotatedCarousel from "@/components/sections/hero/HeroBillboardRotatedCarousel";
import FeatureBento from "@/components/sections/feature/FeatureBento";
import FooterLogoEmphasis from "@/components/sections/footer/FooterLogoEmphasis";
import Link from "next/link";
import { BookOpen, Zap, Award, CheckCircle, Users, Star } from "lucide-react";
export default function AcademicsPage() {
const navItems = [
{ name: "Home", id: "home" },
{ name: "About", id: "about" },
{ name: "Academics", id: "academics" },
{ name: "Staff", id: "staff" },
{ name: "Admissions", id: "admissions" },
];
const footerColumns = [
{
items: [
{ label: "Home", href: "/" },
{ label: "About", href: "/about" },
{ label: "Academics", href: "/academics" },
{ label: "Staff", href: "/staff" },
],
},
{
items: [
{ label: "Admissions", href: "/admissions" },
{ label: "Student Life", href: "#" },
{ label: "Events", href: "#" },
{ label: "News", href: "#" },
],
},
{
items: [
{ label: "Contact Us", href: "#" },
{ label: "Location", href: "#" },
{ label: "Phone", href: "#" },
{ label: "Email", href: "#" },
],
},
{
items: [
{ label: "Privacy Policy", href: "#" },
{ label: "Terms of Service", href: "#" },
{ label: "Careers", href: "#" },
{ label: "Partners", href: "#" },
],
},
];
return (
<ThemeProvider
defaultButtonVariant="text-shift"
defaultTextAnimation="entrance-slide"
borderRadius="rounded"
contentWidth="compact"
sizing="largeSmallSizeLargeTitles"
background="floatingGradient"
cardStyle="subtle-shadow"
primaryButtonStyle="radial-glow"
secondaryButtonStyle="layered"
headingFontWeight="light"
>
<div id="nav" data-section="nav">
<NavbarLayoutFloatingOverlay
brandName="Gamo Bayra"
navItems={navItems}
button={{
text: "Enroll Now",
href: "/admissions",
}}
/>
</div>
<div id="hero-academics" data-section="hero-academics" className="min-h-screen flex items-center justify-center">
<HeroBillboardRotatedCarousel
title="Academic Excellence at Gamo Bayra"
description="Our comprehensive curriculum combines STEM and liberal arts, taught by dedicated educators committed to developing critical thinking, creativity, and confidence."
tag="Programs & Courses"
tagIcon={BookOpen}
tagAnimation="slide-up"
buttons={[
{
text: "Admission Info",
href: "/admissions",
},
]}
buttonAnimation="blur-reveal"
carouselItems={[
{
id: "carousel-ac1",
imageSrc: "http://img.b2bpic.net/free-photo/front-view-female-scientist-girl-having-fun-with-chemistry-experiments_23-2148571314.jpg",
imageAlt: "Modern classroom",
},
{
id: "carousel-ac2",
imageSrc: "http://img.b2bpic.net/free-photo/front-view-female-scientist-girl-having-fun-with-chemistry-experiments_23-2148571314.jpg",
imageAlt: "Science lab",
},
{
id: "carousel-ac3",
imageSrc: "http://img.b2bpic.net/free-photo/front-view-female-scientist-girl-having-fun-with-chemistry-experiments_23-2148571314.jpg",
imageAlt: "Library resources",
},
{
id: "carousel-ac4",
imageSrc: "http://img.b2bpic.net/free-photo/front-view-female-scientist-girl-having-fun-with-chemistry-experiments_23-2148571314.jpg",
imageAlt: "Technology center",
},
{
id: "carousel-ac5",
imageSrc: "http://img.b2bpic.net/free-photo/front-view-female-scientist-girl-having-fun-with-chemistry-experiments_23-2148571314.jpg",
imageAlt: "Group projects",
},
{
id: "carousel-ac6",
imageSrc: "http://img.b2bpic.net/free-photo/front-view-female-scientist-girl-having-fun-with-chemistry-experiments_23-2148571314.jpg",
imageAlt: "Interactive learning",
},
]}
autoPlay={true}
autoPlayInterval={5000}
background={{
variant: "rotated-rays-animated-grid",
}}
ariaLabel="Academics page hero section"
/>
</div>
<div id="programs-academics" data-section="programs-academics" className="py-16">
<FeatureBento
title="Our Academic Programs"
description="Structured pathways designed to prepare students for university entrance and beyond, with flexibility for individual interests and strengths."
tag="Learning Pathways"
tagIcon={Zap}
tagAnimation="blur-reveal"
animationType="slide-up"
textboxLayout="default"
useInvertedBackground={false}
features={[
{
title: "Science & Technology",
description: "Biology, Chemistry, Physics, Mathematics, and Computer Science with modern laboratory facilities and research opportunities.",
bentoComponent: "icon-info-cards",
items: [
{
icon: Zap,
label: "STEM Focus",
value: "Advanced Labs",
},
{
icon: Award,
label: "Results",
value: "98% Pass Rate",
},
{
icon: Star,
label: "Innovation",
value: "Research Ready",
},
],
},
{
title: "Humanities & Social Sciences",
description: "History, Geography, Economics, Literature, and Languages fostering critical thinking and global perspective.",
bentoComponent: "icon-info-cards",
items: [
{
icon: BookOpen,
label: "Curriculum",
value: "Comprehensive",
},
{
icon: Users,
label: "Engagement",
value: "Interactive",
},
{
icon: Award,
label: "Excellence",
value: "Recognized",
},
],
},
{
title: "Language Arts",
description: "English, Amharic, and foreign languages with emphasis on communication, composition, and cultural literacy.",
bentoComponent: "icon-info-cards",
items: [
{
icon: BookOpen,
label: "Languages",
value: "Multiple",
},
{
icon: Star,
label: "Skills",
value: "Communication",
},
{
icon: CheckCircle,
label: "Proficiency",
value: "Fluency",
},
],
},
]}
/>
</div>
<div id="footer-academics" data-section="footer-academics">
<FooterLogoEmphasis
logoText="Gamo Bayra Boarding Secondary School"
columns={footerColumns}
ariaLabel="Footer navigation"
/>
</div>
</ThemeProvider>
);
}

292
src/app/admissions/page.tsx Normal file
View File

@@ -0,0 +1,292 @@
"use client";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import Link from "next/link";
import NavbarLayoutFloatingOverlay from "@/components/navbar/NavbarLayoutFloatingOverlay/NavbarLayoutFloatingOverlay";
import HeroBillboardRotatedCarousel from "@/components/sections/hero/HeroBillboardRotatedCarousel";
import FaqSplitText from "@/components/sections/faq/FaqSplitText";
import FooterLogoEmphasis from "@/components/sections/footer/FooterLogoEmphasis";
import { CheckCircle, BookOpen, Zap } from "lucide-react";
const navItems = [
{ name: "Home", id: "home" },
{ name: "About", id: "about" },
{ name: "Academics", id: "academics" },
{ name: "Staff", id: "staff" },
{ name: "Admissions", id: "admissions" },
];
const navItemsWithLinks = navItems.map((item) => {
const routeMap: Record<string, string> = {
home: "/",
about: "/about",
academics: "/academics",
staff: "/staff",
admissions: "/admissions",
};
return {
...item,
href: routeMap[item.id] || "#",
};
});
export default function AdmissionsPage() {
return (
<ThemeProvider
defaultButtonVariant="text-shift"
defaultTextAnimation="entrance-slide"
borderRadius="rounded"
contentWidth="compact"
sizing="largeSmallSizeLargeTitles"
background="floatingGradient"
cardStyle="subtle-shadow"
primaryButtonStyle="radial-glow"
secondaryButtonStyle="layered"
headingFontWeight="light"
>
<div id="nav" data-section="nav">
<NavbarLayoutFloatingOverlay
brandName="Gamo Bayra"
navItems={navItems}
button={{
text: "Enroll Now",
href: "/admissions",
}}
className=""
buttonClassName=""
buttonTextClassName=""
/>
</div>
<div id="hero-admissions" data-section="hero-admissions" className="min-h-screen flex items-center justify-center">
<HeroBillboardRotatedCarousel
title="Admissions & FAQ"
description="Learn about our admission process, requirements, financial aid options, and answers to common questions from prospective families."
tag="Join Gamo Bayra"
tagIcon={CheckCircle}
tagAnimation="slide-up"
buttons={[
{
text: "Apply Online",
href: "#",
},
]}
buttonAnimation="blur-reveal"
carouselItems={[
{
id: "carousel-adm1",
imageSrc: "http://img.b2bpic.net/free-photo/students-walking-ramp-near-university-building_23-2147860779.jpg",
imageAlt: "Admissions office",
},
{
id: "carousel-adm2",
imageSrc: "http://img.b2bpic.net/free-photo/students-walking-ramp-near-university-building_23-2147860779.jpg",
imageAlt: "Campus tour",
},
{
id: "carousel-adm3",
imageSrc: "http://img.b2bpic.net/free-photo/students-walking-ramp-near-university-building_23-2147860779.jpg",
imageAlt: "Enrollment process",
},
{
id: "carousel-adm4",
imageSrc: "http://img.b2bpic.net/free-photo/students-walking-ramp-near-university-building_23-2147860779.jpg",
imageAlt: "Student orientation",
},
{
id: "carousel-adm5",
imageSrc: "http://img.b2bpic.net/free-photo/students-walking-ramp-near-university-building_23-2147860779.jpg",
imageAlt: "Welcome ceremony",
},
{
id: "carousel-adm6",
imageSrc: "http://img.b2bpic.net/free-photo/students-walking-ramp-near-university-building_23-2147860779.jpg",
imageAlt: "First day experience",
},
]}
autoPlay={true}
autoPlayInterval={5000}
background={{
variant: "downward-rays-static-grid",
}}
ariaLabel="Admissions page hero section"
className=""
containerClassName=""
textBoxClassName=""
titleClassName=""
descriptionClassName=""
tagClassName=""
buttonContainerClassName=""
buttonClassName=""
buttonTextClassName=""
carouselClassName=""
/>
</div>
<div id="faq-admissions" data-section="faq-admissions" className="py-16">
<FaqSplitText
sideTitle="Frequently Asked Questions"
sideDescription="Have questions about admissions, programs, or student life at Gamo Bayra? Find answers here or contact our admissions team."
buttons={[
{
text: "Contact Admissions",
href: "#",
},
]}
buttonAnimation="blur-reveal"
faqsAnimation="slide-up"
textPosition="left"
useInvertedBackground={false}
animationType="smooth"
showCard={true}
faqs={[
{
id: "faq-1",
title: "What is the admission age requirement?",
content: "Students entering Form 1 (Grade 9) should be at least 13 years old and no older than 16. Transfers may be considered for older students based on academic performance and school capacity.",
},
{
id: "faq-2",
title: "What are the academic requirements for admission?",
content: "Prospective students must demonstrate strong academic performance in their previous school. We require transcripts, entrance examinations in Math, English, and Science, and personal interviews to assess overall potential and fit.",
},
{
id: "faq-3",
title: "Does Gamo Bayra offer scholarships?",
content: "Yes, we offer merit-based and need-based scholarships to qualified students. Scholarship awards are determined through a competitive application process. Contact admissions for detailed information.",
},
{
id: "faq-4",
title: "What is the application timeline?",
content: "Application deadline is typically in May for the following academic year. Entrance examinations are held in June. Admitted students receive notification in July, with registration in August.",
},
{
id: "faq-5",
title: "Are day student options available?",
content: "While Gamo Bayra is primarily a boarding school, we accommodate a limited number of day students where logistically feasible. Both boarding and day students enjoy the same facilities and academic programs.",
},
{
id: "faq-6",
title: "What support services are available for boarding students?",
content: "We provide comprehensive student support including counseling, medical services, academic tutoring, and 24/7 residential supervision. Our boarding culture emphasizes community, responsibility, and personal growth.",
},
]}
ariaLabel="FAQ section"
className=""
containerClassName=""
contentClassName=""
textContainerClassName=""
sideTitleClassName=""
sideDescriptionClassName=""
buttonContainerClassName=""
buttonClassName=""
buttonTextClassName=""
faqsContainerClassName=""
accordionClassName=""
accordionTitleClassName=""
accordionIconContainerClassName=""
accordionIconClassName=""
accordionContentClassName=""
separatorClassName=""
/>
</div>
<div id="footer-admissions" data-section="footer-admissions">
<FooterLogoEmphasis
logoText="Gamo Bayra Boarding Secondary School"
columns={[
{
items: [
{
label: "Home",
href: "/",
},
{
label: "About",
href: "/about",
},
{
label: "Academics",
href: "/academics",
},
{
label: "Staff",
href: "/staff",
},
],
},
{
items: [
{
label: "Admissions",
href: "/admissions",
},
{
label: "Student Life",
href: "#",
},
{
label: "Events",
href: "#",
},
{
label: "News",
href: "#",
},
],
},
{
items: [
{
label: "Contact Us",
href: "#",
},
{
label: "Location",
href: "#",
},
{
label: "Phone",
href: "#",
},
{
label: "Email",
href: "#",
},
],
},
{
items: [
{
label: "Privacy Policy",
href: "#",
},
{
label: "Terms of Service",
href: "#",
},
{
label: "Careers",
href: "#",
},
{
label: "Partners",
href: "#",
},
],
},
]}
ariaLabel="Footer navigation"
className=""
containerClassName=""
logoClassName=""
columnsClassName=""
columnClassName=""
itemClassName=""
iconClassName=""
buttonClassName=""
/>
</div>
</ThemeProvider>
);
}

BIN
src/app/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

5
src/app/globals.css Normal file
View File

@@ -0,0 +1,5 @@
@import "tailwindcss";
@import "./styles/variables.css";
@import "./styles/theme.css";
@import "./styles/utilities.css";
@import "./styles/base.css";

46
src/app/layout.tsx Normal file
View File

@@ -0,0 +1,46 @@
import type { Metadata } from "next";
import { Halant } from "next/font/google";
import { Inter } from "next/font/google";
import "./globals.css";
import { ServiceWrapper } from "@/components/ServiceWrapper";
import Tag from "@/tag/Tag";
import { getVisualEditScript } from "@/utils/visual-edit-script";
import { Montserrat } from "next/font/google";
export const metadata: Metadata = {
title: "Webild components 2",
description: "Generated by create next app",
};
const montserrat = Montserrat({
variable: "--font-montserrat",
subsets: ["latin"],
});
const inter = Inter({
variable: "--font-inter",
subsets: ["latin"],
});
export default function RootLayout({
children,
}: Readonly<{
children: React.ReactNode;
}>) {
return (
<html lang="en" suppressHydrationWarning>
<ServiceWrapper>
<body className={`${montserrat.variable} ${inter.variable} antialiased`}>
<Tag />
{children}
<script
dangerouslySetInnerHTML={{
__html: `${getVisualEditScript()}`
}}
/>
</body>
</ServiceWrapper>
</html>
);
}

309
src/app/page.tsx Normal file
View File

@@ -0,0 +1,309 @@
"use client";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import Link from "next/link";
import NavbarLayoutFloatingOverlay from "@/components/navbar/NavbarLayoutFloatingOverlay/NavbarLayoutFloatingOverlay";
import HeroBillboardRotatedCarousel from "@/components/sections/hero/HeroBillboardRotatedCarousel";
import TextAbout from "@/components/sections/about/TextAbout";
import FeatureBento from "@/components/sections/feature/FeatureBento";
import MetricCardThree from "@/components/sections/metrics/MetricCardThree";
import TestimonialCardTen from "@/components/sections/testimonial/TestimonialCardTen";
import ContactCTA from "@/components/sections/contact/ContactCTA";
import FooterLogoEmphasis from "@/components/sections/footer/FooterLogoEmphasis";
import {
Sparkles,
BookOpen,
Shield,
Zap,
Star,
Award,
Users,
CheckCircle,
} from "lucide-react";
export default function HomePage() {
const navItems = [
{ name: "Home", id: "home" },
{ name: "About", id: "about" },
{ name: "Academics", id: "academics" },
{ name: "Staff", id: "staff" },
{ name: "Admissions", id: "admissions" },
];
const footerColumns = [
{
items: [
{ label: "Home", href: "/" },
{ label: "About", href: "/about" },
{ label: "Academics", href: "/academics" },
{ label: "Staff", href: "/staff" },
],
},
{
items: [
{ label: "Admissions", href: "/admissions" },
{ label: "Student Life", href: "#" },
{ label: "Events", href: "#" },
{ label: "News", href: "#" },
],
},
{
items: [
{ label: "Contact Us", href: "#" },
{ label: "Location", href: "#" },
{ label: "Phone", href: "#" },
{ label: "Email", href: "#" },
],
},
{
items: [
{ label: "Privacy Policy", href: "#" },
{ label: "Terms of Service", href: "#" },
{ label: "Careers", href: "#" },
{ label: "Partners", href: "#" },
],
},
];
return (
<ThemeProvider
defaultButtonVariant="text-shift"
defaultTextAnimation="entrance-slide"
borderRadius="rounded"
contentWidth="compact"
sizing="largeSmallSizeLargeTitles"
background="floatingGradient"
cardStyle="subtle-shadow"
primaryButtonStyle="radial-glow"
secondaryButtonStyle="layered"
headingFontWeight="light"
>
<div id="nav" data-section="nav">
<NavbarLayoutFloatingOverlay
brandName="Gamo Bayra"
navItems={navItems}
button={{
text: "Enroll Now",
href: "/admissions",
}}
/>
</div>
<div id="hero-home" data-section="hero-home">
<HeroBillboardRotatedCarousel
title="Welcome to Gamo Bayra Boarding Secondary School"
description="Empowering young minds through academic excellence, character development, and holistic growth. Join our community of learners committed to shaping the leaders of tomorrow."
tag="Excellence in Education"
tagIcon={Sparkles}
tagAnimation="slide-up"
buttons={[
{ text: "Explore Programs", href: "/academics" },
{ text: "Apply Now", href: "/admissions" },
]}
buttonAnimation="blur-reveal"
carouselItems={[
{
id: "carousel-1",
imageSrc: "http://img.b2bpic.net/free-photo/two-female-sprinter-athlete-getting-ready-start-race-red-running-track-athletics-stadium_613910-6810.jpg",
imageAlt: "School morning assembly",
},
{
id: "carousel-2",
imageSrc: "http://img.b2bpic.net/free-photo/big-family-railway_23-2147770347.jpg",
imageAlt: "Boarding students in dormitory",
},
{
id: "carousel-3",
imageSrc: "http://img.b2bpic.net/free-photo/close-up-woman-with-paint-hands_23-2149050542.jpg",
imageAlt: "Student debate competition",
},
{
id: "carousel-4",
imageSrc: "http://img.b2bpic.net/free-photo/young-team-coworkers-working-project_273609-15681.jpg",
imageAlt: "School technology lab",
},
{
id: "carousel-5",
imageSrc: "http://img.b2bpic.net/free-photo/students-rehashing-theater-class_23-2150960280.jpg",
imageAlt: "Student music performance",
},
{
id: "carousel-6",
imageSrc: "http://img.b2bpic.net/free-photo/teens-with-books-relaxing-staircase_23-2147864056.jpg",
imageAlt: "Community engagement event",
},
]}
autoPlay={true}
autoPlayInterval={5000}
background={{ variant: "radial-gradient" }}
ariaLabel="Gamo Bayra School hero section"
/>
</div>
<div id="about-home" data-section="about-home">
<TextAbout
tag="Our Story"
tagIcon={BookOpen}
tagAnimation="opacity"
title="A Legacy of Academic Excellence and Student Development"
buttons={[{ text: "Learn More About Us", href: "/about" }]}
buttonAnimation="slide-up"
useInvertedBackground={true}
ariaLabel="About Gamo Bayra School"
/>
</div>
<div id="features-home" data-section="features-home">
<FeatureBento
title="What Makes Gamo Bayra Special"
description="We provide comprehensive education combining rigorous academics with character development, boarding facilities, and extracurricular excellence."
tag="Our Strengths"
tagIcon={Shield}
tagAnimation="blur-reveal"
animationType="slide-up"
textboxLayout="default"
useInvertedBackground={false}
features={[
{
title: "Academic Excellence",
description: "Rigorous curriculum with experienced faculty ensuring strong foundational and advanced learning across all subjects.",
bentoComponent: "icon-info-cards",
items: [
{ icon: BookOpen, label: "Curriculum", value: "STEM + Arts" },
{ icon: Award, label: "Results", value: "95% Pass Rate" },
{ icon: Users, label: "Teachers", value: "Qualified Staff" },
],
},
{
title: "Boarding Facilities",
description: "Safe, comfortable residential spaces fostering community, independence, and lifelong friendships among students.",
bentoComponent: "icon-info-cards",
items: [
{ icon: Shield, label: "Safety", value: "24/7 Care" },
{ icon: Star, label: "Comfort", value: "Modern Dorms" },
{ icon: Users, label: "Community", value: "Strong Bonds" },
],
},
{
title: "Holistic Development",
description: "Sports, arts, music, and club activities developing critical thinking, leadership, and teamwork skills.",
bentoComponent: "icon-info-cards",
items: [
{ icon: Zap, label: "Sports", value: "Multiple Teams" },
{ icon: Star, label: "Arts", value: "Creative Programs" },
{ icon: Award, label: "Awards", value: "National Recognition" },
],
},
]}
/>
</div>
<div id="metrics-home" data-section="metrics-home">
<MetricCardThree
title="Our Impact and Achievements"
description="Trusted by families across the region, we continue to achieve excellence in education and student development."
tag="By The Numbers"
tagIcon={Award}
tagAnimation="opacity"
animationType="scale-rotate"
textboxLayout="default"
useInvertedBackground={true}
metrics={[
{ id: "metric-1", icon: Users, title: "Students Enrolled", value: "850+" },
{ id: "metric-2", icon: Award, title: "Years of Service", value: "45+" },
{ id: "metric-3", icon: CheckCircle, title: "Success Rate", value: "95%" },
{ id: "metric-4", icon: Star, title: "Awards Won", value: "120+" },
]}
/>
</div>
<div id="testimonials-home" data-section="testimonials-home">
<TestimonialCardTen
title="What Parents and Students Say"
description="Hear from our community about their transformative experiences at Gamo Bayra."
textboxLayout="default"
useInvertedBackground={false}
tag="Testimonials"
tagIcon={Star}
tagAnimation="blur-reveal"
testimonials={[
{
id: "testimonial-1",
title: "Life-Changing Experience",
quote: "Gamo Bayra transformed my son's academic and personal development. The boarding community fostered independence and strong values that will serve him throughout life.",
name: "Sarah Kumsa",
role: "Parent",
imageSrc: "http://img.b2bpic.net/free-photo/smiling-young-slavic-student-girl-wearing-backpack-tenses-biceps-holds-book-notebook_141793-99885.jpg",
},
{
id: "testimonial-2",
title: "Outstanding Education",
quote: "The faculty at Gamo Bayra are truly dedicated educators. My daughter's confidence in her academic abilities has grown tremendously during her time here.",
name: "Daniel Yohannes",
role: "Parent",
imageSrc: "http://img.b2bpic.net/free-photo/smiling-young-slavic-student-girl-wearing-backpack-tenses-biceps-holds-book-notebook_141793-99885.jpg",
},
{
id: "testimonial-3",
title: "A Second Home",
quote: "Beyond academics, Gamo Bayra is a family. The boarding experience taught me leadership, friendship, and responsibility in ways I never expected.",
name: "Abebe Lemma",
role: "Alumni",
imageSrc: "http://img.b2bpic.net/free-photo/smiling-young-slavic-student-girl-wearing-backpack-tenses-biceps-holds-book-notebook_141793-99885.jpg",
},
{
id: "testimonial-4",
title: "Comprehensive Development",
quote: "What impressed me most was how the school balances rigorous academics with sports, arts, and character development. It's truly holistic education.",
name: "Girma Mekonnen",
role: "Parent",
imageSrc: "http://img.b2bpic.net/free-photo/smiling-young-slavic-student-girl-wearing-backpack-tenses-biceps-holds-book-notebook_141793-99885.jpg",
},
{
id: "testimonial-5",
title: "Excellent Faculty Support",
quote: "The teachers genuinely care about their students. I've never felt more supported in my academic journey. This is the best school decision we made.",
name: "Marta Kebede",
role: "Current Student",
imageSrc: "http://img.b2bpic.net/free-photo/smiling-young-slavic-student-girl-wearing-backpack-tenses-biceps-holds-book-notebook_141793-99885.jpg",
},
{
id: "testimonial-6",
title: "Building Leaders",
quote: "Gamo Bayra instilled in me values of integrity, perseverance, and service. I'm now confident in pursuing my dreams and contributing to society.",
name: "Tadesse Hailu",
role: "Alumni",
imageSrc: "http://img.b2bpic.net/free-photo/smiling-young-slavic-student-girl-wearing-backpack-tenses-biceps-holds-book-notebook_141793-99885.jpg",
},
]}
/>
</div>
<div id="contact-home" data-section="contact-home">
<ContactCTA
tag="Get in Touch"
tagIcon={Zap}
tagAnimation="slide-up"
title="Start Your Journey at Gamo Bayra"
description="Join hundreds of families who have chosen Gamo Bayra Boarding Secondary School. Learn about our admissions process, tour our campus, and discover why we're the premier choice for secondary education."
buttons={[
{ text: "Schedule Campus Tour", href: "/admissions" },
{ text: "Download Prospectus", href: "#" },
]}
buttonAnimation="blur-reveal"
background={{ variant: "sparkles-gradient" }}
useInvertedBackground={true}
ariaLabel="Contact and admissions call-to-action"
/>
</div>
<div id="footer-home" data-section="footer-home">
<FooterLogoEmphasis
logoText="Gamo Bayra Boarding Secondary School"
columns={footerColumns}
ariaLabel="Footer navigation"
/>
</div>
</ThemeProvider>
);
}

192
src/app/staff/page.tsx Normal file
View File

@@ -0,0 +1,192 @@
"use client";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import NavbarLayoutFloatingOverlay from "@/components/navbar/NavbarLayoutFloatingOverlay/NavbarLayoutFloatingOverlay";
import HeroBillboardRotatedCarousel from "@/components/sections/hero/HeroBillboardRotatedCarousel";
import TeamCardTen from "@/components/sections/team/TeamCardTen";
import FooterLogoEmphasis from "@/components/sections/footer/FooterLogoEmphasis";
import { Users } from "lucide-react";
export default function StaffPage() {
const navItems = [
{ name: "Home", id: "home" },
{ name: "About", id: "about" },
{ name: "Academics", id: "academics" },
{ name: "Staff", id: "staff" },
{ name: "Admissions", id: "admissions" },
];
const footerColumns = [
{
items: [
{ label: "Home", href: "/" },
{ label: "About", href: "/about" },
{ label: "Academics", href: "/academics" },
{ label: "Staff", href: "/staff" },
],
},
{
items: [
{ label: "Admissions", href: "/admissions" },
{ label: "Student Life", href: "#" },
{ label: "Events", href: "#" },
{ label: "News", href: "#" },
],
},
{
items: [
{ label: "Contact Us", href: "#" },
{ label: "Location", href: "#" },
{ label: "Phone", href: "#" },
{ label: "Email", href: "#" },
],
},
{
items: [
{ label: "Privacy Policy", href: "#" },
{ label: "Terms of Service", href: "#" },
{ label: "Careers", href: "#" },
{ label: "Partners", href: "#" },
],
},
];
return (
<ThemeProvider
defaultButtonVariant="text-shift"
defaultTextAnimation="entrance-slide"
borderRadius="rounded"
contentWidth="compact"
sizing="largeSmallSizeLargeTitles"
background="floatingGradient"
cardStyle="subtle-shadow"
primaryButtonStyle="radial-glow"
secondaryButtonStyle="layered"
headingFontWeight="light"
>
<div id="nav" data-section="nav">
<NavbarLayoutFloatingOverlay
brandName="Gamo Bayra"
navItems={navItems}
button={{
text: "Enroll Now",
href: "/admissions",
}}
/>
</div>
<div id="hero-staff" data-section="hero-staff" className="min-h-screen flex items-center justify-center">
<HeroBillboardRotatedCarousel
title="Meet Our Dedicated Faculty & Staff"
description="Our team of experienced educators and support staff are passionate about nurturing young minds and fostering a positive learning environment."
tag="Our People"
tagIcon={Users}
tagAnimation="slide-up"
buttons={[
{
text: "Contact Us",
href: "#",
},
]}
buttonAnimation="blur-reveal"
carouselItems={[
{
id: "carousel-st1",
imageSrc: "http://img.b2bpic.net/free-photo/groupmates-learning-university-girl-looking-camera_7502-9428.jpg",
imageAlt: "Faculty member",
},
{
id: "carousel-st2",
imageSrc: "http://img.b2bpic.net/free-photo/groupmates-learning-university-girl-looking-camera_7502-9428.jpg",
imageAlt: "School principal",
},
{
id: "carousel-st3",
imageSrc: "http://img.b2bpic.net/free-photo/groupmates-learning-university-girl-looking-camera_7502-9428.jpg",
imageAlt: "Academic staff",
},
{
id: "carousel-st4",
imageSrc: "http://img.b2bpic.net/free-photo/groupmates-learning-university-girl-looking-camera_7502-9428.jpg",
imageAlt: "Support staff",
},
{
id: "carousel-st5",
imageSrc: "http://img.b2bpic.net/free-photo/groupmates-learning-university-girl-looking-camera_7502-9428.jpg",
imageAlt: "Educator",
},
{
id: "carousel-st6",
imageSrc: "http://img.b2bpic.net/free-photo/groupmates-learning-university-girl-looking-camera_7502-9428.jpg",
imageAlt: "Administrative team",
},
]}
autoPlay={true}
autoPlayInterval={5000}
background={{
variant: "animated-grid",
}}
ariaLabel="Staff page hero section"
/>
</div>
<div id="team-staff-page" data-section="team-staff-page" className="py-16">
<TeamCardTen
title="Faculty & Administration"
tag="Leadership & Educators"
tagAnimation="opacity"
membersAnimation="slide-up"
memberVariant="card"
useInvertedBackground={true}
members={[
{
id: "member-1",
name: "Dr. Habtamu Assefa",
imageSrc: "http://img.b2bpic.net/free-photo/groupmates-learning-university-girl-looking-camera_7502-9428.jpg",
imageAlt: "Principal Dr. Habtamu Assefa",
},
{
id: "member-2",
name: "Mrs. Almaz Tekle",
imageSrc: "http://img.b2bpic.net/free-photo/groupmates-learning-university-girl-looking-camera_7502-9428.jpg",
imageAlt: "Academic Director Mrs. Almaz Tekle",
},
{
id: "member-3",
name: "Mr. Dawit Mesfin",
imageSrc: "http://img.b2bpic.net/free-photo/groupmates-learning-university-girl-looking-camera_7502-9428.jpg",
imageAlt: "Sciences Department Head Mr. Dawit Mesfin",
},
{
id: "member-4",
name: "Mrs. Selam Worku",
imageSrc: "http://img.b2bpic.net/free-photo/groupmates-learning-university-girl-looking-camera_7502-9428.jpg",
imageAlt: "Humanities Department Head Mrs. Selam Worku",
},
{
id: "member-5",
name: "Mr. Yohannes Kebede",
imageSrc: "http://img.b2bpic.net/free-photo/groupmates-learning-university-girl-looking-camera_7502-9428.jpg",
imageAlt: "Sports & Activities Mr. Yohannes Kebede",
},
{
id: "member-6",
name: "Mrs. Tigist Abebe",
imageSrc: "http://img.b2bpic.net/free-photo/groupmates-learning-university-girl-looking-camera_7502-9428.jpg",
imageAlt: "Boarding Coordinator Mrs. Tigist Abebe",
},
]}
ariaLabel="Faculty and staff team"
/>
</div>
<div id="footer-staff" data-section="footer-staff">
<FooterLogoEmphasis
logoText="Gamo Bayra Boarding Secondary School"
columns={footerColumns}
ariaLabel="Footer navigation"
/>
</div>
</ThemeProvider>
);
}

28
src/app/styles/base.css Normal file
View File

@@ -0,0 +1,28 @@
* {
scrollbar-width: thin;
scrollbar-color: rgba(255, 255, 255, 1) rgba(255, 255, 255, 0);
}
html {
overscroll-behavior: none;
overscroll-behavior-y: none;
}
body {
background-color: var(--background);
color: var(--foreground);
font-family: var(--font-inter), sans-serif;
position: relative;
min-height: 100vh;
overscroll-behavior: none;
overscroll-behavior-y: none;
}
h1,
h2,
h3,
h4,
h5,
h6 {
font-family: var(--font-montserrat), sans-serif;
}

176
src/app/styles/theme.css Normal file
View File

@@ -0,0 +1,176 @@
@theme inline {
--color-background: var(--background);
--color-card: var(--card);
--color-foreground: var(--foreground);
--color-primary-cta: var(--primary-cta);
--color-primary-cta-text: var(--primary-cta-text);
--color-secondary-cta: var(--secondary-cta);
--color-secondary-cta-text: var(--secondary-cta-text);
--color-accent: var(--accent);
--color-background-accent: var(--background-accent);
/* theme border radius */
--radius-theme: var(--theme-border-radius);
--radius-theme-capped: var(--theme-border-radius-capped);
/* text */
--text-2xs: var(--text-2xs);
--text-xs: var(--text-xs);
--text-sm: var(--text-sm);
--text-base: var(--text-base);
--text-lg: var(--text-lg);
--text-xl: var(--text-xl);
--text-2xl: var(--text-2xl);
--text-3xl: var(--text-3xl);
--text-4xl: var(--text-4xl);
--text-5xl: var(--text-5xl);
--text-6xl: var(--text-6xl);
--text-7xl: var(--text-7xl);
--text-8xl: var(--text-8xl);
--text-9xl: var(--text-9xl);
/* height */
--height-4: var(--height-4);
--height-5: var(--height-5);
--height-6: var(--height-6);
--height-7: var(--height-7);
--height-8: var(--height-8);
--height-9: var(--height-9);
--height-11: var(--height-11);
--height-12: var(--height-12);
--height-10: var(--height-10);
--height-30: var(--height-30);
--height-90: var(--height-90);
--height-100: var(--height-100);
--height-110: var(--height-110);
--height-120: var(--height-120);
--height-130: var(--height-130);
--height-140: var(--height-140);
--height-150: var(--height-150);
--height-page-padding: calc(2.25rem+var(--vw-1_5)+var(--vw-1_5));
/* width */
--width-5: var(--width-5);
--width-7_5: var(--width-7_5);
--width-10: var(--width-10);
--width-12_5: var(--width-12_5);
--width-15: var(--width-15);
--width-17: var(--width-17);
--width-17_5: var(--width-17_5);
--width-20: var(--width-20);
--width-21: var(--width-21);
--width-22_5: var(--width-22_5);
--width-25: var(--width-25);
--width-26: var(--width-26);
--width-27_5: var(--width-27_5);
--width-30: var(--width-30);
--width-32_5: var(--width-32_5);
--width-35: var(--width-35);
--width-37_5: var(--width-37_5);
--width-40: var(--width-40);
--width-42_5: var(--width-42_5);
--width-45: var(--width-45);
--width-47_5: var(--width-47_5);
--width-50: var(--width-50);
--width-52_5: var(--width-52_5);
--width-55: var(--width-55);
--width-57_5: var(--width-57_5);
--width-60: var(--width-60);
--width-62_5: var(--width-62_5);
--width-65: var(--width-65);
--width-67_5: var(--width-67_5);
--width-70: var(--width-70);
--width-72_5: var(--width-72_5);
--width-75: var(--width-75);
--width-77_5: var(--width-77_5);
--width-80: var(--width-80);
--width-82_5: var(--width-82_5);
--width-85: var(--width-85);
--width-87_5: var(--width-87_5);
--width-90: var(--width-90);
--width-92_5: var(--width-92_5);
--width-95: var(--width-95);
--width-97_5: var(--width-97_5);
--width-100: var(--width-100);
--width-content-width: var(--width-content-width);
--width-carousel-padding: var(--width-carousel-padding);
--width-carousel-padding-controls: var(--width-carousel-padding-controls);
--width-carousel-padding-expanded: var(--width-carousel-padding-expanded);
--width-carousel-padding-controls-expanded: var(--width-carousel-padding-controls-expanded);
--width-carousel-item-3: var(--width-carousel-item-3);
--width-carousel-item-4: var(--width-carousel-item-4);
--width-x-padding-mask-fade: var(--width-x-padding-mask-fade);
--width-content-width-expanded: var(--width-content-width-expanded);
/* gap */
--spacing-1: var(--vw-0_25);
--spacing-2: var(--vw-0_5);
--spacing-3: var(--vw-0_75);
--spacing-4: var(--vw-1);
--spacing-5: var(--vw-1_25);
--spacing-6: var(--vw-1_5);
--spacing-7: var(--vw-1_75);
--spacing-8: var(--vw-2);
--spacing-x-1: var(--vw-0_25);
--spacing-x-2: var(--vw-0_5);
--spacing-x-3: var(--vw-0_75);
--spacing-x-4: var(--vw-1);
--spacing-x-5: var(--vw-1_25);
--spacing-x-6: var(--vw-1_5);
/* border radius */
--radius-none: 0;
--radius-sm: var(--vw-0_5);
--radius: var(--vw-0_75);
--radius-md: var(--vw-1);
--radius-lg: var(--vw-1_25);
--radius-xl: var(--vw-1_75);
--radius-full: 999px;
/* padding */
--padding-1: var(--vw-0_25);
--padding-2: var(--vw-0_5);
--padding-2.5: var(--vw-0_625);
--padding-3: var(--vw-0_75);
--padding-4: var(--vw-1);
--padding-5: var(--vw-1_25);
--padding-6: var(--vw-1_5);
--padding-7: var(--vw-1_75);
--padding-8: var(--vw-2);
--padding-x-1: var(--vw-0_25);
--padding-x-2: var(--vw-0_5);
--padding-x-3: var(--vw-0_75);
--padding-x-4: var(--vw-1);
--padding-x-5: var(--vw-1_25);
--padding-x-6: var(--vw-1_5);
--padding-x-7: var(--vw-1_75);
--padding-x-8: var(--vw-2);
--padding-hero-page-padding-half: var(--padding-hero-page-padding-half);
--padding-hero-page-padding: var(--padding-hero-page-padding);
--padding-hero-page-padding-1_5: var(--padding-hero-page-padding-1_5);
--padding-hero-page-padding-double: var(--padding-hero-page-padding-double);
/* margin */
--margin-1: var(--vw-0_25);
--margin-2: var(--vw-0_5);
--margin-3: var(--vw-0_75);
--margin-4: var(--vw-1);
--margin-5: var(--vw-1_25);
--margin-6: var(--vw-1_5);
--margin-7: var(--vw-1_75);
--margin-8: var(--vw-2);
--margin-x-1: var(--vw-0_25);
--margin-x-2: var(--vw-0_5);
--margin-x-3: var(--vw-0_75);
--margin-x-4: var(--vw-1);
--margin-x-5: var(--vw-1_25);
--margin-x-6: var(--vw-1_5);
--margin-x-7: var(--vw-1_75);
--margin-x-8: var(--vw-2);
}

View File

@@ -0,0 +1,228 @@
@layer components {}
@layer utilities {
/* Card, primary-button, and secondary-button styles are now dynamically injected via ThemeProvider */
/* .card {
@apply backdrop-blur-sm bg-gradient-to-br from-card/80 to-card/40 shadow-sm border border-card;
}
.primary-button {
@apply bg-gradient-to-b from-primary-cta/83 to-primary-cta;
box-shadow:
color-mix(in srgb, var(--color-background) 25%, transparent) 0px 1px 1px 0px inset,
color-mix(in srgb, var(--color-primary-cta) 15%, transparent) 3px 3px 3px 0px;
}
.secondary-button {
@apply backdrop-blur-sm bg-gradient-to-br from-secondary-cta/80 to-secondary-cta shadow-sm border border-secondary-cta;
} */
.tag-card {
@apply backdrop-blur-sm bg-gradient-to-br from-card/80 to-card/40 shadow-sm border border-card;
}
.inset-glow-border {
@apply relative;
}
.inset-glow-border::before {
content: "";
@apply absolute pointer-events-none inset-0 p-[1px];
border-radius: inherit;
background: linear-gradient(
0deg,
color-mix(in srgb, var(--color-primary-cta) 20%, var(--color-background)) 0%,
color-mix(in srgb, var(--color-primary-cta) 40%, var(--color-background)) 27%,
color-mix(in srgb, var(--color-primary-cta) 60%, var(--color-foreground)) 62%,
color-mix(in srgb, var(--color-primary-cta) 80%, var(--color-foreground)) 100%
);
mask:
linear-gradient(#000 0 0) content-box,
linear-gradient(#000 0 0);
mask-composite: exclude;
}
.mask-fade-x {
-webkit-mask-image: linear-gradient(to right, transparent 0%, transparent calc((100vw - var(--width-content-width)) / 4), black calc((100vw - var(--width-content-width)) / 2 + 5vw), black calc(100% - (100vw - var(--width-content-width)) / 2 - 5vw), transparent calc(100% - (100vw - var(--width-content-width)) / 4), transparent 100%);
mask-image: linear-gradient(to right, transparent 0%, transparent calc((100vw - var(--width-content-width)) / 4), black calc((100vw - var(--width-content-width)) / 2 + 5vw), black calc(100% - (100vw - var(--width-content-width)) / 2 - 5vw), transparent calc(100% - (100vw - var(--width-content-width)) / 4), transparent 100%);
}
.mask-padding-x {
-webkit-mask-image: linear-gradient(to right, transparent 0%, black var(--width-x-padding-mask-fade), black calc(100% - var(--width-x-padding-mask-fade)), transparent 100%);
mask-image: linear-gradient(to right, transparent 0%, black var(--width-x-padding-mask-fade), black calc(100% - var(--width-x-padding-mask-fade)), transparent 100%);
}
.mask-fade-bottom {
-webkit-mask-image: linear-gradient(to bottom, black 0%, black 50%, transparent 100%);
mask-image: linear-gradient(to bottom, black 0%, black 50%, transparent 100%);
}
.mask-fade-y {
mask-image: linear-gradient(to bottom,
transparent 0%,
black var(--vw-1_5),
black calc(100% - var(--vw-1_5)),
transparent 100%);
}
.mask-fade-y {
mask-image: linear-gradient(to bottom,
transparent 0%,
black var(--vw-1_5),
black calc(100% - var(--vw-1_5)),
transparent 100%);
}
.mask-fade-y-medium {
mask-image: linear-gradient(to bottom,
transparent 0%,
black 20%,
black 80%,
transparent 100%);
}
.mask-fade-bottom-large {
-webkit-mask-image: linear-gradient(to bottom, black 0%, black 50%, transparent 75%, transparent 100%);
mask-image: linear-gradient(to bottom, black 0%, black 50%, transparent 75%, transparent 100%);
}
.mask-fade-bottom-long {
-webkit-mask-image: linear-gradient(to bottom, black 0%, black 5%, transparent 100%);
mask-image: linear-gradient(to bottom, black 0%, black 5%, transparent 100%);
}
.mask-fade-top-long {
-webkit-mask-image: linear-gradient(to top, black 0%, black 5%, transparent 100%);
mask-image: linear-gradient(to top, black 0%, black 5%, transparent 100%);
}
.mask-fade-xy {
-webkit-mask-image:
linear-gradient(to right, transparent 0%, black 20%, black 80%, transparent 100%),
linear-gradient(to bottom, transparent 0%, black 20%, black 80%, transparent 100%);
mask-image:
linear-gradient(to right, transparent 0%, black 20%, black 80%, transparent 100%),
linear-gradient(to bottom, transparent 0%, black 20%, black 80%, transparent 100%);
-webkit-mask-composite: source-in;
mask-composite: intersect;
}
/* ANIMATION */
.animation-container {
animation:
fadeInOpacity 0.8s ease-in-out forwards,
fadeInTranslate 0.6s forwards;
}
.animation-container-fade {
animation: fadeInOpacity 0.8s ease-in-out forwards;
}
@keyframes fadeInOpacity {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
@keyframes fadeInTranslate {
from {
transform: translateY(0.75vh);
}
to {
transform: translateY(0vh);
}
}
@keyframes aurora {
from {
background-position: 50% 50%, 50% 50%;
}
to {
background-position: 350% 50%, 350% 50%;
}
}
@keyframes spin-slow {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}
@keyframes spin-reverse {
from {
transform: rotate(0deg);
}
to {
transform: rotate(-360deg);
}
}
.animate-spin-slow {
animation: spin-slow 15s linear infinite;
}
.animate-spin-reverse {
animation: spin-reverse 10s linear infinite;
}
@keyframes marquee-vertical {
from {
transform: translateY(0);
}
to {
transform: translateY(-50%);
}
}
.animate-marquee-vertical {
animation: marquee-vertical 40s linear infinite;
}
@keyframes marquee-vertical-reverse {
from {
transform: translateY(-50%);
}
to {
transform: translateY(0);
}
}
.animate-marquee-vertical-reverse {
animation: marquee-vertical-reverse 40s linear infinite;
}
@keyframes orbit {
from {
transform: rotate(var(--initial-position, 0deg)) translateX(var(--translate-position, 120px)) rotate(calc(-1 * var(--initial-position, 0deg)));
}
to {
transform: rotate(calc(var(--initial-position, 0deg) + 360deg)) translateX(var(--translate-position, 120px)) rotate(calc(-1 * (var(--initial-position, 0deg) + 360deg)));
}
}
@keyframes map-dot-pulse {
0%, 100% {
transform: scale(0.4);
opacity: 0.6;
}
50% {
transform: scale(1.4);
opacity: 1;
}
}
}

View File

@@ -0,0 +1,217 @@
:root {
/* Base units */
/* --vw is set by ThemeProvider */
/* --background: #f5f4ef;
--card: #dad6cd;
--foreground: #2a2928;
--primary-cta: #2a2928;
--secondary-cta: #ecebea;
--accent: #ffffff;
--background-accent: #ffffff; */
--background: #fcf6ec;
--card: #f3ede2;
--foreground: #2e2521;
--primary-cta: #2e2521;
--primary-cta-text: #fcf6ec;
--secondary-cta: #ffffff;
--secondary-cta-text: #2e2521;
--accent: #b2a28b;
--background-accent: #b2a28b;
/* text sizing - set by ThemeProvider */
/* --text-2xs: clamp(0.465rem, 0.62vw, 0.62rem);
--text-xs: clamp(0.54rem, 0.72vw, 0.72rem);
--text-sm: clamp(0.615rem, 0.82vw, 0.82rem);
--text-base: clamp(0.69rem, 0.92vw, 0.92rem);
--text-lg: clamp(0.75rem, 1vw, 1rem);
--text-xl: clamp(0.825rem, 1.1vw, 1.1rem);
--text-2xl: clamp(0.975rem, 1.3vw, 1.3rem);
--text-3xl: clamp(1.2rem, 1.6vw, 1.6rem);
--text-4xl: clamp(1.5rem, 2vw, 2rem);
--text-5xl: clamp(2.025rem, 2.75vw, 2.75rem);
--text-6xl: clamp(2.475rem, 3.3vw, 3.3rem);
--text-7xl: clamp(3rem, 4vw, 4rem);
--text-8xl: clamp(3.5rem, 4.5vw, 4.5rem);
--text-9xl: clamp(5.25rem, 7vw, 7rem); */
/* Base spacing units */
--vw-0_25: calc(var(--vw) * 0.25);
--vw-0_5: calc(var(--vw) * 0.5);
--vw-0_625: calc(var(--vw) * 0.625);
--vw-0_75: calc(var(--vw) * 0.75);
--vw-1: calc(var(--vw) * 1);
--vw-1_25: calc(var(--vw) * 1.25);
--vw-1_5: calc(var(--vw) * 1.5);
--vw-1_75: calc(var(--vw) * 1.75);
--vw-2: calc(var(--vw) * 2);
--vw-2_25: calc(var(--vw) * 2.25);
--vw-2_5: calc(var(--vw) * 2.5);
--vw-2_75: calc(var(--vw) * 2.75);
--vw-3: calc(var(--vw) * 3);
/* width */
--width-5: clamp(4rem, 5vw, 6rem);
--width-7_5: clamp(5.625rem, 7.5vw, 7.5rem);
--width-10: clamp(7.5rem, 10vw, 10rem);
--width-12_5: clamp(9.375rem, 12.5vw, 12.5rem);
--width-15: clamp(11.25rem, 15vw, 15rem);
--width-17: clamp(12.75rem, 17vw, 17rem);
--width-17_5: clamp(13.125rem, 17.5vw, 17.5rem);
--width-20: clamp(15rem, 20vw, 20rem);
--width-21: clamp(15.75rem, 21vw, 21rem);
--width-22_5: clamp(16.875rem, 22.5vw, 22.5rem);
--width-25: clamp(18.75rem, 25vw, 25rem);
--width-26: clamp(19.5rem, 26vw, 26rem);
--width-27_5: clamp(20.625rem, 27.5vw, 27.5rem);
--width-30: clamp(22.5rem, 30vw, 30rem);
--width-32_5: clamp(24.375rem, 32.5vw, 32.5rem);
--width-35: clamp(26.25rem, 35vw, 35rem);
--width-37_5: clamp(28.125rem, 37.5vw, 37.5rem);
--width-40: clamp(30rem, 40vw, 40rem);
--width-42_5: clamp(31.875rem, 42.5vw, 42.5rem);
--width-45: clamp(33.75rem, 45vw, 45rem);
--width-47_5: clamp(35.625rem, 47.5vw, 47.5rem);
--width-50: clamp(37.5rem, 50vw, 50rem);
--width-52_5: clamp(39.375rem, 52.5vw, 52.5rem);
--width-55: clamp(41.25rem, 55vw, 55rem);
--width-57_5: clamp(43.125rem, 57.5vw, 57.5rem);
--width-60: clamp(45rem, 60vw, 60rem);
--width-62_5: clamp(46.875rem, 62.5vw, 62.5rem);
--width-65: clamp(48.75rem, 65vw, 65rem);
--width-67_5: clamp(50.625rem, 67.5vw, 67.5rem);
--width-70: clamp(52.5rem, 70vw, 70rem);
--width-72_5: clamp(54.375rem, 72.5vw, 72.5rem);
--width-75: clamp(56.25rem, 75vw, 75rem);
--width-77_5: clamp(58.125rem, 77.5vw, 77.5rem);
--width-80: clamp(60rem, 80vw, 80rem);
--width-82_5: clamp(61.875rem, 82.5vw, 82.5rem);
--width-85: clamp(63.75rem, 85vw, 85rem);
--width-87_5: clamp(65.625rem, 87.5vw, 87.5rem);
--width-90: clamp(67.5rem, 90vw, 90rem);
--width-92_5: clamp(69.375rem, 92.5vw, 92.5rem);
--width-95: clamp(71.25rem, 95vw, 95rem);
--width-97_5: clamp(73.125rem, 97.5vw, 97.5rem);
--width-100: clamp(75rem, 100vw, 100rem);
/* --width-content-width and --width-content-width-expanded are set by ThemeProvider */
--width-carousel-padding: calc((100vw - var(--width-content-width)) / 2 + 1px - var(--vw-1_5));
--width-carousel-padding-controls: calc((100vw - var(--width-content-width)) / 2 + 1px);
--width-carousel-padding-expanded: calc((var(--width-content-width-expanded) - var(--width-content-width)) / 2 + 1px - var(--vw-1_5));
--width-carousel-padding-controls-expanded: calc((var(--width-content-width-expanded) - var(--width-content-width)) / 2 + 1px);
--width-carousel-item-3: calc(var(--width-content-width) / 3 - var(--vw-1_5) / 3 * 2);
--width-carousel-item-4: calc(var(--width-content-width) / 4 - var(--vw-1_5) / 4 * 3);
--width-x-padding-mask-fade: clamp(1.5rem, 4vw, 4rem);
--height-4: 1rem;
--height-5: 1.25rem;
--height-6: 1.5rem;
--height-7: 1.75rem;
--height-8: 2rem;
--height-9: 2.25rem;
--height-10: 2.5rem;
--height-11: 2.75rem;
--height-12: 3rem;
--height-30: 7.5rem;
--height-90: 22.5rem;
--height-100: 25rem;
--height-110: 27.5rem;
--height-120: 30rem;
--height-130: 32.5rem;
--height-140: 35rem;
--height-150: 37.5rem;
/* hero page padding */
--padding-hero-page-padding-half: calc((var(--height-10) + var(--vw-1_5) + var(--vw-1_5) + var(--height-10)) / 2);
--padding-hero-page-padding: calc(var(--height-10) + var(--vw-1_5) + var(--vw-1_5) + var(--height-10));
--padding-hero-page-padding-1_5: calc(1.5 * (var(--height-10) + var(--vw-1_5) + var(--vw-1_5) + var(--height-10)));
--padding-hero-page-padding-double: calc(2 * (var(--height-10) + var(--vw-1_5) + var(--vw-1_5) + var(--height-10)));
}
@media (max-width: 767px) {
:root {
/* --vw and text sizing are set by ThemeProvider */
/* --vw: 3vw;
--text-2xs: 2.5vw;
--text-xs: 2.75vw;
--text-sm: 3vw;
--text-base: 3.25vw;
--text-lg: 3.5vw;
--text-xl: 4.25vw;
--text-2xl: 5vw;
--text-3xl: 6vw;
--text-4xl: 7vw;
--text-5xl: 7.5vw;
--text-6xl: 8.5vw;
--text-7xl: 10vw;
--text-8xl: 12vw;
--text-9xl: 14vw; */
--width-5: 5vw;
--width-7_5: 7.5vw;
--width-10: 10vw;
--width-12_5: 12.5vw;
--width-15: 15vw;
--width-17_5: 17.5vw;
--width-20: 20vw;
--width-22_5: 22.5vw;
--width-25: 25vw;
--width-27_5: 27.5vw;
--width-30: 30vw;
--width-32_5: 32.5vw;
--width-35: 35vw;
--width-37_5: 37.5vw;
--width-40: 40vw;
--width-42_5: 42.5vw;
--width-45: 45vw;
--width-47_5: 47.5vw;
--width-50: 50vw;
--width-52_5: 52.5vw;
--width-55: 55vw;
--width-57_5: 57.5vw;
--width-60: 60vw;
--width-62_5: 62.5vw;
--width-65: 65vw;
--width-67_5: 67.5vw;
--width-70: 70vw;
--width-72_5: 72.5vw;
--width-75: 75vw;
--width-77_5: 77.5vw;
--width-80: 80vw;
--width-82_5: 82.5vw;
--width-85: 85vw;
--width-87_5: 87.5vw;
--width-90: 90vw;
--width-92_5: 92.5vw;
--width-95: 95vw;
--width-97_5: 97.5vw;
--width-100: 100vw;
/* --width-content-width and --width-content-width-expanded are set by ThemeProvider */
--width-carousel-padding: calc((100vw - var(--width-content-width)) / 2 + 1px - var(--vw-1_5));
--width-carousel-padding-controls: calc((100vw - var(--width-content-width)) / 2 + 1px);
--width-carousel-padding-expanded: calc((var(--width-content-width-expanded) - var(--width-content-width)) / 2 + 1px - var(--vw-1_5));
--width-carousel-padding-controls-expanded: calc((var(--width-content-width-expanded) - var(--width-content-width)) / 2 + 1px);
--width-carousel-item-3: var(--width-content-width);
--width-carousel-item-4: var(--width-content-width);
--width-x-padding-mask-fade: 10vw;
--height-4: 3.5vw;
--height-5: 4.5vw;
--height-6: 5.5vw;
--height-7: 6.5vw;
--height-8: 7.5vw;
--height-9: 8.5vw;
--height-10: 9vw;
--height-11: 10vw;
--height-12: 11vw;
--height-30: 25vw;
--height-90: 81vw;
--height-100: 90vw;
--height-110: 99vw;
--height-120: 108vw;
--height-130: 117vw;
--height-140: 126vw;
--height-150: 135vw;
}
}