Brand identity & design system

One system behind every Jinba surface — the marks, the warm sand palette, serif headings over a precise grotesk, and the tokens that hold it all together. This page documents the system and ships the assets, so anything built on Jinba looks like Jinba.

Logo System

Three marks, one voice

Every core mark is a single-color SVG. In code it is driven by currentColor — one file takes whatever text color surrounds it, in light and dark. The downloadable files ship with the brand brown baked in so they open ready to place, plus PNG recolors for every surface.

Glyph

The standalone mark. Use when the brand is already established in context.

Lockup · Standard

The primary configuration. Default for most applications.

Lockup · Compact

Condensed lockup for space-constrained applications.

Sub-brands

Products carry the shared glyph geometry with a product accent color. The family stays recognizably Jinba; the accent does the telling apart. Each ships as a glyph and a lockup.

Color

Two scales, one inversion

Fourteen stops per scale, defined in oklch. Dark mode is not a second palette — the scale flips, and every semantic token adapts automatically. Components never touch raw stops.

Sand

--sand-0 … 1000

Brand primary. A warm scale drawn from sand, clay, and roasted wood.

0 #FFFFFF
50 #FAF8F3
75 #F7F5EF
100 #F4F1EB
200 #EAE3D7
300 #DCCBB3
400 #CAB296
500 #B59575
600 #9E7754
700 #835836
800 #5A3921
900 #342115
950 #2B1C13
1000 #000000
#000000
#1A120E
#231710
#2E2019
#413026
#694F3E
#93715A
#AC8B70
#BEA083
#CEB69A
#DCCFBC
#EAE7E2
#F3F3F3
#FFFFFF

Top: light mode. Bottom: the same variables in dark mode.

Neutral

--neutral-0 … 1000

Same lightness curve as Sand with near-zero chroma and a slight warm undertone.

0 #FFFFFF
50 #F8F8F8
100 #EFEFEE
200 #E2E2E1
300 #CECDCC
400 #B8B6B3
500 #9E9B98
600 #837F7C
700 #66625F
800 #44413F
900 #272625
950 #21201F
1000 #000000
#000000
#141414
#242423
#353434
#575553
#7D7875
#97918C
#ABA59E
#BFB9B3
#D4D0CB
#E9E8E4
#F4F3F2
#FFFFFF

Top: light mode. Bottom: the same variables in dark mode.

Semantic tokens

The only color API components should use. Each token resolves to a scale stop and flips with the scale in dark mode.

Token Resolves to Usage Swatch
--background sand-100 Page background
--background-raised sand-50 Cards, panels
--background-inset sand-75 Wells, code blocks
--background-sunken sand-200 Recessed areas
--foreground sand-900 Primary text
--foreground-muted neutral-700 Secondary text
--foreground-subtle neutral-500 Captions, hints
--border neutral-200 Default borders
--border-strong neutral-400 Emphasized borders
--jinba sand-900 / sand-700 Brand accent (light / dark)

Product accents

Jinba Flow

--flow · #2C50B5

Jinba App

--app · #A22727

Jinba Toolbox

--toolbox · #7D95A1

Typography

Serif voice, grotesk body

Tiempos Text carries the headings at a single weight — regular. Geist handles body and interface text; Geist Mono handles code and data. Japanese headings switch to Zen Old Mincho.

Heading 1 · Tiempos Text 400 · 36 / 48px · tracking -0.025em · leading 1.22

Automation, in one motion

Heading 2 · Tiempos Text 400 · 30 / 36px · tracking -0.025em · leading 1.3

Automation, in one motion

Heading 3 · Tiempos Text 400 · 20 / 24px · tracking -0.015em · leading 1.3

Automation, in one motion

Japanese heading · Zen Old Mincho 400

人馬一体のワークフロー

Body · Geist 400 · 16px · leading 1.5

Jinba pairs people and AI the way rider and horse move together — each doing what it does best. The interface stays out of the way: quiet surfaces, warm neutrals, and typography that reads before it decorates.

Mono · Geist Mono 400 · 14px

const workflow = await jinba.flows.run("daily-digest");

Token Family Foundry Role Notes
font-serif / font-heading Tiempos Text Klim Type Foundry Headings, editorial Weights 400–700 loaded. Use 400 only.
font-sans Geist Vercel Body, UI Variable font, self-hosted.
font-mono Geist Mono Vercel Code, data, labels Variable font, self-hosted.
font-serif-ja Zen Old Mincho Yoshimichi Ohira Japanese headings Weights 400 / 700 / 900.

Textures

Texture library

Photographic and painted textures that give surfaces their warmth — use them sparingly, behind type or as section accents, never as decoration for its own sake.

Field

Landscape fields — hero backdrops and section breaks.

Field 1 texture
Field 1 JPG
Field 2 texture
Field 2 JPG
Field 3 texture
Field 3 JPG
Field 4 texture
Field 4 JPG
Field 5 texture
Field 5 JPG

Brush

Painterly motion strokes — accents, dividers, and masks.

Brush 1 texture
Brush 1 JPG
Brush 2 texture
Brush 2 JPG
Brush 3 texture
Brush 3 JPG
Brush 4 texture
Brush 4 JPG

Layout

One section primitive

Pages are stacks of Section components. Each section picks a container width; spacing between sections is set once, globally.

container-prose ~65ch · Long-form reading
container-sm 768px · Narrow content
container-md 1024px · Standard content
container-lg 1152px · Wide content
container-xl 1200px · Default page container
container-2xl 1440px · Full-bleed layouts

Principles

How to stay on system

Reference semantic tokens (--background, --foreground) in components

Use raw scale values or hard-coded hex in components

Set logo color through currentColor with a text-* class

Recolor, stretch, or add effects to the logo

Use Tiempos Text at weight 400 for every heading

Use bold serif weights or override global heading sizes

Let dark mode come from the scale inversion — for free

Write per-component dark-mode color overrides

Design System

Built to be adopted

The system is live on this site. Bringing it to a new product — Flow, App, Toolbox, or your own surface — takes four steps. The architecture is plain CSS custom properties, so it composes with Radix Themes, Primer, Carbon, or any token-based system.

01

Copy the style files

scales.css (color scales + dark inversions), tokens.css (semantic tokens), and theme.css (Tailwind wiring) are the entire color system. Copy them in unchanged.

02

Load the fonts

Self-host Geist and Geist Mono via @fontsource, Zen Old Mincho for Japanese, and Tiempos Text from licensed woff2 files. No CDN calls.

03

Apply heading defaults

Headings are styled globally — serif family, weight 400, tight tracking, fixed line-heights. Components use bare h1–h3 and inherit.

04

Wire up Tailwind

theme.css registers every scale stop and semantic token as a Tailwind utility: bg-background, text-foreground-muted, border-border, bg-sand-200.

/* Components speak tokens — never raw values */
.card {
  background: var(--background-raised);
  color: var(--foreground);
  border: 1px solid var(--border);
}

/* Dark mode is already handled — the scales invert underneath */

Roadmap: @jinba/design-system

The tokens, scales, fonts, and logo components documented here are headed for a published npm package, so every Jinba product — and products built on Jinba — can adopt the system with one install instead of copied files.