API Documentation

Components

UI component library aligned with shadcn/ui patterns and the Five African Minerals palette.

Buttons

All buttons use 12px border-radius. Minimum touch target: 44px.

Mineral Buttons

Button Variants

Button Sizes

Badges & Chips

Pill-shaped badges use 9999px border-radius.

Mineral Badges

cobalt tanzanite malachite gold terracotta

Semantic Badges

Success Warning Error Info

Outline Badges

cobalt tanzanite malachite gold terracotta

Chips (Removable)

React ร— TypeScript ร— Node.js ร— Tailwind ร—

Labels

Form labels with required indicators and helper text.

We'll never share your email.

Password must be at least 8 characters.

Avatars

User avatars with fallback initials. Sizes defined in components.avatar.sizes.

Sizes

JD
xs
JD
sm
JD
default
JD
lg
JD
xl

Mineral Avatars

C
T
M
G
T

Avatar Group

C
T
M
G
+3

Checkboxes & Toggles

Checkbox size: 20px | Toggle: 44px ร— 24px

Checkboxes

Toggle Switches

Cards

Cards use 16px border-radius with var(--shadow-card).

Standard Card

Basic card with title and content.

Accented Card

Primary color background fills the card.

Clickable Card

Hover for elevation effect.

Brand Cards (Accented)

N
nyuchi

Collective action, pollination, community building

M
mukoko

Where community gathers and stores

S
shamwari

AI companion that serves

Alerts

Alerts use 4px left border accent with container background.

Information

This is an informational message.

Success

Action completed successfully.

Warning

Please review before continuing.

Error

Something went wrong. Please try again.

App Icons

Ecosystem app icons use 24px border-radius.

n
nyuchi
m
mukoko
s
shamwari
n
nhimbe

Icon Groups

Common icon patterns for actions and navigation.

Action Icons

Icon-Only Buttons

Icon Button Group (Pill Container)

Group related icon buttons in a pill container for compact action bars.

TM
.icon-button-group { display: inline-flex; border-radius: var(--radius-badge); overflow: hidden; }
.icon-button-group button { width: var(--btn-icon-size); height: var(--btn-icon-size); flex-shrink: 0; }

Design Tokens

Radii & Shadows

TokenValueUsage
--radius-button12pxButtons, CTAs
--radius-card16pxCards, containers
--radius-input8pxInputs, text fields
--radius-badge9999pxPills, tags
--radius-appIcon24pxApp icons
--shadow-card0 4px 20px rgba(20, 20, 19, 0.08)Card elevation
--shadow-card-hover0 8px 30px rgba(20, 20, 19, 0.15)Card hover state

Button Sizes

SizeHeightPaddingFont Size
sm32px6px 12px12px
default40px10px 20px14px
lg48px14px 28px16px
icon40px ร— 40px (icon: 20px)

Avatar Sizes

SizeValue
xs24px
sm32px
default40px
lg48px
xl64px

Form Components

ComponentPropertyValue
InputHeight40px
InputPadding10px 14px
InputFont Size14px
CheckboxSize20px
ToggleDimensions44px ร— 24px
ToggleThumb Size20px
BadgePadding4px 12px
BadgeFont Size12px

shadcn/ui Integration

These components are designed to match shadcn/ui patterns. When implementing:

  • Use Tailwind CSS with the brand tokens as CSS variables
  • Install shadcn/ui components and customize with mineral colors
  • Apply container colors for accented cards (not borders)
  • Maintain 12px button radius and 16px card radius
  • Use mineral badges for status indicators
// tailwind.config.ts
extend: {
  colors: {
    cobalt: '#0047AB',
    tanzanite: '#4B0082',
    malachite: '#004D40',
    gold: '#5D4037',
    terracotta: '#8B4513',
  },
  borderRadius: {
    button: '12px',
    card: '16px',
    input: '8px',
  }
}