Foundations

Design system

Every value here is lifted from SunnySort.View.Palette and the game's own UI kit — the same code the app paints from. The site cannot drift from the product, because it is reading the product's own numbers.

Brand

Three stacked tiles, warm to cool from the bottom up: the emblem is the game's win condition drawn as an object.

Sunny Sort
Sunny Sort

The scalloped awning stripe is the second brand mark. It sits at the very top of every page and nowhere else — one appearance, so it stays an arrival and not a texture.

Colour

Warm by construction: there is no neutral grey anywhere in the system. Every grey is ink at reduced alpha over a cream ground, which is why the page never goes cold.

Surface
Cream#FFF7E8Palette.Cream
Cream deep#F3E3C3Palette.CreamDeep
Sky#FFF3D9Palette.SkyTop
Sand#F1BE84Palette.SkyBottom
Ink
Ink#3B2314Palette.Ink
Ink soft#8E7A6CPalette.InkSoft @62%
Card lip#D9BD94Palette.CardLip
Action
Green#4CB853Palette.Primary
Green lip#2F8C3APalette.PrimaryLip
Yellow#FFD23FPalette.Yellow
Red#E9553DPalette.CanopyA
Stall
Wood#B97A43Palette.BoardBase
Tray#9E6437Palette.Tray
Tile#F6E6C8Palette.Tile
Pieces
Coin#F2A81DKindTheme
Violet#8E44C6KindTheme
Plum#4A2A6BKindTheme
Ruby#E8412FKindTheme

Type

Baloo 2 carries every heading — rounded and heavy, the voice of a hand-painted market sign. Nunito Sans takes all running text; its open counters keep long paragraphs light next to that display weight.

RoleSizeFace
Display / heroclamp(40px, 6.4vw, 68px)Baloo 2 800
Section headingclamp(30px, 4.2vw, 44px)Baloo 2 800
Card heading21pxBaloo 2 800
Lede20pxNunito Sans 400
Body16.5pxNunito Sans 400
Kicker / label13px, .14em tracking, uppercaseNunito Sans 700

Buttons

Both buttons carry a solid lip shadow with no blur underneath a soft one. That is taken straight from the game, where every button is an extruded slab — the lip is the side you would see edge on.

Get the gameSee how it playsComing soon

Surfaces

Cards get a lip too, and nothing else does. Border, fill and shadow are spent by role: a card is a separate object, a section is not.

--radius1.25remCards, panels, the ink strip
.lip0 4px 0 #D9BD94 + soft dropThe solid edge under a card
.lip-green0 5px 0 #2F8C3A + soft dropThe primary button
rounded-full999pxButtons and chips only

Pieces

Each kind is a colour and a silhouette. That pairing is an accessibility requirement in the game, not decoration — the board has to stay readable when the colours do not separate.

Voice

The product's whole pitch is that it does not manipulate you. Copy that oversells would contradict the thing being sold, so the rules are strict.

Claim what was measured

“No impossible levels” is sayable because a solver plays every level before it ships. Each claim on this site traces to a number in the repository.

Never borrow social proof

No star ratings, no download counts, no “loved by thousands”. The app has no users yet and the site says so.

Name things as the player does

STACKS, SPACE, MOVES LEFT — the words on the HUD, not the words in the code.

No urgency, no countdown

Nothing on this site pressures a download. A game with no ads and no purchases has nothing to rush anyone into.