Internal · Design System v1

Brand style guide.

A single source of truth for Zentru's Bauhaus visual system — primary red/blue/yellow on off-white and ink, sharp corners, heavy borders, geometric sans typography. Use these tokens for every new screen.

01 — Foundations

Bauhaus, by conviction

The system is intentionally restricted: three primaries, two neutrals, one type pair, zero radius. If a screen needs more, the screen is wrong, not the system.

Principle
Tokens, not hexes

Never write text-white or bg-[#000]. Use semantic Tailwind classes wired to src/styles.css.

Principle
Sharp corners

All radius variables are 0px. Don't override with rounded-* on shipped UI.

Principle
Heavy ink borders

Default border is border-2 border-ink. Shadows are reserved; structure carries the weight.

02 — Color

Palette & semantic tokens

Five core colors, mapped onto semantic roles. Use the role (primary, accent, destructive) in components; the core names exist for one-off Bauhaus compositions.

Core palette

Bauhaus Paper
#FBFAF7
--bauhaus-paper
oklch(0.985 0.003 85)
Page background. Warm off-white.
Bauhaus Ink
#000000
--bauhaus-ink
oklch(0 0 0)
Foreground text, borders, rules.
Bauhaus Blue
#0000FF
--bauhaus-blue
oklch(0.452 0.313 264.05)
Primary. CTAs, eyebrows, focused links.
Bauhaus Yellow
#FFD700
--bauhaus-yellow
oklch(0.879 0.171 91.79)
Accent, highlight, focus ring. Use sparingly.
Bauhaus Red
#C84A2C
--bauhaus-red
oklch(0.55 0.18 27)
Destructive only. Never decorative.

Semantic tokens

background
--background
= --bauhaus-paper
Page surface.
foreground
--foreground
= --bauhaus-ink
Body text on background.
primary
--primary
= --bauhaus-blue
Primary actions.
secondary
--secondary
oklch(0.93 0.005 85)
Quiet surface, secondary buttons.
muted
--muted
oklch(0.93 0.005 85)
Subdued zones, table headers.
accent
--accent
= --bauhaus-yellow
Highlight blocks, badges.
destructive
--destructive
= --bauhaus-red
Delete / dangerous actions.
card
--card
oklch(1 0 0)
Elevated card surface.
03 — Typography

Space Grotesk · IBM Plex Sans · IBM Plex Mono

Display = Space Grotesk for headlines and brand voice. Body = IBM Plex Sans for prose and UI. Mono = IBM Plex Mono for eyebrows, code, ledger figures.

Display / H1
font-display text-7xl font-bold
The quick brown fox jumps over $1,000.00
Display / H2
font-display text-4xl font-bold
The quick brown fox jumps over $1,000.00
Display / H3
font-display text-2xl font-semibold
The quick brown fox jumps over $1,000.00
Body / Lead
text-lg text-muted-foreground
The quick brown fox jumps over $1,000.00
Body / Base
text-base
The quick brown fox jumps over $1,000.00
Body / Small
text-sm text-muted-foreground
The quick brown fox jumps over $1,000.00
Eyebrow / Mono
font-mono text-xs uppercase tracking-[0.25em]
The quick brown fox jumps over $1,000.00
Display
font-display
Aa Bb 0123

Space Grotesk · 500 / 600 / 700

Body
font-sans (default)
Aa Bb 0123

IBM Plex Sans · 400 / 500 / 600

Mono
font-mono
Aa Bb 0123

IBM Plex Mono · 400 / 500

04 — Spacing

4 px base scale

Tailwind's default 4 px scale. Prefer 4, 8, 12, 16, 24, 32, 48, 64. Section padding is typically py-16 to py-24.

4px
p-1 · gap-1 · m-1
8px
p-2 · gap-2 · m-2
12px
p-3 · gap-3 · m-3
16px
p-4 · gap-4 · m-4
24px
p-6 · gap-6 · m-6
32px
p-8 · gap-8 · m-8
48px
p-12 · gap-12 · m-12
64px
p-16 · gap-16 · m-16
05 — Borders & shape

2 px ink, zero radius

Borders carry the visual weight that shadows would carry elsewhere. The radius scale is overridden to 0 across the board.

Default
border-2 border-ink
Emphasis
border-4 border-ink
Pending
border-2 border-dashed

Avoid shadow-* utilities except for popovers and modals. Never combine rounded-* with the design system on shipped UI.

06 — Iconography

lucide-react, currentColor

One icon library: lucide-react. Icons inherit color from the parent (currentColor) and use a 2 px stroke at 24 px by default. Bump to 32 px for hero metrics; drop to 16 px inside dense rows.

Sizes
16px
20px
24px
32px
Stroke weight
1.5
2
2.5
ShieldCheck
import { ShieldCheck } from "lucide-react"
FileText
import { FileText } from "lucide-react"
Coins
import { Coins } from "lucide-react"
Scale
import { Scale } from "lucide-react"
Lock
import { Lock } from "lucide-react"
ArrowRight
import { ArrowRight } from "lucide-react"
07 — Components

Building blocks

Use shadcn primitives from src/components/ui/*. They already consume the semantic tokens — do not re-skin them with raw colors.

Buttons
Badges
Default
Secondary
Outline
Destructive
Input
Card

Cards default to bg-card with a 2 px ink border. Wrap them in a section with py-16 spacing.

08 — Don'ts

What breaks the system

Don't
  • Generic purple-on-white SaaS gradients.
  • Soft drop shadows in place of borders.
  • Rounded corners (rounded-lg, rounded-full on cards).
  • Raw hex values in JSX (text-[#0000FF]).
  • Mixing more than one icon library.
  • Using red for anything other than destructive actions.
Do
  • Reach for bg-primary, bg-accent, bg-card first.
  • Lean on border-2 border-ink for structure.
  • Use font-mono uppercase eyebrows above section headlines.
  • Keep yellow as a highlight, not a fill for big surfaces.
  • Pair every CTA with a clear ArrowRight from lucide.
ZENTRU

Fiduciary-SaaS for West Virginia Irrevocable Community Trust Funds. Powered by Stellar. Settled by Stripe.

Compliance
  • WV Uniform Trust Code §44D
  • NAICS 523991 · 525920 · 511210
  • SOC2-aligned RBAC · US data residency
Stellar
  • Testnet · Horizon
  • 2-of-3 multisig · Master key weight 0
  • SHA-256 anchored memos
Learn
Allow Zentru to detect your country from your IP address to tailor this jurisdictional disclaimer? Until you accept, we only read your browser timezone (no network call).
detected: default · nonedefault

Zentru is an administrative software provider operating under W. Va. Code § 30-2-4 guidelines. It does not provide formal legal or tax counsel. All legal instruments must be verified with an attorney licensed in your home jurisdiction.

Last updated

Zentru is recordkeeping and workflow software for grantors, trustees, and beneficiaries of West Virginia Irrevocable Community Trust Funds. It helps users draft, sign, anchor, and audit trust documents and on-chain disbursements under the WV Uniform Trust Code.

It does not provide legal, tax, or investment advice, custody client funds, act as a bank or trust company, or move real money on a production blockchain. All Stellar activity occurs on the public testnet.

Zentru is a technology platform provided by Zentru Inc., a West Virginia corporation. Not a bank. Not legal advice. (SaaS Safe Harbor — W. Va. Code §30-2-4.) Terms of ServicePrivacy Policy

Automated Fiduciary Logic is governed by W. Va. Code §44D and executed via the Stellar Network. Stellar transactions are executed on the public testnet — no real value is moved.