Paisa 2.0 β Rupifi Design System
A token-driven fintech design system rebuilt from Rupifi's original component library into a modern three-tier architecture β primitives β semantic tokens (light + dark) β components.
Brand blue, a green-teal accent, and a coral tertiary, on a soft navy ink instead of pure black.
How this is organized
Three tiers, same as Figma: primitives (raw ramps) β semantic (role-based, light+dark) β components (consume semantic tokens only β never a primitive or a raw hex value).
tokens/generate_tokens.py β single source of truth, warns on WCAG AA failures
tokens/css/tokens.css β generated CSS custom properties (light + dark)
preview/components.css β component styles, tokens only
preview/index.html β this page
Usage guidelines
Do
- Use semantic tokens (
surface/*,text/*) β never raw hex or primitives β in components. - Reserve status colors (info / success / warning / error / positive) for their defined meaning only.
- Use
radius/control(8) for buttons and inputs,radius/control-compact(16) for the small button.
Don't
- Don't introduce a second typeface β Inter only, vary by weight.
- Don't use pure black (#000) for text or fills β use the navy neutral ink.
- Don't invent new status hues β extend the existing five-role model.
Color
Three tiers: primitives (raw ramps) β semantic (role-based, light+dark) β components. Status colors carry fixed fintech meaning.
Status roles
Primitive ramps
Semantic β key roles
Typography
Inter, one family across weights Extra LightβSemi Bold. No secondary typeface. Button and control labels use Regular; headings and titles use Semi Bold.
Spacing & Radius
4px base scale. Buttons and inputs use an 8px radius (16px on the small button); cards use radius/container (32); badges stay tight at 6px.
Spacing scale
Radius scale
Buttons
Three-slot layout β leading-edge slot Β· centerGroup (adjacent icon + label + adjacent icon) Β· trailing-edge slot β so the label always stays optically centered. Icons inherit the label's color automatically.
Appearance
Icon slots β edge vs. adjacent
Sizes
States
Icon Button
Same appearance and size model, square, icon-only. Icon recolors per appearance/state.
Input / Text Field
Label β field (leading/trailing icon + value) β helper/error text. States: default, focus, filled, error, disabled.
Selection Controls
Checkbox (unchecked/checked/indeterminate), Radio, and Switch β each with an enabled and disabled state.
Badges & Chips
Badge β 8 tones Γ subtle/solid. Chip β large filter chips (unselected/selected/disabled) and small tag chips with a leading icon instead of a dot.
Badges β subtle
Badges β solid
Filter chips (large)
Tag chips (small)
Feedback
Snackbar β subtle tone background with a solid edge bar. Tooltip β compact dark label with a directional arrow.
Snackbar
Tooltip
Dropdown & OTP
Select β trigger field with label, value/placeholder, and chevron. OTP β 4 and 6 digit entry, with default / focused / filled / error states.
Select
OTP β 4 digit
OTP β 6 digit
List
List Item β leading icon, title + optional subtitle, and trailing chevron. States: default, selected, disabled.
Bottom Sheet
Composed from Button + Icon Button. Used for confirmations, filters, and quick actions.
Dashboard Header
Web app header composed from Input (search) + Icon Button (notifications) + avatar.
Rupifi AI
Gradient mark for AI-assisted features, blending brand blue, accent teal, and coral tertiary in a fluid radial composition. Provided at 4 sizes.