eulaw.ai eulaw.ai
Brand sheet · version 1 · August 2026

Legal intelligence, simplified.

This sheet is the reference for anyone building or designing for eulaw.ai: our own engineers, an agent working in the codebase, or an external agency. Every value here is taken from the shipped stylesheets, not from a mood board, so what you see is what production actually renders.

The engineering companion, with file paths and the rules an agent must follow, is brand/BRAND.md in the product repository. The authority for the public marketing site specifically is frontend/docs/brand-style-guide.md, measured from the live pages; where it and this sheet disagree about the site, that guide wins.

This sheet lives at https://eulaw.ai/brand/. Link to it rather than passing a copy around, so nobody works from a stale version. It prints cleanly from the browser if you need it on paper.

The mark

Twelve stars, one circle

On light

eulaw.ai

On dark

eulaw.ai

Shown above at its real size. The lockup is measured from .nav-logo on the live site, not redrawn.

Colour

Two themes, always. The marketing site is dark by default and opts into light per page. The product is light by default. Nothing ships until it has been seen in both.

Marketing pages, as they render

These are measured off the live / and /about. Marketing pages render light by default. Use these values when designing a page.

InkHeadings, emphasised text#1a202c
BodyParagraphs, subheadings#4a5568
MutedCaptions, metadata#7A7A7A
SurfacePage background#ffffff
NavbarFull navbar#1a202c
DividerSection rulesrgba(128,128,128,0.25)
Do not style a marketing page with the colour custom properties. Marketing pages never set data-theme, so --text-primary resolves to its bare dark value and a heading styled with it renders white on white. This has caused four separate bugs. Use a literal, or pair the token with a :global(.light-landing) override. The --lp-* tokens below are the exception, they are defined per theme on the element itself.

Landing component tokens

Dark — the default

Page background--lp-bg#181818
Closing CTA band--lp-surface-2#252525
Primary text--lp-text#FFFFFF
Secondary text--lp-muted#7A7A7A
Accent--lp-accent#E6CC80
Text on accent--lp-on-accent#181818
Success--lp-ok#4ade80
Warning--lp-warn#f59e0b

Light

Page background--lp-bg#ffffff
Closing CTA band--lp-surface-2#eef0f4
Primary text--lp-text#181818
Secondary text--lp-muted#4a5568
Accent--lp-accent#7A5C1E
Text on accent--lp-on-accent#ffffff
Success--lp-ok#007029
Warning--lp-warn#a4610a

Product

Dark

App background--bg-app#181818
Chat area--bg-chat-area#1A1A1A
Elevated surface--bg-dark-surface#252525
Primary text--text-primary#FFFFFF
Muted text--text-muted#5A5A5A
Border--border-dark#5A5A5A
Citation marker--citation-fg#E6CC80

Light — the default

App background--bg-app#F5F5F5
Chat area--bg-chat-area#FFFFFF
Elevated surface--bg-dark-surface#E8E8E8
Primary text--text-primary#181818
Muted text--text-muted#5A5A5A
Border--border-dark#D1D5DB
Citation marker--citation-fg#8A6A1F
The gold only works on dark. #E6CC80 on white fails contrast and is never permitted. Light mode uses a darkened bronze instead: #7A5C1E for marketing accents, #8A6A1F for citation markers. This is the single most common way to break the brand.

The green button

One colour, one job. #01300a is a near-black green and it means this is the action that converts. Hover is #005a15, text is white.

Get Started   Try for free   Secondary action

One green button per screen. Not for links, not for borders, not for success states (that is --lp-ok), not for decoration. If a design needs two green buttons, one of them is not the primary action.

Type

Newsreader400 500 600Marketing headings
Legal intelligence, simplified.
IBM Plex Sans400 500 600Marketing body copy
Every answer traced to verified sources.
IBM Plex Mono400 500Labels, figures, captions
VERIFIED SOURCES
Inter400 500 600Product UI, everything under /app
Ask any legal question
The site has two display faces and has not converged. The landing page / still sets its serif through --font-serif-display, which is Georgia. /about and the menu pages moved to Newsreader on 2026-08-17. Unifying them is a one-line change that has deliberately not been made, because the landing hero is the highest-traffic surface on the site. New content pages follow the /about column. Do not change it as an implementation detail.

Scale: 12 · 14 · 16 · 18 · 20 · 24 · 32 · 40 px. Body line-height 1.6, headings 1.2. Headings are sentence case, never Title Case.

Never fake letter-spacing by putting spaces between characters. It roughly doubles the measured width of a label and pushes it out of its column. Use real tracking, about .12em to .18em on uppercase mono.

Spacing, radius, motion

Spacing

481624324864

Radius

68121624full

Buttons

KindPaddingRadiusSize
Standard12 × 24814 / 600
Hero16 × 321216 / 600

Motion

.15s fast.2s base.3s slow

Voice

Do

  • British English: organisation, analyse, licence.
  • Say the number. “17% to 33%”, not “a high rate”.
  • Sentence case in headings.
  • Every public claim needs a source that survives being asked about.
  • Name the limitation before someone else finds it.

Do not

  • No em dashes. Use a comma, a full stop, or restructure.
  • No superlatives we cannot measure.
  • No stock photography of gavels, scales or courtrooms.
  • No screenshots that are mockups. Use the real product.
  • No hardcoded hex in a component. Use a token so it can follow the theme.