Back to list
Async-IO

frontend-design

by Async-IO

MCP/A2A/Rest Fitness Intelligence platform.

16🍴 2📅 Jan 24, 2026

SKILL.md


name: frontend-design description: Create distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. user-invocable: true

Pierre Frontend Design Skill

When generating UI components or modifying frontend code, follow these principles.

Design System Quick Reference

Brand Colors (use these, never raw hex)

pierre-violet: #7C3AED  → Primary actions, intelligence, AI
pierre-cyan: #06B6D4    → Data flow, connectivity
gradient-pierre         → Violet to Cyan (hero elements)

Three Pillars (semantic):
pierre-activity: #10B981  → Fitness, movement, energy
pierre-nutrition: #F59E0B → Food, fuel, nourishment
pierre-recovery: #6366F1  → Rest, sleep, restoration

Typography

  • Headings: text-pierre-gray-900 font-semibold
  • Body: text-pierre-gray-700
  • Secondary: text-pierre-gray-500
  • Code: font-mono text-sm bg-pierre-gray-100 px-2 py-1 rounded

Spacing Scale

Use only: 1, 2, 3, 4, 5, 6, 8, 10, 12, 16, 20, 24 (Tailwind units)

Component Requirements

ALWAYS Use Design System Components

NeedUseImport from
Clickable action<Button variant="...">./ui
Content container<Card>./ui
Status indicator<Badge variant="...">./ui
Form input<Input> or .input-field class./ui
Overlay<Modal>./ui
Confirmation<ConfirmDialog>./ui
Loading.pierre-spinner classCSS

Button Variants

  • primary - Main actions (purple)
  • gradient - Hero/CTA (violet→cyan)
  • secondary - Secondary actions (white/gray)
  • danger - Destructive actions (red)
  • success - Positive actions (green)
  • outline - Tertiary actions (transparent)

Badge Variants

  • success - Active, connected, healthy
  • warning - Pending, attention needed
  • error - Failed, disconnected, error
  • info - Processing, informational
  • trial, starter, professional, enterprise - API tiers

Generation Rules

DO

  • Import components from ./ui barrel export
  • Use pierre-* color classes
  • Apply pierre-spinner for all loading states
  • Use Card for any elevated container
  • Use Badge for any status text
  • Follow spacing scale strictly

NEVER

  • Use raw <button> elements
  • Use raw <div className="border..."> for card-like content
  • Create custom spinners
  • Use raw hex colors like bg-[#7C3AED]
  • Use non-pierre colors like text-purple-600
  • Mix spacing values outside the scale

Code Patterns

Standard Component Structure

import { Button, Card, CardHeader, Badge } from './ui';

export const FeatureComponent: React.FC<Props> = ({ data }) => {
  return (
    <Card>
      <CardHeader title="Title" subtitle="Description" />
      <div className="space-y-4">
        {/* Content */}
      </div>
      <div className="flex justify-end gap-2 mt-6">
        <Button variant="secondary">Cancel</Button>
        <Button variant="primary">Save</Button>
      </div>
    </Card>
  );
};

List Item Pattern

{items.map((item) => (
  <Card key={item.id} className="p-4">
    <div className="flex items-start justify-between">
      <div className="flex-1">
        <h3 className="text-lg font-medium text-pierre-gray-900">{item.name}</h3>
        <Badge variant={item.isActive ? 'success' : 'error'}>
          {item.isActive ? 'Active' : 'Inactive'}
        </Badge>
      </div>
      <Button variant="secondary" size="sm">Edit</Button>
    </div>
  </Card>
))}

Loading State

{isLoading ? (
  <div className="flex items-center justify-center h-64">
    <div className="pierre-spinner" />
  </div>
) : (
  <Content />
)}

Empty State

<div className="text-center py-12 text-pierre-gray-500">
  <p className="text-lg mb-2">No items yet</p>
  <p className="text-sm">Create your first item to get started</p>
  <Button variant="primary" className="mt-4">Create Item</Button>
</div>

Accessibility Requirements

  • Focus states: Use .focus-ring utility
  • Color contrast: 4.5:1 minimum for text
  • Touch targets: 44x44px minimum
  • Keyboard navigation: All interactive elements must be focusable
  • ARIA labels: Required for icon-only buttons

After Writing UI Code

Always invoke the design-system-guardian agent to validate compliance.

Score

Total Score

65/100

Based on repository quality metrics

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

+10
説明文

100文字以上の説明がある

0/10
人気

GitHub Stars 100以上

0/15
最近の活動

1ヶ月以内に更新

+10
フォーク

10回以上フォークされている

0/5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

+5
タグ

1つ以上のタグが設定されている

+5

Reviews

💬

Reviews coming soon