Skip to content
Larasby Kotek

Foundations

Colors

Gold on brown, and color beyond it only where it means something: which half you are playing, and how a strike landed. Asset colors are synced from the app; the rest are copied from Theme.swift and marked as such.

Surface

One surface, not two. Every screen sits on the same warm brown ground with the carved pattern behind it. Cards are a step lighter than the ground, never darker.

Background

The ground. Every screen sits on this.

Theme.groundasset catalog1.0:1 on ground

PatternBackground

The carved motif drawn over the ground, just off it.

Theme.patternasset catalog1.1:1 on ground

Card

Cards, panels, wells, the loading bar's track.

Theme.deepasset catalog1.3:1 on ground

Text

Gold on brown is the whole family. There is no light text: what used to be cream is the title gold, and supporting text is the description brown.

TitleText

Titles, primary text, outlines and accents.

Theme.gold · Theme.creamasset catalog6.0:1 on ground

DescriptionText

Descriptions, metadata, captions. Was #7A5E4E, which failed contrast.

Theme.description · Theme.stoneasset catalog4.4:1 on ground

Action

The filled button is the one place in the app where dark type sits on a light slab; the two colors are a pair and move together. The secondary slab is darker than the ground, so it reads as a control rather than another card. The glass button has no color of its own: it takes it from what is behind it.

Tertiary

The filled button's slab.

Theme.buttonFillasset catalog11.2:1 on ground

LaunchBackground

Type on the button fill. Only correct on Tertiary.

Theme.onButtonFillasset catalog1.0:1 on ground

ButtonSecondary

The secondary button's slab, with gold type.

Theme.buttonSecondaryasset catalog1.1:1 on ground

LoadingBar

Progress: the splash's loading line.

Theme.progressasset catalog1.9:1 on ground

Instrument

The gangsa on the splash and landing screens. The bilah are bronze; a struck key lights, and the one before it is damped.

Bronze

The bilah themselves.

Theme.bronzeTheme.swift7.0:1 on ground

KeyHighlight

A bilah as it is struck.

Theme.keyHighlightasset catalog10.9:1 on ground

KeyDampened

A bilah the free hand has just stopped ringing.

Theme.keyDampenedasset catalog2.7:1 on ground

Pelawah

The carved frame and the mallet.

gangsa-table.svg · mallet.svgartwork2.0:1 on ground

Rail

The red line the bilah rest on.

gangsa-table.svgartwork1.9:1 on ground

The two halves

Polos and sangsih keep their own color wherever they appear (the score, the picker cards, the mixer chips) so the interlock reads at a glance. The designed note tiles use a deeper pair; see Note tile.

Polos

The steady half, on the beat.

Theme.polosVoiceTheme.swift6.0:1 on ground

Sangsih

The answering half, between the beats.

Theme.sangsihVoiceTheme.swift4.9:1 on ground

Play screen

The bilah on the play screen, as designed. Each state is a fill, a lighter ring and an inner strip; these are the fills. There are two verdicts, Great and Miss, shown as an aura of the key's color with the word inside. There is no separate wrong-key state for now.

Great

A strike on time, on the right bilah.

ring #DEFEE5 · inner #4CC294designed, not built10.7:1 on ground

Next

The bilah to strike next.

ring #FFE2B6 · inner #C2975Adesigned, not built8.3:1 on ground

Miss

A note that was not struck in time.

ring #B43D54 · inner #BD5267designed, not built2.0:1 on ground

Damped

A bilah at rest, stopped ringing.

ring #2B211C · inner #7B5F39designed, not built1.8:1 on ground

Judgement (current)

What the app colors a strike with today. Warmed towards the palette, but kept clearly green, red and amber to read at a glance mid-stroke. The play-screen states above replace these when they are built, and Wrong goes.

Hit

A correct strike.

Theme.hitTheme.swift6.2:1 on ground

Miss

A missed note. Also destructive actions.

Theme.missTheme.swift3.2:1 on ground

Wrong

The wrong bilah.

Theme.wrongTheme.swift7.0:1 on ground

Colotomic

Gong, kempur and kajar frame the cycle rather than carry a part, so they belong to the ground: one quiet warm family underneath the voices.

Gong

The gong at the end of each cycle.

Theme.gongTheme.swift11.7:1 on ground

Kempur

The kempur's mid-cycle stroke.

Theme.kempurTheme.swift7.0:1 on ground

Kajar

The kajar's steady pulse.

Theme.kajarTheme.swift5.4:1 on ground

In the catalog, not in use

Defined in the asset catalog but not read by any code yet. Use them or remove them before they become a second, unofficial palette.

Text

A light text color.

—unused13.6:1 on ground

Subtle

A light supporting color.

—unused8.2:1 on ground

Contrast

WCAG asks 4.5:1 for body text and 3:1 for large text (24px, or 19px bold) and interface parts. The description color was raised from #7A5E4E (last row) to pass large text everywhere; at 4.4:1 on the ground it is still a hair under 4.5:1, so keep it for supporting text at 15pt and up, not for long body copy.

PairSampleRatioResult
Title text on the groundKotekan6.05:1AA
Title text on a cardKotekan4.77:1AA
Title text at 75%, as descriptions are setKotekan4.05:1AA Large
Title text at 62%, on a settings cardKotekan2.76:1Fail
Description text on the groundKotekan4.41:1AA Large
Description text on a cardKotekan3.47:1AA Large
Label on the filled buttonKotekan11.21:1AAA
Secondary button labelKotekan6.87:1AA
Previous description #7A5E4E on the groundreplacedKotekan2.66:1Fail