Introduction
SaaS Starter Vue comes with a rich collection of pre-built UI components based on reka-ui (a Vue 3 headless UI library) and styled with Tailwind CSS 4. These components provide a solid foundation for building modern, accessible, and responsive interfaces.Component Libraries
The project uses several key libraries for the UI layer:- reka-ui - Headless UI components with full accessibility support
- Tailwind CSS 4 - Utility-first CSS framework for styling
- class-variance-authority (CVA) - For managing component variants
- lucide-vue-next - Icon library
- vue-sonner - Toast notifications
- @tanstack/vue-table - Powerful table component
Component Architecture
All UI components follow a consistent pattern:- Base Components - Located in
resources/js/components/ui/ - Variant System - Using CVA for type-safe variant props
- Styling - Tailwind classes with dark mode support
- Accessibility - Built-in ARIA attributes and keyboard navigation
Available Component Categories
Form Components
- Input
- Textarea
- Select
- Checkbox
- Radio Group
- Switch
- Label
- Form (with validation)
Buttons & Actions
- Button (with multiple variants)
- Toggle
- Toggle Group
Overlays & Dialogs
- Dialog (Modal)
- Sheet (Slide-over)
- Popover
- Dropdown Menu
- Context Menu
- Tooltip
Navigation
- Breadcrumb
- Navigation Menu
- Menubar
- Sidebar
- Tabs
- Pagination
Feedback
- Alert
- Toast (Sonner)
- Progress
- Spinner
- Skeleton
Data Display
- Table
- Card
- Badge
- Avatar
- Accordion
- Collapsible
- Separator
Layout
- Card
- Separator
Component Location
All base UI components are located in:Importing Components
Components are imported from their respective directories:Styling System
All components use a centralized styling approach:- Base styles - Defined in component files using Tailwind classes
- Variants - Managed with class-variance-authority (CVA)
- Dark mode - Full support with
dark:variant classes - Focus states - Accessible focus indicators with ring utilities
- Animations - Using tw-animate-css for smooth transitions
Utility Functions
Thecn() utility function (from @/lib/utils) is used throughout to merge Tailwind classes:
Accessibility Features
All components are built with accessibility in mind:- Proper ARIA attributes
- Keyboard navigation support
- Focus management
- Screen reader announcements
- Semantic HTML structure
Dark Mode Support
Every component includes dark mode variants:Next Steps
Form Components
Learn about input fields, validation, and form handling
Buttons
Explore button variants and usage patterns
Modals & Dialogs
Work with dialogs, sheets, and overlays