Tokens

These tokens are the baseline shared across Payd Labs product UIs. They are extracted from Stables, Sentinel, Knowhere, Dispatch, OneLink, and Secret Share.

Color

TokenLightDarkUse
--color-primary#10263E#e2e8f0Payd navy, dark-mode primary text
--color-primary-light#1a3a5c#cbd5e1Navy hover or emphasis
--color-primary-dark#0a1829#f1f5f9Deep navy, dark text on green
--color-accent#18D26E#4ae08ePrimary action, success, selected
--color-accent-dark#12a557#4ae08eAccent text on pale green
--color-success#18D26E#4ae08ePositive status
--color-warning#f59e0b#fbbf24Attention, pending, partial
--color-error#ef4444#f87171Failure, destructive, invalid
--color-info#3b82f6#60a5faInformational state
--color-surface#ffffff#0f1419App background or card surface
--color-surface-secondary#f8fafc#161b22Page background, table header
--color-surface-tertiary#f1f5f9#1c2128Hover, input fill, skeleton
--color-border#e2e8f0#30363dDefault 1px border
--color-border-medium#cbd5e1#484f58Hover or stronger border
--color-text#10263E#e6edf3Body text
--color-text-secondary#475569#8b949eSecondary labels
--color-text-tertiary#94a3b8#6e7681Hints, timestamps

Alpha Tokens

Use alpha tokens instead of new one-off colors:

--color-primary-50: rgba(16, 38, 62, 0.05);
--color-primary-100: rgba(16, 38, 62, 0.1);
--color-accent-50: rgba(24, 210, 110, 0.05);
--color-accent-100: rgba(24, 210, 110, 0.1);
--color-accent-200: rgba(24, 210, 110, 0.2);

Typography

TokenValueUse
--font-heading"Space Grotesk", sans-serifHeadings, metric values, nav labels, badges
--font-body"Nunito", sans-serifBody text, forms, tables, descriptions
--font-mono"JetBrains Mono", monospaceIDs, addresses, refs, code, OTP input

Radius

TokenValueUse
--radius-sm0.375rem / 6pxTiny pills, compact action chips
--radius-md0.5rem / 8pxButtons, inputs, nav items, panels
--radius-lg0.75rem / 12pxCards, login panels, tables
--radius-xl0.875rem / 14pxLarger workflow cards
--radius-full9999pxPills, avatars, circular icons

Use 8px as the default control radius and 12px as the default card radius. Avoid larger radius unless the component is intentionally soft, isolated, or round.

Shadows

--shadow-soft: 0 2px 8px -2px rgba(16, 38, 62, 0.08);
--shadow-medium: 0 4px 16px -4px rgba(16, 38, 62, 0.12);
--shadow-strong: 0 8px 24px -8px rgba(16, 38, 62, 0.16);
--shadow-glow-accent: 0 0 20px -5px rgba(24, 210, 110, 0.4);

Default cards often use border only. Use --shadow-soft for login panels, elevated menus, or card groups that need separation. Reserve glow for accent actions that need clear affordance.

Spacing

SizeValueUse
14pxIcon gaps, tiny dividers
28pxControl inner gaps
312pxCompact cards, nav stack, table gaps
416pxSmall screen page padding, card padding
520pxCard header/body padding
624pxDesktop page padding
832pxLogin header spacing, major section separation

Motion

Motion is short and functional:

  • Theme and color transitions: 150-200ms.
  • Page or route fade: 150-300ms.
  • Enter-up motion: 8-12px vertical movement.
  • Active button/card scale: 0.98.
  • Skeleton shimmer: 1.5s where loading is meaningful.