Back to The Details docs·Templates · The Details page · a live template preview
    Skip to content
    • Buttons
    • Surfaces
    • Motion
    • Type
    • Moments
    • Buttons
    • Surfaces
    • Motion
    • Type
    • Moments
    Try the buttons
    Try the buttons

    RChursin_ · Finishing

    The small things that make it feel expensive.

    Nobody notices one of these on its own. Together they are the difference between something built and something made. Everything on this page is the real component, so hover, press and scroll.


    01 · Buttons

    One button, five layers of light.

    Each step adds one detail. The last one is the button on every page: graphite with a silver edge in light mode, and silver in dark mode, because a dark button disappears on black.

    1. Start free

      1 · Flat

      A plain pill. Correct, and forgettable.

    2. Start free

      2 · Light from above

      A graded face and a soft pool of ceiling light.

    3. Start free

      3 · Silver rim

      A 1px edge of polished silver that reflects unevenly, like real metal.

    4. Start free

      4 · Brushed + engraved

      Fine brushed grain in the face, and a label pressed into it.

    5. Start free

      5 · Edge + shadow

      A crisp outer line and three soft shadows seat it on the page.

    Start free
    Graphite · primary
    Read the docs
    Pearl · secondary
    See pricing
    Ghost · quiet
    Start freeDemo
    Silver + outline · on ink
    Start free
    At three times the size: the silver edge catches light unevenly, the grain runs sideways like brushed steel, and the label sits pressed into the surface.
    Large · 40pxMedium · 36px

    Two sizes · 14px and 13px labels

    Large for the one action a section asks for, medium for headers and cards. Both stay above the 24px touch minimum, with room to spare.

    Hover: the reflections in the silver edge slide slowly round it, like tilting a piece of metal, and the face catches a little more light. Press: it sinks to 98% in 90ms and the light leaves the face. No arrows, no sweeps, nothing loops.

    02 · Surfaces

    Four heights, one light.

    Every step up the scale keeps the same light and the same offset-to-blur ratio, so surfaces stack without arguing. In the dark, height is a lighter surface with a lit top edge.

    1 · Rows and chips
    2 · Cards
    3 · On hover
    4 · Floating windows
    Without
    With grain
    Film grain at 3.5% (5% in the dark), static. Shown here at 9% so you can see it. It takes the digital edge off large flat areas.

    A plain border (top) against a hairline that fades out at both ends (bottom). Used between every section.
    A lit rim and a ceiling light on ink panels: light catching the edge of a black surface.

    03 · Controls

    Things you touch should feel touched.

    Fields sit slightly into the page and glow when you focus them. The slider has a lit pearl of a thumb. The tab highlight glides instead of jumping.

    $npx rchursin scan
    42

    The pill glides here in 500ms.

    An in-out curve, because it moves while on screen.

    Use the arrow keys too.


    04 · Motion

    Quick to answer. Slow to arrive.

    Three curves do all the work. Press Play to feel the difference against the browser default.

    ease-lux · 450ms

    Hovers, presses, menus. Quick to answer, soft to land.

    ease-lux-expo · 1100ms

    Arrivals and count-ups. Long and calm.

    ease-lux-spring · 700ms

    One-off landings, like the stamp. 1.5% overshoot.

    ease (browser default) · 450ms

    For comparison. Rushes the start, drags the end.

    If your system asks for reduced motion, the squares jump straight to the end.

    Press
    90ms
    Hover in / out
    160 / 450ms
    Arrival
    900–1100ms
    Stagger
    70ms a step

    05 · Type

    Tighter as it grows. Wider as it shrinks.

    Geist has no optical sizes, so letter-spacing does that job: big words pull together, small capitals open up. Numbers always line up.

    Display

    84px · 500 · −0.05em

    Frame what works.


    Heading

    40px · 500 · −0.025em

    Usage isn’t usefulness.


    Body

    18px · 400 · 0 · 65ch

    Short sentences, plain words. Lines stop at about 65 characters so the eye never loses its place.


    Label

    Mono 11px · 500 · +0.14em · caps

    Fig. 2 · Tokens per turn


    Figures

    Tabular · −0.04em

    $1.84 · 212 · 8,000


    06 · Moments

    A little magic, used sparingly.

    Each page gets at most one signature moment. Here are all of them, with two you can try right here.

    Hover (or tab to) the logo: the underscore blinks like a cursor, three times.
    ~8,000~8,000
    The frame draws itself and the figure counts up, once.
    • Every header

      The cursor in the logo

      Hover the logo and its underscore blinks three times, like a cursor waiting for you.

    • Closing panels, Home 04

      The frame draws itself

      The L grows out of its corner, then the square settles in. The logo, assembling.

    • Home 03 receipt

      A stamp that lands

      The verdict arrives with a small spring, as if pressed by hand.

    • Figures on 01 and 03

      Numbers that count once

      They rise from zero the first time you see them, then stay still.

    • Home 04 hero

      A lens of light

      The field of skill names surfaces word by word, and a soft light follows your pointer across it.

    • Every header

      Glass that appears when needed

      Clear at the top of the page. Frosted, with a hairline, once you scroll.

    • Product shots, Magic UI

      One lap of light

      The border beam runs once when it arrives and again when you hover. It never loops on its own.

    • Cards on every page

      A pool of light under the cursor

      Cards lift two pixels and catch a soft light where your pointer is.

    The rules

    Restraint is the luxury.

    One light, from above
    Every highlight sits on a top edge, every shade on a bottom edge. Nothing contradicts it.
    Quick to answer, slow to arrive
    Presses take 90ms and hovers 150ms. Things entering the page take 900–1100ms. Exits are faster than entrances.
    Hairlines before shadows
    Depth comes from 1px rings and surface tone first. Shadows stay faint and soft.
    Nothing loops forever
    Shimmers run once or twice. The cursor blinks four times. Only the run wall moves on, and it has a pause button.
    Motion is optional
    With reduced motion on, every arrival, slide of light, spring and count-up is skipped and the content is simply there.
    Black and white only
    Greys carry the hierarchy. No colour, ever, so the craft has to do the work.

    • Docs
    • Pricing
    • Changelog
    • Privacy
    • Terms

    © 2026 RChursin_