Component Documentation¶
The Freeze Design frontend uses a library of reusable React components.
Storybook¶
Browse and interact with components in our Storybook (Storybook 10, framework @storybook/nextjs-vite; addons: links, a11y, docs):
Storybook provides:
- Visual component catalog
- Interactive prop controls
- Accessibility testing (@storybook/addon-a11y)
- Component states and variants
TypeScript API¶
For TypeScript type definitions and utilities:
Component Categories¶
Layout Components¶
Header- Main site header with navigation (components/header/)Footer- Site footer with linksTopBar- Teal accent barLogo- Brand logo
Product Components¶
ProductCard- Product listing card (components/products/; usesnext/imagewithfill+ responsivesizes)ColorSwatches- Color selectionSizeSelector- Size selectionQuantitySelector- Quantity inputPriceDisplay- Price formatting
Designer Components (components/ProductDesigner/)¶
Designer- Main canvas componentToolNav- Design tool navigationTextTab- Text editing toolsImageTab- Image upload/editingShapesTab- Shape toolsViewSwitcher- Front/back view switching
Admin Components (components/admin/)¶
AdminNav- Admin sidebar: fixedw-64sidebar on desktop (hidden lg:block), floating menu button with overlay drawer on mobile/tabletAdminDataTable,AdminFormField,AdminToast,AdminConfirmDialog- Admin UI primitives
Providers (components/providers/)¶
PostHogProvider- Analytics provider; mounted only on non-admin routes (admin sessions are excluded from analytics)QueryProvider,SentryProvider,MotionProvider
Form Components¶
Toast- Notification messages
Sections¶
- Component Library - Component guidelines