Styling

This project uses Tailwind CSS 4 for utility-first styling and shadcn/ui for pre-built, accessible UI components. Together they provide a fast, consistent design system that is easy to customize and extend.

Stack overview

LayerRole
Tailwind CSS 4Utility classes, responsive design, color system
shadcn/uiCopy-paste component library built on Radix primitives
CSS variablesTheme tokens for colors, spacing, and radii
OKLCH colorsPerceptually uniform color space used by Tailwind 4

How it fits together

Tailwind 4 introduces a CSS-first configuration model. Instead of a tailwind.config.ts file, you define your design tokens directly in CSS using @theme. shadcn/ui components consume those tokens through CSS variables, making theming a matter of updating a few values in globals.css.

Sub-topics

Quick example

import { Button } from "@/components/ui/button";

export function Hero() {
  return (
    <section className="flex min-h-[60vh] flex-col items-center justify-center gap-6 px-4">
      <h1 className="text-4xl font-bold tracking-tight md:text-6xl">
        Build faster
      </h1>
      <p className="max-w-md text-center text-muted-foreground">
        A modern stack with real-time data and beautiful defaults.
      </p>
      <Button size="lg">Get started</Button>
    </section>
  );
}

The example above uses Tailwind utilities for layout and typography, a shadcn/ui Button for the call-to-action, and the text-muted-foreground token for theme-aware color.