# CubeCraftLabs Design System > **Design. Prototype. Ship.** **CubeCraftLabs** is the maker / R&D branch of [CubeCraft Creations](../). Where Creations is the storefront of finished handmade goods — warm, rounded, blue→purple gradient, Nunito — **Labs is the workshop bench where things get designed and built**: technical, dark, precise. The two brands share exactly two things — the **cube** motif and the **CubeCraft** name. Everything else deliberately diverges so Labs reads as its own identity. This is a standalone design system so the two brands can evolve independently: edits here never touch Creations, and vice versa. --- ## Sources - **CubeCraft Creations design system** — the parent brand this diverges from (cube DNA + name only). Its guide describes the warm/gradient storefront identity. - **CubeCraftLabs logo exploration** — `CubeCraftLabs Logo.dc.html` (working lockups) and `CubeCraftLabs Brand Spec.dc.html` (spec sheet), authored in the originating project. - **PNG exports** — `assets/logos/CubeCraftLabs_*.png`. No external codebase or Figma file backs this system yet; it was authored from the logo exploration. If a Labs product codebase appears later, build UI kits from it. --- ## CONTENT FUNDAMENTALS ### Voice & Tone Labs speaks like an **engineer at the bench** — precise, dry, confident. It's the same maker as Creations, but in "build log" mode rather than "shop" mode. - **First-person plural ("we")** for the team; **second-person ("you")** for the reader. - **Sentence case** for prose; **lowercase** for tags/badges; **UPPERCASE** for buttons and eyebrow labels only. - **Short, declarative sentences.** Command-line cadence. "Printed fresh. Hand-finished. Versioned." - **Build/maker vocabulary** — build, ship, prototype, iterate, spec, tolerance, revision. Terminal metaphors (`$ make …`, `✓ build complete`) are on-brand for headers and hero moments. - **Restrained.** Fewer exclamation points than Creations. Precision over enthusiasm. - **No emoji** in UI. Status is shown with the green/red tokens or a `✓`/`✗` glyph, not emoji. **Tagline:** *Design. Prototype. Ship.* ### Casing - Headlines: Sentence case - Nav items: Title Case - Buttons: UPPERCASE, 0.08em tracking - Eyebrows / section labels: UPPERCASE, 0.14em tracking - Tags/badges: lowercase - Body: sentence case --- ## VISUAL FOUNDATIONS ### Color A dark "workshop bench" palette. **Charcoal ground, gold as the single brand accent**, terminal green/red for status. There is no gradient — the Creations blue→purple is explicitly absent. | Token | Hex | Role | |---|---|---| | `--ccl-charcoal` | `#1a1a1a` | Page background | | `--ccl-charcoal-2` | `#202020` | Raised surface | | `--ccl-charcoal-3` | `#262626` | Input / code block | | `--ccl-gold` | `#e5c07b` | Brand accent + logo mark | | `--ccl-gold-dim` | `#caa869` | Gold hover / pressed | | `--ccl-text` | `#d4d4d4` | Primary text | | `--ccl-text-muted` | `#6b6b6b` | Secondary text | | `--ccl-border` | `#2a2a2a` | Hairline borders | | `--ccl-border-2` | `#333333` | Stronger border / grid lines | | `--ccl-green` | `#98c379` | Success | | `--ccl-red` | `#e06c75` | Error | Gold is precious — reserve it for the mark, "Labs", links, active states, and the single primary action per view. Never flood a surface with gold; never fill a large area with it. ### Typography **JetBrains Mono** is the sole typeface (loaded from Google Fonts), at weights 400 / 500 / 700 / 800. The monospace grid is the point — it signals code, precision, and the bench. - **Display / Wordmark:** 800, mixed case, 0.02em tracking. Wordmark = `CubeCraft` in text color + `Labs` in gold, optional gold cursor block. - **Headings:** 700 - **Body:** 400, line-height 1.7 - **Buttons:** 700, UPPERCASE, 0.08em - **Eyebrows:** 700, UPPERCASE, 0.14em No second family. No serif. Mono does everything. ### Spacing 4px base unit. Generous breathing room around the mark. Section padding 40–64px vertical. ### Corners & Borders - **Square everywhere — `border-radius: 0`.** This is a hard rule and the sharpest tell against Creations' rounded system. - Borders do the work shadows would: `1px solid #2a2a2a` hairlines, `#333` for stronger rules and grid lines. - Accent/outline elements: `1.5px solid #e5c07b`. ### Backgrounds & Surfaces - **Page:** flat charcoal `#1a1a1a`. No gradients, no photographic hero washes. - **Surfaces:** raised by a hair (`#202020`) or bounded by a border, not by shadow. - **Graph-paper grid** (`#333` at ~32px) is a legitimate background texture for badge/blueprint contexts. - **Terminal window** chrome (dot header + `~/path`) is a recurring motif for headers and hero blocks. ### Shadows Effectively flat. At most a 1px seam (`--shadow-raised`). No soft drop shadows — they read "consumer app", which is the wrong brand. ### Motion - Easing `cubic-bezier(0.2, 0, 0, 1)`; 100ms micro, 160ms base. - Interactions are crisp, not bouncy. Buttons nudge 1px down on press. A blinking cursor block is the one signature animation (use sparingly). ### Hover & Interaction States - **Primary button:** gold → gold-dim. - **Secondary/ghost:** faint gold wash / text turns gold. - **Links:** underline or color to gold; never a gradient. - **Scrollbar:** 6px slim, thumb `#333` → gold on hover. --- ## ICONOGRAPHY - **Lucide Icons** (stroke-based, 2px, from CDN `https://unpkg.com/lucide@latest`) — inherited from the Creations toolchain, recolored to `--ccl-text` / `--ccl-gold`. Same clean line style suits the mono aesthetic. - **Terminal glyphs** — `$`, `✓`, `✗`, `>` — are used as functional icons in headers and status lines. - **No emoji.** No hand-drawn UI SVGs. - **The cube mark is not an icon** — it's the logo. Use the `CubeMark` component or the SVGs in `assets/logos/`, never redraw it. ### Logo assets (`assets/logos/`) - `cube-wireframe.svg` — assembled gold wireframe cube (inline/compact) - `cube-exploded.svg` — exploded cube, the **primary** mark - `cube-grid-stamp.svg` — cube on graph paper (badge) - `cubecraftlabs-lockup.svg` — horizontal cube + wordmark lockup - `CubeCraftLabs_*.png` — rendered PNG lockups (primary, inline, terminal, grid stamp) The cube geometry is fixed: viewBox `0 0 200 200`, top vertex `(100,44)`, shoulders `(146,70)`/`(54,70)`, waist `(100,96)`, base `(100,150)`. Never recolor the faces or add faces beyond the three visible. --- ## FILE INDEX ``` / ├── styles.css ← root stylesheet (link this) ├── readme.md ← this file ├── SKILL.md ← Agent Skill definition │ ├── tokens/ │ ├── fonts.css ← JetBrains Mono @import │ ├── colors.css ← color custom properties │ ├── typography.css ← type scale + weights + tracking │ └── spacing.css ← spacing, radius(0), border, motion │ ├── assets/logos/ ← cube SVGs + PNG lockups │ ├── components/ │ ├── core/ Button · Badge · Tag · CubeMark + core.card.html │ ├── icons/ Icon (lucide + terminal) · IconButton │ ├── forms/ Input · Textarea · Select · Checkbox · Radio · Switch · Field + forms.card.html │ └── surfaces/ Card · Terminal + surfaces.card.html │ (each component: .jsx / .d.ts / .prompt.md) │ └── guidelines/ ├── colors/ accent · neutrals · status ├── typography/ wordmark · scale ├── spacing/ spacing & corners ├── brand/ cube marks · lockup · app-logo ├── workflows/ label-library └── ui-kits/ build-console ``` ### Components | Component | Group | Description | |---|---|---| | `Button` | core | Square, uppercase, mono action — primary / secondary / ghost | | `Badge` | core | Square outlined lowercase status chip — default / success / error / muted | | `Tag` | core | Lowercase content tag — optional `#`, removable `×` | | `CubeMark` | core | The cube logo as inline SVG — wireframe / exploded / grid | | `Icon` | icons | Two sets in one API: `lucide` (UI chrome) + `terminal` (CLI glyphs, brand-signature) | | `IconButton` | icons | Square icon-only action, same variants as `Button` | | `Input` | forms | Square mono text field, gold focus, optional `$` prompt | | `Textarea` | forms | Multi-line field, same well, vertical resize | | `Select` | forms | Native select, square well, gold chevron | | `Checkbox` | forms | Square box, gold check | | `Radio` | forms | Square with inner gold square (never a circle) | | `Switch` | forms | Square track + square knob, gold when on | | `Field` | forms | Label + control + hint/error row wrapper | | `Card` | surfaces | Flat bordered panel — eyebrow/title/actions/footer, optional gold rail | | `Terminal` | surfaces | Console / code block — title bar + toned mono lines (brand-signature surface) | ### Intentional additions No source component library existed — everything was authored from the brand guidelines. `CubeMark` exists because the cube is the core brand asset and needs a first-class API. The `terminal` icon set and the `Terminal` surface encode the build-log / CLI motif that defines Labs. All form controls are deliberately **square** (checkbox, radio, switch) to hold the hard no-radius rule. The **Build Console** UI kit (`guidelines/ui-kits/`) shows the whole system composed into a print-farm dashboard. --- ## Relationship to CubeCraft Creations | | Creations | Labs | |---|---|---| | Purpose | Storefront, finished goods | Workshop, prototyping, R&D | | Ground | White / lavender-gray | Charcoal `#1a1a1a` | | Accent | Blue→purple gradient | Gold `#e5c07b` | | Type | Nunito (rounded) | JetBrains Mono | | Corners | 8–20px rounded | Square (0) | | Shared | **Cube motif · "CubeCraft" name** | ← same | Keep them apart. Do not import Creations gradient/Nunito/rounded tokens into a Labs design, or vice versa.