ui-design

Enforces design-token and shared-component reuse rules for Vue 3 frontend UI changes.

1|1|Updated May 14, 2026
One-click install
npx skills add https://github.com/alexmohr/assimilate --skill ui-design-alexmohr
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: ui-design
Source: https://github.com/alexmohr/assimilate/tree/main/skills/ui-design
Command: npx skills add https://github.com/alexmohr/assimilate --skill ui-design-alexmohr

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Frontend codebases drift into visual inconsistency when every view hand-rolls its own buttons, panels, badges, and spacing values. This Skill prevents that drift by giving an AI assistant the full catalogue of existing design tokens, shared CSS classes, and reusable components in the Assimilate Vue 3 frontend, so new UI work reuses what exists instead of duplicating it. ## Core Features & Use Cases - Design token enforcement: All spacing, type, radius, duration, and colour values must come from tokens in frontend/src/style.css; literal values fail CI via design-tokens.test.ts. - Shared component catalogue: Documents every reusable class and component (BaseModal, BaseTabs, EmptyState, PaneRow, DetailHeader, badges, tables, charts, forms) so scoped styles never re-declare what shared-components.test.ts owns. - Convention guardrails: Covers wording (sentence case, one verb per action), icon rules (@lucide/vue only, fixed size set), state handling (loading/empty/error), and accessibility (focus-visible, reduced motion), all checked by ui-conventions.test.ts and a WCAG contrast test. - Use Case: When asked to add a new settings pane, the Skill directs the assistant to use .settings-tab, PaneRow, HelpHint, and existing tokens rather than writing new scoped CSS that would trip the duplicate-code and token CI checks. ## Quick Start Ask the assistant to add or modify any view, dialog, form, table, or style under frontend/src/ and it will apply the token and component reuse rules automatically.

Frequently Asked Questions about ui-design

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I add a new UI component without duplicating existing styles?

Check the catalogue of shared classes in frontend/src/style.css and components in frontend/src/components/ first. If a rule is used a second time, move it into @layer components and register it in the OWNED list of shared-components.test.ts.

What design tokens are available for spacing and typography?

Spacing uses --space-1 through --space-10 (2 to 48px), and type uses --fs-2xs through --fs-3xl. Literal rem values in padding, margin, gap, or font-size fail the design-tokens CI test.

Why does CI fail when I add a scoped style in a Vue component?

The shared-components test fails when a scoped rule re-declares a property a shared class already sets, duplicates another scoped rule verbatim, or redefines a shared @keyframes. Move the rule to style.css or reuse the existing class.

Can I use HTML entities or emoji as icons in the UI?

No. Icons must come from @lucide/vue only, in sizes 12, 14, 16, 20, or 40 depending on context. Glyphs, entities, and other sizes are rejected by the ui-conventions CI test.

When should I use a scoped style block versus shared classes?

Use a scoped style only for layout genuinely unique to that component. Buttons, panels, badges, tables, form fields, empty states, and spinners already exist as shared classes or components and must be reused.