Component Organization
Components are organized into three main categories:Common Components
Shared components used across both admin and storefront:- Core Components: Area, Image, Link, Meta, Title, Script
- Form Components: Form, InputField, SelectField, CheckboxField, etc.
- UI Components: Button, Badge, Card, Table, Dialog, etc.
- Utility Components: LoadingBar, Notification, RenderIfTrue
Admin Components
Components specific to the admin panel:- Layout Components: PageHeading, NavigationItem, SettingMenu
- Data Display: Status, Thumbnail, GridPagination
- Data Input: CategorySelector, ProductSelector, ImageUploader
- Grid Components: Sortable headers, pagination controls
Storefront Components
Components for the customer-facing storefront:- Layout Components: Header, Footer, Pagination
- Cart Components: AddToCart, MiniCart, CartContext
- Catalog Components: ProductList, ProductCard
- Checkout Components: Payment and shipment forms
- Customer Components: Account management, address forms
Component Architecture
TypeScript Props
All components use TypeScript interfaces for type-safe props:Area-Based Composition
TheArea component enables dynamic component composition:
React Hook Form Integration
Form components integrate with React Hook Form:Context Providers
Components use React Context for state management:Styling Approach
Tailwind CSS
Components use Tailwind CSS utility classes:Class Variance Authority (CVA)
UI components use CVA for variant management:Component-Specific Styles
Some components include SCSS files for complex styling:Key Features
Image Optimization
TheImage component provides automatic optimization:
Resource Preloading
TheLink component supports resource hints:
Render Props Pattern
Components likeAddToCart use render props for flexibility:
Component Imports
Path Aliases
Use path aliases for cleaner imports:File Extensions
Always include.js extension in imports (TypeScript output):
Next Steps
Admin Components
Explore admin panel components
Storefront Components
Browse storefront components
Create Components
Learn to create custom components