跳到正文
cccskills
免费在 GitHub 公开

ui

Build or update frontend components and layouts using the project’s design system. Follow its component variants, semantic color tokens, icon choices, and responsive layout rules so interface changes fit existing patterns across screen sizes and dark mode.

中文简介正在准备中。当前显示英语简介。

原文查看原文说明

Use when building or editing frontend UI components, layouts, styling, design system usage, colors, dark mode, or icons.

trycompai/comp星标 2,061(GitHub 2,061 + cccskills 0)

实测评分 未实测

查看安装方法

适用场景

  • Build a page with the project’s design system
  • Update a component’s styling or variants
  • Make a layout adapt to mobile and desktop

包含的文件(1)

  • SKILL.md4.0 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

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.

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

Guide API endpoint changes so request DTOs, runtime validation, OpenAPI documentation, and MCP tool metadata stay aligned. It covers discoverability, authentication, uploads, long-running tasks, and response types that MCP tools cannot handle.

中文简介正在准备中。当前显示英语简介。

  • Adding an API endpoint with a request body
  • Updating DTO validation and OpenAPI metadata
  • Making an endpoint available as an MCP tool
trycompai/comp20612026年10月24日 更新

Review specified files for design system usage, replace legacy @trycompai/ui components and lucide-react icons with available @trycompai/design-system equivalents, and run the app type check to verify the migration.

中文简介正在准备中。当前显示英语简介。

  • Migrating legacy UI components
  • Replacing lucide-react icons with Carbon icons
  • Checking specified files for design system compliance
trycompai/comp20612026年10月24日 更新

Review specified files for outdated hook and API patterns, then replace them with the prescribed SWR hooks, API clients, or server API calls. The guidance covers data fetching, mutations, cache updates, and response handling, followed by a typecheck command.

中文简介正在准备中。当前显示英语简介。

  • Auditing files for disallowed API and hook patterns
  • Replacing raw fetch calls with the API client
  • Migrating server actions and database mutations to API hooks
trycompai/comp20612026年10月24日 更新

Review NestJS API endpoints and frontend components for role-based access control and audit log compliance. The skill lists permission, guard, route, and UI gating rules, then directs the agent to fix violations and run type checks.

中文简介正在准备中。当前显示英语简介。

  • Auditing API routes for permission decorators
  • Checking UI actions against user permissions
  • Fixing access control inconsistencies
trycompai/comp20612026年10月24日 更新

Audit unit tests for components that use permissions. Add missing tests and fix failures, checking that administrators can use mutation controls, auditors cannot, and read-only content remains visible to both.

中文简介正在准备中。当前显示英语简介。

  • Adding permission tests for a component
  • Checking admin and auditor behavior
  • Fixing failing permission-related tests
trycompai/comp20612026年10月24日 更新

Set up Better Auth for TypeScript applications, including server and client configuration, database adapters, sessions, email and social sign-in, and plugins. The guide also highlights environment variables, schema generation, and security settings to review.

中文简介正在准备中。当前显示英语简介。

  • Configuring Better Auth in a TypeScript app
  • Connecting an ORM or database adapter
  • Setting up sessions and cookie storage
trycompai/comp20612026年10月24日 更新

查看 trycompai 的全部技能

报告此技能的问题