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.git2cd flint-ui3pnpm install4pnpm dev
Clone, install, and start the dev server
Project Structure
plaintext
1flint-ui/2├── packages/3│ ├── core/ # Component primitives4│ ├── themes/ # Default theme tokens5│ └── utils/ # Shared utilities6├── apps/7│ ├── docs/ # Documentation site8│ └── playground/ # Component playground9├── tests/ # Integration tests10└── turbo.json # Turborepo config
Monorepo structure — packages, apps, and tests
Contribution Guidelines
- Fork the repository and create a feature branch
- Write your component with TypeScript strict mode
- Add unit tests (Vitest) and accessibility tests (axe-core)
- Add a Storybook story for visual testing
- Update the changelog with your changes
- 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 tests2pnpm test:a11y # Accessibility audits only3pnpm 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.
- Empty List
- Empty List
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