marlotheme-ui
v0.2.2
Published
Marlo UI: design tokens + shadcn primitives (Tailwind CSS v4)
Downloads
550
Readme
marlotheme-ui
Design tokens, theme CSS, and React UI primitives for apps using Tailwind CSS v4, shadcn/ui, and React.
Install
npm install marlotheme-uiPeer dependencies
Install these in your app (versions should match what you use elsewhere):
| Required | Purpose |
| --- | --- |
| react, react-dom | Components |
| tailwindcss ^4 | Theme + utilities |
| radix-ui | Primitives |
| class-variance-authority, clsx | Variants / classes |
| lucide-react | Icons |
Some components need extra peers only if you import them:
| Import path | Extra peers |
| --- | --- |
| calendar | react-day-picker |
| chart | recharts |
| drawer | vaul |
| carousel | embla-carousel-react |
You also need the shadcn package and @import "shadcn/tailwind.css" in your CSS (same as a typical shadcn + Tailwind v4 setup).
Theme & tokens (CSS)
Full theme (tokens + shadcn variable bridge + base styles):
@import "tailwindcss";
@import "shadcn/tailwind.css";
@import "marlotheme-ui/theme";
@custom-variant dark (&:is(.dark *));Use .dark on an ancestor (e.g. <html class="dark">) for dark mode.
CSS-only entry points
| Import | Contents |
| --- | --- |
| marlotheme-ui / marlotheme-ui/theme | Full theme |
| marlotheme-ui/design-tokens | Product tokens + typography utilities (no shadcn bridge) |
| marlotheme-ui/shadcn | shadcn @theme variables |
| marlotheme-ui/shadcn-base | Global base layer |
| marlotheme-ui/tokens.json | Token definitions (JSON) |
Components
Import paths are stable and tree-shake friendly:
import { Button } from "marlotheme-ui/button"
import { Card, CardContent, CardHeader, CardTitle } from "marlotheme-ui/card"Exports: accordion, alert-dialog, alert, avatar, badge, button, calendar, card, carousel, chart, checkbox, dialog, drawer, input, label, pagination, popover, progress, radio-group, select, separator, slider, switch, table, tabs, textarea.
Fonts
Theme assumes Inter is loaded in your app (for example @fontsource-variable/inter). Load any heading/body fonts your design requires alongside the CSS imports above.
License
See package.json (license field).
