shadimage
styleui
blocknotiosource: ok · refreshed

notio

A template block that includes a hero section, a features section, a pricing section, and a footer section. Ships StyleUI's Base UI primitives so the install matches the preview.

npx shadcn add "https://www.styleui.dev/r/notio.json"
free

Where it goes

heropricingtestimonialfooterfeature-grid

Use cases

saas-landing

Tags auto-generated by rules on 9/24/2026 — empty means no evidence, not lack of support.

Dependencies

Bundle weight · medium
ui-primitives@base-ui/react
animationmotion
iconslucide-react

Files81 · source cached 10/8/2026, 7:42:22 AM

components/templates/notio/beam.tsx
"use client";

import { cn } from "@/lib/utils";

export default function Beam({
  children,
  className,
}: {
  children: React.ReactNode;
  className?: string;
}) {
  return (
    <div className={cn("relative isolate w-full", className)}>
      <div className="relative min-h-[31.25rem] w-full bg-transparent">
        <div
          className={cn(
            "absolute left-1/2 -top-[9.375rem] lg:-top-[4rem] -z-10 -translate-x-1/2 blur-[6.25rem]",
            "h-0 w-0",
            "border-l-[600px] lg:border-l-[700px] xl:border-l-[400px] border-l-transparent",
            "border-r-[600px] lg:border-r-[700px] xl:border-l-[400px] border-r-transparent",
            "border-t-[600px] lg:border-t-[700px] xl:border-l-[600px] border-t-[color:var(--orb-color-dark-fade)] dark:border-t-[color:var(--orb-color-dark)]"
          )}
        />

        <div
          className={cn(
            "absolute left-1/2 -translate-x-1/2 blur-[0.625rem]",
            "top-0 md:top-[2%]",
            "h-0 w-0",
            "border-l-[20rem] md:border-l-[35rem] lg:border-l-[25rem] border-l-transparent",
            "border-r-[20.75rem] md:border-r-[35.75rem] lg:border-r-[25.75rem] border-r-transparent",
            "border-t-[2.125rem] md:border-t-[3.125rem] lg:border-t-[2.125rem] border-t-white/80 dark:border-t-[rgba(255,255,255,0.2)]"
          )}
        />

        <div className="pt-20 md:pt-50 lg:pt-56">{children}</div>
      </div>
    </div>
  );
}
components/templates/notio/call-to-action/hero.tsx
"use client";

import { motion } from "motion/react";
import { Button } from "@/components/ui/button";
import Transcriber from "./transcriber";

export default function Hero() {
  return (
    <div className="mx-2 md:mx-4 lg:mx-6 mt-24">
      <motion.div
        initial={{ opacity: 0 }}
        animate={{ opacity: 1 }}
        transition={{ duration: 0.6 }}
        className="relative isolate flex flex-col gap-16 md:gap-4 min-[1070px]:flex-row items-center min-[1070px]:justify-between lg:w-[95dvw] mx-auto pt-12 md:px-12 lg:pl-12 xl:pl-20 max-[348px]:h-225 max-[397px]:h-220 h-210 sm:h-204 min-[516px]:h-205  md:h-215 lg:h-250 xl:220 lg:min-h-full overflow-hidden rounded-4xl"
      >
        <motion.div
          initial={{ opacity: 0, scale: 1.1 }}
          animate={{ opacity: 1, scale: 1 }}
          transition={{ duration: 1, ease: "easeOut" }}
          className="absolute inset-0 -z-10 bg-hero-radial-light dark:bg-hero-radial-dark 
             [--bg-pos:5%] lg:[--bg-pos:5%] 
             [--bg-mid:55%] md:[--bg-mid:45%] 
             [--bg-mid-alt:75%] lg:[--bg-mid-alt:70%]"
        />
        <section className="flex flex-col gap-4 z-10 text-center min-[1070px]:text-left items-center min-[1070px]:items-start 2xl:pl-28 3xl:pl-56 min-[1500px]:!pl-24 min-[1580px]:!pl-40 min-[1729px]:!pl-64 min-[2000px]:!pl-96 min-[2200px]:!pl-120 min-[2350px]:!pl-130 min-[2500px]:!pl-150">
          <motion.h1
            initial={{ opacity: 0, y: 30 }}
            animate={{ opacity: 1, y: 0 }}
            transition={{ duration: 0.6, delay: 0.2, ease: "easeOut" }}
            className="text-3xl md:text-[2.7rem] xl:text-5xl font-aleo"
          >
            Never Forget Another Call
          </motion.h1>
          <motion.p
            initial={{ opacity: 0, y: 20 }}
            animate={{ opacity: 1, y: 0 }}
            transition={{ duration: 0.6, delay: 0.4, ease: "easeOut" }}
            className="text-base max-w-lg 4xl:text-2xl 4xl:max-w-3xl"
          >
            Record, transcribe, and take notes on your conversations— all in
            real-time. Turn every call into searchable, shareable insights.
          </motion.p>
          <motion.div
            initial={{ opacity: 0, y: 20 }}
            animate={{ opacity: 1, y: 0 }}
            transition={{ duration: 0.6, delay: 0.6, ease: "easeOut" }}
          >
            <Button className="w-fit 4xl:text-2xl 4xl:px-6 4xl:h-16 hover:bg-white hover:text-foreground dark:hover:bg-secondary/80 dark:hover:text-foreground" size="lg">
              Start for free
            </Button>
          </motion.div>
        </section>
        <motion.section
          initial={{ opacity: 0, y: 50 }}
          animate={{ opacity: 1, y: 0 }}
          transition={{ duration: 0.8, delay: 0.5, ease: "easeOut" }}
          className="relative lg:mt-0 min-[1070px]:absolute min-[1070px]:right-10 xl:right-14 2xl:right-40 3xl:right-96 min-[1500px]:!right-24 min-[1629px]:!right-64 min-[2000px]:!right-96 min-[2200px]:!right-120 min-[2350px]:!right-130 min-[2500px]:!right-150 lg:-bottom-6 z-10 mt-7 max-[488px]:mt-10 max-[516px]:mt-17 mt-10 md:mt-7"
        >
          <Transcriber />
        </motion.section>
      </motion.div>
    </div>
  );
}
components/templates/notio/call-to-action/transcriber.tsx
"use client";

import useCountdown from "@/hooks/use-countdown";
import {
  BatteryFullIcon,
  RotateCcwIcon,
  SignalHighIcon,
  WifiIcon,
  XIcon,
} from "lucide-react";
import { motion } from "motion/react";
import { useEffect, useState } from "react";
import { Button } from "@/components/ui/button";
import { useMediaQuery } from "usehooks-ts";

export default function Transcriber() {
  const { formatted, isRunning, toggle, reset } = useCountdown(0, true);
  const isMobile = useMediaQuery("(max-width: 760px)");
  const [barHeights, setBarHeights] = useState(isMobile ? [24, 12, 16] : [48, 24, 32]);

  useEffect(() => {
    if (!isRunning) return;

    const interval = setInterval(() => {
      setBarHeights([
        Math.random() * 40 + 20,
        Math.random() * 40 + 20,
        Math.random() * 40 + 20,
      ]);
    }, 300);

    return () => clearInterval(interval);
  }, [isRunning]);

  return (
    <div className="w-full max-w-xs md:max-w-sm xl:max-w-md 4xl:max-w-2xl p-[1px] rounded-4xl bg-gradient-to-r from-primary/50 via-secondary/40 to-muted-foreground/20">
      <motion.div
        initial={{ opacity: 0, y: 20 }}
        animate={{ opacity: 1, y: 0 }}
        transition={{ duration: 0.6, ease: "easeOut" }}
        className="flex flex-col gap-2 md:gap-8 w-full bg-gradient-to-b from-background to-zinc-100 dark:to-muted dark:lg:to-neutral-950 rounded-4xl border-0 pb-6 md:pb-8"
      >
        <motion.section
          initial={{ opacity: 0 }}
          animate={{ opacity: 1 }}
          transition={{ delay: 0.2, duration: 0.4 }}
          className="flex flex-row items-center justify-between py-3 px-8"
        >
          <p className="text-xs md:text-base 4xl:text-2xl">9:41</p>
          <div className="flex flex-row items-center gap-1 md:gap-2">
            <motion.div
              initial={{ opacity: 0, scale: 0 }}
              animate={{ opacity: 1, scale: 1 }}
              transition={{ delay: 0.3, duration: 0.3 }}
            >
              <SignalHighIcon className="w-4 h-4 md:w-6 md:h-6 4xl:w-8 4xl:h-8" />
            </motion.div>
            <motion.div
              initial={{ opacity: 0, scale: 0 }}
              animate={{ opacity: 1, scale: 1 }}
              transition={{ delay: 0.4, duration: 0.3 }}
            >
              <WifiIcon className="w-4 h-4 md:w-6 md:h-6 4xl:w-8 4xl:h-8" />
            </motion.div>
            <motion.div
              initial={{ opacity: 0, scale: 0 }}
              animate={{ opacity: 1, scale: 1 }}
              transition={{ delay: 0.5, duration: 0.3 }}
            >
              <BatteryFullIcon className="w-4 h-4 md:w-6 md:h-6 4xl:w-8 4xl:h-8" />
            </motion.div>
          </div>
        </motion.section>

        <div>
          <motion.section
            initial={{ scaleX: 0 }}
            animate={{ scaleX: 1 }}
            transition={{ delay: 0.4, duration: 0.5, ease: "easeOut" }}
            className="h-3 lg:h-4 4xl:h-6 w-72 lg:w-80 xl:w-100 4xl:w-150 mx-auto bg-muted-foreground/20 dark:bg-neutral-950 rounded-t-full origin-left"
          />

          <div className="flex flex-col gap-4 pt-12 lg:pt-18 dark:bg-muted/50 lg:dark:bg-neutral-950 px-6 md:px-8 rounded-t-4xl">
            <motion.section
              initial={{ opacity: 0 }}
              animate={{ opacity: 1 }}
              transition={{ delay: 0.6, duration: 0.5 }}
              className="flex flex-col gap-4 lg:gap-8"
            >
              <motion.p
                initial={{ opacity: 0, x: -20 }}
                animate={{ opacity: 1, x: 0 }}
                transition={{ delay: 0.7, duration: 0.4 }}
                className="text-2xl lg:text-4xl 4xl:text-5xl"
              >
                Call with Joanne
              </motion.p>
              <motion.div
                initial={{ opacity: 0 }}
                animate={{ opacity: 1 }}
                transition={{ delay: 0.9, duration: 0.4 }}
                className="flex items-center"
              >
                <motion.span
                  animate={{ opacity: [1, 0, 1] }}
                  transition={{ duration: 1, repeat: Infinity, ease: "linear" }}
                  className="text-xl lg:text-3xl 4xl:text-4xl text-muted-foreground font-light opacity-80"
                >
                  |
                </motion.span>
                <p className="text-xl lg:text-3xl 4xl:text-4xl text-muted-foreground font-light opacity-80">
                  Write notes here.
                </p>
              </motion.div>
              <motion.p
                initial={{ opacity: 0, y: 10 }}
                animate={{ opacity: 0.8, y: 0 }}
                transition={{ delay: 1.1, duration: 0.4 }}
                className="text-muted-foreground text-sm md:text-base lg:text-lg 4xl:text-3xl"
              >
                Notio will keep transcribing even with your phone locked.
              </motion.p>
            </motion.section>

            <motion.section
              initial={{ opacity: 0, y: 30 }}
              animate={{ opacity: 1, y: 0 }}
              transition={{ delay: 0.8, duration: 0.5, ease: "easeOut" }}
              className="relative shadow-2xl rounded-2xl md:rounded-4xl bg-background flex flex-col gap-3 md:gap-4 4xl:gap-20 p-3 md:p-4 min-h-60 md:min-h-72 lg:min-h-85 xl:min-h-90 4xl:min-h-140 overflow-hidden"
            >
              <motion.div
                initial={{ opacity: 0, scale: 0.8 }}
                animate={{
                  opacity: isRunning ? 0.6 : 0.4,
                  scale: isRunning ? [1, 1.05, 1] : 1,
                }}
                transition={{
                  opacity: { duration: 0.4 },
                  scale: { duration: 2, repeat: Infinity, ease: "easeInOut" },
                }}
                className="absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 pointer-events-none w-20 h-20 md:w-32 md:h-32 4xl:w-[13rem] 4xl:h-[13rem]"
                style={{
                  borderRadius: 232,
                  background:
                    "radial-gradient(circle, var(--gradient-orb-base) 0%, var(--gradient-mid-light) 30%, var(--gradient-mid-dark) 60%, var(--gradient-end-light) 100%)",
                  filter: "blur(40px)",
                }}
              />
              <div className="relative z-10 flex items-center justify-between">
                <motion.div whileTap={{ scale: 0.9 }} whileHover={{ scale: 1.1 }}>
                  <Button
                    variant="outline"
                    size="icon"
                    className="rounded-full w-8 h-8 lg:w-10 lg:h-10 4xl:w-16 4xl:h-16"
                    onClick={reset}
                  >
                    <motion.div
                      whileTap={{ rotate: -360 }}
                      transition={{ duration: 0.5 }}
                    >
                      <RotateCcwIcon className="w-4 h-4 lg:w-5 lg:h-5 4xl:w-8 4xl:h-8 4xl:size-10" />
                    </motion.div>
                  </Button>
                </motion.div>
                <div className="flex flex-col items-center justify-center gap-1 lg:gap-2 4xl:gap-4">
                  <motion.p
                    initial={{ opacity: 0 }}
                    animate={{ opacity: 0.8 }}
                    transition={{ delay: 1, duration: 0.3 }}
                    className="text-xs md:text-sm font-light text-muted-foreground 4xl:text-2xl"
                  >
                    +1 (555) 123-4567
                  </motion.p>
                  <motion.p
                    key={formatted}
                    initial={{ scale: 1 }}
                    transition={{ duration: 0.2 }}
                    className="text-lg md:text-2xl 4xl:text-4xl"
                  >
                    {formatted}
                  </motion.p>
                </div>
                <motion.div whileTap={{ scale: 0.9 }} whileHover={{ scale: 1.1 }}>
                  <Button
                    variant="outline"
                    size="icon"
                    className="rounded-full w-8 h-8 lg:w-10 lg:h-10 4xl:w-16 4xl:h-16"
                  >
                    <XIcon className="w-4 h-4 lg:w-5 lg:h-5 4xl:w-8 4xl:h-8 4xl:size-10" />
                  </Button>
                </motion.div>
              </div>

              <motion.div
                initial={{ scale: 0.8, opacity: 0 }}
                animate={{ scale: 1, opacity: 1 }}
                transition={{ delay: 1, duration: 0.4 }}
                className="relative z-10 border border-foreground/20 rounded-full w-28 h-28 lg:w-40 lg:h-40 4xl:w-60 4xl:h-60 mx-auto flex items-center justify-center bg-background/50 backdrop-blur-sm"
              >
                <motion.button
                  onClick={toggle}
                  whileTap={{ scale: 0.9 }}
                  className="relative w-8 h-8 lg:w-12 lg:h-12 4xl:w-16 4xl:h-16 bg-foreground flex items-center justify-center"
                  animate={{ borderRadius: isRunning ? "4px" : "50%" }}
                  transition={{ duration: 0.3, ease: "easeInOut" }}
                />
              </motion.div>

              <motion.div
                initial={{ opacity: 0 }}
                animate={{ opacity: 1 }}
                transition={{ delay: 1.2, duration: 0.4 }}
                className="relative z-10 flex items-center justify-center gap-2"
              >
                <motion.div
                  animate={{ height: isRunning ? barHeights[0] * (isMobile ? 0.4 : 0.7) : 34 }}
                  transition={{ duration: 0.2, ease: "easeOut" }}
                  className="w-1 lg:w-1.5 4xl:w-2 bg-muted-foreground rounded-sm"
                />
                <motion.div
                  animate={{ height: isRunning ? barHeights[1] * (isMobile ? 0.4 : 0.7) : 17 }}
                  transition={{ duration: 0.2, ease: "easeOut" }}
                  className="w-1 lg:w-1.5 4xl:w-2 bg-muted-foreground rounded-sm"
                />
                <motion.div
                  animate={{ height: isRunning ? barHeights[2] * (isMobile ? 0.4 : 0.7) : 22 }}
                  transition={{ duration: 0.2, ease: "easeOut" }}
                  className="w-1 lg:w-1.5 4xl:w-2 bg-muted-foreground rounded-sm"
                />
              </motion.div>
            </motion.section>
          </div>
        </div>
      </motion.div>
    </div>
  );
}
components/templates/notio/features/feature-card.tsx
import { FeatureCardProps } from "@/types/components/feature";
import {
  Card,
  CardContent,
  CardDescription,
  CardHeader,
  CardTitle,
} from "@/components/ui/card";
import BlurredOrb from "@/components/blurred-orb";

export default function FeatureCard({
  feature,
}: {
  feature: FeatureCardProps;
}) {
  return (
    <Card
      key={feature.title}
      className="h-96 w-80 max-w-full gap-0 bg-background py-0 4xl:h-120 4xl:w-[36rem]"
    >
      <div className="relative flex h-48 shrink-0 items-center justify-center 4xl:h-60">
        <feature.icon size={32} className="4xl:size-12" />
        <BlurredOrb className="absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 blur-xl md:blur-2xl h-12 w-12 md:h-16 md:w-16 opacity-60 4xl:h-20 4xl:w-20 4xl:blur-2xl" />
      </div>
      <CardHeader className="flex h-14 items-center justify-center px-6 py-0 4xl:h-20">
        <CardTitle className="w-full text-center text-xl leading-tight 4xl:text-4xl">
          {feature.title}
        </CardTitle>
      </CardHeader>
      <CardContent className="flex flex-1 items-start justify-center px-6 pb-8 pt-2 4xl:px-14 4xl:pt-4">
        <CardDescription className="w-full text-center leading-normal opacity-80 4xl:text-2xl">
          {feature.description}
        </CardDescription>
      </CardContent>
    </Card>
  );
}
components/templates/notio/features/features.tsx
"use client";

import { FeatureCardProps } from "@/types/components/feature";
import { AudioLines, NotebookPen, Sparkle } from "lucide-react";
import { motion } from "motion/react";
import FeatureCard from "./feature-card";
import ToolFeature from "./tool-feature";
import TranscriptionFeature from "./transcription-feature";
export default function Features() {
  const features: FeatureCardProps[] = [
    {
      title: "Record your calls with ease",
      description:
        "Crystal-clear audio capture with automatic transcription. Never worry about missing details again.",
      icon: AudioLines,
    },
    {
      title: "Take notes as you talk",
      description:
        "Add highlights, action items, and reminders without interrupting the flow of conversation.",
      icon: NotebookPen,
    },
    {
      title: "Find any call in seconds",
      description:
        "Search transcripts, replay key moments, and export notes to your team—all in seconds.",
      icon: Sparkle,
    },
  ];

  return (
    <div className="flex flex-col gap-8 items-center justify-center p-4">
      <motion.h1
        initial={{ opacity: 0, y: 30 }}
        whileInView={{ opacity: 1, y: 0 }}
        viewport={{ once: true, margin: "-100px" }}
        transition={{ duration: 0.6, ease: "easeOut" }}
        className="text-3xl md:text-4xl 4xl:text-6xl font-aleo text-center"
      >
        One app for all your conversations
      </motion.h1>
      <motion.p
        initial={{ opacity: 0, y: 30 }}
        whileInView={{ opacity: 1, y: 0 }}
        viewport={{ once: true, margin: "-100px" }}
        transition={{ duration: 0.6, ease: "easeOut", delay: 0.1 }}
        className="text-lg text-center max-w-2xl text-muted-foreground 4xl:text-3xl 4xl:max-w-6xl"
      >
        Whether it&apos;s client meetings, interviews, or team calls—capture,
        organize, and review every conversation in one place.
      </motion.p>
      <section className="flex flex-wrap items-stretch justify-center gap-4 max-md:pt-8 md:gap-8">
        {features.map((feature, index) => (
          <motion.div
            key={feature.title}
            className="flex"
            initial={{ opacity: 0, y: 40 }}
            whileInView={{ opacity: 1, y: 0 }}
            viewport={{ once: true, margin: "-50px" }}
            transition={{
              duration: 0.5,
              delay: 0.2 + index * 0.15,
              ease: "easeOut",
            }}
          >
            <FeatureCard feature={feature} />
          </motion.div>
        ))}
      </section>
      <ToolFeature />
      <TranscriptionFeature />
    </div>
  );
}
components/templates/notio/features/tool-feature.tsx
"use client";

import { Card, CardContent, CardHeader } from "@/components/ui/card";
import { motion } from "motion/react";
import Image from "next/image";
import BlurredOrb from "@/components/blurred-orb";

type Tool = {
  name: string;
  lightImage: string;
  darkImage: string;
};

export default function ToolFeature() {
  const tools: Tool[] = [
    {
      name: "Loom",
      lightImage: "/logo/loom-mini-light.svg",
      darkImage: "/logo/loom-mini.svg",
    },
    {
      name: "Notion",
      lightImage: "/logo/notion-mini-light.svg",
      darkImage: "/logo/notion-mini.svg",
    },
    {
      name: "Medium",
      lightImage: "/logo/medium-light.svg",
      darkImage: "/logo/medium.svg",
    },
    {
      name: "Mailchip",
      lightImage: "/logo/mailchip-light.svg",
      darkImage: "/logo/mailchip.svg",
    },
    {
      name: "Calendly",
      lightImage: "/logo/calendly-light.svg",
      darkImage: "/logo/calendly.svg",
    },
  ];

  return (
    <motion.div
      initial={{ opacity: 0, y: 40 }}
      whileInView={{ opacity: 1, y: 0 }}
      viewport={{ once: true, margin: "-100px" }}
      transition={{ duration: 0.6, ease: "easeOut" }}
      className="w-full lg:py-20 4xl:py-32"
    >
      <Card className="w-full min-h-96 lg:gap-16 flex flex-col items-center justify-center dark:bg-background max-md:ring-0 dark:ring-1 shadow-none lg:py-18 4xl:gap-24">
        <CardHeader className="relative flex md:flex-wrap md:gap-12 items-center justify-center w-full">
          {tools.map((tool, index) => (
            <motion.div
              key={tool.name}
              initial={{ opacity: 0, scale: 0.8 }}
              whileInView={{ opacity: 1, scale: 1 }}
              viewport={{ once: true, margin: "-50px" }}
              transition={{
                duration: 0.4,
                delay: index * 0.1,
                ease: "easeOut",
              }}
              className="relative flex items-center justify-center border border-border p-4 bg-background rounded-xl w-40 h-20 md:w-20 lg:h-20 -mr-4 4xl:w-28 4xl:h-28"
            >
              <Image
                src={tool.lightImage}
                alt={tool.name}
                width={100}
                height={100}
                className="h-full w-full object-contain p-2 max-[406px]:p-0 max-[416px]:p-1 dark:hidden"
              />
              <Image
                src={tool.darkImage}
                alt={tool.name}
                width={100}
                height={100}
                className="hidden h-full w-full object-contain p-2 max-[406px]:p-0 max-[416px]:p-1 dark:block"
              />
              <BlurredOrb className="absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 dark:blur-xl blur-lg md:blur-xl dark:md:h-7 dark:md:w-7 w-7 h-7 md:h-10 md:w-10 4xl:h-14 4xl:w-14" />
            </motion.div>
          ))}
        </CardHeader>
        <CardContent className="flex flex-col gap-4 items-center justify-center w-full">
          <motion.p
            initial={{ opacity: 0, y: 20 }}
            whileInView={{ opacity: 1, y: 0 }}
            viewport={{ once: true, margin: "-50px" }}
            transition={{
              duration: 0.5,
              delay: 0.3,
              ease: "easeOut",
            }}
            className="text-center text-3xl md:text-4xl font-aleo 4xl:text-5xl"
          >
            Integrate with your favorite tools
          </motion.p>
          <motion.p
            initial={{ opacity: 0, y: 20 }}
            whileInView={{ opacity: 1, y: 0 }}
            viewport={{ once: true, margin: "-50px" }}
            transition={{
              duration: 0.5,
              delay: 0.4,
              ease: "easeOut",
            }}
            className="text-center text-muted-foreground text-lg md:text-base max-w-lg 4xl:text-3xl 4xl:max-w-4xl"
          >
            Connect seamlessly with popular platforms and services to enhance
            your workflow.
          </motion.p>
        </CardContent>
      </Card>
    </motion.div>
  );
}
components/templates/notio/features/transcription-feature.tsx
"use client";
import { motion } from "motion/react";
import Image from "next/image";
import { AnimatedList } from "@/components/animated-list";
import BlurredOrb from "@/components/blurred-orb";
import { Card } from "@/components/ui/card";
import { Skeleton } from "@/components/ui/skeleton";

const transcriptions = [
  {
    time: "00:20",
    text: "Hey! Thanks for hopping on. How's everything going with the new website?",
  },
  {
    time: "00:23",
    text: "Pretty good! We launched last Tuesday. Traffic's been solid so far.",
  },
  {
    time: "00:32",
    text: "That's awesome. Any issues come up?",
  },
  {
    time: "00:46",
    text: "Just one small thing—the contact form wasn't sending emails properly. But we fixed it yesterday.",
  },
];

function TranscriptionItem({ time, text }: { time: string; text: string }) {
  return (
    <div className="flex items-start 4xl:gap-8 relative">
      <span className="text-muted-foreground/60 font-mono text-xs shrink-0 pt-1 w-6 lg:w-6 xl:w-10 text-right 4xl:text-2xl">
        {time}
      </span>
      <div
        aria-hidden="true"
        className="absolute top-6 left-5 h-[90%] w-px lg:left-6"
        style={{
          backgroundColor:
            "color-mix(in oklab, var(--foreground) 22%, transparent)",
        }}
      />
      <div className="relative pl-6 pb-6 last:pb-0">
        <p className="text-foreground/80 leading-relaxed text-xs lg:text-sm 4xl:text-2xl">
          {text}
        </p>
      </div>
    </div>
  );
}

export default function TranscriptionFeature() {
  return (
    <motion.div
      initial={{ opacity: 0, y: 40 }}
      whileInView={{ opacity: 1, y: 0 }}
      viewport={{ once: true, margin: "-100px" }}
      transition={{ duration: 0.6, ease: "easeOut" }}
      className="relative flex flex-col items-center justify-center w-full mx-auto p-6 pb-12 md:px-4 lg:px-20 xl:px-16 md:pb-12 lg:py-8 rounded-4xl mt-15 md:mt-20 lg:mt-0 overflow-hidden max-lg:bg-gradient-to-b max-lg:from-background max-lg:via-background max-lg:dark:via-secondary/30 max-lg:via-secondary/10 max-lg:to-primary/40 max-lg:dark:to-secondary/60"
    >
      <BlurredOrb className="max-lg:hidden absolute left-180 top-120 rounded-full w-full h-280 dark:opacity-40 opacity-10 rotate-45 from-secondary via-primary to-secondary blur-3xl" />
      <div className="flex flex-col lg:flex-row items-center justify-center gap-12 md:gap-8 xl:gap-24 max-w-7xl">
        <motion.section
          initial={{ opacity: 0, x: -30 }}
          whileInView={{ opacity: 1, x: 0 }}
          viewport={{ once: true, margin: "-50px" }}
          transition={{ duration: 0.6, ease: "easeOut", delay: 0.1 }}
          className="flex-1 space-y-6 text-center lg:text-left z-10"
        >
          <h2 className="text-2xl md:text-4xl 4xl:text-5xl font-aleo tracking-tight text-foreground">
            Transcription captures words. <br />
            Notio captures context.
          </h2>
          <p className="text-muted-foreground font-light leading-relaxed max-w-2xl mx-auto lg:mx-0">
            Transcription tells you what was said. Your notes tell you what it
            meant. Flag concerns, mark excitement, note hesitations—capture the
            full story of every call.
          </p>
        </motion.section>

        <motion.section
          initial={{ opacity: 0, x: 30 }}
          whileInView={{ opacity: 1, x: 0 }}
          viewport={{ once: true, margin: "-50px" }}
          transition={{ duration: 0.6, ease: "easeOut", delay: 0.2 }}
          className="relative flex-1 w-full flex justify-center lg:justify-end isolate rounded-3xl sm:px-4 lg:px-0 lg:mb-8"
        >
          <div className="w-full max-w-sm 4xl:max-w-2xl p-[1px] rounded-3xl bg-gradient-to-r from-primary/40 via-primary/20 to-muted-foreground/10">
            <Card className="w-full min-h-64 lg:min-h-96 4xl:min-h-[60dvh] dark:bg-background backdrop-blur-sm overflow-hidden relative rounded-3xl border-0 ring-0">
            <div className="p-4 lg:px-8 lg:py-6 pb-24 lg:pb-32">
              <div className="mb-8">
                <p className="text-sm text-foreground leading-relaxed 4xl:text-2xl">
                  Joanne sounds upset on the phone. Should ask her how things
                  are going.
                </p>
                <div
                  aria-hidden="true"
                  className="md:mt-4 h-px w-full shrink-0"
                  style={{
                    backgroundColor:
                      "color-mix(in oklab, var(--foreground) 14%, transparent)",
                  }}
                />
              </div>

              <div className="flex flex-col gap-4 md:gap-8">
                <AnimatedList
                  delay={1000}
                  reverse={false}
                  className="lg:gap-4 4xl:gap-12"
                >
                  {transcriptions.map((item) => (
                    <TranscriptionItem
                      key={item.time}
                      time={item.time}
                      text={item.text}
                    />
                  ))}
                </AnimatedList>

                <div className="border-l border-border/40 pl-6 w-full space-y-2">
                  <Skeleton className="h-2.5 rounded-full w-3/4 4xl:h-6 4xl:w-full dark:bg-white/40" />
                  <Skeleton className="h-2.5 rounded-full w-1/2 4xl:h-6 4xl:w-full dark:bg-white/40" />
                </div>
              </div>
            </div>

            <div className="absolute bottom-12 lg:bottom-14 left-0 right-0 flex justify-center z-20">
              <div className="relative">
                <div className="absolute inset-0 bg-primary/20 blur-xl rounded-full" />
                <div className="relative flex items-center gap-3 dark:bg-background bg-white px-3 md:px-5 py-2.5 rounded-full border border-primary/70 shadow-[0_0_41.9px_0_var(--orb-color-dark-fade)] dark:shadow-[0_0_41.9px_0_var(--orb-color-dark)] 4xl:px-10 4xl:py-5">
                  <BlurredOrb className="absolute inset-0 dark:blur-xl rounded-full w-full h-full opacity-20" />
                  <Image
                    src="/logo/notio-icon-black.svg"
                    alt="Notio"
                    width={20}
                    height={20}
                    className="size-4 lg:size-6 4xl:size-10 dark:hidden"
                  />
                  <Image
                    src="/logo/notio-icon-white.svg"
                    alt="Notio"
                    width={20}
                    height={20}
                    className="size-4 lg:size-6 4xl:size-10 hidden dark:block"
                  />
                  <span className="text-xs md:text-sm font-medium text-foreground/90 4xl:text-2xl">
                    Transcribing call audio
                  </span>
                </div>
              </div>
            </div>

            <div className="absolute bottom-0 left-0 right-0 h-80 bg-gradient-to-t from-background via-background/80 to-transparent z-10 pointer-events-none" />
          </Card>
          </div>
        </motion.section>
      </div>
    </motion.div>
  );
}
components/templates/notio/footer.tsx
"use client";

import { motion } from "motion/react";
import Image from "next/image";
import Link from "next/link";
import { Button } from "@/components/ui/button";

export default function Footer() {
  const socialLinks: { label: string; href: string; icon: string }[] = [
    {
      label: "X",
      href: "#",
      icon: "/icons/x.svg",
    },
    {
      label: "LinkedIn",
      href: "#",
      icon: "/icons/linkedin.svg",
    },
    {
      label: "Facebook",
      href: "#",
      icon: "/icons/facebook.svg",
    },
    {
      label: "Instagram",
      href: "#",
      icon: "/icons/instagram.svg",
    },
    {
      label: "Tiktok",
      href: "#",
      icon: "/icons/tiktok.svg",
    },
  ];

  return (
    <footer className="max-md:relative flex flex-col max-md:px-4 lg:ml-3">
      <motion.div
        initial={{ opacity: 0 }}
        animate={{ opacity: 1 }}
        transition={{ duration: 0.6 }}
        className="relative isolate flex flex-col gap-16 lg:flex-row items-center justify-center w-full mx-auto px-6 py-12 md:p-16 xl:p-20 min-h-[95dvh] md:min-h-[70dvh] rounded-4xl"
      >
        <motion.div
          initial={{ opacity: 0, scale: 1.1 }}
          animate={{ opacity: 1, scale: 1 }}
          transition={{ duration: 1, ease: "easeOut" }}
          className="absolute inset-0 -z-10 rotate-180 rounded-4xl overflow-hidden bg-footer-radial-light lg:dark:bg-footer-radial-dark max-lg:bg-footer-radial-light-mobile max-lg:dark:bg-footer-radial-dark-mobile [--bg-pos-footer:14%] md:[--bg-pos-footer:-5%]"
        />
        <section className="max-md:absolute max-md:bottom-50 max-md:-translate-y-1/2 flex flex-col gap-8 md:gap-4 z-10 text-center items-center">
          <motion.h1
            initial={{ opacity: 0, y: 30 }}
            animate={{ opacity: 1, y: 0 }}
            transition={{ duration: 0.6, delay: 0.2, ease: "easeOut" }}
            className="text-3xl md:text-5xl font-aleo"
          >
            Never miss another <br /> important detail
          </motion.h1>
          <motion.p
            initial={{ opacity: 0, y: 20 }}
            animate={{ opacity: 1, y: 0 }}
            transition={{ duration: 0.6, delay: 0.4, ease: "easeOut" }}
            className="text-base max-w-xs lg:max-w-2xl 4xl:text-3xl"
          >
            Join thousands of professionals who've stopped scrambling for notes.
            Start your free account in seconds.
          </motion.p>
          <motion.div
            initial={{ opacity: 0, y: 20 }}
            animate={{ opacity: 1, y: 0 }}
            transition={{ duration: 0.6, delay: 0.6, ease: "easeOut" }}
          >
            <Button className="w-fit 4xl:text-2xl 4xl:px-12 4xl:h-18" size="lg">
              Start for free
            </Button>
          </motion.div>
        </section>
      </motion.div>

      <section className="max-md:absolute max-md:bottom-10 max-md:left-1/2 max-md:-translate-x-1/2 flex flex-col gap-8 lg:gap-12 items-center justify-center lg:py-16">
        <motion.div
          initial={{ opacity: 0, y: 20 }}
          whileInView={{ opacity: 1, y: 0 }}
          viewport={{ once: true, amount: 0.5 }}
          transition={{ duration: 0.5, ease: "easeOut" }}
        >
          <Image
            src="/logo/notio-logo-black.svg"
            alt="Logo"
            width={100}
            height={100}
            className="4xl:w-60 4xl:h-20 dark:hidden"
          />
          <Image
            src="/logo/notio-logo-white.svg"
            alt="Logo"
            width={100}
            height={100}
            className="4xl:w-60 4xl:h-20 hidden dark:block"
          />
        </motion.div>
        <motion.ul
          initial={{ opacity: 0, y: 20 }}
          whileInView={{ opacity: 1, y: 0 }}
          viewport={{ once: true, amount: 0.5 }}
          transition={{ duration: 0.5, delay: 0.1, ease: "easeOut" }}
          className="flex gap-6 md:gap-8 text-muted-foreground 4xl:text-2xl"
        >
          <li>Product</li>
          <li>Company</li>
          <li>About</li>
          <li>Careers</li>
        </motion.ul>
        <motion.div
          initial={{ opacity: 0, y: 20 }}
          whileInView={{ opacity: 1, y: 0 }}
          viewport={{ once: true, amount: 0.5 }}
          transition={{ duration: 0.5, delay: 0.2, ease: "easeOut" }}
          className="flex gap-3 md:ap-4 4xl:gap-8 items-center justify-center"
        >
          {socialLinks.map((link) => (
            <Link key={link.label} href={link.href}>
              <Image
                src={link.icon}
                alt={link.label}
                width={24}
                height={24}
                className="invert dark:invert-0 max-md:w-7 4xl:w-10 4xl:h-10"
              />
            </Link>
          ))}
        </motion.div>
        <motion.p
          initial={{ opacity: 0, y: 20 }}
          whileInView={{ opacity: 1, y: 0 }}
          viewport={{ once: true, amount: 0.5 }}
          transition={{ duration: 0.5, delay: 0.3, ease: "easeOut" }}
          className="text-muted-foreground text-sm 4xl:text-2xl"
        >
          &copy; {new Date().getFullYear()} Notio. All rights reserved.
        </motion.p>
      </section>
    </footer>
  );
}
components/templates/notio/navbar.tsx
"use client";
import { AnimatePresence, motion } from "motion/react";
import { ChevronDownIcon, MenuIcon, XIcon } from "lucide-react";
import Image from "next/image";
import Link from "next/link";
import { usePathname } from "next/navigation";
import { useState } from "react";
import { Button } from "@/components/ui/button";
import { ThemeToggle } from "./theme-toggle";

export default function Navbar() {
  const [isOpen, setIsOpen] = useState(false);
  const pathname = usePathname();
  const authPath = `${pathname.replace(/\/$/, "")}/auth/login`;

  const navItems: { label: string; href: string }[] = [
    { label: "Product", href: "#" },
    { label: "Company", href: "#" },
  ];

  return (
    <div className="fixed top-4 left-1/2 -translate-x-1/2 z-50 mx-2 md:mx-4 lg:mx-6 w-full md:max-w-3xl lg:max-w-5xl xl:max-w-6xl bg-background/80 backdrop-blur-sm py-2 px-4 rounded-xl">
      <div className="flex flex-row justify-between items-center py-2">
        <motion.div
          initial={{ opacity: 0, x: -20 }}
          animate={{ opacity: 1, x: 0 }}
          transition={{ duration: 0.5, ease: "easeOut" }}
        >
          <Image
            src="/logo/notio-logo-black.svg"
            className="dark:hidden"
            alt="Logo"
            width={100}
            height={100}
          />
          <Image
            src="/logo/notio-logo-white.svg"
            className="hidden dark:block"
            alt="Logo"
            width={100}
            height={100}
          />
        </motion.div>

        <div className="hidden md:flex flex-row items-center gap-4 4xl:gap-8">
          {navItems.map((item, index) => (
            <motion.div
              key={item.label}
              initial={{ opacity: 0, y: -10 }}
              animate={{ opacity: 1, y: 0 }}
              transition={{
                duration: 0.4,
                ease: "easeOut",
                delay: 0.1 + index * 0.1,
              }}
            >
              <Link
                href={item.href}
                className="flex flex-row items-center gap-1"
              >
                <p className="text-sm font-medium 4xl:text-2xl">{item.label}</p>
                <ChevronDownIcon className="w-4 h-4" />
              </Link>
            </motion.div>
          ))}
          <motion.div
            initial={{ opacity: 0, y: -10 }}
            animate={{ opacity: 1, y: 0 }}
            transition={{
              duration: 0.4,
              ease: "easeOut",
              delay: 0.1 + navItems.length * 0.1,
            }}
          >
            <Button variant="ghost" className="4xl:text-2xl" size={"sm"}>
              <Link href={authPath}>Log In</Link>
            </Button>
          </motion.div>
          <ThemeToggle />
          <motion.div
            initial={{ opacity: 0, scale: 0.9 }}
            animate={{ opacity: 1, scale: 1 }}
            transition={{
              duration: 0.4,
              ease: "easeOut",
              delay: 0.2 + navItems.length * 0.1,
            }}
          >
            <Button
              variant="default"
              className="4xl:text-2xl 4xl:h-16 4xl:px-8"
            >
              <Link href={authPath}>Start for free</Link>
            </Button>
          </motion.div>
        </div>

        <motion.div
          initial={{ opacity: 0, x: 20 }}
          animate={{ opacity: 1, x: 0 }}
          transition={{ duration: 0.5, ease: "easeOut" }}
          className="md:hidden"
        >
          <Button
            variant="ghost"
            className="p-2"
            onClick={() => setIsOpen(!isOpen)}
            aria-label="Toggle menu"
          >
            <AnimatePresence mode="wait">
              {isOpen ? (
                <motion.div
                  key="close"
                  initial={{ opacity: 0, rotate: -90 }}
                  animate={{ opacity: 1, rotate: 0 }}
                  exit={{ opacity: 0, rotate: 90 }}
                  transition={{ duration: 0.2 }}
                >
                  <XIcon className="w-6 h-6" />
                </motion.div>
              ) : (
                <motion.div
                  key="menu"
                  initial={{ opacity: 0, rotate: 90 }}
                  animate={{ opacity: 1, rotate: 0 }}
                  exit={{ opacity: 0, rotate: -90 }}
                  transition={{ duration: 0.2 }}
                >
                  <MenuIcon className="w-6 h-6" />
                </motion.div>
              )}
            </AnimatePresence>
          </Button>
        </motion.div>
      </div>

      <motion.div
        initial={{ scaleX: 0 }}
        animate={{ scaleX: 1 }}
        transition={{ duration: 0.6, ease: "easeOut", delay: 0.3 }}
        className="absolute bottom-0 left-0 right-0 h-px bg-gradient-to-r from-transparent via-foreground/20 to-transparent"
      />

      <AnimatePresence>
        {isOpen && (
          <motion.div
            initial={{ opacity: 0, height: 0 }}
            animate={{ opacity: 1, height: "auto" }}
            exit={{ opacity: 0, height: 0 }}
            transition={{ duration: 0.3, ease: "easeInOut" }}
            className="md:hidden overflow-hidden"
          >
            <motion.div
              initial={{ opacity: 0 }}
              animate={{ opacity: 1 }}
              exit={{ opacity: 0 }}
              transition={{ duration: 0.2, delay: 0.1 }}
              className="flex flex-col gap-4 py-4"
            >
              {navItems.map((item, index) => (
                <motion.div
                  key={item.label}
                  initial={{ opacity: 0, x: -20 }}
                  animate={{ opacity: 1, x: 0 }}
                  exit={{ opacity: 0, x: -20 }}
                  transition={{ duration: 0.2, delay: index * 0.1 }}
                >
                  <Link
                    href={item.href}
                    className="flex flex-row items-center gap-1 py-2"
                    onClick={() => setIsOpen(false)}
                  >
                    <p className="text-sm font-medium">{item.label}</p>
                    <ChevronDownIcon className="w-4 h-4" />
                  </Link>
                </motion.div>
              ))}
              <motion.div
                initial={{ opacity: 0, x: -20 }}
                animate={{ opacity: 1, x: 0 }}
                exit={{ opacity: 0, x: -20 }}
                transition={{ duration: 0.2, delay: navItems.length * 0.1 }}
                className="flex flex-col gap-2 pt-2"
              >
                <ThemeToggle />
                <Button variant="ghost" className="w-full">
                  <Link href={authPath}>Log In</Link>
                </Button>
                <Button variant="default" className="w-full">
                  <Link href={authPath}>Start for free</Link>
                </Button>
              </motion.div>
            </motion.div>
          </motion.div>
        )}
      </AnimatePresence>
    </div>
  );
}
components/templates/notio/stats.tsx
"use client";

import { motion } from "motion/react";
import Counter from "@/components/counter";

export default function Stats() {
  const stats: { value: number; suffix?: string; description: string }[] = [
    { value: 500, suffix: "K+", description: "Daily Active Users" },
    { value: 95, suffix: "%", description: "Transcription Accuracy" },
    { value: 12, description: "Hours Saved Per Month" },
  ];

  return (
    <div className="flex flex-col gap-4 md:gap-20 items-center justify-center py-6 lg:py-24 px-4 lg:px-2">
      <motion.section
        initial={{ opacity: 0, y: 30 }}
        whileInView={{ opacity: 1, y: 0 }}
        viewport={{ once: true, margin: "-100px" }}
        transition={{ duration: 0.6, ease: "easeOut" }}
        className="space-y-4 text-center max-w-3xl 4xl:max-w-4xl"
      >
        <h2 className="text-2xl md:text-5xl 4xl:text-6xl font-aleo tracking-tight">
          Words + Context = Better Notes
        </h2>
        <p className="text-muted-foreground text-base leading-relaxed 4xl:text-3xl">
          Our users save an average of 2.5 hours every week—time better spent on
          what actually moves the needle.
        </p>
      </motion.section>

      <section className="flex flex-col md:flex-row items-center justify-center w-full max-w-4xl">
        {stats.map((stat, index) => (
          <div
            className="flex flex-col lg:flex-row items-center justify-center gap-4"
            key={stat.description}
          >
            <motion.div
              initial={{ opacity: 0, y: 40 }}
              whileInView={{ opacity: 1, y: 0 }}
              viewport={{ once: true, margin: "-50px" }}
              transition={{
                duration: 0.5,
                delay: 0.1 + index * 0.15,
                ease: "easeOut",
              }}
              className={`flex flex-col items-center justify-center px-0 md:px-4 py-4 md:py-6 md:py-0 w-full md:w-auto h-14 ${
                index < stats.length - 1
                  ? "md:border-r border-muted-foreground/20 dark:border-muted-foreground/40"
                  : ""
              }`}
            >
              <p className="text-4xl md:text-5xl 4xl:text-6xl tracking-tight mb-2 min-w-xs md:min-w-64 lg:min-w-xs text-center font-semibold">
                <Counter value={stat.value} suffix={stat.suffix} />
              </p>
              <p className="text-center 4xl:text-2xl">
                {stat.description}
              </p>
            </motion.div>
            {index < stats.length - 1 && (
              <div className="block md:hidden w-14 mx-auto my-4 mb-8 border-b dark:border-muted-foreground/20 border-muted-foreground/40" />
            )}
          </div>
        ))}
      </section>
    </div>
  );
}
components/templates/notio/theme-toggle.tsx
"use client";

import { Moon, Sun } from "lucide-react";
import { useTheme } from "next-themes";
import { useEffect, useState } from "react";
import { ToggleGroup, ToggleGroupItem } from "@/components/ui/toggle-group";

export function ThemeToggle() {
  const { resolvedTheme, setTheme } = useTheme();
  const [mounted, setMounted] = useState(false);

  useEffect(() => {
    setMounted(true);
  }, []);

  if (!mounted) {
    return <div className="border border-border h-9 w-[72px] rounded-md" />;
  }

  return (
    <ToggleGroup
      value={resolvedTheme ? [resolvedTheme] : []}
      onValueChange={(value) => {
        if (value[0]) setTheme(value[0]);
      }}
      className="border border-border overflow-hidden"
    >
      <ToggleGroupItem value="dark" aria-label="Dark theme" className="opacity-20 dark:opacity-100">
        <Moon className="h-4 w-4 4xl:size-5" />
      </ToggleGroupItem>
      <ToggleGroupItem value="light" aria-label="Light theme" className="dark:opacity-30 !bg-zinc-200 dark:!bg-transparent">
        <Sun className="h-4 w-4 4xl:size-5" />
      </ToggleGroupItem>
    </ToggleGroup>
  );
}
components/templates/notio/notio-themes.tsx
import { ThemeConfigProps } from "@/types/utils/configs/theme";

export const themesConfig: ThemeConfigProps = [
    {
        name: "basil",
        light: {
            background: "oklch(0.9794 0.0013 286.3756)",
            foreground: "oklch(0.3758 0.0186 285.4678)",
            card: "oklch(1.0000 0 0)",
            "card-foreground": "oklch(0.3758 0.0186 285.4678)",
            popover: "oklch(1.0000 0 0)",
            "popover-foreground": "oklch(0.3758 0.0186 285.4678)",
            primary: "oklch(0.6292 0.0458 300.3136)",
            "primary-foreground": "oklch(0.9794 0.0013 286.3756)",
            secondary: "oklch(0.9031 0.0152 298.5434)",
            "secondary-foreground": "oklch(0.3758 0.0186 285.4678)",
            muted: "oklch(0.8947 0.0084 301.3422)",
            "muted-foreground": "oklch(0.5414 0.0217 292.2174)",
            accent: "oklch(0.8012 0.0473 359.4338)",
            "accent-foreground": "oklch(0.3458 0.0257 359.0803)",
            destructive: "oklch(0.6430 0.0948 19.9992)",
            "destructive-foreground": "oklch(0.9794 0.0013 286.3756)",
            border: "oklch(0.8506 0.0141 299.7598)",
            input: "oklch(0.9370 0.0070 304.2379)",
            ring: "oklch(0.6292 0.0458 300.3136)",
            "chart-1": "oklch(0.6292 0.0458 300.3136)",
            "chart-2": "oklch(0.8012 0.0473 359.4338)",
            "chart-3": "oklch(0.7085 0.0470 170.9357)",
            "chart-4": "oklch(0.8317 0.0541 77.1773)",
            "chart-5": "oklch(0.7963 0.0389 256.9824)",
            sidebar: "oklch(0.9570 0.0054 297.7244)",
            "sidebar-foreground": "oklch(0.3758 0.0186 285.4678)",
            "sidebar-primary": "oklch(0.6292 0.0458 300.3136)",
            "sidebar-primary-foreground": "oklch(0.9794 0.0013 286.3756)",
            "sidebar-accent": "oklch(0.8012 0.0473 359.4338)",
            "sidebar-accent-foreground": "oklch(0.3458 0.0257 359.0803)",
            "sidebar-border": "oklch(0.8777 0.0113 303.0910)",
            "sidebar-ring": "oklch(0.6292 0.0458 300.3136)",
            "gradient-start": "#FFFFFF",
            "gradient-mid-light": "#B794F6",
            "gradient-mid-dark": "#9F7AEA",
            "gradient-end-light": "#805AD5",
            "gradient-end-dark": "#B794F6",
            "gradient-orb-base": "#B794F6",
            "orb-color-light": "rgba(183, 148, 246, 0.35)",
            "orb-color-dark": "rgba(159, 122, 234, 0.35)",
            "orb-color-dark-fade": "rgba(159, 122, 234, 0.15)",
        },
        dark: {
            background: "oklch(0 0 0)",
            foreground: "oklch(0.9134 0.0135 290.7338)",
            card: "oklch(0 0 0)",
            "card-foreground": "oklch(0.9134 0.0135 290.7338)",
            popover: "oklch(0.2627 0.0187 294.2463)",
            "popover-foreground": "oklch(0.9134 0.0135 290.7338)",
            primary: "oklch(0.7233 0.0476 302.2941)",
            "primary-foreground": "oklch(0.2220 0.0136 291.8061)",
            secondary: "oklch(0.25 0.0197 302.2941)",
            "secondary-foreground": "oklch(0.9134 0.0135 290.7338)",
            muted: "oklch(0.2642 0.0207 297.4587)",
            "muted-foreground": "oklch(0.7052 0.0162 298.4371)",
            accent: "oklch(0.3239 0.0208 309.6535)",
            "accent-foreground": "oklch(0.8516 0.0399 2.1095)",
            destructive: "oklch(0.7019 0.0836 19.3769)",
            "destructive-foreground": "oklch(0.2220 0.0136 291.8061)",
            border: "oklch(0.3162 0.0213 292.7792)",
            input: "oklch(0.2958 0.0199 293.4813)",
            ring: "oklch(0.7233 0.0476 302.2941)",
            "chart-1": "oklch(0.7233 0.0476 302.2941)",
            "chart-2": "oklch(0.8516 0.0399 2.1095)",
            "chart-3": "oklch(0.7085 0.0470 170.9357)",
            "chart-4": "oklch(0.8317 0.0541 77.1773)",
            "chart-5": "oklch(0.7963 0.0389 256.9824)",
            sidebar: "oklch(0.2057 0.0140 298.2309)",
            "sidebar-foreground": "oklch(0.9134 0.0135 290.7338)",
            "sidebar-primary": "oklch(0.7233 0.0476 302.2941)",
            "sidebar-primary-foreground": "oklch(0.2220 0.0136 291.8061)",
            "sidebar-accent": "oklch(0.3239 0.0208 309.6535)",
            "sidebar-accent-foreground": "oklch(0.8516 0.0399 2.1095)",
            "sidebar-border": "oklch(0.2958 0.0199 293.4813)",
            "sidebar-ring": "oklch(0.7233 0.0476 302.2941)",
            "gradient-start": "#000000",
            "gradient-mid-light": "#9F7AEA",
            "gradient-mid-dark": "#805AD5",
            "gradient-end-light": "#B794F6",
            "gradient-end-dark": "#B794F6",
            "gradient-orb-base": "#9F7AEA",
            "orb-color-light": "rgba(159, 122, 234, 0.35)",
            "orb-color-dark": "rgba(159, 122, 234, 0.35)",
            "orb-color-dark-fade": "rgba(159, 122, 234, 0.15)",
        }
    },
    {
        name: "forest",
        light: {
            background: "oklch(0.9911 0 0)",
            foreground: "oklch(0.2046 0 0)",
            card: "oklch(0.9911 0 0)",
            "card-foreground": "oklch(0.2046 0 0)",
            popover: "oklch(0.9911 0 0)",
            "popover-foreground": "oklch(0.4386 0 0)",
            primary: "oklch(0.8348 0.1302 160.9080)",
            "primary-foreground": "oklch(0.9911 0 0)",
            secondary: "oklch(0.9940 0 0)",
            "secondary-foreground": "oklch(0.2046 0 0)",
            muted: "oklch(0.9461 0 0)",
            "muted-foreground": "oklch(0.2435 0 0)",
            accent: "oklch(0.9461 0 0)",
            "accent-foreground": "oklch(0.2435 0 0)",
            destructive: "oklch(0.5523 0.1927 32.7272)",
            "destructive-foreground": "oklch(0.9934 0.0032 17.2118)",
            border: "oklch(0.9037 0 0)",
            input: "oklch(0.9731 0 0)",
            ring: "oklch(0.8348 0.1302 160.9080)",
            "chart-1": "oklch(0.8348 0.1302 160.9080)",
            "chart-2": "oklch(0.6231 0.1880 259.8145)",
            "chart-3": "oklch(0.6056 0.2189 292.7172)",
            "chart-4": "oklch(0.7686 0.1647 70.0804)",
            "chart-5": "oklch(0.6959 0.1491 162.4796)",
            sidebar: "oklch(0.9911 0 0)",
            "sidebar-foreground": "oklch(0.5452 0 0)",
            "sidebar-primary": "oklch(0.8348 0.1302 160.9080)",
            "sidebar-primary-foreground": "oklch(0.2626 0.0147 166.4589)",
            "sidebar-accent": "oklch(0.9461 0 0)",
            "sidebar-accent-foreground": "oklch(0.2435 0 0)",
            "sidebar-border": "oklch(0.9037 0 0)",
            "sidebar-ring": "oklch(0.8348 0.1302 160.9080)",
            "gradient-start": "#FFFFFF",
            "gradient-mid-light": "#86EFAC",
            "gradient-mid-dark": "#4ADE80",
            "gradient-end-light": "#22C55E",
            "gradient-end-dark": "#86EFAC",
            "gradient-orb-base": "#86EFAC",
            "orb-color-light": "rgba(134, 239, 172, 0.35)",
            "orb-color-dark": "rgba(74, 222, 128, 0.35)",
            "orb-color-dark-fade": "rgba(74, 222, 128, 0.15)",
        },
        dark: {
            background: "oklch(0 0 0)",
            foreground: "oklch(0.9288 0.0126 255.5078)",
            card: "oklch(0 0 0)",
            "card-foreground": "oklch(0.9288 0.0126 255.5078)",
            popover: "oklch(0.2603 0 0)",
            "popover-foreground": "oklch(0.7348 0 0)",
            primary: "oklch(0.4365 0.1044 156.7556)",
            "primary-foreground": "oklch(0.1822 0 0)",
            secondary: "oklch(0.2603 0 0)",
            "secondary-foreground": "oklch(0.9851 0 0)",
            muted: "oklch(0.2393 0 0)",
            "muted-foreground": "oklch(0.7122 0 0)",
            accent: "oklch(0.3132 0 0)",
            "accent-foreground": "oklch(0.9851 0 0)",
            destructive: "oklch(0.3123 0.0852 29.7877)",
            "destructive-foreground": "oklch(0.9368 0.0045 34.3092)",
            border: "oklch(0.2809 0 0)",
            input: "oklch(0.2603 0 0)",
            ring: "oklch(0.8003 0.1821 151.7110)",
            "chart-1": "oklch(0.8003 0.1821 151.7110)",
            "chart-2": "oklch(0.7137 0.1434 254.6240)",
            "chart-3": "oklch(0.7090 0.1592 293.5412)",
            "chart-4": "oklch(0.8369 0.1644 84.4286)",
            "chart-5": "oklch(0.7845 0.1325 181.9120)",
            sidebar: "oklch(0.1822 0 0)",
            "sidebar-foreground": "oklch(0.6301 0 0)",
            "sidebar-primary": "oklch(0.4365 0.1044 156.7556)",
            "sidebar-primary-foreground": "oklch(0.9213 0.0135 167.1556)",
            "sidebar-accent": "oklch(0.3132 0 0)",
            "sidebar-accent-foreground": "oklch(0.9851 0 0)",
            "sidebar-border": "oklch(0.2809 0 0)",
            "sidebar-ring": "oklch(0.8003 0.1821 151.7110)",
            "gradient-start": "#000000",
            "gradient-mid-light": "#4ADE80",
            "gradient-mid-dark": "#22C55E",
            "gradient-end-light": "#86EFAC",
            "gradient-end-dark": "#86EFAC",
            "gradient-orb-base": "#4ADE80",
            "orb-color-light": "rgba(74, 222, 128, 0.35)",
            "orb-color-dark": "rgba(74, 222, 128, 0.35)",
            "orb-color-dark-fade": "rgba(74, 222, 128, 0.15)",
        }
    },
    {
        name: "sunny",
        light: {
            background: "oklch(1 0 0)",
            foreground: "oklch(0.145 0 0)",
            card: "oklch(1 0 0)",
            "card-foreground": "oklch(0.145 0 0)",
            popover: "oklch(1 0 0)",
            "popover-foreground": "oklch(0.145 0 0)",
            primary: "oklch(0.713 0.1305 61.77)",
            "primary-foreground": "oklch(0.985 0 0)",
            secondary: "oklch(0.4823 0.1365 35.3)",
            "secondary-foreground": "oklch(0.205 0 0)",
            muted: "oklch(0.97 0 0)",
            "muted-foreground": "oklch(0.556 0 0)",
            accent: "oklch(0.97 0 0)",
            "accent-foreground": "oklch(0.205 0 0)",
            destructive: "oklch(0.58 0.22 27)",
            "destructive-foreground": "oklch(0.985 0 0)",
            border: "oklch(0 0 0 / 20%)",
            input: "oklch(0.922 0 0)",
            ring: "oklch(0.708 0 0)",
            "chart-1": "oklch(0.809 0.105 251.813)",
            "chart-2": "oklch(0.623 0.214 259.815)",
            "chart-3": "oklch(0.546 0.245 262.881)",
            "chart-4": "oklch(0.488 0.243 264.376)",
            "chart-5": "oklch(0.424 0.199 265.638)",
            sidebar: "oklch(0.985 0 0)",
            "sidebar-foreground": "oklch(0.145 0 0)",
            "sidebar-primary": "oklch(0.205 0 0)",
            "sidebar-primary-foreground": "oklch(0.985 0 0)",
            "sidebar-accent": "oklch(0.97 0 0)",
            "sidebar-accent-foreground": "oklch(0.205 0 0)",
            "sidebar-border": "oklch(0.922 0 0)",
            "sidebar-ring": "oklch(0.708 0 0)",
            "gradient-start": "#FFFFFF",
            "gradient-mid-light": "#DC8E43",
            "gradient-mid-dark": "#C76829",
            "gradient-end-light": "#9C3A21",
            "gradient-end-dark": "#DC8E43",
            "gradient-orb-base": "#E9B88A",
            "orb-color-light": "rgba(233, 184, 138, 0.35)",
            "orb-color-dark": "rgba(199, 104, 41, 0.35)",
            "orb-color-dark-fade": "rgba(199, 104, 41, 0.15)",
        },
        dark: {
            background: "oklch(0 0 0)",
            foreground: "oklch(1 0 0)",
            card: "oklch(0 0 0)",
            "card-foreground": "oklch(0.985 0 0)",
            popover: "oklch(0.205 0 0)",
            "popover-foreground": "oklch(0.985 0 0)",
            primary: "oklch(0.713 0.1305 61.77)",
            "primary-foreground": "oklch(0.145 0 0)",
            secondary: "oklch(0.618 0.1416 50.24)",
            "secondary-foreground": "oklch(0.985 0 0)",
            muted: "oklch(0.269 0 0)",
            "muted-foreground": "oklch(0.708 0 0)",
            accent: "oklch(0.371 0 0)",
            "accent-foreground": "oklch(0.985 0 0)",
            destructive: "oklch(0.704 0.191 22.216)",
            "destructive-foreground": "oklch(0.145 0 0)",
            border: "oklch(1 0 0 / 10%)",
            input: "oklch(1 0 0 / 15%)",
            ring: "oklch(0.556 0 0)",
            "chart-1": "oklch(0.809 0.105 251.813)",
            "chart-2": "oklch(0.623 0.214 259.815)",
            "chart-3": "oklch(0.546 0.245 262.881)",
            "chart-4": "oklch(0.488 0.243 264.376)",
            "chart-5": "oklch(0.424 0.199 265.638)",
            sidebar: "oklch(0.205 0 0)",
            "sidebar-foreground": "oklch(0.985 0 0)",
            "sidebar-primary": "oklch(0.488 0.243 264.376)",
            "sidebar-primary-foreground": "oklch(0.985 0 0)",
            "sidebar-accent": "oklch(0.269 0 0)",
            "sidebar-accent-foreground": "oklch(0.985 0 0)",
            "sidebar-border": "oklch(1 0 0 / 10%)",
            "sidebar-ring": "oklch(0.556 0 0)",
            "gradient-start": "#000000",
            "gradient-mid-light": "#C76829",
            "gradient-mid-dark": "#9C3A21",
            "gradient-end-light": "#DC8E43",
            "gradient-end-dark": "#DC8E43",
            "gradient-orb-base": "#C76829",
            "orb-color-light": "rgba(199, 104, 41, 0.35)",
            "orb-color-dark": "rgba(199, 104, 41, 0.35)",
            "orb-color-dark-fade": "rgba(199, 104, 41, 0.15)",
        }
    }
]
components/theme/color-theme-switcher.tsx
"use client";

import { Button, buttonVariants } from "@/components/ui/button";
import {
  DropdownMenu,
  DropdownMenuContent,
  DropdownMenuItem,
  DropdownMenuTrigger,
} from "@/components/ui/dropdown-menu";
import { cn } from "@/lib/utils";
import { useColorTheme } from "@/utils/context/color-theme-context";
import { Check, Palette } from "lucide-react";
import { motion } from "motion/react";

export function ColorThemeSwitcher({ themeNames, themeSwatches }: { themeNames: string[], themeSwatches: Record<string, string> }) {
  const { colorTheme, setColorTheme } = useColorTheme();

  const handleThemeChange = (theme: string) => {
    setColorTheme(theme);
  };

  return (
    <motion.div
      initial={{ opacity: 0, scale: 0.8 }}
      animate={{ opacity: 1, scale: 1 }}
      transition={{ duration: 0.3, ease: "easeOut" }}
      className="fixed bottom-4 right-4 z-50"
    >
      <DropdownMenu>
        <DropdownMenuTrigger
          className={cn(
            buttonVariants({ variant: "outline", size: "icon" }),
            "h-12 w-12 rounded-full shadow-lg hover:shadow-xl transition-all",
            "bg-background/80 backdrop-blur-sm border-border",
            "hover:scale-110 active:scale-95"
          )}
          aria-label="Change color theme"
        >
          <Palette className="h-5 w-5" />
        </DropdownMenuTrigger>        <DropdownMenuContent
          align="end"
          side="top"
          sideOffset={8}
          className="min-w-[140px]"
        >
          {themeNames.map((theme) => {
            const isSelected = colorTheme === theme;
            const swatchColor = themeSwatches[theme];

            return (
              <DropdownMenuItem
                key={theme}
                onClick={() => handleThemeChange(theme)}
                className={cn(
                  "flex items-center gap-2 cursor-pointer",
                  isSelected && "bg-accent"
                )}
              >
                <div
                  className="h-4 w-4 rounded-full border border-border"
                  style={{ backgroundColor: swatchColor }}
                  aria-hidden="true"
                />
                <span className="flex-1 capitalize">{theme}</span>
                {isSelected && (
                  <Check className="h-4 w-4 text-primary" />
                )}
              </DropdownMenuItem>
            );
          })}
        </DropdownMenuContent>
      </DropdownMenu>
    </motion.div>
  );
}
components/theme/theme-variables.tsx
"use client";

import { useEffect } from "react";
import { useTheme } from "next-themes";
import { useColorTheme } from "@/utils/context/color-theme-context";
import { ThemeConfigProps } from "@/types/utils/configs/theme";

export function ThemeVariables({ themesConfig }: { themesConfig: ThemeConfigProps }) {
  const { resolvedTheme } = useTheme();
  const { colorTheme } = useColorTheme();

  useEffect(() => {
    const colorThemeConfig = themesConfig.find((theme) => theme.name === colorTheme);

    if (!colorThemeConfig) {
      console.warn(`Theme "${colorTheme}" not found`);
      return;
    }

    const isDark =
      resolvedTheme === "dark"
        ? true
        : resolvedTheme === "light"
          ? false
          : document.documentElement.classList.contains("dark");

    const colors = isDark ? colorThemeConfig.dark : colorThemeConfig.light;

    const root = document.documentElement;
    Object.entries(colors).forEach(([key, value]) => {
      root.style.setProperty(`--${key}`, value);
    });
  }, [resolvedTheme, colorTheme]);

  return null;
}
utils/context/color-theme-context.tsx
"use client";

import { createContext, ReactNode, useContext, useEffect, useState } from "react";

type ColorThemeContextType = {
  colorTheme: string;
  setColorTheme: (theme: string) => void;
};

const ColorThemeContext = createContext<ColorThemeContextType | undefined>(undefined);

export function ColorThemeProvider({ children }: { children: ReactNode }) {
  const [colorTheme, setColorThemeState] = useState<string>("sunny");
  const [mounted, setMounted] = useState(false);

  useEffect(() => {
    const saved = localStorage.getItem("color-theme");
    if (saved && (saved === "basil" || saved === "forest" || saved === "sunny")) {
      setColorThemeState(saved);
    }
    setMounted(true);
  }, []);

  const setColorTheme = (theme: string) => {
    setColorThemeState(theme);
    if (typeof window !== "undefined") {
      localStorage.setItem("color-theme", theme);
    }
  };

  return (
    <ColorThemeContext.Provider value={{ colorTheme, setColorTheme }}>
      {children}
    </ColorThemeContext.Provider>
  );
}

export function useColorTheme() {
  const context = useContext(ColorThemeContext);
  if (!context) {
    throw new Error("useColorTheme must be used within ColorThemeProvider");
  }
  return context;
}
utils/providers/theme-provider.tsx
"use client";

import * as React from "react";
import { ThemeProvider as NextThemesProvider } from "next-themes";

export function ThemeProvider({
  children,
  ...props
}: React.ComponentProps<typeof NextThemesProvider>) {
  return <NextThemesProvider {...props}>{children}</NextThemesProvider>;
}
blocks/logo-cloud.tsx
"use client";

import { useMediaQuery } from "@/hooks/use-media-query";
import { StaticImageType } from "@/types/components/image";
import { motion, type Variants } from "motion/react";
import Image from "next/image";

export default function LogoCloud() {
  const is4xl = useMediaQuery("(min-width: 2560px)");
  const logos: StaticImageType[] = [
    {
      name: "Notion",
      image:
        "/logo/notion.svg",
      size: {
        width: is4xl ? 120 : 100,
        height: is4xl ? 120 : 100,
      },
    },
    {
      name: "Framer",
      image:
        "/logo/framer.svg",
      size: {
        width: is4xl ? 120 : 100,
        height: is4xl ? 120 : 100,
      },
    },
    {
      name: "Webflow",
      image:
        "/logo/webflow.svg",
      size: {
        width: is4xl ? 120 : 100,
        height: is4xl ? 120 : 100,
      },
    },
    {
      name: "Slack",
      image:
        "/logo/slack.svg",
      size: {
        width: is4xl ? 120 : 100,
        height: is4xl ? 120 : 100,
      },
    },
    {
      name: "Coinbase",
      image:
        "/logo/coinbase.svg",
      size: {
        width: is4xl ? 120 : 100,
        height: is4xl ? 120 : 100,
      },
    },
    {
      name: "Uber",
      image:
        "/logo/uber.svg",
      size: {
        width: is4xl ? 80 : 65,
        height: is4xl ? 80 : 65,
      },
    },
    {
      name: "Loom",
      image:
        "/logo/loom.svg",
      size: {
        width: is4xl ? 120 : 100,
        height: is4xl ? 120 : 100,
      },
    },
  ];

  const containerVariants: Variants = {
    hidden: { opacity: 0 },
    visible: {
      opacity: 1,
      transition: {
        staggerChildren: 0.1,
        delayChildren: 0.3,
      },
    },
  };

  const itemVariants: Variants = {
    hidden: { opacity: 0, y: 20 },
    visible: {
      opacity: 1,
      y: 0,
      transition: {
        duration: 0.5,
        ease: [0.25, 0.1, 0.25, 1],
      },
    },
  };

  return (
    <motion.div
      initial={{ opacity: 0 }}
      animate={{ opacity: 1 }}
      transition={{ duration: 0.6 }}
      className="flex flex-col gap-8 md:gap-4 items-center justify-center mt-4 max-w-6xl 2xl:max-w-full mx-auto"
    >
      <motion.p
        initial={{ opacity: 0, y: 10 }}
        animate={{ opacity: 1, y: 0 }}
        transition={{ duration: 0.5, delay: 0.2 }}
        className="text-center font-light 4xl:text-3xl"
      >
        Your favorite companies are our partners
      </motion.p>
      <motion.div
        variants={containerVariants}
        initial="hidden"
        animate="visible"
        className="flex flex-wrap items-center justify-center gap-6 md:gap-8 lg:gap-12"
      >
        {logos.map((logo) => (
          <motion.div
            key={logo.name}
            variants={itemVariants}
            whileHover={{ scale: 1.1 }}
            transition={{ duration: 0.2 }}
          >
            <Image
              src={logo.image}
              alt={logo.name}
              className="invert dark:invert-0"
              width={logo.size?.width}
              height={logo.size?.height}
            />
          </motion.div>
        ))}
      </motion.div>
    </motion.div>
  );
}
blocks/pricing/pricing.tsx
"use client";
import { motion } from "motion/react";
import PricingCard from "./pricing-card";

export default function Pricing() {
  const pricings: {
    price: number;
    features: string[];
    isFree?: boolean;
    slug: string;
  }[] = [
    {
      price: 0,
      features: [
        "30 minutes per month",
        "Real-time transcription",
        "Basic note-taking",
        "5 saved transcripts",
        "Search your calls",
      ],
      slug: "free",
      isFree: true,
    },
    {
      price: 10,
      features: [
        "Unlimited recording time",
        "Unlimited saved transcripts",
        "AI-powered summaries",
        "Custom tags & categories",
      ],
      slug: "Paid",
    },
  ];

  return (
    <div className="flex flex-col gap-8 4xl:gap-16 items-center justify-center md:p-4 lg:mb-20">
      <motion.section
        initial={{ opacity: 0, y: 30 }}
        whileInView={{ opacity: 1, y: 0 }}
        viewport={{ once: true, margin: "-100px" }}
        transition={{ duration: 0.6, ease: "easeOut" }}
        className="space-y-2 md:space-y-4 text-center"
      >
        <h2 className="text-2xl font-normal font-aleo tracking-tight text-foreground md:text-4xl 4xl:text-6xl">
          Simple, Transparent pricing
        </h2>
        <p className="text-muted-foreground text-base leading-relaxed 4xl:text-3xl">
          Start free. Upgrade when you're ready. Cancel anytime.
        </p>
      </motion.section>
      <motion.section
        initial={{ opacity: 0, y: 40, scale: 0.95 }}
        whileInView={{ opacity: 1, y: 0, scale: 1 }}
        viewport={{ once: true, margin: "-50px" }}
        transition={{ duration: 0.5, delay: 0.1, ease: "easeOut" }}
        className="flex flex-wrap items-center justify-center max-sm:gap-4"
      >
        {pricings.map((pricing, index) => (
          <div
            key={pricing.slug}
            className={index !== 0 ? "md:-ml-3" : ""}
          >
            <PricingCard {...pricing} />
          </div>
        ))}
      </motion.section>
    </div>
  );
}
blocks/pricing/pricing-card.tsx
import { cn } from "@/lib/utils";
import {
  Card,
  CardContent,
  CardDescription,
  CardHeader,
  CardTitle,
} from "@/components/ui/card";
import { PricingCardProps } from "@/types/components/pricing";
import { Badge } from "@/components/ui/badge";
import { Button } from "@/components/ui/button";
import { Check } from "lucide-react";

export default function PricingCard({
  features,
  price,
  slug,
  isFree,
  buttonText,
  className,
}: PricingCardProps) {
  return (
    <Card
      className={cn(
        "min-w-80 md:min-w-xs 4xl:min-w-md p-8",
        !isFree &&
          "bg-gradient-to-tl from-transparent via-transparent dark:via-secondary/5 to-primary/10 dark:to-secondary/50 border border-primary/20 dark:border-primary/50 min-h-96 4xl:min-h-120 backdrop-blur-xl",
        className
      )}
    >
      <CardHeader className="p-0">
        <div className="flex flex-col gap-6 w-full 4xl:gap-8">
          <Badge
            variant="outline"
            className={cn(
              "h-5 w-fit rounded-sm bg-background px-2.5 py-0.5 text-xs font-semibold leading-none 4xl:px-6 4xl:py-4 4xl:text-lg dark:border-foreground",
              !isFree && "border-none dark:bg-foreground dark:text-background"
            )}
          >
            {slug.charAt(0).toUpperCase() + slug.slice(1)}
          </Badge>
          <CardTitle className="text-xl min-w-40 4xl:text-4xl">
            ${price} / month
          </CardTitle>
        </div>
      </CardHeader>
      <CardContent
        className="flex flex-col gap-8 w-full p-0"
      >
        <Button
          variant={isFree ? "outline" : "default"}
          className={cn(
            "w-full 4xl:h-14 4xl:text-lg",
            !isFree ? "bg-foreground hover:bg-foreground/90" : "w-full dark:border-foreground border-foreground"
          )}
        >
          {buttonText ?? (isFree ? "Start for free" : "Get started")}
        </Button>
        <CardDescription className="text-foreground">
          {!isFree && (
            <p className="font-semibold mb-3 4xl:text-2xl">
              Everything in free plus:
            </p>
          )}
          <ul className="flex flex-col gap-2 4xl:gap-4 4xl:text-xl">
            {features.map((feature) => (
              <li key={feature} className="flex items-center gap-2">
                <Check className="size-4 shrink-0" />
                {feature}
              </li>
            ))}
          </ul>
        </CardDescription>
      </CardContent>
    </Card>
  );
}
blocks/team-member/team.tsx
"use client";
import { cn } from "@/lib/utils";
import { TeamMember } from "@/types/components/team-member";
import { motion } from "motion/react";
import Image from "next/image";
import BlurredOrb from "@/components/blurred-orb";
import { GridPattern } from "@/components/ui/grid-pattern";
import TeamMemberAvatar from "./team-member-avatar";
import { useMediaQuery } from "@/hooks/use-media-query";

export default function Team() {
  const team: Omit<TeamMember, "index">[] = [
    {
      name: "Olivia Martin",
      role: "Co-Founder",
      image: "/illustrations/avatar-2.svg",
    },
    {
      name: "John Doe",
      role: "CTO",
      image: "/illustrations/avatar-1.svg",
    },
    {
      name: "Jim Beam",
      role: "CFO",
      image: "/illustrations/avatar-3.svg",
    },
  ];

  const isMobile = useMediaQuery("(max-width: 768px)");

  return (
    <div className="relative flex flex-col gap-8 lg:gap-0 items-center justify-center p-4 mt-28 mb-4 md:mt-40 lg:mb-2">
      <section className="flex flex-col items-center justify-center">
        <motion.div
          initial={{ opacity: 0 }}
          animate={{ opacity: 1 }}
          transition={{ duration: 1 }}
          className="absolute inset-0 -top-32"
        >
          <GridPattern
            width={isMobile ? 40 : 60}
            height={isMobile ? 40 : 60}
            x={-1}
            y={-1}
            className={cn(
              "dark:[mask-image:radial-gradient(200px_circle_at_center,white,transparent)] [mask-image:radial-gradient(200px_circle_at_center,white,transparent)] md:dark:[mask-image:radial-gradient(270px_circle_at_center,white,transparent)] md:[mask-image:radial-gradient(350px_circle_at_center,white,transparent)]"
            )}
          />
        </motion.div>

        <motion.div
          initial={{ opacity: 0, scale: 0.5 }}
          animate={{ opacity: 0.4, scale: 1 }}
          transition={{ duration: 0.8, ease: "easeOut" }}
          className="absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 max-md:space-y-4 z-10"
        >
          <BlurredOrb className="w-64 h-44 md:w-64 md:h-64 -rotate-45 opacity-70" />
          <BlurredOrb className="w-64 h-44 md:w-64 md:h-64 from-primary via-gradient-mid-light to-gradient-end-light -rotate-45 opacity-70" />
        </motion.div>

        <div className="relative h-44 w-70 z-10">
          <div className="absolute top-0 left-1/2 -translate-x-1/2">
            <TeamMemberAvatar member={{ ...team[0], index: 0 }} index={0} />
          </div>

          <div className="absolute bottom-0 left-0">
            <TeamMemberAvatar member={{ ...team[1], index: 1 }} index={1} />
          </div>

          <div className="absolute bottom-0 right-0">
            <TeamMemberAvatar member={{ ...team[2], index: 2 }} index={2} />
          </div>
        </div>
      </section>

      <motion.div
        initial={{ opacity: 0, y: 20 }}
        animate={{ opacity: 1, y: 0 }}
        transition={{ duration: 0.5, delay: 0.7 }}
      >
        <Image
          src="/logo/notio-logo-black.svg"
          alt="Team"
          width={120}
          height={120}
          className="md:w-40 lg:h-32 dark:hidden"
        />
        <Image
          src="/logo/notio-logo-white.svg"
          alt="Team"
          width={120}
          height={120}
          className="md:w-40 lg:h-32 hidden dark:block"
        />
      </motion.div>

      <motion.p
        initial={{ opacity: 0, y: 20 }}
        animate={{ opacity: 1, y: 0 }}
        transition={{ duration: 0.5, delay: 0.9 }}
        className="text-2xl md:text-4xl 4xl:text-6xl font-aleo text-center max-w-2xl 4xl:max-w-7xl"
      >
        Built by a nimble team of entrepreneurs
      </motion.p>
    </div>
  );
}
blocks/team-member/team-member-avatar.tsx
import { useMediaQuery } from "@/hooks/use-media-query";
import { TeamMember } from "@/types/components/team-member";
import { AnimatePresence, motion } from "motion/react";
import Image from "next/image";
import { useState } from "react";

export default function TeamMemberAvatar({
  member,
  index,
}: {
  member: TeamMember;
  index: number;
}) {
  const [isHovered, setIsHovered] = useState(false);
  const isMobile = useMediaQuery("(max-width: 768px)");

  return (
    <motion.div
      className="relative"
      initial={{ opacity: 0, scale: 0.5, y: 20 }}
      animate={{ opacity: 1, scale: 1, y: 0 }}
      transition={{
        duration: 0.5,
        delay: 0.2 + index * 0.15,
        type: "spring",
        stiffness: 150,
        damping: 15,
      }}
      onHoverStart={() => setIsHovered(true)}
      onHoverEnd={() => setIsHovered(false)}
    >
      <AnimatePresence>
        {(isHovered || (index === 0 && isMobile)) && (
          <motion.div
            initial={{ opacity: 0, y: 10 }}
            animate={{ opacity: 1, y: 0 }}
            exit={{ opacity: 0, y: 10 }}
            transition={{ duration: 0.2 }}
            className="absolute -top-16 4xl:-top-24 left-1/2 -translate-x-1/2 bg-foreground text-background px-4 py-2 rounded-lg whitespace-nowrap z-10 4xl:text-2xl"
          >
            <p className="4xl:text-2xl">{member.name}</p>
            <p className="text-sm text-zinc-400 4xl:text-xl">{member.role}</p>
          </motion.div>
        )}
      </AnimatePresence>
      <motion.div
        whileHover={{ scale: 1.05 }}
        transition={{ type: "spring", stiffness: 300 }}
        className="size-24 4xl:size-40 rounded-full flex items-center justify-center overflow-hidden cursor-pointer"
      >
        <Image
          src={member.image}
          alt={member.name}
          width={80}
          height={80}
          className="object-contain 4xl:size-40"
        />
      </motion.div>
    </motion.div>
  );
}
blocks/testimonial/testimonial.tsx
"use client";
import { motion } from "motion/react";
import TestimonialCard from "./testimonial-card";

export default function Testimonial() {
  return (
    <div className="pt-30 pb-12 lg:pt-54 px-4 max-w-6xl 4xl:max-w-[90rem] mx-auto flex flex-col gap-12">
      <motion.section
        initial={{ opacity: 0, y: 30 }}
        whileInView={{ opacity: 1, y: 0 }}
        viewport={{ once: true, margin: "-100px" }}
        transition={{ duration: 0.6, ease: "easeOut" }}
        className="space-y-4 text-center"
      >
        <h2 className="text-2xl font-normal font-aleo tracking-tight text-foreground md:text-4xl 4xl:text-6xl">
          Loved by thousands who work smarter,{" "}
          <br className="hidden md:block" />
          connect better, and never miss a beat
        </h2>
      </motion.section>

      <section className="grid grid-cols-1 md:grid-cols-6 gap-6">
        <motion.div
          initial={{ opacity: 0, y: 40 }}
          whileInView={{ opacity: 1, y: 0 }}
          viewport={{ once: true, margin: "-50px" }}
          transition={{ duration: 0.5, delay: 0.1, ease: "easeOut" }}
          className="md:col-span-3 h-full"
        >
          <TestimonialCard
            logo="https://cdn.brandfetch.io/id6B0ZV-R2/theme/light/logo.svg?c=1bxid64Mup7aczewSAYMX&t=1733967977437"
            quote="We tested Notio with over 2,000 freelancers on our platform, and the feedback was overwhelming. Consultants, designers, and developers all said the same thing—they finally felt confident taking client calls without the stress of frantic note-taking. One freelancer now she just reviews the transcript, adds a few annotations, and moves on with her day. That's time she can bill to another client."
            author="Mary Chen"
            role="VP of Product"
            avatarSrc="/illustrations/avatar-1.svg"
            className="h-full justify-between md:max-h-127"
          />
        </motion.div>

        <div className="md:col-span-3 flex flex-col gap-6">
          <motion.div
            initial={{ opacity: 0, y: 40 }}
            whileInView={{ opacity: 1, y: 0 }}
            viewport={{ once: true, margin: "-50px" }}
            transition={{ duration: 0.5, delay: 0.2, ease: "easeOut" }}
          >
            <TestimonialCard
              quote="I used to lose track of client feedback during calls. Now every revision request is documented perfectly. Game changer."
              author="Alex Thompson"
              role="Brand Designer"
              avatarSrc="/illustrations/avatar-2.svg"
            />
          </motion.div>
          <motion.div
            initial={{ opacity: 0, y: 40 }}
            whileInView={{ opacity: 1, y: 0 }}
            viewport={{ once: true, margin: "-50px" }}
            transition={{ duration: 0.5, delay: 0.3, ease: "easeOut" }}
          >
            <TestimonialCard
              quote="My clients love that I remember everything—even from months ago. It's helped me build deeper trust."
              author="Jordan Martinex"
              role="Executive Coach"
              avatarSrc="/illustrations/avatar-3.svg"
            />
          </motion.div>
        </div>
      </section>
    </div>
  );
}
blocks/testimonial/testimonial-card.tsx
import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar";
import {
  Card,
  CardContent,
  CardHeader,
} from "@/components/ui/card";
import { cn } from "@/lib/utils";
import { TestimonialProps } from "@/types/components/testimonial";
import Image from "next/image";

export default function TestimonialCard({
  logo,
  quote,
  author,
  role,
  avatarSrc,
  className,
}: TestimonialProps) {
  return (
    <Card
      style={{ backgroundColor: "var(--background)" }}
      className={cn(
        "flex h-full flex-col gap-2 border border-border bg-background text-card-foreground ring-0 shadow-none",
        className,
      )}
    >
      {logo && (
        <CardHeader className="md:pb-2 xl:pb-4">
          <Image
            src={logo}
            alt={logo}
            width={100}
            height={100}
            className="invert dark:invert-0"
          />
        </CardHeader>
      )}
      <CardContent className="flex-1">
        <p className="text-lg leading-relaxed 4xl:text-2xl">{quote}</p>
      </CardContent>
      <div
        style={{ backgroundColor: "var(--background)" }}
        className="flex items-center rounded-b-xl border-t-0 bg-background px-6 pt-4"
      >
        <div className="flex items-center gap-3">
          <Avatar className="size-10 md:size-12 4xl:size-20">
            <AvatarImage src={avatarSrc} alt={author} className="4xl:w-20 4xl:h-20" />
            <AvatarFallback className="4xl:text-2xl">{author[0]}</AvatarFallback>
          </Avatar>
          <div className="flex flex-col">
            <p className="text-base font-medium text-foreground 4xl:text-2xl">{author}</p>
            <p className="text-sm text-muted-foreground 4xl:text-2xl">{role}</p>
          </div>
        </div>
      </div>
    </Card>
  );
}
components/blurred-orb.tsx
import { cn } from "@/lib/utils";

export default function BlurredOrb({ className, style }: { className?: string, style?: React.CSSProperties }) {
  return (
    <div
      className={cn(
        "w-16 h-16 bg-gradient-to-b from-primary to-secondary rounded-full blur-3xl",
        className
      )}
      style={style}
    />
  );
}
components/orb-background.tsx
import { cn } from "@/lib/utils";

export default function OrbBackground({
  className,
}: {
  className?: string;
}) {
  return (
    <div
      className={cn(
        "absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-[40rem] h-[40rem] pointer-events-none",
        className
      )}
      style={{
        background: "radial-gradient(circle at center, var(--orb-color-light) 0%, var(--orb-color-dark-fade) 60%, transparent 100%)",
        filter: "blur(60px)",
        zIndex: 0,
      }}
    />
  );
}
components/animated-list.tsx
"use client";

import React, {
  ComponentPropsWithoutRef,
  useEffect,
  useMemo,
  useState,
} from "react";
import { AnimatePresence, motion, MotionProps } from "motion/react";

import { cn } from "@/lib/utils";

function AnimatedListItem({ children }: { children: React.ReactNode }) {
  const animations: MotionProps = {
    initial: { scale: 0, opacity: 0 },
    animate: { scale: 1, opacity: 1, originY: 0 },
    exit: { scale: 0, opacity: 0 },
    transition: { type: "spring", stiffness: 350, damping: 40 },
  };

  return (
    <motion.div {...animations} layout className="mx-auto w-full">
      {children}
    </motion.div>
  );
}

AnimatedListItem.displayName = "AnimatedListItem";

export { AnimatedListItem };

export interface AnimatedListProps extends ComponentPropsWithoutRef<"div"> {
  children: React.ReactNode;
  delay?: number;
  reverse?: boolean;
  loop?: boolean;
}

export const AnimatedList = React.memo(
  ({
    children,
    className,
    delay = 1000,
    reverse = true,
    loop = false,
    ...props
  }: AnimatedListProps) => {
    const [index, setIndex] = useState(0);
    const childrenArray = useMemo(
      () => React.Children.toArray(children),
      [children]
    );

    useEffect(() => {
      if (index < childrenArray.length - 1) {
        const timeout = setTimeout(() => {
          setIndex((prevIndex) => prevIndex + 1);
        }, delay);

        return () => clearTimeout(timeout);
      } else if (loop) {
        const timeout = setTimeout(() => {
          setIndex(0);
        }, 1000);

        return () => clearTimeout(timeout);
      }
    }, [index, delay, childrenArray.length, loop]);

    const itemsToShow = useMemo(() => {
      const result = childrenArray.slice(0, index + 1);
      return reverse ? result.reverse() : result;
    }, [index, childrenArray, reverse]);

    return (
      <div
        className={cn(`flex flex-col items-center gap-4`, className)}
        {...props}
      >
        <AnimatePresence>
          {itemsToShow.map((item) => (
            <AnimatedListItem key={(item as React.ReactElement).key}>
              {item}
            </AnimatedListItem>
          ))}
        </AnimatePresence>
      </div>
    );
  }
);

AnimatedList.displayName = "AnimatedList";
components/counter.tsx
"use client";
import { useEffect, useRef } from "react";
import { useInView, animate } from "motion/react";

function Counter({ value, suffix = "" }: { value: number; suffix?: string }) {
  const ref = useRef<HTMLSpanElement>(null);
  const isInView = useInView(ref, { once: true, margin: "-100px" });

  useEffect(() => {
    if (!isInView) return;
    const node = ref.current;
    if (!node) return;

    const controls = animate(0, value, {
      duration: 2.5,
      ease: "easeOut",
      onUpdate(latest) {
        node.textContent = Math.floor(latest).toString() + suffix;
      },
    });

    return () => controls.stop();
  }, [isInView, value, suffix]);

  return <span ref={ref}>0{suffix}</span>;
}

Counter.displayName = "Counter";

export default Counter;
hooks/use-countdown.tsx
import { useCallback, useEffect, useState } from "react";

function useCountdown(initialSeconds: number, autoStart: boolean = true) {
  const [seconds, setSeconds] = useState(initialSeconds);
  const [isRunning, setIsRunning] = useState(autoStart);

  useEffect(() => {
    if (!isRunning) return;

    const interval = setInterval(() => {
      setSeconds((prev) => prev + 1);
    }, 1000);

    return () => clearInterval(interval);
  }, [isRunning]);

  const toggle = useCallback(() => {
    setIsRunning((prev) => !prev);
  }, []);

  const reset = useCallback(() => {
    setSeconds(initialSeconds);
    setIsRunning(false);
  }, [initialSeconds]);

  const format = useCallback((totalSeconds: number) => {
    const mins = Math.floor(totalSeconds / 60);
    const secs = totalSeconds % 60;
    return `${mins.toString().padStart(2, "0")}:${secs
      .toString()
      .padStart(2, "0")}`;
  }, []);

  return { seconds, isRunning, toggle, reset, formatted: format(seconds) };
}

export default useCountdown;
hooks/use-media-query.tsx
import { useState, useEffect, useLayoutEffect } from "react";

type UseMediaQueryOptions = {
  defaultValue?: boolean;
  initializeWithValue?: boolean;
};

const IS_SERVER = typeof window === "undefined";

const useIsomorphicLayoutEffect = IS_SERVER ? useEffect : useLayoutEffect;

export function useMediaQuery(
  query: string,
  {
    defaultValue = false,
    initializeWithValue = true,
  }: UseMediaQueryOptions = {}
): boolean {
  const getMatches = (query: string): boolean => {
    if (IS_SERVER) {
      return defaultValue;
    }
    return window.matchMedia(query).matches;
  };

  const [matches, setMatches] = useState<boolean>(() => {
    if (initializeWithValue) {
      return getMatches(query);
    }
    return defaultValue;
  });

  useIsomorphicLayoutEffect(() => {
    if (IS_SERVER) return;

    const matchMedia = window.matchMedia(query);

    const handleChange = () => {
      setMatches(getMatches(query));
    };

    handleChange();

    if (matchMedia.addListener) {
      matchMedia.addListener(handleChange);
    } else {
      matchMedia.addEventListener("change", handleChange);
    }

    return () => {
      if (matchMedia.removeListener) {
        matchMedia.removeListener(handleChange);
      } else {
        matchMedia.removeEventListener("change", handleChange);
      }
    };
  }, [query]);

  return matches;
}
lib/utils.ts
import { clsx, type ClassValue } from "clsx"
import { twMerge } from "tailwind-merge"

export function cn(...inputs: ClassValue[]) {
  return twMerge(clsx(inputs))
}
components/ui/button.tsx
import { Button as ButtonPrimitive } from "@base-ui/react/button"
import { cva, type VariantProps } from "class-variance-authority"

import { cn } from "@/lib/utils"

const buttonVariants = cva(
  "focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 rounded-md border border-transparent bg-clip-padding text-sm font-medium focus-visible:ring-[3px] aria-invalid:ring-[3px] [&_svg:not([class*='size-'])]:size-4 inline-flex items-center justify-center whitespace-nowrap transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none shrink-0 [&_svg]:shrink-0 outline-none group/button select-none",
  {
    variants: {
      variant: {
        default: "bg-foreground text-primary-foreground hover:bg-primary/80 dark:hover:text-foreground/90",
        outline: "border-border bg-background hover:bg-muted hover:text-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50 aria-expanded:bg-muted aria-expanded:text-foreground shadow-xs",
        secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80 aria-expanded:bg-secondary aria-expanded:text-secondary-foreground",
        ghost: "hover:bg-muted hover:text-foreground dark:hover:bg-muted/50 aria-expanded:bg-muted aria-expanded:text-foreground",
        destructive: "bg-destructive/10 hover:bg-destructive/20 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/20 text-destructive focus-visible:border-destructive/40 dark:hover:bg-destructive/30",
        link: "text-primary underline-offset-4 hover:underline",
      },
      size: {
        default: "h-9 gap-1.5 px-4 in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",
        xs: "h-6 gap-1 rounded-[min(var(--radius-md),8px)] px-2 text-xs in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3",
        sm: "h-8 gap-1 rounded-[min(var(--radius-md),10px)] px-2.5 in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5",
        lg: "h-10 gap-1.5 px-4 has-data-[icon=inline-end]:pr-3 has-data-[icon=inline-start]:pl-3",
        icon: "size-9",
        "icon-xs": "size-6 rounded-[min(var(--radius-md),8px)] in-data-[slot=button-group]:rounded-md [&_svg:not([class*='size-'])]:size-3",
        "icon-sm": "size-8 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-md",
        "icon-lg": "size-10",
      },
    },
    defaultVariants: {
      variant: "default",
      size: "default",
    },
  }
)

function Button({
  className,
  variant = "default",
  size = "default",
  ...props
}: ButtonPrimitive.Props & VariantProps<typeof buttonVariants>) {
  return (
    <ButtonPrimitive
      data-slot="button"
      className={cn(buttonVariants({ variant, size, className }))}
      {...props}
    />
  )
}

export { Button, buttonVariants }
components/ui/badge.tsx
import { mergeProps } from "@base-ui/react/merge-props"
import { useRender } from "@base-ui/react/use-render"
import { cva, type VariantProps } from "class-variance-authority"

import { cn } from "@/lib/utils"

const badgeVariants = cva(
  "h-5 gap-1 rounded-sm border border-transparent px-2.5 py-0.5 text-xs font-medium transition-all has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&>svg]:size-3! inline-flex items-center justify-center w-fit whitespace-nowrap shrink-0 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-colors overflow-hidden group/badge",
  {
    variants: {
      variant: {
        default: "bg-primary text-primary-foreground [a]:hover:bg-primary/80",
        secondary: "bg-secondary text-secondary-foreground [a]:hover:bg-secondary/80",
        destructive: "bg-destructive/10 [a]:hover:bg-destructive/20 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 text-destructive dark:bg-destructive/20",
        outline: "border-border text-foreground [a]:hover:bg-muted [a]:hover:text-muted-foreground",
        ghost: "hover:bg-muted hover:text-muted-foreground dark:hover:bg-muted/50",
        link: "text-primary underline-offset-4 hover:underline",
      },
    },
    defaultVariants: {
      variant: "default",
    },
  }
)

function Badge({
  className,
  variant = "default",
  render,
  ...props
}: useRender.ComponentProps<"span"> & VariantProps<typeof badgeVariants>) {
  return useRender({
    defaultTagName: "span",
    props: mergeProps<"span">(
      {
        className: cn(badgeVariants({ className, variant })),
      },
      props
    ),
    render,
    state: {
      slot: "badge",
      variant,
    },
  })
}

export { Badge, badgeVariants }
components/ui/card.tsx
import * as React from "react"

import { cn } from "@/lib/utils"

function Card({
  className,
  size = "default",
  ...props
}: React.ComponentProps<"div"> & { size?: "default" | "sm" }) {
  return (
    <div
      data-slot="card"
      data-size={size}
      className={cn("ring-foreground/10 bg-background text-card-foreground gap-6 overflow-hidden rounded-3xl py-6 text-sm shadow-xs ring-1 has-[>img:first-child]:pt-0 data-[size=sm]:gap-4 data-[size=sm]:py-4 *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl group/card flex flex-col", className)}
      {...props}
    />
  )
}

function CardHeader({ className, ...props }: React.ComponentProps<"div">) {
  return (
    <div
      data-slot="card-header"
      className={cn(
        "gap-1 rounded-t-xl px-6 group-data-[size=sm]/card:px-4 [.border-b]:pb-6 group-data-[size=sm]/card:[.border-b]:pb-4 group/card-header @container/card-header grid auto-rows-min items-start has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto]",
        className
      )}
      {...props}
    />
  )
}

function CardTitle({ className, ...props }: React.ComponentProps<"div">) {
  return (
    <div
      data-slot="card-title"
      className={cn("text-base leading-normal font-medium group-data-[size=sm]/card:text-sm", className)}
      {...props}
    />
  )
}

function CardDescription({ className, ...props }: React.ComponentProps<"div">) {
  return (
    <div
      data-slot="card-description"
      className={cn("text-muted-foreground text-sm", className)}
      {...props}
    />
  )
}

function CardAction({ className, ...props }: React.ComponentProps<"div">) {
  return (
    <div
      data-slot="card-action"
      className={cn(
        "col-start-2 row-span-2 row-start-1 self-start justify-self-end",
        className
      )}
      {...props}
    />
  )
}

function CardContent({ className, ...props }: React.ComponentProps<"div">) {
  return (
    <div
      data-slot="card-content"
      className={cn("px-6 group-data-[size=sm]/card:px-4", className)}
      {...props}
    />
  )
}

function CardFooter({ className, ...props }: React.ComponentProps<"div">) {
  return (
    <div
      data-slot="card-footer"
      className={cn("rounded-b-xl px-6 group-data-[size=sm]/card:px-4 [.border-t]:pt-6 group-data-[size=sm]/card:[.border-t]:pt-4 flex items-center", className)}
      {...props}
    />
  )
}

export {
  Card,
  CardHeader,
  CardFooter,
  CardTitle,
  CardAction,
  CardDescription,
  CardContent,
}
components/ui/avatar.tsx
"use client"

import * as React from "react"
import { Avatar as AvatarPrimitive } from "@base-ui/react/avatar"

import { cn } from "@/lib/utils"

function Avatar({
  className,
  size = "default",
  ...props
}: AvatarPrimitive.Root.Props & {
  size?: "default" | "sm" | "lg"
}) {
  return (
    <AvatarPrimitive.Root
      data-slot="avatar"
      data-size={size}
      className={cn(
        "size-8 rounded-full after:rounded-full data-[size=lg]:size-10 data-[size=sm]:size-6 after:border-border group/avatar relative flex shrink-0 select-none after:absolute after:inset-0 after:border after:mix-blend-darken dark:after:mix-blend-lighten",
        className
      )}
      {...props}
    />
  )
}

function AvatarImage({ className, ...props }: AvatarPrimitive.Image.Props) {
  return (
    <AvatarPrimitive.Image
      data-slot="avatar-image"
      className={cn(
        "rounded-full aspect-square size-full object-cover",
        className
      )}
      {...props}
    />
  )
}

function AvatarFallback({
  className,
  ...props
}: AvatarPrimitive.Fallback.Props) {
  return (
    <AvatarPrimitive.Fallback
      data-slot="avatar-fallback"
      className={cn(
        "bg-muted text-muted-foreground rounded-full flex size-full items-center justify-center text-sm group-data-[size=sm]/avatar:text-xs",
        className
      )}
      {...props}
    />
  )
}

function AvatarBadge({ className, ...props }: React.ComponentProps<"span">) {
  return (
    <span
      data-slot="avatar-badge"
      className={cn(
        "bg-primary text-primary-foreground ring-background absolute right-0 bottom-0 z-10 inline-flex items-center justify-center rounded-full bg-blend-color ring-2 select-none",
        "group-data-[size=sm]/avatar:size-2 group-data-[size=sm]/avatar:[&>svg]:hidden",
        "group-data-[size=default]/avatar:size-2.5 group-data-[size=default]/avatar:[&>svg]:size-2",
        "group-data-[size=lg]/avatar:size-3 group-data-[size=lg]/avatar:[&>svg]:size-2",
        className
      )}
      {...props}
    />
  )
}

function AvatarGroup({ className, ...props }: React.ComponentProps<"div">) {
  return (
    <div
      data-slot="avatar-group"
      className={cn(
        "*:data-[slot=avatar]:ring-background group/avatar-group flex -space-x-2 *:data-[slot=avatar]:ring-2",
        className
      )}
      {...props}
    />
  )
}

function AvatarGroupCount({
  className,
  ...props
}: React.ComponentProps<"div">) {
  return (
    <div
      data-slot="avatar-group-count"
      className={cn("bg-muted text-muted-foreground size-8 rounded-full text-sm group-has-data-[size=lg]/avatar-group:size-10 group-has-data-[size=sm]/avatar-group:size-6 [&>svg]:size-4 group-has-data-[size=lg]/avatar-group:[&>svg]:size-5 group-has-data-[size=sm]/avatar-group:[&>svg]:size-3 ring-background relative flex shrink-0 items-center justify-center ring-2", className)}
      {...props}
    />
  )
}

export {
  Avatar,
  AvatarImage,
  AvatarFallback,
  AvatarGroup,
  AvatarGroupCount,
  AvatarBadge,
}
components/ui/separator.tsx
"use client"

import { Separator as SeparatorPrimitive } from "@base-ui/react/separator"

import { cn } from "@/lib/utils"

function Separator({
  className,
  orientation = "horizontal",
  ...props
}: SeparatorPrimitive.Props) {
  return (
    <SeparatorPrimitive
      data-slot="separator"
      orientation={orientation}
      className={cn(
        "bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:w-px data-[orientation=vertical]:self-stretch",
        className
      )}
      {...props}
    />
  )
}

export { Separator }
components/ui/skeleton.tsx
import { cn } from "@/lib/utils"

function Skeleton({ className, ...props }: React.ComponentProps<"div">) {
  return (
    <div
      data-slot="skeleton"
      className={cn("dark:bg-muted bg-muted-foreground/60 rounded-md animate-pulse", className)}
      {...props}
    />
  )
}

export { Skeleton }
components/ui/toggle.tsx
"use client"

import { Toggle as TogglePrimitive } from "@base-ui/react/toggle"
import { cva, type VariantProps } from "class-variance-authority"

import { cn } from "@/lib/utils"

const toggleVariants = cva(
  "hover:text-foreground aria-pressed:bg-muted/30 dark:aria-pressed:bg-muted focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive gap-1 rounded-md text-sm font-medium transition-[color,box-shadow] [&_svg:not([class*='size-'])]:size-4 group/toggle hover:bg-muted inline-flex items-center justify-center whitespace-nowrap outline-none focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0",
  {
    variants: {
      variant: {
        default: "bg-transparent",
        outline: "border-input hover:bg-muted border bg-transparent shadow-xs",
      },
      size: {
        default: "h-9 min-w-9 px-2",
        sm: "h-8 min-w-8 px-1.5",
        lg: "h-10 min-w-10 px-2.5",
      },
    },
    defaultVariants: {
      variant: "default",
      size: "default",
    },
  }
)

function Toggle({
  className,
  variant = "default",
  size = "default",
  ...props
}: TogglePrimitive.Props & VariantProps<typeof toggleVariants>) {
  return (
    <TogglePrimitive
      data-slot="toggle"
      className={cn(toggleVariants({ variant, size, className }))}
      {...props}
    />
  )
}

export { Toggle, toggleVariants }
components/ui/toggle-group.tsx
"use client"

import * as React from "react"
import { Toggle as TogglePrimitive } from "@base-ui/react/toggle"
import { ToggleGroup as ToggleGroupPrimitive } from "@base-ui/react/toggle-group"
import { type VariantProps } from "class-variance-authority"

import { cn } from "@/lib/utils"
import { toggleVariants } from "@/components/ui/toggle"

const ToggleGroupContext = React.createContext<
  VariantProps<typeof toggleVariants> & {
    spacing?: number
    orientation?: "horizontal" | "vertical"
  }
>({
  size: "default",
  variant: "default",
  spacing: 0,
  orientation: "horizontal",
})

function ToggleGroup({
  className,
  variant,
  size,
  spacing = 0,
  orientation = "horizontal",
  children,
  ...props
}: ToggleGroupPrimitive.Props &
  VariantProps<typeof toggleVariants> & {
    spacing?: number
    orientation?: "horizontal" | "vertical"
  }) {
  return (
    <ToggleGroupPrimitive
      data-slot="toggle-group"
      data-variant={variant}
      data-size={size}
      data-spacing={spacing}
      data-orientation={orientation}
      style={{ "--gap": spacing } as React.CSSProperties}
      className={cn(
        "rounded-md data-[spacing=0]:data-[variant=outline]:shadow-xs group/toggle-group flex w-fit flex-row items-center gap-[--spacing(var(--gap))] data-[orientation=vertical]:flex-col data-[orientation=vertical]:items-stretch",
        className
      )}
      {...props}
    >
      <ToggleGroupContext.Provider
        value={{ variant, size, spacing, orientation }}
      >
        {children}
      </ToggleGroupContext.Provider>
    </ToggleGroupPrimitive>
  )
}

function ToggleGroupItem({
  className,
  children,
  variant = "default",
  size = "default",
  ...props
}: TogglePrimitive.Props & VariantProps<typeof toggleVariants>) {
  const context = React.useContext(ToggleGroupContext)

  return (
    <TogglePrimitive
      data-slot="toggle-group-item"
      data-variant={context.variant || variant}
      data-size={context.size || size}
      data-spacing={context.spacing}
      className={cn(
        toggleVariants({
          variant: context.variant || variant,
          size: context.size || size,
        }),
        "data-[state=on]:bg-muted/30 dark:data-[state=on]:bg-muted group-data-[spacing=0]/toggle-group:rounded-none group-data-[spacing=0]/toggle-group:px-2 group-data-[spacing=0]/toggle-group:shadow-none group-data-horizontal/toggle-group:data-[spacing=0]:first:rounded-l-md group-data-vertical/toggle-group:data-[spacing=0]:first:rounded-t-md group-data-horizontal/toggle-group:data-[spacing=0]:last:rounded-r-md group-data-vertical/toggle-group:data-[spacing=0]:last:rounded-b-md shrink-0 focus:z-10 focus-visible:z-10 group-data-horizontal/toggle-group:data-[spacing=0]:data-[variant=outline]:border-l-0 group-data-vertical/toggle-group:data-[spacing=0]:data-[variant=outline]:border-t-0 group-data-horizontal/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-l group-data-vertical/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-t",
        className
      )}
      {...props}
    >
      {children}
    </TogglePrimitive>
  )
}

export { ToggleGroup, ToggleGroupItem }
components/ui/input.tsx
import * as React from "react"
import { Input as InputPrimitive } from "@base-ui/react/input"

import { cn } from "@/lib/utils"

function Input({ className, type, ...props }: React.ComponentProps<"input">) {
  return (
    <InputPrimitive
      type={type}
      data-slot="input"
      className={cn(
        "dark:bg-input/30 border-input focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 h-9 rounded-md border bg-transparent px-2.5 py-1 text-base shadow-xs transition-[color,box-shadow] file:h-7 file:text-sm file:font-medium focus-visible:ring-[3px] aria-invalid:ring-[3px] md:text-sm file:text-foreground placeholder:text-muted-foreground w-full min-w-0 outline-none file:inline-flex file:border-0 file:bg-transparent disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50",
        className
      )}
      {...props}
    />
  )
}

export { Input }
components/ui/label.tsx
"use client"

import * as React from "react"

import { cn } from "@/lib/utils"

function Label({ className, ...props }: React.ComponentProps<"label">) {
  return (
    <label
      data-slot="label"
      className={cn(
        "gap-2 text-sm leading-none font-medium group-data-[disabled=true]:opacity-50 peer-disabled:opacity-50 flex items-center select-none group-data-[disabled=true]:pointer-events-none peer-disabled:cursor-not-allowed",
        className
      )}
      {...props}
    />
  )
}

export { Label }
components/ui/dropdown-menu.tsx
"use client"

import * as React from "react"
import { Menu as MenuPrimitive } from "@base-ui/react/menu"

import { cn } from "@/lib/utils"
import { ChevronRightIcon, CheckIcon } from "lucide-react"

function DropdownMenu({ ...props }: MenuPrimitive.Root.Props) {
  return <MenuPrimitive.Root data-slot="dropdown-menu" {...props} />
}

function DropdownMenuPortal({ ...props }: MenuPrimitive.Portal.Props) {
  return <MenuPrimitive.Portal data-slot="dropdown-menu-portal" {...props} />
}

function DropdownMenuTrigger({ ...props }: MenuPrimitive.Trigger.Props) {
  return <MenuPrimitive.Trigger data-slot="dropdown-menu-trigger" {...props} />
}

function DropdownMenuContent({
  align = "start",
  alignOffset = 0,
  side = "bottom",
  sideOffset = 4,
  className,
  ...props
}: MenuPrimitive.Popup.Props &
  Pick<
    MenuPrimitive.Positioner.Props,
    "align" | "alignOffset" | "side" | "sideOffset"
  >) {
  return (
    <MenuPrimitive.Portal>
      <MenuPrimitive.Positioner
        className="isolate z-50 outline-none"
        align={align}
        alignOffset={alignOffset}
        side={side}
        sideOffset={sideOffset}
      >
        <MenuPrimitive.Popup
          data-slot="dropdown-menu-content"
          className={cn("data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 ring-foreground/10 bg-popover text-popover-foreground min-w-32 rounded-md p-1 shadow-md ring-1 duration-100 z-50 max-h-(--available-height) w-(--anchor-width) origin-(--transform-origin) overflow-x-hidden overflow-y-auto outline-none data-closed:overflow-hidden", className )}
          {...props}
        />
      </MenuPrimitive.Positioner>
    </MenuPrimitive.Portal>
  )
}

function DropdownMenuGroup({ ...props }: MenuPrimitive.Group.Props) {
  return <MenuPrimitive.Group data-slot="dropdown-menu-group" {...props} />
}

function DropdownMenuLabel({
  className,
  inset,
  ...props
}: MenuPrimitive.GroupLabel.Props & {
  inset?: boolean
}) {
  return (
    <MenuPrimitive.GroupLabel
      data-slot="dropdown-menu-label"
      data-inset={inset}
      className={cn("text-muted-foreground px-2 py-1.5 text-xs font-medium data-[inset]:pl-8", className)}
      {...props}
    />
  )
}

function DropdownMenuItem({
  className,
  inset,
  variant = "default",
  ...props
}: MenuPrimitive.Item.Props & {
  inset?: boolean
  variant?: "default" | "destructive"
}) {
  return (
    <MenuPrimitive.Item
      data-slot="dropdown-menu-item"
      data-inset={inset}
      data-variant={variant}
      className={cn(
        "focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:text-destructive not-data-[variant=destructive]:focus:**:text-accent-foreground gap-2 rounded-sm px-2 py-1.5 text-sm [&_svg:not([class*='size-'])]:size-4 group/dropdown-menu-item relative flex cursor-default items-center outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0",
        className
      )}
      {...props}
    />
  )
}

function DropdownMenuSub({ ...props }: MenuPrimitive.SubmenuRoot.Props) {
  return <MenuPrimitive.SubmenuRoot data-slot="dropdown-menu-sub" {...props} />
}

function DropdownMenuSubTrigger({
  className,
  inset,
  children,
  ...props
}: MenuPrimitive.SubmenuTrigger.Props & {
  inset?: boolean
}) {
  return (
    <MenuPrimitive.SubmenuTrigger
      data-slot="dropdown-menu-sub-trigger"
      data-inset={inset}
      className={cn(
        "focus:bg-accent focus:text-accent-foreground data-open:bg-accent data-open:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground gap-2 rounded-sm px-2 py-1.5 text-sm [&_svg:not([class*='size-'])]:size-4 flex cursor-default items-center outline-hidden select-none data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0",
        className
      )}
      {...props}
    >
      {children}
      <ChevronRightIcon className="ml-auto" />
    </MenuPrimitive.SubmenuTrigger>
  )
}

function DropdownMenuSubContent({
  align = "start",
  alignOffset = -3,
  side = "right",
  sideOffset = 0,
  className,
  ...props
}: React.ComponentProps<typeof DropdownMenuContent>) {
  return (
    <DropdownMenuContent
      data-slot="dropdown-menu-sub-content"
      className={cn("data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 ring-foreground/10 bg-popover text-popover-foreground min-w-[96px] rounded-md p-1 shadow-lg ring-1 duration-100 w-auto", className)}
      align={align}
      alignOffset={alignOffset}
      side={side}
      sideOffset={sideOffset}
      {...props}
    />
  )
}

function DropdownMenuCheckboxItem({
  className,
  children,
  checked,
  ...props
}: MenuPrimitive.CheckboxItem.Props) {
  return (
    <MenuPrimitive.CheckboxItem
      data-slot="dropdown-menu-checkbox-item"
      className={cn(
        "focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm [&_svg:not([class*='size-'])]:size-4 relative flex cursor-default items-center outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0",
        className
      )}
      checked={checked}
      {...props}
    >
      <span
        className="pointer-events-none absolute right-2 flex items-center justify-center pointer-events-none"
        data-slot="dropdown-menu-checkbox-item-indicator"
      >
        <MenuPrimitive.CheckboxItemIndicator>
          <CheckIcon
          />
        </MenuPrimitive.CheckboxItemIndicator>
      </span>
      {children}
    </MenuPrimitive.CheckboxItem>
  )
}

function DropdownMenuRadioGroup({ ...props }: MenuPrimitive.RadioGroup.Props) {
  return (
    <MenuPrimitive.RadioGroup
      data-slot="dropdown-menu-radio-group"
      {...props}
    />
  )
}

function DropdownMenuRadioItem({
  className,
  children,
  ...props
}: MenuPrimitive.RadioItem.Props) {
  return (
    <MenuPrimitive.RadioItem
      data-slot="dropdown-menu-radio-item"
      className={cn(
        "focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm [&_svg:not([class*='size-'])]:size-4 relative flex cursor-default items-center outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0",
        className
      )}
      {...props}
    >
      <span
        className="pointer-events-none absolute right-2 flex items-center justify-center pointer-events-none"
        data-slot="dropdown-menu-radio-item-indicator"
      >
        <MenuPrimitive.RadioItemIndicator>
          <CheckIcon
          />
        </MenuPrimitive.RadioItemIndicator>
      </span>
      {children}
    </MenuPrimitive.RadioItem>
  )
}

function DropdownMenuSeparator({
  className,
  ...props
}: MenuPrimitive.Separator.Props) {
  return (
    <MenuPrimitive.Separator
      data-slot="dropdown-menu-separator"
      className={cn("bg-border -mx-1 my-1 h-px", className)}
      {...props}
    />
  )
}

function DropdownMenuShortcut({
  className,
  ...props
}: React.ComponentProps<"span">) {
  return (
    <span
      data-slot="dropdown-menu-shortcut"
      className={cn("text-muted-foreground group-focus/dropdown-menu-item:text-accent-foreground ml-auto text-xs tracking-widest", className)}
      {...props}
    />
  )
}

export {
  DropdownMenu,
  DropdownMenuPortal,
  DropdownMenuTrigger,
  DropdownMenuContent,
  DropdownMenuGroup,
  DropdownMenuLabel,
  DropdownMenuItem,
  DropdownMenuCheckboxItem,
  DropdownMenuRadioGroup,
  DropdownMenuRadioItem,
  DropdownMenuSeparator,
  DropdownMenuShortcut,
  DropdownMenuSub,
  DropdownMenuSubTrigger,
  DropdownMenuSubContent,
}
components/ui/grid-pattern.tsx
import { useId } from "react"

import { cn } from "@/lib/utils"

interface GridPatternProps extends React.SVGProps<SVGSVGElement> {
  width?: number
  height?: number
  x?: number
  y?: number
  squares?: Array<[x: number, y: number]>
  strokeDasharray?: string
  className?: string
  [key: string]: unknown
}

export function GridPattern({
  width = 40,
  height = 40,
  x = -1,
  y = -1,
  strokeDasharray = "0",
  squares,
  className,
  ...props
}: GridPatternProps) {
  const id = useId()

  return (
    <svg
      aria-hidden="true"
      className={cn(
        "pointer-events-none absolute inset-0 h-full w-full fill-gray-600/30 stroke-gray-600/30 dark:fill-gray-50 dark:stroke-gray-50",
        className
      )}
      {...props}
    >
      <defs>
        <pattern
          id={id}
          width={width}
          height={height}
          patternUnits="userSpaceOnUse"
          x={x}
          y={y}
        >
          <path
            d={`M.5 ${height}V.5H${width}`}
            fill="none"
            strokeDasharray={strokeDasharray}
          />
        </pattern>
      </defs>
      <rect width="100%" height="100%" strokeWidth={0} fill={`url(#${id})`} />
      {squares && (
        <svg x={x} y={y} className="overflow-visible">
          {squares.map(([x, y]) => (
            <rect
              strokeWidth="0"
              key={`${x}-${y}`}
              width={width - 1}
              height={height - 1}
              x={x * width + 1}
              y={y * height + 1}
            />
          ))}
        </svg>
      )}
    </svg>
  )
}
types/utils/configs/theme.ts
export type ThemeConfigProps = Array<{
    name: string,
    light: {
        [key: string]: string;
    },
    dark: {
        [key: string]: string;
    }
}>
types/components/image.ts
export type StaticImageType = {
  name: string;
  image: string;
  size?: {
    width: number;
    height: number;
  };
};
types/components/team-member.ts
export type TeamMember = {
    name: string;
    role: string;
    image: string;
    index: number;
  }
types/components/pricing.ts
export type PricingCardProps = {
  price: number;
  features: string[];
  isFree?: boolean;
  slug: string;
  buttonText?: string;
  className?: string;
};
types/components/testimonial.ts
export type TestimonialProps = {
  logo?: string;
  quote: string;
  author: string;
  role: string;
  avatarSrc?: string;
  className?: string;
};
types/components/feature.ts
import { LucideIcon } from "lucide-react";

export type FeatureCardProps = {
  title: string;
  description: string;
  icon: LucideIcon;
};
public/icons/facebook.svg
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M22 12.0607C22 6.504 17.5233 2 12 2C6.47667 2 2 6.504 2 12.0607C2 17.0833 5.656 21.2453 10.4373 22V14.9693H7.89867V12.06H10.4373V9.844C10.4373 7.32267 11.93 5.92933 14.2147 5.92933C15.308 5.92933 16.4533 6.126 16.4533 6.126V8.602H15.1913C13.9493 8.602 13.5627 9.378 13.5627 10.174V12.0607H16.336L15.8927 14.9687H13.5627V22C18.344 21.2453 22 17.0833 22 12.0607Z" fill="#AAAAAA"/>
</svg>
public/icons/instagram.svg
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M8.72892 8.72893C9.59647 7.86138 10.7731 7.374 12 7.374C13.2269 7.374 14.4035 7.86138 15.2711 8.72893C16.1386 9.59647 16.626 10.7731 16.626 12C16.626 13.2269 16.1386 14.4035 15.2711 15.2711C14.4035 16.1386 13.2269 16.626 12 16.626C10.7731 16.626 9.59647 16.1386 8.72892 15.2711C7.86138 14.4035 7.374 13.2269 7.374 12C7.374 10.7731 7.86138 9.59647 8.72892 8.72893ZM10.8508 14.7744C11.2151 14.9253 11.6056 15.003 12 15.003C12.7964 15.003 13.5603 14.6866 14.1234 14.1234C14.6866 13.5603 15.003 12.7964 15.003 12C15.003 11.2036 14.6866 10.4397 14.1234 9.87656C13.5603 9.31339 12.7964 8.997 12 8.997C11.6056 8.997 11.2151 9.07468 10.8508 9.22559C10.4865 9.37651 10.1554 9.59771 9.87656 9.87656C9.5977 10.1554 9.3765 10.4865 9.22559 10.8508C9.07467 11.2151 8.997 11.6056 8.997 12C8.997 12.3944 9.07467 12.7849 9.22559 13.1492C9.3765 13.5135 9.5977 13.8446 9.87656 14.1234C10.1554 14.4023 10.4865 14.6235 10.8508 14.7744Z" fill="#AAAAAA"/>
<path d="M17.6515 8.06322C17.8566 7.85815 17.9718 7.58002 17.9718 7.29C17.9718 6.99999 17.8566 6.72185 17.6515 6.51678C17.4464 6.31171 17.1683 6.1965 16.8783 6.1965C16.5883 6.1965 16.3101 6.31171 16.1051 6.51678C15.9 6.72185 15.7848 6.99999 15.7848 7.29C15.7848 7.58002 15.9 7.85815 16.1051 8.06322C16.3101 8.2683 16.5883 8.3835 16.8783 8.3835C17.1683 8.3835 17.4464 8.2683 17.6515 8.06322Z" fill="#AAAAAA"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M8.2896 3.054C9.2496 3.0102 9.5556 3 12 3C14.445 3 14.7504 3.0108 15.7098 3.054C16.668 3.0978 17.3232 3.2508 17.8956 3.4722C18.4959 3.69831 19.0397 4.05253 19.4892 4.5102C19.947 4.95979 20.3012 5.50384 20.5272 6.1044C20.7498 6.6768 20.9022 7.3314 20.946 8.2896C20.9898 9.2496 21 9.5556 21 12C21 14.4444 20.9898 14.7504 20.946 15.7104C20.9022 16.6686 20.7498 17.3232 20.5278 17.8956C20.3017 18.4959 19.9475 19.0397 19.4898 19.4892C19.0398 19.9476 18.4956 20.3016 17.8956 20.5272C17.3232 20.7498 16.6686 20.9022 15.7104 20.946C14.7504 20.9898 14.4444 21 12 21C9.5556 21 9.2496 20.9898 8.2896 20.946C7.3314 20.9022 6.6768 20.7498 6.1044 20.5278C5.50411 20.3017 4.96029 19.9475 4.5108 19.4898C4.0524 19.0398 3.6984 18.4956 3.4728 17.8956C3.2502 17.3232 3.0978 16.6686 3.054 15.7104C3.0102 14.7504 3 14.445 3 12C3 9.555 3.0108 9.2496 3.054 8.2902C3.0978 7.332 3.2508 6.6768 3.4722 6.1044C3.69831 5.5041 4.05253 4.96028 4.5102 4.5108C4.9602 4.0524 5.5044 3.6984 6.1044 3.4728C6.6768 3.2502 7.3314 3.0978 8.2896 3.054ZM15.6372 4.674C14.688 4.6308 14.403 4.6218 12 4.6218C9.597 4.6218 9.312 4.6308 8.3628 4.674C7.4856 4.7142 7.0092 4.8606 6.6918 4.9842C6.30085 5.12819 5.94716 5.35803 5.6568 5.6568C5.3424 5.9718 5.1468 6.2718 4.9842 6.6918C4.86 7.0092 4.7142 7.4856 4.674 8.3628C4.6308 9.312 4.6218 9.597 4.6218 12C4.6218 14.403 4.6308 14.688 4.674 15.6372C4.7142 16.5144 4.8606 16.9908 4.9842 17.3082C5.12828 17.6991 5.35811 18.0528 5.6568 18.3432C5.9472 18.6419 6.30087 18.8718 6.6918 19.0158C7.0092 19.14 7.4856 19.2858 8.3628 19.326C9.312 19.3692 9.5964 19.3782 12 19.3782C14.4036 19.3782 14.688 19.3692 15.6372 19.326C16.5144 19.2858 16.9908 19.1394 17.3082 19.0158C17.6992 18.8718 18.0528 18.642 18.3432 18.3432C18.6419 18.0528 18.8718 17.6991 19.0158 17.3082C19.14 16.9908 19.2858 16.5144 19.326 15.6372C19.3692 14.688 19.3782 14.403 19.3782 12C19.3782 9.597 19.3692 9.312 19.326 8.3628C19.2858 7.4856 19.1394 7.0092 19.0158 6.6918C18.8532 6.2718 18.6582 5.9718 18.3432 5.6568C18.0282 5.3424 17.7282 5.1468 17.3082 4.9842C16.9908 4.86 16.5144 4.7142 15.6372 4.674Z" fill="#AAAAAA"/>
</svg>
public/icons/linkedin.svg
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M21 4.32353V19.6765C21 20.0275 20.8606 20.3641 20.6123 20.6123C20.3641 20.8606 20.0275 21 19.6765 21H4.32353C3.97251 21 3.63586 20.8606 3.38765 20.6123C3.13944 20.3641 3 20.0275 3 19.6765V4.32353C3 3.97251 3.13944 3.63586 3.38765 3.38765C3.63586 3.13944 3.97251 3 4.32353 3H19.6765C20.0275 3 20.3641 3.13944 20.6123 3.38765C20.8606 3.63586 21 3.97251 21 4.32353ZM8.29412 9.88235H5.64706V18.3529H8.29412V9.88235ZM8.53235 6.97059C8.53375 6.77036 8.49569 6.57182 8.42035 6.3863C8.34502 6.20078 8.23387 6.03191 8.09328 5.88935C7.95268 5.74678 7.78537 5.6333 7.60091 5.5554C7.41646 5.47749 7.21846 5.43668 7.01824 5.43529H6.97059C6.5634 5.43529 6.17289 5.59705 5.88497 5.88497C5.59705 6.17289 5.43529 6.5634 5.43529 6.97059C5.43529 7.37777 5.59705 7.76828 5.88497 8.05621C6.17289 8.34413 6.5634 8.50588 6.97059 8.50588C7.17083 8.51081 7.37008 8.47623 7.55696 8.40413C7.74383 8.33202 7.91467 8.2238 8.0597 8.08565C8.20474 7.94749 8.32113 7.78212 8.40223 7.59897C8.48333 7.41582 8.52755 7.21848 8.53235 7.01824V6.97059ZM18.3529 13.2071C18.3529 10.6606 16.7329 9.67059 15.1235 9.67059C14.5966 9.6442 14.0719 9.75644 13.6019 9.9961C13.1318 10.2358 12.7328 10.5945 12.4447 11.0365H12.3706V9.88235H9.88235V18.3529H12.5294V13.8476C12.4911 13.3862 12.6365 12.9283 12.9339 12.5735C13.2313 12.2186 13.6567 11.9954 14.1176 11.9524H14.2182C15.06 11.9524 15.6847 12.4818 15.6847 13.8159V18.3529H18.3318L18.3529 13.2071Z" fill="#AAAAAA"/>
</svg>
public/icons/tiktok.svg
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M18.1155 6.00894C17.0382 5.30651 16.2606 4.18262 16.0181 2.87246C15.9657 2.5894 15.9369 2.29807 15.9369 2H12.4985L12.493 15.78C12.4352 17.3231 11.1651 18.5616 9.60816 18.5616C9.12425 18.5616 8.6686 18.4406 8.26741 18.2295C7.34742 17.7454 6.71783 16.781 6.71783 15.6713C6.71783 14.0775 8.0145 12.7808 9.60816 12.7808C9.90565 12.7808 10.191 12.8299 10.461 12.9145V9.40424C10.1816 9.3662 9.89778 9.34242 9.60816 9.34242C6.11842 9.34242 3.27942 12.1816 3.27942 15.6713C3.27942 17.8124 4.34917 19.7072 5.9812 20.853C7.00918 21.5747 8.2596 22 9.60816 22C13.0979 22 15.9369 19.161 15.9369 15.6713V8.68367C17.2855 9.65161 18.9377 10.222 20.7206 10.222V6.7836C19.7602 6.7836 18.8657 6.49808 18.1155 6.00894Z" fill="#AAAAAA"/>
</svg>
public/icons/x.svg
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M21.742 21.75L14.179 10.571L21.235 2.25H18.779L13.088 8.964L8.548 2.25H2.359L9.649 13.026L2.25 21.75H4.706L10.741 14.632L15.559 21.75H21.75H21.742ZM7.739 3.818L18.81 20.182H16.363L5.29 3.818H7.737H7.739Z" fill="#AAAAAA"/>
</svg>
public/illustrations/avatar-1.svg
<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<path d="M0 20C0 8.95431 8.95431 0 20 0C31.0457 0 40 8.95431 40 20C40 31.0457 31.0457 40 20 40C8.95431 40 0 31.0457 0 20Z" fill="url(#pattern0_22_3308)"/>
<defs>
<pattern id="pattern0_22_3308" patternContentUnits="objectBoundingBox" width="1" height="1">
<use xlink:href="#image0_22_3308" transform="scale(0.00173611)"/>
</pattern>
<image id="image0_22_3308" width="576" height="576" preserveAspectRatio="none" xlink:href="data:image/png;base64,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"/>
</defs>
</svg>
public/illustrations/avatar-2.svg
<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<path d="M0 20C0 8.95431 8.95431 0 20 0C31.0457 0 40 8.95431 40 20C40 31.0457 31.0457 40 20 40C8.95431 40 0 31.0457 0 20Z" fill="url(#pattern0_22_3279)"/>
<defs>
<pattern id="pattern0_22_3279" patternContentUnits="objectBoundingBox" width="1" height="1">
<use xlink:href="#image0_22_3279" transform="scale(0.00173611)"/>
</pattern>
<image id="image0_22_3279" width="576" height="576" preserveAspectRatio="none" xlink:href="data:image/png;base64,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"/>
</defs>
</svg>
public/illustrations/avatar-3.svg
<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<path d="M0 20C0 8.95431 8.95431 0 20 0C31.0457 0 40 8.95431 40 20C40 31.0457 31.0457 40 20 40C8.95431 40 0 31.0457 0 20Z" fill="url(#pattern0_22_3306)"/>
<defs>
<pattern id="pattern0_22_3306" patternContentUnits="objectBoundingBox" width="1" height="1">
<use xlink:href="#image0_22_3306" transform="scale(0.00173611)"/>
</pattern>
<image id="image0_22_3306" width="576" height="576" preserveAspectRatio="none" xlink:href="data:image/png;base64,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"/>
</defs>
</svg>
public/logo/calendly-light.svg
<svg width="25" height="25" viewBox="0 0 25 25" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M16.6048 16.009C15.821 16.7046 14.8421 17.5702 13.0673 17.5702H12.0059C10.7215 17.5702 9.55334 17.1033 8.71717 16.2571C7.90036 15.4303 7.45072 14.2986 7.45072 13.0702V11.618C7.45072 10.3896 7.90036 9.25795 8.71717 8.43111C9.55334 7.5849 10.7215 7.11877 12.0059 7.11877H13.0673C14.8443 7.11877 15.821 7.98362 16.6048 8.67923C17.4188 9.39636 18.1208 10.0231 19.9933 10.0231C20.2788 10.0231 20.5639 10.0003 20.8459 9.955L20.8395 9.9385C20.7273 9.65999 20.5957 9.38969 20.4458 9.12959L19.1944 6.96172C18.6301 5.98444 17.8184 5.17292 16.8411 4.60872C15.8638 4.04451 14.7551 3.74751 13.6266 3.74756H11.1231C9.99462 3.74751 8.88598 4.04451 7.90864 4.60872C6.93129 5.17292 6.11968 5.98444 5.55536 6.96172L4.30398 9.12959C3.73985 10.107 3.44287 11.2156 3.44287 12.3441C3.44287 13.4726 3.73985 14.5812 4.30398 15.5586L5.55536 17.7265C6.11968 18.7038 6.93129 19.5153 7.90864 20.0795C8.88598 20.6437 9.99462 20.9407 11.1231 20.9406H13.6266C14.7551 20.9407 15.8638 20.6437 16.8411 20.0795C17.8184 19.5153 18.6301 18.7038 19.1944 17.7265L20.4458 15.5622C20.5957 15.3021 20.7273 15.0318 20.8395 14.7533L20.8459 14.7375C20.5641 14.6907 20.2789 14.6667 19.9933 14.6658C18.1208 14.6658 17.4188 15.289 16.6048 16.0097" fill="#006BFF"/>
<path d="M13.0667 8.43457H12.0054C10.0505 8.43457 8.76611 9.83081 8.76611 11.6179V13.0701C8.76611 14.8571 10.0505 16.2534 12.0054 16.2534H13.0667C15.9151 16.2534 15.6914 13.349 19.9927 13.349C20.4002 13.3486 20.8069 13.386 21.2075 13.4609C21.338 12.722 21.338 11.966 21.2075 11.2271C20.8069 11.3016 20.4002 11.339 19.9927 11.3389C15.69 11.3389 15.9151 8.43457 13.0667 8.43457Z" fill="#006BFF"/>
<path d="M23.6787 14.5222C22.9462 13.9857 22.1015 13.6226 21.2082 13.4601C21.2082 13.468 21.2082 13.4745 21.2082 13.4816C21.1313 13.9098 21.0112 14.3291 20.8497 14.733C21.5876 14.8473 22.2877 15.1356 22.892 15.5742C22.892 15.5799 22.8885 15.5871 22.8863 15.5936C22.1085 18.1123 20.453 20.2684 18.2206 21.6703C15.9883 23.0722 13.3271 23.6269 10.7205 23.2335C8.114 22.8402 5.73499 21.525 4.01569 19.5268C2.2964 17.5286 1.35087 14.98 1.35087 12.3439C1.35087 9.70786 2.2964 7.15924 4.01569 5.16104C5.73499 3.16284 8.114 1.84762 10.7205 1.4543C13.3271 1.06097 15.9883 1.61564 18.2206 3.01754C20.453 4.41945 22.1085 6.57558 22.8863 9.09426C22.8863 9.10071 22.8899 9.10788 22.892 9.11362C22.2878 9.55224 21.5876 9.84038 20.8497 9.95409C21.011 10.3586 21.1311 10.7783 21.2082 11.2069C21.2078 11.2136 21.2078 11.2203 21.2082 11.227C22.1015 11.0648 22.9462 10.7019 23.6787 10.1656C24.3829 9.64429 24.2467 9.05553 24.1398 8.70701C23.2692 5.88305 21.4143 3.46515 18.9122 1.89268C16.4102 0.320213 13.4271 -0.302471 10.5049 0.137781C7.58275 0.578033 4.9155 2.052 2.98783 4.29185C1.06016 6.5317 0 9.38878 0 12.3439C0 15.2991 1.06016 18.1561 2.98783 20.396C4.9155 22.6358 7.58275 24.1098 10.5049 24.55C13.4271 24.9903 16.4102 24.3676 18.9122 22.7951C21.4143 21.2227 23.2692 18.8048 24.1398 15.9808C24.2467 15.6323 24.3829 15.0435 23.6787 14.5222Z" fill="#006BFF"/>
<path d="M20.8464 9.95397C20.5645 10.0008 20.2794 10.0248 19.9937 10.0257C18.1213 10.0257 17.4192 9.4025 16.606 8.68179C15.8215 7.98618 14.8447 7.12061 13.0677 7.12061H12.0064C10.7213 7.12061 9.55378 7.58745 8.71762 8.43366C7.90081 9.26051 7.45117 10.3921 7.45117 11.6206V13.0727C7.45117 14.3012 7.90081 15.4328 8.71762 16.2597C9.55378 17.1059 10.7213 17.572 12.0064 17.572H13.0677C14.8447 17.572 15.8215 16.7071 16.606 16.0115C17.4192 15.2944 18.1213 14.6676 19.9937 14.6676C20.2793 14.6677 20.5644 14.6905 20.8464 14.7358C21.0082 14.3319 21.1284 13.9126 21.2049 13.4844C21.2053 13.4772 21.2053 13.47 21.2049 13.4629C20.8043 13.3886 20.3976 13.3514 19.9901 13.3517C15.6874 13.3517 15.9125 16.2568 13.0641 16.2568H12.0028C10.0479 16.2568 8.76351 14.8598 8.76351 13.0727V11.6177C8.76351 9.83062 10.0479 8.43438 12.0028 8.43438H13.0641C15.9125 8.43438 15.6888 11.338 19.9901 11.338C20.3976 11.3387 20.8043 11.3015 21.2049 11.2269C21.2049 11.2204 21.2049 11.214 21.2049 11.2068C21.1278 10.7782 21.0077 10.3585 20.8464 9.95397Z" fill="#61396D"/>
<path d="M20.8464 9.95397C20.5645 10.0008 20.2794 10.0248 19.9937 10.0257C18.1213 10.0257 17.4192 9.4025 16.606 8.68179C15.8215 7.98618 14.8447 7.12061 13.0677 7.12061H12.0064C10.7213 7.12061 9.55378 7.58745 8.71762 8.43366C7.90081 9.26051 7.45117 10.3921 7.45117 11.6206V13.0727C7.45117 14.3012 7.90081 15.4328 8.71762 16.2597C9.55378 17.1059 10.7213 17.572 12.0064 17.572H13.0677C14.8447 17.572 15.8215 16.7071 16.606 16.0115C17.4192 15.2944 18.1213 14.6676 19.9937 14.6676C20.2793 14.6677 20.5644 14.6905 20.8464 14.7358C21.0082 14.3319 21.1284 13.9126 21.2049 13.4844C21.2053 13.4772 21.2053 13.47 21.2049 13.4629C20.8043 13.3886 20.3976 13.3514 19.9901 13.3517C15.6874 13.3517 15.9125 16.2568 13.0641 16.2568H12.0028C10.0479 16.2568 8.76351 14.8598 8.76351 13.0727V11.6177C8.76351 9.83062 10.0479 8.43438 12.0028 8.43438H13.0641C15.9125 8.43438 15.6888 11.338 19.9901 11.338C20.3976 11.3387 20.8043 11.3015 21.2049 11.2269C21.2049 11.2204 21.2049 11.214 21.2049 11.2068C21.1278 10.7782 21.0077 10.3585 20.8464 9.95397Z" fill="#0AE8F0"/>
</svg>
public/logo/calendly.svg
<svg width="32" height="33" viewBox="0 0 32 33" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M21.8482 21.0641C20.8168 21.9794 19.5288 23.1183 17.1934 23.1183H15.7969C14.107 23.1183 12.5699 22.504 11.4696 21.3906C10.3949 20.3026 9.80328 18.8137 9.80328 17.1973V15.2865C9.80328 13.6702 10.3949 12.1812 11.4696 11.0932C12.5699 9.97979 14.107 9.36646 15.7969 9.36646H17.1934C19.5317 9.36646 20.8168 10.5044 21.8482 11.4197C22.9191 12.3633 23.8429 13.188 26.3066 13.188C26.6824 13.1879 27.0575 13.1579 27.4285 13.0983L27.42 13.0766C27.2725 12.7102 27.0994 12.3545 26.902 12.0123L25.2554 9.15982C24.5129 7.87393 23.445 6.80614 22.159 6.06377C20.8731 5.3214 19.4143 4.9306 17.9294 4.93066H14.6354C13.1505 4.9306 11.6918 5.3214 10.4058 6.06377C9.11981 6.80614 8.0519 7.87393 7.30938 9.15982L5.66282 12.0123C4.92055 13.2983 4.52979 14.757 4.52979 16.2419C4.52979 17.7268 4.92055 19.1855 5.66282 20.4715L7.30938 23.324C8.0519 24.6099 9.11981 25.6777 10.4058 26.42C11.6918 27.1624 13.1505 27.5532 14.6354 27.5531H17.9294C19.4143 27.5532 20.8731 27.1624 22.159 26.42C23.445 25.6777 24.5129 24.6099 25.2554 23.324L26.902 20.4762C27.0994 20.134 27.2725 19.7783 27.42 19.4119L27.4285 19.3911C27.0577 19.3295 26.6825 19.298 26.3066 19.2968C23.8429 19.2968 22.9191 20.1167 21.8482 21.065" fill="white"/>
<path d="M17.1929 11.0979H15.7964C13.2241 11.0979 11.5342 12.9351 11.5342 15.2865V17.1972C11.5342 19.5487 13.2241 21.3858 15.7964 21.3858H17.1929C20.9408 21.3858 20.6464 17.5643 26.306 17.5643C26.8422 17.5637 27.3774 17.613 27.9045 17.7115C28.0762 16.7393 28.0762 15.7445 27.9045 14.7722C27.3773 14.8703 26.8422 14.9196 26.306 14.9194C20.6445 14.9194 20.9408 11.0979 17.1929 11.0979Z" fill="white"/>
<path d="M31.1562 19.1081C30.1924 18.4022 29.0809 17.9244 27.9056 17.7107C27.9056 17.7211 27.9056 17.7296 27.9056 17.739C27.8044 18.3024 27.6463 18.8541 27.4338 19.3856C28.4047 19.5359 29.3259 19.9153 30.1211 20.4924C30.1211 20.4999 30.1164 20.5094 30.1136 20.5179C29.0901 23.8319 26.9118 26.6689 23.9745 28.5135C21.0372 30.3581 17.5356 31.088 14.106 30.5704C10.6763 30.0529 7.54604 28.3224 5.28381 25.6931C3.02157 23.0639 1.77746 19.7105 1.77746 16.242C1.77746 12.7735 3.02157 9.42006 5.28381 6.79084C7.54604 4.16163 10.6763 2.43108 14.106 1.91355C17.5356 1.39602 21.0372 2.12585 23.9745 3.97045C26.9118 5.81506 29.0901 8.65207 30.1136 11.9661C30.1136 11.9746 30.1183 11.9841 30.1211 11.9916C29.326 12.5687 28.4048 12.9479 27.4338 13.0975C27.6461 13.6297 27.8041 14.182 27.9056 14.7459C27.905 14.7547 27.905 14.7636 27.9056 14.7724C29.0809 14.559 30.1924 14.0815 31.1562 13.3758C32.0828 12.6899 31.9035 11.9152 31.7629 11.4566C30.6173 7.74086 28.1767 4.55941 24.8845 2.49037C21.5924 0.421334 17.6672 -0.397988 13.8223 0.181291C9.97731 0.76057 6.46776 2.70001 3.93135 5.64717C1.39494 8.59434 0 12.3537 0 16.242C0 20.1303 1.39494 23.8896 3.93135 26.8368C6.46776 29.784 9.97731 31.7234 13.8223 32.3027C17.6672 32.882 21.5924 32.0627 24.8845 29.9936C28.1767 27.9246 30.6173 24.7431 31.7629 21.0274C31.9035 20.5688 32.0828 19.7941 31.1562 19.1081Z" fill="white"/>
<path d="M27.429 13.0973C27.0581 13.1589 26.6829 13.1904 26.307 13.1916C23.8433 13.1916 22.9196 12.3716 21.8495 11.4233C20.8173 10.508 19.5321 9.36914 17.1939 9.36914H15.7974C14.1065 9.36914 12.5703 9.98342 11.4701 11.0968C10.3953 12.1848 9.80371 13.6738 9.80371 15.2901V17.2009C9.80371 18.8173 10.3953 20.3062 11.4701 21.3942C12.5703 22.5076 14.1065 23.121 15.7974 23.121H17.1939C19.5321 23.121 20.8173 21.983 21.8495 21.0677C22.9196 20.1241 23.8433 19.2994 26.307 19.2994C26.6828 19.2995 27.058 19.3295 27.429 19.3891C27.6419 18.8577 27.8 18.306 27.9008 17.7425C27.9013 17.7331 27.9013 17.7236 27.9008 17.7142C27.3736 17.6165 26.8385 17.5675 26.3023 17.568C20.6408 17.568 20.9371 21.3904 17.1892 21.3904H15.7927C13.2204 21.3904 11.5305 19.5523 11.5305 17.2009V15.2864C11.5305 12.935 13.2204 11.0978 15.7927 11.0978H17.1892C20.9371 11.0978 20.6427 14.9184 26.3023 14.9184C26.8385 14.9193 27.3736 14.8703 27.9008 14.7721C27.9008 14.7636 27.9008 14.7551 27.9008 14.7457C27.7993 14.1817 27.6413 13.6295 27.429 13.0973Z" fill="#61396D"/>
<path d="M27.429 13.0973C27.0581 13.1589 26.6829 13.1904 26.307 13.1916C23.8433 13.1916 22.9196 12.3716 21.8495 11.4233C20.8173 10.508 19.5321 9.36914 17.1939 9.36914H15.7974C14.1065 9.36914 12.5703 9.98342 11.4701 11.0968C10.3953 12.1848 9.80371 13.6738 9.80371 15.2901V17.2009C9.80371 18.8173 10.3953 20.3062 11.4701 21.3942C12.5703 22.5076 14.1065 23.121 15.7974 23.121H17.1939C19.5321 23.121 20.8173 21.983 21.8495 21.0677C22.9196 20.1241 23.8433 19.2994 26.307 19.2994C26.6828 19.2995 27.058 19.3295 27.429 19.3891C27.6419 18.8577 27.8 18.306 27.9008 17.7425C27.9013 17.7331 27.9013 17.7236 27.9008 17.7142C27.3736 17.6165 26.8385 17.5675 26.3023 17.568C20.6408 17.568 20.9371 21.3904 17.1892 21.3904H15.7927C13.2204 21.3904 11.5305 19.5523 11.5305 17.2009V15.2864C11.5305 12.935 13.2204 11.0978 15.7927 11.0978H17.1892C20.9371 11.0978 20.6427 14.9184 26.3023 14.9184C26.8385 14.9193 27.3736 14.8703 27.9008 14.7721C27.9008 14.7636 27.9008 14.7551 27.9008 14.7457C27.7993 14.1817 27.6413 13.6295 27.429 13.0973Z" fill="#61396D"/>
</svg>
public/logo/coinbase.svg
<svg width="90" height="32" viewBox="0 0 90 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M18.0773 11.1336C14.8235 11.1336 12.2811 13.6037 12.2811 16.9103C12.2811 20.217 14.7593 22.6659 18.0773 22.6659C21.3954 22.6659 23.9166 20.1747 23.9166 16.8892C23.9166 13.6248 21.4385 11.1336 18.0773 11.1336ZM18.0993 20.2829C16.2463 20.2829 14.8885 18.8438 14.8885 16.9112C14.8885 14.9566 16.2244 13.5183 18.0773 13.5183C19.9522 13.5183 21.3092 14.9785 21.3092 16.9112C21.3092 18.8438 19.9522 20.2829 18.0993 20.2829ZM24.6273 13.6468H26.2435V22.4521H28.829V11.3483H24.6273V13.6468ZM5.77427 13.5175C7.13207 13.5175 8.20935 14.3549 8.61832 15.6005H11.355C10.8591 12.9378 8.66142 11.1336 5.79622 11.1336C2.5424 11.1336 0 13.6037 0 16.9112C0 20.2186 2.47817 22.6667 5.79622 22.6667C8.59717 22.6667 10.8379 20.8626 11.3339 18.1779H8.61832C8.2305 19.4235 7.1532 20.2829 5.79542 20.2829C3.92052 20.2829 2.60662 18.8438 2.60662 16.9112C2.60745 14.9566 3.9002 13.5175 5.77427 13.5175ZM73.7532 15.8371L71.8572 15.5582C70.9525 15.4298 70.306 15.129 70.306 14.42C70.306 13.6468 71.1467 13.2606 72.2882 13.2606C73.538 13.2606 74.3355 13.7972 74.5077 14.6777H77.0072C76.7267 12.4443 75.003 11.1344 72.3532 11.1344C69.6165 11.1344 67.8067 12.5305 67.8067 14.5062C67.8067 16.3957 68.992 17.4917 71.3832 17.8348L73.2792 18.1137C74.2062 18.2421 74.7232 18.608 74.7232 19.295C74.7232 20.1756 73.8185 20.5406 72.5687 20.5406C71.0385 20.5406 70.1767 19.9178 70.0475 18.9731H67.505C67.7425 21.1423 69.4442 22.6667 72.5467 22.6667C75.3697 22.6667 77.2437 21.3781 77.2437 19.1657C77.2437 17.19 75.8867 16.1591 73.7532 15.8371ZM27.5362 6.77407C26.5882 6.77407 25.877 7.4611 25.877 8.40586C25.877 9.35062 26.5875 10.0376 27.5362 10.0376C28.4842 10.0376 29.1957 9.35062 29.1957 8.40586C29.1957 7.4611 28.4842 6.77407 27.5362 6.77407ZM65.4797 15.1501C65.4797 12.7451 64.0147 11.1344 60.912 11.1344C57.9817 11.1344 56.3442 12.6166 56.0207 14.8932H58.585C58.7142 14.0126 59.4037 13.2825 60.869 13.2825C62.1837 13.2825 62.83 13.8622 62.83 14.5712C62.83 15.4948 61.6445 15.7306 60.1795 15.881C58.1972 16.0957 55.741 16.7827 55.741 19.3601C55.741 21.3577 57.228 22.6456 59.5982 22.6456C61.451 22.6456 62.6145 21.8724 63.1967 20.6479C63.283 21.7431 64.1017 22.4521 65.244 22.4521H66.7522V20.1544H65.4805V15.1501H65.4797ZM62.9372 17.9421C62.9372 19.4243 61.6445 20.5195 60.0712 20.5195C59.1015 20.5195 58.2827 20.1113 58.2827 19.2527C58.2827 18.1576 59.5972 17.8567 60.804 17.7283C61.9675 17.621 62.6137 17.3632 62.9372 16.8689V17.9421ZM49.2122 11.1336C47.7682 11.1336 46.5617 11.7353 45.7 12.7443V6.66675H43.1145V22.4521H45.6567V20.9919C46.5185 22.0439 47.7472 22.6667 49.2122 22.6667C52.3147 22.6667 54.6637 20.2186 54.6637 16.9112C54.6637 13.6037 52.2717 11.1336 49.2122 11.1336ZM48.8245 20.2829C46.9715 20.2829 45.6137 18.8438 45.6137 16.9112C45.6137 14.9785 46.9927 13.5183 48.8455 13.5183C50.7205 13.5183 52.0342 14.9574 52.0342 16.9112C52.0342 18.8438 50.6772 20.2829 48.8245 20.2829ZM36.9302 11.1336C35.2497 11.1336 34.1505 11.8207 33.5042 12.7874V11.3483H30.9397V22.4513H33.5252V16.4168C33.5252 14.72 34.6025 13.5175 36.197 13.5175C37.684 13.5175 38.61 14.5696 38.61 16.0949V22.4521H41.1955V15.9022C41.1965 13.1093 39.7532 11.1336 36.9302 11.1336ZM89.5687 16.5461C89.5687 13.3679 87.2417 11.1344 84.1172 11.1344C80.7992 11.1344 78.3642 13.6256 78.3642 16.9112C78.3642 20.3691 80.9715 22.6667 84.1605 22.6667C86.854 22.6667 88.9655 21.0772 89.5037 18.8226H86.81C86.4222 19.8105 85.4742 20.3691 84.2027 20.3691C82.5432 20.3691 81.2935 19.3381 81.0137 17.534H89.568V16.5461H89.5687ZM81.165 15.6867C81.575 14.1403 82.7382 13.389 84.0742 13.389C85.5392 13.389 86.6597 14.2265 86.9182 15.6867H81.165Z" fill="white"/>
</svg>
public/logo/framer.svg
<svg width="90" height="32" viewBox="0 0 90 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M0 1.33325H19.4284V11.0475H9.71422L0 1.33325ZM0 11.0475H9.71422L19.4284 20.7617H0V11.0475ZM0 20.7617H9.71422V30.4759L0 20.7617Z" fill="white"/>
<path d="M30.3906 8.99683H38.244V11.4924H33.3631V14.9604H38.244V17.4008H33.3631V21.8413H30.3906V8.99683ZM39.8586 12.9968H42.6662V14.8502C42.8128 14.2133 43.1129 13.7244 43.5653 13.3822C44.0293 13.027 44.5444 12.8502 45.1066 12.8502C45.4004 12.8502 45.6453 12.875 45.8404 12.9235V15.5293C45.5604 15.4955 45.2786 15.4773 44.9964 15.4742C44.2257 15.4742 43.6453 15.7244 43.2533 16.2262C42.8626 16.7155 42.6662 17.4493 42.6662 18.4284V21.8413H39.86V12.9968H39.8586ZM50.2724 22.0799C49.4164 22.0799 48.6697 21.8777 48.0337 21.4742C47.4097 21.0706 46.9137 20.4977 46.6026 19.8226C46.2724 19.1137 46.1062 18.3115 46.1062 17.4191C46.1062 16.5382 46.2786 15.7426 46.6208 15.0337C46.9417 14.3488 47.4511 13.7697 48.0888 13.3639C48.7364 12.9604 49.4768 12.7582 50.3093 12.7582C50.9328 12.7582 51.4902 12.8933 51.9791 13.1622C52.468 13.4319 52.8351 13.799 53.08 14.263V12.9968H55.8688V21.8413H53.08V20.5933C52.8351 21.0337 52.456 21.3942 51.9422 21.6759C51.4284 21.9484 50.8542 22.087 50.2724 22.0799ZM51.08 19.7493C51.7524 19.7493 52.2724 19.5293 52.6395 19.0888C53.0066 18.6484 53.1902 18.0915 53.1902 17.4191C53.1902 16.7586 53.0066 16.2079 52.6395 15.7675C52.2724 15.327 51.7524 15.107 51.08 15.107C50.4431 15.107 49.9302 15.3208 49.5386 15.7493C49.1595 16.1777 48.9697 16.7337 48.9697 17.4191C48.9697 18.1044 49.1595 18.6666 49.5386 19.107C49.9302 19.5355 50.444 19.7493 51.08 19.7493ZM57.8324 12.9968H60.64V14.2813C60.8364 13.8279 61.1537 13.4608 61.5937 13.1804C62.0471 12.8999 62.5728 12.7582 63.172 12.7582C64.5666 12.7582 65.4906 13.3022 65.9426 14.3915C66.1915 13.8977 66.5808 13.4893 67.0622 13.2173C67.5768 12.9075 68.168 12.7488 68.7684 12.7582C70.8604 12.7582 71.9062 13.9564 71.9062 16.3546V21.8413H69.0804V16.8684C69.0804 16.2697 68.9702 15.8293 68.7502 15.5475C68.5297 15.2666 68.1995 15.1253 67.7591 15.1253C67.2822 15.1253 66.9151 15.2906 66.6582 15.6208C66.4013 15.939 66.2728 16.495 66.2728 17.2906V21.8413H63.4471V16.8502C63.4471 16.251 63.3373 15.8164 63.1168 15.5475C62.9097 15.2666 62.5848 15.1253 62.1453 15.1253C61.6555 15.1253 61.2822 15.2906 61.0253 15.6208C60.7684 15.939 60.64 16.495 60.64 17.2906V21.8413H57.8333V12.9968H57.8324ZM82.4528 16.9604C82.4528 17.339 82.428 17.7493 82.3782 18.1897H75.8471C75.872 18.7648 76.0671 19.2044 76.4342 19.5111C76.8013 19.8164 77.2977 19.9697 77.9204 19.9697C78.7893 19.9697 79.34 19.7062 79.572 19.1804H82.3244C82.1893 20.0493 81.7124 20.7519 80.8928 21.2906C80.0857 21.8164 79.0946 22.0799 77.9204 22.0799C76.404 22.0799 75.2111 21.6697 74.3422 20.8502C73.4862 20.0302 73.0577 18.8871 73.0577 17.4191C73.0577 16.4648 73.2533 15.639 73.6448 14.9417C74.0231 14.2453 74.6062 13.6817 75.3146 13.327C76.0368 12.9484 76.8746 12.7582 77.8297 12.7582C78.7342 12.7582 79.5351 12.9355 80.2324 13.2906C80.9417 13.6457 81.4866 14.1408 81.8653 14.7768C82.2573 15.4137 82.4528 16.1413 82.4528 16.9604ZM79.6808 16.4466C79.6688 15.8595 79.504 15.4124 79.1853 15.107C78.868 14.8017 78.4084 14.6484 77.8093 14.6484C77.2102 14.6484 76.7333 14.8133 76.3782 15.1439C76.036 15.4622 75.8586 15.8959 75.8457 16.4466H79.6808ZM83.6906 12.9968H86.4982V14.8502C86.6449 14.2133 86.9448 13.7244 87.3973 13.3822C87.8364 13.0364 88.3795 12.8488 88.9386 12.8502C89.232 12.8502 89.4773 12.875 89.6724 12.9235V15.5293C89.3924 15.4955 89.1106 15.4773 88.8284 15.4742C88.0577 15.4742 87.4773 15.7244 87.0853 16.2262C86.6933 16.7155 86.4982 17.4493 86.4982 18.4284V21.8413H83.6906V12.9968Z" fill="white"/>
</svg>
public/logo/loom-mini-light.svg
<svg width="27" height="27" viewBox="0 0 27 27" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M26.7419 11.9079H18.5955L25.6503 7.85587L24.2513 5.44413L17.1956 9.4962L21.2679 2.47823L18.8441 1.08617L14.7709 8.10236V0H11.971V8.10325L7.89782 1.08617L5.47313 2.47823L9.54546 9.49443L2.49152 5.44413L1.0916 7.85587L8.14643 11.9079H0V14.693H8.14554L1.0916 18.745L2.49062 21.1568L9.54635 17.1047L5.47313 24.1227L7.89693 25.5147L11.971 18.4976V26.6H14.7709V18.3239L18.9189 25.4704L21.1921 24.1652L17.0432 17.0169L24.2495 21.1559L25.6494 18.7441L18.5955 14.6921H26.741V11.9079H26.7419ZM13.371 17.0861C12.8712 17.0861 12.3762 16.9882 11.9145 16.798C11.4527 16.6077 11.0331 16.3288 10.6797 15.9772C10.3262 15.6256 10.0458 15.2082 9.8545 14.7487C9.66318 14.2893 9.56468 13.7969 9.56462 13.2996C9.56456 12.8022 9.66295 12.3098 9.85416 11.8503C10.0454 11.3908 10.3257 10.9733 10.679 10.6216C11.0324 10.27 11.4519 9.99096 11.9136 9.80059C12.3754 9.61023 12.8703 9.51222 13.3701 9.51216C14.3794 9.51204 15.3475 9.91091 16.0614 10.621C16.7752 11.3311 17.1763 12.2943 17.1764 13.2987C17.1765 14.303 16.7757 15.2663 16.062 15.9766C15.3483 16.6869 14.3803 17.0859 13.371 17.0861Z" fill="#625DF5"/>
</svg>
public/logo/loom-mini.svg
<svg width="36" height="35" viewBox="0 0 36 35" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M35.1867 15.6683H24.4677L33.7504 10.3367L31.9096 7.16333L22.6257 12.495L27.9841 3.26083L24.7949 1.42917L19.4354 10.661V0H15.7514V10.6622L10.3919 1.42917L7.20149 3.26083L12.5598 12.4927L3.27831 7.16333L1.43631 10.3367L10.719 15.6683H0V19.3328H10.7178L1.43631 24.6645L3.27714 27.8378L12.561 22.5062L7.20149 31.7403L10.3907 33.572L15.7514 24.339V35H19.4354V24.1103L24.8933 33.5137L27.8844 31.7963L22.4252 22.3907L31.9072 27.8367L33.7492 24.6633L24.4677 19.3317H35.1855V15.6683H35.1867ZM17.5934 22.4817C16.9357 22.4817 16.2845 22.3529 15.6769 22.1026C15.0693 21.8523 14.5172 21.4853 14.0522 21.0226C13.5871 20.56 13.2182 20.0107 12.9664 19.4062C12.7147 18.8017 12.5851 18.1538 12.585 17.4994C12.5849 16.8451 12.7144 16.1971 12.966 15.5925C13.2176 14.9879 13.5864 14.4386 14.0513 13.9759C14.5163 13.5131 15.0683 13.146 15.6758 12.8955C16.2834 12.645 16.9346 12.5161 17.5922 12.516C18.9203 12.5158 20.1941 13.0407 21.1334 13.975C22.0726 14.9094 22.6004 16.1767 22.6005 17.4982C22.6007 18.8198 22.0732 20.0872 21.1342 21.0218C20.1952 21.9564 18.9215 22.4815 17.5934 22.4817Z" fill="white" fill-opacity="0.960784"/>
</svg>
public/logo/loom.svg
<svg width="78" height="32" viewBox="0 0 78 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M23.4578 13.7793H16.3118L22.5003 10.2249L21.2731 8.1093L15.0838 11.6637L18.656 5.50763L16.5299 4.28652L12.9569 10.4411V3.33374H10.5009V10.4419L6.92791 4.28652L4.801 5.50763L8.37321 11.6622L2.18554 8.1093L0.957541 10.2249L7.146 13.7793H0V16.2223H7.14521L0.957541 19.7767L2.18476 21.8923L8.37399 18.3379L4.801 24.494L6.92713 25.7151L10.5009 19.5597V26.6671H12.9569V19.4073L16.5956 25.6762L18.5896 24.5313L14.9502 18.2609L21.2715 21.8915L22.4995 19.776L16.3118 16.2215H23.457V13.7793H23.4578ZM11.7289 18.3215C11.2905 18.3216 10.8564 18.2357 10.4513 18.0688C10.0462 17.9019 9.67816 17.6573 9.36812 17.3488C9.05807 17.0404 8.81212 16.6742 8.64429 16.2712C8.47647 15.8682 8.39007 15.4363 8.39002 15C8.38997 14.5638 8.47627 14.1318 8.644 13.7288C8.81172 13.3257 9.05759 12.9595 9.36756 12.651C9.67754 12.3425 10.0455 12.0977 10.4506 11.9308C10.8556 11.7638 11.2897 11.6778 11.7281 11.6777C12.6135 11.6776 13.4627 12.0275 14.0889 12.6504C14.7151 13.2733 15.0669 14.1182 15.067 14.9992C15.0671 15.8803 14.7155 16.7252 14.0895 17.3483C13.4634 17.9713 12.6143 18.3214 11.7289 18.3215Z" fill="white"/>
<path d="M29.7888 23.5347V6.46558H32.9374V23.5347H29.7888ZM59.9869 11.9349H62.9932V13.3505C63.6326 12.2188 65.1248 11.6051 66.4029 11.6051C67.9897 11.6051 69.2677 12.2896 69.8594 13.5379C70.7818 12.1224 72.0137 11.6051 73.5528 11.6051C75.7071 11.6051 77.766 12.9017 77.766 16.0136V23.5347H74.7128V16.6506C74.7128 15.4007 74.0968 14.4572 72.6523 14.4572C71.3024 14.4572 70.4972 15.4956 70.4972 16.7455V23.5355H67.3737V16.6506C67.3737 15.4007 66.7343 14.4572 65.3132 14.4572C63.9398 14.4572 63.1347 15.4722 63.1347 16.7455V23.5355H59.9869V11.9349ZM40.0529 23.8707C36.5057 23.8707 33.9371 21.2519 33.9371 17.7348C33.9371 14.2737 36.4979 11.5935 40.0529 11.5935C43.6251 11.5935 46.1686 14.2986 46.1686 17.7348C46.1686 21.227 43.5985 23.8707 40.0529 23.8707ZM40.0529 14.4324C39.173 14.4336 38.3296 14.7821 37.7077 15.4013C37.0857 16.0206 36.7361 16.8601 36.7355 17.7356C36.7361 18.611 37.0857 19.4505 37.7077 20.0698C38.3296 20.6891 39.173 21.0376 40.0529 21.0388C40.9326 21.0374 41.7758 20.6888 42.3976 20.0695C43.0193 19.4503 43.3689 18.6109 43.3695 17.7356C43.3689 16.8602 43.0193 16.0209 42.3976 15.4016C41.7758 14.7824 40.9326 14.4338 40.0529 14.4324ZM52.8933 23.8707C49.3461 23.8707 46.7776 21.2519 46.7776 17.7348C46.7776 14.2737 49.3383 11.5935 52.8933 11.5935C56.4655 11.5935 59.0091 14.2986 59.0091 17.7348C59.0091 21.227 56.4374 23.8707 52.8933 23.8707ZM52.8933 14.3927C52.0034 14.3941 51.1503 14.7467 50.5213 15.3731C49.8922 15.9994 49.5385 16.8485 49.5376 17.734C49.5385 18.6195 49.8922 19.4686 50.5213 20.095C51.1503 20.7213 52.0034 21.0739 52.8933 21.0754C53.7833 21.0739 54.6363 20.7213 55.2654 20.095C55.8945 19.4686 56.2482 18.6195 56.249 17.734C56.2482 16.8485 55.8945 15.9994 55.2654 15.3731C54.6363 14.7467 53.7833 14.3941 52.8933 14.3927Z" fill="white"/>
</svg>
public/logo/mailchip-light.svg
<svg width="26" height="27" viewBox="0 0 26 27" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M18.8647 12.5693C19.059 12.5462 19.2451 12.545 19.4163 12.5693C19.5154 12.3423 19.5323 11.9513 19.4432 11.5254C19.311 10.8923 19.1318 10.5093 18.7615 10.569C18.3912 10.6287 18.3776 11.0874 18.5101 11.7201C18.5847 12.0763 18.7172 12.3807 18.8647 12.5693Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M15.688 13.0703C15.9527 13.1864 16.1157 13.2636 16.1793 13.1962C16.2204 13.1542 16.2079 13.0741 16.1446 12.971C16.0139 12.7579 15.7451 12.5415 15.4597 12.42C14.8765 12.1691 14.1805 12.2525 13.6437 12.6379C13.4666 12.7676 13.2986 12.9473 13.3226 13.0564C13.3302 13.0915 13.3569 13.1181 13.419 13.127C13.5651 13.1436 14.0756 12.8858 14.6638 12.8498C15.0788 12.8244 15.423 12.9541 15.688 13.0703Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M15.1564 13.3741C14.8112 13.4285 14.621 13.5423 14.4989 13.6478C14.3948 13.7388 14.3303 13.8396 14.3309 13.9103C14.3312 13.9439 14.3457 13.9635 14.3572 13.9732C14.3729 13.9871 14.3915 13.9948 14.414 13.9948C14.4918 13.9948 14.6666 13.9247 14.6666 13.9247C15.1466 13.753 15.4634 13.774 15.7772 13.8095C15.9505 13.829 16.0327 13.8396 16.0705 13.7802C16.0818 13.7631 16.0954 13.7261 16.0608 13.67C15.98 13.539 15.6313 13.3177 15.1564 13.3741Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M17.7928 14.489C18.027 14.604 18.2849 14.5588 18.3689 14.3882C18.4529 14.2177 18.331 13.986 18.0968 13.871C17.8626 13.7561 17.6047 13.8013 17.5207 13.9718C17.4367 14.1426 17.5585 14.3741 17.7928 14.489Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M19.299 13.1742C19.1088 13.1709 18.9509 13.3796 18.9464 13.6406C18.942 13.9016 19.0928 14.1152 19.283 14.1185C19.4732 14.1217 19.6311 13.9131 19.6355 13.6521C19.64 13.3914 19.4891 13.1774 19.299 13.1742Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M6.51647 17.8763C6.46914 17.8169 6.39136 17.8349 6.31595 17.8527C6.2633 17.8651 6.20385 17.8787 6.13849 17.8778C5.9986 17.8751 5.88 17.8154 5.81346 17.7132C5.7268 17.5802 5.73183 17.3818 5.82736 17.1549L5.87201 17.0532C6.02462 16.7109 6.27986 16.1384 5.99328 15.5928C5.77737 15.182 5.42543 14.9264 5.0022 14.8726C4.59583 14.8212 4.17764 14.9716 3.91086 15.2657C3.49001 15.7297 3.42405 16.3613 3.50538 16.5844C3.53525 16.666 3.58198 16.6888 3.6157 16.6935C3.68727 16.7029 3.79315 16.6509 3.8594 16.4727L3.87833 16.4148C3.90791 16.3205 3.96292 16.1449 4.05312 16.0043C4.16196 15.8346 4.33113 15.7179 4.52988 15.675C4.73218 15.6316 4.93921 15.6703 5.11252 15.7838C5.40739 15.9765 5.52096 16.3376 5.39496 16.682C5.3299 16.8602 5.22402 17.201 5.24738 17.4808C5.2947 18.0474 5.64339 18.275 5.9566 18.2992C6.26123 18.3108 6.47417 18.1396 6.528 18.0149C6.55965 17.941 6.53303 17.8961 6.51558 17.8769" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M9.41387 7.46993C10.4076 6.32259 11.6305 5.32509 12.7263 4.76502C12.7642 4.74551 12.8044 4.7866 12.784 4.82384C12.697 4.98137 12.5293 5.31859 12.4764 5.57424C12.4681 5.61414 12.5116 5.644 12.5453 5.62124C13.227 5.15693 14.4127 4.65921 15.4529 4.59537C15.4975 4.59271 15.5191 4.64976 15.4836 4.67724C15.3254 4.79842 15.1524 4.96629 15.0261 5.13594C15.0045 5.16491 15.0249 5.20628 15.061 5.20658C15.7912 5.2119 16.8207 5.46726 17.4918 5.8435C17.5371 5.86892 17.5048 5.95669 17.454 5.94517C16.4386 5.71256 14.7768 5.53612 13.0502 5.95699C11.509 6.33264 10.3325 6.91281 9.47449 7.53643C9.43102 7.56805 9.37867 7.51042 9.41387 7.46993ZM18.4598 19.0695C18.4894 19.0571 18.5095 19.0237 18.5063 18.9903C18.5021 18.9492 18.4654 18.9194 18.4243 18.9235C18.4243 18.9235 16.3041 19.2371 14.3009 18.5044C14.5192 17.7957 15.0992 18.0517 15.9761 18.1223C17.5566 18.2166 18.9733 17.9857 20.0202 17.6855C20.9273 17.4254 22.1189 16.9123 23.0443 16.1823C23.3563 16.8674 23.4667 17.6216 23.4667 17.6216C23.4667 17.6216 23.7083 17.5785 23.9103 17.7026C24.1011 17.8199 24.2409 18.0638 24.1454 18.6945C23.9508 19.8726 23.4498 20.829 22.6075 21.7088C22.0946 22.2603 21.4724 22.7397 20.7602 23.0885C20.3819 23.2871 19.9794 23.4588 19.5538 23.5974C16.3786 24.6339 13.1282 23.4946 12.0807 21.048C11.997 20.8641 11.9263 20.6714 11.8707 20.4702C11.4244 18.8579 11.8033 16.9235 12.9881 15.7058C13.0611 15.6284 13.1356 15.5365 13.1356 15.4215C13.1356 15.3255 13.0744 15.2241 13.0215 15.152C12.6068 14.5511 11.1709 13.5273 11.4593 11.5459C11.6663 10.1225 12.9121 9.12001 14.0735 9.17942L14.3678 9.19626C14.8711 9.22611 15.31 9.29054 15.7244 9.30798C16.4179 9.33813 17.0414 9.23734 17.7802 8.62229C18.0292 8.41481 18.2291 8.23482 18.5672 8.17778C18.6027 8.17157 18.6911 8.13995 18.8677 8.14823C19.0481 8.15798 19.2196 8.20734 19.3737 8.3099C19.9658 8.70357 20.0498 9.65732 20.0806 10.3548C20.098 10.7529 20.1462 11.7164 20.1628 11.9931C20.2003 12.6256 20.3668 12.7145 20.7034 12.8254C20.8927 12.8877 21.0684 12.9341 21.3275 13.0068C22.1112 13.2267 22.5758 13.4499 22.8689 13.7366C23.0437 13.9157 23.1251 14.106 23.1502 14.2875C23.2425 14.9613 22.6267 15.7936 20.9962 16.5499C19.214 17.3766 17.0517 17.5859 15.5579 17.4195L15.0344 17.3603C13.8395 17.1996 13.1578 18.7427 13.875 19.8001C14.3373 20.4817 15.5963 20.925 16.8559 20.9253C19.744 20.9256 21.9639 19.6932 22.7897 18.6289L22.8556 18.5349C22.8964 18.4737 22.8627 18.44 22.8121 18.4746C22.1375 18.9359 19.1409 20.7675 15.9356 20.2163C15.9356 20.2163 15.546 20.1522 15.1905 20.0141C14.9081 19.9042 14.3166 19.6323 14.2447 19.0261C16.8314 19.8256 18.4598 19.0695 18.4598 19.0695ZM4.25206 12.9264C3.35237 13.1011 2.55945 13.6107 2.07471 14.3147C1.78487 14.0732 1.24511 13.6056 1.14959 13.4233C0.375595 11.9544 1.99426 9.09873 3.12523 7.48589C5.92011 3.50034 10.2973 0.483624 12.3235 1.03099C12.653 1.12409 13.744 2.38817 13.744 2.38817C13.744 2.38817 11.7184 3.51128 9.84005 5.07683C7.30898 7.02423 5.39751 9.85476 4.25206 12.9264ZM5.76366 19.6666C5.62761 19.6899 5.48861 19.6991 5.34842 19.6955C3.99475 19.6592 2.53283 18.4415 2.38762 16.9974C2.22702 15.4011 3.0433 14.1728 4.48836 13.8814C4.66108 13.8465 4.86988 13.8264 5.09495 13.8382C5.90473 13.8826 7.09781 14.5038 7.3702 16.2665C7.61153 17.8276 7.22823 19.4171 5.76366 19.6666ZM24.0993 16.8399C24.0877 16.7988 24.012 16.523 23.9082 16.1905C23.8044 15.8578 23.697 15.624 23.697 15.624C24.1135 15.0012 24.1209 14.4441 24.0653 14.1288C24.0061 13.7377 23.8432 13.4047 23.5149 13.06C23.1866 12.7157 22.5149 12.3628 21.5712 12.098L21.0761 11.9606C21.0737 11.9402 21.05 10.794 21.0287 10.3019C21.0131 9.94608 20.9826 9.39073 20.8102 8.84396C20.6046 8.1036 20.2468 7.45574 19.7999 7.04137C21.0332 5.76399 21.803 4.35656 21.801 3.14952C21.7974 0.827944 18.9443 0.125415 15.428 1.58043L14.683 1.89637C14.6798 1.89312 13.3362 0.575839 13.3161 0.558106C9.3071 -2.93623 -3.22699 10.9864 0.780188 14.3679L1.65592 15.1094C1.42878 15.6976 1.33946 16.3714 1.41251 17.0958C1.50597 18.0265 1.98628 18.9185 2.765 19.6077C3.50409 20.2621 4.47594 20.6765 5.41881 20.6756C6.97832 24.2669 10.5416 26.4699 14.7194 26.594C19.201 26.727 22.963 24.6257 24.5394 20.8508C24.6426 20.586 25.08 19.3923 25.08 18.3383C25.08 17.2794 24.4808 16.8399 24.0993 16.8399Z" fill="black"/>
</svg>
public/logo/mailchip.svg
<svg width="33" height="35" viewBox="0 0 33 35" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M24.822 16.5385C25.0777 16.5082 25.3225 16.5066 25.5478 16.5385C25.6782 16.2399 25.7003 15.7254 25.5832 15.165C25.4093 14.332 25.1734 13.828 24.6862 13.9065C24.199 13.9851 24.1811 14.5886 24.3554 15.4212C24.4535 15.8899 24.6278 16.2904 24.822 16.5385Z" fill="white"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M20.6421 17.1977C20.9904 17.3505 21.2048 17.452 21.2885 17.3634C21.3426 17.3082 21.3262 17.2028 21.243 17.0671C21.071 16.7867 20.7172 16.502 20.3417 16.3422C19.5743 16.012 18.6586 16.1217 17.9523 16.6288C17.7192 16.7995 17.4982 17.0359 17.5297 17.1794C17.5398 17.2257 17.5748 17.2607 17.6565 17.2724C17.8488 17.2942 18.5205 16.9551 19.2945 16.9076C19.8405 16.8742 20.2934 17.0449 20.6421 17.1977Z" fill="white"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M19.9426 17.5975C19.4884 17.6691 19.2382 17.8188 19.0775 17.9576C18.9405 18.0774 18.8557 18.21 18.8565 18.303C18.8568 18.3473 18.8759 18.373 18.8911 18.3858C18.9117 18.4041 18.9362 18.4142 18.9658 18.4142C19.0682 18.4142 19.2981 18.322 19.2981 18.322C19.9297 18.0961 20.3465 18.1237 20.7594 18.1704C20.9875 18.196 21.0956 18.21 21.1454 18.1319C21.1602 18.1093 21.1781 18.0607 21.1326 17.9868C21.0264 17.8145 20.5676 17.5232 19.9426 17.5975Z" fill="white"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M23.4115 19.0645C23.7197 19.2158 24.0591 19.1563 24.1696 18.9319C24.2801 18.7075 24.1198 18.4026 23.8116 18.2514C23.5034 18.1001 23.164 18.1596 23.0535 18.384C22.943 18.6087 23.1033 18.9132 23.4115 19.0645Z" fill="white"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M25.3934 17.3345C25.1431 17.3302 24.9353 17.6047 24.9295 17.9481C24.9237 18.2915 25.1221 18.5727 25.3724 18.577C25.6226 18.5812 25.8304 18.3067 25.8362 17.9633C25.8421 17.6203 25.6436 17.3387 25.3934 17.3345Z" fill="white"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M8.5743 23.5214C8.51203 23.4433 8.40969 23.467 8.31045 23.4903C8.24119 23.5067 8.16296 23.5246 8.07696 23.5234C7.89289 23.5199 7.73684 23.4413 7.64928 23.3068C7.53526 23.1318 7.54188 22.8708 7.66757 22.5722L7.72634 22.4384C7.92714 21.9881 8.26298 21.2348 7.88589 20.5169C7.60181 19.9764 7.13872 19.64 6.58184 19.5692C6.04715 19.5015 5.49689 19.6995 5.14587 20.0864C4.59211 20.697 4.50533 21.528 4.61235 21.8216C4.65165 21.929 4.71314 21.9589 4.7575 21.9651C4.85168 21.9776 4.99099 21.9091 5.07816 21.6746L5.10307 21.5984C5.14198 21.4743 5.21436 21.2433 5.33305 21.0582C5.47626 20.835 5.69886 20.6814 5.96037 20.625C6.22655 20.5679 6.49896 20.6188 6.727 20.7681C7.11498 21.0217 7.26442 21.4969 7.09864 21.95C7.01302 22.1845 6.8737 22.6328 6.90445 23.0011C6.96671 23.7466 7.42552 24.0461 7.83763 24.0779C8.23846 24.0931 8.51865 23.8679 8.58947 23.7038C8.63111 23.6066 8.59609 23.5475 8.57313 23.5222" fill="white"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M12.3867 9.82885C13.6942 8.31919 15.3034 7.0067 16.7452 6.26976C16.795 6.2441 16.8479 6.29815 16.821 6.34715C16.7066 6.55443 16.486 6.99814 16.4163 7.33453C16.4054 7.38703 16.4626 7.42631 16.507 7.39637C17.404 6.78543 18.9641 6.13054 20.3327 6.04654C20.3915 6.04304 20.4199 6.1181 20.3732 6.15426C20.165 6.31371 19.9374 6.5346 19.7712 6.75782C19.7428 6.79593 19.7696 6.85037 19.8171 6.85076C20.7779 6.85776 22.1326 7.19376 23.0155 7.68881C23.0751 7.72226 23.0327 7.83775 22.9657 7.82259C21.6298 7.51653 19.4431 7.28437 17.1713 7.83815C15.1434 8.33242 13.5954 9.0958 12.4664 9.91635C12.4092 9.95796 12.3404 9.88213 12.3867 9.82885ZM24.2892 25.0915C24.3282 25.0752 24.3546 25.0312 24.3503 24.9873C24.3449 24.9332 24.2966 24.8939 24.2425 24.8994C24.2425 24.8994 21.4527 25.312 18.817 24.3479C19.1042 23.4154 19.8673 23.7522 21.0211 23.8451C23.1008 23.9692 24.9648 23.6655 26.3424 23.2703C27.5359 22.9281 29.1038 22.253 30.3215 21.2925C30.732 22.1939 30.8772 23.1863 30.8772 23.1863C30.8772 23.1863 31.1951 23.1296 31.4609 23.2929C31.7119 23.4473 31.896 23.7681 31.7703 24.598C31.5142 26.1481 30.855 27.4065 29.7467 28.5643C29.0719 29.2899 28.2531 29.9207 27.3161 30.3796C26.8183 30.6409 26.2887 30.8669 25.7287 31.0492C21.5508 32.4131 17.274 30.9139 15.8956 27.6947C15.7855 27.4528 15.6925 27.1993 15.6193 26.9344C15.0321 24.8131 15.5306 22.2678 17.0896 20.6656C17.1857 20.5637 17.2837 20.4427 17.2837 20.2915C17.2837 20.1651 17.2032 20.0317 17.1335 19.9368C16.5879 19.1462 14.6986 17.7991 15.078 15.192C15.3504 13.3191 16.9895 12 18.5177 12.0782L18.9049 12.1003C19.5673 12.1396 20.1448 12.2244 20.69 12.2473C21.6025 12.287 22.4229 12.1544 23.395 11.3451C23.7226 11.0721 23.9857 10.8353 24.4305 10.7602C24.4772 10.7521 24.5936 10.7105 24.8259 10.7214C25.0633 10.7342 25.289 10.7991 25.4917 10.9341C26.2708 11.4521 26.3813 12.707 26.4218 13.6248C26.4447 14.1486 26.5082 15.4164 26.53 15.7804C26.5794 16.6126 26.7985 16.7297 27.2413 16.8755C27.4904 16.9575 27.7215 17.0186 28.0624 17.1143C29.0937 17.4036 29.7051 17.6972 30.0907 18.0744C30.3207 18.3101 30.4277 18.5605 30.4608 18.7993C30.5822 19.686 29.772 20.7811 27.6266 21.7762C25.2816 22.864 22.4365 23.1393 20.4709 22.9203L19.7821 22.8426C18.2099 22.631 17.3129 24.6614 18.2566 26.0528C18.8649 26.9496 20.5215 27.5329 22.1789 27.5333C25.9789 27.5337 28.8999 25.9121 29.9864 24.5117L30.0732 24.388C30.1269 24.3075 30.0825 24.2632 30.016 24.3087C29.1283 24.9157 25.1855 27.3256 20.9678 26.6004C20.9678 26.6004 20.4553 26.516 19.9876 26.3344C19.6159 26.1897 18.8376 25.8319 18.7431 25.0343C22.1466 26.0863 24.2892 25.0915 24.2892 25.0915ZM5.59481 17.0085C4.41101 17.2383 3.3677 17.9088 2.72988 18.8351C2.34851 18.5174 1.63831 17.9021 1.51261 17.6622C0.494204 15.7294 2.62403 11.972 4.11214 9.84985C7.78962 4.60571 13.5491 0.636347 16.2151 1.35657C16.6486 1.47906 18.0842 3.14233 18.0842 3.14233C18.0842 3.14233 15.4189 4.6201 12.9474 6.68004C9.61708 9.24241 7.10199 12.9668 5.59481 17.0085ZM7.58376 25.8771C7.40475 25.9078 7.22185 25.9198 7.03739 25.9152C5.25625 25.8673 3.33267 24.2651 3.1416 22.365C2.93029 20.2646 4.00435 18.6484 5.90574 18.265C6.133 18.2191 6.40774 18.1926 6.70389 18.2082C7.76938 18.2665 9.33922 19.084 9.69763 21.4033C10.0152 23.4574 9.51083 25.5488 7.58376 25.8771ZM31.7096 22.1577C31.6944 22.1037 31.5948 21.7409 31.4582 21.3034C31.3216 20.8655 31.1803 20.5579 31.1803 20.5579C31.7283 19.7385 31.738 19.0054 31.6648 18.5905C31.587 18.076 31.3726 17.6377 30.9406 17.1843C30.5087 16.7312 29.6249 16.2669 28.3831 15.9184L27.7317 15.7376C27.7286 15.7108 27.6974 14.2027 27.6694 13.5552C27.6488 13.0869 27.6087 12.3562 27.3818 11.6368C27.1114 10.6626 26.6405 9.81019 26.0525 9.26497C27.6752 7.5842 28.6882 5.73232 28.6855 4.14411C28.6808 1.0894 24.9267 0.16502 20.3001 2.07951L19.3198 2.49523C19.3155 2.49095 17.5476 0.757683 17.5211 0.73435C12.2462 -3.86346 -4.24605 14.4558 1.02656 18.9051L2.17884 19.8808C1.87997 20.6547 1.76245 21.5413 1.85857 22.4945C1.98154 23.7191 2.61352 24.8928 3.63816 25.7997C4.61065 26.6607 5.88939 27.2059 7.13001 27.2047C9.182 31.9301 13.8705 34.8288 19.3676 34.9922C25.2645 35.1672 30.2145 32.4022 32.2886 27.4353C32.4244 27.0869 33 25.5162 33 24.1294C33 22.736 32.2116 22.1577 31.7096 22.1577Z" fill="white"/>
</svg>
public/logo/medium-light.svg
<svg width="30" height="17" viewBox="0 0 30 17" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M8.23139 0C12.7678 0 16.4628 3.69498 16.4628 8.26797C16.4628 12.841 12.7678 16.5359 8.23139 16.5359C3.69498 16.5359 0 12.8775 0 8.26797C0 3.65839 3.69498 0 8.23139 0ZM21.4016 0.475591C23.6332 0.475591 25.499 3.98765 25.499 8.26797C25.499 12.5849 23.6698 16.0603 21.4016 16.0603C19.1334 16.0603 17.3042 12.5849 17.3042 8.26797C17.3042 3.95107 19.1334 0.475591 21.4016 0.475591ZM27.694 1.28044C28.5355 1.28044 29.1574 4.42666 29.1574 8.26797C29.1574 12.1093 28.4989 15.2555 27.694 15.2555C26.8972 15.2555 26.2439 12.1719 26.2309 8.383L26.2307 8.26797C26.2307 4.42666 26.8892 1.28044 27.694 1.28044Z" fill="black"/>
</svg>
public/logo/medium.svg
<svg width="39" height="22" viewBox="0 0 39 22" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M10.8308 0C16.7997 0 21.6615 4.86181 21.6615 10.8789C21.6615 16.896 16.7997 21.7578 10.8308 21.7578C4.86181 21.7578 0 16.9441 0 10.8789C0 4.81368 4.86181 0 10.8308 0ZM28.16 0.625778C31.0963 0.625778 33.5513 5.24691 33.5513 10.8789C33.5513 16.559 31.1445 21.132 28.16 21.132C25.1755 21.132 22.7687 16.559 22.7687 10.8789C22.7687 5.19877 25.1755 0.625778 28.16 0.625778ZM36.4395 1.68479C37.5467 1.68479 38.365 5.82455 38.365 10.8789C38.365 15.9333 37.4985 20.073 36.4395 20.073C35.3911 20.073 34.5314 16.0156 34.5143 11.0303L34.5141 10.8789C34.5141 5.82455 35.3805 1.68479 36.4395 1.68479Z" fill="white"/>
</svg>
public/logo/notio-icon-black.svg
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_20_2065)">
<path d="M10.8811 3.75854L21.345 14.4838V20.2416H16.4618V16.5536L8.86181 8.76365H7.28304V20.2416H2.3999V3.75854H10.8811ZM16.4618 9.47868V3.75854H21.345V9.47868H16.4618Z" fill="black"/>
</g>
<defs>
<clipPath id="clip0_20_2065">
<rect width="19.5273" height="16.5231" fill="white" transform="translate(2.3999 3.6001)"/>
</clipPath>
</defs>
</svg>
public/logo/notio-icon-white.svg
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_40_559)">
<path d="M10.8811 3.75854L21.345 14.4838V20.2416H16.4618V16.5536L8.86181 8.76365H7.28304V20.2416H2.3999V3.75854H10.8811ZM16.4618 9.47868V3.75854H21.345V9.47868H16.4618Z" fill="white"/>
</g>
<defs>
<clipPath id="clip0_40_559">
<rect width="19.5273" height="16.5231" fill="white" transform="translate(2.3999 3.6001)"/>
</clipPath>
</defs>
</svg>
public/logo/notio-logo-black.svg
<svg width="83" height="25" viewBox="0 0 83 25" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_6_5868)">
<path d="M10.8811 4.11658L21.345 14.8418V20.5996H16.4618V16.9116L8.86181 9.12168H7.28304V20.5996H2.3999V4.11658H10.8811ZM16.4618 9.83671V4.11658H21.345V9.83671H16.4618Z" fill="black"/>
</g>
<path d="M30.3766 20.1989V4.66848H31.5862C31.8022 4.66848 31.9606 4.69728 32.0614 4.75488C32.1766 4.79808 32.2918 4.89888 32.407 5.05728L41.1118 16.3541C41.083 16.1525 41.0614 15.9581 41.047 15.7709C41.047 15.5693 41.047 15.3821 41.047 15.2093V4.66848H43.1206V20.1989H41.911C41.7382 20.1989 41.587 20.1701 41.4574 20.1125C41.3422 20.0405 41.2198 19.9253 41.0902 19.7669L32.3854 8.51328C32.3998 8.70048 32.407 8.88048 32.407 9.05328C32.4214 9.22608 32.4286 9.40608 32.4286 9.59328V20.1989H30.3766ZM28.7998 20.1989V19.2053C28.7998 19.0613 28.8358 18.9461 28.9078 18.8597C28.9798 18.7733 29.0878 18.7157 29.2318 18.6869L30.7222 18.3629L30.9814 20.1989H28.7998ZM32.0182 20.1989L32.2558 18.3629L33.7678 18.6869C33.9118 18.7157 34.0198 18.7733 34.0918 18.8597C34.1638 18.9461 34.1998 19.0613 34.1998 19.2053V20.1989H32.0182ZM30.9814 4.66848L30.7222 6.50448L29.2318 6.18048C29.0878 6.15168 28.9798 6.09408 28.9078 6.00768C28.8358 5.92128 28.7998 5.80608 28.7998 5.66208V4.66848H30.9814ZM41.479 4.66848L41.2198 6.50448L39.7294 6.18048C39.5854 6.15168 39.4774 6.09408 39.4054 6.00768C39.3334 5.92128 39.2974 5.80608 39.2974 5.66208V4.66848H41.479ZM44.6974 4.66848V5.66208C44.6974 5.80608 44.6614 5.92128 44.5894 6.00768C44.5174 6.09408 44.4094 6.15168 44.2654 6.18048L42.7534 6.50448L42.5158 4.66848H44.6974Z" fill="black"/>
<path d="M50.2108 9.03168C51.3052 9.03168 52.2412 9.26928 53.0188 9.74448C53.8108 10.2053 54.4156 10.8605 54.8332 11.7101C55.2652 12.5597 55.4812 13.5533 55.4812 14.6909C55.4812 15.8141 55.2652 16.8077 54.8332 17.6717C54.4156 18.5213 53.8108 19.1837 53.0188 19.6589C52.2412 20.1197 51.3052 20.3501 50.2108 20.3501C49.1308 20.3501 48.1876 20.1197 47.3812 19.6589C46.5892 19.1837 45.97 18.5213 45.5236 17.6717C45.0916 16.8077 44.8756 15.8141 44.8756 14.6909C44.8756 13.5533 45.0916 12.5597 45.5236 11.7101C45.97 10.8605 46.5892 10.2053 47.3812 9.74448C48.1876 9.26928 49.1308 9.03168 50.2108 9.03168ZM50.2108 18.6869C51.2332 18.6869 51.9964 18.3413 52.5004 17.6501C53.0044 16.9589 53.2564 15.9797 53.2564 14.7125C53.2564 13.8485 53.1412 13.1213 52.9108 12.5309C52.6948 11.9405 52.3564 11.4941 51.8956 11.1917C51.4492 10.8749 50.8876 10.7165 50.2108 10.7165C49.5052 10.7165 48.922 10.8749 48.4612 11.1917C48.0004 11.5085 47.662 11.9693 47.446 12.5741C47.23 13.1645 47.122 13.8773 47.122 14.7125C47.122 15.9365 47.374 16.9085 47.878 17.6285C48.382 18.3341 49.1596 18.6869 50.2108 18.6869Z" fill="black"/>
<path d="M59.7397 20.3717C58.8469 20.3717 58.1557 20.1197 57.6661 19.6157C57.1765 19.1117 56.9317 18.3989 56.9317 17.4773V10.9325H55.6789C55.5493 10.9325 55.4413 10.8965 55.3549 10.8245C55.2685 10.7525 55.2253 10.6373 55.2253 10.4789V9.61488L57.0181 9.35568L57.5149 6.11568C57.5581 5.84208 57.7165 5.70528 57.9901 5.70528H59.0917V9.37728H62.1589V10.9325H59.0917V17.3477C59.0917 17.7653 59.1925 18.0821 59.3941 18.2981C59.6101 18.5141 59.8909 18.6221 60.2365 18.6221C60.3949 18.6221 60.5533 18.5861 60.7117 18.5141C60.8845 18.4277 61.0429 18.3485 61.1869 18.2765C61.3309 18.1901 61.4461 18.1469 61.5325 18.1469C61.6333 18.1469 61.7269 18.2117 61.8133 18.3413L62.4613 19.3781C62.1013 19.6805 61.6837 19.9253 61.2085 20.1125C60.7333 20.2853 60.2437 20.3717 59.7397 20.3717Z" fill="black"/>
<path d="M65.1212 20.1989V9.20448H67.2812V20.1989H65.1212ZM63.5444 20.1989V19.2053C63.5444 19.0613 63.5804 18.9461 63.6524 18.8597C63.7244 18.7733 63.8324 18.7157 63.9764 18.6869L65.4668 18.3629L65.726 20.1989H63.5444ZM66.6548 20.1989L66.914 18.3629L68.426 18.6869C68.5556 18.7157 68.6564 18.7733 68.7284 18.8597C68.8004 18.9461 68.8364 19.0613 68.8364 19.2053V20.1989H66.6548ZM65.726 9.20448L65.4668 11.0405L63.9764 10.7165C63.8324 10.6877 63.7244 10.6301 63.6524 10.5437C63.5804 10.4573 63.5444 10.3421 63.5444 10.1981V9.20448H65.726ZM66.1796 7.28208C65.7908 7.28208 65.4452 7.13808 65.1428 6.85008C64.8548 6.56208 64.7108 6.22368 64.7108 5.83488C64.7108 5.43168 64.8548 5.08608 65.1428 4.79808C65.4452 4.49568 65.7908 4.34448 66.1796 4.34448C66.5828 4.34448 66.9284 4.49568 67.2164 4.79808C67.5188 5.08608 67.67 5.43168 67.67 5.83488C67.67 6.22368 67.5188 6.56208 67.2164 6.85008C66.9284 7.13808 66.5828 7.28208 66.1796 7.28208Z" fill="black"/>
<path d="M75.167 9.03168C76.2614 9.03168 77.1974 9.26928 77.975 9.74448C78.767 10.2053 79.3718 10.8605 79.7894 11.7101C80.2214 12.5597 80.4374 13.5533 80.4374 14.6909C80.4374 15.8141 80.2214 16.8077 79.7894 17.6717C79.3718 18.5213 78.767 19.1837 77.975 19.6589C77.1974 20.1197 76.2614 20.3501 75.167 20.3501C74.087 20.3501 73.1438 20.1197 72.3374 19.6589C71.5454 19.1837 70.9262 18.5213 70.4798 17.6717C70.0478 16.8077 69.8318 15.8141 69.8318 14.6909C69.8318 13.5533 70.0478 12.5597 70.4798 11.7101C70.9262 10.8605 71.5454 10.2053 72.3374 9.74448C73.1438 9.26928 74.087 9.03168 75.167 9.03168ZM75.167 18.6869C76.1894 18.6869 76.9526 18.3413 77.4566 17.6501C77.9606 16.9589 78.2126 15.9797 78.2126 14.7125C78.2126 13.8485 78.0974 13.1213 77.867 12.5309C77.651 11.9405 77.3126 11.4941 76.8518 11.1917C76.4054 10.8749 75.8438 10.7165 75.167 10.7165C74.4614 10.7165 73.8782 10.8749 73.4174 11.1917C72.9566 11.5085 72.6182 11.9693 72.4022 12.5741C72.1862 13.1645 72.0782 13.8773 72.0782 14.7125C72.0782 15.9365 72.3302 16.9085 72.8342 17.6285C73.3382 18.3341 74.1158 18.6869 75.167 18.6869Z" fill="black"/>
<defs>
<clipPath id="clip0_6_5868">
<rect width="19.5273" height="16.5231" fill="white" transform="translate(2.3999 3.95801)"/>
</clipPath>
</defs>
</svg>
public/logo/notio-logo-white.svg
<svg width="83" height="25" viewBox="0 0 83 25" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_61_677)">
<path d="M10.8814 4.11658L21.3452 14.8418V20.5996H16.4621V16.9116L8.86205 9.12168H7.28328V20.5996H2.40015V4.11658H10.8814ZM16.4621 9.83671V4.11658H21.3452V9.83671H16.4621Z" fill="white"/>
</g>
<path d="M30.3768 20.1989V4.66848H31.5864C31.8024 4.66848 31.9608 4.69728 32.0616 4.75488C32.1768 4.79808 32.292 4.89888 32.4072 5.05728L41.1121 16.3541C41.0833 16.1525 41.0617 15.9581 41.0473 15.7709C41.0473 15.5693 41.0473 15.3821 41.0473 15.2093V4.66848H43.1208V20.1989H41.9113C41.7385 20.1989 41.5872 20.1701 41.4577 20.1125C41.3424 20.0405 41.22 19.9253 41.0905 19.7669L32.3856 8.51328C32.4 8.70048 32.4072 8.88048 32.4072 9.05328C32.4216 9.22608 32.4288 9.40608 32.4288 9.59328V20.1989H30.3768ZM28.8 20.1989V19.2053C28.8 19.0613 28.836 18.9461 28.908 18.8597C28.98 18.7733 29.088 18.7157 29.232 18.6869L30.7224 18.3629L30.9816 20.1989H28.8ZM32.0184 20.1989L32.256 18.3629L33.768 18.6869C33.912 18.7157 34.02 18.7733 34.092 18.8597C34.164 18.9461 34.2 19.0613 34.2 19.2053V20.1989H32.0184ZM30.9816 4.66848L30.7224 6.50448L29.232 6.18048C29.088 6.15168 28.98 6.09408 28.908 6.00768C28.836 5.92128 28.8 5.80608 28.8 5.66208V4.66848H30.9816ZM41.4793 4.66848L41.22 6.50448L39.7296 6.18048C39.5856 6.15168 39.4776 6.09408 39.4056 6.00768C39.3336 5.92128 39.2976 5.80608 39.2976 5.66208V4.66848H41.4793ZM44.6976 4.66848V5.66208C44.6976 5.80608 44.6616 5.92128 44.5896 6.00768C44.5176 6.09408 44.4096 6.15168 44.2656 6.18048L42.7537 6.50448L42.516 4.66848H44.6976Z" fill="white"/>
<path d="M50.211 9.03168C51.3054 9.03168 52.2414 9.26928 53.019 9.74448C53.811 10.2053 54.4158 10.8605 54.8334 11.7101C55.2654 12.5597 55.4814 13.5533 55.4814 14.6909C55.4814 15.8141 55.2654 16.8077 54.8334 17.6717C54.4158 18.5213 53.811 19.1837 53.019 19.6589C52.2414 20.1197 51.3054 20.3501 50.211 20.3501C49.131 20.3501 48.1878 20.1197 47.3814 19.6589C46.5894 19.1837 45.9702 18.5213 45.5238 17.6717C45.0918 16.8077 44.8758 15.8141 44.8758 14.6909C44.8758 13.5533 45.0918 12.5597 45.5238 11.7101C45.9702 10.8605 46.5894 10.2053 47.3814 9.74448C48.1878 9.26928 49.131 9.03168 50.211 9.03168ZM50.211 18.6869C51.2334 18.6869 51.9966 18.3413 52.5006 17.6501C53.0046 16.9589 53.2566 15.9797 53.2566 14.7125C53.2566 13.8485 53.1414 13.1213 52.911 12.5309C52.695 11.9405 52.3566 11.4941 51.8958 11.1917C51.4494 10.8749 50.8878 10.7165 50.211 10.7165C49.5054 10.7165 48.9222 10.8749 48.4614 11.1917C48.0006 11.5085 47.6622 11.9693 47.4462 12.5741C47.2302 13.1645 47.1222 13.8773 47.1222 14.7125C47.1222 15.9365 47.3742 16.9085 47.8782 17.6285C48.3822 18.3341 49.1598 18.6869 50.211 18.6869Z" fill="white"/>
<path d="M59.74 20.3717C58.8472 20.3717 58.156 20.1197 57.6664 19.6157C57.1768 19.1117 56.932 18.3989 56.932 17.4773V10.9325H55.6792C55.5496 10.9325 55.4416 10.8965 55.3552 10.8245C55.2688 10.7525 55.2256 10.6373 55.2256 10.4789V9.61488L57.0184 9.35568L57.5152 6.11568C57.5584 5.84208 57.7168 5.70528 57.9904 5.70528H59.092V9.37728H62.1592V10.9325H59.092V17.3477C59.092 17.7653 59.1928 18.0821 59.3944 18.2981C59.6104 18.5141 59.8912 18.6221 60.2368 18.6221C60.3952 18.6221 60.5536 18.5861 60.712 18.5141C60.8848 18.4277 61.0432 18.3485 61.1872 18.2765C61.3312 18.1901 61.4464 18.1469 61.5328 18.1469C61.6336 18.1469 61.7272 18.2117 61.8136 18.3413L62.4616 19.3781C62.1016 19.6805 61.684 19.9253 61.2088 20.1125C60.7336 20.2853 60.244 20.3717 59.74 20.3717Z" fill="white"/>
<path d="M65.1214 20.1989V9.20448H67.2814V20.1989H65.1214ZM63.5446 20.1989V19.2053C63.5446 19.0613 63.5806 18.9461 63.6526 18.8597C63.7246 18.7733 63.8326 18.7157 63.9766 18.6869L65.467 18.3629L65.7262 20.1989H63.5446ZM66.655 20.1989L66.9142 18.3629L68.4262 18.6869C68.5558 18.7157 68.6566 18.7733 68.7286 18.8597C68.8006 18.9461 68.8366 19.0613 68.8366 19.2053V20.1989H66.655ZM65.7262 9.20448L65.467 11.0405L63.9766 10.7165C63.8326 10.6877 63.7246 10.6301 63.6526 10.5437C63.5806 10.4573 63.5446 10.3421 63.5446 10.1981V9.20448H65.7262ZM66.1798 7.28208C65.791 7.28208 65.4454 7.13808 65.143 6.85008C64.855 6.56208 64.711 6.22368 64.711 5.83488C64.711 5.43168 64.855 5.08608 65.143 4.79808C65.4454 4.49568 65.791 4.34448 66.1798 4.34448C66.583 4.34448 66.9286 4.49568 67.2166 4.79808C67.519 5.08608 67.6702 5.43168 67.6702 5.83488C67.6702 6.22368 67.519 6.56208 67.2166 6.85008C66.9286 7.13808 66.583 7.28208 66.1798 7.28208Z" fill="white"/>
<path d="M75.1673 9.03168C76.2617 9.03168 77.1977 9.26928 77.9753 9.74448C78.7673 10.2053 79.3721 10.8605 79.7897 11.7101C80.2217 12.5597 80.4377 13.5533 80.4377 14.6909C80.4377 15.8141 80.2217 16.8077 79.7897 17.6717C79.3721 18.5213 78.7673 19.1837 77.9753 19.6589C77.1977 20.1197 76.2617 20.3501 75.1673 20.3501C74.0873 20.3501 73.1441 20.1197 72.3377 19.6589C71.5457 19.1837 70.9265 18.5213 70.4801 17.6717C70.0481 16.8077 69.8321 15.8141 69.8321 14.6909C69.8321 13.5533 70.0481 12.5597 70.4801 11.7101C70.9265 10.8605 71.5457 10.2053 72.3377 9.74448C73.1441 9.26928 74.0873 9.03168 75.1673 9.03168ZM75.1673 18.6869C76.1897 18.6869 76.9529 18.3413 77.4569 17.6501C77.9609 16.9589 78.2129 15.9797 78.2129 14.7125C78.2129 13.8485 78.0977 13.1213 77.8673 12.5309C77.6513 11.9405 77.3129 11.4941 76.8521 11.1917C76.4057 10.8749 75.8441 10.7165 75.1673 10.7165C74.4617 10.7165 73.8785 10.8749 73.4177 11.1917C72.9569 11.5085 72.6185 11.9693 72.4025 12.5741C72.1865 13.1645 72.0785 13.8773 72.0785 14.7125C72.0785 15.9365 72.3305 16.9085 72.8345 17.6285C73.3385 18.3341 74.1161 18.6869 75.1673 18.6869Z" fill="white"/>
<defs>
<clipPath id="clip0_61_677">
<rect width="19.5273" height="16.5231" fill="white" transform="translate(2.40002 3.95801)"/>
</clipPath>
</defs>
</svg>
public/logo/notion-mini-light.svg
<svg width="26" height="27" viewBox="0 0 26 27" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M4.34116 4.5844C5.16058 5.24544 5.45696 5.19325 6.99119 5.08888L21.4443 4.21908C21.7581 4.21908 21.4966 3.90595 21.392 3.87116L18.986 2.14896C18.5328 1.80104 17.9051 1.38353 16.737 1.48791L2.75463 2.51427C2.24904 2.56646 2.14443 2.8274 2.35364 3.01876L4.34116 4.5844ZM5.21288 7.94182V23.1111C5.21288 23.9287 5.61387 24.2245 6.5379 24.1723L22.4206 23.2503C23.3446 23.1981 23.4492 22.6414 23.4492 21.9804V6.91546C23.4492 6.25441 23.1877 5.88909 22.6298 5.94128L6.0323 6.91546C5.42209 6.96764 5.21288 7.28077 5.21288 7.94182ZM20.8864 8.75943C20.991 9.21173 20.8864 9.68142 20.4331 9.7336L19.666 9.89017V21.0932C19.0035 21.4411 18.3933 21.6499 17.8702 21.6499C17.0508 21.6499 16.8416 21.3889 16.2314 20.6235L11.2277 12.7779V20.3626L12.8143 20.7105C12.8143 20.7105 12.8143 21.6325 11.5416 21.6325L8.01982 21.8412C7.91521 21.6325 8.01982 21.128 8.36851 21.0236L9.29253 20.7627V10.7426L8.01982 10.6382C7.91521 10.1859 8.17673 9.52485 8.89154 9.47267L12.6748 9.21173L17.8877 17.1443V10.1337L16.5627 9.97715C16.4581 9.42048 16.8765 9.00297 17.3821 8.95079L20.8864 8.75943ZM1.58653 1.12259L16.1442 0.061439C17.9225 -0.0951248 18.3933 0.00925143 19.5091 0.826863L24.1466 4.07991C24.9137 4.63658 25.1752 4.79315 25.1752 5.40201V23.2677C25.1752 24.381 24.7743 25.0421 23.3446 25.1464L6.45072 26.1728C5.36979 26.225 4.86419 26.0684 4.30629 25.3552L0.871719 20.9192C0.261516 20.1016 0 19.4928 0 18.7795V2.89698C0 1.975 0.418425 1.22697 1.58653 1.12259Z" fill="black"/>
</svg>
public/logo/notion-mini.svg
<svg width="34" height="35" viewBox="0 0 34 35" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M5.71206 6.0321C6.79023 6.9019 7.18021 6.83323 9.19893 6.69589L28.2162 5.55142C28.6291 5.55142 28.285 5.13941 28.1474 5.09363L24.9816 2.82758C24.3852 2.36979 23.5594 1.82044 22.0224 1.95778L3.62452 3.30825C2.95926 3.37692 2.82162 3.72026 3.0969 3.97205L5.71206 6.0321ZM6.85905 10.4498V30.4094C6.85905 31.4852 7.38668 31.8743 8.60249 31.8056L29.5008 30.5925C30.7166 30.5238 30.8543 29.7913 30.8543 28.9216V9.09929C30.8543 8.22949 30.5102 7.74881 29.7761 7.81747L7.93723 9.09929C7.13433 9.16795 6.85905 9.57996 6.85905 10.4498ZM27.4821 11.5256C27.6197 12.1207 27.4821 12.7387 26.8857 12.8074L25.8763 13.0134V27.7542C25.0046 28.212 24.2017 28.4866 23.5135 28.4866C22.4353 28.4866 22.16 28.1433 21.3571 27.1362L14.7733 16.813V26.7928L16.8609 27.2506C16.8609 27.2506 16.8609 28.4638 15.1863 28.4638L10.5524 28.7384C10.4148 28.4638 10.5524 27.8 11.0112 27.6626L12.227 27.3193V14.135L10.5524 13.9976C10.4148 13.4025 10.7589 12.5327 11.6994 12.464L16.6774 12.1207L23.5364 22.5583V13.3338L21.793 13.1278C21.6553 12.3954 22.2059 11.846 22.8712 11.7773L27.4821 11.5256ZM2.08754 1.4771L21.2424 0.0808408C23.5823 -0.125164 24.2017 0.0121729 25.6698 1.08798L31.7719 5.3683C32.7812 6.10077 33.1253 6.30677 33.1253 7.1079V30.6154C33.1253 32.0803 32.5977 32.9501 30.7166 33.0874L8.48779 34.4379C7.06552 34.5066 6.40026 34.3006 5.66618 33.3621L1.147 27.5253C0.3441 26.4495 0 25.6484 0 24.7099V3.81182C0 2.59868 0.550559 1.61443 2.08754 1.4771Z" fill="white"/>
</svg>
public/logo/notion.svg
<svg width="86" height="32" viewBox="0 0 86 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M29.9571 23.1832V13.4798H30.13L37.1931 23.1832H39.4157V8.93368H36.9461V18.6126H36.7732L29.7101 8.93368H27.4875V23.1832H29.9571ZM46.4047 23.4032C49.6646 23.4032 51.665 21.3012 51.665 17.7816C51.665 14.2864 49.6646 12.16 46.4047 12.16C43.1695 12.16 41.1445 14.2864 41.1445 17.7816C41.1692 21.3012 43.1448 23.4032 46.4047 23.4032ZM46.4047 21.3501C44.676 21.3501 43.6882 20.0547 43.6882 17.7816C43.6882 15.5329 44.676 14.2131 46.4047 14.2131C48.1335 14.2131 49.1213 15.5329 49.1213 17.7816C49.1213 20.0547 48.1335 21.3501 46.4047 21.3501ZM53.9124 9.74025V12.4533H52.1837V14.4086H53.9124V20.2991C53.9124 22.4011 54.9002 23.2321 57.4192 23.2321C57.8885 23.2321 58.3577 23.1832 58.7281 23.1099V21.2034C58.4318 21.2279 58.2342 21.2523 57.8885 21.2523C56.8512 21.2523 56.382 20.7879 56.382 19.7125V14.4086H58.7281V12.4533H56.382V9.74025H53.9124ZM60.2099 23.1832H62.6795V12.38H60.2099V23.1832ZM61.4447 10.5957C62.2597 10.5957 62.9265 9.93579 62.9265 9.12921C62.9265 8.29819 62.2597 7.63826 61.4447 7.63826C60.6298 7.63826 59.963 8.29819 59.963 9.12921C59.963 9.93579 60.6298 10.5957 61.4447 10.5957ZM69.4463 23.4032C72.7062 23.4032 74.7066 21.3012 74.7066 17.7816C74.7066 14.2864 72.7062 12.16 69.4463 12.16C66.2111 12.16 64.186 14.2864 64.186 17.7816C64.186 21.3012 66.1617 23.4032 69.4463 23.4032ZM69.4463 21.3501C67.7176 21.3501 66.7297 20.0547 66.7297 17.7816C66.7297 15.5329 67.7176 14.2131 69.4463 14.2131C71.1503 14.2131 72.1629 15.5329 72.1629 17.7816C72.1382 20.0547 71.1503 21.3501 69.4463 21.3501ZM76.1637 23.1832H78.6333V16.9017C78.6333 15.313 79.5717 14.3109 81.0288 14.3109C82.5353 14.3109 83.2268 15.1419 83.2268 16.7795V23.1832H85.6964V16.1929C85.6964 13.602 84.3628 12.16 81.9426 12.16C80.3126 12.16 79.226 12.8932 78.7074 14.1153H78.5345V12.38H76.139C76.1637 12.38 76.1637 23.1832 76.1637 23.1832Z" fill="white"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M3.80804 8.02164C4.52682 8.60151 4.78681 8.55573 6.13262 8.46417L18.8108 7.70119C19.0861 7.70119 18.8567 7.42652 18.7649 7.396L16.6544 5.88529C16.2568 5.5801 15.7062 5.21387 14.6816 5.30543L2.41634 6.20575C1.97284 6.25152 1.88108 6.48042 2.0646 6.64828L3.80804 8.02164ZM4.5727 10.9668V24.2731C4.5727 24.9904 4.92445 25.2498 5.735 25.204L19.6672 24.3952C20.4778 24.3494 20.5695 23.8611 20.5695 23.2813V10.0664C20.5695 9.48657 20.3401 9.16611 19.8507 9.21189L5.29149 10.0664C4.75622 10.1122 4.5727 10.3869 4.5727 10.9668ZM18.3214 11.684C18.4132 12.0807 18.3214 12.4927 17.9238 12.5385L17.2509 12.6758V22.503C16.6697 22.8082 16.1345 22.9913 15.6757 22.9913C14.9569 22.9913 14.7733 22.7624 14.2381 22.091L9.8489 15.2089V21.8621L11.2406 22.1673C11.2406 22.1673 11.2406 22.9761 10.1242 22.9761L7.03493 23.1592C6.94317 22.9761 7.03493 22.5336 7.34079 22.442L8.15134 22.2131V13.4236L7.03493 13.332C6.94317 12.9352 7.17257 12.3554 7.79959 12.3096L11.1182 12.0807L15.6909 19.0391V12.8895L14.5287 12.7521C14.4369 12.2638 14.8039 11.8976 15.2474 11.8518L18.3214 11.684ZM1.39169 4.98498L14.1616 4.05414C15.7215 3.9168 16.1345 4.00836 17.1132 4.72556L21.1812 7.57911C21.8542 8.06742 22.0836 8.20476 22.0836 8.73885V24.4105C22.0836 25.3871 21.7318 25.967 20.4778 26.0585L5.65853 26.9588C4.71034 27.0046 4.26684 26.8673 3.77745 26.2416L0.764666 22.3504C0.2294 21.6332 0 21.0991 0 20.4735V6.54146C0 5.7327 0.36704 5.07653 1.39169 4.98498Z" fill="white"/>
</svg>
public/logo/slack.svg
<svg width="80" height="32" viewBox="0 0 80 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M25.0743 21.6175L26.045 19.3298C27.1077 20.1235 28.494 20.5435 29.8805 20.5435C30.8972 20.5435 31.5441 20.1468 31.5441 19.54C31.5209 17.8592 25.4209 19.1664 25.3745 14.9407C25.3514 12.7931 27.2463 11.1356 29.9269 11.1356C31.5209 11.1356 33.1156 11.5326 34.2477 12.4432L33.3406 14.7796C32.299 14.1043 31.0126 13.6335 29.7881 13.6335C28.9563 13.6335 28.4015 14.0301 28.4015 14.544C28.4247 16.2015 34.5714 15.2909 34.6407 19.3298C34.6407 21.5242 32.7918 23.065 30.1576 23.065C28.2169 23.065 26.4377 22.5982 25.074 21.6175H25.0743ZM63.7242 18.5015C63.4792 18.9404 63.1228 19.3058 62.6916 19.56C62.2604 19.8143 61.7698 19.9483 61.2703 19.9484C59.7134 19.9484 58.4514 18.6732 58.4514 17.1003C58.4514 15.5275 59.7134 14.2523 61.2703 14.2523C61.7698 14.2524 62.2604 14.3864 62.6916 14.6406C63.1228 14.8949 63.4792 15.2603 63.7242 15.6992L66.4228 14.1888C65.412 12.3673 63.484 11.1356 61.2703 11.1356C58.0097 11.1356 55.3665 13.8059 55.3665 17.1003C55.3665 20.3945 58.0097 23.065 61.2703 23.065C63.484 23.065 65.412 21.8333 66.4228 20.0118L63.7242 18.5015ZM36.3918 22.8315H39.7654V6.17041H36.3921L36.3918 22.8315ZM68.1265 6.17041V22.8315H71.5001V17.8398L75.4977 22.8315H79.8098L74.7262 16.9015L79.44 11.3682H75.3128L71.5001 15.9686V6.17041H68.1265ZM50.1589 11.3689V12.7232C49.6045 11.7893 48.2411 11.1356 46.8085 11.1356C43.8508 11.1356 41.5171 13.7738 41.5171 17.0886C41.5171 20.4035 43.8508 23.065 46.8085 23.065C48.2411 23.065 49.6045 22.4114 50.1589 21.4775V22.8315H53.5325V11.3689H50.1589ZM50.1589 18.5245C49.6738 19.3415 48.657 19.948 47.525 19.948C45.9678 19.948 44.7058 18.6732 44.7058 17.1003C44.7058 15.5275 45.9678 14.2523 47.525 14.2523C48.657 14.2523 49.6738 14.8825 50.1589 15.7226V18.5245Z" fill="white"/>
<path d="M7.25846 5.80249C6.16519 5.80249 5.27904 6.69803 5.27904 7.80242C5.27877 8.06479 5.32977 8.32464 5.4291 8.56714C5.52844 8.80964 5.67416 9.03004 5.85797 9.21575C6.04178 9.40146 6.26006 9.54885 6.50036 9.6495C6.74065 9.75014 6.99826 9.80208 7.25846 9.80235H9.23821V7.80242C9.23865 7.27251 9.03033 6.76412 8.65906 6.38907C8.2878 6.01402 7.78399 5.80302 7.25846 5.80249ZM7.25846 11.1356H1.97967C0.886395 11.1356 0.000244141 12.0312 0.000244141 13.1359C0.000244141 14.2403 0.886395 15.1358 1.97967 15.1358H7.25879C8.35173 15.1358 9.23821 14.2403 9.23821 13.1359C9.23821 12.0312 8.35173 11.1356 7.25846 11.1356Z" fill="white"/>
<path d="M19.7958 13.1359C19.7958 12.0312 18.9093 11.1356 17.8161 11.1356C16.7228 11.1356 15.8367 12.0312 15.8367 13.1359V15.1358H17.8161C18.3416 15.1353 18.8454 14.9243 19.2167 14.5492C19.5879 14.1742 19.7963 13.6658 19.7958 13.1359ZM14.517 13.1359V7.80242C14.5175 7.2725 14.3092 6.76411 13.9379 6.38907C13.5666 6.01402 13.0628 5.80302 12.5373 5.80249C11.444 5.80249 10.5579 6.69803 10.5579 7.80242V13.1356C10.5579 14.2406 11.444 15.1362 12.5373 15.1362C13.0628 15.1356 13.5666 14.9246 13.9379 14.5496C14.3092 14.1745 14.5175 13.6661 14.517 13.1362" fill="white"/>
<path d="M12.5373 25.8023C13.0628 25.8018 13.5666 25.5908 13.9379 25.2157C14.3092 24.8407 14.5175 24.3323 14.517 23.8024C14.5175 23.2725 14.3092 22.7641 13.9379 22.389C13.5666 22.014 13.0628 21.803 12.5373 21.8025H10.5579V23.8024C10.5579 24.9068 11.444 25.8023 12.5373 25.8023ZM12.5373 20.4692H17.8164C18.9093 20.4692 19.7958 19.5736 19.7958 18.4689C19.7963 17.939 19.5879 17.4306 19.2167 17.0556C18.8454 16.6805 18.3416 16.4695 17.8161 16.469H12.5373C11.444 16.469 10.5579 17.3645 10.5579 18.4689C10.5576 18.7313 10.6086 18.9911 10.7079 19.2336C10.8073 19.4761 10.953 19.6965 11.1368 19.8823C11.3206 20.068 11.5389 20.2154 11.7792 20.316C12.0195 20.4166 12.2771 20.4686 12.5373 20.4689" fill="white"/>
<path d="M9.98769e-07 18.4689C-0.000260249 18.7313 0.0507318 18.9911 0.150066 19.2336C0.2494 19.4761 0.39513 19.6965 0.578937 19.8823C0.762743 20.068 0.981026 20.2154 1.22132 20.316C1.46162 20.4166 1.71922 20.4686 1.97942 20.4689C2.50496 20.4683 3.00876 20.2573 3.38003 19.8823C3.75129 19.5072 3.95962 18.9988 3.95918 18.4689V16.469H1.97942C0.886151 16.469 9.98769e-07 17.3645 9.98769e-07 18.4689ZM5.27879 18.4689V23.8021C5.27879 24.9068 6.16494 25.8023 7.25822 25.8023C7.78375 25.8018 8.28755 25.5908 8.65882 25.2157C9.03009 24.8407 9.23841 24.3323 9.23797 23.8024V18.4689C9.23823 18.2065 9.18723 17.9466 9.08787 17.7041C8.98852 17.4616 8.84276 17.2412 8.65892 17.0555C8.47508 16.8698 8.25675 16.7224 8.01642 16.6217C7.77609 16.5211 7.51845 16.4692 7.25822 16.469C6.16494 16.469 5.27879 17.3645 5.27879 18.4689Z" fill="white"/>
</svg>
public/logo/uber.svg
<svg width="21" height="14" viewBox="0 0 21 14" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_11_614)">
<mask id="mask0_11_614" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="0" y="0" width="21" height="14">
<path d="M21 0H0V14H21V0Z" fill="white"/>
</mask>
<g mask="url(#mask0_11_614)">
<path d="M1.20845 8.41661C1.29721 8.65216 1.42009 8.85354 1.57714 9.02084C1.73417 9.1881 1.92021 9.31611 2.13526 9.40488C2.35034 9.49365 2.58417 9.53801 2.83679 9.53801C3.08259 9.53801 3.313 9.4919 3.52808 9.39972C3.74315 9.30754 3.93089 9.17782 4.09133 9.01056C4.25177 8.84331 4.37636 8.64363 4.46513 8.41149C4.55389 8.17936 4.59826 7.91992 4.59826 7.63314V3.20898H5.67359V10.3777H4.60849V9.71209C4.36956 9.96466 4.08791 10.1593 3.76361 10.2958C3.43929 10.4324 3.08941 10.5006 2.7139 10.5006C2.33155 10.5006 1.97483 10.4341 1.64369 10.3009C1.31257 10.1678 1.0258 9.97836 0.783444 9.73257C0.541091 9.48678 0.349902 9.19151 0.209951 8.84672C0.0699759 8.50192 0 8.11793 0 7.69461V3.20898H1.07531V7.63314C1.07531 7.91992 1.11969 8.18106 1.20845 8.41661Z" fill="white"/>
<path d="M7.52726 3.20898V5.82044C7.76622 5.58153 8.04272 5.39204 8.3568 5.25209C8.67084 5.11213 9.01222 5.04213 9.3809 5.04213C9.76323 5.04213 10.1216 5.11379 10.4562 5.25721C10.7907 5.40058 11.0809 5.59513 11.3267 5.84096C11.5725 6.08675 11.7671 6.3769 11.9104 6.71141C12.0538 7.04601 12.1255 7.401 12.1255 7.77651C12.1255 8.15201 12.0538 8.50534 11.9104 8.83644C11.7671 9.16758 11.5725 9.45607 11.3267 9.70181C11.0809 9.9476 10.7907 10.1422 10.4562 10.2856C10.1216 10.4289 9.76323 10.5006 9.3809 10.5006C9.01218 10.5006 8.66913 10.4306 8.35168 10.2907C8.03419 10.1507 7.75598 9.96125 7.51702 9.72229V10.3777H6.49292V3.20898H7.52726ZM7.64503 8.48316C7.73717 8.70164 7.86523 8.89283 8.02907 9.05667C8.19291 9.22052 8.3841 9.35028 8.60255 9.44583C8.82108 9.54142 9.05658 9.5892 9.3092 9.5892C9.55503 9.5892 9.78712 9.54142 10.0056 9.44583C10.2241 9.35028 10.4135 9.22056 10.574 9.05667C10.7344 8.89283 10.8625 8.70164 10.958 8.48316C11.0536 8.26467 11.1014 8.02916 11.1014 7.77651C11.1014 7.52389 11.0536 7.28664 10.958 7.06474C10.8625 6.84288 10.7344 6.64999 10.574 6.48614C10.4135 6.3223 10.2241 6.19429 10.0056 6.10211C9.78712 6.00997 9.55498 5.96386 9.3092 5.96386C9.06345 5.96386 8.83131 6.00993 8.61283 6.10211C8.39434 6.19429 8.20319 6.3223 8.03931 6.48614C7.87546 6.64999 7.74574 6.84288 7.65015 7.06474C7.55456 7.28664 7.50678 7.52389 7.50678 7.77651C7.50678 8.02916 7.55285 8.26467 7.64503 8.48316Z" fill="white"/>
<path d="M12.7089 6.72202C12.8454 6.39428 13.0332 6.10584 13.2722 5.85664C13.5111 5.60744 13.7945 5.41113 14.1222 5.26777C14.4499 5.1244 14.8049 5.05273 15.1873 5.05273C15.5628 5.05273 15.911 5.12103 16.2319 5.25753C16.5527 5.39407 16.8292 5.58355 17.0614 5.82593C17.2935 6.0683 17.4745 6.35504 17.6041 6.68618C17.7339 7.01733 17.7987 7.37748 17.7987 7.76663V8.1046H13.5487C13.5828 8.31627 13.6511 8.51253 13.7535 8.69343C13.8559 8.87434 13.984 9.0314 14.1376 9.16453C14.2912 9.29767 14.4653 9.40179 14.6598 9.47687C14.8544 9.55198 15.0609 9.58957 15.2794 9.58957C15.9008 9.58957 16.4026 9.3335 16.7849 8.82145L17.5325 9.37445C17.2731 9.72265 16.9522 9.99574 16.5698 10.1938C16.1875 10.3917 15.7574 10.4907 15.2795 10.4907C14.8903 10.4907 14.5268 10.4224 14.1888 10.2859C13.8508 10.1494 13.5573 9.9582 13.3081 9.71237C13.0589 9.46658 12.8626 9.17814 12.7192 8.84704C12.5758 8.5159 12.5042 8.15575 12.5042 7.76659C12.5041 7.39791 12.5724 7.0497 12.7089 6.72202ZM14.1478 6.31746C13.8576 6.55983 13.6647 6.88245 13.5692 7.28525H16.7542C16.6654 6.88245 16.476 6.55983 16.1858 6.31746C15.8956 6.07513 15.5559 5.95394 15.1668 5.95394C14.7776 5.95394 14.4379 6.07513 14.1478 6.31746Z" fill="white"/>
<path d="M19.7344 6.4344C19.5159 6.67336 19.4067 6.99768 19.4067 7.40731V10.3773H18.3723V5.15427H19.3964V5.7995C19.5261 5.58784 19.6951 5.42054 19.9033 5.29769C20.1116 5.17475 20.3591 5.11328 20.6459 5.11328H21.0043V6.07596H20.5742C20.2328 6.076 19.9529 6.19548 19.7344 6.4344Z" fill="white"/>
</g>
</g>
<defs>
<clipPath id="clip0_11_614">
<rect width="21" height="14" fill="white"/>
</clipPath>
</defs>
</svg>
public/logo/webflow.svg
<svg width="112" height="32" viewBox="0 0 112 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M29.7642 6.7373L20.2667 25.3036H11.346L15.3207 17.6089H15.1424C11.8633 21.8655 6.97093 24.6677 0 25.3036V17.7155C0 17.7155 4.45947 17.4521 7.08106 14.6958H0V6.73745H7.95835V13.2831L8.13698 13.2823L11.389 6.73745H17.4078V13.2416L17.5864 13.2413L20.9604 6.7373H29.7642Z" fill="white"/>
<path d="M81.5537 23.2542H84.1167V8.54224H81.5537V23.2542Z" fill="white"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M67.4239 23.1039C67.981 23.3355 68.5474 23.4513 69.1233 23.4513C70.0747 23.4513 70.9258 23.2197 71.6769 22.7566C72.428 22.2934 73.0101 21.6549 73.4232 20.8413C73.8364 20.0213 74.0429 19.0919 74.0429 18.0529C74.0429 17.0138 73.8301 16.0844 73.4045 15.2645C72.9789 14.4445 72.3874 13.8092 71.63 13.3586C70.8727 12.9017 70.0121 12.6763 69.0481 12.6826C68.4348 12.6826 67.8465 12.8015 67.2831 13.0394C66.7197 13.2772 66.2504 13.6152 65.8748 14.0533C65.8458 14.0867 65.8177 14.1204 65.7903 14.1544V8.55162H63.2178V23.2542H65.7716L65.7664 21.8807C65.8325 21.9616 65.9031 22.0407 65.9781 22.1181C66.385 22.5375 66.8669 22.8661 67.4239 23.1039ZM70.0527 20.7286C69.6334 20.9852 69.1546 21.1136 68.6163 21.1136C68.0843 21.1136 67.5961 20.9821 67.1517 20.7192C66.7073 20.45 66.3536 20.0839 66.0908 19.6208C65.8342 19.1576 65.7059 18.6319 65.7059 18.0435C65.6996 17.4551 65.8248 16.9294 66.0814 16.4662C66.3443 15.9968 66.6979 15.6337 67.1423 15.3771C67.5867 15.1142 68.078 14.9859 68.6163 14.9922C69.1546 14.9859 69.6334 15.1111 70.0527 15.3677C70.4784 15.6181 70.8038 15.978 71.0292 16.4474C71.2607 16.9106 71.3765 17.4426 71.3765 18.0435C71.3765 18.6443 71.2607 19.1764 71.0292 19.6395C70.8038 20.1027 70.4784 20.4657 70.0527 20.7286Z" fill="white"/>
<path d="M33.4773 9.43415H36.4065L39.0269 19.0036L41.8144 9.43415H44.2554L47.2786 18.8116L49.7946 9.43415H52.4798L48.5178 23.2542H45.9922L42.9182 14.0931L40.0962 23.2542H37.5425L33.4773 9.43415Z" fill="white"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M56.8055 23.4983C55.7852 23.5045 54.8652 23.2791 54.0452 22.8223C53.2316 22.3591 52.59 21.7175 52.1206 20.8976C51.6574 20.0776 51.4258 19.1419 51.4258 18.0904C51.4258 17.0702 51.6637 16.147 52.1393 15.3208C52.615 14.4946 53.2597 13.8499 54.0733 13.3867C54.887 12.9236 55.7946 12.692 56.7961 12.692C57.9227 12.692 58.9085 12.9424 59.7535 13.4431C60.6047 13.9438 61.24 14.6542 61.6593 15.5743C62.0849 16.4881 62.2383 17.5365 62.1194 18.7194H54.0774C54.0998 19.1907 54.2174 19.6195 54.4302 20.0057C54.668 20.4313 54.9998 20.763 55.4253 21.0009C55.8509 21.2387 56.3266 21.3576 56.8524 21.3576C57.253 21.3514 57.6254 21.2825 57.9696 21.1511C58.3139 21.0134 58.6049 20.8287 58.8428 20.5972C59.0868 20.3656 59.259 20.1027 59.3591 19.8086H62.0443C61.8816 20.5283 61.5561 21.1699 61.0679 21.7332C60.5796 22.2902 59.9662 22.7252 59.2277 23.0382C58.4891 23.3511 57.6817 23.5045 56.8055 23.4983ZM54.4396 16.1376C54.2895 16.3992 54.1856 16.6808 54.1278 16.9826H59.4586C59.4199 16.6013 59.3023 16.254 59.1056 15.9404C58.8804 15.5712 58.5737 15.2864 58.1856 15.0861C57.7975 14.8795 57.3594 14.7763 56.8712 14.7763C56.3517 14.7763 55.8792 14.8952 55.4535 15.133C55.0279 15.3709 54.6898 15.7057 54.4396 16.1376Z" fill="white"/>
<path d="M75.9299 12.9079C75.9299 12.0692 76.1209 11.3244 76.5027 10.6734C76.8845 10.0162 77.4197 9.50613 78.1082 9.14311C78.8028 8.77382 79.6135 8.58292 80.5398 8.5704V10.8518C80.1079 10.8581 79.7387 10.9488 79.4319 11.1241C79.1315 11.2931 78.8999 11.5403 78.7372 11.8658C78.5873 12.1654 78.5065 12.5128 78.4946 12.9079H80.4835V15.0767H78.493V23.2542H75.9299V15.0767H74.2776V12.9079H75.9299Z" fill="white"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M90.6324 23.4795C89.5871 23.4795 88.6514 23.251 87.8252 22.7941C87.0053 22.3309 86.3606 21.6925 85.8912 20.8789C85.428 20.0589 85.1964 19.1295 85.1964 18.0904C85.1964 17.0452 85.428 16.1126 85.8912 15.2926C86.3606 14.4664 87.0053 13.8249 87.8252 13.368C88.6514 12.9111 89.5871 12.6826 90.6324 12.6826C91.6839 12.6826 92.6228 12.9111 93.449 13.368C94.2815 13.8249 94.9292 14.4633 95.3924 15.2832C95.8555 16.1032 96.0903 17.0389 96.0966 18.0904C96.0903 19.1295 95.8555 20.0589 95.3924 20.8789C94.9355 21.6925 94.2908 22.3309 93.4584 22.7941C92.6259 23.251 91.6839 23.4795 90.6324 23.4795ZM90.6324 21.123C91.1832 21.123 91.6714 20.9978 92.097 20.7474C92.5227 20.4908 92.8512 20.1339 93.0828 19.6771C93.3144 19.2139 93.4302 18.6851 93.4302 18.0904C93.4302 17.4896 93.3144 16.9575 93.0828 16.4944C92.8512 16.0312 92.5227 15.6744 92.097 15.4241C91.6714 15.1674 91.1832 15.0391 90.6324 15.0391C90.0878 15.0391 89.6028 15.1674 89.1772 15.4241C88.7578 15.6744 88.4323 16.0312 88.2008 16.4944C87.9691 16.9575 87.8565 17.4896 87.8628 18.0904C87.8628 18.6851 87.9785 19.2139 88.2101 19.6771C88.448 20.1339 88.7734 20.4908 89.1866 20.7474C89.6059 20.9978 90.0878 21.123 90.6324 21.123Z" fill="white"/>
<path d="M98.8661 12.9079H96.0121L99.1009 23.2542H101.598L103.63 16.646L105.823 23.2542H108.283L111.381 12.9079H108.8L107.042 19.3478L105.1 12.9079H102.603L100.67 19.4897L98.8661 12.9079Z" fill="white"/>
</svg>
app/templates/notio/(pages)/page.tsx
import Beam from "@/components/templates/notio/beam";
import Hero from "@/components/templates/notio/call-to-action/hero";
import Features from "@/components/templates/notio/features/features";
import Footer from "@/components/templates/notio/footer";
import LogoCloud from "@/blocks/logo-cloud";
import Navbar from "@/components/templates/notio/navbar";
import Pricing from "@/blocks/pricing/pricing";
import Stats from "@/components/templates/notio/stats";
import Team from "@/blocks/team-member/team";
import Testimonial from "@/blocks/testimonial/testimonial";

export default function Page() {
    return (
        <div className="relative flex flex-col gap-8 overflow-hidden p-3 md:p-2">
            <Navbar />
            <Hero />
            <LogoCloud />
            <Beam>
                <Features />
            </Beam>
            <Stats />
            <Team />
            <Testimonial />
            <Pricing />
            <Footer />
        </div>
    );
}
app/templates/notio/(pages)/layout.tsx
import { themesConfig } from "@/components/templates/notio/notio-themes";
import { ColorThemeSwitcher } from "@/components/theme/color-theme-switcher";
import { ThemeVariables } from "@/components/theme/theme-variables";
import { ColorThemeProvider } from "@/utils/context/color-theme-context";
import { ThemeProvider } from "@/utils/providers/theme-provider";
import { Aleo } from "next/font/google";
import "./index.css";

const aleo = Aleo({ subsets: ["latin"], variable: "--font-notio-aleo" });
const notioSansFont =
  '-apple-system, BlinkMacSystemFont, "San Francisco", "Helvetica Neue", Helvetica, ui-sans-serif, sans-serif';
const themeNames = ["basil", "forest", "sunny"];

const themeSwatches: Record<string, string> = {
  basil: "oklch(0.6292 0.0458 300.3136)",
  forest: "oklch(0.8348 0.1302 160.9080)",
  sunny: "oklch(0.713 0.1305 61.77)",
};
export default function NotioTemplateLayout({
  children,
}: {
  children: React.ReactNode;
}) {
  return (
    <html lang="en" suppressHydrationWarning>
      <body
        className={`${aleo.variable} min-h-screen bg-background text-foreground`}
        style={{ fontFamily: notioSansFont }}
      >
        <div
          className={`${aleo.variable} min-h-screen bg-background text-foreground`}
          style={{ fontFamily: notioSansFont }}
        >
          <ThemeProvider
            attribute="class"
            defaultTheme="system"
            enableSystem
            disableTransitionOnChange
          >
            <ColorThemeProvider>
              <ThemeVariables themesConfig={themesConfig} />
              {children}
              <ColorThemeSwitcher
                themeNames={themeNames}
                themeSwatches={themeSwatches}
              />
            </ColorThemeProvider>
          </ThemeProvider>
        </div>
      </body>
    </html>
  );
}
app/templates/notio/(pages)/auth/login/page.tsx
"use client";

import OrbBackground from "@/components/orb-background";
import { Button } from "@/components/ui/button";
import { Input } from "@/components/ui/input";
import Image from "next/image";
import Link from "next/link";

export default function AuthPage() {
  return (
    <div className="relative min-h-screen w-full flex items-center justify-center p-4">
      <OrbBackground />
      <div className="relative z-10 w-full max-w-sm bg-background border border-secondary/30 rounded-2xl p-8 shadow-xl">
        <div className="flex flex-col gap-6">
          <Image
            src="/logo/notio-icon-black.svg"
            alt="Notio"
            width={32}
            height={32}
            className="dark:hidden"
          />
          <Image
            src="/logo/notio-icon-white.svg"
            alt="Notio"
            width={32}
            height={32}
            className="hidden dark:block"
          />

          <div className="flex flex-col gap-2">
            <h1 className="text-2xl font-semibold tracking-tight">
              Create a Notio Account
            </h1>
            <p className="text-sm text-muted-foreground">
              Welcome! Create an account to get started
            </p>
          </div>

          <Button variant="outline" className="w-full h-11 gap-2 font-normal">
            <svg
              xmlns="http://www.w3.org/2000/svg"
              viewBox="0 0 24 24"
              className="w-5 h-5"
            >
              <path
                fill="#4285F4"
                d="M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z"
              />
              <path
                fill="#34A853"
                d="M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z"
              />
              <path
                fill="#FBBC05"
                d="M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z"
              />
              <path
                fill="#EA4335"
                d="M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z"
              />
            </svg>
            Google
          </Button>

          <div className="flex items-center gap-4">
            <div className="flex-1 h-px bg-border" />
            <span className="text-xs text-muted-foreground">
              Or, continue with
            </span>
            <div className="flex-1 h-px bg-border" />
          </div>

          <div className="flex flex-col gap-4">
            <Input type="email" placeholder="Email address" className="h-11" />
            <Button className="w-full h-11">Continue</Button>
          </div>

          <p className="text-sm text-center text-muted-foreground">
            Have an account?{" "}
            <Link
              href="#"
              className="text-foreground font-medium hover:underline"
            >
              Sign in
            </Link>
          </p>
        </div>
      </div>
    </div>
  );
}
app/templates/notio/(pages)/index.css
@import "tailwindcss";
@import "tw-animate-css";

@custom-variant dark (&:is(.dark *));

@theme inline {
  --color-background: var(--background);
  --color-foreground: var(--foreground);
  --font-aleo: "Aleo", "Aleo Fallback", Georgia, serif;
  --color-sidebar-ring: var(--sidebar-ring);
  --color-sidebar-border: var(--sidebar-border);
  --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
  --color-sidebar-accent: var(--sidebar-accent);
  --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
  --color-sidebar-primary: var(--sidebar-primary);
  --color-sidebar-foreground: var(--sidebar-foreground);
  --color-sidebar: var(--sidebar);
  --color-chart-5: var(--chart-5);
  --color-chart-4: var(--chart-4);
  --color-chart-3: var(--chart-3);
  --color-chart-2: var(--chart-2);
  --color-chart-1: var(--chart-1);
  --color-ring: var(--ring);
  --color-input: var(--input);
  --color-border: var(--border);
  --color-destructive: var(--destructive);
  --color-accent-foreground: var(--accent-foreground);
  --color-accent: var(--accent);
  --color-muted-foreground: var(--muted-foreground);
  --color-muted: var(--muted);
  --color-secondary-foreground: var(--secondary-foreground);
  --color-secondary: var(--secondary);
  --color-primary-foreground: var(--primary-foreground);
  --color-primary: var(--primary);
  --color-popover-foreground: var(--popover-foreground);
  --color-popover: var(--popover);
  --color-card-foreground: var(--card-foreground);
  --color-card: var(--card);
  --radius-sm: calc(var(--radius) - 4px);
  --radius-md: calc(var(--radius) - 2px);
  --radius-lg: var(--radius);
  --radius-xl: calc(var(--radius) + 4px);
  --radius-2xl: calc(var(--radius) + 8px);
  --radius-3xl: calc(var(--radius) + 12px);
  --radius-4xl: calc(var(--radius) + 16px);
  --background-image-hero-radial-light: radial-gradient(
    ellipse 100% 100% at 50% var(--bg-pos, 5%),
    var(--gradient-start) 0%,
    var(--gradient-start) var(--bg-mid, 40%),
    var(--gradient-mid-light) var(--bg-mid-alt, 70%),
    var(--gradient-mid-light) 70%,
    var(--gradient-mid-dark) 85%,
    var(--gradient-end-light) 100%
  );
  --background-image-hero-radial-dark: radial-gradient(
    ellipse 100% 100% at 50% var(--bg-pos, 5%),
    var(--gradient-start) 0%,
    var(--gradient-start) var(--bg-mid, 40%),
    var(--gradient-mid-dark) 85%,
    var(--gradient-end-dark) 100%
  );
  --background-image-footer-radial-light: radial-gradient(
    ellipse 100% 100% at 50% var(--bg-pos-footer, 0%),
    var(--gradient-start) 50%,
    var(--gradient-start) 30%,
    var(--gradient-mid-light) 76%,
    var(--gradient-mid-light) 70%,
    var(--gradient-mid-dark) 85%,
    var(--gradient-end-light) 100%
  );
  --background-image-footer-radial-dark: radial-gradient(
    ellipse 100% 100% at 50% var(--bg-pos-footer, 0%),
    var(--gradient-start) 50%,
    var(--gradient-mid-dark) 70%,
    var(--gradient-mid-light) 90%,
    var(--gradient-end-light) 100%
  );

  --background-image-footer-radial-dark-mobile: radial-gradient(
    ellipse 150% 100% at 50% var(--bg-pos-footer, 0%),
    var(--gradient-start) 50%,
    var(--gradient-mid-dark) 70%,
    var(--gradient-mid-light) 85%,
    var(--gradient-end-light) 100%
  );

  --background-image-footer-radial-light-mobile: radial-gradient(
    ellipse 150% 100% at 50% var(--bg-pos-footer, 0%),
    var(--gradient-start) 50%,
    var(--gradient-mid-light) 70%,
    var(--gradient-mid-light) 5%,
    var(--gradient-end-light) 100%
  );
}

:root {
  --radius: 0.625rem;
  --spacing: 0.25rem;
  --tracking-normal: 0em;
  --gradient-start: #ffffff;
  --gradient-mid-light: #dc8e43;
  --gradient-mid-dark: #c76829;
  --gradient-end-light: #9c3a21;
  --gradient-end-dark: #dc8e43;
  --gradient-orb-base: #e9b88a;
  --orb-color-light: rgba(233, 184, 138, 0.35);
  --orb-color-dark: rgba(199, 104, 41, 0.35);
  --orb-color-dark-fade: rgba(199, 104, 41, 0.15);
}

More from styleui

Browse all components in this library →