Agent skill

Add Theme

by indielayer in indielayer/ui

Add a new shipped UITheme pack (like Base or Carbon) to @indielayer/ui.

MITAuto-check passedFrontend & Design

Install Add Theme

skills CLI
$ npx skills add indielayer/ui --skill add-theme -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install indielayer/ui add-theme --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/indielayer/ui.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.cursor/skills/add-theme .claude/skills/add-theme && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
add-theme
GitHub stars
222
Token cost
~1k tokens
SKILL.md length
285 words
Files
1
Skills in repo
5
Repo updated
First seen
Licence
MIT

At a glance

Add a new shipped UITheme pack (like Base or Carbon) to @indielayer/ui.

  • Works in 5 steps: packages/ui/src/themes/index.ts — export… → Docs live preview —… → Public docs if the theme is user-facing → …
  • Creating a new theme variant
  • SKILL.md covers Naming, Scaffold, Register and Keep agent files in sync, plus 1 more section
  • Calls pnpm

What it does

Add Theme is an agent skill from indielayer/ui. Add a new shipped UITheme pack (like Base or Carbon) to @indielayer/ui. Use when creating a new theme variant, theme pack, or files under packages/ui/src/themes/.

Its SKILL.md is about 1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Frontend & Design. It works with Tailwind CSS and Vue.js. The repository describes itself as: Vue UI Library with Tailwind CSS 🚀 Build and prototype fast web applications. The licence is MIT.

When your agent uses it

  • Creating a new theme variant
  • Files under packages/ui/src/themes/

Example prompts

  • “/add-theme”

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. packages/ui/src/themes/index.ts — export { default as Theme } from './'
  2. Docs live preview — packages/ui/docs/App.vue themes array (toolbar select is dev-only)
  3. Public docs if the theme is user-facing
  4. Do not change exports/nuxt.plugin.js or packages/create-ui templates unless making this the default
  5. Changeset (feat) — user-facing export

What it can do on your machine

Read from SKILL.md and the folder at commit a34ae6d. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • pnpm

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use pnpm, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Add Theme loads about 1k tokens when it runs. Until then it costs about 43 tokens; SKILL.md has 285 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~43
When it runs · the whole SKILL.md, loaded when a task matches
~1k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from indielayer/ui at commit a34ae6d, republished under its MIT licence (© indielayer). 285 words, ~1,001 tokens.

Download SKILL.mdSave it as .claude/skills/add-theme/SKILL.md (or your agent's skills folder).
name
add-theme
description
Add a new shipped UITheme pack (like Base or Carbon) to @indielayer/ui. Use when creating a new theme variant, theme pack, or files under packages/ui/src/themes/.
disable-model-invocation
true

Add theme

Shipped library theme exported from @indielayer/ui. Not for app-only overrides (app.use(UI, { theme: { ...BaseTheme, colors } })).

Shipped today: BaseTheme, CarbonTheme. Edit appearance with the component-theme skill.

Naming

PieceConventionExample
Folder / file infixlowercase idthemes/carbon/, Button.carbon.theme.ts
Public exportPascalCase + ThemeCarbonTheme
UITheme.namedisplay string'Carbon' (docs switcher + data-theme-style)

Keep classPrefix: 'x-' unless the user asks to change it.

Scaffold

Copy the Carbon layout (packages/ui/src/themes/carbon/):

packages/ui/src/themes/<id>/
  index.ts         # UITheme object
  components.ts    # one export per themed component (same keys as base)
  styles.ts        # global CSS string

index.ts:

ts
import type { UITheme } from '../../theme'
import * as components from './components'
import styles from './styles'

const theme: UITheme = {
  name: 'Material',
  styles,
  classPrefix: 'x-',
  components,
  // optional: colors: { primary: { 50: '#…', /* … */ 950: '#…' } },
  // optional: rtl: true,
}

export default theme
Component files

For every *.base.theme.ts, add theme/<Name>.<id>.theme.ts. Start by aliasing Base, then customize:

ts
import type { ButtonTheme } from '../Button.vue'
import BaseTheme from './Button.base.theme'

const theme: ButtonTheme = BaseTheme
export default theme

Partial override (spread or keep styles):

ts
const theme: BreadcrumbsTheme = {
  classes: {
    ...BaseTheme.classes,
    wrapper: 'flex items-center flex-wrap text-sm',
  },
}

Register every ComponentThemes key. Components call useTheme('<Name>', {}, props) — empty defaults — so a missing key renders unstyled. Copy themes/base/components.ts and point each export at the new *.<id>.theme.ts.

styles.ts

Copy themes/base/styles.ts or themes/carbon/styles.ts. Keep:

  • @layer base rules for html, html.dark, *, .dark
  • :root RGB triplets (--primary-color-50: 236, 253, 245 — not rgb())
  • semantic scales: primary, secondary, success, warning, error (50–950)
  • --font-family-sans / --font-family-mono / --border-color

Fonts are the usual first change (Carbon uses IBM Plex).

theme.colors (JS palettes for color="primary") is independent of --*-color-* in styles.ts and of Tailwind @theme in the app stylesheet. Align all three when the user wants a consistent primary.

Register

  1. packages/ui/src/themes/index.ts — export { default as <Id>Theme } from './<id>'
  2. Docs live preview — packages/ui/docs/App.vue themes array (toolbar select is dev-only)
  3. Public docs if the theme is user-facing:
    • packages/ui/docs/pages/index.vue (install snippets)
    • packages/ui/docs/components/common/DocsFeatures.vue (feature blurb)
    • packages/ui/.scripts/llms-full-preamble.md then pnpm gen:llms from packages/ui
  4. Do not change exports/nuxt.plugin.js or packages/create-ui templates unless making this the default
  5. Changeset (feat) — user-facing export

Keep agent files in sync

Append <id> wherever shipped themes are listed:

  • .cursor/skills/add-component/SKILL.md
  • .cursor/skills/component-theme/SKILL.md
  • .cursor/rules/themes.mdc
  • .cursor/rules/vue-components.mdc

Verify

bash
pnpm lint:ui
pnpm typecheck
pnpm test:ci
pnpm dev   # docs toolbar → theme select (DEV)

Exercise a few components (Button, Input, Modal) in light and html.dark. Tests inject BaseTheme; add theme-specific tests only if asserting unique class output.

Reference: packages/ui/src/themes/carbon/ and packages/ui/src/components/button/theme/

© indielayer, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .cursor/skills/add-theme of indielayer/ui.

Open the folder on GitHubat commit a34ae6d

Compare with similar skills

Add Theme next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Add Theme compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Add Theme this skillindielayer/ui222—~1kAutomated safety check: PassMIT
Tailwindcss Developmentanonaddy/anonaddy4.9k10 repos~865Automated safety check: PassMIT
Kill AI Slopyetone/kill-ai-slop1.3k—~1.4kAutomated safety check: PassApache-2.0
Uni Appsonofmagic/uni-app-tailwindcss-template3362 repos~1kAutomated safety check: PassMIT
UI/UX Design System AdvisorGalaxy-Dawn/claude-scholar5.7k1 repos~1.1kAutomated safety check: PassMIT
Design StyleCastor6/tactus3761 repos~2.1kAutomated safety check: PassApache-2.0

Similar skills

  • Tailwindcss Development

    anonaddy/anonaddy

    Always invoke when the user's message includes 'tailwind' in any form.

    4.9k GitHub starsUsed in 10 repos~865 tokens
    Frontend & DesignAuto-check passed
  • Kill AI Slop

    yetone/kill-ai-slop

    Find and remove AI slop — the generic, machine-default visual and copy tics of vibe-coded products — from a web project.

    1.3k GitHub stars~1.4k tokensUpdated 23 days ago
    Frontend & DesignAuto-check passed
  • Uni App

    sonofmagic/uni-app-tailwindcss-template

    Comprehensive skill reference for uni-app cross-platform development framework

    336 GitHub starsUsed in 2 repos~1k tokens
    Frontend & DesignAuto-check passed
  • UI/UX Design System Advisor

    Galaxy-Dawn/claude-scholar

    Turns a vague UI request into a concrete design system with style, palette, typography and layout guidance from a search script, plus stack-specific implementation advice.

    5.7k GitHub starsUsed in 1 repo~1.1k tokens
    Frontend & DesignAuto-check passed
  • Design Style

    Castor6/tactus

    A skill your agent uses whenever the user asks to build, create, design, develop, improve, or style any frontend interface or visual element.

    376 GitHub starsUsed in 1 repo~2.1k tokens
    Frontend & DesignAuto-check passed
  • Uithing

    BayBreezy/ui-thing

    Manages UI Thing components, prose, blocks, themes, shortcuts, docs, and MCP-driven workflows in Nuxt projects and in the UI Thing source repo.

    729 GitHub stars~1.3k tokensUpdated 6 days ago
    Frontend & DesignAuto-check passed

More from indielayer/ui

  • Add Component

    indielayer/ui

    Add a new Vue component to @indielayer/ui with themes, tests, docs, and registry exports.

    222 GitHub stars~293 tokensUpdated today
    Auto-check passed
  • Component Theme

    indielayer/ui

    Edit or add component theme classes and styles for shipped theme variants (base, carbon).

    222 GitHub stars~360 tokensUpdated today
    Auto-check passed
  • Docs Page

    indielayer/ui

    Create or update component documentation pages in packages/ui/docs.

    222 GitHub stars~419 tokensUpdated today
    Auto-check passed
  • Release

    indielayer/ui

    Prepare @indielayer/ui changes for release with changesets and conventional commits.

    222 GitHub stars~241 tokensUpdated today
    Auto-check passed

Questions about Add Theme

What does Add Theme do?

Add a new shipped UITheme pack (like Base or Carbon) to @indielayer/ui. Add Theme is an agent skill from indielayer/ui. Add a new shipped UITheme pack (like Base or Carbon) to @indielayer/ui.

When should I use Add Theme?

Add Theme fits situations like: creating a new theme variant; files under packages/ui/src/themes/.

How do I install Add Theme in Claude Code?

Run `npx skills add indielayer/ui --skill add-theme -a claude-code`. Or copy the skill folder (.cursor/skills/add-theme in indielayer/ui) into .claude/skills/add-theme in your project. Claude Code loads it when a task matches its description.

How do I install Add Theme in Codex?

Run `npx skills add indielayer/ui --skill add-theme -a codex`. Or copy the skill folder (.cursor/skills/add-theme in indielayer/ui) into .agents/skills/add-theme in your project. Codex loads it when a task matches its description.

Can I use Add Theme in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add indielayer/ui --skill add-theme -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/add-theme, .gemini/skills/add-theme, .github/skills/add-theme and .opencode/skills/add-theme in your project.

What does Add Theme need to run?

Going by SKILL.md and its folder, Add Theme needs the command-line tools its instructions call (pnpm).

Does Add Theme access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Add Theme safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Add Theme use?

Add Theme is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Add Theme use?

About 1k tokens (SKILL.md is roughly 4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Add Theme?

Skills that share tags, products or a category with Add Theme: Tailwindcss Development (anonaddy/anonaddy, 4.9k stars), Kill AI Slop (yetone/kill-ai-slop, 1.3k stars), Uni App (sonofmagic/uni-app-tailwindcss-template, 336 stars) and UI/UX Design System Advisor (Galaxy-Dawn/claude-scholar, 5.7k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Add Theme?

indielayer (a GitHub organization) maintains it in indielayer/ui, which has 222 GitHub stars. The repository holds 5 skills in this directory. The repository was last updated on October 7, 2026.

Source: indielayer/ui on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.