Sign in

Typography

Typography is the backbone of the Auva brand. We use a carefully selected trio of fonts that balance personality with readability.


Font Families

FontCSS VariableUsage
DM Sans--font-dm-sansBody text, UI labels, navigation
Fraunces--font-frauncesHeadlines, brand name, section titles
Source Serif 4--font-source-serifLong-form editorial, legal pages

Loading

All fonts are loaded via next/font/google with display: "swap":

text
import { Fraunces, DM_Sans, Source_Serif_4 } from "next/font/google";

const fraunces = Fraunces({
  subsets: ["latin"],
  variable: "--font-fraunces",
  display: "swap",
});

const dmSans = DM_Sans({
  subsets: ["latin"],
  variable: "--font-dm-sans",
  display: "swap",
});

const sourceSerif = Source_Serif_4({
  subsets: ["latin"],
  variable: "--font-source-serif",
  display: "swap",
});

Type Scale

Headings (Fraunces)

ElementSizeWeightTracking
h1clamp(1.75rem, 7vw, 3.75rem)600 (semibold)-0.02em
h2clamp(1.75rem, 4vw, 2.5rem)600 (semibold)-0.02em
h31.5rem600 (semibold)-0.02em
h41.25rem600 (semibold)-0.02em

Body Text (DM Sans)

ElementSizeWeightLine Height
Body1rem (16px)4001.75
Small0.875rem (14px)4001.5
Caption0.75rem (12px)5001.4
Nav link0.875rem (14px)5001

Text Styling

Letter Spacing

text
body {
  letter-spacing: -0.015em;   /* Global tightening */
}

.font-display {
  letter-spacing: -0.02em;    /* Tighter for headlines */
}

Antialiasing

text
body {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

Rules

Use the CSS custom property var(--font-display) and var(--font-body) instead of referencing font names directly. This makes it easy to swap fonts across the entire ecosystem.