Daybridge Design System
Foundations

Elevation

Surface layers, shadows and highlights for depth

Layers

The UI is built from three surface layers that create depth through subtle lightness differences. In light mode, each layer gets progressively lighter as it rises toward the viewer. In dark mode, the same — each layer lightens away from pure black, matching how physical objects catch more light as they come closer.

background
surface
Upcoming events
Today · 3 events scheduled
elevated
Reschedule event
Move “Team standup” to a new time

Background

The most recessed layer. This is the page canvas behind everything else.

Surface

Cards, panels, sidebars, and other contained regions sit on top of the background. Applies a default shadow and inset highlight to reinforce the lift.

Elevated

Popovers, modals, dropdown menus, and other floating elements. Uses reduced opacity and backdrop-blur for a frosted glass effect.

Shadow & highlight scale

Shadows are pure depth: progressively softer ambient layers with no built-in outline. Every level is paired with an inset highlight of the same scale, simulating a top-lit edge. Both surface and elevated accept any shadow level as an override.

Each level also carries a dormant 1px contact ring at the silhouette, enabled by the edge-contact utility — see Edges below. surface and elevated enable it by default, so the examples here show the ring; a bare shadow-* on its own does not draw one.

iOS and Android apps use system built-in shadows for better integration with the OS. This scale applies to web only.

2xs
xs
sm
shadow
md
lg
xl
2xl

Shadow specification

TokenLayeryblurspreadα
shadow-2xs100120%
210012%
shadow-xs100121%
212015%
31109%
shadow-sm100122%
212018%
324-112%
shadow100123%
212018%
324-112%
4512-312%
shadow-md100124%
212018%
348-215%
41020-412%
shadow-lg100126%
212012%
348-212%
41224-415%
52440-812%
shadow-xl100128%
212015%
3612-218%
41632-521%
53256-1018%
shadow-2xl100130%
224021%
3816-327%
42444-833%
54880-1433%

Highlight specification

TokenLayeryblurspreadα
inset-shadow-2xs110012%
inset-shadow-xs11108%
210015%
inset-shadow-sm11306%
210018%
inset-shadow12405%
210020%
inset-shadow-md138-15%
212010%
310020%
inset-shadow-lg1412-25%
22408%
310020%
inset-shadow-xl1616-35%
236-18%
310022%
inset-shadow-2xl1824-45%
248-18%
312012%
410022%

Dark mode

Shadows are less visible against dark backgrounds. The system compensates with a higher shadow intensity multiplier in dark mode, scaling each layer's opacity. Combined with surface lightening and inset highlights, this maintains a clear sense of depth across both modes.

Edges

Edges come in named roles, each a utility:

  • edge-contact — the contact line: a 1px dark ring of shade at the silhouette, grounding the element against the page. It renders as the leading layer of whichever shadow-* level the element carries, at that level's strength, and draws nothing without a shadow. Opt-in by design: chrome that draws its own definition line (inputs, buttons) skips it so the two lines never double up.
  • edge-rim — the rim light, described below.
  • edge-control — the indicator seat, described below.

Raised chrome carries a 1px inner hairline of highlight on all four edges — the rim light. surface and elevated include it automatically; the standalone edge-rim utility applies the same hairline to chrome that has its own background and shadow recipe. The hairline paints above the element's content, so full-bleed imagery inside a card cannot cover it.

Elements that attach to a surface's edge (such as popover arrows) use the surface-edge-attach utility to paint above the hairline, letting their fill obscure it where they join.

Filled indicator surfaces — switches, checkboxes, slider fills, date badges, avatars — carry a 1px inner hairline of indicator-highlight via the edge-control utility, seating the fill crisply against any backdrop without a mode split.

Edges over imagery

Semantic edge tokens tint with the surrounding colour context, which is wrong for content sitting on photography or wallpaper washes. Two fixed tokens cover those cases: frame is a dark hairline in light mode that flips to a light one in dark mode, for framing avatars, flags and imagery panels. frame-highlight stays white in both modes, for window chrome and glass edges that should read as catching light regardless of mode.

LightDark
ShadeAlpha×CShadeAlpha×C
Overlay
frameblack0.151
white0.251
frame-highlightwhite0.21
white0.21

Semantic colors

LightDark
ShadeAlpha×CShadeAlpha×C
Core
background311
1511
surface211
1411
elevated111
1311
highlightwhite11
1011
shade100.31
black11