# Hallmark **A design skill for Claude Code, Cursor, and Codex that refuses to look AI-generated.** [Live demo →](https://www.usehallmark.com)  ·  twenty-four themes  ·  five verbs  ·  press `T` to cycle. Made by Together AI.

Hallmark, a design skill that refuses to look AI-generated

Hallmark holds a hard floor and then gets out of the way. It dresses the brief in one of twenty-four themes, runs a fifty-eight-gate slop test plus a pre-emit self-critique, and refuses the on-distribution defaults every LLM was trained into. Thirty-four of those gates are a **floor**: contrast, focus order, reduced motion, invented metrics, layout that breaks on a phone, and the eyebrow above the heading. Nothing ships through them. Eighteen are **reflex** gates, the defaults a language model falls into rather than laws, and a build with an argument can overrule one on the record, with the reason named in the CSS stamp and the guard re-derived by the checker. There is no cap on how many: a colour-field poster that wants a black stage, achromatic neutrals and one face doing everything is allowed to say so and ship. The last six are polish and bookkeeping and never block a ship. Two pages by Hallmark for two different briefs feel like different sites, not colour-swaps of the same template. The skill is built to stop a model looking generic, not to stop it being good. --- ## Five verbs | Verb | What it does | | --- | --- | | *(default)* | Build new UI. Picks a macrostructure, applies the rule-set, runs the slop test before handing back. | | `hallmark audit ` | Score existing code against the anti-patterns. Punch list, no edits. | | `hallmark redesign ` | Throw out the structure, keep copy + IA + brand, rebuild with a different fingerprint. | | `hallmark study ` | Extract the **DNA** from a design you admire: macrostructure, type-pairing, colour anchor. Refuses pixel-clones and paid templates. Optionally emits a portable `design.md` for handoff to other AI tools. | | `hallmark variants ` | Three structurally distinct directions for one brief, rendered live. Flip through them in a picker over your own localhost, pick one, keep building. | --- ## Different briefs, different shapes Each generated from a different brief. The skill picks the theme, structure, and craft to fit each one, not from a template.
Bubble guided sourdough app hero Distil content-extraction API hero Cold Snap record-label EP hero Cinder AI reasoning tool hero
Bubble
Sourdough app · Hum
Distil
Extraction API · Cobalt
Cold Snap
Record label · Carnival
Cinder
AI tool · Lumen
Ferns and Fathom tea menu hero Hollowback Apiary honey farm hero Off-Register risograph print fair hero Press Quaternary type studio hero
Ferns & Fathom
Tea menu · Custom
Hollowback Apiary
Honey farm · Garden
Off-Register
Print fair · Riso
Press Quaternary
Type studio · Custom
Tally SaaS product page hero Wayfare travel booking hero NAJM Moroccan fashion brand hero Hyperlane developer infrastructure hero
Tally
SaaS · modern-minimal
Wayfare
Travel · atmospheric
NAJM
Fashion brand
Hyperlane
Dev infrastructure
Each page is self-contained HTML + CSS, stamped with its macrostructure in the CSS comment. Browse the full set at [usehallmark.com](https://www.usehallmark.com) or under [`site/_tests/`](site/_tests/). --- ## Custom When a brief carries creative intent that no catalog theme fits, Hallmark switches to **Custom** and designs the page from scratch: a made-to-measure palette, type, and layout. Same fifty-eight gates at the same tiers, no template underneath. In v1.2 the custom route runs a full art-direction ritual: it names and rejects the category's reflex aesthetics, writes a slate of seven grounded directions, and a deterministic **draw** (`scripts/seed.mjs`) picks which one gets built, sometimes dealing wildcards from a design-history atlas. A scene sentence sets the light, a colour posture (Restrained · Committed · Full palette · Drenched) sets how far the palette commits, and a five-block direction contract written into the artifact gets audited promise by promise before shipping.
The Cascadia Nightjar sleeper-train ticket hero The Mend Assembly repair-café broadsheet hero
The Cascadia Nightjar
Sleeper-train ticket · Custom
The Mend Assembly
Repair-café broadsheet · Custom
It stays a quiet branch; vanilla briefs never see it. The protocol lives in [`custom-theme.md`](skills/hallmark/references/custom-theme.md). --- ## Variants NEW `hallmark variants ` runs the ceremony once, then builds **three structurally distinct directions** (different macrostructure, theme, nav, footer) and serves a local picker to flip between them and choose. v2 makes it fast and smooth: the picker opens immediately and fills **progressively** (you evaluate direction 1 while 2 and 3 finish), directions generate **in parallel** at **sketch depth** by default (only the winner completes to full), the grid shows screenshot **thumbnails** (so it survives dev servers that block iframes), and the verdict can be **compositional** ("direction 2, but the pricing from 3" grafts that section in). After the pick you can **zoom** to riff a single section, every round is logged to `.hallmark/variants//decisions.md`, and in a Vite/Astro/SvelteKit app a dev-only overlay previews each direction in place. No Node? A static compare page and a chat reply ("pick 2") always work. --- ## One skill, three harnesses NEW Hallmark is tuned for the three terminals where design work actually happens: **Claude Code**, **Codex CLI**, and **OpenCode**. One shared core (the same SKILL.md, references, gates, and scripts everywhere), plus a per-harness adapter each harness loads on its own: Claude Code runs the skill natively (hooks, subagents, preview pane); Codex reads [`harnesses/codex.md`](skills/hallmark/references/harnesses/codex.md) (sandbox and approval behaviour, sequential variants, `$hallmark` invocation); OpenCode reads [`harnesses/opencode.md`](skills/hallmark/references/harnesses/opencode.md) (permission model, parallel variants via its subagents). The mechanically checkable gates live in a zero-dependency checker every harness can run: ``` node skills/hallmark/scripts/sloplint.mjs --genre ``` One command installs a lean copy (skill + references + scripts, ~1.5 MB, never the marketing site) everywhere it belongs: ```bash node skills/hallmark/scripts/install.mjs ``` | Harness | Install location | Invoke | | --- | --- | --- | | Claude Code | `~/.claude/skills/hallmark` | `/hallmark ` or just describe the build | | Codex CLI | `~/.agents/skills/hallmark` (legacy `~/.codex/skills` refreshed too) | `$hallmark ` or implicit | | OpenCode | auto-discovers the copies above via its compatibility paths | `/hallmark ` or implicit | The installer detects which harnesses exist, replaces stale copies atomically, and `--remove` undoes everything. --- ## Edit-time linting NEW By default the slop test runs once, at the end. On Claude Code you can move it to the keystroke: a PostToolUse hook lints every `.html`/`.css` Hallmark artifact the moment it is written and feeds any failures back to the model advisorily, so slop gets fixed while the context is small instead of in a big end-of-run pass. ```bash node skills/hallmark/scripts/install-hook.mjs ``` `--global` targets `~/.claude/settings.json` (all projects); `--print` shows the settings block without writing; `--remove` undoes it. The hook is **advisory only**: it never blocks or reverts a write, no-ops silently on non-artifacts, and the Step 7 sweep still runs regardless. It is Claude-Code-only (Cursor/Codex have no hook surface and rely on Step 7). --- ## Install ``` npx skills add nutlope/hallmark ``` Re-run any time to update. Or copy [`SKILL.md`](skills/hallmark/SKILL.md) + [`references/`](skills/hallmark/references/) into: - **Claude Code**: `~/.claude/skills/hallmark/` - **Cursor**: `.cursor/rules/hallmark.mdc` (body of `SKILL.md`, no frontmatter; this channel ships no scripts, so `variants` picks by chat reply and the slop test runs fully model-judged) - **Codex**: `~/.codex/skills/hallmark/` (personal) or `.codex/skills/hallmark/` (project-scoped) The rule-set lives in [`SKILL.md`](skills/hallmark/SKILL.md) and [`references/`](skills/hallmark/references/). Worked examples in [`docs/recipes.md`](docs/recipes.md) and [`docs/study-examples.md`](docs/study-examples.md). --- ## Licence MIT. Use it, fork it, ship it.