For the agent-readable index of this site, see /llms.txt.

TikTok

TikTok's identity carries the canonical RGB-jitter logo across two distinct register modes — the dark video-platform surface where the magenta-and-cyan dual-hero defines the chrome and the chassis recedes so vertical video can take the full viewport, and the daylight mono marketing register where the multicolor wordmark does the brand work at brand-mark scale only. The catalog reads both.

Cyber Magenta

The TikTok app register: true-black canvas evoking the full-bleed video surface, the canonical TikTok magenta + cyan as the dual-hero RGB-jitter palette that defines the wordmark, the chassis discipline of a video-first platform where the chrome recedes so the content can take the full viewport. The atmosphere stages the surface TikTok users inhabit for hours — black canvas, the magenta-cyan dual that IS the brand-mark, type rhythm tuned for short-form vertical-video overlays. A study in how a video-platform brand made a single RGB-jitter logo into the surface identity of a generation.

Install at runtime

Run this snippet in any browser console where Void Energy is loaded (or paste it into your app's bootstrap). The atmosphere registers with the engine and renders immediately as a temporary preview — it persists in the visitor's preferences only if they Apply it site-wide.

Physics: glass

Mode: dark

Live preview

Two surfaces rendered against the active atmosphere. The hero shows how the brand speaks — display type, conversion chrome, texture. The workspace below shows how it feels in the hand — focus rings, controls, toggle glide, dialog motion. The markup is identical on every brand; the atmosphere's tokens carry every difference.

Rendered live in this atmosphere

Built in minutes. True to TikTok.

Plain Void Energy markup, zero custom CSS — the headline's display weight and tracking, the CTA's comet and pill, and every control below are this brand's tokens doing the talking.

Try the controls

Workspace settings

Welcome back

Configure how you collaborate, then jump back into the channels you were active in.

Search by name or email — Combobox with descriptions.

Notifications

Recent channels

Typography

Headings, body, and signal text rendered against the active atmosphere.

Typefaces

The active heading and body families — brand override first, atmosphere default second.

Heading · --font-heading

Inter

Body · --font-body

Inter


Heading scale

Six levels, each picking up the brand's weight, tracking, and transform tokens.

h1 — TikTok

h2 — Cyber Magenta

h3 — Subsection

h4 — Section header

h5 — Subheading
h6 — Minor subheading

Body & secondary text

Standard reading copy and supporting metadata.

Paragraph — body typography, dim color. Standard readable text for descriptions and content.

Small — small typography, mute color. Used for captions and metadata.

Caption — caption level utility class.


Brand overrides

Beyond the typeface, brand profiles can tune weight, tracking, and text-transform per role. Display covers h1/h2, Heading covers h3/h4, Body covers paragraphs and small text, Button covers all .btn-* labels. Anything not declared inherits from the atmosphere's defaults.

Supported overrides & this brand's values

A brand profile can override 4 weights, 4 trackings, and 3 transforms (Body has no transform — prose never gets uppercased).

  • Display weight (h1, h2) · --weight-display
  • Display tracking (h1, h2) · --tracking-display
  • Display transform (h1, h2) · --text-transform-display
  • Heading weight (h3, h4) · --weight-heading 700
  • Heading tracking (h3, h4) · --tracking-heading
  • Heading transform (h3, h4) · --text-transform-heading
  • Body weight (p, small) · --weight-body
  • Body tracking (p, small) · --tracking-body
  • Button weight (.btn-*) · --weight-button
  • Button tracking (.btn-*) · --tracking-button
  • Button transform (.btn-*) · --text-transform-button

Palette & shape

The color palette, corner geometry, and motion curves under the active atmosphere. Atmospheres change the values; the architecture never moves.

Energy — Brand axis

The two colors that change most per atmosphere. Primary drives CTAs, focus rings, and active states. Secondary sweeps through the CTA's comet border alongside primary, tints button hover and press feedback, and — in dark mode — paints the resting toggle thumbs in the preview.

energy-primary
energy-secondary

Surfaces

Background layers from the depth model. Canvas is the floor — sunk and spotlight are its recess and ambient variants. Surface is where floating elements live. Every tile carries --border-color at var(--physics-border-width), so the border tier is visible on each outline.

bg-canvas
bg-sunk
bg-spotlight
bg-surface

Signal — Text hierarchy

Three emphasis levels for information hierarchy.

Main Dim Mute

Color extensions

Two additional palettes layered on top of the five-layer system. Semantic colors hold steady by design; the data palette derives from primary, so it re-hues with every brand.

Semantic — four signal colors whose meaning never moves: success is green and error is red on every brand, so users learn them once. Premium (also the warning tier) and system (the feature accent) are the deliberately tunable pair — roughly 40 catalog atmospheres re-tune premium and 15 re-tune system when their energy hues would clash, while none move success or error.

Success

Positive outcome

Error

Destructive, failure

Premium

Attention, cost

System

Informational

Data — 8 categorical slots hue-rotated 45° per step from --energy-primary in OKLCH, so the strip below re-hues with every brand: cool atmospheres yield cool-leaning palettes, warm yield warm-leaning. Use for chart series, chips, tags, kanban columns, avatar fallbacks, and calendar categories — anywhere unrelated-by-severity data needs distinct identity. Not for severity (data-3 means "third slot," not "success"). Auto-contrast handles text color on any bg-data-* tile.

data-1
data-2
data-3
data-4
data-5
data-6
data-7
data-8

Radii — corner geometry

All five radius levels, rendered with the active atmosphere's tokens. Brand-overridden values are emphasized.

--radius-sm 2px
--radius-md 4px
--radius-lg 6px
--radius-xl 8px
--radius-full

Motion

Brand profiles can also override the system's speeds and easing curves. The square below uses --speed-slow and --ease-spring-snappy — both carried by the brand axis when set, otherwise inherited from the active physics preset. Hover the demo to play.

Supported overrides & this brand's values

A brand profile can override 3 speed levels and 4 easing curves. Anything not declared inherits from the active physics preset (glass / flat / retro). Cascade delays (--delay-cascade, --delay-sequence) are physics-only and not part of the brand axis.

  • Fast · --speed-fast 140ms
  • Base · --speed-base 220ms
  • Slow · --speed-slow
  • Flow · --ease-flow
  • Spring (gentle) · --ease-spring-gentle
  • Spring (snappy) · --ease-spring-snappy cubic-bezier(0.2, 0, 0, 1)
  • Spring (bounce) · --ease-spring-bounce