cardstack/boxel-skills/boxel-theme-development
Trust tier 3
- community
Source check pending
Checking that the SKILL.md file is still in the repository.
Use when the deliverable is a theme ARTIFACT — creating, converting, auditing, or patching Theme, StructuredTheme, StyleReference, DetailedStyleReference, or BrandGuide cards; importing/exporting Google DESIGN.md design-system briefs; logo/mark usage and functional palettes. NOT for deciding a card's visual language (boxel-design) and NOT for applying tokens inside card templates (boxel-ui-guidelines).
Install
npx vskill@latest install cardstack/boxel-skills/boxel-theme-developmentSKILL.md
Boxel Theme Development
Use this for the theme artifact itself. Use boxel-design when the task is primarily styling a card template, and pair both skills when a card design drives a new theme.
Read First
boxel/references/theme-design-system.mdfor the Boxel theme hierarchy, Brand Guide fields, the Boxel Brand Guide rule, and dark mode (§3.3:data-theme,darkModeVariables).boxel-ui-guidelines/references/theme-token-contract.mdfor the full list of tokens a theme must satisfy — the only inventory; nothing else lists them.references/shadcn-boxel-token-mapping.mdbefore assigning semantic color, spacing, radius, or component-facing token values.references/design-md-adapter.mdwhen the input or output is a GoogleDESIGN.mdfile, a brand brief, or a generic design-system document.boxel-design/SKILL.mdwhen inventing visual direction, voice, typography, or brand mood.boxel-ui-guidelines/references/use-boxel-design-tokens-for-theming.mdwhen checking how templates will consume the theme.source-code-editing/SKILL.mdbefore editing any.gts;boxel/references/lint-workflow.mdbefore declaring.gtswork done.
Workflow
- Classify the job.
- Create: build a new Theme/StyleReference/BrandGuide instance.
- Convert: map
DESIGN.md, a brand guide, an existing site, or another token system into Boxel fields. - Audit: compare an existing theme card against Boxel fields, DESIGN.md rules, accessibility, and downstream template needs.
- Patch: preserve the existing theme class and structured fields while improving values and prose.
- Choose the narrowest correct card type from the ThemeCard Types table in
boxel/references/theme-design-system.md(StructuredThemefloor,StyleReference,DetailedStyleReference,BrandGuide). Boxel built-in feature work uses@cardstack/base/Theme/boxel-brand-guideas the source of truth.
- Gather source material.
- Existing Theme/BrandGuide JSON, if present.
- Any
DESIGN.md, style guide, brand guide, logo pack, font URLs, screenshots, or reference sites. - Current realm conventions: where Theme cards live, how instances link
cardInfo.theme, and whether a parent card computescardTheme.
- Map values before writing.
- Tokens are exact implementation values.
- Prose explains why and when to use them.
- Place brand material where the Brand Guide Pattern in
boxel/references/theme-design-system.mdsays: marks inmarkUsage, brand colors inbrandColorPalette, role colors infunctionalPalette, semantic UI values inrootVariablesanddarkModeVariables. Never invent miscellaneous string fields for brand assets. - Treat each paired surface token as a surface/foreground pair ("Colors" in the token contract; the neutral surfaces such as
--canvasand--fieldhave no pair and must read under--foreground):--primaryis a fill, not text, and--mutedis a pale surface while--muted-foregroundis quiet-but-readable text; defining both as dark grays yields dark-on-dark tables in long-form Markdown. - Normalize
rootVariables.spacingfor the runtime's--spacing * 4rule ("Spacing" in the token contract; conversion table inreferences/shadcn-boxel-token-mapping.md). - Put design rationale in
visualDNAand the DetailedStyleReference markdown fields.
- Build or patch the Theme card.
- Preserve rich theme structure. Do not flatten
BrandGuideorStyleReferenceinto rawcssVariables, and never build on the bareThemecard:StructuredThemeis the minimum,BrandGuidewhen custom variables outside the contract are needed. - Include
attributes.cardInfofor name, summary, thumbnail, and notes. - Omit
relationships["cardInfo.theme"]on Theme cards themselves. - Do not write
cssImports; it is derived from the font fields (boxel-ui-guidelines/references/font-loading-theme-card-owns-imports.md). - Never nest
@mediablocks insidecssVariables— the theme parser silently skips those declarations. Dark-mode values belong indarkModeVariables. - Use absolute URLs for cross-realm theme links unless a relative path has been verified.
- Validate.
- If a
DESIGN.mdfile exists and the CLI is available, runnpx @google/design.md lint DESIGN.md; request approval first if package download is required. - If editing
.gts, run the Boxel lint gate fromboxel/references/lint-workflow.md. - Preview the Theme/BrandGuide card and at least one consuming card instance.
- Check contrast for semantic pairs (
--primary/--primary-foreground, etc.) and ensure ordinary templates can use semantic tokens without reaching into raw brand colors. - Audit component-facing values against
references/shadcn-boxel-token-mapping.md, especially primary-as-text and spacing-scale failures.
Done Criteria
- [ ] The chosen card type matches the source material and intended reuse.
- [ ] Tokens and prose both exist when the theme is more than token-only.
- [ ] Brand assets live in
markUsage; brand palette lives inbrandColorPaletteandfunctionalPalette. - [ ]
rootVariables,darkModeVariables, andtypographyare structured where the card type supports them. - [ ] No Theme card links to another Theme through
cardInfo.theme. - [ ] Boxel built-in feature work uses the Boxel Brand Guide.
- [ ] If DESIGN.md was involved, token/prose mapping was checked against
references/design-md-adapter.md. - [ ] Shadcn/Boxel token pairing was checked:
--primaryis not ordinary text, foreground pairs exist, and spacing uses the Boxel normalized value.
Security
- Security scanPassed, 90 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 repositoryCheckingskills/boxel-theme-development/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/cardstack/boxel-skills/boxel-theme-development)