# How to Fine-Tune Hallmark AI for Specific Design Styles: A Complete Guide

> Master fine-tuning Hallmark AI for unique design styles. Learn to override themes, customize palettes, fonts, and axes, then validate with the slop-test for perfect results.

- Repository: [Hassan El Mghari/hallmark](https://github.com/Nutlope/hallmark)
- Tags: how-to-guide
- Published: 2026-07-25

---

**To fine-tune Hallmark AI for specific design styles, you override the custom-theme protocol by providing a descriptive vibe and anchor color, then modify the OKLCH palette construction, font pairing, and diversification axes defined in [`custom-theme.md`](https://github.com/Nutlope/hallmark/blob/main/custom-theme.md) before running the 58-gate slop-test validation.**

Hallmark is a design skill that drives AI-assisted front-end generation toward handcrafted, non-AI-slop aesthetics. According to the Nutlope/hallmark source code, its architecture is deliberately modular so that each stage—from signal detection to token emission—can be customized without breaking the core workflow. Learning how to fine-tune Hallmark AI for specific design styles requires working within the custom-theme branch while respecting the strict anti-slop discipline enforced by the validator.

## Understanding Hallmark's Modular Architecture

Before customizing visuals, you must understand the layered architecture that governs every design decision. The system processes each request through deterministic stages, with clear extension points defined in the repository's reference files.

### The Skill Manifest and Core Verbs

The entry point [`skills/hallmark/SKILL.md`](https://github.com/Nutlope/hallmark/blob/main/skills/hallmark/SKILL.md) declares the skill name, version, and high-level behavior. It defines four verbs that control execution: `audit`, `redesign`, `study`, and the default design flow. This manifest orchestrates the entire pipeline from pre-flight scan to output stamping.

### Pre-flight Scan and Genre Detection

During the **Pre-flight Scan** (Section 0 in [`SKILL.md`](https://github.com/Nutlope/hallmark/blob/main/SKILL.md)), Hallmark detects existing design system artifacts like [`design.md`](https://github.com/Nutlope/hallmark/blob/main/design.md) or token files and caches the results. Immediately after, **Genre Detection** selects one of four presets: editorial, modern-minimal, atmospheric, or playful. This genre selection influences subsequent macrostructure and theme routing decisions.

### Macrostructure Index and Theme Routing

The [`skills/hallmark/references/macrostructures.md`](https://github.com/Nutlope/hallmark/blob/main/skills/hallmark/references/macrostructures.md) file indexes 21 named macrostructures, each defining layout, navigation, footer, and hero archetypes. The **Theme Routing** layer then chooses between a **catalog theme** (one of 20 pre-defined options) or a **custom theme** (tuned or bespoke) based on rules in [`SKILL.md`](https://github.com/Nutlope/hallmark/blob/main/SKILL.md) §§ 2.6 and [`custom-theme.md`](https://github.com/Nutlope/hallmark/blob/main/custom-theme.md).

## Fine-Tuning Hallmark AI for Custom Design Styles

To tailor Hallmark to a specific visual language, you work inside the custom-theme branch. The process consists of five deterministic phases, each fully described in [`skills/hallmark/references/custom-theme.md`](https://github.com/Nutlope/hallmark/blob/main/skills/hallmark/references/custom-theme.md).

### Step 1: Signal Detection (Vibe and Anchor Color)

Hallmark initiates **Signal Detection** by requesting a *vibe* (4–8 descriptive words) and an optional *anchor colour* from the user. If you already know the desired aesthetic, shortcut the dialogue by providing these parameters directly via CLI flags.

```bash
hallmark design \
  --vibe "archival warmth, hand-set, no varnish" \
  --anchor "#c0392b"

```

### Step 2: Palette Construction with OKLCH

The **Palette Construction** phase (§§ B.1‑B.7 in [`custom-theme.md`](https://github.com/Nutlope/hallmark/blob/main/custom-theme.md)) converts your inputs into a deterministic OKLCH color system:

- **Anchor Accent**: Converts the anchor color to OKLCH and clamps chroma to 0.12‑0.20
- **Paper & Ink**: Derives L‑values from the vibe (bright, archival, technical, dark) and tints them toward the accent hue
- **Supporting Greys**: Computes rule, muted, and neutral greys with minimal chroma (≥ 0.005)
- **Accent-Ink & Focus**: Chooses contrasting text color for accent fills and a higher-chroma focus token
- **Verification**: Ensures gates 7, 22, 23 pass—blocking pure black/white, zero-chroma greys, and excessive accent footprints

### Step 3: Font Pairing Strategy

**Font Pairing** (§§ C.1‑C.3) requires selecting **one display face** and **one body face** from seven tone-pairings: Editorial, Technical, Brutalist, Soft, Luxury, Playful, or Austere. The pairing must satisfy weight contrast and minimum body size (≥ 14 px). Custom configurations allow mixing tones, such as "Editorial display + Technical body."

### Step 4: Axis Computation for Diversification

**Axis Computation** (§§ D.1‑D.3) derives three diversification axes stored in [`.hallmark/log.json`](https://github.com/Nutlope/hallmark/blob/main/.hallmark/log.json):

- **Paper band**: dark / mid / light based on L‑value
- **Display style**: inferred from the selected display font (italic-serif, geometric-sans, mono, etc.)
- **Accent hue**: warm (10‑60°), cool (200‑300°), neutral, or "chromatic-other"

These axes guarantee rotation across builds while maintaining design coherence.

### Step 5: Slop-Test Validation

Before emitting code, Hallmark runs the **Slop-Test Gatekeeper** defined in [`skills/hallmark/references/slop-test.md`](https://github.com/Nutlope/hallmark/blob/main/skills/hallmark/references/slop-test.md). This validator checks 58 anti-pattern gates, including prohibitions against inline hex colors, italic headings, and non-responsive mobile layouts. Only after passing all gates does the system write CSS custom-properties to the page's `:root`.

## Implementing Custom Themes in Practice

Install the skill using the `npx skills` wrapper, then trigger bespoke generation with explicit parameters:

```bash

# Install the skill (once)

npx skills add nutlope/hallmark

```

```bash

# Force a bespoke custom run with full structure design

hallmark design \
  --custom-bespoke \
  --vibe "moss, lichen, soft pink, herbal" \
  --anchor "soft pink"

```

The generated CSS includes a stamp comment recording every decision:

```css
/* Hallmark · macrostructure: Catalogue · theme: custom · vibe: "moss, lichen, soft pink, herbal"
 * paper: oklch(96% 0.018 145) · accent: oklch(72% 0.13 350)
 * display: Cormorant Garamond · body: EB Garamond
 * axes: light / roman-serif / chromatic‑other (dusty‑pink) */

:root {
  --color-paper: oklch(96% 0.018 145);
  --color-accent: oklch(72% 0.13 350);
  --font-display: "Cormorant Garamond", serif;
  --font-body: "EB Garamond", serif;
  --color-focus: oklch(70% 0.15 350);
}

```

## Key Files for Design Customization

When you fine-tune Hallmark AI for specific design styles, you primarily interact with these source files:

- **[`skills/hallmark/SKILL.md`](https://github.com/Nutlope/hallmark/blob/main/skills/hallmark/SKILL.md)**: Core skill manifest defining verbs and workflow orchestration
- **[`skills/hallmark/references/custom-theme.md`](https://github.com/Nutlope/hallmark/blob/main/skills/hallmark/references/custom-theme.md)**: Complete protocol for palette construction, font pairing, and axis computation
- **[`skills/hallmark/references/macrostructures.md`](https://github.com/Nutlope/hallmark/blob/main/skills/hallmark/references/macrostructures.md)**: Index of 21 layout archetypes with individual files under `references/macrostructures/`
- **[`skills/hallmark/references/color.md`](https://github.com/Nutlope/hallmark/blob/main/skills/hallmark/references/color.md)**: OKLCH palette rules and chroma constraints
- **[`skills/hallmark/references/typography.md`](https://github.com/Nutlope/hallmark/blob/main/skills/hallmark/references/typography.md)**: Font families, weight contrast requirements, and banned defaults
- **[`skills/hallmark/references/slop-test.md`](https://github.com/Nutlope/hallmark/blob/main/skills/hallmark/references/slop-test.md)**: 58-gate validator ensuring anti-slop compliance
- **[`.hallmark/log.json`](https://github.com/Nutlope/hallmark/blob/main/.hallmark/log.json)**: Runtime-generated persistence file storing macrostructure and theme axes for diversification

## Summary

- Hallmark's modular architecture separates concerns into distinct layers: signal detection, macrostructure selection, theme routing, token construction, and slop-test validation.
- Fine-tuning requires modifying the custom-theme protocol in [`custom-theme.md`](https://github.com/Nutlope/hallmark/blob/main/custom-theme.md), specifically the OKLCH palette construction (§§ B.1‑B.7) and font pairing logic (§§ C.1‑C.3).
- The three diversification axes—paper band, display style, and accent hue—are computed in §§ D.1‑D.3 and stored in [`.hallmark/log.json`](https://github.com/Nutlope/hallmark/blob/main/.hallmark/log.json) to ensure rotational variety.
- All custom themes must pass 58 validation gates in [`slop-test.md`](https://github.com/Nutlope/hallmark/blob/main/slop-test.md) before CSS emission, preventing common AI-generated design anti-patterns.
- Design decisions are permanently recorded in CSS stamp comments and [`log.json`](https://github.com/Nutlope/hallmark/blob/main/log.json) for audit trails and cross-build consistency.

## Frequently Asked Questions

### What is the Hallmark design skill?

Hallmark is a design skill for AI-assisted front-end generation that enforces handcrafted aesthetics over generic "AI slop." According to the Nutlope/hallmark repository, it operates as a modular pipeline defined in [`SKILL.md`](https://github.com/Nutlope/hallmark/blob/main/SKILL.md), supporting four verbs (`audit`, `redesign`, `study`, default) and routing through 21 macrostructures and 20 catalog themes or custom configurations.

### How does Hallmark prevent AI-generated design slop?

The [`skills/hallmark/references/slop-test.md`](https://github.com/Nutlope/hallmark/blob/main/skills/hallmark/references/slop-test.md) file implements a 58-gate validator that blocks common anti-patterns such as inline hex colors, italic headings, pure black/white backgrounds, and non-responsive layouts. Every generated design must pass these gates before token emission, ensuring the output maintains human-crafted quality standards.

### Can I create entirely bespoke macrostructures?

Yes. While Hallmark ships with 21 predefined macrostructures indexed in [`macrostructures.md`](https://github.com/Nutlope/hallmark/blob/main/macrostructures.md), the architecture supports adding new layout archetypes under `references/macrostructures/`. Each macrostructure defines specific layout, navigation, footer, and hero patterns that integrate with the theme routing system without breaking the slop-test validation.

### Where does Hallmark store design decisions between builds?

Hallmark persists macrostructure selections, theme axes, and enrichment choices in [`.hallmark/log.json`](https://github.com/Nutlope/hallmark/blob/main/.hallmark/log.json) (documented in [`custom-theme.md`](https://github.com/Nutlope/hallmark/blob/main/custom-theme.md) §§ F). Additionally, every generated stylesheet includes a CSS comment stamp at the top recording the macrostructure, theme, palette values, font choices, and computed axes, creating a complete audit trail for reproducibility.