flowmance

Virtue Design System

Virtue website template previewVirtue website template preview detail 2Virtue website template preview detail 3

Virtue is a bold, flat marketing agency site that speaks entirely in capitals. It feels like a Swiss-style print layout on white paper: black uppercase Instrument Sans, a lot of empty space, square corners everywhere, and one loud electric blue that floods the hero visual and fills every button. A fine film grain covers the page, so the white reads as paper rather than screen.

Four signatures make it recognisable:

  1. Everything is uppercase. The body rule sets text-transform: uppercase, so nav, headlines, paragraphs, labels and footer are all capitals.
  2. Two-tone headlines. A headline starts in black and finishes in grey: THE DIGITAL / MARKETING / AGENCY. with the middle line in black at 55% (.text-lighter), or OUR PRODUCT BOASTS AN EFFORTLESS THREE STEP ONBOARDING, in black followed by ENSURING YOU CAN… in grey.
  3. Electric blue #002AFF. Square blue buttons with an arrow (GET STARTED ↴) and a full-width blue 3D visual under the hero. No other colour appears in the UI.
  4. Outlined metrics. Big numbers (7,000+, 10, 5,5M) are drawn as thin black outlines with a transparent fill, on a grey #F7F7F7 band.

Colors

Surfaces

canvas#FFFFFF

Page background

surface-1#F7F7F7

The metrics band, inset about 10px from the viewport edges

inverse-canvas#040404

Footer

Ink

on-primary#FFFFFF

Text on primary

ink#040404

Headlines, nav, labels (--main-color)

ink-muted#040404 · 60%

Paragraphs: the base p rule sets opacity .6

on-media#FFFFFF

Text on photos and video

inverse-ink#FFFFFF

Text on inverse-canvas

inverse-ink-muted#FFFFFF · 60%

Footer column titles

Action

primary#002AFF

Every main button (with a 2px #002AFF border), icon buttons on cards, the hero visual

primary-hover#222222

.button:hover background (CSS)

Lines & effects

headline-muted#999999

The grey second half of two-tone headlines and the cart count

line#000000 · 15%

1px rules; the step dividers are 1px columns with a white–black–white gradient

outline#040404

The 1px stroke of the outlined metric numbers

scrim#000000 · 40%

.hero-overlay on service card photos under white text

inverse-field#242424

Footer newsletter field, with a paper-plane icon at 15px

inverse-button#000000

Footer subscribe button; hover goes to #080425

inverse-button-hover#080425
inverse-button-ink#D9DAE2

Text on inverse-button

Typography

Instrument Sans · display-metric

The quick brown fox jumps

Outlined metric numbers (transparent fill, 1px black stroke). 120px · 600 · 1

Instrument Sans · headline-md

The quick brown fox jumps

Two-tone statements (OUR PRODUCT BOASTS…, WE'VE DONE THE MATH…). 33px · 600 · 1.4

Instrument Sans · title-xl

The quick brown fox jumps

Page and section titles (.main-page-title). 29px · 600 · 1.4

Instrument Sans · body-xl

The quick brown fox jumps

Service card text over photos. 25px · 500 · 1.4

Instrument Sans · label-nav

The quick brown fox jumps

Nav links, input text. 17px · 600 · 1.5

Instrument Sans · eyebrow

The quick brown fox jumps

Tag text next to an 8px black dot. 14px · 600 · 1.1

Spacing & shape

PurposeValue
Containermax 1240px, centred
Section rhythm200px top and bottom, which is very airy; 100px at ≤991px and below, side padding stays 3%
Breakpoints991px, 767px and 479px, plus min-width rules at 768, 1280 and 1920px

Spacing scale

TokenValuePreview
xxs3px
xs10px
sm20px
md30px
lg40px
xl100px

Layout spacing

TokenValuePreview
gutter43px
hero-top80px
section-video120px
section200px

Border radius

xs2px
sm9px
dot100px
full9999px

Surfaces

How the surfaces stack, from the page background up. Hex codes and roles are in Colors above.

Level 1canvas
Level 2surface-1

Motion

Headline line revealLines in overflow-hidden masks move y 150% → 0% and un-skew skewY 15° → 0°, 700ms outExpo
Fade-inopacity 0 → 1 with x/y → 0, 1000ms outQuart
Slide-inx −30px → 0 500ms outQuart, or x 30px → 0 800ms outExpo
Risey 10% → 0% over 500ms
Nav text rollLabel moves y 0 → −100% while a copy rises, 500ms
Button arrow nudgex 3px, y −3px and back, 300ms ease
Size changesSize 300ms ease (eight elements) and 500ms
RotateRotate 500ms on seven elements
Menu iconLottie 0 → 100 over 600ms
Button colourbackground-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1)

Do’s and don’ts

  • Set all text in uppercase Instrument Sans, headings and paragraphs at weight 600.
  • Split long headlines into a black #040404 first half and a #999999 second half, ending with a full stop.
  • Use #002AFF square buttons with a 2px border of the same blue and a hook arrow after the label.
  • Keep every corner square: buttons, inputs, cards and images at 0px.
  • Give sections 200px of vertical padding and leave wide empty areas beside headlines.
  • Draw large metrics as 1px black outlines on the #F7F7F7 band.
  • Use #999999 for paragraphs or labels; it is 2.8:1 on white. The template keeps it to headline sizes and the one-digit cart count.
  • Add rounded corners, shadows or blur.
  • Use blue for headlines or backgrounds beyond the hero visual.
  • Mix in lowercase or sentence case, or add a second typeface (Space Grotesk is loaded but unused).
  • Set paragraphs in full black; they are black at 60%.
  • Use saturated photos without the 40% scrim when text sits on them.

Example prompt

Any page in the Virtue style

Prompt
Build your page in the Virtue style. White background with a fixed film-grain overlay. Use Instrument Sans in uppercase for all text. The hero headline is 6.5vw (94px at 1440), weight 600, line height 1.2, tracking −1px, with the middle line in black at 55% opacity and a full stop at the end. Statements are 33px weight 600, line height 1.4, black #040404 for the first half and #999999 for the second. Paragraphs are 18px weight 600 at 60% black. Buttons are #002AFF with a 2px #002AFF border, white 16px weight-600 labels, square corners, 54px tall, padding 15px 20px, and a "↴" arrow. Container 1240px, 3% side padding, 200px section padding. No radius, no shadows. Put metrics on a #F7F7F7 band as 120px outlined numbers (transparent fill, 1px black stroke). Headlines reveal line by line: y 150% → 0 and skewY 15° → 0, 700ms outExpo.

More design systems like this

Marketing design systems, the same colors first.

Browse all 398

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 Access