In all interactions and commit messages, be extremely concise and sacrifice grammar for the sake of concision.
Use pnpm exclusively.
- Mantine - Primary component library
- TailwindCSS - Utility-first CSS framework
Always use arrow functions with default exports.
Prefer interface over type.
Avoid abbreviated variable names. Use descriptive, full names.
Do not use optional chaining syntax.
If unnecessary, do not add complexity:
- Use component default styles
- Avoid extra style props or className unless required
- Keep implementations simple
Prefer Mantine components and hooks over third-party libraries or native HTML.
- Mantine default styles
- Mantine style props (use theme system variables like
sm,md,lg- avoid hardcoded values) - TailwindCSS utilities
- Custom CSS (last resort)
Prefer utility library es-toolkit over native implementations to simplify logic.
Use es-toolkit's invariant (import { invariant } from 'es-toolkit/util') for asserting nullable values.