Logo System
Our identity is one SVG: logo-vela-intelligence.svg — the star and the wordmark locked together as a single file. The wordmark carries specific kerning, optical sizing, and forced uppercase that can only be preserved by using the vector file. Treat it as one unit. The icon-only star exists only as a fallback for square contexts (favicons, avatars).
The primary lockup on backgrounds
Same SVG, four contexts. The lockup is colored by currentColor — the surface chooses, the mark adapts.
Alternate lockups
For contexts where the horizontal lockup doesn't fit — narrow columns, square avatars with the wordmark beneath, headers where only the name needs to appear. Each is shipped as its own SVG with the same locked spacing and all-caps wordmark as the primary lockup. Use these instead of the primary, never combined with it.
Icon-only fallback
The star may appear alone only when the surface is square and too small to read the wordmark — favicons, profile avatars, app icons, social chips at < 32 px. Anywhere larger, use the full lockup.
Usage
- Always use the full lockup SVG (
logo-vela-intelligence.svg) whenever there is room for the wordmark to be read. - Keep the star and "VELA INTELLIGENCE" together as one unit — they ship as one SVG for a reason.
- Preserve minimum clear space equal to the height of one star-point (≈ 25% of the lockup height) on all sides.
- Render the file in
currentColorwhen embedded in product code, so theme switches "just work" between light and dark mode. - Pair the white-on-brand variant with the primary 600/700 shades — not the lighter 50–300 shades.
- Don't separate the star from the wordmark — they belong together. The star alone is only for square contexts under 32 px.
- Don't re-typeset "Vela Intelligence" in Montserrat or any other font. The wordmark has its own kerning and forced uppercase — use the SVG.
- Don't change the case — the wordmark is always all-caps. No "Vela Intelligence" in mixed-case as a graphic.
- Don't change the spacing between the star and the wordmark, or rearrange them vertically as a custom stack.
- Don't recolor the star and wordmark independently — they are one mark, one color.
- Don't rotate, skew, outline, or stretch the lockup. Don't add drop shadows beyond the brand-supplied hero treatment.
Color Palette
Three primary families — Brand Primary, Brand Secondary, Brand Accent — plus two tertiary families: Slate (cool gray for text) and Gold (warm contrast). Each ramps across 11 shades. The canonical brand shades in practice are Brand Primary 900 (the dark canvas), Brand Secondary 600 (voice / trust), and Brand Accent 400 (action / CTA) — that last one is intentionally lighter than the 600 default because Brand Accent at 600 reads as muddy, and the brand needs its accent bright. Hover any swatch and pick T to copy the CSS-variable token (e.g. --brand-primary-600), H for hex, O for the oklch() value — ready to paste into CSS or HTML.
Tertiary palettes
Two supporting families for roles the primary brand colors don't carry alone. They fill specific functional jobs — they don't compete with Brand Primary/Brand Secondary/Brand Accent for brand expression. Surfaces and borders are not in here: they use Brand Primary 800–950 directly, because the brand canvas IS Brand Primary.
- Slate 50 — primary body text on the dark navy canvas (near-white with a cool cast). Replaces a generic
#F4F4F4off-white. - Slate 200 — secondary text. Subheadings, descriptions under headlines, less-prominent paragraphs.
- Slate 400 — tertiary text. Captions, metadata, timestamps ("Updated 2h ago"), source citations, helper text under form fields, disabled-state labels.
- Slate 700–950 — extremely rare; used only when an element specifically needs a desaturated dark variant the Brand Primary ramp can't supply.
- Gold 100–200 — warm contrast slide backgrounds in formal pitch decks. The sand-coloured rest from the navy → green cadence.
- Gold 300–500 — the "Social" pillar dot in ESG contexts, and similar single-purpose semantic markers.
- Never as a brand voice or CTA color — Gold supports a moment of warmth, then steps back.
Status tones
Four tones — Info, Success, Warning, Danger — for client-facing demos, pitch slides, roadmap labels, diagram pips ("live / planned / deprecated"), status pages, release notes. They share hue, peak chroma, and the same Gaussian curve as the in-product design system's status tokens, so anything that moves between a brand surface and the console reads as the same colour family.
Boundary — this is not a replacement for the design system's full status-token matrix (hover, border, light-fill, dark-fill, surface-adaptive variants). For interactive UI — alerts, toasts, badges, table-row status — pull from @vela/ds-tokens directly. The brand kit gives you one canonical shade per tone for non-interactive use, plus the full ramp for diagrams and charts.
Danger vs Brand Accent 600 — Brand Accent 600 (#9F4111) remains the brand-side default for "danger / urgent" (see §4.2). The Danger ramp below exists so the four tones live as a coherent set, and for the rare demo where a vivid red is genuinely required (e.g. a "critical risk" pip where Brand Accent's burnt-orange reads as warning not stop).
The marked default (●) is the canonical step on the dark navy canvas — Info 400, Success 400, Warning 300, Danger 400. On light surfaces, step one down (Info 500, Success 600, Warning 400, Danger 600). Warning sits a step lighter than the others because yellow at L ≤ 0.55 reads as olive / muddy.
Typography
Three type families. Manrope carries the headings and the numbers we want to feel confident. Inter handles everything that needs to read like a sentence. JetBrains Mono does the specific monospace work — eyebrows, code, token names, hex values, metadata.
Type scale
Gradient & Color Behavior
How the brand colors actually live on a page. Observed from the marketing site: a dark navy atmosphere, two-color pairings only, and "gradient" expressed more often as a colored glow than a literal fill. The working anchors below (navy, green, orange, sand) are pulled directly from the site CSS — they sit alongside the OKLCH brand palettes and are a candidate for a deeper color reconciliation pass.
A · The atmosphere
The brand's native habitat is dark navy, not white. Off-white type, green glow, orange singular CTA. Every page on the marketing site obeys this composition.
to Decisions.
B · Working anchors & roles
Every working color the brand uses, mapped to its canonical palette swatch. The hex is what currently ships; the palette name is the source of truth.
C · Pairing rules
linear-gradient(), radial-gradient(), conic-gradient(). Never a raster image (no background-image: url('gradient.png')) and never an SVG used as a page backdrop. Image-based gradients band visibly, leave hard seams where the image ends when users scroll or resize, and break on retina / ultra-wide / dark-mode. The single exception is inside SVG asset files — the Brand Secondary → Brand Accent labs gradient lives inside labs/zephlyn-icon.svg and labs/vaelth-icon.svg because those are vector icons, not page backdrops.Gradients pair exactly two colors. There are four allowed recipes and one explicit "never".
D · Glow as a brand technique
The site does most of its "colored light" with box-shadow, not with gradient fills. Hover any element below to see it.
E · Translucency
Brand color at reduced alpha is the third "gradient" technique. Use these target alphas for tinted glassmorphic surfaces.
F · Gradient angles
Where direction matters, only these angles appear in brand-approved usage.
G · Accents for data — charts, graphs, multi-series
When you need more than the brand triad — bar charts, line series, donut segments, any data split into groups — extend the palette from the token families in the original brand tokens.
Recommended chart palette · all at L = 0.63
The same palette on three contexts — see how each colour holds up
Picking order — what to reach for, in what scenario
| Scenario | Palette |
|---|---|
| 1–3 categorical series | Brand Primary 400, Brand Secondary 400, Brand Accent 400 — brand triad at the chart lightness |
| 4–6 categorical series | Brand triad + Lime 400, Pool 400, Plum 400 — fill the gaps between brand hues |
| 7–8 categorical series | Above + Amber 400, Teal 400 |
| > 8 categorical series | Reconsider — aggregate, facet, or split the view; more than 8 hues stops being legible |
| Sequential (low → high) | One brand or tertiary ramp end-to-end: Brand Secondary 100 → 800 (growth), Brand Primary 100 → 800 (concentration), Slate 100 → 800 (neutral) |
| Diverging (neg ← 0 → pos) | Brand Accent 400 ← Slate 200 → Brand Secondary 400 — brand contrast through a neutral midpoint |
| ESG pillars | E = Brand Secondary 400 · S = Gold 300 · G = Slate 400 (already codified) |
Icons
Vela uses two Font Awesome styles, picked by purpose — not by where the icon appears. Sharp Duotone (fa-sharp-duotone fa-solid) when the icon enhances — feature emphasis, illustration, decorative depth. Solid (fa-solid) when the icon is informational — bullets, button glyphs, chevrons, arrows, status pips, anything functional or directive. The signature feature-icon treatment is a 42 × 42 Brand Secondary 600 tile with a Slate 50 icon at 18 px (1.125 rem).
b122b96a8f) is licensed under our account. velaintelligence.com and our approved related domains are enabled on the kit. Don't load it from a non-approved domain — license violation.<!-- in <head> --> <link rel="preconnect" href="https://kit.fontawesome.com" crossorigin> <link rel="preconnect" href="https://ka-f.fontawesome.com" crossorigin> <script src="https://kit.fontawesome.com/b122b96a8f.js" crossorigin="anonymous"></script> <!-- usage --> <i class="fa-sharp-duotone fa-solid fa-shield-halved"></i> <!-- enhancement: feature icon --> <i class="fa-solid fa-arrow-right"></i> <!-- informational: button arrow -->
Vela Labs
A distinct visual language for experimental work and internal tools. Labs uses an green crystal mark and the green → orange diagonal gradient on its product icons — the only place this two-hue blend is approved. Labs borrows the navy atmosphere from the main brand, but speaks with a brighter, more playful voice on top of it.
#2D6A4F) at three opacities — 1.0, 0.6, 0.4. The three facets create depth without ever leaving the green hue. Use this mark wherever Labs is named or branded; it replaces (never accompanies) the Vela Intelligence lockup.Labs product icons
Each Labs product gets its own glyph drawn in stroke, filled with the green → orange diagonal gradient. Same gradient, different shape. This is the only sanctioned use of the two-hue blend.
Deal Intelligence
Deal Intelligence is the first product-vertical sub-brand under Vela Intelligence. Where Labs is for experiments, this is a full product line — and the pattern future siblings will follow (Risk Intelligence, ESG Intelligence, etc.). It uses its own mark (the jack) and its own DEAL INTELLIGENCE wordmark drawn in Figtree 700 with hand-tuned spacing — the same custom-spacing recipe as the parent VELA INTELLIGENCE wordmark, with the INTELLIGENCE half lifted verbatim from the parent. The shared "Intelligence" word is the cue that this is a Vela family product. The Deal Intelligence lockup replaces the Vela Intelligence lockup in its own context — the two never appear together.
VELA INTELLIGENCE and DEAL INTELLIGENCE are Figtree 700 letterforms with custom per-letter spacing — outlining the text fresh from Figtree (or any other font) will lose that spacing and produce a regression. The canonical SVGs in logos/wordmark/ and logos/sub-brands/<name>/wordmark/ are the source of truth; treat them as immutable. New sub-brand wordmarks must be drawn by a designer.App-icon tile
Jack at 38% of tile width, Slate 50 fill, on a Brand Primary 900 (#07214D) rounded square (256 × 256, corner radius 56). Use for native app icons, web favicons at large sizes, splash screens, and product surfaces.
logos/sub-brands/deal-intelligence/mark/
deal-intelligence-mark.svg /* currentColor */
deal-intelligence-mark-black.svg
deal-intelligence-mark-white.svg
deal-intelligence-app-icon.svg /* navy tile */
Wordmark
DEAL INTELLIGENCE, drawn in Figtree 700 all-caps with custom per-letter spacing. The INTELLIGENCE half is lifted verbatim from the parent wordmark; only DEAL is new. (Figtree's G with its near-45° terminal is the distinguishing tell — compare Manrope's straight-cut G.)
Primary lockup
Jack mark + wordmark, horizontal. Default whenever the full name fits. Caps vertically centered on the mark.
Usage
- Primary lockup wherever the full name fits horizontally — this is the default.
- Wordmark only in formal / legal contexts, footers, places where the mark would feel redundant.
- Mark only for favicons, avatars, and contexts below ~32 px where the wordmark is illegible.
- App-icon tile for native app icons, web favicons at large sizes, splash screens, product surfaces.
- Use the hard-fill
-white.svg/-black.svgwhen the consuming surface has a fixed theme.
- Don't show the Deal Intelligence lockup alongside the Vela Intelligence lockup — pick one per surface.
- Don't use the parent Vela four-point star as the Deal Intelligence mark; the jack replaces it.
- Don't add gradients, outlines, opacity layers, or drop shadows to the jack — single filled path only.
- Don't rotate, skew, stretch, or recolor outside the Slate 50 / Brand Primary 950 pairing.
- Don't substitute the wordmark font — Figtree 700 all-caps with custom spacing, no exceptions, no programmatic regeneration.
<NAME> INTELLIGENCE wordmark drawn by a designer in Figtree 700 with custom spacing (reusing the parent's INTELLIGENCE half verbatim), file layout mirroring logos/sub-brands/deal-intelligence/, and the same "replaces, never accompanies" rule against the parent lockup.Dark and Light
The brand operates in two modes. Both share hue families, the same accent green, and the same singular CTA orange — what changes is which stops are picked from the existing ramps. Dark is canonical, the brand's native habitat for every public-facing surface. Light is a sanctioned product-surface mode, opt-in only, never the default. Marketing pages, decks, brand assets, social imagery, and external campaign materials always render in dark — light mode does not appear on those surfaces.
prefers-color-scheme.The navy migration
The defining trick is that Brand Primary 900 stays the brand's structural anchor in both modes — it just changes role. On dark, it is the canvas; on light, it becomes the primary text. The eye reads the same hue in both modes; only the figure-ground inverts. This is what keeps both modes recognisably Vela Intelligence.
Semantic tokens
The brand kit publishes raw OKLCH ramps in §02. Semantic tokens sit on top and name colours by their UI role, so component CSS doesn't reach into raw --brand-primary-800 directly, and so a single component file can serve both modes by aliasing the same role to different stops. See the canonical CSS-variable definitions in brand-kit.md §7.
| Token | Role | Dark | Light |
|---|---|---|---|
| Surfaces | |||
--canvas | Page background | Brand Primary 900 | Slate 50 |
--surface-deep | Most-emphatic surface (table headers, menu) | Brand Primary 950 | Slate 100 |
--card-bg | Raised card surface | 80/20 P800 + S800 @ 85% | 94/6 white + S100 @ 96% |
--hairline | Subtle dividers | Slate 50 / 15% α | Brand Primary 900 / 12% α |
| Accents | |||
--accent | Structural decoration | Brand Secondary 500 | Brand Secondary 600 |
--accent-emphasis | Interactive states (hover, focus, link) | Brand Secondary 300 | Brand Secondary 700 |
--cta | Singular call-to-action | Brand Accent 400 — unchanged across modes | |
| Text | |||
--text-primary | Primary body text | Slate 50 | Brand Primary 900 |
--text-secondary | Secondary copy, captions, nav | Slate 200 | Slate 700 |
--text-muted | Metadata, timestamps | Slate 400 | Slate 500 |
--white | Text on coloured fills | Slate 50 — unchanged across modes | |
| Status (aliases §02c ramps) | |||
--status-info | Neutral information | Info 400 | Info 500 |
--status-success | Healthy, done, positive | Success 400 | Success 600 |
--status-warning | Caution, needs attention | Warning 300 | Warning 400 |
--status-danger | Critical, blocked (text + borders) | Danger 400 | Danger 600 |
--status-danger-fill | Solid danger fills | Brand Accent 600 — unchanged across modes | |
| Logo | |||
--logo-color | Mark / wordmark fill (currentColor source path only) | Slate 50 | Brand Primary 900 |
Naming note — --accent-emphasis means the more emphatic of the two accent tokens, not the literally brighter one. On dark, it's lighter (Brand Secondary 300); on light, it's darker (Brand Secondary 700). The role is preserved; the lightness inverts.
Danger note — on dark surfaces, Brand Accent 600 (the brand-side danger voice) reads as muddy when used as text. --status-danger therefore points at Danger 400 on dark and Danger 600 on light for text and border roles. Solid danger fills stay at Brand Accent 600 in both modes — the colour reads as "stop" on either canvas, and --white provides the on-fill text.
Light-mode body atmosphere
The optional two-radial-glow atmosphere from §4 has a light-mode counterpart. Both glows use Brand Secondary 300 at very low alpha — same family as the dark mode's Brand Secondary 600 glow, lifted to the lighter stop because we're glowing on white rather than on navy. No Gold corner — Gold's role is warm contrast on specific surfaces, pulling it into an atmospheric layer would dilute that specificity.
body[data-mode="light"] {
background:
radial-gradient(circle at 22% 18%, oklch(0.730 0.107 163 / 0.08) 0%, transparent 38%),
radial-gradient(circle at 82% 78%, oklch(0.730 0.107 163 / 0.06) 0%, transparent 40%),
linear-gradient(160deg, var(--canvas) 0%,
color-mix(in srgb, var(--surface-deep) 70%, var(--canvas)) 100%);
}
<body data-mode="dark|light">. The product persists per-user preference. Default is dark. Light mode never auto-mirrors prefers-color-scheme — switching is always an explicit user choice inside the product, so a user's OS theme flip never surprises them with a brand switch.