← MaV / Buttons

Primary Button

btn/primary/default fill, white label. Hover goes near-black (btn/primary/hover #171717); focus keeps the fill and adds a 3px brand ring. No loading state exists in Figma.

Default
Hoverlive on :hover too
Focus
Disabled
Primary — states focus ring: 0 0 0 3px rgba(53,46,255,.4)

Variations

Text · Icon left · Icon right · Dropdown · Icon-only. Icons are always 20px, at every size.

Variations — same five for Secondary; Clear has no icon-only

Secondary Button

Transparent with #efefef outline. Hover fills grey and lifts with shadow/sm; focus fills brand blue (btn/secondary/clicked) with white text and a light-blue ring.

Default
Hover
Focus
Disabled
Secondary — states focus: bg btn/secondary/clicked · ring rgba(89,156,219,.4)

Clear (Text-only) Button

No container, zero padding — pure label + optional icons. Color communicates state: default #352eff → hover #7c9dff → focus/pressed #030192. Sizes lg / md / xs only (no sm, no icon-only).

Default
Hover
Focus
Disabled
Clear — btn/textonly/*

Swipe Button

Bottom-sheet trigger: solid btn/swipeup/default, top corners rounded 8px, bottom square (sits flush on a screen edge). Sizes md / lg only. Focus fills the dark pressed blue.

Swipe — btn/swipeup/*radius: 8px 8px 0 0
Live Component Playground

Drag the bar upward (or tap it) to complete. It expands into a full-screen “Processing” takeover, then flips to a success screen with an animated checkmark and a Done button — the exact production flow.

Sizes

xs 24px · sm 32px · md 40px · lg ~52px. Fonts: 12 / 14 / 14 / 18px — icons stay 20px throughout.

Sizes — paddings 8/2 · 12/6 · 16/10 · 16/16

Social Buttons

One neutral surface for every provider — brand color lives only in the icon. White bg, border/subtle outline, radius 8px, shadow/sm, label Bold 14px at every size.

Icon-only
States
Social — sm 32px / md 40px / lg 48px hover: #ececec bg, #dbdbdb border · disabled: 40% icon, #a5a5a5 label

Text Links

Color-only feedback — never underlined. Types Primary / Secondary / Tertiary, sizes md (20px icons) and sm (16px icons), same 14px label. Focus adds the light-blue ring.

Secondary Text link Hover Disabled
Tertiary Text link Hover Disabled
Small Small link
Text links — btn/textonly/* + hard-coded hover shades Primary hover #06111b · Secondary hover #383838 · Tertiary hover #171717

Button Group

Segmented control: one white pill (radius 8px, shadow/sm, #dbdbdb border) holding 2–6 square items split by 1px dividers. Hover fills #ececec; there is no selected state in Figma — hover is the only filled state.

Button group — sm/md/lg items have no radius; the group clips them · checkbox 16px shows a blue ring on item hover

Menu Buttons

Circular quick-action buttons (the Menu component's item primitive). Primary menu/bg-primary #030192 · Secondary menu/bg-secondary #efefef · Tertiary thin border/subtle outline. lg 50px / sm 40px, optional 12px label.

Menu — menu/bg-* tokens

Swipe to Confirm (Slider)

The Figma Swipe Set ships 12 track designs in two shapes (rounded-8 and pill-50) across four families: brand gradient, blue→peach gradient, neumorphic, and white card — plus two-handle toggle pills. The first slider below is live: drag the handle.

Swipe to start
Confirmed
Swipe to start
Swipe to start
Swipe to start
Swipe set — V1 (live) · V1 %100 · V6 pill · V3 neumorphic · V4 card · V9 toggles track 362px · thumb 46px (13px pad + 20px chevrons) · label Medium 20px at 50% opacity
Live Component Playground

Drag the handle all the way to the right to follow. Completing the swipe plays the full-screen takeover — the exact production behaviour, so you can test the real interaction, not just look at a static mock.

Swipe to Follow

MaV Extensions (not in Figma)

Kept from the working system: loading state with spinner, and the full-width mobile CTA. The Figma component set defines neither.

Extensions

Token Reference

TokenLightUsage
--btn\/primary\/default#352effPrimary / Swipe fill
--btn\/primary\/hover#171717Primary / Swipe hover
--btn\/primary\/clicked#030192Pressed / Swipe focus fill
--btn\/primary\/disabled#e5e5e5Disabled fill
--btn\/secondary\/default-outline#efefefSecondary border
--btn\/secondary\/clicked#352effSecondary focus fill
--btn\/textonly\/default#352effClear / Text link color
--btn\/textonly\/hover#7c9dffClear hover
--btn\/sliding\/default#352effSlider thumb / done track
--btn\/swipeup\/default#352effSwipe button fill
--menu\/bg-primary#030192Menu circle, primary
--focus\/primaryrgba(89,156,219,.4)3px focus ring (Secondary/Social/Text link)
--shadow-focusrgba(53,46,255,.4)3px focus ring (Primary/Swipe)
--shadow\/sm4× rgba(0,0,0,.05)Resting elevation (Secondary hover, Social, Group)