Scalar Design System
scalar/scalar
Scalar's design system — design tokens, theming (@scalar/themes), CSS variables, and the @scalar/components library.
Authoritative guide for implementing stunning, accessible, performant UI.
$ npx skills add JuliusBrussee/skills --skill interface-kit -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install JuliusBrussee/skills interface-kit --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/JuliusBrussee/skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/interface-kit .claude/skills/interface-kit && 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 "interface-kit" agent skill from https://github.com/JuliusBrussee/skills/tree/main/skills/interface-kit into .claude/skills/interface-kit/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "interface-kit", 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/JuliusBrussee/skills/tree/main/skills/interface-kitType 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 JuliusBrussee/skills --skill interface-kit -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install JuliusBrussee/skills interface-kit --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/JuliusBrussee/skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/interface-kit .agents/skills/interface-kit && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "interface-kit" agent skill from https://github.com/JuliusBrussee/skills/tree/main/skills/interface-kit into .agents/skills/interface-kit/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "interface-kit", 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 JuliusBrussee/skills --skill interface-kit -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install JuliusBrussee/skills interface-kit --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/JuliusBrussee/skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/interface-kit .cursor/skills/interface-kit && 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 "interface-kit" agent skill from https://github.com/JuliusBrussee/skills/tree/main/skills/interface-kit into .cursor/skills/interface-kit/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "interface-kit", 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/JuliusBrussee/skills.git --path skills/interface-kit--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 JuliusBrussee/skills --skill interface-kit -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install JuliusBrussee/skills interface-kit --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/JuliusBrussee/skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/interface-kit .gemini/skills/interface-kit && 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 "interface-kit" agent skill from https://github.com/JuliusBrussee/skills/tree/main/skills/interface-kit into .gemini/skills/interface-kit/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "interface-kit", 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 JuliusBrussee/skills interface-kitInstalls 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 JuliusBrussee/skills --skill interface-kit -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/JuliusBrussee/skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/interface-kit .github/skills/interface-kit && 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 "interface-kit" agent skill from https://github.com/JuliusBrussee/skills/tree/main/skills/interface-kit into .github/skills/interface-kit/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "interface-kit", 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 JuliusBrussee/skills --skill interface-kit -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install JuliusBrussee/skills interface-kit --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/JuliusBrussee/skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/interface-kit .opencode/skills/interface-kit && 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 "interface-kit" agent skill from https://github.com/JuliusBrussee/skills/tree/main/skills/interface-kit into .opencode/skills/interface-kit/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "interface-kit", 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.
interface-kitAuthoritative guide for implementing stunning, accessible, performant UI.
Interface Kit is an agent skill from JuliusBrussee/skills. Authoritative guide for implementing stunning, accessible, performant UI. Synthesizes design engineering philosophy, accessibility standards, animation principles, spatial design, typography, color systems, and component craft into a single actionable reference. Complements the design-system skill (which covers DESIGN.md spec writing) by covering the HOW of implementation. Trigger phrases: "build UI", "create component", "landing page", "make it look good", "frontend", "design", "polish UI", "implement design"…
Its SKILL.md is about 5.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files, including reference files (for example `references/accessibility-checklist.md`, `references/animation-playbook.md` and `references/component-patterns.md`).
It sits in Frontend & Design, covering Typography, Design tokens and Design systems. The licence is MIT.
10 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 8470b26. 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 css, typescript and html).
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.
Interface Kit loads about 5.3k tokens when it runs, and up to ~20k if it reads all its reference files. Until then it costs about 156 tokens; SKILL.md has 2,166 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 JuliusBrussee/skills at commit 8470b26, republished under its MIT licence (© JuliusBrussee). 2,166 words, ~5,331 tokens.
.claude/skills/interface-kit/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.If a DESIGN.md exists at the project root, its tokens and specifications override all defaults in this skill. This skill provides sensible defaults for when no design system exists, and implementation guidance that applies regardless.
For deep dives on any section, see the reference files in this skill's
references/directory.
Taste is trained, not innate. Study why great interfaces feel right. Deconstruct apps you admire — the spacing, the timing, the weight of a shadow. The gap between "fine" and "exceptional" is built from hundreds of micro-decisions that users feel but never consciously notice.
Unseen details compound. A single rounded corner, a single eased transition, a single well-chosen shadow — none of these matter alone. Together they become "a thousand barely audible voices singing in tune." The cumulative effect is what separates craft from output.
Beauty is leverage. Polish is not vanity. Good defaults, considered typography, and intentional motion are real differentiators. Users trust interfaces that feel cared for. Investors notice. Competitors can't easily replicate taste.
Intentionality over intensity. Both bold maximalism and refined minimalism work — what fails is the absence of a clear point of view. Every visual decision should trace back to a deliberate conceptual direction. If you can't articulate WHY a choice was made, reconsider it.
Choose a direction and execute with precision. Don't hedge between styles. A brutalist page committed fully will always outperform a page that's "a little bit of everything." Commit, then refine.
NEVER produce generic "AI slop" aesthetics. No gratuitous gradients on white backgrounds. No cookie-cutter hero sections with stock illustrations. No safe, forgettable layouts that could belong to any product. Every interface should have a point of view that makes it recognizable.
When implementing UI, work through these priorities in order. Higher priorities are non-negotiable; lower priorities are polish that compounds quality.
| Priority | Level | What It Means |
|---|---|---|
| Accessibility | CRITICAL | Contrast 4.5:1, keyboard nav, ARIA semantics, visible focus rings. Ship nothing that excludes users. |
| Performance | HIGH | WebP/AVIF images, lazy loading below fold, CLS < 0.1, transform-only animations on the compositor thread. |
| Typography | HIGH | Font smoothing, text-wrap balance/pretty, tabular-nums for data, 65ch max line length. |
| Layout & Spatial | HIGH | 4/8px grid, concentric border radius, optical alignment over geometric. |
| Color & Theme | MEDIUM | HSL custom properties, semantic tokens, dark mode pairs tested separately. |
| Motion & Interaction | MEDIUM | Frequency-based animation decisions, 150-300ms durations, ease-out default. |
| Polish & Details | LOW | Layered shadows over borders, press feedback on buttons, staggered enter animations. |
Never skip a CRITICAL/HIGH item to chase a LOW item. A beautifully animated button that fails keyboard navigation is a net negative.
Before writing a single line of CSS, commit to a bold aesthetic direction. The most common failure mode in AI-generated UI is convergence on the same safe, forgettable look.
Choose one and commit fully:
Maximalist design demands elaborate code — layered backgrounds, complex grid structures, multiple font stacks. Minimalist design demands surgical precision — every pixel of spacing matters more when there's nothing to hide behind.
When building without an existing design system, avoid these overused defaults that signal "AI-generated":
Vary between light and dark themes, different font pairings, different aesthetic directions. Never converge on the same choices across projects.
Add depth through: gradient meshes, noise/grain overlays (filter: url(#noise)), layered transparencies, subtle background patterns, duotone image treatments.
DESIGN.md overrides this entire section. If DESIGN.md specifies Inter, use Inter. If it specifies purple gradients, use them. The ban list only applies when no design system exists and you're making aesthetic choices from scratch.
Typography is the single highest-leverage design element. Get it right and mediocre layouts still feel good. Get it wrong and nothing else saves it.
html {
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-rendering: optimizeLegibility;
}Apply font smoothing to the root layout. On macOS, the default sub-pixel rendering makes text appear heavier than the designer intended.
h1, h2, h3, h4, h5, h6 {
text-wrap: balance;
}
p, li, dd, blockquote {
text-wrap: pretty;
}balance distributes heading lines evenly. pretty avoids orphaned words in body text.
.data-value, .price, .counter, [data-numeric] {
font-variant-numeric: tabular-nums;
}Use tabular-nums for any number that updates dynamically — prices, counters, table columns. Without it, layout shifts as digit widths change.
max-width: 65ch for body text. Long lines destroy readability.Pair a distinctive display font with a refined body font. The display font carries personality; the body font carries readability. Use font-weight for hierarchy within a family:
Always include font stack fallbacks:
--font-display: "Instrument Serif", "Georgia", serif;
--font-body: "Söhne", "Helvetica Neue", sans-serif;
--font-mono: "JetBrains Mono", "Fira Code", monospace;:root {
--background: 0 0% 100%;
--foreground: 222.2 84% 4.9%;
--primary: 222.2 47.4% 11.2%;
--primary-foreground: 210 40% 98%;
--secondary: 210 40% 96.1%;
--secondary-foreground: 222.2 47.4% 11.2%;
--muted: 210 40% 96.1%;
--muted-foreground: 215.4 16.3% 46.9%;
--accent: 210 40% 96.1%;
--accent-foreground: 222.2 47.4% 11.2%;
--destructive: 0 84.2% 60.2%;
--destructive-foreground: 210 40% 98%;
--border: 214.3 31.8% 91.4%;
--ring: 222.2 84% 4.9%;
--radius: 0.5rem;
}Define semantic tokens: primary, secondary, destructive, muted, accent, background, foreground. Reference colors by semantic name — never hardcode hex values in components.
.dark {
--background: 222.2 84% 4.9%;
--foreground: 210 40% 98%;
/* ... desaturated, lighter tonal variants — NOT simply inverted */
}Dark mode is not "invert colors." Use desaturated, lighter tonal variants. Backgrounds go dark but not pure black (#000). Text goes light but not pure white (#fff). Test contrast separately for dark mode — what passes in light may fail in dark.
Dominant colors with sharp accents outperform timid, evenly-distributed palettes. Pick one or two hero colors and let the rest of the palette recede. A confident palette has clear hierarchy; an uncertain palette spreads color evenly and feels flat.
This is the single most common thing that makes nested UI elements feel "off":
outer_radius = inner_radius + padding/* Correct: concentric */
.card { border-radius: 16px; padding: 8px; }
.card-inner { border-radius: 8px; } /* 16 - 8 = 8 */
/* Wrong: same radius on parent and child */
.card { border-radius: 12px; }
.card-inner { border-radius: 12px; } /* Looks bloated */When geometric centering looks off, align optically. Play/pause icons, dropdown carets, and asymmetric glyphs often need 1-2px manual nudges to look centered.
Layer multiple transparent box-shadow values for natural depth instead of using borders:
.elevated {
box-shadow:
0 1px 2px rgba(0, 0, 0, 0.04),
0 2px 4px rgba(0, 0, 0, 0.04),
0 4px 8px rgba(0, 0, 0, 0.04);
}Multiple shadows at different spreads mimic how light works. A single hard shadow looks artificial.
Add a subtle inset outline to images and media for consistent depth against varied backgrounds:
img, video {
outline: 1px solid rgba(0, 0, 0, 0.06);
outline-offset: -1px;
}Use a 4px / 8px base incremental system. Every spacing value should be a multiple of 4:
4 / 8 / 12 / 16 / 24 / 32 / 48 / 64 / 96 / 128
Minimum 44x44px for all interactive elements. If the visual element is smaller, extend the hit area with a pseudo-element:
.small-button::before {
content: "";
position: absolute;
inset: -8px;
}Define a layered scale and never use arbitrary values:
--z-base: 0;
--z-dropdown: 10;
--z-sticky: 20;
--z-overlay: 40;
--z-modal: 100;
--z-toast: 1000;This is the most important mental model for animation decisions:
| Frequency | Examples | Animation |
|---|---|---|
| 100+ times/day | Keyboard shortcuts, command palette actions, tab switches | None. Zero animation. Instant. |
| Tens of times/day | Hover effects, list item navigation, toggles | Remove or drastically reduce. 50-100ms max. |
| Occasional | Modals, drawers, toasts, page transitions | Standard animation. 150-300ms. |
| Rare / first-time | Onboarding, celebrations, empty states | Can add delight. 300-500ms, more elaborate. |
High-frequency animations feel sluggish. Low-frequency animations without motion feel jarring. Match the animation budget to usage frequency.
Built-in CSS easings (ease, ease-in-out) are too weak. Define custom curves:
:root {
--ease-out: cubic-bezier(0.23, 1, 0.32, 1);
--ease-in-out: cubic-bezier(0.77, 0, 0.175, 1);
--ease-drawer: cubic-bezier(0.32, 0.72, 0, 1);
--ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
}| Element | Duration |
|---|---|
| Buttons, toggles | 100-160ms |
| Tooltips | 125-200ms |
| Dropdowns, popovers | 150-250ms |
| Modals, drawers | 200-500ms |
| Page transitions | 250-400ms |
UI animations should stay under 300ms. Never use ease-in for UI animations — it front-loads the pause and feels sluggish.
Exits should be softer and faster than enters. An enter animation at 250ms should have its exit at 150-200ms.
When multiple elements enter the viewport, stagger them by semantic chunks with ~50-100ms delay:
.stagger-item {
animation: fadeSlideIn 300ms var(--ease-out) both;
}
.stagger-item:nth-child(1) { animation-delay: 0ms; }
.stagger-item:nth-child(2) { animation-delay: 60ms; }
.stagger-item:nth-child(3) { animation-delay: 120ms; }Never animate from scale(0). Start from scale(0.9) or higher, combined with opacity:
@keyframes scaleIn {
from { opacity: 0; transform: scale(0.95); }
to { opacity: 1; transform: scale(1); }
}Every pressable element should scale down slightly on :active:
button:active {
transform: scale(0.97);
}Use CSS transitions (not keyframe animations) for interactive state changes. Transitions can be interrupted mid-way; keyframes cannot. This matters for hover states, toggles, and any element the user might interact with rapidly.
Make popovers transform-origin aware — they should grow from their trigger element, not from center. Exception: modals always originate from center.
Skip the tooltip delay on subsequent hovers. If the user has already waited for one tooltip, show the next one immediately.
@media (prefers-reduced-motion: reduce) {
*, *::before, *::after {
animation-duration: 0.01ms !important;
transition-duration: 0.01ms !important;
}
}Respect prefers-reduced-motion. Reduce animations — don't eliminate opacity and color transitions entirely, as those provide important feedback.
Gate hover animations behind a media query so touch devices don't trigger stuck hover states:
@media (hover: hover) and (pointer: fine) {
.card:hover { transform: translateY(-2px); }
}Reference
references/animation-playbook.mdfor deep dives on spring physics, gesture-driven animation, and complex choreography.
Use Radix UI primitives for accessible, unstyled foundations. Use CVA (class-variance-authority) for type-safe component variants:
import { cva } from "class-variance-authority";
const buttonVariants = cva(
"inline-flex items-center justify-center rounded-md font-medium transition-colors focus-visible:outline-none focus-visible:ring-2",
{
variants: {
variant: {
default: "bg-primary text-primary-foreground hover:bg-primary/90",
destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90",
outline: "border border-input hover:bg-accent hover:text-accent-foreground",
ghost: "hover:bg-accent hover:text-accent-foreground",
},
size: {
sm: "h-9 px-3 text-sm",
default: "h-10 px-4 py-2",
lg: "h-11 px-8 text-lg",
},
},
defaultVariants: { variant: "default", size: "default" },
}
);transform: scale(0.97) on :active)outline: none without replacement)opacity: 0.5 with pointer-events: nonetranslateY(-1px) + shadow increase)transform-origin: center, fade + scale enter animationaria-modal="true", role="dialog", aria-labelledbyaria-live="polite" for screen readersUse shadcn CSS variable pattern (HSL format) for all component colors. Wrap client-interactive components in server components for Next.js App Router compatibility.
Reference
references/component-patterns.mdfor the full component catalog with copy-paste implementations.
Use <button>, <nav>, <main>, <header>, <footer>, <article>, <section> before reaching for ARIA. A <button> gives you keyboard handling, focus management, and screen reader semantics for free. A <div onClick> gives you none of that.
outline: none without a replacementfocus-visible to show rings only for keyboard users, not mouse clicks::focus-visible {
outline: 2px solid var(--ring);
outline-offset: 2px;
}aria-label for icon-only buttons: <button aria-label="Close menu">X</button>aria-labelledby to associate headings with sectionsaria-describedby to link help text or error messages to inputsaria-live="polite" for dynamic content updates (toast messages, form errors)aria-hidden="true" for decorative elements (icons next to text labels)aria-expanded for toggleable elements (dropdowns, accordions)alt text for meaningful images: alt="Dashboard showing 23% revenue growth"alt="" for purely decorative images<a href="#main-content" class="sr-only focus:not-sr-only">
Skip to main content
</a><h1> per page.Reference
references/accessibility-checklist.mdfor the full audit guide with pass/fail criteria.
Run through this checklist before considering any UI implementation complete:
-webkit-font-smoothing: antialiased)text-wrap: balancefont-variant-numeric: tabular-numstransition: all anywhere — specific properties onlyprefers-reduced-motion respectedoutline: none without replacement)aria-live on dynamic content updatesReference
references/review-checklist.mdfor the extended 30-item checklist with severity ratings and automated testing commands.
© JuliusBrussee, MIT. 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 4 other files (references) in skills/interface-kit of JuliusBrussee/skills.
Open the folder on GitHubat commit 8470b26
We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in JuliusBrussee/skills, which our catalogue first saw on October 7, 2026.
Interface Kit 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 |
|---|---|---|---|---|---|---|
| Interface Kit this skillJuliusBrussee/skills | 161 | 1 repos | ~5.3k | Automated safety check: Pass | MIT | |
| Scalar Design Systemscalar/scalar | 16k | — | ~2.7k | Automated safety check: Pass | MIT | |
| UI/UX Design System AdvisorGalaxy-Dawn/claude-scholar | 5.7k | 1 repos | ~1.1k | Automated safety check: Pass | MIT | |
| Frontend UI StandardsMaxHan7/frontend-ui-standards-skill | 106 | — | ~2.4k | Automated safety check: Pass | MIT | |
| Replica DesignJakeschincariol/replica-skill | 908 | — | ~994 | Automated safety check: Pass | MIT | |
| Design Theme Guidesickn33/agentic-awesome-skills | 47k | 1 repos | ~5.7k | Automated safety check: Pass | MIT |
scalar/scalar
Scalar's design system — design tokens, theming (@scalar/themes), CSS variables, and the @scalar/components library.
Galaxy-Dawn/claude-scholar
Turns a vague UI request into a concrete design system with style, palette, typography and layout guidance from a search script, plus stack-specific implementation advice.
MaxHan7/frontend-ui-standards-skill
A skill your agent uses when implementing, refactoring, or reviewing frontend UI across SwiftUI, React, React Native, Flutter, web, or mobile apps.
Jakeschincariol/replica-skill
Rebuilds an app's design system for a clone: colour roles, type scale, spacing, radius, shadows and every component with its states, as design tokens plus component specs, with original assets…
sickn33/agentic-awesome-skills
Design-token register: colour, typography, spacing and radius tokens with light and dark values, contrast ratio and WCAG level.
KaimingWan/oh-my-kiro
Google Stitch design-to-code workflow with design system management.
JuliusBrussee/skills
Install a per-turn canary signal (e.g. An agent skill from JuliusBrussee/skills.
JuliusBrussee/skills
Adversarial senior-engineer review for agent-generated plans, designs, and architectures.
JuliusBrussee/skills
Run a spec-driven agent loop where coding tasks live as markdown specs that move through inbox → active → archive, get implemented by Claude Code or Codex, and pass a review gate before they count…
JuliusBrussee/skills
Calibrated grilling session for stress-testing a plan, design, idea, or decision.
JuliusBrussee/skills
De-slop pass for any text. An agent skill from JuliusBrussee/skills.
Categories
Authoritative guide for implementing stunning, accessible, performant UI. Interface Kit is an agent skill from JuliusBrussee/skills. Authoritative guide for implementing stunning, accessible, performant UI.
Interface Kit fits situations like: phrases: build UI; create component; make it look good; implement design.
Run `npx skills add JuliusBrussee/skills --skill interface-kit -a claude-code`. Or copy the skill folder (skills/interface-kit in JuliusBrussee/skills) into .claude/skills/interface-kit in your project. Claude Code loads it when a task matches its description.
Run `npx skills add JuliusBrussee/skills --skill interface-kit -a codex`. Or copy the skill folder (skills/interface-kit in JuliusBrussee/skills) into .agents/skills/interface-kit 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 JuliusBrussee/skills --skill interface-kit -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/interface-kit, .gemini/skills/interface-kit, .github/skills/interface-kit and .opencode/skills/interface-kit in your project.
SKILL.md names no scripts, command-line tools or credentials: Interface Kit 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.
Interface Kit is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 5.3k tokens (SKILL.md is roughly 21k 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 15k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Interface Kit: Scalar Design System (scalar/scalar, 16k stars), UI/UX Design System Advisor (Galaxy-Dawn/claude-scholar, 5.7k stars), Frontend UI Standards (MaxHan7/frontend-ui-standards-skill, 106 stars) and Replica Design (Jakeschincariol/replica-skill, 908 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
JuliusBrussee (a GitHub user) maintains it in JuliusBrussee/skills, which has 161 GitHub stars. The repository holds 6 skills in this directory. The repository was last updated on August 7, 2026.
Source: JuliusBrussee/skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.