ResourcesContributing

Contributing

The full source of truth lives in CONTRIBUTING.md. Highlights:

Workflow

git checkout main && git pull origin main && git checkout -b feat/short-summary
# work
pnpm format && pnpm lint && pnpm typecheck && pnpm build
pnpm changeset      # if your change is user-visible
git commit -m "feat(ui): add Button loading state"
git push -u origin feat/short-summary
gh pr create

Atomic before composite

No new UI gets built in an app before its atoms exist here. If the atom is missing, add it here first, then use it.

This is the single hardest rule to enforce. and the most valuable. Every app PR that introduces “just one quick custom button” delays the system. Spend the extra hour shipping it here first.

Brand fidelity

  • Pull tokens from @velon-finance/tokens. Never hardcode hexes.
  • Use semantic utilities (bg-card, text-foreground) by default. Reach for literal (bg-primary / bg-velon-navy) only when the brand should be theme-fixed (the wordmark, marketing surfaces).
  • The Velon wordmark is always set in caps: VELON (paired with FINANCE in the lockup). Never restyle it.
  • Default border radius: 8px buttons/inputs, 12px cards/modals.

Accessibility

  • WCAG AA contrast on every text/background pairing. Verify when introducing a new combination.
  • Keyboard navigation works without a mouse. Tab order is meaningful.
  • Screen reader: every actionable atom has a label.
  • Honor prefers-reduced-motion. (VelonLogoIntro is the canonical example.)

Changesets

Every user-visible change ships with pnpm changeset describing what changed and why. Internal-only changes (chore / docs / ci / test / refactor) skip the gate automatically.

See CONTRIBUTING.md for the full set of rules.