Seven colors, six text styles, one spacing slider. Every dashboard and storymap in your organization picks it up — while editing, in preview, and published.

The builder — tokens on the left, the production storymap renderer on the right
A theme in OrbGIS is deliberately small: seven colors, a five-step map-and-chart ramp, six text styles, a border radius and a spacing scale. Everything else — borders, separators, text on buttons, the chart palette — is derived from those choices. You can't forget to style something, because there's nothing left to forget.
The builder previews your theme on the real thing. Not a mockup — the actual production dashboard and storymap renderers, filled with sample content about a growing Swedish region: "En växande region i förändring", population bars for Stockholm, Göteborg and Malmö, a choropleth painted with your ramp. Flip between storymap and dashboard, desktop, tablet and mobile. Seven WCAG 2.1 contrast checks run as you pick colors, each with its ratio and a hint about what to fix. When one fails, an amber "Low contrast" pill floats over the preview until you deal with it.
Themes live in an org-wide library and propagate live. Items store a snapshot, but every render path resolves the current library version first — update a theme and everything using it restyles, published pages included. Unthemed items follow the org default automatically. Individual items can override colors, font, radius or spacing without leaving the theme. And an admin can point the entire portal at a theme under Admin → Settings → Portal Appearance — pick a dark theme and the whole interface inverts with it.
Primary, accent, background, surface, heading, body, muted. Borders, separators, on-button text and the chart palette are computed from those — so a theme can't half-apply.
The preview pane runs the real dashboard and storymap components with fixture content, in a browser frame or device frame for desktop, iPad and mobile. What you see is what publishes, because it's the same code.
Seven WCAG 2.1 checks — body on background, white on primary, accent on background and so on — each with its ratio and a fix hint. Failures also surface as a "Low contrast · N:1" pill floating over the preview.
Six text styles, Heading 1 through Button. You set the desktop size; tablet and mobile are derived by formula and marked AUTO. Edit one and it becomes CUSTOM, with a per-value reset.
The five-step map-and-chart ramp is laddered from your primary in OKLCH. Choropleths and chart palettes use it automatically. Flip Auto off to hand-pick the steps.
Twelve catalog fonts from Inter to Playfair Display, or upload .woff2, .woff, .ttf or .otf files up to 5 MB. Uploaded fonts travel inside the theme itself, so public viewers render them with no extra setup.
Point the app chrome at a theme under Admin → Settings → Portal Appearance. The chrome keeps its designed contrast ladders and takes your hue — a dark theme inverts the entire interface instead of breaking it.
Open Themes in the main nav. The card grid shows live mini-previews and usage counts for every theme. Duplicate the built-in OrbGIS Default — or any existing theme — and rename it.
Four panels. Colors come with OKLCH readouts and the auto-generated ramp. Typography is one default font plus per-style overrides. Radius runs from none to 24 px; spacing is a five-stop slider.
The live preview renders a sample storymap and dashboard — Swedish region report and all — across desktop, tablet and mobile. Contrast warnings appear as you pick, not after you ship.
Every unthemed dashboard and storymap follows the org default automatically. Themed items resolve the live version, so later edits propagate everywhere. The odd one out gets per-item overrides.

No demo call. No sales funnel. Just sign up and start mapping.