The Mark
bHive's mark is a flat-top seven-cell honeycomb — six petals around a lit center. The exact same geometry appears in the app icon, the animated Overview hero, and the small sidebar mark, so every surface reads as one object. The bee was retired in July 2026; the honeycomb is the identity now.
Construction
Geometry
Flat-top hexagons — vertices at i · π/3. The six petals sit at the axial neighbors of the center: (±1.5r, ±0.866r) and (0, ±1.732r), so cells tile edge-to-edge. Each cell is drawn at 0.94× its vertex radius, leaving a thin grout.
App-icon frame
Rounded-square canvas: margin 10% of the tile, corner radius 22.5% of the inner width. A honey glow pool (radius 44%) sits behind the comb; cell vertex radius is 11.8% of the width. Rim stroke max(0.6%, 0.5px).
Cell gradients
Petals — top #FFC752 → bottom #BD750F, filled top-down (−90°).
Lit center — top #FFE89E → bottom #ED9E1F, with a soft inner bloom.
Rim — #5C3B0A at 50–55%.
Live vs. still
The Overview hero is the mark brought to life: a 30 fps TimelineView with a slow breathe and a light wave traveling the petals. The app icon is simply its resting frame. Both honor Reduce Motion.
Clear space & minimum size
Breathing room
Keep clear space around the lockup equal to the height of one honeycomb cell — never crowd the mark with other graphics.
Minimum sizes: the mark renders down to 22 px (sidebar); the app icon ships the full set 16 → 1024 px. Below 22 px, use the solid menu-bar template instead.
Wordmark
The name is always bHive — lowercase b, capital H, set in Comfortaa Bold (the brand face). Company is bHive Software. Never all-caps or all-lowercase, and never "BHive" or "bhive".
| Use | Face | Size / weight | Where |
|---|---|---|---|
| Sidebar wordmark | Comfortaa | 16 pt · Bold | Beside the 22 px mark, top of sidebar |
| About / splash | Comfortaa | 26 pt · Bold | Settings ▸ About |
| Attribution line | SF Pro | caption | "Developed by Brandon Edling · bHive Software" |
The letter b is set one weight lighter than Hive in display lockups (a subtle nod to the honeycomb cell), but a single uniform weight is correct at UI sizes.
Ready-made lockups live in docs/brand-kit/logo/ — horizontal & stacked, in dark (honey/charcoal), cream (ink/cream), and transparent honey, as SVG + PNG. The SVG wordmark is outlined to glyph paths, so the files render without Comfortaa installed. See §07.
Color
One accent — honey — spent only on what's active. Two deliberate grounds: a warm charcoal dark and a warm cream light, both amber-biased so they never read as flat gray. Tap any value to copy.
Primary accent
Dark world — “warm charcoal” (default)
Light world — “warm cream”
Functional & state colors
These carry meaning, not brand — kept separate from the honey accent.
| Color | Value | Meaning · where |
|---|
Tag auto-palette
Tags without a chosen color get a stable, name-hashed pick from this set. It deliberately excludes honey, orange and yellow — honey means selection, and a honey-tinted tag row was field-tested as looking like a stale selection.
| Swatch | Preset | Source |
|---|
Resolved — website honey unified to the app
The site previously led with a more-orange honey (#E8971A / #F6B733). It now uses the app's canonical stops — #FFB826 accent, #FFC752 soft, #BD750F deep — the app's own honeycomb gradient. The app is the source of truth; every surface conforms to it.
Website palette (reference)
| Token | Light | Dark | Role |
|---|
Typography
Comfortaa is the brand face — the wordmark and brand/display type — and it's licensed so we can embed it anywhere. Everything else runs on the Apple system faces at runtime: SF Pro for all UI and body text, SF Mono (via tabular digits) for aligned numbers. The only custom-font hook beyond the brand face is the user-selectable plain-text preview font.
Comfortaa
The brand face — wordmark, brand/display headings. Geometric-rounded, warm, distinctive. SIL Open Font License, so it embeds in the app, website & PDFs. Weights 300–700 (Bold is the wordmark).
SF Pro
Body, labels, metadata, controls — the whole UI. Used as the OS runtime system font (allowed); never embedded or used as the wordmark.
SF Mono
Tabular digits — counts, timers, byte sizes. Applied as .monospacedDigit(), not a wholesale face swap.
Why Comfortaa, not San Francisco?
Apple's font license forbids embedding SF or using it "to create… website content" or "app icons, logos or… trademark use." A wordmark is a logo, and the website/PDFs embed their type — so SF can't be the brand face. Using SF as the OS runtime UI font is fine and continues. Comfortaa (SIL OFL) is free to embed and use as a logo, everywhere.
Type scale (as used in the app)
Motion
Motion is quiet and quick. UI transitions live in a tight band (0.08–0.16 s); springs are gentle, never bouncy; and everything is gated on Reduce Motion. Bars below are scaled to a 0.6 s reference.
The living honeycomb
Breathe
The whole comb swells on a long sine: 1 + 0.035·sin(t·0.9). The glow pool breathes with it — opacity 0.14 + 0.06·sin(t·0.9).
Light wave
A pulse travels the petals, phased by each cell's angle from center: sin(t·1.9 − angle − dist·0.6). Fast enough to read as alive, slow enough to stay calm.
Frame rate
TimelineView(.animation(minimumInterval: 1/30)) — 30 fps, paused entirely under Reduce Motion.
Discipline
Every one-frame glitch traced back to an async change losing to a synchronous AppKit one. Cure: hook selection/highlight changes synchronously. Motion should never fight the system.
Iconography
System SF Symbols throughout, weighted light-to-regular to sit calmly on the warm grounds. The hexagon is the recurring brand glyph.
The hexagon glyph
hexagon.fill = has content · hexagon = empty. Used for Hives, file placeholders, the About tab, and onboarding — echoing the honeycomb without redrawing it.
Weight & tint
File-type glyphs render at ~0.68× their tile, weight .light. Active icons take the honey tint; everything else stays in ink tones. Symbols use .palette rendering where multi-tone.
Assets & Generation
Every mark is generated from code — nothing is hand-drawn, so the geometry and color stay canonical. Regenerate with the two scripts below.
| Asset | What it is | Generated by |
|---|---|---|
| AppIcon.icns | Honeycomb app icon, dark, full iconset 16→1024 | scripts/make_icon.swift |
| DockIcon-{dark,light}.png | 1024 px dock icons, live-swapped with system appearance | scripts/make_icon.swift |
| AboutBee.png | Transparent honey mark — onboarding hero, drop shelf, About | scripts/make_brand_assets.swift |
| MenuBarBee.png | Solid template comb (macOS tints it) for the menu bar | scripts/make_brand_assets.swift |
| landing/img/{logo,mark}.png | Website copies of the honey mark | scripts/make_brand_assets.swift |
| logo/bHive-{horizontal,stacked}-{dark,cream,honey}.{svg,png} | Full logo lockups — mark + Comfortaa wordmark. Horizontal & stacked; dark (honey/charcoal), cream (ink/cream), transparent honey. SVG (wordmark outlined — no font needed) + PNG. | scripts/make_logo_lockup.swift |
| AccentColor.colorset | Asset-catalog accent = honey #FFB826 | Assets.xcassets |
Regenerate the icon
swift scripts/make_icon.swift <iconset-dir> Resources/
Regenerate all other marks
swift scripts/make_brand_assets.swift
Regenerate the logo lockups
swift scripts/make_logo_lockup.swift
Doctrine
The rules that keep bHive consistent. When a styling choice is ambiguous, these decide it.