← Back to list

frontend
by djimontyp
⭐ 0🍴 0📅 Jan 11, 2026
SKILL.md
name: frontend description: > Create distinctive, production-grade React interfaces using shadcn/ui. Triggers on frontend tasks, UI components, styling. Combines technical shadcn patterns with intentional design thinking for memorable aesthetics.
Frontend Development Skill
Pulse Radar Brand: Data-Focused Minimalism — clarity over cleverness, data shines, UI disappears.
Quick Reference
| Need | Resource |
|---|---|
| Color tokens | 01-colors.md |
| Spacing grid | 03-spacing.md |
| WCAG rules | 08-accessibility.md |
| AI coding rules | frontend/AGENTS.md |
| Full Design System | docs/design-system/README.md |
Part 1: Technical Foundation (shadcn/ui)
Component Locations
| Type | Path |
|---|---|
| shadcn/ui primitives | frontend/src/shared/ui/ |
| Custom components | frontend/src/shared/components/ |
| Pages | frontend/src/pages/ |
| Config | frontend/components.json |
Imports
import { Button } from '@/shared/ui/button'
import { Card } from '@/shared/ui/card'
import { DataTable } from '@/shared/components/DataTable'
import { cn } from '@/shared/lib'
import { Trash, Check, AlertCircle } from 'lucide-react'
Installed shadcn Components (33)
alert-dialog, alert, avatar, badge, breadcrumb, button, card, chart, checkbox, collapsible, command, dialog, dropdown-menu, input, label, notification-badge, pagination, popover, progress, radio-group, select, separator, sheet, sidebar, skeleton, slider, sonner, switch, table, tabs, textarea, tooltip
Adding New Components
cd frontend && npx shadcn add {component}
Documentation Sources
- Primitives:
WebFetch → https://ui.shadcn.com/docs/components/{name} - Extended:
mcp__shadcn__getComponent({ component: "animated-modal" })
Part 2: Design Thinking (Pulse Radar)
Brand Direction
| Aspect | Value |
|---|---|
| Tone | Professional, warm, accessible (not corporate) |
| Palette | Orange primary, Navy accent, Semantic status colors |
| Typography | System fonts (performance over custom) |
| Motion | Subtle, functional (not decorative) |
| Differentiator | Activity heatmaps, atom type badges |
4 Planning Dimensions
Before implementing UI, consider:
- Purpose — What problem does this UI solve?
- Tone — Data-focused minimalism (clarity over cleverness)
- Constraints — WCAG AA, 44px touch, semantic tokens
- Differentiation — What makes this memorable? (activity heatmap, status icons)
Aesthetic Principles
- Hierarchy through space — Use spacing/sizing before color
- Show, don't hide — States visible by default, no hover-only info
- One pattern, many contexts — Button/Card/Badge patterns apply everywhere
- Accessibility first — WCAG 2.1 AA baseline
- Reduced motion always — All animations have
motion-reduce:fallback
Part 3: Critical Rules (WCAG Compliance)
1. Semantic Color Tokens
// ✅ CORRECT — works in light/dark mode
<Badge className="bg-atom-problem">Problem</Badge>
<span className="text-status-connected">Connected</span>
// ❌ WRONG — breaks dark mode, hardcoded
<Badge className="bg-rose-500">Problem</Badge>
<span className="text-green-500">Connected</span>
2. Touch Targets ≥ 44px
// ✅ CORRECT — WCAG 2.5.5 compliant
<Button size="icon" className="h-11 w-11">
// ❌ WRONG — too small (36px < 44px)
<Button size="icon" className="h-9 w-9">
3. Status = Icon + Text (not color only)
// ✅ CORRECT — WCAG 1.4.1 compliant
<span className="flex items-center gap-1">
<CheckCircle className="h-4 w-4 text-status-connected" />
<span>Connected</span>
</span>
// ❌ WRONG — color-only indicator
<span className="h-2 w-2 rounded-full bg-green-500" />
4. ARIA Labels on Icon Buttons
// ✅ CORRECT
<Button size="icon" aria-label="Delete item"><Trash /></Button>
// ❌ WRONG — no accessible name
<Button size="icon"><Trash /></Button>
5. 4px Spacing Grid
// ✅ CORRECT — on-grid
gap-2, gap-4, p-4, space-y-4
// ❌ WRONG — off-grid
gap-1.5, gap-2.5, p-2.5
6. Reduced Motion Support
// ✅ CORRECT
className="animate-fade-in motion-reduce:animate-none"
Part 4: Anti-Patterns (FORBIDDEN)
Visual Anti-Patterns
| ❌ Don't | Why |
|---|---|
Gradients (bg-gradient-to-r) | Against minimalist brand |
| Color-only indicators | Fails WCAG 1.4.1 |
| Purple/blue gradients | Generic "AI slop" aesthetic |
| Centered hero layouts | Cookie-cutter design |
Technical Anti-Patterns
| ❌ Don't | Use Instead |
|---|---|
bg-rose-500, bg-green-500 | bg-atom-problem, bg-status-connected |
h-9 w-9 for icon buttons | h-11 w-11 (44px minimum) |
focus:outline-none | Keep default or enhance |
style={{ }} inline | Tailwind classes |
!important | Fix specificity properly |
| Heroicons, Radix Icons | Lucide only |
| Custom button variants | Use existing shadcn |
shadcn Variants (DO NOT MODIFY)
| Variant | Standard Style | ❌ Don't Add |
|---|---|---|
| ghost | hover:bg-accent hover:text-accent-foreground | borders, gradients |
| outline | border border-input | custom border colors |
| default | bg-primary shadow | extra shadows, glows |
Part 5: Token Reference
Atom Type Colors
| Type | Token | Use |
|---|---|---|
| Problem | bg-atom-problem | Issues, bugs, risks |
| Solution | bg-atom-solution | Fixes, implementations |
| Decision | bg-atom-decision | Architecture choices |
| Question | bg-atom-question | Unknowns, investigations |
| Insight | bg-atom-insight | Learnings, patterns |
Status Colors
| Status | Token | Icon |
|---|---|---|
| Connected | bg-status-connected | CheckCircle |
| Error | bg-status-error | XCircle |
| Pending | bg-status-pending | Clock |
| Validating | bg-status-validating | Loader2 (animated) |
Spacing Scale (4px grid)
| Class | Pixels | Use |
|---|---|---|
| gap-1 | 4px | Tight (icon+text) |
| gap-2 | 8px | Small |
| gap-3 | 12px | Medium |
| gap-4 | 16px | Standard |
| gap-6 | 24px | Section |
Part 6: Hover & Focus States
Hover Effects
// ✅ GOOD — subtle, standard
hover:bg-muted // Neutral hover for branding
hover:bg-accent // Interactive elements
hover:text-foreground // Subtle text change
// ❌ BAD — too flashy
hover:bg-accent on logo // Too bright
hover:border-accent // Unnecessary border change
hover:shadow-* // Excessive shadows
Focus Indicators
Built into shadcn, enhanced in index.css:
- 3px ring with 2px offset
focus-visible:ring-ringtoken- High contrast on all backgrounds
Files Quick Reference
| Purpose | File |
|---|---|
| CSS tokens | frontend/src/index.css |
| Tailwind config | frontend/tailwind.config.js |
| shadcn config | frontend/components.json |
| UI primitives | frontend/src/shared/ui/ |
| Business components | frontend/src/shared/components/ |
| E2E accessibility tests | frontend/tests/e2e/accessibility.spec.ts |
Verification Commands
# TypeScript check
cd frontend && npx tsc --noEmit
# Build check
npm run build
# E2E accessibility tests
just e2e-fast accessibility.spec.ts
# Find hardcoded colors
grep -r "bg-rose-\|bg-emerald-\|bg-blue-500" frontend/src
References
Score
Total Score
50/100
Based on repository quality metrics
✓SKILL.md
SKILL.mdファイルが含まれている
+20
○LICENSE
ライセンスが設定されている
0/10
○説明文
100文字以上の説明がある
0/10
○人気
GitHub Stars 100以上
0/15
○最近の活動
3ヶ月以内に更新がある
0/10
○フォーク
10回以上フォークされている
0/5
✓Issue管理
オープンIssueが50未満
+5
✓言語
プログラミング言語が設定されている
+5
○タグ
1つ以上のタグが設定されている
0/5
Reviews
💬
Reviews coming soon