mirror of
https://github.com/tabler/tabler.git
synced 2026-08-27 12:36:28 +04:00
4.6 KiB
4.6 KiB
Contributing to Tabler
Thank you for wanting to contribute! This is a short overview — the full guide lives in the documentation: How to Contribute.
Ways to contribute
- Pick a starter issue — issues labeled
good first issueare small and well-scoped, andhelp wantedissues welcome community help. - Report a bug — use the bug report template. Include steps to reproduce and, if possible, a live example (for example a JSFiddle).
- Suggest a feature — use the feature request template or start a discussion first if you are not sure.
- Improve the documentation — docs live in
docs/content/**/*.mdxand follow the same pull request workflow as code. - Submit a pull request — fixes and improvements are always welcome. For large changes, please open an issue or discussion first so we can align before you invest time.
- Report a security issue — do not open a public issue; follow the security policy instead.
Quick start
Requirements: Node.js 22.12+ and pnpm.
pnpm install
pnpm run dev
This starts the preview website at http://localhost:3000 and the documentation at http://localhost:3010, both with live reload.
You can also skip the local setup entirely: open the repository in GitHub Codespaces or a VS Code Dev Container — the configuration in .devcontainer/ installs Node.js, pnpm and all dependencies for you.
Where things live
core/— the framework: SCSS (core/scss/) and JavaScript (core/js/)preview/— demo website (Astro, pages inpreview/pages/*.astro)docs/— documentation website (Astro, pages indocs/content/**/*.mdx)shared/— components and layouts shared by preview and docs (@sharedalias), plusdata/andstatic/shared/data/— JSON data for demo pages (@dataalias)
Do not edit dist/ folders — they are generated by the build.
Useful commands
| Command | What it does |
|---|---|
pnpm run dev |
Start preview and docs dev servers with live reload |
pnpm run build |
Production build of all packages |
pnpm run lint |
Markdown, Prettier and SCSS variable checks |
pnpm run lint:fix |
Auto-fix lint issues where possible |
pnpm run test |
Run the test suites |
pnpm run check |
Lint plus TypeScript type checks |
Before you open a pull request
- Branch off
devand use the branch naming convention:<type>/<short-description>, for examplefeat/gh-123-add-stepper-componentorfix/markdown-table-overflow. Allowed types:feat,fix,docs,chore,refactor,test,build,ci,perf,style,revert. - Build and test:
pnpm run buildmust pass. For docs changes, also runpnpm run lint. - Add a changeset if your change affects any package:
pnpm exec changeset. Use one sentence starting withAdded,Updated,FixedorRemoved, with backticks for code tokens (for exampleAdded `.btn-ghost` variant for buttons.). - Write the PR in English: a concise title in present tense (max ~72 chars, no trailing period) and a short description that explains why the change is needed.
- Keep the scope small: one logical change per pull request makes reviews faster and releases safer.
Code style
- Use Bootstrap 5 conventions and Tabler's CSS custom properties pattern:
--component-property. Write custom properties without a prefix — the build adds the public--tblr-prefix. Names owned by a third-party library you are theming must be listed incssVarIgnorein.build/css-var-prefix.tsso they stay untouched. - Write documentation in simple English: short sentences, common words, direct instructions.
- Ensure changes work in all supported browsers (see the browser support docs).
Code of conduct
By participating, you agree to follow our Code of Conduct.