Contributing

Contributing

Flint UI is open source. Here's how to get involved.

Development Setup

bash
1git clone https://github.com/flint-ui/flint-ui.git
2cd flint-ui
3pnpm install
4pnpm dev

Clone, install, and start the dev server

Project Structure

plaintext
1flint-ui/
2├── packages/
3│ ├── core/ # Component primitives
4│ ├── themes/ # Default theme tokens
5│ └── utils/ # Shared utilities
6├── apps/
7│ ├── docs/ # Documentation site
8│ └── playground/ # Component playground
9├── tests/ # Integration tests
10└── turbo.json # Turborepo config

Monorepo structure — packages, apps, and tests

Contribution Guidelines

  1. Fork the repository and create a feature branch
  2. Write your component with TypeScript strict mode
  3. Add unit tests (Vitest) and accessibility tests (axe-core)
  4. Add a Storybook story for visual testing
  5. Update the changelog with your changes
  6. Submit a pull request with a clear description

Every component must pass axe-core accessibility audits and support keyboard navigation before merge.

Testing

bash
1pnpm test # Run all tests
2pnpm test:a11y # Accessibility audits only
3pnpm test:visual # Storybook visual regression

Three test suites: unit, accessibility, and visual

Code Style

We use Biome for linting and formatting. Run pnpm lint before committing.

Tip: Enable format-on-save in your editor. The repo includes VS Code and Cursor settings.


Links

GitHub — flint-ui/flint-uiSource code, issues, and pull requestsgithub.com
Discord — Flint UI CommunityChat with maintainers and contributorsdiscord.com
npm — @flint-ui/coreLatest published packageswww.npmjs.com