Skip to content

ui kit

Components ready for your next project.

Buttons, tabs, navbars, pagination and forms from one design system: consistent, accessible and ready to drop into a React and Tailwind CSS codebase.

  • Keyboard-first
  • WAI-ARIA patterns
  • Reduced-motion aware
  • React + Tailwind CSS

01 · Buttons

Buttons for every action

Six variants on one pill shape, three heights (36, 44 and 52px) and honest loading and disabled states.

Variants

One primary action per view; everything else steps back.

  • Focus ring

Sizes

Small, medium and large, with square icon-only buttons to match.

With icons

Leading icons name the action; trailing icons show where it leads.

Loading & disabled

Loading keeps the width, sets aria-busy and announces progress. Press it.

  • aria-busy
  • Live region

Full width

For forms, dialogs and narrow screens.

Groups & segmented control

Join related actions, or pick one option with native radio buttons.

  • Keyboard
  • Radio group
View

02 · Tabs

Tabs, from classic to playful

Every variant follows the WAI-ARIA tabs pattern: arrow keys move between tabs, Home and End jump to the ends, and Tab moves on to the panel.

Underline

The workhorse: a brand indicator glides under the selected tab.

  • Keyboard
  • ARIA
Open tasks
24
Due this week
6
Completed
128

Pill / segmented

For switching views of the same data.

  • Keyboard
  • ARIA

Visitors

8,930+8%

With icons & counts

Badges read out with the tab name, so counts are never visual-only.

  • Keyboard
  • ARIA
  • Can we move the review to Thursday?09:12
  • Invoice #1042 is ready08:40

Wave

A playful bar: the selected day lifts into a wave that springs across.

  • Keyboard
  • Motion-safe

Wednesday

11:00

Visual design presentation.

Vertical

Side navigation for settings pages; arrow up and down move between tabs.

  • Keyboard
  • ARIA

Profile

How you appear to your team.

Name
Alex Morgan

Swipe cards

Drag or swipe sideways; the dots are real tabs for keyboard users.

  • Swipe
  • Keyboard
  • Motion-safe
1 / 3

Plan

Map goals, audience and content before a pixel is drawn.

Vertical swipe

Story-style cards that move up and down.

  • Swipe
  • Keyboard
  • Motion-safe

Swipe up

Or use the dots and arrow keys to move between cards.

04 · Pagination

Pagination for long lists

Numbered, simple, compact and load-more patterns. The current page is announced, and Previous and Next stay focusable at the ends.

Numbered

First, previous, a steady window of pages with ellipses, next and last.

  • aria-current
  • Keyboard

Simple

Previous and next with a live “Page X of Y” readout.

  • Live region

Compact

A small joined control for cards and table footers.

  • aria-current

Load more

Appends the next batch, announces the new count and moves focus to the first new item.

  • Focus management
  • Live region
  • Harbour Coffee2026Design
  • Northwind Legal2026Development
  • Pixel Parade2026Marketing
  • Atlas Fitness2026Design
  • Juniper Dental2026Development
  • Brightside Tours2026Marketing

Showing 6 of 18 projects

05 · Forms

Forms people can finish

Labelled fields with autocomplete hints, clear errors, native selects, checkboxes, radios and switches. The demos never send data anywhere.

Text fields

Default, with an icon, password with a show / hide toggle, error and disabled. Hints and errors are linked to the field.

  • aria-invalid
  • Autocomplete

We'll only use this for receipts.

At least 8 characters.

Enter a URL that starts with https://

Set by your administrator.

Select & textarea

A native select in the field style, and a textarea with a character count.

  • Native select

0 / 280 characters

Checkboxes

Native checkboxes in a fieldset, each with a linked description.

  • Fieldset
  • Keyboard
Email me about

New components, fixes and release notes.

Webinars and meet-ups near you.

One short design tip a month.

Radio cards

Selectable cards built on native radios, so arrow keys move the choice.

  • Radio group
  • Keyboard
Plan

Switches

Instant on / off settings with role=“switch” and a visible label.

  • role=switch
  • Keyboard

Summaries of project activity.

Ask for a code when signing in.

Let clients see your portfolio.

Log in / register

Two forms as tabs, with inline validation that moves focus to the first problem.

  • Tabs
  • Validation
  • Autocomplete
Acme

Welcome to Acme

Log in or create an account to continue. All fields are required.

06 · Foundations

The system underneath

One set of tokens behind every component: a warm brand scale used with restraint, one radius scale, three elevations and three control heights.

Colour

The brand ramp, the roles each shade plays, and a small status set that keeps AA contrast.

  • AA contrast
  1. 50
  2. 100
  3. 200
  4. 300
  5. 400
  6. 500
  7. 600
  8. 700
  9. 800
  10. 900
  11. 950
  • brand-600Primary fill, focus ring
  • brand-700Accent text, hover
  • brand-500Indicators
  • brand-50Selected tint
  • inkText, dark surfaces
  • neutral-600Secondary text
  • neutral-500Muted text, field borders
  • neutral-200Hairlines
SuccessWarningInfoDangerBrandNeutral

Shape & elevation

Four radii and three shadows, each with one job.

  • 6pxCheckboxes
  • 12pxFields
  • 16pxCards
  • FullActions
  • RestControls, cards
  • RaisedSelected pills
  • FloatingMenus, frames

Type & sizing

Inter Tight for headings, Instrument Serif for accents, Inter for text — and three control heights.

DisplayInter Tight

AccentInstrument Serif Italic

Body text for everything elseInter

Let's build

Want these components in your product?

We design and build custom component libraries and design systems that keep your product consistent and accessible.