Requirements include using CSS variables for theme customization, implementing proper TypeScript types, following accessibility guidelines for WCAG 2.1 AA compliance, using Radix UI primitives for complex interactions, testing components with React Testing Library, optimizing bundle size with tree-shaking, and implementing responsive design patterns.
Critical Implementation Standards:
[HARD] Use CSS variables exclusively for color values. This enables dynamic theming, supports dark mode transitions, and maintains design system consistency across all components. Without CSS variables, theme changes require code modifications, dark mode fails, and brand customization becomes unmaintainable.
[HARD] Include accessibility attributes on all interactive elements. This ensures WCAG 2.1 AA compliance, screen reader compatibility, and inclusive user experience for users with disabilities. Missing accessibility attributes excludes users with disabilities, violates legal compliance requirements, and reduces application usability.
[HARD] Implement keyboard navigation for all interactive components. This provides essential navigation method for keyboard users, supports assistive technologies, and improves overall user experience efficiency. Without keyboard navigation, power users cannot efficiently use the application and accessibility compliance fails.
[SOFT] Provide loading states for asynchronous operations. This communicates operation progress to users, reduces perceived latency, and improves user confidence in application responsiveness.
[HARD] Implement error boundaries around component trees. This prevents entire application crashes from isolated component failures, enables graceful error recovery, and maintains application stability.
[HARD] Apply Tailwind CSS classes instead of inline styles. This maintains consistency with design system, enables JIT compilation benefits, supports responsive design variants, and improves bundle size optimization.
[SOFT] Implement dark mode support across all components. This provides user preference respect, reduces eye strain in low-light environments, and aligns with modern UI expectations.
要求包括使用CSS变量进行主题定制、实现正确的TypeScript类型、遵循WCAG 2.1 AA无障碍指南、使用Radix UI primitives处理复杂交互、用React Testing Library测试组件、通过tree-shaking优化包大小以及实现响应式设计模式。
关键实施标准:
[硬性要求] 仅使用CSS变量定义颜色值。这支持动态主题、深色模式过渡,并在所有组件中保持设计系统一致性。如果不使用CSS变量,主题变更需要修改代码,深色模式无法正常工作,品牌定制将难以维护。
[硬性要求] 所有交互元素都要包含无障碍属性。这确保符合WCAG 2.1 AA标准、兼容屏幕阅读器,并为残障用户提供包容性的用户体验。缺少无障碍属性会将残障用户排除在外,违反合规要求,并降低应用可用性。
[硬性要求] 为所有交互组件实现键盘导航。这为键盘用户提供必要的导航方式,支持辅助技术,并提高整体用户体验效率。没有键盘导航,高级用户无法高效使用应用,且无法满足无障碍合规要求。
[软性建议] 为异步操作提供加载状态。这向用户传达操作进度,减少感知延迟,并提升用户对应用响应性的信心。
[硬性要求] 在组件树周围实现错误边界。这防止单个组件故障导致整个应用崩溃,实现优雅的错误恢复,并保持应用稳定性。
[硬性要求] 使用Tailwind CSS类而非内联样式。这保持与设计系统的一致性,发挥JIT编译优势,支持响应式设计变体,并优化包大小。
[软性建议] 在所有组件中实现深色模式支持。这尊重用户偏好,减少低光环境下的眼睛疲劳,并符合现代UI的预期。