DLS Component Catalog
DLS 2025 components

Every component in the system, in one place.

A working catalog of the payments fintech's design language system component library, pulled directly from the live Figma file, one page at a time. Screenshots and specs, not the full 300+ variant grid.

Component catalog

Buttons component

Buttons

The core action control: size, layout (icon/label), hierarchy, state, and destructive variants, covering every button a product surface needs.

Accordion component

Accordion

An accordion is a graphical control element that allows you to expand and collapse sections of content: a list of headers, each tied to a section that expands or collapses on click.

Avatar component

Avatar

The default profile avatar mark: the same page also holds a broader set of men's and women's avatar illustrations for richer, identity-specific placements.

Breadcrumbs component

Breadcrumbs

Path-style navigation trail component, shown here with its collapsed "..." state for deep paths.

Cards component

Cards

Container components for grouping related content: this page defines three variant sets covering padding, image, and icon treatments.

Charts component

Charts

A full data-visualization set: bar, line, gauge, funnel, heatmap, bubble, doughnut, and tree map charts, each with small/medium/large sizing.

Chips component

Chips

Compact, tappable tags for filters and status labels: this page also holds a filter-chips variant and a live "try me" interaction demo.

Date Picker component

Date range

Calendar-based date selection, covering both single-date and range picks with preset shortcuts (last 7 days, this month, etc).

Icons

General action icons, file-type marks, and payment-network icons (Visa, Mastercard, RuPay, UPI). Click through for the full set and construction guidelines. Partner-organization and platform logos live in a separate, access-controlled set and aren't shown here.

Bento: page exists but is empty in Figma (nothing to pull)
More components queued: Tabs, Tables, Search, Modal, Dropdown, and others still to pull

How a component gets built

Inside the design system

Every component in the system is built the same way, so a Button and a Card behave like they came from the same family instead of two different designers' habits.

Foundation

Start from tokens, not values

Colour, spacing, radius, and type all come from the same shared token set. A component never hand-picks a one-off value when a token already exists for it.

Coverage

Every state, every size, by default

Default, hover, focus, disabled, and error states ship with the component from day one, along with its full size scale, instead of being added later per product team as they're needed.

Composition

Built from smaller shared parts

Heavier components like Cards and Chips are assembled from the same primitives (icons, avatars, buttons) rather than redrawn from scratch, so a fix to a primitive fixes every component built on it.

What keeps it consistent

Decisions behind the system
01

One token set backs every surface

A button's corner radius and a card's corner radius come from the same radius scale, not values picked separately for each component. When the scale changes, every component that references it updates together, so nothing quietly drifts out of alignment.

02

Names describe role, not appearance

Variants are named for what they do, primary, secondary, destructive, rather than what they currently look like, orange button, grey button. A name that describes appearance breaks the moment the colour changes; a name that describes role doesn't.

03

Accessibility is built in, not bolted on

Focus rings, colour contrast, and minimum hit-target sizing live in the base component definition. No product team has to remember to add them, because there's no version of the component that ships without them.

  • Specs live with the component, not in a separate doc. Sizing, spacing, and state rules sit on the same Figma page as the component itself, so the spec can't drift out of sync with what's actually shipped.
  • New states start at the definition, never at the usage. A new state or variant is added to the component and its tokens first, then rolled out to the products using it, never patched in ad hoc on one screen.
  • Deprecated patterns are marked, not deleted. Older variants stay visible and flagged instead of disappearing outright, so existing screens that still reference them don't silently break.

What it changes for a project

Why maintain a system at all

A maintained component library isn't overhead sitting outside project work: it's what made wireframe-to-visual-design faster and more consistent on the product case studies this catalog backs.

  • Wireframe to VD is assembly, not redesign. Because every button, card, and form field already exists as a finished, tokenised component, moving from a low-fidelity wireframe to production-ready visual design means placing real components instead of designing each pattern from scratch on every screen.
  • The same components hold up across very different products. A dashboard, a payment flow, and a mobile onboarding screen can all pull from the same catalog and still feel like one system, because the components carry their consistency with them wherever they're used.
  • Fixes and updates land once, not per project. A correction to a component's spacing or a new accessible state is made at the system level and inherited everywhere the component is already in use, instead of being patched into each project separately.
  • Design time shifts to the actual problem. Less time goes into re-deciding how a familiar pattern should look, freeing that time for the parts of a project that are genuinely new.