01 / Manifesto

We build sites that studios charge 10-50k € for — without the studio.

Default Claude Code is a staggering tool. Then you ask it for a landing page and it ships the same shadcn template every time — centered hero, rounded pill button, Inter at 48px, a soft grey gradient, three feature cards. Competent. Forgettable. The visual equivalent of a "Hello, world." You didn't hire a senior engineer to ship a template.

Halftone is the opposite default. A plugin that refuses to let a model reach for the easy answer. It enforces editorial typography, asymmetric layouts, and motion that means something. It bans seven fonts. It bans purple gradients. It bans centered hero stacks. Not as suggestions — as hard rules, re-read on every single file write.

The bar is Awwwards. The bar is Locomotive, Basement, Unseen, Active Theory. The bar is the site you screenshot on a Tuesday and can't stop thinking about on Friday. Everything else is noise. We'd rather ship one landing you'd show your designer than ten you'd show your tech lead.

No purple gradients. No Inter. No lorem ipsum. No apologies.
02 / The problem

What Claude Code ships by default — vs. what Halftone ships.

Before — shadcn-slop
After — Halftone

Same brief. Same 30 minutes. Night and day.

03 / How it works

Six steps. Zero AI-slop.

01

Brief

Three questions. A one-word feeling, one site you love and one word for why, one non-negotiable. No "describe your vision," no twenty-field form. You answer in a minute, or you answer nothing.

02

Directions

Three art directions dispatched in parallel. You pick one, or you get three new ones. Never a single opinion pretending to be the answer.

03

Preview

A live, motion-rich vanilla preview of your direction on localhost:3737. Real GSAP, real Lenis, real type. You iterate in plain language; a PostToolUse hook blocks slop on every save. The wow lands before any framework gets touched.

04

Framework

Once the preview is good, you pick: SvelteKit or Astro. Halftone surfaces the recommendation that fits the chosen direction. The design is already validated — the framework choice is just plumbing.

05

Convert

Mechanical mapping. Each data-slot section becomes a component, each initX() moves verbatim into onMount. Lenis goes to the root layout, GSAP and Lenis switch from CDN to npm. Zero motion logic rewritten.

06

Code

Motion polish. Typography. Routing, forms, dynamic meta, sitemap. Audits — responsive and a11y. The anti-slop rules are re-read on every file write — no model can quietly drift toward Inter at 3am.

04 / The rules

Hardcoded. Non-negotiable.

↑ Seven fonts you will never ship.

Ten fonts, carefully chosen.

  • 01Fraunces
  • 02PP Editorial New
  • 03Migra
  • 04Space Grotesk
  • 05PP Neue Montreal
  • 06JetBrains Mono
  • 07IBM Plex Mono
  • 08Söhne
  • 09Newsreader
  • 10Instrument Serif

Seven moods. Hover to see palette.

  • Editorial Warm #0F0E0C · #D4622A
  • Swiss Minimal #FAFAF7 · #1A1A1A
  • Black Tie #020204 · #C9A95C
  • Organic Studio #111A12 · #8BA888
  • Midnight Edition #0A0B14 · #5A6BA3
  • Terracotta Print #F4EEE4 · #A8744A
  • Cold Lab #0C0F0D · #5CD0B4
05 / Outputs

Six templates. Seven moods. Forty-two possibilities.

01 / Format

Studio Landing

Single-page editorial for agencies and independent studios. Giant type hero, project grid, contact block. The default for "I do work, look at it."

heroprimary-motioncursor?footer
SvelteKitAstro
02 / Format

SaaS Premium

Product landing that doesn't look like every other product landing. Asymmetric hero, scroll-driven feature reveal, pricing without apology.

herofeaturespricingtransition?footer
SvelteKitAstro
03 / Format

Creative Portfolio

For designers, photographers, writers, directors. Heavy imagery, restraint-as-a-skill, typography doing all the work between the projects.

introworksaboutcursor?contact
SvelteKitAstro
Editorial Warm Swiss Minimal Black Tie Organic Studio Midnight Edition Terracotta Print Cold Lab
06 / Install

Three commands. One plugin. No shadcn.

01 / Add marketplace /plugin marketplace add Sakaax/halftone
02 / Install plugin /plugin install halftone@halftone
03 / Run /halftone