Nightshade’s typographic system pairs three Google Fonts families — each chosen for a distinct register of the witch-portfolio voice. Cormorant Unicase lends formal arcane authority to headings, Lora gives body text a literary warmth, and JetBrains Mono grounds technical labels in terminal precision. Together they form a hierarchy that is immediately legible while remaining atmospherically dark.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/apursley2012/nightshade/llms.txt
Use this file to discover all available pages before exploring further.
Google Fonts Import
All three families are loaded from a single Google Fonts request at the top ofassets/main.css. The display=swap parameter ensures text renders in a system fallback font while the custom fonts download, preventing an invisible flash of content.
The
@import in assets/main.css is written without a url() wrapper —
@import"https://..." — which is valid CSS but easy to miss when reading
minified output. Both syntaxes are equivalent in all modern browsers.Font Families
Cormorant Unicase — Headings
Cormorant Unicase is applied to all heading elements. Its unicase letterforms — where uppercase and lowercase glyphs share the same cap-height — give section titles a carved-into-stone quality that suits the arcane theme. Weights 400, 600, and 700 are loaded; the base heading weight is 400 with a slight positive letter-spacing..font-heading to apply this family to any element outside of h1–h6 — for example navigation labels, drop-caps, or decorative pull-quotes.
Lora — Body Text
Lora is the default body font set on thebody element. It is a contemporary serif with strong stroke contrast, well-suited to long-form reading on dark backgrounds. Five variant axes are loaded: three upright weights (400, 500, 600) and two italic weights (400, 500) for emphasis within running text.
cursor: none declaration on body suppresses the native OS pointer across the entire document. This is intentional — Nightshade renders a custom FamiliarCursor component that replaces the system cursor with a spring-physics familiar sprite. If you remove or override cursor: none, the native cursor will render on top of the custom one.
Use .font-body on any element where you want to explicitly restore Lora — for example inside a card whose parent has had .font-code applied.
JetBrains Mono — Code and Labels
JetBrains Mono is applied tocode and pre elements and is used for status badges, category chips, and incantation-tooltip labels throughout the portfolio. Both weights (400 regular and 700 bold) are loaded. The base font-size is reduced to 0.875rem (text-sm) to maintain visual balance with the larger Lora body text.
.font-code to apply monospace styling to any non-code element.
Font-Family Utility Classes
The three compiled utility classes mirror the semantic assignments above and can override the inherited family on any element.| Class | Font Family | Fallback |
|---|---|---|
.font-heading | Cormorant Unicase | serif |
.font-body | Lora | serif |
.font-code | JetBrains Mono | monospace |
Type Scale
The following sizes are used across the UI. All sizes are Tailwind utility classes compiled from the default scale unless marked as arbitrary.| Size | Tailwind Class | Typical Use |
|---|---|---|
| 10px | .text-[10px] | Incantation tooltips, micro labels |
12px / xs | .text-xs | Code labels, metadata, category chips |
14px / sm | .text-sm | Subtitles, captions, code baseline |
18px / lg | .text-lg | Body text, descriptions, timeline entries |
24px / 2xl | .text-2xl | Section subheadings |
48px / 5xl | .text-5xl | Page titles |
72px / 7xl | .md:text-7xl | Hero headline (medium breakpoint and up) |
md:text-7xl class is responsive — on viewports narrower than 768px the hero headline falls back to a smaller compiled size to remain within the viewport.
Letter Spacing
Most heading text uses.tracking-widest (letter-spacing: 0.1em) to widen the Cormorant Unicase letterforms into the open dark space of the layout, reinforcing the arcane aesthetic. Secondary text — navigation labels and metadata — uses .tracking-wider (0.05em) for a subtler expansion.
Drop-Cap Styling
Blog post body text uses Tailwind’sfirst-letter: and first-line: variant prefixes to create a traditional illuminated-manuscript drop-cap effect. The first letter floats left, scales up to text-6xl, switches to the heading font in amber, and the first line of the paragraph is set in all-caps with widest tracking.
leading-[0.8] arbitrary value pulls the oversized first letter up tight against the cap-line of the second line, preventing a gap that would break the column rhythm.