Assists with UI development, ensuring correct usage of the project's design system components.

Install

mkdir -p .claude/skills/ui-trycompai && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/17311" && unzip -o skill.zip -d .claude/skills/ui-trycompai && rm skill.zip

Installs to .claude/skills/ui-trycompai

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

Use when building or editing frontend UI components, layouts, styling, design system usage, colors, dark mode, or icons.
120 chars✓ has a “when” trigger
Beginner

Key capabilities

  • Prioritize design system components for UI development
  • Enforce correct usage of design system component variants and props
  • Guide layout implementation using wrapper divs and Stack components
  • Promote componentization of repeated UI patterns
  • Ensure use of semantic colors and dark mode support
  • Enforce use of design system icons

How it works

The skill guides UI development by prioritizing specific design system libraries, enforcing component usage rules, and promoting best practices for layout, styling, and reusability. It also identifies and prevents anti-patterns.

Inputs & outputs

You give it
UI component code or styling requirements
You get back
UI code adhering to design system guidelines and best practices

When to use ui

  • Building UI components
  • Styling layouts
  • Implementing design system patterns

About this skill

Source Cursor rule: .cursor/rules/ui.mdc. Original Cursor alwaysApply: true.

UI Components

Design System Priority

  1. First choice: @trycompai/design-system
  2. Fallback: @trycompai/ui only if DS doesn't have the component
// ✅ Design system
import { Button, Card, Input, Sheet, Badge } from '@trycompai/design-system';
import { Add, Close, ArrowRight } from '@trycompai/design-system/icons';

// ❌ Don't use when DS has it
import { Button } from '@trycompai/ui/button';
import { Plus } from 'lucide-react';

No className on DS Components

DS components don't accept className. Use variants and props only.

// ✅ Use variants
<Button variant="destructive" size="sm" loading={isLoading}>Delete</Button>
<Button type="submit" iconRight={<ArrowRight size={16} />}>Continue</Button>
<Badge variant="outline">Active</Badge>

// ❌ TypeScript will error
<Button className="bg-red-500">Delete</Button>

Layout with Wrapper Divs

For layout concerns, wrap DS components:

// ✅ Wrapper for width
<div className="w-full">
  <Button>Full Width</Button>
</div>

// ✅ Use Stack for spacing
<Stack gap="4" direction="row">
  <Button>First</Button>
  <Button>Second</Button>
</Stack>

Componentize Repeated Patterns

If a pattern appears 2+ times, extract it:

// Repeated? Make a component
<div className="flex items-center gap-2">
  <div className="w-2 h-2 rounded-full bg-green-500" />
  <span className="text-sm">Active</span>
</div>
// → Create <StatusDot status="active" />

Extension Strategy

When you need new styling:

  1. Check existing variants - component may already support it
  2. Add a variant to the component's cva definition
  3. Create a new component if it's a genuinely new pattern
// Adding a variant
const badgeVariants = cva("...", {
  variants: {
    variant: {
      // existing...
      counter: "bg-muted text-muted-foreground tabular-nums font-mono",
    },
  },
});

Semantic Colors

Use CSS variables, not hardcoded colors:

// ✅ Semantic tokens
<div className="bg-background text-foreground border-border">
<div className="bg-muted text-muted-foreground">
<div className="bg-destructive/10 text-destructive">

// ❌ Hardcoded
<div className="bg-white text-black">
<div className="bg-[#059669]">

Dark Mode

Always support both modes:

// Status colors with dark variants
<div className="bg-green-50 dark:bg-green-950/20 text-green-600 dark:text-green-400">
<div className="bg-red-50 dark:bg-red-950/20 text-red-600 dark:text-red-400">

Icons

Carbon icons from DS, not lucide:

// ✅ Design system icons with size prop
import { Add, Close, ChevronDown } from '@trycompai/design-system/icons';
<Add size={16} />

// ❌ Don't use lucide
import { Plus, X } from 'lucide-react';
<Plus className="h-4 w-4" />

Anti-Patterns

// ❌ Never do these
<div style={{ display: 'flex' }}>              // Inline styles
<Button className="bg-red-500">               // className on DS
<div className="bg-[#059669]">                // Hardcoded colors
<div className="w-[847px]">                   // Arbitrary values

Responsive (MANDATORY — read the responsive-ui skill)

Every UI change must work on mobile (375px), tablet (768px), desktop (1280px), and large desktop (1920px) by default — nobody has to ask. Tailwind is mobile-first: write the base (mobile) layout, widen with sm:/md:/lg:/xl:. No fixed widths without a responsive strategy (hidden sm:block, w-full md:max-w-xs, or a wrapping parent). All the rules above still apply: breakpoint classes go on wrapper divs, never on DS components, and arbitrary pixel values remain an anti-pattern. Wide tables scroll inside the DS Table (overflow-x-auto), never the page. Full rules + repo patterns + checklist: .claude/skills/responsive-ui/SKILL.md.

When not to use it

  • When working on non-UI related code
  • When the project does not use `@trycompai/design-system` or `@trycompai/ui`
  • When implementing custom styling that cannot be achieved with existing variants

Limitations

  • The skill is specific to `@trycompai/design-system` and `@trycompai/ui` components
  • The skill does not allow `className` on design system components
  • The skill prohibits hardcoded colors and arbitrary pixel values in styling

How it compares

This skill automates the application of specific design system rules and UI best practices, preventing common errors and inconsistencies that might occur with manual implementation.

Compared to similar skills

ui side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
ui (this skill)025dNo flagsBeginner
scroll-experience1016moNo flagsIntermediate
anthropic-frontend-design126moNo flagsIntermediate
infographic-structure-creator15moNo flagsIntermediate

Try saying

Example prompts that trigger this skill in your AI assistant.

You might also like

scroll-experience

davila7

Expert in building immersive scroll-driven experiences - parallax storytelling, scroll animations, interactive narratives, and cinematic web experiences. Like NY Times interactives, Apple product pages, and award-winning web experiences. Makes websites feel like experiences, not just pages. Use when: scroll animation, parallax, scroll storytelling, interactive story, cinematic website.

101142

anthropic-frontend-design

chaibuilder

Create distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, artifacts, posters, or applications (examples include websites, landing pages, dashboards, React components, HTML/CSS layouts, or when styling/beautifying any web UI). Generates creative, polished code and UI design that avoids generic AI aesthetics.

1237

infographic-structure-creator

antvis

Generate or update infographic Structure components for this repo (TypeScript/TSX in src/designs/structures). Use when asked to design, implement, or modify structure layouts (list/compare/sequence/hierarchy/relation/geo/chart), including layout logic, component composition, and registration.

110

logo-with-variants

crafter-station

Create logo components with multiple variants (icon, wordmark, logo) and light/dark modes. Use when the user provides logo SVG files and wants to create a variant-based logo component following the Clerk pattern in the Elements project.

47

design-context

WellApp-ai

Refresh UI/UX context from design system, Storybook, and codebase

17

add-template

TonnyWong1052

Add new UI style template to the ui-style-react project. This skill should be used when users want to add a new style template with HTML/CSS code, create a new preview page, or register a template in the system. Triggers include "add template", "create new style", "add new template", or when users provide HTML code for a new UI style.

10

Search skills

Search the agent skills registry