Brand Guidelines

Typography

Semji pairs two Google fonts: Rubik for the interface and body copy, and Montserrat for display headings. They’re wired through the theme as font-sans and font-display, so you rarely set a family by hand — just pick a size and weight.

Aafont-sans

Rubik

Primary typeface — UI, body copy, everything by default.

The quick brown fox jumps over the lazy dog. 0123456789

Aafont-display

Montserrat

Display typeface — large headings & hero moments only.

The quick brown fox jumps over the lazy dog. 0123456789

Type scale

A small, deliberate set of steps. Rendered live below — match the utility classes to keep the rhythm.

Content that performs

Displaytext-4xl font-display font-bold

Create, optimise, rank

Heading 1text-2xl font-display font-bold

Built on a live SERP analysis

Heading 2text-xl font-semibold

Configure your Brand Voice

Heading 3text-base font-semibold

Generate a complete, SEO-ready draft in minutes — then review and refine.

Body largetext-base

Semji ties every piece of content to a score you can act on.

Bodytext-sm

Last analysed 3 days ago

Caption / labeltext-xs

Sizes shown as font-size / line-height in px.

Weights

Rubik ships 300–700; Montserrat is loaded at 400 and 700. Use weight — not size — for most emphasis.

Rubik · font-sans

Ag

Light

font-light · 300

Ag

Regular

font-normal · 400

Ag

Medium

font-medium · 500

Ag

Semibold

font-semibold · 600

Ag

Bold

font-bold · 700

Montserrat · font-display

Ag

Regular

font-normal · 400

Ag

Bold

font-bold · 700

Pairing & usage

Keep the two fonts in their lanes and the hierarchy clear.

Do

Reserve Montserrat (font-display) for large display headings and hero text.

Use Rubik for every heading below H1, all body copy, labels and UI.

Create hierarchy with size + weight + colour — not with more fonts.

Keep body copy at text-sm/text-base with relaxed line-height for readability.

Don’t

Set body or long paragraphs in Montserrat — it’s a display face.

Introduce a third typeface or swap in system fonts for “personality”.

Stack many sizes per screen; lean on the scale above.

Use light weight (300) for small text — it fails on low-contrast surfaces.

On the web

How the fonts are wired in this app — reach for the tokens, not raw families.

Loaded with next/font

Rubik & Montserrat are self-hosted via next/font/google and exposed as CSS variables (--font-rubik / --font-montserrat) — no layout shift, no external request.

Use the tokens

The theme maps them to --font-sans (Rubik, the default) and --font-display (Montserrat). Apply font-sans / font-display rather than naming a family.