SparkyData

Styles

The same site, twelve ways. Pick one and every page switches to it — the choice is remembered in this browser only, and nobody else sees it. Each style is built to show off a different set of techniques, listed on its card.

A floating control appears bottom-right while a style is active, so you can cycle with ‹ › from any page and reset with ×. Dark mode follows your system setting in every style.

SparkyData

Synthetic populations

All models are wrong; some are useful.

Read

Classic

The current look: warm off-white, one orange accent, system fonts, quiet.

Type: System UI

  • CSS custom properties as design tokens
  • light-dark() palette
  • system font stack (zero font bytes)
SparkyData

Synthetic populations

All models are wrong; some are useful.

Read

Editorial

Long-form first, in the manner of Medium and the better magazine sites: a serif at reading size, generous leading, a narrow measure, headings in a display face.

Type: Source Serif 4 · Playfair Display

  • Self-hosted variable fonts (Source Serif 4, Playfair Display)
  • text-wrap: pretty / balance
  • ::first-letter drop cap
  • font-variant-numeric
SparkyData

Synthetic populations

All models are wrong; some are useful.

Read

Swiss

International Typographic Style. A visible grid, enormous headlines, flush-left everything, one red, no decoration.

Type: Inter

  • CSS grid with subgrid
  • fluid type with clamp()
  • text-wrap: balance
  • background-image grid lines
SparkyData

Synthetic populations

All models are wrong; some are useful.

Read

Brutalist

Raw and loud: hard black borders, offset shadows, a highlighter yellow, no rounded corners anywhere.

Type: Space Grotesk

  • Hard box-shadow offsets
  • mix-blend-mode highlights
  • uppercase tracking with letter-spacing
  • :hover transforms
SparkyData

Synthetic populations

All models are wrong; some are useful.

Read

Terminal

A phosphor-green console. Monospace everywhere, a scanline overlay, prompts before headings, a blinking cursor.

Type: JetBrains Mono

  • Pseudo-elements for prompts and cursor
  • repeating-linear-gradient scanlines
  • CSS keyframe animation
  • prefers-reduced-motion respected
SparkyData

Synthetic populations

All models are wrong; some are useful.

Read

Glass

Glassmorphism over a slowly moving aurora: frosted translucent panels, soft borders, rounded everything.

Type: Inter

  • backdrop-filter: blur()
  • @property typed custom properties animated
  • color-mix() translucency
  • cross-document view transitions
SparkyData

Synthetic populations

All models are wrong; some are useful.

Read

Soft

Neumorphism: everything extruded from one warm grey surface with paired light and dark shadows; pressed states sink inward.

Type: Nunito

  • Layered box-shadow (outer + inset)
  • :has() state styling
  • rounded Nunito
  • transition on active
SparkyData

Synthetic populations

All models are wrong; some are useful.

Read

Bento

A dashboard of tiles. Content becomes a bento grid of boxes of different sizes; big numbers, chips, dense and scannable.

Type: Space Grotesk

  • grid-template-areas
  • container queries (@container) — tiles restyle by their own width
  • aspect-ratio
  • sibling-index() staggered reveal where supported
SparkyData

Synthetic populations

All models are wrong; some are useful.

Read

Broadsheet

A newspaper: a masthead, rules above and below, body copy in two columns on wide screens, drop caps, small caps.

Type: Fraunces · Source Serif 4

  • Multi-column layout (column-count, column-rule)
  • ::first-letter drop caps
  • font-variant-caps: small-caps
  • hyphens: auto
SparkyData

Synthetic populations

All models are wrong; some are useful.

Read

Paper

An academic preprint. Numbered sections, justified text, a narrow single column, figure captions — the LaTeX look, in CSS.

Type: Source Serif 4 · IBM Plex Mono

  • CSS counters for section numbering
  • text-align: justify + hyphens
  • font-feature-settings (old-style figures)
  • print-like measure
SparkyData

Synthetic populations

All models are wrong; some are useful.

Read

Noir

Monochrome and enormous. Black, white, one orange, headlines that fill the viewport, sections that reveal as you scroll.

Type: Inter (tight tracking)

  • Scroll-driven animations (animation-timeline: view())
  • clamp()-fluid display type
  • text-wrap: balance
  • prefers-reduced-motion fallback
SparkyData

Synthetic populations

All models are wrong; some are useful.

Read

Playful

Pastel, rounded and bouncy: big radii, tilted cards that straighten on hover, a spring in every transition.

Type: Nunito

  • transform + transition micro-interactions
  • color-mix() pastel derivation
  • cubic-bezier spring easing
  • cross-document view transitions

How to read these

None of the styles is finished — each is a direction, applied consistently enough to judge across the homepage, an article and the support page. The questions to ask of each: does the white paper read comfortably in it, does the homepage still feel like a data product, and does it survive on a phone. When one wins, it becomes the default and the others are deleted.

Everything here is CSS plus one small script for the switcher. There are no external stylesheets, fonts or scripts: the typefaces are self-hosted variable fonts, so the Content-Security-Policy stays at 'self'.