Lilac Dream
Skin of the week. Frosted lilac shell, pink gel, a soft violet screen.
Y · 25 / 26
Chrome, bubbles and the optimism of 2000.
In 1998 Apple put a computer in a shell of translucent Bondi Blue plastic, and for a few years everything followed: phones, pagers, game controllers and kettles came in see-through candy colours. The turn of the millennium arrived with two moods at once, the fear of the millennium bug and a giddy faith in whatever came next.
The look of that faith was chrome. Music videos and adverts wrapped type in liquid metal and set it against white, blue and lilac voids. On the desktop, MP3 players and instant messengers let people reskin the whole program, swapping one moulded shell for another, and buddy lists carried away messages written with tildes and stars.
The style came back in the 2020s, first in fashion and then on screens. Built today it means bevelled, glossy plastic surfaces, chrome for big type only, gel buttons split at the middle, pastel iridescence, four-point sparkles, and every piece of reading text kept dark on pale so the shine never costs anyone the words.
A made-up MP3 player docked beside its buddy list. Play the playlist, scrub, set the EQ, shuffle. Change the skin to Chrome, Ice or Lilac and both shells change with it. Your profile shows what you are listening to; message a buddy and wait for a reply, or for someone to sign on.
The parts Orbit is built from: gel for the first action, bevelled chrome for the second, fields pressed into the plastic, chrome beads on every slider and switch. The rows of states hold still for comparison; everything else works.
3 to 16 letters, numbers or underscores.
A 4 MB song takes about 12 min.
Skin of the week. Frosted lilac shell, pink gel, a soft violet screen.
Drag across the blob to pull its edge toward the pointer, or use the arrow keys. The light swings with the pointer, the sheen’s hue turns on a dial or drifts by itself, and a mouse leaves a trail of stars. Copy the shape as SVG when you like it.
Drag the edge · arrows on the keyboard
Thirteen colours with their contrast, the chrome ramp, three typefaces, a spacing scale, moulded radii, three heights of plastic and three speeds. Copy them as custom properties, with the gel button and chrome type.
:root {
/* Surfaces and text */
--mist: #f2f4fb;
--pearl: #ffffff;
--frost: #e4e9f4;
--ink: #161b3d;
--ink-2: #4a5072;
/* Candy plastics: fills, never body text */
--aqua: #2fb4ff;
--lilac: #c9b8ff;
--pink: #ff8ad8;
--ice: #b7f0ff;
--lime: #c8ff3d;
/* The same hues, dark enough for text */
--aqua-ink: #0759b8;
--pink-ink: #b0177f;
--error: #c4123f;
/* Chrome: sky, a hard horizon, ground, bounce light */
--chrome: linear-gradient(180deg, #fff 0%, #c3cad8 38%, #f5f7fc 49%,
#3a4260 51%, #8a94ad 70%, #e9edf6 100%);
/* Elevation */
--inset: inset 0 2px 4px rgb(22 27 61 / 0.18), inset 0 -1px 0 #fff;
--raised: inset 0 1px 0 #fff, 0 1px 0 rgb(22 27 61 / 0.12),
0 4px 10px -4px rgb(22 27 61 / 0.35);
--floating: inset 0 1px 0 #fff, 0 2px 0 rgb(22 27 61 / 0.08),
0 22px 40px -18px rgb(22 27 61 / 0.45);
/* Radii: everything is moulded */
--radius-tag: 6px;
--radius-field: 10px;
--radius-panel: 18px;
--radius-shell: 32px;
--click: 90ms ease-out;
--glide: 320ms cubic-bezier(0.34, 1.56, 0.64, 1);
--font-display: 'Michroma', system-ui, sans-serif;
--font-text: 'Exo 2', system-ui, sans-serif;
}
/* Gel: a hard split at the middle, a gloss on top, white type */
.gel {
position: relative;
min-height: 44px;
padding: 0 22px;
border: 1px solid #0a4fa0;
border-radius: 999px;
background: linear-gradient(180deg, #4aa8f5 0%, #0d6fd6 50%,
#0457b5 51%, #1c7fe0 100%);
color: #fff;
font: 700 15px var(--font-text);
text-shadow: 0 -1px 0 rgb(0 30 80 / 0.5);
box-shadow: inset 0 -2px 4px rgb(140 220 255 / 0.6),
0 4px 10px -4px rgb(4 60 140 / 0.6);
transition: transform var(--click);
}
.gel::before {
content: '';
position: absolute;
inset: 2px 10px 50%;
border-radius: 999px 999px 40% 40%;
background: linear-gradient(rgb(255 255 255 / 0.85), rgb(255 255 255 / 0.1));
}
.gel:active {
transform: translateY(1px) scale(0.98);
}
/* Chrome type: large sizes only */
.chrome-type {
background: var(--chrome);
-webkit-background-clip: text;
background-clip: text;
color: transparent;
filter: drop-shadow(0 2px 0 rgb(22 27 61 / 0.35));
}Where the style shows up outside this page.