|
| 1 | +# DAEMON — Brand Guidelines |
| 2 | + |
| 3 | +Official brand identity reference for the DAEMON IDE. Follow these rules across all marketing, UI, documentation, and community touchpoints. |
| 4 | + |
| 5 | +--- |
| 6 | + |
| 7 | +## 1. Color Palette |
| 8 | + |
| 9 | +### Core Backgrounds (Elevation Scale) |
| 10 | + |
| 11 | +Dark-first. Each step lifts a surface closer to the user. |
| 12 | + |
| 13 | +| Token | Hex | Usage | |
| 14 | +|--------|-----------|-------------------------------------| |
| 15 | +| `--bg` | `#0a0a0a` | Workspace pit — deepest layer | |
| 16 | +| `--s1` | `#141414` | Sidebars, titlebar, cards | |
| 17 | +| `--s2` | `#1a1a1a` | Inputs, secondary surfaces | |
| 18 | +| `--s3` | `#222222` | Hover states | |
| 19 | +| `--s4` | `#2a2a2a` | Active / pressed states | |
| 20 | +| `--s5` | `#333333` | Borders | |
| 21 | +| `--s6` | `#3a3a3a` | Strong borders / dividers | |
| 22 | + |
| 23 | +### Text Scale |
| 24 | + |
| 25 | +All values are WCAG AA compliant against `--bg` (#0a0a0a). |
| 26 | + |
| 27 | +| Token | Hex | Contrast | Usage | |
| 28 | +|--------|-----------|----------|--------------------------| |
| 29 | +| `--t1` | `#f0f0f0` | 15.5:1 | Primary text | |
| 30 | +| `--t2` | `#a0a0a0` | 7.5:1 | Secondary text | |
| 31 | +| `--t3` | `#888888` | 6.1:1 | Tertiary / muted labels | |
| 32 | +| `--t4` | `#666666` | 4.6:1 | Disabled / placeholder | |
| 33 | + |
| 34 | +### Accent Colors |
| 35 | + |
| 36 | +Each accent has three states: **base**, **dim** (hover/pressed), and **glow** (ambient background). |
| 37 | + |
| 38 | +| Name | Base | Dim | Glow (15% alpha) | Semantic Role | |
| 39 | +|--------|-----------|-----------|-----------------------------|--------------------| |
| 40 | +| Green | `#3ecf8e` | `#2a9d6a` | `rgba(62, 207, 142, 0.15)` | Primary accent, success, focus | |
| 41 | +| Amber | `#f0b429` | `#c99a22` | `rgba(240, 180, 41, 0.15)` | Warnings | |
| 42 | +| Red | `#ef5350` | `#c94442` | `rgba(239, 83, 80, 0.15)` | Errors, danger | |
| 43 | +| Blue | `#60a5fa` | `#4a8ad4` | `rgba(96, 165, 250, 0.15)` | Info, links | |
| 44 | + |
| 45 | +### Color Rules |
| 46 | + |
| 47 | +- **Green is the brand color.** It is the only accent used for focus rings, primary CTAs, active indicators, and brand marks. |
| 48 | +- **Never use raw hex in components.** Always reference CSS custom properties from `tokens.css`. |
| 49 | +- **No neon.** Glows are ambient (4-6% opacity), not flashy. Think "emission", not "laser". |
| 50 | +- **Dark mode only.** DAEMON does not have a light theme. All palette choices assume dark backgrounds. |
| 51 | +- **Selection color:** `rgba(74, 140, 98, 0.3)` — a muted green tint, not a bright highlight. |
| 52 | + |
| 53 | +### Premium Surface Tokens |
| 54 | + |
| 55 | +| Token | Value | Usage | |
| 56 | +|------------------------------|------------------------------------------------------------------|----------------------------| |
| 57 | +| `--surface-gradient-subtle` | `linear-gradient(180deg, rgba(255,255,255,0.02) 0%, transparent)` | Felt-not-seen panel tops | |
| 58 | +| `--border-glass` | `rgba(255, 255, 255, 0.04)` | Frosted glass edges | |
| 59 | +| `--glass-bg` | `rgba(20, 20, 20, 0.85)` | Frosted glass background | |
| 60 | +| `--glass-blur` | `blur(12px) saturate(130%)` | Backdrop filter | |
| 61 | + |
| 62 | +--- |
| 63 | + |
| 64 | +## 2. Typography |
| 65 | + |
| 66 | +### Font Families |
| 67 | + |
| 68 | +| Purpose | Font | Fallback Stack | |
| 69 | +|---------------|---------------------|-------------------------------------------------------| |
| 70 | +| **UI** | Plus Jakarta Sans | -apple-system, BlinkMacSystemFont, sans-serif | |
| 71 | +| **Code** | JetBrains Mono | Fira Code, Cascadia Code, monospace | |
| 72 | + |
| 73 | +Both fonts are self-hosted as `.woff2` in `/public/fonts/`. No external font requests — DAEMON runs fully offline. |
| 74 | + |
| 75 | +### UI Font Weights |
| 76 | + |
| 77 | +| Weight | Name | Usage | |
| 78 | +|--------|------------|------------------------------------------| |
| 79 | +| 400 | Regular | Body text, descriptions, inputs | |
| 80 | +| 500 | Medium | Labels, list items, secondary emphasis | |
| 81 | +| 600 | SemiBold | Panel headers, section titles | |
| 82 | +| 700 | Bold | Primary headings, strong emphasis (rare) | |
| 83 | + |
| 84 | +### Code Font Weights |
| 85 | + |
| 86 | +| Weight | Name | Usage | |
| 87 | +|--------|---------|--------------------------| |
| 88 | +| 400 | Regular | Editor text, terminal | |
| 89 | +| 500 | Medium | Active line highlights | |
| 90 | +| 700 | Bold | Search matches, keywords | |
| 91 | + |
| 92 | +### Type Scale |
| 93 | + |
| 94 | +| Token | Size | Usage | |
| 95 | +|---------------|-------|-------------------------------| |
| 96 | +| `--font-xs` | 9px | Badges, chip labels | |
| 97 | +| `--font-sm` | 10px | Section headers, captions | |
| 98 | +| `--font-base` | 11px | Body text, inputs | |
| 99 | +| `--font-md` | 12px | List items, labels | |
| 100 | +| `--font-lg` | 14px | Panel sub-titles | |
| 101 | +| `--font-xl` | 16px | Panel titles | |
| 102 | + |
| 103 | +### Typography Rules |
| 104 | + |
| 105 | +- **Base font size is 11px.** This is an IDE — density matters. Don't inflate. |
| 106 | +- **Line height: 1.4** across all UI text. |
| 107 | +- **Panel headers:** 11px, SemiBold (600), uppercase, 0.5px letter-spacing, `--t2` color. |
| 108 | +- **Anti-aliasing:** Always enable `-webkit-font-smoothing: antialiased`. |
| 109 | +- **No font-size larger than 16px** anywhere in the application chrome. Marketing and external assets may use larger sizes. |
| 110 | +- **Code and UI fonts never mix** within the same component. If it shows code, it uses JetBrains Mono exclusively. |
| 111 | + |
| 112 | +--- |
| 113 | + |
| 114 | +## 3. Logo |
| 115 | + |
| 116 | +### Mark Description |
| 117 | + |
| 118 | +The DAEMON logo consists of two squircle (superellipse) shapes arranged diagonally — a larger form at top-left and a smaller form at bottom-right. The top-left shape has a rounded top-right corner (72px radius) with straight left and bottom edges. The bottom-right shape mirrors this with a rounded bottom-left corner. Together they form a stylized "D" that evokes layered interfaces, stacked panels, and emergent intelligence. |
| 119 | + |
| 120 | +The logotype pairs the mark with "DAEMON" set in **Plus Jakarta Sans Bold** (700), converted to SVG paths for zero font dependency. |
| 121 | + |
| 122 | +### Source Files |
| 123 | + |
| 124 | +Figma source: `figma.com/design/eCo9Lb32Xtz1fj0QulH85N/Logo-Vector` |
| 125 | + |
| 126 | +### Exported Assets |
| 127 | + |
| 128 | +#### SVG (Vector Source) |
| 129 | + |
| 130 | +| File | Description | |
| 131 | +|---------------------------------------------------|--------------------------------------------| |
| 132 | +| `resources/brand/svg/mark-primary.svg` | White mark on `#0C0C0C` background | |
| 133 | +| `resources/brand/svg/mark-white-transparent.svg` | White mark on transparent — for dark BGs | |
| 134 | +| `resources/brand/svg/mark-dark-transparent.svg` | `#0C0C0C` mark on transparent — for light BGs | |
| 135 | +| `resources/brand/svg/logotype-white.svg` | Mark + "DAEMON" logotype, white | |
| 136 | +| `resources/brand/svg/logotype-dark.svg` | Mark + "DAEMON" logotype, `#0C0C0C` | |
| 137 | +| `resources/brand/svg/logotype-green.svg` | Mark + "DAEMON" logotype, `#3ECF8E` | |
| 138 | + |
| 139 | +#### PNG (Raster — Full Size Ladder) |
| 140 | + |
| 141 | +Each variant includes: 16, 32, 64, 128, 256, 512, 1024px. |
| 142 | + |
| 143 | +| Directory | Variant | Usage | |
| 144 | +|---------------------------------------------|--------------------------------|--------------------------------| |
| 145 | +| `resources/brand/png/primary/` | White mark on dark background | App store, social, marketing | |
| 146 | +| `resources/brand/png/white-transparent/` | White mark, transparent BG | Dark UI surfaces, overlays | |
| 147 | +| `resources/brand/png/dark-transparent/` | Dark mark, transparent BG | Light surfaces, print, docs | |
| 148 | + |
| 149 | +Files follow the naming pattern: `daemon-mark-{size}.png` |
| 150 | + |
| 151 | +#### App Icons (Derived) |
| 152 | + |
| 153 | +| File | Source | Usage | |
| 154 | +|------------------------------|-----------------------------------|------------------------------------| |
| 155 | +| `resources/icon.ico` | Generated from primary 256px | Windows taskbar, title bar | |
| 156 | +| `resources/icon.png` | Primary 256px | macOS dock, Linux desktop | |
| 157 | +| `public/favicon.ico` | Generated from primary | Embedded browser, web contexts | |
| 158 | +| `public/daemon-icon-48.png` | Primary 64px (closest available) | Notifications, small placements | |
| 159 | + |
| 160 | +### Logo Colors |
| 161 | + |
| 162 | +| Context | Mark Color | Background | |
| 163 | +|-------------------|-------------|--------------| |
| 164 | +| Primary (on dark) | `#FFFFFF` | `#0a0a0a` | |
| 165 | +| Accent | `#3ecf8e` | `#0a0a0a` | |
| 166 | +| Reversed (light) | `#0C0C0C` | `#f0f0f0` | |
| 167 | +| Monochrome | `#FFFFFF` | Transparent | |
| 168 | + |
| 169 | +### Logo Usage Rules |
| 170 | + |
| 171 | +**Do:** |
| 172 | +- Use the logo at minimum 24px for icon contexts, 48px for standalone display. |
| 173 | +- Maintain equal clear space around the mark — minimum padding equal to 25% of the mark's width on all sides. |
| 174 | +- Use the monochrome white version on busy or photographic backgrounds. |
| 175 | +- Use the logotype SVGs (`logotype-white/dark/green.svg`) when pairing the mark with the name. |
| 176 | + |
| 177 | +**Don't:** |
| 178 | +- Don't add drop shadows, outer glows, or gradients to the logo. |
| 179 | +- Don't rotate, stretch, skew, or distort the mark. |
| 180 | +- Don't place the logo on backgrounds lighter than `#333333` without switching to the reversed version. |
| 181 | +- Don't outline or stroke the mark — it is always a solid fill. |
| 182 | +- Don't recreate the mark in a different typeface or with rounded rectangles — the squircle geometry is intentional. |
| 183 | +- Don't add emoji or icons adjacent to the logo. |
| 184 | +- Don't animate the logo in UI chrome. Motion is reserved for marketing contexts only. |
| 185 | +- Don't manually type "DAEMON" next to the mark — always use the logotype SVG lockup. |
| 186 | +- Don't mix colors within the lockup (e.g. green mark + white text). |
| 187 | + |
| 188 | +### Logotype |
| 189 | + |
| 190 | +The logotype is a **single lockup** combining the mark + "DAEMON" in Plus Jakarta Sans Bold (700), all converted to SVG paths. |
| 191 | + |
| 192 | +| Variant | File | Usage | |
| 193 | +|---------|------|-------| |
| 194 | +| White | `logotype-white.svg` | Dark backgrounds (primary) | |
| 195 | +| Dark | `logotype-dark.svg` | Light backgrounds | |
| 196 | +| Green | `logotype-green.svg` | Brand accent contexts | |
| 197 | + |
| 198 | +- Mark height is **115% of the text cap height** for visual balance |
| 199 | +- Gap between mark and text is **40% of the font size** |
| 200 | +- All elements share the same fill color — the lockup is always monochrome |
| 201 | +- Never reposition the mark relative to the text — use the SVG as-is |
| 202 | + |
| 203 | +--- |
| 204 | + |
| 205 | +## 4. Spacing & Layout |
| 206 | + |
| 207 | +### Spacing Scale |
| 208 | + |
| 209 | +| Token | Value | Usage | |
| 210 | +|--------------|-------|----------------------------| |
| 211 | +| `--space-xs` | 4px | Tight gaps, icon padding | |
| 212 | +| `--space-sm` | 8px | Inline spacing, small gaps | |
| 213 | +| `--space-md` | 12px | Section padding, card gaps | |
| 214 | +| `--space-lg` | 16px | Panel padding | |
| 215 | +| `--space-xl` | 24px | Major sections | |
| 216 | + |
| 217 | +### Border Radius |
| 218 | + |
| 219 | +| Token | Value | Usage | |
| 220 | +|----------------|-------|-------------------------| |
| 221 | +| `--radius-sm` | 3px | Buttons, inputs, chips | |
| 222 | +| `--radius-md` | 4px | Cards, panels | |
| 223 | +| `--radius-lg` | 6px | Modals, dropdowns | |
| 224 | + |
| 225 | +### Key Dimensions |
| 226 | + |
| 227 | +| Element | Size | |
| 228 | +|---------------|--------| |
| 229 | +| Title bar | 38px | |
| 230 | +| Sidebar | 48px | |
| 231 | +| Left panel | 210px | |
| 232 | +| Right panel | 262px | |
| 233 | +| Status bar | 22px | |
| 234 | + |
| 235 | +--- |
| 236 | + |
| 237 | +## 5. Interaction & Motion |
| 238 | + |
| 239 | +### Transitions |
| 240 | + |
| 241 | +| Token | Duration | Usage | |
| 242 | +|----------------------|----------|-----------------------------| |
| 243 | +| `--transition-fast` | 0.1s | Hover states, toggles | |
| 244 | +| `--transition-normal`| 0.15s | Panel transitions, fades | |
| 245 | +| `--transition-slow` | 0.25s | Modals, overlays | |
| 246 | + |
| 247 | +### Easing |
| 248 | + |
| 249 | +All transitions use `ease`. No bounce, no spring, no overshoot. Quiet and precise. |
| 250 | + |
| 251 | +### Interactive States |
| 252 | + |
| 253 | +| State | Visual Treatment | |
| 254 | +|----------|-----------------------------------------------| |
| 255 | +| Hover | `rgba(255, 255, 255, 0.04)` overlay | |
| 256 | +| Active | `rgba(255, 255, 255, 0.08)` overlay + `scale(0.98)` | |
| 257 | +| Focus | 2px `--green` outline, 2px offset | |
| 258 | +| Disabled | `--t4` text color, no pointer events | |
| 259 | + |
| 260 | +### Status Indicators |
| 261 | + |
| 262 | +- Use **5px colored dots** for status (online, warning, error). Never use emoji. |
| 263 | +- Dot colors map to the accent palette: green = success, amber = warning, red = error, blue = info. |
| 264 | + |
| 265 | +--- |
| 266 | + |
| 267 | +## 6. Shadows & Depth |
| 268 | + |
| 269 | +| Token | Value | Usage | |
| 270 | +|-------------------|----------------------------------------------------|-------------------| |
| 271 | +| `--shadow-lifted` | `0 2px 8px rgba(0,0,0,0.3), inset highlight` | Cards, panels | |
| 272 | +| `--shadow-float` | `0 8px 32px rgba(0,0,0,0.4), inset highlight` | Dropdowns, popups | |
| 273 | +| `--shadow-modal` | `0 16px 48px rgba(0,0,0,0.5), inset highlight` | Modals, dialogs | |
| 274 | + |
| 275 | +Each shadow includes a subtle `rgba(255,255,255,0.03-0.04)` inset highlight for dimensionality. |
| 276 | + |
| 277 | +--- |
| 278 | + |
| 279 | +## 7. Voice & Tone |
| 280 | + |
| 281 | +DAEMON's brand voice matches its visual identity: **precise, minimal, technical**. |
| 282 | + |
| 283 | +- **Short.** Labels are 1-2 words. Descriptions are 1 sentence. Error messages state what happened and what to do. |
| 284 | +- **Direct.** "Save failed" not "Oops! We couldn't save your file." No hedging, no apologies. |
| 285 | +- **Technical.** Users are developers. Don't simplify terminology. Say "IPC handler" not "communication layer". |
| 286 | +- **No emoji in product UI.** Marketing and social media may use them sparingly. |
| 287 | +- **Product name:** Always "DAEMON" in all-caps when used as a brand name. Lowercase "daemon" is acceptable in code, CLI references, and technical documentation. |
| 288 | + |
| 289 | +--- |
| 290 | + |
| 291 | +## Source of Truth |
| 292 | + |
| 293 | +All color, spacing, and typography values live in `styles/tokens.css`. This document describes how to apply them — the CSS file is the canonical source. If this document and `tokens.css` ever conflict, `tokens.css` wins. |
0 commit comments