Token导航 LogoToken导航TokenDH.com
前端设计只读github未标认证来源可访问许可证需确认审计通过

design-guide设计指南

Agent Skill

用于辅助界面设计、视觉规范、排版、配色、布局和交互体验优化。它适合让 Agent 根据产品场景整理页面结构、生成 UI 方案、检查视觉一致性或改进组件层级。使用时需要结合现有品牌、设计系统和用户任务,不应只堆装饰元素;涉及真实页面改动时,应通过截图或浏览器预览检查文本溢出、对齐和响应式表现。

总安装

3,644

周安装

146

GitHub Stars

60,718

下载量

1,180
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:design-guide(设计指南)
来源仓库:https://github.com/paperclipai/paperclip
仓库路径:skills/design-guide
安装命令:
npx skills add https://github.com/paperclipai/paperclip --skill design-guide
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/paperclipai/paperclip --skill design-guide

简介

paperclipai-paperclip-design-guide 用于辅助界面设计、视觉规范、排版、配色、布局和交互体验优化,适合让 Agent 根据产品场景整理页面结构、生成 UI 方案、检查视觉一致性或改进组件层级。

  • 它能帮助优化界面设计和用户体验。
  • 可通过 npx skills add 命令从指定 GitHub 仓库安装并使用。
  • 使用时需要结合现有品牌、设计系统和用户任务,不应只堆装饰元素。
  • 适用宿主包括 Codex、Claude、Cursor、Gemini CLI,接入前应确认版本、权限和运行环境要求。

SKILL.md

Paperclip Design Guide

Paperclip's UI is a professional-grade control plane — dense, keyboard-driven, dark-themed by default. Every pixel earns its place.

Always use with: frontend-design (visual polish) and web-design-guidelines (web best practices).


1. Design Principles

  • Dense but scannable. Maximum information without clicks to reveal. Whitespace separates, not pads.
  • Keyboard-first. Global shortcuts (Cmd+K, C, [,]). Power users rarely touch the mouse.
  • Contextual, not modal. Inline editing over dialog boxes. Dropdowns over page navigations.
  • Dark theme default. Neutral grays (OKLCH), not pure black. Accent colors for status/priority only. Text is the primary visual element.
  • Component-driven. Prefer reusable components that capture style conventions. Build at the right abstraction — not too granular, not too monolithic.

2. Tech Stack

  • React 19 + TypeScript + Vite
  • Tailwind CSS v4 with CSS variables (OKLCH color space)
  • shadcn/ui (new-york style, neutral base, CSS variables enabled)
  • Radix UI primitives (accessibility, focus management)
  • Lucide React icons (16px nav, 14px inline)
  • class-variance-authority (CVA) for component variants
  • clsx + tailwind-merge via cn() utility

Config: ui/components.json (aliases: @/components, @/components/ui, @/lib, @/hooks)


3. Design Tokens

All tokens defined as CSS variables in ui/src/index.css. Both light and dark themes use OKLCH.

Colors

Use semantic token names, never raw color values:

TokenUsage
--background / --foregroundPage background and primary text
--card / --card-foregroundCard surfaces
--primary / --primary-foregroundPrimary actions, emphasis
--secondary / --secondary-foregroundSecondary surfaces
--muted / --muted-foregroundSubdued text, labels
--accent / --accent-foregroundHover states, active nav items
--destructiveDestructive actions
--borderAll borders
--ringFocus rings
--sidebar-*Sidebar-specific variants
--chart-1 through --chart-5Data visualization

Radius

Single --radius variable (0.625rem) with derived sizes:

  • rounded-sm — small inputs, pills
  • rounded-md — buttons, inputs, small components
  • rounded-lg — cards, dialogs
  • rounded-xl — card containers, large components
  • rounded-full — badges, avatars, status dots

Shadows

Minimal shadows: shadow-xs (outline buttons), shadow-sm (cards). No heavy shadows.


4. Typography Scale

Use these exact patterns — do not invent new ones:

PatternClassesUsage
Page titletext-xl font-boldTop of pages
Section titletext-lg font-semiboldMajor sections
Section headingtext-sm font-semibold text-muted-foreground uppercase tracking-wideSection headers in design guide, sidebar
Card titletext-sm font-medium or text-sm font-semiboldCard headers, list item titles
Bodytext-smDefault body text
Mutedtext-sm text-muted-foregroundDescriptions, secondary text
Tiny labeltext-xs text-muted-foregroundMetadata, timestamps, property labels
Mono identifiertext-xs font-mono text-muted-foregroundIssue keys (PAP-001), CSS vars
Large stattext-2xl font-boldDashboard metric values
Code/logfont-mono text-xsLog output, code snippets

5. Status & Priority Systems

Status Colors (consistent across all entities)

Defined in StatusBadge.tsx and StatusIcon.tsx:

StatusColorEntity types
active, achieved, completed, succeeded, approved, doneGreen shadesAgents, goals, issues, approvals
runningCyanAgents
pausedOrangeAgents
idle, pendingYellowAgents, approvals
failed, error, rejected, blockedRed shadesRuns, agents, approvals, issues
archived, planned, backlog, cancelledNeutral grayVarious
todoBlueIssues
in_progressIndigoIssues
in_reviewVioletIssues

Priority Icons

Defined in PriorityIcon.tsx: critical (red/AlertTriangle), high (orange/ArrowUp), medium (yellow/Minus), low (blue/ArrowDown).

Agent Status Dots

Inline colored dots: running (cyan, animate-pulse), active (green), paused (yellow), error (red), offline (neutral).


6. Component Hierarchy

Three tiers:

  1. shadcn/ui primitives (ui/src/components/ui/) — Button, Card, Input, Badge, Dialog, Tabs, etc. Do not modify these directly; extend via composition.
  2. Custom composites (ui/src/components/) — StatusBadge, EntityRow, MetricCard, etc. These capture Paperclip-specific design language.
  3. Page components (ui/src/pages/) — Compose primitives and composites into full views.

See references/component-index.md for the complete component inventory with usage guidance.

When to Create a New Component

Create a reusable component when:

  • The same visual pattern appears in 2+ places
  • The pattern has interactive behavior (status changing, inline editing)
  • The pattern encodes domain logic (status colors, priority icons)

Do NOT create a component for:

  • One-off layouts specific to a single page
  • Simple className combinations (use Tailwind directly)
  • Thin wrappers that add no semantic value

7. Composition Patterns

These patterns describe how components work together. They may not be their own component, but they must be used consistently across the app.

Entity Row with Status + Priority

The standard list item for issues and similar entities:

<EntityRow
  leading={<><StatusIcon status="in_progress" /><PriorityIcon priority="high" /></>}
  identifier="PAP-001"
  title="Implement authentication flow"
  subtitle="Assigned to Agent Alpha"
  trailing={<StatusBadge status="in_progress" />}
  onClick={() => {}}
/>

Leading slot always: StatusIcon first, then PriorityIcon. Trailing slot: StatusBadge or timestamp.

Grouped List

Issues grouped by status header + entity rows:

<div className="flex items-center gap-2 px-4 py-2 bg-muted/50 rounded-t-md">
  <StatusIcon status="in_progress" />
  <span className="text-sm font-medium">In Progress</span>
  <span className="text-xs text-muted-foreground ml-1">2</span>
</div>
<div className="border border-border rounded-b-md">
  <EntityRow ... />
  <EntityRow ... />
</div>

Property Row

Key-value pairs in properties panels:

<div className="flex items-center justify-between py-1.5">
  <span className="text-xs text-muted-foreground">Status</span>
  <StatusBadge status="active" />
</div>

Label is always text-xs text-muted-foreground, value on the right. Wrap in a container with space-y-1.

Metric Card Grid

Dashboard metrics in a responsive grid:

<div className="grid md:grid-cols-2 xl:grid-cols-4 gap-4">
  <MetricCard icon={Bot} value={12} label="Active Agents" description="+3 this week" />
  ...
</div>

Progress Bar (Budget)

Color by threshold: green (<60%), yellow (60-85%), red (>85%):

<div className="w-full h-2 bg-muted rounded-full overflow-hidden">
  <div className="h-full rounded-full bg-green-400" style={{ width: `${pct}%` }} />
</div>

Comment Thread

Author header (name + timestamp) then body, in bordered cards with space-y-3. Add comment textarea + button below.

Cost Table

Standard <table> with text-xs, header row with bg-accent/20, font-mono for numeric values.

Log Viewer

bg-neutral-950 rounded-lg p-3 font-mono text-xs container. Color lines by level: default (foreground), WARN (yellow-400), ERROR (red-400), SYS (blue-300). Include live indicator dot when streaming.


8. Interactive Patterns

Hover States

  • Entity rows: hover:bg-accent/50
  • Nav items: hover:bg-accent/50 hover:text-accent-foreground
  • Active nav: bg-accent text-accent-foreground

Focus

focus-visible:ring-ring focus-visible:ring-[3px] — standard Tailwind focus-visible ring.

Disabled

disabled:opacity-50 disabled:pointer-events-none

Inline Editing

Use InlineEditor component — click text to edit, Enter saves, Escape cancels.

Popover Selectors

StatusIcon and PriorityIcon use Radix Popover for inline selection. Follow this pattern for any clickable property that opens a picker.


9. Layout System

Three-zone layout defined in Layout.tsx:

┌──────────┬──────────────────────────────┬──────────────────────┐
│ Sidebar  │  Breadcrumb bar              │                      │
│ (w-60)   ├──────────────────────────────┤  Properties panel    │
│          │  Main content (flex-1)       │  (w-80, optional)    │
└──────────┴──────────────────────────────┴──────────────────────┘
  • Sidebar: w-60, collapsible, contains CompanySwitcher + SidebarSections
  • Properties panel: w-80, shown on detail views, hidden on lists
  • Main content: scrollable, flex-1

10. The /design-guide Page

Location: ui/src/pages/DesignGuide.tsx Route: /design-guide

This is the living showcase of every component and pattern in the app. It is the source of truth for how things look.

Rules

  1. When you add a new reusable component, you MUST add it to the design guide page. Show all variants, sizes, and states.
  2. When you modify an existing component's API, update its design guide section.
  3. When you add a new composition pattern, add a section demonstrating it.
  4. Follow the existing structure: <Section title="..."> wrapper with <SubSection> for grouping.
  5. Keep sections ordered logically: foundational (colors, typography) first, then primitives, then composites, then patterns.

Adding a New Section

<Section title="My New Component">
  <SubSection title="Variants">
    {/* Show all variants */}
  </SubSection>
  <SubSection title="Sizes">
    {/* Show all sizes */}
  </SubSection>
  <SubSection title="States">
    {/* Show interactive/disabled states */}
  </SubSection>
</Section>

11. Component Index

See references/component-index.md for the full component inventory.

When you create a new reusable component:

  1. Add it to the component index reference file
  2. Add it to the /design-guide page
  3. Follow existing naming and file conventions

12. File Conventions

  • shadcn primitives: ui/src/components/ui/{component}.tsx — lowercase, kebab-case
  • Custom components: ui/src/components/{ComponentName}.tsx — PascalCase
  • Pages: ui/src/pages/{PageName}.tsx — PascalCase
  • Utilities: ui/src/lib/{name}.ts
  • Hooks: ui/src/hooks/{useName}.ts
  • API modules: ui/src/api/{entity}.ts
  • Context providers: ui/src/context/{Name}Context.tsx

All components use cn() from @/lib/utils for className merging. All components use CVA for variant definitions when they have multiple visual variants.


13. Common Mistakes to Avoid

  • Using raw hex/rgb colors instead of CSS variable tokens
  • Creating ad-hoc typography styles instead of using the established scale
  • Hardcoding status colors instead of using StatusBadge/StatusIcon
  • Building one-off styled elements when a reusable component exists
  • Adding components without updating the design guide page
  • Using shadow-md or heavier — keep shadows minimal (xs, sm only)
  • Using rounded-2xl or larger — max is rounded-xl (except rounded-full for pills)
  • Forgetting dark mode — always use semantic tokens, never hardcode light/dark values

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

37.08%
按下载量换算438

Claude

27.64%
按下载量换算326

Cursor

17.56%
按下载量换算207

Gemini CLI

8.37%
按下载量换算99

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

只读

该 Skill 主要提供规则、说明或参考内容,本身偏只读;真正读写文件、联网或执行命令仍取决于宿主 Agent 的任务。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills