Code Snippets

Ready-to-use code snippets for common UI patterns and components.

Basic Page Layout

Page with Header and Footer
A basic page layout with header, main content, and footer.
tsx
export default function Layout({ children }) {
  return (
    <div className="flex min-h-screen flex-col">
      <header className="sticky top-0 z-40 border-b bg-background">
        <div className="container flex h-16 items-center">
          <div className="mr-4 hidden md:flex">
            <a href="/" className="mr-6 flex items-center space-x-2">
              <span className="font-bold">Your Logo</span>
            </a>
            <nav className="flex items-center space-x-6 text-sm font-medium">
              <a href="/about" className="transition-colors hover:text-foreground/80">About</a>
              <a href="/products" className="transition-colors hover:text-foreground/80">Products</a>
              <a href="/contact" className="transition-colors hover:text-foreground/80">Contact</a>
            </nav>
          </div>
          <div className="flex flex-1 items-center justify-end">
            <button className="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:opacity-50 disabled:pointer-events-none ring-offset-background border border-input hover:bg-accent hover:text-accent-foreground h-10 py-2 px-4">
              Sign In
            </button>
          </div>
        </div>
      </header>
      <main className="flex-1">
        <div className="container py-8">
          {children}
        </div>
      </main>
      <footer className="border-t py-6 md:py-0">
        <div className="container flex flex-col items-center justify-between gap-4 md:h-16 md:flex-row">
          <p className="text-sm text-muted-foreground">
            &copy; {new Date().getFullYear()} Your Company. All rights reserved.
          </p>
          <div className="flex items-center gap-4">
            <a href="/terms" className="text-sm text-muted-foreground hover:text-foreground">
              Terms
            </a>
            <a href="/privacy" className="text-sm text-muted-foreground hover:text-foreground">
              Privacy
            </a>
          </div>
        </div>
      </footer>
    </div>
  )
}

Dashboard Layout

Dashboard with Sidebar
A dashboard layout with a sidebar navigation.
tsx
export default function DashboardLayout({ children }) {
  return (
    <div className="flex min-h-screen flex-col">
      <header className="sticky top-0 z-40 border-b bg-background">
        <div className="container flex h-16 items-center">
          <div className="mr-4">
            <a href="/" className="flex items-center space-x-2">
              <span className="font-bold">Dashboard</span>
            </a>
          </div>
          <div className="flex flex-1 items-center justify-end">
            <button className="inline-flex items-center justify-center rounded-full h-10 w-10 text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:opacity-50 disabled:pointer-events-none ring-offset-background hover:bg-accent hover:text-accent-foreground">
              <span className="sr-only">User menu</span>
              <span className="rounded-full h-8 w-8 bg-muted flex items-center justify-center">
                U
              </span>
            </button>
          </div>
        </div>
      </header>
      <div className="flex flex-1">
        <aside className="w-64 border-r bg-background hidden md:block">
          <div className="flex flex-col gap-2 p-4">
            <a href="/dashboard" className="flex items-center gap-2 rounded-lg px-3 py-2 text-foreground transition-all hover:bg-accent">
              Dashboard
            </a>
            <a href="/dashboard/analytics" className="flex items-center gap-2 rounded-lg px-3 py-2 text-muted-foreground transition-all hover:bg-accent hover:text-foreground">
              Analytics
            </a>
            <a href="/dashboard/customers" className="flex items-center gap-2 rounded-lg px-3 py-2 text-muted-foreground transition-all hover:bg-accent hover:text-foreground">
              Customers
            </a>
            <a href="/dashboard/products" className="flex items-center gap-2 rounded-lg px-3 py-2 text-muted-foreground transition-all hover:bg-accent hover:text-foreground">
              Products
            </a>
            <a href="/dashboard/settings" className="flex items-center gap-2 rounded-lg px-3 py-2 text-muted-foreground transition-all hover:bg-accent hover:text-foreground">
              Settings
            </a>
          </div>
        </aside>
        <main className="flex-1">
          <div className="container py-8">
            {children}
          </div>
        </main>
      </div>
    </div>
  )
}