
About
Let's UI is a multi-brand design system built around a token-first approach. Design tokens are defined in JSON and compiled by Terrazzo into CSS custom properties and a Sass variables map, supporting light/dark themes and multiple brands via data-theme and data-brand attributes.
The system ships three publishable packages:
A complete Figma library and interactive Storybook are available alongside the code.
Installation
npm
Install only what you need:
# CSS styles only
npm install @lets-ui/styles
# CSS + Web Components
npm install @lets-ui/styles @lets-ui/components
CDN
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@lets-ui/styles@latest/dist/letsui.min.css" />
Usage
CSS
@import '@lets-ui/styles';
Or in HTML:
<link rel="stylesheet" href="node_modules/@lets-ui/styles/dist/letsui.min.css" />
Web Components
Import all components at once:
import '@lets-ui/components';
Or import only what you use (tree-shakeable):
import '@lets-ui/components/button';
import '@lets-ui/components/modal';
import '@lets-ui/components/input';
Then use the custom elements directly in HTML:
<ui-button variant="primary">Click me</ui-button>
<ui-input label="Email" type="email"></ui-input>
<ui-modal trigger="open-btn">...</ui-modal>
Theming
Apply a theme and brand via data attributes:
<html data-theme="dark" data-brand="brand-name">
Development
Requirements
Setup
git clone https://github.com/mateusvillain/lets-ui.git
cd lets-ui
pnpm install
Commands
pnpm build # build all packages
pnpm storybook # start Storybook on port 6006
pnpm lint # lint CSS/SCSS and Markdown
Contributing
Contributions are welcome. Please open an issue before submitting large changes.
This project uses Conventional Commits and Changesets for versioning. Every PR that touches a published package must include a changeset:
pnpm changeset
See .changeset/README.md for the full release flow.
License
MIT — free to use, modify, and distribute.