Spell Index uses a two-font pairing that balances mystical atmosphere with everyday readability. Cinzel — a geometric all-caps serif — carries all headings, labels, and decorative text, evoking the look of engraved stone or illuminated manuscript titles. Inter — a clean humanist sans-serif — handles body copy, descriptions, and prose, keeping longer reading comfortable and screen-friendly. Both are loaded from Google Fonts and exposed as Tailwind utility classes.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/apursley2012/spell-index/llms.txt
Use this file to discover all available pages before exploring further.
Google Fonts Import
Both families are imported at the very top ofmain.css, before any Tailwind directives:
display=swap ensures text renders immediately in a fallback font while the web fonts load, preventing invisible text during page paint.
If you self-host fonts or move to a bundler-level font loader (e.g.,
next/font), remove this @import line. The font-family stacks (Cinzel, serif and Inter, sans-serif) are compiled into main.css — if rebuilding from source you would update them in tailwind.config.js, but that file is not present in this repository’s build output.Font Families
Cinzel
Family:
Cinzel, serifTailwind class: font-cinzelWeights loaded: 400, 600, 700, 900Character: All-caps geometric serif. Inspired by classical Roman inscriptions. Best at large sizes where its proportions can breathe.Use for: Page titles, section headings, navigation labels, skill names, card titles, button labels.Inter
Family:
Inter, sans-serifTailwind class: font-interWeights loaded: 300, 400, 500, 600Character: Neutral, highly legible humanist sans. Optimized for screen rendering at small-to-medium sizes.Use for: Body paragraphs, descriptions, metadata, form inputs, timestamps, tooltip text.body element is set to font-inter by default, so Inter is the fallback for any element that doesn’t explicitly set a font family. You must always add font-cinzel explicitly to elements that need the serif.
Available Weight Classes
Cinzel weights
Cinzel is loaded at weights 400, 600, 700, and 900. The compiled CSS bundle includesfont-semibold (600) and font-bold (700) as the two weight utilities generated from source. Weights 400 (default) and 900 are present in the loaded font file and render correctly, but no separate Tailwind class was emitted for them in the build — apply them via inline style or a custom class if needed:
| Tailwind Class | Weight | Cinzel Use Case |
|---|---|---|
| (default / no class) | 400 | Navigation items, page numbers, light labels |
font-semibold | 600 | Sub-headings, card titles |
font-bold | 700 | Primary page headings (h1, h2) |
Inter weights
Inter is loaded at weights 300, 400, 500, and 600. The compiled CSS bundle emitsfont-semibold (600) and font-bold (700) as weight utilities. Weights 300, 400, and 500 render from the loaded font file at their default values — no separate Tailwind weight class was emitted for them in this build:
| Tailwind Class | Weight | Inter Use Case |
|---|---|---|
| (default) | 400 | Standard body copy, paragraphs |
font-semibold | 600 | Data labels, tag chips, strong UI labels |
Letter-Spacing Utilities
Cinzel especially benefits from generous letter-spacing. The following tracking utilities appear in the compiled CSS and are used across the app:| Tailwind Class | CSS Value | Usage |
|---|---|---|
tracking-tighter | -0.05em | Decorative large display text where default spacing feels loose |
tracking-wider | 0.05em | Sub-headings, relaxed label spacing |
tracking-widest | 0.1em | uppercase subtitle lines — the most common Cinzel + Inter pattern |
tracking-[0.2em] | 0.2em (arbitrary) | Hero subtitles that need extra air, e.g. "The Developer Known As" |
uppercase Inter subtitle with tracking-widest, rendered in teal/60:
Heading vs Body Patterns
Primary page heading
Every route uses a Cinzelh1 in amber at text-4xl / md:text-5xl:
Card / section heading
Secondary headings drop totext-2xl or text-xl and use parchment or amber depending on the surface:
Skill / list label
Cinzel bold is used for data labels like skill names and page-turn controls:Body paragraph
Inter attext-lg or text-sm with leading-relaxed is the standard prose pattern:
Italic quote / caption
Italic Inter appears for incantation text and pull quotes:Metadata / timestamp
Small Inter text in a dimmed parchment or teal provides supporting context without competing with headings:Font in the SpellBook Component
The SpellBook component flips between a dark (ink) outer cover and a light (parchment) inner page. Typography adapts accordingly — Cinzel flips from text-amber outside to text-ink inside, maintaining contrast on both surfaces: