Sassify
DocsComponentsComponent Overview

Component Overview

All components live in src/components/ui/. They're built with:

  • CVA (class-variance-authority) for variant management
  • Framer Motion for animations and transitions
  • Tailwind CSS with the Sassify design tokens
  • Lucide React for icons

Every component is a "use client" component since they're interactive. Use them inside Server Components freely — Next.js handles the client boundary automatically.

Browse the live showcase

Visit /components to see every component rendered with all variants and interactive states.

Form components

ComponentImportDescription
Input@/components/ui/InputText input with label, prefix/suffix, error, helper
Textarea@/components/ui/TextareaMulti-line text input
Select@/components/ui/SelectDropdown select with options
Checkbox@/components/ui/CheckboxCheckbox with label and description
Switch@/components/ui/SwitchToggle switch

Display components

ComponentImportDescription
Button@/components/ui/Button7 variants, 5 sizes, loading state
Badge@/components/ui/BadgeStatus and category labels
Avatar@/components/ui/AvatarUser avatars with status indicators
Card@/components/ui/CardContent containers with 4 variants

Feedback components

ComponentImportDescription
Alert@/components/ui/AlertInfo, success, warning, error messages
Skeleton@/components/ui/SkeletonLoading placeholders
Spinner@/components/ui/SpinnerLoading spinners
Progress@/components/ui/ProgressProgress bars with variants
Tooltip@/components/ui/TooltipHover tooltips on any element
ComponentImportDescription
Tabs@/components/ui/TabsPills and underline tab variants
Breadcrumb@/components/ui/BreadcrumbHierarchical navigation
Dropdown@/components/ui/DropdownContext menus and action menus
Sidebar@/components/ui/SidebarApp sidebar with collapsible sections

Overlay components

ComponentImportDescription
Modal@/components/ui/ModalDialog overlays
CommandPalette@/components/ui/CommandPalette⌘K search palette

Data components

ComponentImportDescription
Table@/components/ui/TableData tables with avatar support
Chart@/components/ui/ChartBar, Line, and Donut charts

Example usage

import { Button } from "@/components/ui/Button"
import { Input } from "@/components/ui/Input"
import { Card, CardHeader, CardTitle, CardContent } from "@/components/ui/Card"
import { Mail } from "lucide-react"
 
export function ContactForm() {
  return (
    <Card variant="glass">
      <CardHeader>
        <CardTitle>Get in touch</CardTitle>
      </CardHeader>
      <CardContent className="flex flex-col gap-4">
        <Input
          label="Email"
          type="email"
          placeholder="you@example.com"
          prefix={<Mail size={14} />}
          required
        />
        <Button variant="gradient" className="w-full">
          Send message
        </Button>
      </CardContent>
    </Card>
  )
}