Storefront Features
Tokens, colors, typography, and shadcn/ui customization.
Theming
CommerceForge uses Tailwind CSS v4 and shadcn/ui. Design tokens are centralized so theme changes flow through the entire storefront.
Design tokens
CSS custom properties are defined in:
app/styles/tailwind.css
The file contains:
:rootfor light mode.darkfor dark mode
Tailwind v4 reads these tokens directly through @theme inline.
Changing colors
Edit token values in tailwind.css:
:root {
--background: 0 0% 100%;
--foreground: 240 10% 3.9%;
--primary: 240 5.9% 10%;
--primary-foreground: 0 0% 98%;
}
.dark {
--background: 240 10% 3.9%;
--foreground: 0 0% 98%;
}
Because the UI kit uses these variables, palette changes apply globally.
Border radius
:root {
--radius: 0.5rem;
}
Use lower values for sharper corners or higher values for softer, more rounded UI.
Typography
To use a custom font:
- Import it in
app/root.tsx - Set it in
tailwind.css
:root {
--font-sans: 'Inter', sans-serif;
}
Dark mode
Dark mode is handled by next-themes. The current theme is stored in localStorage under vite-ui-theme.
The toggle lives in:
app/components/ThemeToggle.tsx
To change the default behavior, edit ThemeProvider in app/root.tsx.
shadcn/ui components
The storefront ships with a large UI component set under:
app/components/ui/
To add a registry component:
npx shadcn@latest add <component-name>
Custom UI primitives
CommerceForge also includes custom UI helpers on top of the registry, including:
button-group.tsxdirection.tsxempty.tsxfield.tsxinput-group.tsxitem.tsxkbd.tsxlightbox.tsxnative-select.tsxspinner.tsx