Guidelines

Typography

Grotzec for the big statements, Suisse for everything people read, an editorial serif for the voices of others. Every piece of type on a Builtwell page is one of the classes below.

Families

Four families, each with one job. Loaded with next/font in packages/design-system/lib/fonts.ts.

FT Grotzec Poster

X Condensed Bold, 700

display-2xl only. The poster voice, for the one line a page is remembered by.

FT Grotzec Condensed

Condensed Bold, 700

Big headings in uppercase: display-xl to display-md, h1, h2, menu and footer links.

Suisse Intl

Light 300, Regular 400

Everything people read: h3 to h6, every paragraph size, the interface. The body's default.

PP Editorial New

Light, 300

quote-serif only. Testimonials and pull quotes.

Code, tokens and file paths use IBM Plex Mono, through font-mono.

Type scale

Every size is fluid: it grows in a straight line from the 390px viewport to 1920px, so there is nothing to set per breakpoint.

Display

Poster sizes in Grotzec, uppercase. One per section at most.

f-display-2xl

104 → 264px

The poster. One per page at most: the home hero, a campaign opener.

Builtwell

f-display-xl

80 → 200px

A statement that fills the width: a section opener on a landing page.

Brand, web, marketing

f-display-lg

56 → 168px

Big numbers and short statements inside a section.

Built to last

f-display-md

56 → 128px

The smallest poster size: stats, price headlines.

$12,000 value

Headings

h1 and h2 are Grotzec Condensed, uppercase. From h3 down, headings are Suisse Light in sentence case; paired classes (h3-h5) name their desktop and phone sizes.

f-h1

56 → 104px

The page title. One per page.

Design that does the work

f-h2

40 → 80px

Section titles. Condensed and uppercase, like the h1, a step down.

Selected work

f-h3

36 → 64px

The first reading heading: an intro line, a feature title.

A modern website designed and built to perform.

f-h3-h5

28 → 64px

An h3 on desktop that relaxes to h5 on a phone, for long headings.

We uncover your story and hand you a brand system you can use.

f-h3-h6

24 → 64px

An h3 on desktop that drops to h6 on a phone, for tight columns.

Original photos of products, people and lifestyle.

f-h4

32 → 56px

Pull statements between sections, set light.

Your website is the only digital space you truly control.

f-h5

28 → 40px

Card and section subtitles; the docs' own section titles.

Branding, websites and marketing

f-h5-h7

22 → 40px

Card titles that shrink on a phone: project names in a grid.

Raíces, a heritage brand

f-h6

24 → 32px

The smallest heading: list titles, a plan name in a pricing table.

In-house-like, $4,500 a month

Paragraphs

Suisse for everything people read. Light down to p-base, Regular for the small sizes so they hold up.

f-p-xl

28 → 38px

A lead that is almost a heading: the first line of a case study.

A heritage brand plants deep roots to cultivate authentic connections.

f-p-lg

19 → 32px

Leads under a page title.

Branding isn't a logo, a colour palette or a tagline. It's the feeling people get when they think about you.

f-p-md

19 → 26px

Long-form reading: articles, case study text, docs leads.

Competitors can copy your features and undercut your price. They can't steal your story.

f-p-base

18 → 22px

Default body copy in blocks.

A fast push to give your idea a clear face: a logo, colours and lightweight guidelines to launch quickly.

f-p-sm

16 → 18px

Secondary copy, card descriptions, UI text in the docs.

Your designer on call every month: site updates, content and quick-turn projects, without hiring.

f-p-xs

15 → 16px

Captions, eyebrows, labels, legal copy.

Raíces · 2024 · Branding

f-p-2xs

14px

Interface text: sidebars and dense lists. Matches shadcn's text-sm.

Overview · Buttons · Dialog · Select

Navigation and quotes

Condensed links for the menu and footer, and the serif, which only ever sets a quote.

f-menu

22 → 24px

Primary navigation and the full-screen menu.

Work Services About

f-footer-link

28 → 64px

The big links in the footer.

f-quote-serif

28 → 56px

Testimonials and quotes. The only place the serif appears.

We're a small studio that loves working with founders who care about craft.

Sizes at a glance

Every typeset at the phone, tablet and desktop widths, in px, from frontend.config.json.
ClassFamilyMobileTabletDesktop
f-display-2xlFT Grotzec Poster104170264
f-display-xlFT Grotzec Condensed80130200
f-display-lgFT Grotzec Condensed56102168
f-display-mdFT Grotzec Condensed5686128
f-h1FT Grotzec Condensed5676104
f-h2FT Grotzec Condensed405780
f-h3Suisse Intl364864
f-h3-h5Suisse Intl284364
f-h3-h6Suisse Intl244164
f-h4Suisse Intl324256
f-h5Suisse Intl283340
f-h5-h7Suisse Intl222940
f-h6Suisse Intl242732
f-menuFT Grotzec Condensed222324
f-footer-linkFT Grotzec Condensed284364
f-p-xlSuisse Intl283238
f-p-lgSuisse Intl192432
f-p-mdSuisse Intl192226
f-p-baseSuisse Intl182022
f-p-smSuisse Intl161718
f-p-xsSuisse Intl151516
f-p-2xsSuisse Intl141414
f-quote-serifPP Editorial New284056

Using the classes

Name the role, never the size. A class carries family, size, leading, tracking and case together, so they can't drift apart.
<h1 className="f-h1">Design that does the work</h1>
<p className="f-p-lg text-muted-foreground">
  A modern website designed and built to perform.
</p>
<blockquote className="f-quote-serif">…</blockquote>

className="f-h1 text-bw-black"

DoOne class from the scale, plus colour if it needs it.

className="font-condensed text-6xl uppercase"

Don'tRebuilding a heading from a family and Tailwind sizes. It stops being fluid and drifts from the scale; bracketed values fail the no-arbitrary-type lint.

Rules

  • Grotzec (poster and condensed) is only for big headings: display-*, h1, h2, menu and footer links. Never for paragraphs, labels or UI text.
  • Use the classes. No Tailwind text sizes, and no bracketed size, leading or tracking values.
  • Write copy in sentence case; the classes that need capitals set them.
  • One display-2xl per page at most. It is the poster, not a heading level.
  • quote-serif is for quotes and testimonials only.
  • Pick the class for the look and the element for the outline: an h2 element can wear h5.