Bantu EcommerceDesign system
v0.1
BE AGENCY / DESIGN FOUNDATIONS

One language.
Every experience.

The foundations for everything we build at Bantu Ecommerce. A shared system of color, type, and reusable components, grounded in the BE Agency library.

691Design variables
Light + darkColor modes
Manrope44 type styles
26Effect styles
Source linked

Foundations are extracted from Figma. The component recipes below are project implementations using those tokens.

01 / FOUNDATIONS

Color with purpose.

Sky is our brand. Neutral brings balance. Semantic color makes status clear.

Brand · Sky

--be-colors-brand-*

Neutral

--be-colors-neutral-*

Success · Green

--be-colors-green-*

Warning · Yellow

--be-colors-yellow-*

Error · Red

--be-colors-red-*

Semantic color, in both modes.

Use roles in interfaces so colors adapt with the theme.

Figma roleLightDark
bg-primary#FFFFFF#0A0A0A
bg-secondary#FAFAFA#171717
text-primary (900)#171717#FAFAFA
text-secondary (700)#404040#D4D4D4
border-primary#D4D4D4#404040
bg-brand-solid#0284C7#0284C7
Brand / 900 → 600A familiar blue.
A clear direction.
45° linear gradient
02 / FOUNDATIONS

A voice in every size.

Manrope for display and body. Four weights, eleven sizes, one consistent rhythm.

Manrope

Aa Bb Cc Dd Ee Ff Gg Hh Ii Jj Kk Ll Mm
Nn Oo Pp Qq Rr Ss Tt Uu Vv Ww Xx Yy Zz

0123456789 & @ ! ? %

AaRegular400
AaMedium500
AaSemibold600
AaBold700
Display 2xl72 / 90px

Make it matter.

Display xl60 / 72px

Make it matter.

Display lg48 / 60px

Make it matter.

Display md36 / 44px

Good design makes room for clarity.

Display sm30 / 38px

Good design makes room for clarity.

Display xs24 / 32px

Good design makes room for clarity.

Text xl20 / 30px

Good design makes room for clarity.

Text lg18 / 28px

Good design makes room for clarity.

Text md16 / 24px

Good design makes room for clarity.

Text sm14 / 20px

Good design makes room for clarity.

Text xs12 / 18px

Good design makes room for clarity.

03 / FOUNDATIONS

Room to breathe.

A shared spacing scale keeps layouts intentional, from a 2px detail to a 160px section gap.

spacing-none0px
spacing-xxs2px
spacing-xs4px
spacing-sm6px
spacing-md8px
spacing-lg12px
spacing-xl16px
spacing-2xl20px
spacing-3xl24px
spacing-4xl32px
spacing-5xl40px
spacing-6xl48px
spacing-7xl64px
spacing-8xl80px
spacing-9xl96px
spacing-10xl128px
spacing-11xl160px
Desktop container1,280pxbe-container
Desktop padding32px≥ 768px viewport
Mobile padding16px< 768px viewport
Paragraph width720px--be-paragraph-max-width
04 / FOUNDATIONS

Shape and depth.

Soft corners and considered shadows create a clear hierarchy.

none0px
xxs2px
xs4px
sm6px
md8px
lg10px
xl12px
2xl16px
3xl20px
4xl24px
full9999px

Elevation

Shadow colors follow the source light and dark modes.

Shadowxs
Shadowsm
Shadowmd
Shadowlg
Shadowxl
Shadow2xl
Shadow3xl
05 / COMPONENTS

Make the next step clear.

A consistent action hierarchy, with keyboard focus and disabled states built in.

ui/button
Hierarchy
Sizes
States
Use Tab to inspect focus states.

Primary actions use Brand 700 for readable white labels. Brand 600 remains the original Figma brand token.

06 / COMPONENTS

A little context.

Compact labels for status and categories. Always pair color with meaningful text.

ui/badge
Status
DraftIn progressPublishedNeeds reviewFailed
Sizes
SmallMediumLarge
07 / COMPONENTS

Ask with clarity.

Labels, helpful hints, and visible feedback make forms easier to complete.

ui/input · field · checkbox · switch

We’ll only use this for project updates.

A few words about what you’re building.

This form is a local interaction example.

Enter a valid email address.

Unavailable fields keep their label and context.

08 / COMPONENTS

Keep people informed.

Feedback that explains what happened and what to do next.

ui/alert

Changes saved

Your project is up to date and ready to share.

A little context helps

Use clear, specific feedback to explain what happens next.

Review before publishing

A few project details still need your attention.

We couldn’t save your changes

Check your connection and try again.

09 / COMPONENTS

Better together.

A small composition built entirely from the same tokens and components.

ui/card
Example

A consistent starting point.

Tokens and components working together in a simple project card.

Bantu Ecommerce

Built on the BE Agency foundations.

Ready when you are.
10 / RESOURCES

Build from here.

Use semantic tokens for interfaces and shared components for consistent behavior.

Compose components

import { Button } from "@/components/ui/button"
import { Input } from "@/components/ui/input"

<Button variant="default" size="lg">
  Start your project
</Button>
<Input type="email" aria-label="Email" />

Apply the foundations

/* Tailwind utilities */
text-display-md font-semibold
bg-background text-foreground
rounded-md shadow-sm

/* Original Figma variable */
gap: var(--be-spacing-3xl);
color: var(--be-colors-text-text-primary-900);
A traceable foundation.

All 691 variables, 44 text styles, and 26 effects are saved in src/design-system/figma-tokens.json. Run bun run tokens:generate after updating that snapshot. See the README for component usage and conventions.