+
+
+
+ At 'Briz', our ethos is simple: empower coffee shop owners to manage
+ better, control operations smoothly, and serve each cup with a smile.
+ Our platform is designed to handle the heavy lifting of day-to-day
+ tasks, from inventory management to staff scheduling, so you can focus
+ on what matters most - your patrons and your passion for coffee.
+
+
+
+
+ Following projects showcases my skills and experience through
+ real-world examples of my work. Each project is briefly described with
+ links to code repositories and live demos in it. It reflects my
+ ability to solve complex problems, work with different technologies,
+ and manage projects effectively.
+
+
+ At Briz, we envision each coffee shop as a symphony, with every
+ element from the espresso shot to the customer service playing in
+ perfect harmony. Our journey began with the coming together of two
+ innovative startups: 'Tuk Coffee,' a renowned delivery platform for
+ brewed coffee with physical branches, and 'Igarson,' an accounting
+ application tailored for coffee shops and restaurants. Our combined
+ experience and passion for coffee shop excellence are the foundation
+ of Briz.
+
+
+ Our Team's Heritage
+
+
+ Our team consists of six dedicated members, each bringing a unique
+ blend of expertise and innovation from our roots in 'Tuk Coffee' and
+ 'Igarson.' We are baristas, managers, tech enthusiasts, and, above
+ all, coffee lovers. Together, we've seen the challenges and triumphs
+ of running coffee shops, and it's this rich experience that fuels our
+ commitment to making Briz the ace of your coffee shop orchestr
+
+
+
+ Our Team's Heritage
+
+
+
+ We believe in the power of an efficiently managed coffee shop - where
+ every task, every role, and every shift contributes to the delightful
+ crescendo of customer satisfaction. Briz is not just an app; it's your
+ partner in achieving this efficiency. It's the conductor's baton that
+ helps you lead your coffee shop's symphony to play more harmoniously
+ than ever before. With Briz, you're not just managing; you're
+ performing.
+
+
+
+ Our Commitment to Your Coffee Shop{" "}
+
+
+
+ Our mission is simple yet ambitious: to empower coffee shops to manage
+ their spaces with unprecedented efficiency and insight. Whether it's
+ the bustling rush of the morning crowd or the relaxed ambiance of late
+ evenings, Briz is there to ensure that every note of your coffee
+ shop's day is pitch-perfect. Join us in redefining what it means to
+ run a coffee shop, and let's make every cup of coffee an experience to
+ remember.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ );
+};
+
+export default AboutUs;
diff --git a/src/app/layout.jsx b/src/app/layout.jsx
index d0dd647..3a18bba 100644
--- a/src/app/layout.jsx
+++ b/src/app/layout.jsx
@@ -147,7 +147,7 @@ export default function RootLayout({ children }) {
const pathname = usePathname();
const router = useRouter();
- const hiddenUrls = ["/login", "/"];
+ const hiddenUrls = ["/login", "/pricing", "/about-us", "/"];
const shouldRenderComponent = !hiddenUrls.includes(pathname);
const closeBigPlusPage = () => {
diff --git a/src/app/page.jsx b/src/app/page.jsx
index 44a3090..9b163c0 100644
--- a/src/app/page.jsx
+++ b/src/app/page.jsx
@@ -1,17 +1,14 @@
"use client";
-import Image from "next/image";
-import { motion } from "framer-motion";
-
-import cloud1 from "../../public/images/cloud1.png";
-import cloud2 from "../../public/images/cloud2.png";
-import cloud3 from "../../public/images/cloud3.png";
-import core from "../../public/images/core.png";
+import {
+ About,
+ Experience,
+ Feedbacks,
+ Hero,
+ Navbar,
+} from "@comp/landingComponents";
+import Footer from "@comp/landingComponents/Footer/page";
import { useEffect, useState } from "react";
-import PersianNumber from "../../plugins/PersianNumber";
-import UnderDevelopeTimer from "../../components/UnderDevelopeTimer";
-import { version } from "../../package.json";
-import Link from "next/link";
export default function Home() {
const [state, setstate] = useState(false);
@@ -21,65 +18,17 @@ export default function Home() {
}, []);
return (
-
-
-
-
-
-
- {" "}
-
-
+
+
+
+
-
-
-
-
-
-
+
+
-
-
-
- {" "}
-
+
-
-
-
- {" "}
-
-
-
-
-
- تا اینجا ورژن
- {" "}
-
-
-
-
-
-
-
-
-
+
);
}
diff --git a/src/app/pricing/page.jsx b/src/app/pricing/page.jsx
new file mode 100644
index 0000000..39b6b70
--- /dev/null
+++ b/src/app/pricing/page.jsx
@@ -0,0 +1,20 @@
+"use client";
+import Navbar from "@comp/landingComponents/Navbar";
+import Footer from "@comp/landingComponents/Footer/page";
+import React from "react";
+import PricingHero from "@comp/landingComponents/PricingHero/page";
+
+const Pricing = () => {
+ return (
+
+
+
+
+
+
+
+
+ );
+};
+
+export default Pricing;
diff --git a/src/assets/backend.png b/src/assets/backend.png
new file mode 100644
index 0000000..b2edd57
Binary files /dev/null and b/src/assets/backend.png differ
diff --git a/src/assets/carrent.png b/src/assets/carrent.png
new file mode 100644
index 0000000..8140354
Binary files /dev/null and b/src/assets/carrent.png differ
diff --git a/src/assets/close.svg b/src/assets/close.svg
new file mode 100644
index 0000000..81e97e0
--- /dev/null
+++ b/src/assets/close.svg
@@ -0,0 +1,3 @@
+
\ No newline at end of file
diff --git a/src/assets/company/meta.png b/src/assets/company/meta.png
new file mode 100644
index 0000000..d0ceea5
Binary files /dev/null and b/src/assets/company/meta.png differ
diff --git a/src/assets/company/shopify.png b/src/assets/company/shopify.png
new file mode 100644
index 0000000..bba215c
Binary files /dev/null and b/src/assets/company/shopify.png differ
diff --git a/src/assets/company/starbucks.png b/src/assets/company/starbucks.png
new file mode 100644
index 0000000..76cf307
Binary files /dev/null and b/src/assets/company/starbucks.png differ
diff --git a/src/assets/company/tesla.png b/src/assets/company/tesla.png
new file mode 100644
index 0000000..8eca730
Binary files /dev/null and b/src/assets/company/tesla.png differ
diff --git a/src/assets/creator.png b/src/assets/creator.png
new file mode 100644
index 0000000..fa17ad2
Binary files /dev/null and b/src/assets/creator.png differ
diff --git a/src/assets/github.png b/src/assets/github.png
new file mode 100644
index 0000000..a735a32
Binary files /dev/null and b/src/assets/github.png differ
diff --git a/src/assets/herobg.png b/src/assets/herobg.png
new file mode 100644
index 0000000..9d0a41b
Binary files /dev/null and b/src/assets/herobg.png differ
diff --git a/src/assets/index.js b/src/assets/index.js
new file mode 100644
index 0000000..613116b
--- /dev/null
+++ b/src/assets/index.js
@@ -0,0 +1,62 @@
+import logo from "./logo.svg";
+import backend from "./backend.png";
+import creator from "./creator.png";
+import mobile from "./mobile.png";
+import web from "./web.png";
+import github from "./github.png";
+import menu from "./menu.svg";
+import close from "./close.svg";
+
+import css from "./tech/css.png";
+import docker from "./tech/docker.png";
+import figma from "./tech/figma.png";
+import git from "./tech/git.png";
+import html from "./tech/html.png";
+import javascript from "./tech/javascript.png";
+import mongodb from "./tech/mongodb.png";
+import nodejs from "./tech/nodejs.png";
+import reactjs from "./tech/reactjs.png";
+import redux from "./tech/redux.png";
+import tailwind from "./tech/tailwind.png";
+import typescript from "./tech/typescript.png";
+import threejs from "./tech/threejs.svg";
+
+import meta from "./company/meta.png";
+import shopify from "./company/shopify.png";
+import starbucks from "./company/starbucks.png";
+import tesla from "./company/tesla.png";
+
+import carrent from "./carrent.png";
+import jobit from "./jobit.png";
+import tripguide from "./tripguide.png";
+
+export {
+ logo,
+ backend,
+ creator,
+ mobile,
+ web,
+ github,
+ menu,
+ close,
+ css,
+ docker,
+ figma,
+ git,
+ html,
+ javascript,
+ mongodb,
+ nodejs,
+ reactjs,
+ redux,
+ tailwind,
+ typescript,
+ threejs,
+ meta,
+ shopify,
+ starbucks,
+ tesla,
+ carrent,
+ jobit,
+ tripguide,
+};
diff --git a/src/assets/jobit.png b/src/assets/jobit.png
new file mode 100644
index 0000000..bb53f4b
Binary files /dev/null and b/src/assets/jobit.png differ
diff --git a/src/assets/logo.svg b/src/assets/logo.svg
new file mode 100644
index 0000000..672520e
--- /dev/null
+++ b/src/assets/logo.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/logo2.png b/src/assets/logo2.png
new file mode 100644
index 0000000..2281557
Binary files /dev/null and b/src/assets/logo2.png differ
diff --git a/src/assets/menu.svg b/src/assets/menu.svg
new file mode 100644
index 0000000..318d5ef
--- /dev/null
+++ b/src/assets/menu.svg
@@ -0,0 +1,3 @@
+
\ No newline at end of file
diff --git a/src/assets/mobile.png b/src/assets/mobile.png
new file mode 100644
index 0000000..27a2b37
Binary files /dev/null and b/src/assets/mobile.png differ
diff --git a/src/assets/tech/css.png b/src/assets/tech/css.png
new file mode 100644
index 0000000..677d59c
Binary files /dev/null and b/src/assets/tech/css.png differ
diff --git a/src/assets/tech/docker.png b/src/assets/tech/docker.png
new file mode 100644
index 0000000..c349344
Binary files /dev/null and b/src/assets/tech/docker.png differ
diff --git a/src/assets/tech/figma.png b/src/assets/tech/figma.png
new file mode 100644
index 0000000..c9f3a61
Binary files /dev/null and b/src/assets/tech/figma.png differ
diff --git a/src/assets/tech/git.png b/src/assets/tech/git.png
new file mode 100644
index 0000000..493c150
Binary files /dev/null and b/src/assets/tech/git.png differ
diff --git a/src/assets/tech/html.png b/src/assets/tech/html.png
new file mode 100644
index 0000000..9a67c31
Binary files /dev/null and b/src/assets/tech/html.png differ
diff --git a/src/assets/tech/javascript.png b/src/assets/tech/javascript.png
new file mode 100644
index 0000000..e7448b5
Binary files /dev/null and b/src/assets/tech/javascript.png differ
diff --git a/src/assets/tech/mongodb.png b/src/assets/tech/mongodb.png
new file mode 100644
index 0000000..c892f59
Binary files /dev/null and b/src/assets/tech/mongodb.png differ
diff --git a/src/assets/tech/nodejs.png b/src/assets/tech/nodejs.png
new file mode 100644
index 0000000..b81a2ce
Binary files /dev/null and b/src/assets/tech/nodejs.png differ
diff --git a/src/assets/tech/reactjs.png b/src/assets/tech/reactjs.png
new file mode 100644
index 0000000..a49beb5
Binary files /dev/null and b/src/assets/tech/reactjs.png differ
diff --git a/src/assets/tech/redux.png b/src/assets/tech/redux.png
new file mode 100644
index 0000000..feecfee
Binary files /dev/null and b/src/assets/tech/redux.png differ
diff --git a/src/assets/tech/tailwind.png b/src/assets/tech/tailwind.png
new file mode 100644
index 0000000..ed3981f
Binary files /dev/null and b/src/assets/tech/tailwind.png differ
diff --git a/src/assets/tech/threejs.svg b/src/assets/tech/threejs.svg
new file mode 100644
index 0000000..b6a8dc8
--- /dev/null
+++ b/src/assets/tech/threejs.svg
@@ -0,0 +1,11 @@
+
+
diff --git a/src/assets/tech/typescript.png b/src/assets/tech/typescript.png
new file mode 100644
index 0000000..695b00c
Binary files /dev/null and b/src/assets/tech/typescript.png differ
diff --git a/src/assets/tripguide.png b/src/assets/tripguide.png
new file mode 100644
index 0000000..ba3469a
Binary files /dev/null and b/src/assets/tripguide.png differ
diff --git a/src/assets/web.png b/src/assets/web.png
new file mode 100644
index 0000000..c29cbd0
Binary files /dev/null and b/src/assets/web.png differ
diff --git a/src/constans/index.js b/src/constans/index.js
new file mode 100644
index 0000000..b841f82
--- /dev/null
+++ b/src/constans/index.js
@@ -0,0 +1,107 @@
+export const navLinks = [
+ {
+ id: "platform",
+ title: "platform",
+ go: false,
+ },
+ {
+ id: "pricing",
+ title: "pricing",
+ go: true,
+ },
+ {
+ id: "about-us",
+ title: "about us",
+ go: true,
+ },
+];
+
+const services = [
+ {
+ title: "Streamlined Operations",
+ },
+ {
+ title: "Empowered Decision ",
+ },
+ {
+ title: "Unwavering Support ",
+ },
+ {
+ title: "Seamless Integration",
+ },
+];
+
+const experiences = [
+ {
+ title: "setup routine Modes",
+ date: "step 1",
+ points: [
+ "Begin your journey with Briz by customizing Collection Routines to suit your unique business needs. Whether it's for the bustling holiday season, a reflective Ramadan, or your standard daily operations, simply activate the desired mode. Save various modes to maintain a recorded task list for each routine, ensuring a streamlined and efficient approach to every aspect of your business.",
+ ],
+ },
+ {
+ title: "setup each section",
+ date: "step 2",
+ points: [
+ "Continue shaping your unique coffee shop experience by defining each distinct area within your establishment with Briz. Set up sections like the bar, kitchen, and seating area in our system. This process not only helps in organizing physical spaces but also assists in assigning tasks, managing resources, and streamlining operations for each specific zone.",
+ ],
+ },
+ {
+ title: "setup stuff positions",
+ date: "step 3",
+ points: [
+ "Define roles such as Barista, Waiter, Cashier, and more within our system to clarify responsibilities and streamline workflow. This organization allows you to manage schedules, assign tasks, and track performance more effectively. Empower your staff with clear definitions and watch as your service flourishes with precision and care.",
+ ],
+ },
+ {
+ title: "define staff ",
+ date: "step 4",
+ points: [
+ "Define your team in the app by entering each staff member's name, contact number, and specific access levels.",
+ ],
+ },
+ {
+ title: "setup shift forms",
+ date: "step 5",
+ points: [
+ "establish and manage shift patterns to ensure your coffee shop operates smoothly around the clock. Whether it's the early birds in the morning shift, the rush-hour warriors of the afternoon, or the night owls keeping the evening vibe alive, our system allows you to customize and control shift timings. Define morning, afternoon, and night shifts, or any other custom intervals that fit your unique business rhythm. By organizing and adapting shift schedules, you'll maintain a consistent, quality service any time of day, all while keeping your team well-rested and ready to excel.",
+ ],
+ },
+ {
+ title: "insert tasks ",
+ date: "step 6",
+ points: [
+ "Progress further with Briz by inserting and customizing tasks that keep your coffee shop humming. Whether they are daily grind duties, weekly deep cleans, or special event preparations, our system allows you to define tasks as daily, weekly, or on a custom schedule. Assign these tasks to positions rather than individuals, such as assigning cleaning duties to the closing Barista or inventory checks to the morning Manager. This method ensures that responsibilities are clear and consistent, regardless of personnel changes. Once you've planned your shifts for each week, each staff member assigned to a position will automatically inherit the tasks associated with it, ensuring a smooth operation and an evenly distributed workload.",
+ ],
+ },
+ {
+ title: "Weekly Shift Planning",
+ date: "step 7",
+ points: [
+ "Each week, take the time to strategically assign staff to their specific positions for each day, considering their strengths, preferences, and the needs of your coffee shop. As you place each staff member in their role, they are automatically assigned the tasks linked to their position for that shift.",
+ ],
+ },
+];
+
+const testimonials = [
+ {
+ testimonial:
+ "Comprehensive Oversight: A Panoramic View for Owners and Supervisors",
+ title: "holistic view ",
+ },
+ {
+ testimonial:
+ "Strategic Shift Scheduling: Mastering the Art of Staff Allocation",
+ title: "Weekly Shift Planning",
+ },
+ {
+ testimonial: "Performance Insights: Supervisor-Driven Staff Ratings",
+ title: "rating by supervisor",
+ },
+ {
+ testimonial: "Validation Excellence: Supervisor Task Confirmation",
+ title: "verify by supervisor ",
+ },
+];
+
+export { services, experiences, testimonials };
diff --git a/src/hoc/SectionWrapper.jsx b/src/hoc/SectionWrapper.jsx
new file mode 100644
index 0000000..5902ce9
--- /dev/null
+++ b/src/hoc/SectionWrapper.jsx
@@ -0,0 +1,26 @@
+"use client";
+import { motion } from "framer-motion";
+
+import { staggerContainer } from "../utils/motion";
+import { styles } from "../style";
+
+const StarWrapper = (Component, idName) =>
+ function HOC() {
+ return (
+
+
+
+
+
+
+
+ );
+ };
+
+export default StarWrapper;
diff --git a/src/hoc/index.js b/src/hoc/index.js
new file mode 100644
index 0000000..7a79ea8
--- /dev/null
+++ b/src/hoc/index.js
@@ -0,0 +1,3 @@
+import SectionWrapper from "./SectionWrapper";
+
+export { SectionWrapper };
diff --git a/src/style.js b/src/style.js
new file mode 100644
index 0000000..dd32cae
--- /dev/null
+++ b/src/style.js
@@ -0,0 +1,17 @@
+const styles = {
+ paddingX: "sm:px-16 px-6",
+ paddingY: "sm:py-16 py-6",
+ padding: "sm:px-16 px-6 sm:py-16 py-10",
+
+ heroHeadText:
+ "font-black text-white lg:text-[80px] sm:text-[60px] xs:text-[50px] text-[40px] lg:leading-[98px] mt-2",
+ heroSubText:
+ "text-[#dfd9ff] font-medium lg:text-[30px] sm:text-[26px] xs:text-[20px] text-[16px] lg:leading-[40px]",
+
+ sectionHeadText:
+ "text-white font-black md:text-[60px] sm:text-[50px] xs:text-[40px] text-[30px]",
+ sectionSubText:
+ "sm:text-[18px] text-[14px] text-secondary uppercase tracking-wider",
+};
+
+export { styles };
diff --git a/src/utils/motion.js b/src/utils/motion.js
new file mode 100644
index 0000000..9e3828e
--- /dev/null
+++ b/src/utils/motion.js
@@ -0,0 +1,88 @@
+export const textVariant = (delay) => {
+ return {
+ hidden: {
+ y: -50,
+ opacity: 0,
+ },
+ show: {
+ y: 0,
+ opacity: 1,
+ transition: {
+ type: "spring",
+ duration: 1.25,
+ delay: delay,
+ },
+ },
+ };
+};
+
+export const fadeIn = (direction, type, delay, duration) => {
+ return {
+ hidden: {
+ x: direction === "left" ? 100 : direction === "right" ? -100 : 0,
+ y: direction === "up" ? 100 : direction === "down" ? -100 : 0,
+ opacity: 0,
+ },
+ show: {
+ x: 0,
+ y: 0,
+ opacity: 1,
+ transition: {
+ type: type,
+ delay: delay,
+ duration: duration,
+ ease: "easeOut",
+ },
+ },
+ };
+};
+
+export const zoomIn = (delay, duration) => {
+ return {
+ hidden: {
+ scale: 0,
+ opacity: 0,
+ },
+ show: {
+ scale: 1,
+ opacity: 1,
+ transition: {
+ type: "tween",
+ delay: delay,
+ duration: duration,
+ ease: "easeOut",
+ },
+ },
+ };
+};
+
+export const slideIn = (direction, type, delay, duration) => {
+ return {
+ hidden: {
+ x: direction === "left" ? "-100%" : direction === "right" ? "100%" : 0,
+ y: direction === "up" ? "100%" : direction === "down" ? "100%" : 0,
+ },
+ show: {
+ x: 0,
+ y: 0,
+ transition: {
+ type: type,
+ delay: delay,
+ duration: duration,
+ ease: "easeOut",
+ },
+ },
+ };
+};
+
+export const staggerContainer = (staggerChildren, delayChildren) => {
+ return {
+ hidden: {},
+ show: {
+ transition: {
+ staggerChildren: staggerChildren,
+ delayChildren: delayChildren || 0,
+ },
+ },
+ };
+};
diff --git a/style/globals.css b/style/globals.css
index d7246b8..dc4687f 100644
--- a/style/globals.css
+++ b/style/globals.css
@@ -220,3 +220,242 @@ body {
-ms-overflow-style: none; /* IE and Edge */
scrollbar-width: none; /* Firefox */
}
+
+.hash-span {
+ margin-top: -100px;
+ padding-bottom: 100px;
+ display: block;
+}
+
+.black-gradient {
+ background: #000000; /* fallback for old browsers */
+ background: -webkit-linear-gradient(
+ to right,
+ #434343,
+ #000000
+ ); /* Chrome 10-25, Safari 5.1-6 */
+ background: linear-gradient(
+ to right,
+ #434343,
+ #000000
+ ); /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */
+}
+
+.violet-gradient {
+ background: #b9e4c9;
+ background: linear-gradient(-90deg, #b9e4c9 0%, rgba(60, 51, 80, 0) 100%);
+ background: -webkit-linear-gradient(
+ -90deg,
+ #b9e4c9 0%,
+ rgba(60, 51, 80, 0) 100%
+ );
+}
+
+.green-pink-gradient {
+ background: "#00cea8";
+ background: linear-gradient(90.13deg, #00cea8 1.9%, #bf61ff 97.5%);
+ background: -webkit-linear-gradient(-90.13deg, #00cea8 1.9%, #bf61ff 97.5%);
+}
+
+.orange-text-gradient {
+ background: #f12711; /* fallback for old browsers */
+ background: -webkit-linear-gradient(
+ to top,
+ #f12711,
+ #f5af19
+ ); /* Chrome 10-25, Safari 5.1-6 */
+ background: linear-gradient(
+ to top,
+ #f12711,
+ #f5af19
+ ); /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */
+ -webkit-background-clip: text;
+ -webkit-text-fill-color: transparent;
+}
+
+.green-text-gradient {
+ background: #11998e; /* fallback for old browsers */
+ background: -webkit-linear-gradient(
+ to top,
+ #11998e,
+ #38ef7d
+ ); /* Chrome 10-25, Safari 5.1-6 */
+ background: linear-gradient(
+ to top,
+ #11998e,
+ #38ef7d
+ ); /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */
+ -webkit-background-clip: text;
+ -webkit-text-fill-color: transparent;
+}
+
+.blue-text-gradient {
+ /* background: -webkit-linear-gradient(#eee, #333); */
+ background: #56ccf2; /* fallback for old browsers */
+ background: -webkit-linear-gradient(
+ to top,
+ #2f80ed,
+ #56ccf2
+ ); /* Chrome 10-25, Safari 5.1-6 */
+ background: linear-gradient(
+ to top,
+ #2f80ed,
+ #56ccf2
+ ); /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */
+ -webkit-background-clip: text;
+ -webkit-text-fill-color: transparent;
+}
+
+.pink-text-gradient {
+ background: #ec008c; /* fallback for old browsers */
+ background: -webkit-linear-gradient(
+ to top,
+ #ec008c,
+ #fc6767
+ ); /* Chrome 10-25, Safari 5.1-6 */
+ background: linear-gradient(
+ to top,
+ #ec008c,
+ #fc6767
+ ); /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */
+ -webkit-background-clip: text;
+ -webkit-text-fill-color: transparent;
+}
+
+/* canvas- styles */
+.canvas-loader {
+ font-size: 10px;
+ width: 1em;
+ height: 1em;
+ border-radius: 50%;
+ position: relative;
+ text-indent: -9999em;
+ animation: mulShdSpin 1.1s infinite ease;
+ transform: translateZ(0);
+}
+
+@keyframes mulShdSpin {
+ 0%,
+ 100% {
+ box-shadow: 0em -2.6em 0em 0em #ffffff,
+ 1.8em -1.8em 0 0em rgba(255, 255, 255, 0.2),
+ 2.5em 0em 0 0em rgba(255, 255, 255, 0.2),
+ 1.75em 1.75em 0 0em rgba(255, 255, 255, 0.2),
+ 0em 2.5em 0 0em rgba(255, 255, 255, 0.2),
+ -1.8em 1.8em 0 0em rgba(255, 255, 255, 0.2),
+ -2.6em 0em 0 0em rgba(255, 255, 255, 0.5),
+ -1.8em -1.8em 0 0em rgba(255, 255, 255, 0.7);
+ }
+ 12.5% {
+ box-shadow: 0em -2.6em 0em 0em rgba(255, 255, 255, 0.7),
+ 1.8em -1.8em 0 0em #ffffff, 2.5em 0em 0 0em rgba(255, 255, 255, 0.2),
+ 1.75em 1.75em 0 0em rgba(255, 255, 255, 0.2),
+ 0em 2.5em 0 0em rgba(255, 255, 255, 0.2),
+ -1.8em 1.8em 0 0em rgba(255, 255, 255, 0.2),
+ -2.6em 0em 0 0em rgba(255, 255, 255, 0.2),
+ -1.8em -1.8em 0 0em rgba(255, 255, 255, 0.5);
+ }
+ 25% {
+ box-shadow: 0em -2.6em 0em 0em rgba(255, 255, 255, 0.5),
+ 1.8em -1.8em 0 0em rgba(255, 255, 255, 0.7), 2.5em 0em 0 0em #ffffff,
+ 1.75em 1.75em 0 0em rgba(255, 255, 255, 0.2),
+ 0em 2.5em 0 0em rgba(255, 255, 255, 0.2),
+ -1.8em 1.8em 0 0em rgba(255, 255, 255, 0.2),
+ -2.6em 0em 0 0em rgba(255, 255, 255, 0.2),
+ -1.8em -1.8em 0 0em rgba(255, 255, 255, 0.2);
+ }
+ 37.5% {
+ box-shadow: 0em -2.6em 0em 0em rgba(255, 255, 255, 0.2),
+ 1.8em -1.8em 0 0em rgba(255, 255, 255, 0.5),
+ 2.5em 0em 0 0em rgba(255, 255, 255, 0.7), 1.75em 1.75em 0 0em #ffffff,
+ 0em 2.5em 0 0em rgba(255, 255, 255, 0.2),
+ -1.8em 1.8em 0 0em rgba(255, 255, 255, 0.2),
+ -2.6em 0em 0 0em rgba(255, 255, 255, 0.2),
+ -1.8em -1.8em 0 0em rgba(255, 255, 255, 0.2);
+ }
+ 50% {
+ box-shadow: 0em -2.6em 0em 0em rgba(255, 255, 255, 0.2),
+ 1.8em -1.8em 0 0em rgba(255, 255, 255, 0.2),
+ 2.5em 0em 0 0em rgba(255, 255, 255, 0.5),
+ 1.75em 1.75em 0 0em rgba(255, 255, 255, 0.7), 0em 2.5em 0 0em #ffffff,
+ -1.8em 1.8em 0 0em rgba(255, 255, 255, 0.2),
+ -2.6em 0em 0 0em rgba(255, 255, 255, 0.2),
+ -1.8em -1.8em 0 0em rgba(255, 255, 255, 0.2);
+ }
+ 62.5% {
+ box-shadow: 0em -2.6em 0em 0em rgba(255, 255, 255, 0.2),
+ 1.8em -1.8em 0 0em rgba(255, 255, 255, 0.2),
+ 2.5em 0em 0 0em rgba(255, 255, 255, 0.2),
+ 1.75em 1.75em 0 0em rgba(255, 255, 255, 0.5),
+ 0em 2.5em 0 0em rgba(255, 255, 255, 0.7), -1.8em 1.8em 0 0em #ffffff,
+ -2.6em 0em 0 0em rgba(255, 255, 255, 0.2),
+ -1.8em -1.8em 0 0em rgba(255, 255, 255, 0.2);
+ }
+ 75% {
+ box-shadow: 0em -2.6em 0em 0em rgba(255, 255, 255, 0.2),
+ 1.8em -1.8em 0 0em rgba(255, 255, 255, 0.2),
+ 2.5em 0em 0 0em rgba(255, 255, 255, 0.2),
+ 1.75em 1.75em 0 0em rgba(255, 255, 255, 0.2),
+ 0em 2.5em 0 0em rgba(255, 255, 255, 0.5),
+ -1.8em 1.8em 0 0em rgba(255, 255, 255, 0.7), -2.6em 0em 0 0em #ffffff,
+ -1.8em -1.8em 0 0em rgba(255, 255, 255, 0.2);
+ }
+ 87.5% {
+ box-shadow: 0em -2.6em 0em 0em rgba(255, 255, 255, 0.2),
+ 1.8em -1.8em 0 0em rgba(255, 255, 255, 0.2),
+ 2.5em 0em 0 0em rgba(255, 255, 255, 0.2),
+ 1.75em 1.75em 0 0em rgba(255, 255, 255, 0.2),
+ 0em 2.5em 0 0em rgba(255, 255, 255, 0.2),
+ -1.8em 1.8em 0 0em rgba(255, 255, 255, 0.5),
+ -2.6em 0em 0 0em rgba(255, 255, 255, 0.7), -1.8em -1.8em 0 0em #ffffff;
+ }
+}
+
+#root {
+ max-width: 1280px;
+ margin: 0 auto;
+ padding: 2rem;
+ text-align: center;
+}
+
+.logo {
+ height: 6em;
+ padding: 1.5em;
+ will-change: filter;
+ transition: filter 300ms;
+}
+.logo:hover {
+ filter: drop-shadow(0 0 2em #646cffaa);
+}
+.logo.react:hover {
+ filter: drop-shadow(0 0 2em #61dafbaa);
+}
+
+@keyframes logo-spin {
+ from {
+ transform: rotate(0deg);
+ }
+ to {
+ transform: rotate(360deg);
+ }
+}
+
+@media (prefers-reduced-motion: no-preference) {
+ a:nth-of-type(2) .logo {
+ animation: logo-spin infinite 20s linear;
+ }
+}
+
+.card {
+ padding: 2em;
+}
+
+.read-the-docs {
+ color: #888;
+}
+
+.bg-hero-pattern {
+ background-position: center;
+ background-size: cover;
+ background-image: url(../public/images/bg.png);
+}
diff --git a/tailwind.config.js b/tailwind.config.js
index 14016ed..3c7387d 100644
--- a/tailwind.config.js
+++ b/tailwind.config.js
@@ -44,6 +44,14 @@ module.exports = {
body: {
100: "#EEEEEE",
},
+ colors: {
+ primaryLand: "#050816",
+ secondaryLand: "#aaa6c3",
+ tertiaryLand: "#151030",
+ "black-100": "#100d25",
+ "black-200": "#090325",
+ "white-100": "#f3f3f3",
+ },
},
},