These docs are a work in progress and may not be fully up to date. Some pages may contain internal notes for our team.
Skip to Content
CustomizationTypography customization

Typography customization

The Typography section of the Finder Builder lets you pick a body font, a heading font, and a base text size. These choices flow into every rendered element of the visitor-facing widget through CSS custom properties.

For the full Design section overview, see Customization overview. For colors and themes, see Themes and Custom colors.

Where to find it

In the Finder Builder, open the Design section in the left sidebar and scroll to the Typography subsection. Two font dropdowns and one size slider are grouped there.

🟡 [SCREENSHOT: The Typography subsection in the Finder Builder sidebar, showing the Body font and Heading font dropdowns with “DM Sans” selected in both, and the Base size slider set to 15px.]

Available fonts

The builder offers seven choices for both the body font and the heading font:

FontClassification
DM SansGeometric sans-serif — friendly, modern, neutral
InterHumanist sans-serif — technical, highly legible at small sizes
Space GroteskGeometric sans-serif — distinct character, code-adjacent feel
Plus Jakarta SansHumanist sans-serif — warm, corporate-friendly
IBM Plex SansNeo-grotesque sans-serif — structured, professional
Source Sans 3Humanist sans-serif — open, highly readable
System fontPlatform-native stack (system-ui, sans-serif) — no external font request

Body font and heading font are independent — you can pair the same font across both or mix intentionally (for example, a display-weight geometric for headings, a neutral sans for body copy).

Font delivery

🔴 [NEEDS CLARIFICATION: Confirm whether the widget dynamically injects a Google Fonts <link> for the selected body/heading fonts at runtime. The current Reset.svelte hardcodes a single Google Fonts request for DM Sans, DM Mono, and Instrument Serif only. Selecting Inter, Space Grotesk, or other non-DM-Sans fonts from the builder dropdown may rely on the host page already loading those fonts or on system font fallbacks. This affects the accuracy of font rendering outside of DM Sans.]

What is confirmed:

  • The widget always issues a Google Fonts request for DM Sans (weights 400, 500, 600, 700), DM Mono, and Instrument Serif at mount time.
  • If you select a non-DM-Sans font (e.g. Inter, Space Grotesk), that font is set as the CSS font-family declaration. If the font is not available in the visitor’s browser or loaded by the host page, the browser falls back to Inter, then ui-sans-serif, then system-ui.
  • The System font option (system-ui, sans-serif) never makes an external font request. It is the most performant choice.

DM Sans is the safest default

DM Sans is the only font guaranteed to render exactly as designed across all visitor environments, because it is always fetched by the widget. All 16 built-in color presets are tested and tuned against DM Sans.

Base size

The base size slider controls the root font-size of the widget in px. All widget text is sized relative to this value — changing it scales the entire widget up or down proportionally.

ValueCharacter
12 pxCompact — suits dense layouts or small embed containers
14 pxSlightly smaller than default — good for data-heavy layouts
15 pxFactory default
16 pxStandard body-text size — good match for most brand type scales
18–20 pxGenerous — suits large-format or accessibility-first designs

💡 Tip: Match the base size to your host page’s body font size for a seamless embed. Most consumer sites use 15–16 px. If the widget looks “too small” or “too big” relative to surrounding content, adjust this first before changing anything else.

Heading scale

🔴 [NEEDS CLARIFICATION: Confirm the exact heading scale multipliers (h1, h2, h3 in rem units relative to the 62.5% root size set in Reset.svelte). The base CSS sets font-size: 62.5% on #finder-app, so fontSizeBase overrides the root font-size and all rem-sized headings scale with it — but the exact rem values per heading level aren’t enumerated in the current digest. Confirm before documenting the scale table.]

Practical pairings

Body fontHeading fontVibe
DM SansDM SansClean, neutral — works with any brand
Source Sans 3Space GroteskOpen body, distinctive headlines
IBM Plex SansIBM Plex SansStructured, technical, enterprise
InterInterHigh legibility — data-heavy or compact layouts
System fontSystem fontInvisible by design — blends into native UI

Editorial layouts

Certain layout modes expose an additional editorial font slot for pull-quote or hero typography. That slot defaults to "Instrument Serif" — a variable-weight serif loaded alongside DM Sans. It does not appear in the standard Typography dropdowns; it is controlled via the editorial layout settings.

What gets affected

The fonts and base size you set apply to every element in the visitor widget: search bar, result list, location detail card, tags, map tooltips, and refinement chips. There is no element-level font override in the UI — if you need per-element control, target the CSS custom properties listed above in your host page’s stylesheet.

CSS variables (for advanced use)

The fonts are exposed as CSS custom properties on #finder-app:

VariableSet from
--finder-body-fontBody font selector
--finder-heading-fontHeading font selector
--finder-button-fontMirrors body font
--finder-tag-fontMirrors body font
--finder-font-size-baseBase size slider

Host-page CSS cannot override these after mount without !important because the widget sets them inline on the root element.

Where to next