npx claudepluginhub lklimek/claudiusWant just this skill?
Then install: npx claudepluginhub u/[userId]/[slug]
Frontend best practices — TypeScript, React/Vue/Svelte, CSS, accessibility, testing. Use when writing, reviewing, or discussing frontend code.
This skill is limited to using the following tools:
Frontend Best Practices
Technical Standards
- Language: TypeScript with strict mode enabled
- Code Style: ESLint + Prettier, consistent with project config
- Type Safety: No
anytypes without explicit justification - Testing: Vitest or Jest with Testing Library, minimum 80% coverage
- Accessibility: axe-core automated checks, manual keyboard testing
- Performance: Lighthouse CI, bundle size budgets
- Documentation: One-line JSDoc for every public function; expand only for complex logic
Best Practices
- Semantic HTML elements over generic divs
- CSS custom properties for theming
- Component composition over prop drilling
- Lazy loading for code splitting
- Optimistic UI updates where appropriate
- Proper error boundaries and fallback UI
- Accessible forms with proper labels, error messages, focus management
- Progressive enhancement
Common Patterns
- State Management: React Context for simple state, Zustand/Jotai for complex; Redux only when justified
- Data Fetching: TanStack Query or SWR for server state, avoid raw useEffect
- Forms: React Hook Form or Formik with Zod/Yup schema validation
- Routing: Framework router (Next.js App Router, React Router, Vue Router)
- Styling: CSS Modules, Tailwind CSS, or styled-components — consistent with project
- Testing: Testing Library (query by role/label, not test IDs), MSW for API mocking
- Error Handling: Error boundaries per route/feature, toast for recoverable errors
Common Pitfalls
- Don't use
any— useunknownand narrow, or define proper types - Don't mutate state directly — return new references
- Don't fetch in useEffect without cleanup — use a data fetching library
- Don't skip
keyprops on lists or use array index as key for dynamic lists - Don't inline object/function literals in JSX props — causes re-renders
- Don't ignore
useEffectdependency arrays or suppress the lint rule - Don't use
dangerouslySetInnerHTMLwithout sanitization (XSS risk) - Don't store derived state — compute during render
- Don't forget
loading,error, andemptystates in data-driven components
Package.json
- Use
peerDependenciesfor shared framework deps in libraries - Keep
devDependenciesvsdependenciesaccurate - Audit with
npm auditorpnpm auditbefore releases
Design Quality
For high-fidelity UI work, invoke the frontend-design:frontend-design skill for design quality guidance.
Code Quality Tools
- Linting: ESLint with TypeScript plugin
- Formatting: Prettier
- Type Checking:
tsc --noEmit - Testing:
vitest run --coverage - Accessibility: eslint-plugin-jsx-a11y, axe-core
- Bundle Analysis: vite-plugin-visualizer or webpack-bundle-analyzer
Code Review Checklist
- TypeScript strict mode compliance, no unjustified
any - Component composition and prop management
- Accessibility: ARIA attributes, keyboard navigation, semantic HTML
- CSS/styling consistency and maintainability
- State management patterns appropriate to scope
- DRY compliance: duplicated components, repeated logic
- Naming clarity: components, hooks, utilities, types
- Performance: unnecessary re-renders, missing memoization, bundle size
- Test quality: component tests, user interaction tests, proper mocking
- Code brevity: flag code that can be expressed in fewer lines without losing clarity
Use FE-NNN prefix for all findings.
Similar Skills
Activates when the user asks about AI prompts, needs prompt templates, wants to search for prompts, or mentions prompts.chat. Use for discovering, retrieving, and improving prompts.
Search, retrieve, and install Agent Skills from the prompts.chat registry using MCP tools. Use when the user asks to find skills, browse skill catalogs, install a skill for Claude, or extend Claude's capabilities with reusable AI agent components.
Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations.