Design Guide
paperclipai/paperclip
Paperclip UI design system guide for building consistent, reusable frontend components.
GitMesh Agents UI design system. An agent skill from LF-Decentralized-Trust-labs/gitmesh.
$ npx skills add LF-Decentralized-Trust-labs/gitmesh --skill design-guide -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install LF-Decentralized-Trust-labs/gitmesh design-guide --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/LF-Decentralized-Trust-labs/gitmesh.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/design-guide .claude/skills/design-guide && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "design-guide" agent skill from https://github.com/LF-Decentralized-Trust-labs/gitmesh/tree/main/.claude/skills/design-guide into .claude/skills/design-guide/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "design-guide", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/LF-Decentralized-Trust-labs/gitmesh/tree/main/.claude/skills/design-guideType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add LF-Decentralized-Trust-labs/gitmesh --skill design-guide -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install LF-Decentralized-Trust-labs/gitmesh design-guide --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LF-Decentralized-Trust-labs/gitmesh.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/design-guide .agents/skills/design-guide && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "design-guide" agent skill from https://github.com/LF-Decentralized-Trust-labs/gitmesh/tree/main/.claude/skills/design-guide into .agents/skills/design-guide/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "design-guide", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add LF-Decentralized-Trust-labs/gitmesh --skill design-guide -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install LF-Decentralized-Trust-labs/gitmesh design-guide --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LF-Decentralized-Trust-labs/gitmesh.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/design-guide .cursor/skills/design-guide && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "design-guide" agent skill from https://github.com/LF-Decentralized-Trust-labs/gitmesh/tree/main/.claude/skills/design-guide into .cursor/skills/design-guide/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "design-guide", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/LF-Decentralized-Trust-labs/gitmesh.git --path .claude/skills/design-guide--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add LF-Decentralized-Trust-labs/gitmesh --skill design-guide -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install LF-Decentralized-Trust-labs/gitmesh design-guide --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LF-Decentralized-Trust-labs/gitmesh.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/design-guide .gemini/skills/design-guide && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "design-guide" agent skill from https://github.com/LF-Decentralized-Trust-labs/gitmesh/tree/main/.claude/skills/design-guide into .gemini/skills/design-guide/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "design-guide", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install LF-Decentralized-Trust-labs/gitmesh design-guideInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add LF-Decentralized-Trust-labs/gitmesh --skill design-guide -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/LF-Decentralized-Trust-labs/gitmesh.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/design-guide .github/skills/design-guide && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "design-guide" agent skill from https://github.com/LF-Decentralized-Trust-labs/gitmesh/tree/main/.claude/skills/design-guide into .github/skills/design-guide/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "design-guide", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add LF-Decentralized-Trust-labs/gitmesh --skill design-guide -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install LF-Decentralized-Trust-labs/gitmesh design-guide --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LF-Decentralized-Trust-labs/gitmesh.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/design-guide .opencode/skills/design-guide && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "design-guide" agent skill from https://github.com/LF-Decentralized-Trust-labs/gitmesh/tree/main/.claude/skills/design-guide into .opencode/skills/design-guide/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "design-guide", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
design-guideGitMesh Agents UI design system. An agent skill from LF-Decentralized-Trust-labs/gitmesh.
Design Guide is an agent skill from LF-Decentralized-Trust-labs/gitmesh. GitMesh Agents UI design system. Invoke this skill when creating new components, modifying existing ones, adding pages or features to the frontend, styling UI elements, or when you need to understand the design language. Covers component creation, design tokens, typography, status/priority systems, composition patterns, and the live /design-guide showcase page. Always pair with the frontend-design and web-design-guidelines skills.
Its SKILL.md is about 3.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including reference files (for example `references/component-index.md`).
It sits in Frontend & Design, covering Design patterns, Design tokens and Typography. The repository describes itself as: GitMesh: Policy-as-Code Engine for Open Source AI Agent Orchestration. The licence is Apache-2.0.
5 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit df6a2ea. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are typescript).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Design Guide loads about 3.1k tokens when it runs, and up to ~5.4k if it reads all its reference files. Until then it costs about 112 tokens; SKILL.md has 1,225 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from LF-Decentralized-Trust-labs/gitmesh at commit df6a2ea, republished under its Apache-2.0 licence (© LF-Decentralized-Trust-labs). 1,225 words, ~3,137 tokens.
.claude/skills/design-guide/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.This guide is split into:
Use this skill alongside frontend-design (visual polish) and
web-design-guidelines (web best practices).
GitMesh Agents is a professional control plane - dense, keyboard-driven, dark-themed by default. Every pixel earns its place.
The five non-negotiable principles:
Cmd+K, C, [, ]). Power users rarely touch the mouse.| Concern | Choice |
|---|---|
| Framework | React 19 + TypeScript + Vite |
| Styling | Tailwind CSS v4 with CSS variables (OKLCH) |
| UI primitives | shadcn/ui (new-york style, neutral base, CSS variables on) |
| Accessibility | Radix UI primitives |
| Icons | Lucide React (16px nav, 14px inline) |
| Variants | class-variance-authority (CVA) |
| Class merging | clsx + tailwind-merge via the cn() utility |
Path aliases live in ui/components.json: @/components,
@/components/ui, @/lib, @/hooks.
All tokens are CSS variables in ui/src/index.css. Both light and dark
themes use OKLCH. Never use raw hex / rgb values - always use a
semantic token.
| Token pair | Used for |
|---|---|
--background / --foreground | Page background and primary text |
--card / --card-foreground | Card surfaces |
--primary / --primary-foreground | Primary actions and emphasis |
--secondary / --secondary-foreground | Secondary surfaces |
--muted / --muted-foreground | Subdued text and labels |
--accent / --accent-foreground | Hover states and active nav |
--destructive | Destructive actions |
--border | All borders |
--ring | Focus rings |
--sidebar-* | Sidebar-specific variants |
--chart-1...--chart-5 | Data visualisation |
A single base --radius (0.625rem) drives a small ladder:
rounded-sm: small inputs, pillsrounded-md: buttons, inputs, small componentsrounded-lg: cards, dialogsrounded-xl: card containers, large componentsrounded-full: badges, avatars, status dotsHard ceiling: rounded-xl (except rounded-full). No rounded-2xl.
Minimal: shadow-xs for outline buttons, shadow-sm for cards. Nothing
heavier - no shadow-md and up.
Use these patterns exactly. Do not invent new ones.
| Pattern | Classes | Where it lives |
|---|---|---|
| Page title | text-xl font-bold | Top of pages |
| Section title | text-lg font-semibold | Major sections |
| Section heading | text-sm font-semibold text-muted-foreground uppercase tracking-wide | Design guide, sidebar |
| Card title | text-sm font-medium or text-sm font-semibold | Card headers, list item titles |
| Body | text-sm | Default body text |
| Muted body | text-sm text-muted-foreground | Descriptions, secondary text |
| Tiny label | text-xs text-muted-foreground | Metadata, timestamps, property labels |
| Mono identifier | text-xs font-mono text-muted-foreground | Issue keys (GM-001), CSS vars |
| Large stat | text-2xl font-bold | Dashboard metric values |
| Code / log | font-mono text-xs | Log output, snippets |
Status colour is consistent across every entity that has a status. The
mapping lives in StatusBadge.tsx and StatusIcon.tsx:
| Status (any of) | Colour | Entity types |
|---|---|---|
active, achieved, completed, succeeded, approved, done | green shades | Agents, goals, issues, approvals |
running | cyan | Agents |
paused | orange | Agents |
idle, pending | yellow | Agents, approvals |
failed, error, rejected, blocked | red shades | Runs, agents, approvals, issues |
archived, planned, backlog, cancelled | neutral gray | Various |
todo | blue | Issues |
in_progress | indigo | Issues |
in_review | violet | Issues |
Priority icons (PriorityIcon.tsx):
AlertTriangleArrowUpMinusArrowDownInline agent status dots: running (cyan, animate-pulse), active
(green), paused (yellow), error (red), offline (neutral).
Three-zone shell defined in Layout.tsx:
w-60, collapsible, hosts ProjectSwitcher and SidebarSections.flex-1, scrollable.w-80, only shown on detail views, hidden on lists.Three tiers, in order of growing app-specificity:
ui/src/components/ui/. Button, Card, Input, Badge, Dialog, Tabs, etc. Do not modify these directly - extend through composition.ui/src/components/. StatusBadge, EntityRow, MetricCard, etc. These encode GitMesh-specific design language.ui/src/pages/. Compose primitives + composites into routes.The complete inventory lives in
references/component-index.md. Treat
that file as the canonical list of available components.
Make a new component when:
Don't make a component for:
These patterns may not all be a single component, but they must be applied consistently wherever they appear.
The standard list-item shape for issues and similar entities:
<EntityRow
leading={<><StatusIcon status="in_progress" /><PriorityIcon priority="high" /></>}
identifier="GM-001"
title="Implement authentication flow"
subtitle="Assigned to Agent Alpha"
trailing={<StatusBadge status="in_progress" />}
onClick={() => {}}
/>Leading slot ordering is fixed: StatusIcon first, then PriorityIcon.
Trailing slot is a StatusBadge or a timestamp.
<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><div className="flex items-center justify-between py-1.5">
<span className="text-xs text-muted-foreground">Status</span>
<StatusBadge status="active" />
</div>The label is always text-xs text-muted-foreground; the value sits on
the right; the container uses space-y-1.
<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>Colour by threshold: green at <60%, yellow at 60–85%, red at >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>Author header (name + timestamp), then body, in bordered cards with
space-y-3. Composer textarea + primary button below.
Plain <table> with text-xs, header row bg-accent/20, font-mono
on numeric values.
bg-neutral-950 rounded-lg p-3 font-mono text-xs container. Colour
lines by level: default (foreground), WARN (yellow-400), ERROR
(red-400), SYS (blue-300). Include a live indicator dot when
streaming.
| Concern | Tailwind |
|---|---|
| Entity row hover | hover:bg-accent/50 |
| Nav item hover | hover:bg-accent/50 hover:text-accent-foreground |
| Active nav item | bg-accent text-accent-foreground |
| Focus | focus-visible:ring-ring focus-visible:ring-[3px] |
| Disabled | disabled:opacity-50 disabled:pointer-events-none |
| Inline editing | Use the InlineEditor component - click to edit, Enter saves, Escape cancels |
| Popover selectors | StatusIcon and PriorityIcon use Radix Popover for inline selection. Match this pattern for any clickable property that opens a picker. |
| Kind | Path / casing |
|---|---|
| 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 merge classes with cn() from @/lib/utils. All
components with multiple visual variants use CVA.
/design-guide pageui/src/pages/DesignGuide.tsx/design-guideThis is the living showcase for every component and pattern. It is the source of truth for how things look. Three rules:
Section structure to follow:
<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>Section ordering is logical: foundations (colours, typography) first, then primitives, then composites, then patterns.
ui/src/components/ (PascalCase).references/component-index.md./design-guide.StatusBadge / StatusIcon./design-guide page.shadow-md or heavier - keep shadows at xs / sm only.rounded-2xl or larger - the cap is rounded-xl (except rounded-full for pills and dots).© LF-Decentralized-Trust-labs, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file (references) in .claude/skills/design-guide of LF-Decentralized-Trust-labs/gitmesh.
Open the folder on GitHubat commit df6a2ea
Design Guide next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Design Guide this skillLF-Decentralized-Trust-labs/gitmesh | 144 | — | ~3.1k | Automated safety check: Pass | Apache-2.0 | |
| Design Guidepaperclipai/paperclip | 99k | 1 repos | ~3.1k | Automated safety check: Pass | MIT | |
| Ijfw DesignFerroxLabs/ijfw | 212 | — | ~2.2k | Automated safety check: Pass | MIT | |
| Distinctive Frontend Design Builderirahardianto/awesome-agv | 156 | — | ~2.4k | Automated safety check: Pass | MIT | |
| Frontend Blueprinttech-leads-club/agent-skills | 7k | 1 repos | ~5.3k | Automated safety check: Pass | CC-BY-4.0 | |
| Visual Design Foundationswshobson/agents | 40k | 2 repos | ~1.8k | Automated safety check: Pass | MIT |
paperclipai/paperclip
Paperclip UI design system guide for building consistent, reusable frontend components.
FerroxLabs/ijfw
A skill your agent uses when the user says: 'design', 'redesign', 'UI', 'UX', 'dashboard', 'page', 'component', 'make it look better', 'polish', 'pretty', 'professional', 'user experience'…
irahardianto/awesome-agv
Commits to one bold aesthetic direction, sets up a CSS token system for it, then builds the interface in Vue or plain HTML using those tokens.
tech-leads-club/agent-skills
AI frontend specialist and design consultant that guides users through a structured discovery process before generating any code.
wshobson/agents
Apply typography, color theory, spacing systems, and iconography principles to create cohesive visual designs.
ancoleman/ai-design-components
Provides design token system and theming framework for consistent, customizable UI styling across all components.
Categories
GitMesh Agents UI design system. An agent skill from LF-Decentralized-Trust-labs/gitmesh. Design Guide is an agent skill from LF-Decentralized-Trust-labs/gitmesh. GitMesh Agents UI design system.
Design Guide fits situations like: tasks that involve Design patterns; tasks that involve Design tokens; tasks that involve Typography.
Run `npx skills add LF-Decentralized-Trust-labs/gitmesh --skill design-guide -a claude-code`. Or copy the skill folder (.claude/skills/design-guide in LF-Decentralized-Trust-labs/gitmesh) into .claude/skills/design-guide in your project. Claude Code loads it when a task matches its description.
Run `npx skills add LF-Decentralized-Trust-labs/gitmesh --skill design-guide -a codex`. Or copy the skill folder (.claude/skills/design-guide in LF-Decentralized-Trust-labs/gitmesh) into .agents/skills/design-guide in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add LF-Decentralized-Trust-labs/gitmesh --skill design-guide -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/design-guide, .gemini/skills/design-guide, .github/skills/design-guide and .opencode/skills/design-guide in your project.
SKILL.md names no scripts, command-line tools or credentials: Design Guide is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Design Guide is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.1k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 2.3k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Design Guide: Design Guide (paperclipai/paperclip, 99k stars), Ijfw Design (FerroxLabs/ijfw, 212 stars), Distinctive Frontend Design Builder (irahardianto/awesome-agv, 156 stars) and Frontend Blueprint (tech-leads-club/agent-skills, 7k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
LF-Decentralized-Trust-labs (a GitHub organization) maintains it in LF-Decentralized-Trust-labs/gitmesh, which has 144 GitHub stars. The repository was last updated on October 4, 2026.
Source: LF-Decentralized-Trust-labs/gitmesh on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.