Design System

Internal reference for SENTIENT Custom Leather UI patterns, typography, and components.

Buttons

Editorial pages use hard-coded ink CTAs. Configurator, account, and checkout flows use shadcn Button primitives normalized to 44px height site-wide.

Site-wide rules

RuleValue
Touch target height44px (2.75rem)
Border radiusrounded-md (0.375rem)
Label sizetext-sm font-medium
Hoveropacity-90 or subtle fill
Disableddisabled + opacity-50
Focusfocus-visible ring
LoadingLoader2 + label change

Button variants

Primary editorial

Configurator, sample kit, and other editorial marketing CTAs on leather-paper-light surfaces.

Classes

inline-flex items-center justify-center rounded-md bg-leather-ink px-6 py-3 text-sm font-medium text-leather-paper-light transition-opacity hover:opacity-90 disabled:opacity-50

States

Default

Hover

Disabled

Focus

Loading

Primary (token)

Experiments homepage, process page, inquiry form, and sign-in modal on shadcn surfaces.

Classes

inline-flex items-center justify-center rounded-md bg-foreground px-6 py-3 text-sm font-medium text-background transition-opacity hover:opacity-90 disabled:opacity-50

States

Default

Hover

Disabled

Focus

Loading

Secondary editorial

Modal footers, dismiss actions, and paired secondary CTAs on editorial surfaces.

Classes

inline-flex items-center justify-center rounded-md border border-leather-ink/20 px-6 py-3 text-sm font-medium text-leather-ink transition-colors hover:bg-leather-ink/5

States

Default

Hover

Disabled

Focus

Loading

shadcn default

Primary actions in quote, checkout, and account flows.

Classes

Button variant="default"

States

Default

Hover

Disabled

Focus

Loading

shadcn outline

Back navigation, edit/cancel actions, and secondary actions in forms.

Classes

Button variant="outline"

States

Default

Hover

Disabled

Focus

shadcn ghost

Header account control and low-emphasis icon actions.

Classes

Button variant="ghost" size="icon"

States

Default

Hover

Disabled

Focus

Full-width primary

Mobile form submits and modal single-action CTAs.

Classes

w-full inline-flex items-center justify-center rounded-md bg-leather-ink px-6 py-3 text-sm font-medium text-leather-paper-light transition-opacity hover:opacity-90 disabled:opacity-50

States

Default

Hover

Disabled

Focus

Loading

Icons on buttons

Icons come from lucide-react. Editorial CTAs usually add a trailing ChevronRight. Icon-only controls use shadcn ghost buttons or native buttons with an explicit aria-label.

RuleValue
Icon librarylucide-react
Decorative iconsaria-hidden="true"
Icon sizingh-4 w-4 (16px)
Trailing spacingml-1 on icon
Icon-only buttonsaria-label required

Trailing chevron

Default forward-action treatment on editorial primary CTAs across configurator, samples, homepage, process, and modal actions.

Classes

inline-flex items-center justify-center rounded-md bg-leather-ink px-6 py-3 text-sm font-medium text-leather-paper-light transition-opacity hover:opacity-90ChevronRight className="ml-1 h-4 w-4" aria-hidden

States

Default

Hover

Disabled

Focus

Loading

Leading icon

Inline icon before label on grouped CTAs such as the header account control and experiments hero button.

Classes

inline-flex items-center justify-center gap-2 rounded-md bg-foreground px-6 py-3 text-sm font-medium text-background transition-opacity hover:opacity-90UserRound className="h-4 w-4" aria-hidden

States

Default

Hover

Disabled

Focus

Loading

Animated arrow

Experiments hero CTA uses a trailing ArrowRight with a subtle hover translate on the icon.

Classes

group inline-flex items-center justify-center gap-2 rounded-md bg-white px-7 py-3.5 text-sm font-medium text-neutral-950 transition-transform hover:-translate-y-0.5ArrowRight className="h-4 w-4 transition-transform duration-300 group-hover:translate-x-0.5" aria-hidden

States

Default

Hover

Disabled

Focus

Loading

Icon only (ghost)

Low-emphasis controls such as the header account icon button and compact toolbar actions.

Classes

Button variant="ghost" size="icon"UserRound className="h-5 w-5" aria-hidden

States

Default

Hover

Disabled

Focus

Icon only (close)

Modal dismiss and mobile menu close controls using a native button wrapper.

Classes

inline-flex h-8 w-8 items-center justify-center rounded-md text-muted-foreground transition-colors hover:text-foregroundX className="h-4 w-4" aria-hidden

States

Default

Hover

Disabled

Focus

Inline external link

Text buttons that open an external resource, such as the Pantone education dialog link.

Classes

inline-flex items-center gap-1 text-sm font-medium text-foreground underline underline-offset-4 hover:opacity-80ExternalLink className="h-3.5 w-3.5" aria-hidden

States

Default

Hover

Disabled

Focus

Loading

Carousel arrow (light)

Homepage feature-tile carousel navigation on bordered editorial surfaces.

Classes

inline-flex h-9 w-9 items-center justify-center rounded-full border bg-background text-foreground transition-colors hover:bg-mutedChevronRight className="h-4 w-4" aria-hidden

States

Default

Hover

Disabled

Focus

Carousel arrow (dark overlay)

Sample kit gallery navigation layered on top of photography.

Classes

inline-flex h-10 w-10 items-center justify-center rounded-full border border-white/70 bg-black/35 text-white backdrop-blur-sm transition-colors hover:bg-black/50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-white/80ChevronRight className="h-5 w-5" aria-hidden

States

Default

Hover

Disabled

Focus

Navigation links

Header and footer links use distinct treatments from CTA buttons. Desktop header links pair a full-height hover fill with the `.leather-link-underline` hairline defined in globals.css.

Header nav link

Desktop header primary navigation. Full-height rectangle with grey hover/focus fill and animated underline on the label span.

Classes

flex h-full items-center px-4 text-sm font-medium tracking-wide text-foreground/80 transition-colors hover:bg-foreground/5 hover:text-foreground focus-visible:bg-foreground/5 focus-visible:text-foreground focus-visible:outline-nonespan className="leather-link-underline"

States

Default

Process

Hover

Process

Active page

Process

Focus

Process

Header account link

Desktop sign-in and account control with a leading UserRound icon and the same underline label treatment.

Classes

flex h-full items-center gap-1.5 px-4 text-sm font-medium tracking-wide text-foreground/80 transition-colors hover:bg-foreground/5 hover:text-foreground focus-visible:bg-foreground/5 focus-visible:text-foreground focus-visible:outline-nonespan className="leather-link-underline"

States

Default

Sign In

Hover

Sign In

Active page

Sign In

Focus

Sign In

Footer nav link

Footer explore links and legal links with a simple color transition on hover.

Classes

text-foreground/80 transition-colors hover:text-foreground

States

Default

About

Hover

About

Active page

About

Focus

About

Mobile menu toggle

Hamburger and close icon button in the header on viewports below md.

Classes

-ml-2 inline-flex h-10 w-10 items-center justify-center rounded-md text-muted-foreground hover:text-foreground

States

Default

Hover

Active page

Focus