Skip to content

Mission of the day is live

Orblings

Living style guide · First orbit

Orbit, white.

A quiet white page: one near-black ink, hairline borders, generous round corners, one amber action colour used sparingly, thin gold orbit lines as the signature, and six pastel colours that belong to the pets.

Colour

Twenty-one tokens in globals.css, mirrored in tokens.ts for the share card. Ratios are computed at render time from CONTRAST_PAIRS.

Surfaces

  • --shelf#FFFFFF

    The white page, themeColor, share-card background

    • ink on shelf18.66
    • ink-2 on shelf9.73
    • ink-3 on shelf5.55
  • --peg#ECE8E1

    Orbit lines and faint texture (often at low opacity). Decorative only; every text colour still passes AA over it

    • ink on peg15.28
    • ink-2 on peg7.96
    • ink-3 on peg4.55
  • --card#FFFFFF

    Surfaces: cards, inputs, header, footer, menus; the glyph on ink, success and danger fills

    • card on ink18.66
    • card on success5.38
    • card on danger5.59
  • --tray#F7F5F1

    Inset surfaces: quiet panels, table header row, row hover, neutral chips, disabled fill, tracks

    • ink on tray17.14
    • ink-2 on tray8.93
    • ink-3 on tray5.10
  • --line#E6E1D9

    Hairline borders and dividers. Decorative only, never the only boundary of a control


Ink

  • --ink#15120F

    Headings, primary text, links, the label on amber, active tab and ink chip fill, rank tiles

    • card on ink18.66
  • --ink-2#4A433C

    Body copy, inactive nav, neutral chip text

    • ink-2 on shelf9.73
    • ink-2 on peg7.96
    • ink-2 on tray8.93
  • --ink-3#6F675F

    Captions, kickers, placeholders, table heads, dashed empty-slot outlines, disabled text

    • ink-3 on shelf5.55
    • ink-3 on peg4.55
    • ink-3 on tray5.10

Action

Amber (token name cobalt) is the only action colour, used sparingly: fills, rings and underlines, never text. The label on it is ink.

  • --cobalt#E4650A

    Amber, the action colour: one primary button per view, link underlines, focus ring, the active nav dot, slider and XP fill

    • ink on cobalt5.48
  • --cobalt-press#D05B0B

    Primary hover and pressed fill (a deeper amber)

    • ink on cobalt-press4.61
  • --cobalt-soft#FFF1E6

    Selected fill (radio cards, habitat labels), text selection, orb token backing

    • ink on cobalt-soft16.86
    • ink-2 on cobalt-soft8.79
    • ink-3 on cobalt-soft5.02

Status

Readable as text on white and tray; the glyph on a status fill is white.

  • --success#0F7A4B

    Success text, +XP, positive ledger amounts, open status dot, success notice tile

    • card on success5.38
  • --danger#C8233A

    Error text, invalid borders, Retire label, closing-soon text, error notice tile

    • card on danger5.59

Pets

Colour belongs to the pets: specialty chips, orbs, portholes and scenes only. Pastel fills, always with ink text.

  • --pet-writing#F6C9B0

    Peach. Writing chip and orb. Pet things only

    • ink on pet-writing12.35
  • --pet-code#8FE0D0

    Mint. Code chip and orb. Pet things only

    • ink on pet-code12.21
  • --pet-memes#FFA08A

    Coral. Memes chip and orb. Pet things only

    • ink on pet-memes9.46
  • --pet-research#BFC6FF

    Periwinkle. Research chip and orb. Pet things only

    • ink on pet-research11.32
  • --pet-games#FFD66B

    Sun. Games chip and orb. Pet things only

    • ink on pet-games13.40
  • --pet-analysis#D2BBFF

    Lilac. Analysis chip and orb. Pet things only

    • ink on pet-analysis10.92

Derived

Always a color-mix of palette tokens, defined in globals.css only. --glow, --glow-soft and --gold-rim still exist (faint amber and gold tints) but nothing on the page uses them.

  • --depthThe one shadow colour (ink 7 %)
  • --contactContact shadow, light scenes
  • --contact-darkContact shadow, dark scenes
  • --skeletonSkeleton fill on any surface
  • --glossHighlight film on md and xl portholes

Habitat placeholders

The porthole background before a scene decodes: wall over floor, split at 66 % indoors and 52 % outdoors. Scenes stay warm and dark; the page around them is white.

  • Library
  • Workshop
  • Stage
  • Observatory
  • Arcade
  • Counting house
  • Meadow
  • Night roof

Contrast

Every text pair needs 4.5:1 and every boundary, focus ring and glyph 3:1 (WCAG 2.2 AA).

37 pairs computed on this render: 37 pass, 0 fail.
Colour pairs, their contrast ratio and the minimum they need
SamplePairRatio
ink on shelfText, needs 4.5 · Headings, nav, labels, input text, links on the white page and on cards18.66AA
ink on pegText, needs 4.5 · Worst case: a heading over an orbit line15.28AA
ink on trayText, needs 4.5 · Text in quiet panels, table header row, hovered rows, neutral chips17.14AA
ink on cobalt-softText, needs 4.5 · Selected radio-card and habitat label text16.86AA
ink-2 on shelfText, needs 4.5 · Body copy and answers on the page and in cards9.73AA
ink-2 on pegText, needs 4.5 · Worst case: body copy over an orbit line7.96AA
ink-2 on trayText, needs 4.5 · Neutral chip text, body in quiet panels8.93AA
ink-2 on cobalt-softText, needs 4.5 · Body text inside a selected radio card8.79AA
ink-3 on shelfText, needs 4.5 · Captions, kickers, hints, placeholders, table heads5.55AA
ink-3 on pegText, needs 4.5 · Worst case: a caption over an orbit line (lowest text pair)4.55AA
ink-3 on trayText, needs 4.5 · Captions in quiet panels; disabled control text5.10AA
ink-3 on cobalt-softText, needs 4.5 · Captions inside a selected radio card5.02AA
ink on cobaltText, needs 4.5 · Primary button label, info tile glyph5.48AA
ink on cobalt-pressText, needs 4.5 · Primary button label on hover and press4.61AA
card on inkText, needs 4.5 · Active tab, ink chips (Team, House pet), rank tiles, check tile, OG footer strip18.66AA
ink on goldText, needs 4.5 · WIN seal text, level text on a gold pearl8.30AA
success on shelfText, needs 4.5 · +XP, positive ledger amounts, success messages5.38AA
success on trayText, needs 4.5 · Success text in quiet panels and hovered rows4.94AA
card on successText, needs 4.5 · Check glyph in the success notice tile5.38AA
danger on shelfText, needs 4.5 · Error messages, Retire label, near-limit counter5.59AA
danger on trayText, needs 4.5 · Closing-soon chip text, errors in quiet panels5.13AA
card on dangerText, needs 4.5 · "!" glyph in the error notice tile and field-error dot5.59AA
ink on pet-writingText, needs 4.5 · Writing chip text12.35AA
ink on pet-codeText, needs 4.5 · Code chip text12.21AA
ink on pet-memesText, needs 4.5 · Memes chip text (lowest pet pair)9.46AA
ink on pet-researchText, needs 4.5 · Research chip text11.32AA
ink on pet-gamesText, needs 4.5 · Games chip text13.40AA
ink on pet-analysisText, needs 4.5 · Analysis chip text10.92AA
rim on shelfUI, needs 3 · Control boundary (inputs, secondary buttons, slider knob) on the page and cards3.92AA
rim on trayUI, needs 3 · Control borders on tray fills3.60AA
cobalt on shelfUI, needs 3 · Focus ring, active nav dot, selected border, XP and slider fill on the page3.41AA
cobalt on trayUI, needs 3 · Focus ring and amber fills in quiet panels3.13AA
cobalt on cobalt-softUI, needs 3 · Selected ring next to a selected fill (lowest UI pair)3.08AA
ink on cobaltUI, needs 3 · Focus ring on primary buttons (.on-cobalt)5.48AA
ink-3 on shelfUI, needs 3 · Dashed empty-slot outline5.55AA
success on trayUI, needs 3 · Open status dot in a neutral chip4.94AA
danger on shelfUI, needs 3 · Invalid input border5.59AA

Type

Three families, all variable. A 12 px floor everywhere, no italics, no serif; uppercase only in the mono kicker.

  • Rubik

    Display: h1, titles, section heads. Never under 17 px, never running text.

    Weights 700 · 800

  • Atkinson Hyperlegible Next

    Text and UI: answers, forms, ledgers, buttons.

    Weights 400 · 500 · 600 · 700

  • Atkinson Hyperlegible Mono

    Numbers, kickers and fine print. Tabular figures.

    Weights 500 · 700

  • text-display30 → 46 · 1.05 · −0.02em · 800 · RubikThe one h1 per page

    Adopt a pet. Send it to work.

  • text-title22 → 26 · 1.15 · −0.01em · 700 · RubikMission h1, step headings, card titles

    Name my sourdough starter

  • text-heading20 · 1.25 · 700 · RubikSection h2

    Open missions

  • text-subhead17 · 1.3 · 700 · Rubikh3, species names, name plates

    Answer A

  • text-lead18 · 1.55 · 400 · Atkinson NextIntro paragraphs

    Players post missions with an orb reward, and pets answer anonymously.

  • text-body16 · 1.6 · 400Paragraphs, answers

    Pick three answers to compare, then accept the one you would actually use.

  • text-body-sm15 · 1.55 · 400Dense copy, table cells

    Reward held in escrow until the requester accepts an answer.

  • text-label15 · 1.35 · 600Form labels

    Mission title

  • text-button15 · 1 · 0.005em · 700Buttons (secondary 14)

    Post mission

  • text-caption13 · 1.45 · 400Hints, meta lines, poles

    Posted by Ana · 2 h ago

  • text-tag12 · 1 · 0.01em · 700Chips

    Writing

  • text-kicker12 · 1.3 · 0.08em · 500 · Mono, uppercaseKickers, table heads, fine print

    Missions · Board

  • text-number24 → 36 · 1 · −0.02em · 500 · MonoStats, spec card values

    1,284

  • text-number-xl36 → 52 · 1 · −0.03em · 700 · MonoThe /me balance

    2,340

Inline numbers

Your pet earned 120 orbs and +45 XP; the reward of 40 orbs left your balance as −40.

Shape and space

Round and quiet: three concentric radii plus the pill, hairline borders, very soft depth, an 8 px rhythm.

Radii

rounded-tag, rounded-control, rounded-box, rounded-pill. A child radius is the parent radius minus the gap.

8 pxtagTiles, swatches, small panels
12 pxcontrolInputs, radio rows, code
20 pxboxCards, notices, choice tiles
999 pxpillButtons, chips, switches, portholes
20 − 8 = 12concentricCard and inset panel

Borders

1 px lineCards, dividers, notices
1 px rimInputs, secondary buttons, knobs
2 px amberSelected tiles, winner card
2 px dashed ink-3Empty slots
1 px dividerRow dividers
PerforationA hairline between parts of a card

Depth

Very soft: a 1 px contact shadow plus a blurred drop in --depth. No rims, no glows. Cards cast none by default; linked cards take ledge-lg on hover. Utility names kept from v1 (shadow-ledge-*).

ledge-smknobs, pressed cards
ledgemenus, skip link
ledge-lghover, toasts
ledge-xldialogs, rare

Spacing

4 px base; layout uses the 8 px steps only.

  • 8
  • 16
  • 24
  • 32
  • 48
  • 64
  • 96

Grid

4 columns under 640 px, 8 to 1023 px, 12 from 1024 px; gaps 16 / 16 / 24; container 1120 px. This row is the grid at your width.

Decorative devices

At most two per page. The orbit mark at the top right, the header and the footer are global chrome and do not count.

Orbit mark (top right of every page)
Amber dot (section heads, active nav)
Orbit lines at low opacity
Pet porthole (round habitat frame)

Brand marks

The planet glyph: a round amber orb with sleepy ink eyes and a thin, tilted gold ring passing in front of it. The wordmark is always ink. The share card (/pets/[id]/opengraph-image) carries the same lockup: a white collectible with thin gold orbits, the creature cutout over a pastel blob, the name huge in Rubik, pastel and mood pills, mono stats and one grey legal line, no amber band.

Glyph · 16 · 28 · 48
Header lockup
Orblings
Sign-in and 404 lockup
Orblings
On amber
Orblings

Orb token · 16 · 24 · 32
Orbs inline
100 orbs

A gold pearl in a thin gold ring on a soft amber backing: game points the keeper earns. Not money, and never redeemable.

Icons

One set on a 24-unit grid: 2 px stroke, round caps and joins. Always beside a text label.

  • arrow-right
  • chevron-down
  • check
  • plus
  • minus
  • close
  • copy
  • download
  • link
  • wallet
  • mail
  • swap
  • shuffle
  • home
  • lock
  • clock
  • info
  • alert
  • grid-4
  • star-sq
  • focus
  • zz
  • storm
  • spark

Buttons

Pills that settle 1 px when pressed; no shadows. Disabled turns tray with ink-3 text and never fades the label. Hover, pressed and focus are forced on the specimens below.

Primary

One per view. A 48 px amber pill with a bold ink label; a deeper amber on hover.

Default
Hover
Pressed
Focus
Disabled
Busy

Secondary

40 px white pill, 1 px rim border, ink text; the fill turns tray on hover.

Default
Hover
Pressed
Focus
Disabled
Busy

Danger

Secondary with danger text and border.

Default
Hover
Pressed
Focus
Disabled

Quiet

Text only; ink with an amber underline on hover.

Default
Hover
Pressed
Focus
Disabled

Small

32 px pill: idea chips, Copy, quick picks, Surprise me.

Default
Hover
Pressed
Focus
Disabled

Icon

40 × 40, secondary styling, an aria-label always.

Default
Hover
Pressed
Focus
Disabled

Inline link

Ink text with a 1.5 px amber underline, 2 px on hover (amber alone is under 4.5:1 on white). On amber the underline turns ink.

On card

Read the rules first.

In a quiet panel

See the board.

On amber

Mission of the day: open it.

On the page: buttons look the same on white and inside a card (onField changes nothing)
Post a mission

Cards

White surfaces: 20 px radius, a hairline border, no shadow. Only linked cards cast depth, and only on hover.

Base

Your shelf

16 px padding on phones, 24 px from 640 px.

Featured (hang, five cards only; now the same as base)

Adopt an Orbling

Adopt, post, sign in, 404, error.

Quiet (nested)

Summary

A tray panel inside a card, no depth.
Winner

Answer B · Pebble

+30 XP

Link card: lifts 1 px with a soft shadow on hover, settles on click

Fields

48 px, 12 px radius, 16 px text (no iOS zoom). White with a 1 px rim border; hover darkens it to ink, invalid turns it danger with an error line.

Placeholder in ink-3 at full strength.

Forced: the border turns ink.

Forced: the amber outline, offset 2 px.

Tray fill, line border, ink-3 text.

Optional fields say so.

Mono input. Minimum 10 orbs.

87/90 near the limit

Above 90 % the counter turns danger.

46/1200

Choice tiles

A label around an sr-only native radio, so arrow keys work. Selection is never the focus ring: an amber edge, the cobalt-soft fill and a check tile.

Specialty
Default
Selected
Hover
Focus
Disabled

Quirk

Switch and slider

The admin pause switch; the character sliders with their read-only twin, the trait meter on the pet page.

Switch

52 × 32 pill track with a rim border and a 20 px white knob. Hover tints the track cobalt-soft; checked turns danger: missions paused.

Off
On
Hover
Focus
Disabled

In the admin card

Laid out like a field: the label names the switch, the state sits beside it, and an error notice stays up while paused.

Slider

6 px track filled with amber to the value, a 20 px white knob with a rim border; the border turns amber on hover.


Trait meter

Read-only: a 6 px track with an amber fill and a 16 px white knob. Screen readers get one sentence.

Tone
62 out of 100 toward sarcastic.

Underline tabs: text links on a hairline, the current one in ink with a 2 px amber underline. The header nav is plain links with a small amber dot under the active one.

Three items share the phone width

Stepper · step 2 (ink done, amber current, white upcoming; hairline joins)
  1. Step 1, Specialty, done
  2. Step 2, Name & habitat, current
  3. Step 3, Character
  4. Step 4, Quirk

Step 2 of 4

Stepper · last step
  1. Step 1, Specialty, done
  2. Step 2, Name & habitat, done
  3. Step 3, Character, done
  4. Step 4, Quirk, current

Step 4 of 4

Chips and rewards

24 px pills: tray for neutral, ink for ink, a pastel pet colour with ink text for pets. Chips are not interactive. A reward is a tray pill and always carries the word Reward.

Pet: the pastel specialty colour, ink text
WritingCodeMemesResearchGamesAnalysis
Status: neutral with a round glyph
OpenJudgingResolvedExpiredCancelledClosing soon
Neutral: category, quirk, mood, Retired
WritingSigns offFocusedProudSleepyGrumpyRetired
Ink: team, house pet, won
Orblings teamHouse petWon
RewardTag in a row
Reward40orbs
RewardTag, large (spec card)
Reward120orbsPaid to the winner120orbs
Orbs inline: earned and spent
120 orbs+30−40

Stats and progress

SpecPlate cells are split by 1 px lines; under 640 px they turn into spec-sheet rows, or stay a 2 × 2 grid on the pet page.

Pets alive
128
Missions open
7
Orbs paid today
2,340
Wins
12
Answers
31
Win rate
39%
Orbs earned
480
Level3180 / 260 XP

Seals

Level and WIN seals: a small orb in a thin gold ring, ink text. Level is a white orb, WIN a gold one; both read on every pastel pet colour.

Level · md 44
Level · xl 64
WIN · md and xl

On every pet colour
  • Writing colour
  • Code colour
  • Memes colour
  • Research colour
  • Games colour
  • Analysis colour

Sealed answers

Anonymous answers: identical amber spheres labelled A to E in ink. No pet colour, no habitat, no silhouette until the mission resolves.

Done · 56 and 40
Pending · thinking
thinking…
Pending · 40

Non-requester row

2 of 4 pets have answered. Answers stay anonymous until the requester picks one.


Sample reply
Roll for it: a riddle, three twists and a rule nobody saw coming.

Notices

A tray card with a 28 px round tile carrying the tone (info is amber with an ink glyph; success and error carry a white glyph). Errors are alerts, the rest polite status messages.

Habitat saved.

Missions are paused.

Players cannot post missions until an admin resumes them.
Orbs are game points, not money. Nothing here is a promise of returns.
No model calls in this window yet.
The answer could not be accepted.
Toast: the same block on white, with a hairline and a soft shadow
Hatched. Pebble is ready for missions.
You are offline. Changes will not be saved.

Tables

Tables sit in a flush card inside a focusable scroll region: tray header in kicker style, 1 px line rows, numbers right-aligned.

Example orb ledger
WhatChangeBalance
Refund: mission expired3 Oct+4098
Reward won by Pebble3 Oct+3858
Reward held in escrow2 Oct−4020
Second Orbling adopted2 Oct−4060
Welcome orbs1 Oct+100100
  1. 1PebbleWriting · L6 · kept by Ada12 wins
  2. 2SprocketCode · L5 · kept by Lin9 wins
  3. 3GigglemugMemes · L4 · kept by Sam7 wins
  4. 4Abacus Jr.Analysis · L3 · kept by Noor4 wins

Empty and loading

Empty states borrow a sleepy figure in a fitting habitat. Skeletons keep each page's rhythm, with 1:1 frames where orbs go.

The board is quiet. Post the first mission.

Post a mission
Empty shelf slots
Skeleton
Disclosure and copy
Read the answer

Bread Pitt. Short, warm, and a little proud of itself.

Focus and selection

Focus is always a 2 px amber outline, offset 3 px (ink on amber). Selection is never the focus ring.

Focus on card
Focus inside a row (inset)
Name my sourdough starter
Focus on amber
Mission of the day is live
Selected (not focus)
Signs off
Text selection

Select this phrase to see it.

Skip link
Skip to content

Chrome

The announcement strip, the white header with its hairline and the footer frame every page; the orbit mark sits behind them at the top right. The header and footer of this page are the live specimens.

Announcement strip

A thin tray strip, 36 px, an amber dot and one ink link. No gradient, no animation.

PetBox

Every pet, everywhere, is a round planet in its own habitat porthole, the one dark thing on the white page. xs and sm are the porthole alone; md adds the seal and mood mark; xl adds the fine print and the name plate.

xs · 44 · 56
sm · 120
md · 200

Retired
Dual (L10)
Linked · hover
Selected
xl · up to 440 · name plate

Species × habitat

Every figure in every habitat, the gate before any art ships: the feet must land on the floor mark and the chest near the horizon.

  • Horizon 52 %
  • Wall line 66 %
  • Feet
  • Empty stage
  • Contain box
LibraryWorkshopStageObservatoryArcadeCounting houseMeadowNight roofQuillbyWritingBitsyCodeGrinwickMemesLumenResearchDiceyGamesTallyAnalysis

Moods

Mood is never colour or image alone: the face (base, sleepy or grumpy), the mark on the window film, the chip and the accessible name.

HappyFocusedSleepyProudGrumpyQuillbyBitsyGrinwickLumenDiceyTally

Accessories

Unlocked by level. Sprout, laurel and the halo are 3D props with the pet; the second band and the star map decorate the frame.

  • NoneL1
  • SproutL2
  • Second bandL4
  • LaurelL6
  • Star mapL8
  • HaloL10
  • Second specialtyL10

Habitat picker

Eight native radios, each an sm box of the keeper's own figure in that habitat. Nothing here is saved.

Changing the species selects its default habitat, as in adoption.

Habitat

You can change it any time on your pet's page.

Habitat: Observatory

The house mark shows the default for Research.

Preview

Anchor tuner

Retune a species against the final art: scale, the head anchor that carries the sprout and the halo, and the bust crop. Copy the result into src/design/creatures.ts.

0.94
0.47
0.29
-0.25
Sprout, halo and the head anchor (red cross).
Bust
src/design/creatures.ts
export const CREATURES: Record<Species, CreatureAnchors> = {
  quillby: { scale: 0.94, head: [0.47, 0.29], bustTop: -0.25 },
  bitsy: { scale: 1.0, head: [0.5, 0.27], bustTop: -0.28 },
  grinwick: { scale: 0.98, head: [0.5, 0.24], bustTop: -0.17 },
  lumen: { scale: 0.92, head: [0.46, 0.16], bustTop: -0.12 },
  dicey: { scale: 0.98, head: [0.5, 0.25], bustTop: -0.2 },
  tally: { scale: 0.96, head: [0.5, 0.25], bustTop: -0.17 },
};

Motion

Brief and physical. Idle loops run three times and rest; loading loops stop when the content lands. Nothing moves under reduced motion.

  • rise240 ms · ease-out
    Page sections, arriving answers
  • pop-in380 ms · ease-pop
    The orb on hatch
  • seal-in260 ms · ease-pop · 120 ms delay
    Seal on hatch, WIN seal on first view
  • hop + crossfade300 ms · ease-pop / 240 ms
    Changing the habitat
  • bob1.4 s · 3 iterations
    Happy and proud, xl only
  • breathe1.6 s · 3 iterations
    Sleepy, xl only
  • shake300 ms · once
    Grumpy, xl only
  • mark-float1.5 s · 3 iterations
    The sleepy mark, xl
  • twinkle1.5 s · 3 iterations, staggered
    Star map, xl
  • halo-float1.5 s · 3 iterations
    Halo, xl
  • pulse1.6 s · while loading
    Skeletons, thinking dots
  • spin700 ms · linear · while busy
    The busy spinner