Free US shipping on orders over $50
only at rhode

core summer essentials

The restock is here

One of everything, really good

highlight

At rhode, the philosophy is a short list of essentials that nourish the skin barrier and give an instant dewy glow.

Highlight Milk

$32

Pocket Blush

$26

Peptide Lip Shape

$20

Glazing Mist

$30
Glazing MilkBarrier support$29
Caffeine ResetEye contour$26
The Soft Glam SetThree-step$62
Controls

A 40px pill and a directional wipe

Default White Filled Gray fill ← hover: fill wiped fully in (live buttons above wipe from the edge you cross)
On image On image ← the same ring in #ffffff (last is hover)
Search products Site focus: border only Recommended ring Disabled Country / region
New Best seller Refill Focused

Every control is a 40px pill outlined by a 1px INSET ring (box-shadow: inset 0 0 0 1px #67645e, 536 uses) rather than a border. Hover is a four-way directional clip-path wipe: four triangular hit zones meeting at the centre each re-clip a fill layer sitting at inset(0 0 100% round 40px), so it slides in from whichever edge the cursor crossed — clip-path .25s while the label recolours over a much slower color 1.25s. Anti-pattern: the real site sets outline: none; box-shadow: none on input focus and only tints the border to #a3a3a3, and a:focus duplicates a:hover; the recommended ring above is the fix.

Typography

Tight lowercase display, open uppercase UI

Display · Rektorat Heavy · 60.48/72.576 · 400 · -2.4192px · lowercasehighlight milk
Display micro · Rektorat Heavy · 10/7.5 · 400 · -0.4px · lowercaseonly at rhode
Section head · Swiss · 37.8/45.36 · 400 · -0.756px · noneOne of everything, really good
UI workhorse · Swiss · 17.024/25.536 · 700 · +0.34048px · uppercaseShop the restock
Button label · Swiss · 17.024/25.536 · 400 · +0.34048px · uppercaseAdd to bag
Nav / link · Swiss · 17.01/25.515 · 700 · +0.3402px · noneShop · About · Futures
Product name · Swiss · 14/16.8 · 700 · +0.28px · uppercasePeptide Lip Shape
Body · Swiss · 14/21 · 400 · +0.28px · noneDesigned to nourish the skin barrier.
Announcement bar · Swiss · 12/14 · 700 · +0.24px · uppercaseFree US shipping over $50

The tracking logic is inverted: the big display face takes strong negative tracking (-4%) while every small uppercase UI size takes positive tracking (+2%). The micro display tag sets line-height below font size (10px on 7.5px) so it crops tight to the letterforms. There is no serif and no mono on the site — Rektorat Heavy is a heavy SANS. Substituted here: Archivo Black for Rektorat Heavy, Inter for Swiss.

Palette

White, cream, and one warm taupe

Surfaces
white#ffffff
cream#f1f0ed
cream-80#f1f0ed cc
white-90#ffffff e6
white-70#fffffe b3
white-50#ffffff 80
off-white-f5#f5f5f5
Ink and the one colour
base-color#67645e
taupe-light#84827e
taupe-faint#acaaa5
warm-grey#dddedc
black#000000
scrim#000000 4d
scrim-75#000000 bf
Hairlines and states
hairline-c4#c4c4c4
hairline-cc#cccccc
grey-a3#a3a3a3
label-color#ffffff

Every neutral is warm-biased — #67645e is a greenish taupe, not a grey. Excluded from this palette as third-party or dead CSS: Foundation's unused .o-button red #cf000f (zero elements on the page), and the accessibility / review widget values #007aff, #363638 and #ebebf0.

Depth and motion

Inset rings, never drop shadows

40px · 891 uses
20/20/12/12
12px
0/12/12/0
10px
8px
4px
50%
taupe inset ring · 536
white inset ring · 36
one-off 0 1px 2px
one-off 0 1px 10px 1px
one-off 0 0 30px
one-off 0 0 100px ambient
blur(2px)
blur(4px)
blur(10px)
the one gradient

Motion is slow and symmetric: the dominant recipe is all 0.7s cubic-bezier(.76,0,.24,1) (easeInOutQuart, 170 uses) with no overshoot anywhere, supported by opacity .3s ease-out, border-color .25s ease-in-out and cubic-bezier(.075,.82,.165,1). Brand keyframes are footer-logo-jello, spotwear-fall, clockwise, donut-rotate, draw, erase. No JS motion library — no GSAP, Lenis, Framer Motion or Lottie — and 1 reduced-motion block. No canvas, no WebGL, no grain: photography does the work.