@mich8060/unified-design-system
v0.2.7
Published
This repo is a working reference implementation showing:
Readme
UDS Sample Application (Spec-driven + SCSS + Multi-brand + Governed App Shell)
This repo is a working reference implementation showing:
- Token-driven SCSS architecture (primitives → semantics → brands)
- Design-system components styled with SCSS (BEM, no raw values)
- Spec-driven component contracts (spec objects in code)
- Canonical component template + spec template
- A governed, configurable application shell with routing (routing lives in the shell)
- Brand + theme applied at the shell root
- Slot-based shell regions + structured layout config
- Linting “lockdown” (ESLint + Stylelint) and a CLI scaffold generator
Quick start
npm install
npm run devScripts
npm run dev– start Vite dev servernpm run build– production buildnpm run preview– preview buildnpm run lint– eslintnpm run lint:styles– stylelint for scssnpm run format– prettiernpm run generate:component -- Name– scaffold a new component folder from the canonical template
See /docs for the full methodology and governance model.
- Claude Rules – conventions and constraints for AI-assisted development in this repo
NPM package quick start
Install the package and required peer dependencies:
npm i @mich8060/unified-design-system react react-dom react-router-dom @phosphor-icons/reactImport components and styles:
import { AppShell, Button, Flex, Menu, Text, TextInput } from "@mich8060/unified-design-system";
import "@mich8060/unified-design-system/styles.css";Common prop pitfalls
Buttonusesappearance, notvariant- valid values:
primary,soft,outline,text,ghost,disabled,destructive
- valid values:
Textrequires avariantvalue such asheading-32orbody-16TextInputicon placement usesiconPositionwithleftorrightMenumode useslightordark
Exported constants
Use exported constants to avoid guessing valid values:
import {
BUTTON_APPEARANCES,
TEXT_VARIANTS,
TEXT_WEIGHTS,
TEXT_INPUT_STATES,
ICON_APPEARANCES
} from "@mich8060/unified-design-system";