Katen Design System
Katen is a stark, gallery-like portfolio for a studio. The home page is one thing only: a full-screen project slider, held in a black frame made of an 80px top bar and an 80px numbered side rail. Each slide is a single large 3D render or photo with a bold centred title and a square black View Project button. Inner pages switch to white with black type, and break the hard Inter headlines with one handwritten Caveat word.
Four signatures make it recognisable:
- The black frame. An 80px black top bar (white Katen logo plus Portfolio Template in Caveat, social icons on the right) and an 80px black left rail listing the slides 1–6. The current slide is marked by a 3px white bar on the rail's left edge. A plain white 80px square sits in the top-left corner and opens the menu.
- One project per screen. Each slide fills the viewport: a cover image under a 20% black scrim, a centred display-project title (max 730px) and a square black button. Two white 60px square arrows sit in the bottom-right corner.
- Script accent word. Section titles end in a word set in Caveat 600 at 60px: Interesting facts about our *agency*, Meet the *team*, Some of our trusted *clients*. Roles, sub-titles and the logo tagline use Caveat too.
- Square corners and dashed rules. Buttons, inputs, cards and arrows have no radius. Pricing cards have a 2px dashed black border, FAQ rows and contact fields a dashed black bottom rule.
Colors
Surfaces
#FFFFFFInner page background, menu overlay, slider arrows, hamburger square
#F8F8FALicensing and style-guide blocks only; the marketing pages have no grey surface
#000000Top bar, side rail, home slider frame, CTA band, offices band
Ink
#FFFFFFText on primary
#000000Text on secondary
#000000Headlines, buttons' text on white, links, team names
#313137Paragraphs (17px p), copyright, and the button hover colour
#686868Team roles in Caveat, placeholder text, hover on blog titles
#8A8A8ACurrent menu link (40px), price titles, blog categories (14px)
#FFFFFF#FFFFFFText on inverse-canvas
#FFFFFF · 50%Office addresses on black
#FFFFFFAction
#000000Square black button with a small white chevron
#313137Button hover
#FFFFFFWhite button on black bands (Contact Us)
#FA3137Form messages only: 15px white text on a 4px-radius box (white on #FA3137 is 3.8:1, so keep it short and 15px+)
#009E5CForm messages only: 15px white text on a 4px-radius box (white on #FA3137 is 3.8:1, so keep it short and 15px+)
Lines & effects
#C9C9C91px rule under each menu link
#0000002px dashed pricing borders and FAQ rules, 6px team bars, 1px dashed field rules
#FFFFFF · 17%1px top border of the black offices band
#000000 · 20%Overlay on every slide and sub-page hero photo
Typography
Inter · display-project
The quick brown fox jumpsSlide titles, Stunning imagined planets (70px line height). 75px · 700 · 0.93
Inter · headline-xl
The quick brown fox jumpsSub-page hero titles (About Katen, Pricing). 63px · 700 · 1.0
Inter · title-lg
The quick brown fox jumpsBlog card titles. 25px · 600 · 1.2
Inter · body-lg
The quick brown fox jumpsParagraphs, in #313137. 17px · 400 · 1.41
Inter · label
The quick brown fox jumpsDefault text, buttons, footer links. 16px · 500 · 1.25
Inter · caption
The quick brown fox jumpsSlide numbers on the rail, blog categories. 14px · 500 · 1.43
Spacing & shape
| Purpose | Value |
|---|---|
| Container | max 1140px, centred, with 5% side padding (72px at 1440px) |
| Section rhythm | 100px top and bottom on white sections (60px at ≤991 and ≤479) |
| Breakpoints | 991px, 767px and 479px |
Spacing scale
| Token | Value | Preview |
|---|---|---|
xs | 10px | |
sm | 20px | |
md | 30px | |
lg | 40px | |
xl | 50px | |
2xl | 100px |
Layout spacing
| Token | Value | Preview |
|---|---|---|
dot | 4px | |
column-gap | 50px | |
side | 72px | |
section-dark | 80px | |
bar | 80px | |
section | 100px | |
split-gap | 100px | |
hero-sub-bottom | 120px |
Border radius
Surfaces
How the surfaces stack, from the page background up. Hex codes and roles are in Colors above.
Motion
| Slide in | When a slide becomes active, the title and button fade opacity 0 → 1 and move from y −50px / y 50px to 0, 500ms ease |
| Slide out | Same elements fade to 0 and move back out, 500ms ease |
| Image zoom | Active slide image scales 1 → 1.5 over 30s (no easing set); it resets to 1 over 3s when the slide leaves |
| Button hover | Background #000000 → #313137, chevron 85% → 88%, 200ms |
| Slider arrow hover | Chevron shifts 15px, 300ms |
| Menu and footer links | Black line wipes across the grey rule (width change), 500ms |
| Hamburger | Lottie icon animates between menu and close on click |
| Cards | Blog card opacity 1 → 0.7, 300ms; social icons to 0.7 |
Do’s and don’ts
- Frame full-screen work with the 80px black top bar (#000000) and the 80px numbered rail.
- Keep every button, field and card square (rounded.none), with #000000 fill and #FFFFFF text.
- End section titles with one Caveat 600 word at 60px (display-script).
- Use dashed black rules (2px on cards and FAQ rows, 1px under fields) instead of grey borders.
- Put a 20% black scrim (scrim) on images that carry text, and switch the title to black on pale images.
- Close every inner page with the black CTA band, the black offices band and the white centred footer.
- Add a brand colour, gradients or shadows. Colour belongs to the imagery.
- Round corners. Only the 3px rail indicator has rounded ends.
- Use Caveat for more than one word in a title, or for paragraphs.
- Use #8A8A8A (ink-faint, 3.5:1 on white) for body text. Keep it for 40px menu links, 24px prices and 14px meta.
- Shrink the slide title below 55px or let it run wider than 730px.
- Put boxes or panels behind slide titles; the scrim is enough.
Example prompt
Any page in the Katen style
More design systems like this
Portfolio design systems, the same colors first.
Bring any of them to your AI tool
All Access unlocks all 398 design systems, ready for Claude, ChatGPT, Gemini, Cursor, v0 and Lovable, plus 400+ templates on all 5 platforms.
Get All AccessUpgrade to All AccessHow to use the Katen design system
Pick a file to see what it’s for and where it goes.
What it is
The whole design system in one markdown file, written for AI: every color, type style, spacing value, component and motion rule, plus do's, don'ts and a ready prompt.
Best for
Claude, ChatGPT, Gemini, Cursor and v0, or any other AI tool that builds pages or code.
How to use it
- Put
DESIGN.mdin your project and mention it in your request, or save it as.cursor/rules/katen.mdc - For the rule file, start it with a front-matter block that sets
alwaysApply: true, so every chat uses it - Ask: “Build a pricing page using DESIGN.md.” Cursor follows the colors, fonts, spacing and rules
- Put
DESIGN.mdin the project root - Add one line to
CLAUDE.md: “Follow DESIGN.md for all UI.” - Ask for any page or component; Claude reads the file first
- Attach
DESIGN.mdto the chat (or paste it in) - Ask: “Build a landing page in this design system.”
- Keep the file in the chat or project knowledge, so follow-up pages stay on style
What it is
Every token as data, in the W3C Design Tokens format: colors with their roles, type styles, radius, spacing, and component tokens that point at them.
Best for
Figma (Tokens Studio), Style Dictionary and other design-token tools, and build scripts.
How to use it
- In Figma, open Tokens Studio, choose Import, and pick
tokens.json - Or point Style Dictionary’s
sourceat it to generate tokens for any platform - In code, import it like any JSON file
What it is
A Tailwind CSS v4 theme: every color, font, type style, radius and spacing value becomes a Tailwind utility, like bg-canvas, text-headline-lg or rounded-md.
Best for
Tailwind v4 projects, and AI builders that write Tailwind (v0, Lovable, Bolt).
How to use it
- Save
theme.cssnext to your main CSS file - Import it after Tailwind:
@import "tailwindcss"; @import "./theme.css"; - Use the classes:
bg-canvas text-ink rounded-md p-lg
What it is
The same tokens as plain CSS variables on :root. Component values point at the color variables, so changing one color updates everything that uses it.
Best for
Any website: plain CSS, Webflow custom code, Framer, WordPress.
How to use it
- Add it to your stylesheet, or in Webflow paste it into Site settings → Custom code inside a
<style>tag - Use the variables anywhere:
color: var(--color-ink) - Change a token once and every place that uses it follows






