Skip to content

Latest commit

 

History

History
58 lines (42 loc) · 1.84 KB

File metadata and controls

58 lines (42 loc) · 1.84 KB

Contributing to @create-protocol/ui

Thanks for helping build the Create Protocol design system.

Ground rules

  • Tokens first. Never hard-code a color, font, or spacing value in a component. Add it to the relevant tokens/*.css file, then reference the custom property.
  • Primitives are dumb. Components in src/primitives/ do not know about agents, deposits, or any Create Protocol domain concept. Compose those in src/app/ instead.
  • Accessibility is non-negotiable. Every interactive primitive must be keyboard-operable and announce state to screen readers. If you're unsure, reach for a pattern from WAI-ARIA APG.
  • Minimal dependencies. Before adding a runtime dependency, open an issue to discuss. We'd rather write 80 lines than pull in 800.

Picking something to work on

  1. Browse issues labeled good first issue or help wanted.
  2. Drop a comment on the issue saying you're taking it — we'll assign.
  3. Open a draft PR early; small feedback loops beat big surprises.

Development

git clone https://github.com/create-protocol/ui.git
cd ui
npm install
npm run dev       # local playground (once scaffolded)
npm run test
npm run lint

This repo is the design system, not an app. Don't add app-specific copy, routes, or analytics here.

Commits

Use Conventional Commits:

feat(button): add icon-only variant
fix(tokens): correct dark-mode border contrast
docs(readme): clarify theme switching

Keep each PR scoped to one primitive or one token change where possible.

Questions

Open a discussion or ask in the Create Protocol contributor channel. If a decision needs to be documented, add an ADR-style note under docs/adr/.


kcolbchain / Abhishek Krishna