Vluna Design System
Vluna is a quiet, cinematic architecture studio site. It feels like a dimmed gallery: a near-black #040404 page with visible film grain over everything, warm minimalist architecture renders (white desert domes, beige interiors, raw concrete) and white type split between a fashion-house serif and a plain grotesk. Colour comes from the photographs only, and the service slides are pushed down under a 75% black overlay.
Four signatures make it recognisable:
- Serif against grotesk. The VLUNA wordmark, the 1/4 service counters and the line Lines that speak, designs that inspire. are set in Velista, a high-contrast display serif. Everything else is Instrument Sans, mostly at 600 (nav 500, text links 400).
- Dot-bullet navigation. Nav links sit in two groups, left (Home, Studio, Blog) and right (Packages, Contact, Cart 0), each preceded by a small white dot. On hover the dot grows into a 30px white circle with a dark arrow inside.
- Inset full-bleed frames. The hero image and the service slides stop 10px short of the viewport edges, so a thin black frame always shows around the picture.
- Film grain. A fixed full-viewport overlay (.tv-dots) adds TV-static noise over the whole page, black areas included.
Vluna is a dark-only design.
Colors
Surfaces
#040404Page background, sections, footer (--main-color)
#000000The service-slides section behind the photos
#141414Testimonial cards, the rounded band, icon squares, cart (--third-color)
#242424The footer subscribe field
#FFFFFF · 13%Contact inputs: hairline border and placeholder
#FFFFFF · 70%Placeholder text on field
#FFFFFFNav dots and the arrow inside the grown dot
Ink
#FFFFFFText on primary
#FFFFFFHeadlines, nav, links, card text
#FFFFFF · 80%Dates and meta (.data-text, opacity 0.8)
#FFFFFF · 70%Paragraphs (base p opacity 0.7)
#FFFFFF · 60%Footer column titles, .gray-text-color
#D9DAE2Text on secondary
#121212Text on inverse-canvas
#FFFFFFText over photos
Action
#141414Filled pill button (.button)
#222222.button:hover background
#000000Footer subscribe button; text is --body-text-color
#080425.button-subscribe:hover, a near-black navy
Lines & effects
#FFFFFF · 15%Cart border and cart footer rule
#FFFFFF · 40%1px border of the outlined pill button
#000000 · 75%Service-slide darkening
#000000 · 20%Lighter photo darkening; the hero itself only gets 5%
Typography
Instrument Sans · display-xl
The quick brown fox jumpsThe scrolling title …Tomorrow's Way of…, three copies running across the viewport. 230px · 600 · 1.2 · -1px
Instrument Sans · headline-xl
The quick brown fox jumpsService names on slides (Conceptual Design, Project Management). 72px · 600 · 1.0
Instrument Sans · title-lg
The quick brown fox jumpsAbout statement Vluna® is dedicated to designing… (.main-title-page). 30px · 600 · 1.2
Instrument Sans · body-lg
The quick brown fox jumpsTestimonial quotes (.subhead-testimonials). 22px · 600 · 1.4
Instrument Sans · label-link
The quick brown fox jumpsUnderlined text links (.button-line). 21px · 400 · 1.0
Instrument Sans · caption
The quick brown fox jumpsDates and meta at 80%. 14px · 500 · 1.4
Spacing & shape
| Purpose | Value |
|---|---|
| Container | .container max 1240px, centred; many inner wrappers are 85% wide (95% for the bottom logo row) |
| Section rhythm | .section is 200px top and bottom, 100px at ≤991 |
| Breakpoints | 991px, 767px and 479px, plus a 1280px step |
Spacing scale
| Token | Value | Preview |
|---|---|---|
sm | 20px | |
md | 25px | |
lg | 50px | |
xl | 60px |
Layout spacing
| Token | Value | Preview |
|---|---|---|
inset | 10px | |
gutter | 43px | |
column-gap | 50px | |
section-sm | 150px | |
section | 200px |
Border radius
Surfaces
How the surfaces stack, from the page background up. Hex codes and roles are in Colors above.
Motion
| Nav dot grow | Size change to 30px, 300ms ease, on hover; back on mouse-out |
| Arrow nudge | Icon moves x 3px, y −3px and back, 300ms ease |
| Page load | Opacity 0 → 1 and move to 0px, 1000ms outQuart |
| Slide-in | x 30px → 0, 800ms outExpo; x −30px → 0, 500ms outQuart |
| Scroll title | Scrubbed x 45vw ↔ −45vw while in view |
| Scroll reveals | y 10% → 0, y −100% → 0, small rotates, 500ms keyframes |
| Underline and size changes | 300ms ease, 400ms outCubic, 500ms |
| Border change | 200ms outSine |
| Menu icon | Lottie 0 → 100, 600ms |
| Buttons and cards | CSS transition: all 0.3s; cards transform 0.3s, color 0.3s |
Do’s and don’ts
- Use #040404 for the page and #141414 for cards and bands, and keep the grain layer on.
- Pair Velista 400 for wordmarks, counters and one statement line with Instrument Sans 600 for headings.
- Inset full-width media 10px from the viewport edges so a black frame shows.
- Darken busy photos with black 75% before setting 72px titles on them.
- Use 50px pills for buttons: outlined (1px white 40%) over photos, #141414 filled elsewhere.
- Precede nav links with white dots that grow to 30px circles on hover.
- Round images or cards; only buttons, inputs and dots are round.
- Use Velista for body text or anything under 40px.
- Add the declared blue #4361EE or any other accent colour.
- Use grey hex values for muted text; use white at 80 / 70 / 60%.
- Add drop shadows; depth comes from overlays and the #040404 / #141414 step.
- Put the #141414 filled button alone on #040404 without a border or photo behind it; it nearly disappears.
- Animate longer than 1000ms, and keep anything above 500ms for entrances.
Example prompt
Any page in the Vluna style
More design systems like this
Construction 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 Vluna 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/vluna.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






