How to Contribute to the Hallmark Project: A Complete Guide for Designers and Developers
Contributing to the Hallmark project involves forking the repository, extending Markdown reference files in skills/hallmark/references/, adding static test pages to site/_tests/, and submitting a pull request with your HTML/CSS changes.
Hallmark is a design skill for Claude Code, Cursor, and Codex that generates UI pages mimicking handcrafted design rather than generic AI output. Learning how to contribute to the Hallmark project is straightforward because its architecture is deliberately lightweight and file-centric, requiring no complex build pipelines or runtime dependencies.
Understanding the Hallmark Architecture
Before making changes, familiarize yourself with the repository structure. Hallmark operates as a static asset collection that AI coding assistants consume to generate themed HTML pages.
| Component | Purpose | Location |
|---|---|---|
package.json |
Declares the skill package, entry point, and supported harnesses (Claude Code, Cursor, Codex). Also contains the serve script for local preview. |
Root directory |
skills/hallmark/SKILL.md |
The skill manifest that defines entry points, reference file locations, and available harnesses. | skills/hallmark/SKILL.md |
| `skills/hallmark/references/`` | Knowledge base containing Markdown files describing macro-structures, themes, verbs, and component recipes. | skills/hallmark/references/ |
site/_tests/ |
Self-contained HTML + CSS examples serving as both documentation and visual tests. Each folder contains a complete, browsable page. | site/_tests/ |
site/index.html & site/js/main.js |
The demo harness powering the live site at https://www.usehallmark.com, cycling through themes with the T key. |
site/ directory |
The skill works by picking a macro-structure, applying a theme, running "slop-test" heuristics to eliminate poor outputs, and emitting static HTML. According to the Nutlope/hallmark source code, contributions are sandboxed to these static assets, keeping CI fast and the codebase accessible.
Step-by-Step Contribution Workflow
Follow this workflow to ensure your contribution aligns with the project's file-centric philosophy.
-
Fork the repository on GitHub using the Fork button in the top-right corner.
-
Clone your fork locally:
git clone https://github.com/YOUR_USERNAME/hallmark.git cd hallmark -
Start the development server to preview changes:
npm run serveThis serves the
sitefolder athttp://localhost:4173using the simple static server defined inpackage.json. -
Make your changes by editing files in
skills/hallmark/references/or adding new macro-structures. -
Add a corresponding test page under
site/_tests/containing self-contained HTML and CSS that demonstrates your change. -
Verify visually by opening
http://localhost:4173and pressing theTkey to cycle through themes, confirming your addition renders correctly. -
Commit with a clear message describing the visual or functional change.
-
Push to your fork and open a Pull Request against the
mainbranch.
Reviewers will examine your Markdown reference updates, inspect the static test page, and verify the overall visual quality matches Hallmark's handcrafted aesthetic.
Adding New Themes and Features
Most contributions involve extending the reference data. Here are practical patterns for common contribution types.
Creating a New Theme
Themes define color palettes and typography. Create a Markdown file under skills/hallmark/references/ following the existing naming convention:
<!-- skills/hallmark/references/custom-theme.md -->
# My New Theme
## Colour palette
- `--primary: oklch(60% 0.15 260deg);`
- `--background: oklch(95% 0.02 30deg);`
## Typography
- Heading: "Inter", weight 700
- Body: "Merriweather", weight 400
Reference the new theme in SKILL.md if it requires specific activation logic.
Registering a New Verb
To add CLI commands that the AI assistants can invoke, extend skills/hallmark/SKILL.md with a new command block:
## `hallmark export <target>`
Export the generated HTML/CSS as a zip file for downstream consumption.
This exposes the functionality to Claude Code, Cursor, and Codex according to the skill manifest specification.
Adding Component Recipes
Component recipes live in the references/ folder as Markdown files describing specific UI patterns (navigation bars, hero sections, card grids). When adding a new recipe, include:
- The HTML structure template
- Required CSS classes
- Accessibility considerations
- Responsive behavior notes
Testing Your Changes Locally
Because Hallmark uses pure HTML/CSS with no runtime dependencies, testing requires only a web browser.
To verify a new theme:
- Create a test folder under
site/_tests/my-theme/. - Add an
index.htmlfile that imports your CSS and renders sample components:
<!-- site/_tests/my-theme/index.html -->
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>My Theme Demo</title>
<link rel="stylesheet" href="../../styles/my-theme.css">
</head>
<body>
<header class="hero">My New Theme Hero</header>
<section class="content">Sample content</section>
</body>
</html>
- Run
npm run serveand navigate tohttp://localhost:4173/_tests/my-theme/. - Inspect the rendering at various viewport sizes to ensure the design feels handcrafted rather than templated.
The demo harness at site/index.html and the theme cycler in site/js/main.js provide immediate visual feedback, reducing review cycle time.
Summary
- Hallmark is a file-centric design skill for AI coding assistants, stored in the Nutlope/hallmark repository.
- Core contributions modify Markdown files in
skills/hallmark/references/and add static test pages tosite/_tests/. - The
SKILL.mdmanifest controls how Claude Code, Cursor, and Codex load and execute the skill. - Local development requires only
npm run serveto test changes atlocalhost:4173. - Use the
Tkey in the browser to cycle themes and verify visual quality before submitting pull requests.
Frequently Asked Questions
Do I need to know JavaScript to contribute to Hallmark?
No. Hallmark contributions are limited to static assets only—Markdown, HTML, and CSS. You can add themes, macro-structures, or component recipes without writing JavaScript or understanding complex build pipelines. The architecture is designed so contributors focus on design decisions rather than code complexity.
Where should I place new component recipes?
Place component recipes as Markdown files in skills/hallmark/references/. Follow the existing file naming conventions and include structured sections describing the HTML template, CSS classes, and usage context. The skill manifest at skills/hallmark/SKILL.md points to this folder as the knowledge base source.
How do I test my theme before submitting a Pull Request?
Create a self-contained test page under site/_tests/ with your theme's CSS linked in the HTML <head>. Run npm run serve to start the local server, visit http://localhost:4173, and press T to cycle through available themes. Your new theme should appear in the rotation if properly registered in the references folder.
What makes a good Hallmark contribution?
Effective contributions add reference data that helps the AI generate handcrafted-looking results rather than generic templates. Focus on specific macro-structures (unique page layouts), distinctive color palettes using OKLCH color notation, or component recipes with careful typography spacing. Each addition should include a corresponding test page in site/_tests/ so reviewers can evaluate the visual output instantly.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →