retheme
Skill0 starsChanged 12 days agoMITView on GitHub
The design pass for this deck kit. Gives the deck a new visual identity (palette, fonts, shapes, layouts, diagram styling, presenter and chrome) by editing only src/theme/** and the notes-PDF palette, then verifies contrast, fit and offline fonts. Use when the user wants a new look, a brand or university style, light or dark mode, different fonts, or "make it look like X".
- Installs packages
1 other project uses a version of this.
Adopted by
Most recently taken up by
- authrain-cloud-abdullahformuli/unsloptheir own version, first seen Nov 15, 2026
Other versions1 project uses a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 1
- authrain-cloud-abdullahformuli/unslop★ 1same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
The file
We split this skill into the rules it gives an agent
10 rules. About 0 are common, 0 are distinctive, and 10 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈0
Distinctive · estimate
This author's own choices. Worth a look.
10
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 14
Read the "Design direction" section of docs/brief.md, and ask the speaker only for what is missing: mood or references, colours, fonts, …
- Very specific: line 16
If the frontend-design skill is available, use its guidance for an intentional direction rather than a template look.
- Very specific: line 18
Look at the current state first: pnpm shots, then view out/shots/.
- Very specific: line 39
Every visual value lives in src/theme/.
- Very specific: line 40
only in
tokens.css: every other theme file must use var(--token), and tests/unit/literals.test.ts fails on any raw value there. - Very specific: line 44
No colours or fonts anywhere outside src/theme/ (the same test scans the engine, entries and slides).
- Very specific: line 48
Keep prefers-reduced-motion working: the @media (prefers-reduced-motion: reduce) block at the end of tokens.css zeroes the duration tokens.
- Very specific: line 54
Use fonts with an open licence from Fontsource: pnpm add @fontsource-variable/<name> (or @fontsource/<name> for static fonts), import them …
- Very specific: line 57
Remove a font package only if no theme uses it: the example decks in examples/*/theme/ import their own fonts (grep -r fontsource …
- Very specific: line 59
Never use Google Fonts URLs or any remote @import.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Retheme
The design lives entirely in src/theme/. Content (src/slides/) and the engine never change
in this pass. At the end, git diff --stat should list only src/theme/**, package.json and
pnpm-lock.yaml (font packages), and scripts/export-notes-pdf.ts (its palette block).
1. Direction
- Read the "Design direction" section of
docs/brief.md, and ask the speaker only for what is missing: mood or references, colours, fonts, light or dark projector. - If the
frontend-designskill is available, use its guidance for an intentional direction rather than a template look. - Look at the current state first:
pnpm shots, then viewout/shots/. - Projectors wash out colour and contrast: prefer strong ink on light paper or the reverse,
body text at least the
--fs-bodytoken (32 px on the 1920x1080 canvas), and no thin hairlines or light grey text.
2. How the theme is built
| File | Holds |
tokens.css | Every value: colours, patches, borders, radii, shadows, textures, fonts, type scale, spacing, durations, diagram tokens |
fonts.css | @import of the bundled @fontsource* packages |
base.css | Slide canvas, headings, text, tables, figures, focus ring |
content.css | Component classes used by the slides (cards, .question, .takeaways, .refs, …) |
types/layouts.css | Per-data-type layout |
diagrams.css | dgm-* SVG classes |
chrome.css | Progress bar, counter, jump chip, overview, help, blackout, laser pointer |
presenter.css | The presenter window |
Rules:
- Change values in
tokens.cssfirst; most redesigns are mostly token work. Keep the token names (the engine and other files refer to them); add new tokens when you need them. - Every visual value lives in
src/theme/. Raw values (colours, lengths, durations) are allowed only intokens.css: every other theme file must usevar(--token), andtests/unit/literals.test.tsfails on any raw value there. Unitless numbers, percentages and0are fine. Write new rules with tokens from the start; it is much cheaper than moving values into tokens afterwards. Gradients and data-URI images can be tokens too. - No colours or fonts anywhere outside
src/theme/(the same test scans the engine, entries and slides). - Fragments: keep
visibility: hiddenas the hiding mechanism (the engine owns it). Style[data-fragment-state="current"]if the newest step should stand out. - Keep
prefers-reduced-motionworking: the@media (prefers-reduced-motion: reduce)block at the end oftokens.csszeroes the duration tokens; keep it, and use those tokens for any motion. - Print: each slide carries its own background (
print-color-adjust: exactis set).
3. Fonts (offline)
- Use fonts with an open licence from Fontsource:
pnpm add @fontsource-variable/<name>(or@fontsource/<name>for static fonts), import them infonts.css, and point--font-head,--font-sansand--font-monoat the family names, with system fallbacks. - Remove a font package only if no theme uses it: the example decks in
examples/*/theme/import their own fonts (grep -r fontsource examples/*/theme). - Never use Google Fonts URLs or any remote
@import.
4. Notes PDF
scripts/export-notes-pdf.ts styles the printed presenter script on its own: update the
:root palette block, the two @font-face paths and the font-family lines to match the new
theme.
5. Verify, and iterate
pnpm check: the literals test proves no visual values leaked outside the theme.pnpm test:deck: axe colour contrast on every slide, every slide still fits the canvas, the PDF still has one page per slide, nothing is fetched from the network.pnpm shots, then look at every image inout/shots/, including the-step1builds andpresenter.png. Also check the overview (O), help (?), blackout (B) and laser pointer (L) inpnpm dev, or ask the speaker to.pnpm test:engineonly if you touched selectors the engine relies on (it runs on the example deck's own theme, so it normally stays green).
Report the direction you took, the before and after for two or three slides (paths to the shots), and the check output. Stop for the speaker's review.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

