This repository is a pnpm workspace managed with Turborepo. Core packages live under packages/:
packages/react: main React component library (src/, component styles, demos, and Jest tests)packages/icons,packages/tokens,packages/cli,packages/mcp,packages/charts: supporting packagesapps/docs: Vite-powered documentation site and Playwright visual tests
Common root config lives in turbo.json, eslint.config.mjs, .prettierrc, and .stylelintrc. Changesets are stored in .changeset/.
pnpm install: install workspace dependencies; Node>=22is required.pnpm dev: run workspace dev tasks through Turbo; primarily used for the docs app.pnpm build: build all packages.pnpm test: run package test suites through Turbo.pnpm test:visual: run Playwright visual tests fromapps/docs/tests/visual.pnpm lint: run ESLint across workspace packages.pnpm lint:style: run Stylelint for SCSS sources.
For package-specific work, prefer filtering:
pnpm --filter @tiny-design/react test or pnpm --filter @tiny-design/react lint.
Use TypeScript with 2-space indentation, semicolons, single quotes, and printWidth: 100 per .prettierrc. Run Prettier before submitting changes.
React source lives mainly in packages/react/src. Follow existing component patterns:
- component folders in kebab-case, for example
packages/react/src/date-picker/ - public exports in each component
index.tsxand again inpackages/react/src/index.ts - SCSS class names prefixed with
ty-
Linting uses ESLint 9 for TypeScript/React and Stylelint for SCSS.
Jest is used for unit tests; place tests in src/__tests__/ or the package’s existing test location and name files *.test.ts or *.test.tsx. Use Playwright for docs visual regression coverage.
Run:
pnpm testpnpm --filter @tiny-design/react test:coveragepnpm test:visual
Recent history favors short Conventional Commit-style subjects such as fix(react): ..., feat(button): ..., or chore: .... Keep commits focused and imperative.
PRs should include a clear summary, linked issue when applicable, and screenshots or visual diffs for UI/docs changes. Add or update tests for behavioral changes. For user-facing package changes, create a changeset with pnpm changeset and commit the generated file.