Bedrock

Colors

Five colors, five places

Five from the R2 palette — Catalina Cove, Forest Green, Launch Green, Midnight and Borealis — each shown against the vehicle and against the landscape it is named for. Named for places here, worn as roles next. Scroll to travel the board.

One role, four materials

The screen is not the exception. A semantic color has to survive cloth, paint and print as well as glass. Scroll, and each role takes its turn while the rest of the band shows where it already lives — the brakes, the charger, the sky, the tail light. Never re-learn what a color means from the app to the vehicle to the shop. A role is a promise; the chain is how it is kept.

Accent
Energy
Navigation
Alert
A black Rivian wheel, its brake calipers finished in Accent yellow A Rivian charger at sunset, its canopy lit by an Energy green light bar Rivian's offices under a Navigation-blue sky, the glass facade carrying the same blue An R2 from behind, its rear light bar lit Alert red across the tailgate

Stone ramp

    Bedrock

    Typography

    Anatomy of a letterform

    The vocabulary a type scale is written in. Cap height, median and baseline are the horizontals every role is measured against; the callouts name the parts of the glyph the tracking and weight decisions act on.

    Adventure type sample board, dark theme Adventure type sample board, light theme
    Bedrock

    Tokenization

    Three tiers, one chain

    Tier first, value second. A token's name says which tier it belongs to before it says what color it is. The chain is Primitives → Semantic → Component. Consume at Semantic or Component — never at a raw hex. Tokens are the input; components are where they are held to account.

    Fill
    1. #FFAC00 Day and Night
    2. PrimitiveColor/Yellow/400
    3. SemanticSemantic/Accent
    4. ComponentButton/Action/Accent/Enabled
    5. KeySearch
    Label
    1. #000000 Day and Night
    2. PrimitiveColor/Rivian/Black
    3. SemanticSemantic/Always Dark
    4. ComponentNone: binds at Semantic
    Bedrock

    Anatomy

    A contract you can touch

    Hover interrogates; a tap holds. Each part of the bento answers with its own values and the node they were read from. The diagram is the spec sheet — the geometry checks itself: 48 + 16 + 536 + 16 + 48 is exactly the 664 the header claims, and 32 + 48 + 24 + 672 + 32 is exactly the 808 the card claims. The same contract has to hold on a second vehicle.

      Bento M · 712 × 808

      Seven parts, one source node — every number retrieved, none remembered.

      Robust framework

      CD Framework · MSP · 2396 × 1120

      Hover, tap or Tab through the parts. Each answers with the numbers and tokens that place it.

      R1 center display at night. The drive-modes panel sits at the left: On Road and Off Road tabs, a two-by-two mode chooser — All-Purpose, Sport, Conserve, Snow — and below it two columns, a height stepper set to Standard beside ride feel, regen and stability.
      R2 center display in daylight. The same panel: the same On Road and Off Road tabs and the same two-by-two mode chooser, with a single column below it — ride feel, regen and stability — and no height stepper.

      Surface in motion

        Bedrock

        Accessibility

        Three zones, one reach

        The center display, zoned by how far the driver has to reach.

        Shape, icon, color

        Shape says what it does. Icon and color say whether it is on.

        Three visual cues, one purpose

        Shape says what a button does. Icon and color say whether it is on. Rivian gives every button three cues instead of one. Shape: an action is always a pill, and a toggle, mostly a vehicle control that turns on or off, is always a rounded rectangle. Icon: a toggle's icon is stroked while off and filled while on. Color: in Day mode, an on toggle takes the inverse fill. Repeated across the car, the same three cues train a driver to read a button's purpose and its state at a glance, before a finger lands.

        Bedrock

        Theming

        One update, five surfaces

        Halloween mode arrived in one over-the-air update. The car, both displays, the phone and the watch turned Ghostbusters together, on the same tokens. Scroll to wipe one paint over the other.Swipe to compare the two paints.

        The Ghostbusters R1S driving through fog at night, headlights and blue roof lights on.
        The center display in the Ghostbusters theme: drive modes beside an illustrated R1S in livery on a night city street.
        The center display running a Ghostbusters game: red and yellow switches, gauges and floating ghosts.
        The driver display in park: an efficiency graph, a top-down R1S in livery and a large P, in green on black.
        The driver display while charging: 125 miles, 60 percent, a green charge bar with a slime ghost.
        A hand holding a phone with the Rivian app in the Ghostbusters theme: Trick or Treat and lights and sounds controls, the R1S light bar behind.
        A watch on a wrist reading “Let’s get spooky”, Trick-or-Treat on, with a power button.
        Center display, light theme. The drive-modes panel at the left — On Road and Off Road tabs, a two-by-two chooser with All-Purpose selected, ride feel, regen and stability below — over an illustrated R2 on a road at sunset.
        The same display in the Ghostbusters theme. The same panel, same layout and labels, relit in green on near-black, over an illustrated R1T in Ghostbusters livery on a night city street.
        Bedrock

        Ownership

        One system, on the road

        I am taking full ownership of the designs we delivered at Rivian so far. The work is on the road, and I stand behind it.

        Grateful it landed. Happy Rivian owners recognized the effort — that is the part of the job no file can hold.

        Loyalty for the adventure ahead. The designs leave the studio and live with the people driving them. From our ownership to theirs — that is how you build what comes next.

        Freebird

        Stats

        Geeky
        Stats

        What this page is made of

        Every number below is read off the live DOM at runtime — on load, on theme flip, and whenever you move a slider in the style widget. Nothing here is typed in by hand, which means you can break any of it and watch the figure move.

        Version

        single-file case study

        5.3 current build · changelog below
        1. 5.3 Looks export — Geeky Stats harvests the style widget into a JSON file you can download: accent, theme, spacing, type, and the tokens those knobs resolve to.
        2. 5.2 Time gets a tier — one base unit and nine rungs replace 27 ad-hoc durations; every easing now reads a token instead of the bare ease keyword. Component motion aliases the ladder, the deck-turn timeout reads its own token, and the choreographed intro stays deliberately off-scale.
        3. 5.1 Geeky Stats — off-spine basement that harvests live tokens, color, a11y ratios, and code weight from the DOM. Chart-pie rail entry. Accent riot, wireframe, and provenance easter eggs.
        4. 5.0 Dual decks (Bedrock / Freebird), style widget (accent wheel, typefaces, surface scale), mobile top-bar chrome, hero aurora / optional media.
        5. 4.x Chapter rail, semantic token storytelling, App Foundry / anatomy / grid spreads. Atlas-style theme crossfade.

        Tokens

        —

        — custom properties, — declarations across — scopes

            Design System

            3 tiers · edit any primitive and the page moves

            This is the one place values are authored. Everything else on the site reads down the chain — primitive → semantic → component — so changing a swatch here changes every surface that depends on it, in both themes, live. Eight of the greys and the accent are exact steps of Bedrock’s own Stone and Yellow ramps. Copy source gives you the block to paste back into the file so an edit sticks.

            Tier 2 · Semantic — what each value is for, in this theme

              Looks

              live from the style widget

              0 knobs off the authored default

              The customization panel writes tokens, not a file. This card harvests whatever you have applied right now into a JSON snapshot you can take with you — the knobs, and the tokens they resolve to.

                
                    

                Components

                —

                The tier below Semantic. A pattern earns a component on its third appearance — two is a coincidence, three is a system, and an unnamed system drifts. Below is the real component, not a picture of one: the specimen is rendered from the same class every consumer wears, and the spec beside it is measured off that specimen, so this card cannot claim a value the component is not wearing.

                content/default Spacers/Bento L R Icon Size W/H 48

                    Motion

                    —

                      Color

                      —

                      Pick a swatch. Its resolved value and contrast land here.

                        Accessibility

                        — contrast floor across — measured text pairs

                        —

                          Easter eggs

                          This session only

                          0 of 6 found

                            Code

                            —

                              Performance

                              —

                              — page load