gacela-project/gacela-project.com/facet-component
Claude Code and agent skill by gacela-project/gacela-project.com
- community
Checking that the SKILL.md file is still in the repository.
Use when adding or changing a Facet design system component, or when a component needs new tokens, states or a dark-theme fix.
Install
npx vskill@latest install gacela-project/gacela-project.com/facet-componentSKILL.md
Facet component
Facet (src/design) is plain CSS: custom properties for tokens, @layer for cascade order, one file per component. No framework, no build step.
Components belong in components. Needing !important or a long selector chain means the wrong layer.
Steps
- Reuse.
ls src/design/components/. Most new components are an existing one plus a modifier. - Tokens first. Every colour, space, radius, shadow and type size is a token. Add missing ones to
src/design/tokens.cssin the right scale, for both themes. A raw hex,rgb()oroklch()outsidetokens.cssis a bug; the convention guard hook reports it. Prefer semantic tokens (--surface-raised) over literal ones (--gray-100). - Write the component in
src/design/components/<name>.css:
``css @layer components { .callout { --callout-accent: var(--color-accent); /* modifiers override only these */ padding: var(--space-4) var(--space-5); border-inline-start: 2px solid var(--callout-accent); background: var(--surface-sunken); border-radius: var(--radius-sm); } .callout--warning { --callout-accent: var(--color-warning); } } ``
One class per component, --modifier naming, no element selectors reaching outside it, logical properties (padding-inline), :focus-visible on anything interactive.
- Register the
@importinsrc/design/index.css, in layer order. - Both themes. Dark is a token swap, never a second stylesheet. Check that surfaces separate from the background, borders show without glowing, and text holds 4.5:1.
- Show it on
content/pages/design-system.md: default, each modifier, and the states that matter (hover, focus, disabled, empty, overflowing). An unlisted component drifts unseen. - Responsive without media queries first:
clamp(),min(),repeat(auto-fit, minmax(..., 1fr)), container queries. Use a media query only when the layout changes shape.
Done
npm run build; view the page at 1440px, 768px and 375px.- Tab to the component: focus is visible.
- With JavaScript disabled it still looks right.
- Animation under 300ms, inside
prefers-reduced-motion: no-preference.
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryChecking.agnostic-ai/skills/facet-component/SKILL.md
Popularity
- 7-day trend score
- 0
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/gacela-project/gacela-project.com/facet-component)