theme

theme is a skill for Claude Code, Codex from smileynet/teach-me. It costs 43 tokens per session (907 once invoked), scanned A, original, MIT.

A tool and workflow for previewing, comparing, validating, and applying color palettes, including light and dark themes.

In plain words
What is it for?
Use it when changing interface colors to generate previews, check contrast, compare palettes, or produce CSS variables.
Why use it?
It helps find text and background color combinations that do not meet contrast requirements before they are used.

Skill for Claude CodeCodex

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add skills/smileynet/teach-me/theme
Any agent
npx skills add smileynet/teach-me --skill theme
Clone the repo
git clone --depth 1 https://github.com/smileynet/teach-me

Made for: Claude Code, Codex.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for theme

README.md
[![agentmods](https://agentmods.dev/badge/skills/smileynet/teach-me/theme.svg)](https://agentmods.dev/skills/smileynet/teach-me/theme)
Your own site
<a href="https://agentmods.dev/skills/smileynet/teach-me/theme"><img src="https://agentmods.dev/badge/skills/smileynet/teach-me/theme.svg" alt="Measured on agentmods" height="20"></a>
Per session 43 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 907 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00043 $0.00907
Opus 5 $0.00022 $0.00453
Sonnet 5 $0.00009 $0.00181
Haiku 4.5 $0.00004 $0.00091

Measured 4d ago against content hash 80adea9951af, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

theme scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 4d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

.kiro/skills/theme/SKILL.md · 109 lines

How it starts

The opening of the file, as written. The whole thing — 109 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Theme

Preview, validate, and apply color palettes to the lesson UI.

Workflow

1. Preview a palette

python tools/theme-preview.py --palette palettes/purple-night.json

Generates .scratch/theme-preview.html showing all UI elements with the palette applied, plus a contrast validation table. Open it in a browser or screenshot for analysis.

2. Validate contrast

The tool prints a contrast report to stdout:

✓ text on bg: 14.2:1 (AAA) — need 7.0:1
✓ text-muted on elevated: 5.1:1 (AA) — need 4.5:1
✗ text-faint on surface: 2.8:1 (FAIL) — need 4.5:1

Fix any failures before applying. Common fixes:

  • Lighten the text token
  • Darken the background token
  • Use a less-saturated accent

3. Compare palettes

Generate previews for multiple palettes and compare:

python tools/theme-preview.py --palette palettes/purple-night.json --output .scratch/preview-purple.html
python tools/theme-preview.py --palette palettes/zinc-dark.json --output .scratch/preview-zinc.html

4. Get CSS snippet

python tools/theme-preview.py --palette palettes/purple-night.json --css

Prints the :root { --bg: ...; } block ready to paste into style.css.

5. Apply

Copy the CSS variables into assets/style.css :root block. Then verify:

mise run visual-qa

Palette Format

Palettes live in palettes/*.json:

{
  "name": "Purple Night",
  "mode": "dark",
  "tokens": {
    "bg": "#13111C",
    "bg-elevated": "#1C1A2E",
    "bg-surface": "#252340",
    "text": "#CDD6F4",
    "text-muted": "#9399B2",
    "text-faint": "#6C7086",
    "accent": "#CBA6F7",
    "link": "#89B4FA",
    "border": "#313244",
    "code-bg": "#1E1E2E",
    "success": "#A6E3A1",
    "warning": "#F9E2AF",
    "error": "#F38BA8",
    "callout-bg": "#1E293B",
    "key-concept-bg": "#2D1F0E"
  }
}

Contrast Rules

Pair Minimum Why
text on bg 7:1 (AAA) Extended reading — body text must be crisp
text on elevated 7:1 Tray panel body text
text-muted on bg 4.5:1 (AA) Secondary text still readable
text-muted on elevated 4.5:1 Common failure — always test this
text-muted on surface 4.5:1 Tooltips, popovers — the #1 failure point
link on bg 4.5:1 Interactive elements distinguishable
accent on bg 4.5:1 Headings readable

Read the full file on GitHub · 109 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 4d ago First seen · 109 lines · 43 tokens per session scan A 80adea9951af

Subscribe to this mod's changes

theme is a skill published in the GitHub repository smileynet/teach-me (3 stars, last pushed today), licensed MIT. It adds 43 tokens to every session and 907 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

Other skills, from other repositories

anki

Anki spaced repetition learning system reference. Covers the science of SRS and SM-2 algorithm, card design principles, optimal deck settings, FSRS scheduler, study workflow, essential add-ons, custom templates, filtered decks, and AnkiConnect API.

bytesagain/ai-skills · 53 tokens

reading-metaskill

当用户想养成阅读习惯、问「读什么书/怎么读」「如何学习新领域/怎么入门某学科」时调用。 核心理念: 阅读是终极元技能; 读你所爱直到爱上阅读, 没有读完义务; 读原著与经典优先; 以教促学; 每天1-2小时即可进入极少数人行列。 不适用于: 具体某本书的书评、考试备考资料选择。 Triggers: 阅读/读书/怎么学习/入门/原著/书单/reading/how to learn.

kangarooking/cangjie-skill · 139 tokens

coach

Learning telemetry, strategy, and schedule — retention stats, calibration, grader audit, n-of-1 experiments, HTML dashboard. Use for "how am I doing", weekly check-ins, strategy questions, auditing the grader, or adjusting how Engram teaches.

nagisanzenin/engram · 53 tokens

learning-notes-automation

学习笔记自动化:视频/播客转录 → 知识点提取 → 闪卡生成 → 知识图谱更新。触发词:学习笔记、闪卡、Anki、知识提取、视频学习.

chubbyguan/chubbyskills · 58 tokens

antivibe

Code learning and audit framework. Analyze any codebase — new, legacy, or AI-generated — and produce educational explanations or architectural audits. Use when the user wants to understand WHAT and WHY behind any code, not just accept it.

mohi-devhub/antivibe · 50 tokens

learn

Learn any topic properly — first-principles curriculum, generation-first tutoring, verified free recall, FSRS scheduling. Use when the user wants to learn, understand, study, or continue studying something.

nagisanzenin/engram · 42 tokens