Skip to main content

ZapInto internals

The Design Framework

Every page on ZapInto answers to the rules on this page. They exist because consistency is a feature: when spacing, type and color behave the same way everywhere, players stop noticing the interface and keep noticing the game. This is a living document — rules are added when the owner rules, never before.

01Tokens

Seven colors, two themes. Five carry the daily work; warm cream and muted gold are rare accents — warmth and prestige, spent on special occasions. The palette is closed, but it is a palette, not a cage.

light theme

  • background#e5e5e5
  • foreground#333333
  • border#c5c5c5
  • light-text#636363
  • primary#C1571C
  • cream#f4e7b6rare
  • gold#b59a4frare

dark theme

  • background#151515
  • foreground#e5e5e5
  • border#353535
  • light-text#999999
  • primary#C1571C
  • cream#f4e7b6rare
  • gold#b59a4frare

02Type: Poppins speaks, Mono counts

Poppins is the voice — every word, label, heading and button. Space Mono exists for one job only: digits. Numbers, dates, counters, scores. If it can be read aloud as a word, it is not mono. Headings are weight 500 — the site speaks, it does not shout.

✓ Right

Best run 2,490 Volts · member since Jul 9, 2026

Words in Poppins, digits in mono.

✕ Wrong

Best run follows you forever

A sentence in mono — the retired habit this law exists to kill.

03Spacing: the 15px rhythm

Stacked full-width rows sit 15px apart. Sections pad 15px on every side, uniformly. Tight inline clusters (chips, icon rows) may use 10px. Nothing earns its size through empty space — a section too empty to fill is a section that needs more to say, not bigger digits.

One full-width row
Fifteen pixels later, the next
And the rhythm holds

04Buttons: 48px, outlined, weight 500

One button, one law: 48px tall, 2px text-color border, transparent body, uppercase Poppins at weight 500, filling on hover. Orange borders are reserved for the one special action of a surface — never more than one per view.

05The orange budget

Primary #C1571C is loud on purpose — emphasis is its whole job, and it should flash where it lands. The budget controls how often it lands, not how bright it is: the selected state, the one special action, a small point of emphasis. What it may not do is bleed — filling banners edge to edge, painting large numerals, framing whole sections. When everything flashes, nothing does. Cream and gold obey the same budget, at even lower frequency.

SelectedUnselectedrecord streak 26 — one small orange fact per surface is plenty.

06Backgrounds: the pattern library

Five named patterns, used one at a time, always subtle. Heroes may layer the ghost Z over a paper; content cards stay plain.

Plus-grid paper
Ruled paper
Gradient grid
Ghost Z
Hazard stripe

07Iconography: curated, never improvised

Icons are Google Material Symbols, each wrapped as a component with currentColor fill. The set is curated by the owner: when a design needs an icon that does not exist yet, it is requested and provided — never hand-drawn, never an emoji, never a unicode stand-in.

stacksboltconquestlandscapediceshuffle

08Frames: border and shadow match

A framed surface pairs its border with an equal shadow: 2px border carries a 2px offset shadow, 4px carries 4px. Never mixed — a heavy throw under a thin line (or the reverse) is how a page starts feeling subtly wrong without anyone knowing why.

09Numbers earn their size

A digit's size must come from its meaning, not from empty space around it. Giant numerals that exist to fill a quiet section are a confession — the section needed more to say. Data gets mono, context gets sentences, and nothing on a page should need a telescope or produce vertigo.

The scale (ruled 2026-07-25): ONE hero figure per page at 40px max · secondary figures 2428px · tertiary 1618px. Donut numbers are drawn inside the graphic and scale with it — exempt from this scale (ruled 2026-07-31).

10Dates and chips are words

Mono is for pure digit tokens only. A date ("Jul 25, 2026") contains a word, so the whole date sets in Poppins. Status chips, mode tags and level pills (Castle, Quiz, ZapCore, Locked) are words in bordered slots — Poppins 500, uppercase, tracked — never mono, never improvised abbreviations when a real name fits ("Zapegory Level 1", not "GEN"). Exception (ruled 2026-07-31): map coordinates ("C:4") count as data tokens and set in mono, letter included.

11Empty sections don't advertise

A section with nothing in it shows its head and one honest sentence — and NO link to its full page, because an empty section's full page is an equally empty dead end. The link earns its place back with the first real row. Catalog pages that are never empty (the badge ladders) keep their links.

Pending rulings

Not yet law — listed here so nobody mistakes habit for rule:

  • The single shared Button component (the law exists above; the one-primitive consolidation is scheduled).
  • Carousel arrows: below-the-strip navigation (ZapFolio) vs side arrows (badge wall) — one language may win later.

Questions about a rule, or a page that seems to break one? Tell us — consistency bugs are bugs.