Brand Reference
Brand Design System
The definitive guide to the Exponential Roadmap Initiative visual and verbal identity. The purpose of the system is to enable consistency, quality, and integrity across all touch points.
Introduction
BDS site version: V.2026.04.18 · @eri/components package version: v2.10.0
WHAT IS THE ERI BRAND DESIGN SYSTEM?
The ERI Brand Design System (BDS) is the single source of truth for all visual, verbal, and component decisions across ERI digital products. It covers brand tokens, typography, logo usage, layout patterns, and canonical UI components.
Every ERI web application — whether built by a human designer, a developer, or a Manus AI agent — must follow this system. Consistency across touch points is not optional: it is what makes ERI products feel like a coherent family rather than a collection of one-off builds.
WHO IS IT FOR?
Designers
Colour tokens, typography scale, logo usage rules, photography style, brand graphics, and verbal identity guidelines. Use the Communications & Brand zone.
Developers
Component library, spacing system, navigation tier patterns, CTA rules, and the Standard Components package. Use the Web & Development zone.
Manus AI Agents
Read the eri-bds-reference skill before writing any code. The Machine Instructions section provides structured specs. Standard Components is the canonical implementation reference for all ERI app builds.
BDS Maintainers
Release workflow, version tagging, and package build steps are documented in the Standard Components section. Run pnpm build:css before every checkpoint.
TWO PATHS THROUGH THE BDS
Brand & Communications only
Use the Communications & Brand zone for colour, typography, logo, and verbal identity. No code or package installation required.
Sections: Visual Identity → Verbal Identity
Building an ERI application
Install @eri/components and follow the Standard Components section. This is the mandatory starting point for all ERI public-facing applications.
Sections: Standard Components → UI Components
Building an ERI app? Start with Standard Components.
The @eri/components package ships six canonical components that every ERI public-facing application must use verbatim. Install once, import, and the layout, header, hero, footer, status badges, and contact button are all handled.
FOR MANUS AI AGENTS — READ THIS FIRST
If you are a Manus AI agent working on any ERI project, you must read the eri-bds-reference skill before writing any code. The skill contains the canonical colour tokens, typography rules, component specs, and integration notes in a format optimised for AI consumption.
/home/ubuntu/skills/eri-bds-reference/SKILL.md — this is your primary reference for all ERI brand and component decisions.@eri/components and use the six canonical components verbatim.Brand Proposition
Mission
To accelerate the transition to a regenerative economy by providing organisations with a clear, actionable framework for exponential climate impact.
Vision
A world where every organisation understands and maximises its potential for positive climate impact across operations, value chains, solutions, finance, and policy.
Core Values
Clarity
Complex climate science made accessible and actionable
Integrity
Evidence-based, transparent, and honest assessment
Ambition
Pushing beyond incremental change to exponential impact
Collaboration
Collective action across industries and value chains
Brand Personality
"Expert yet approachable. Urgent but not alarmist. Ambitious and pragmatic. Scientific rigor with human warmth."
Visual Identity
Our colour system is built around the Five Pillars framework. Each pillar has a dedicated colour that creates instant recognition and helps users navigate complex climate information.
Brand Colours
Core brand colours for UI elements, text, and backgrounds. These provide the foundation for all interfaces.
#3ba55959, 165, 89Primary buttons, CTAs, links, success states
#23232335, 35, 35Headings, footer background, and high-contrast UI elements. Use #232323 for H1–H4 headings and the footer background. Also used as the primary dark section background on marketing sites (alternating with #F9FAFB light sections), and as the semi-transparent overlay (#232323 at 80–85% opacity) on top of hero background images to create a consistent dark tone. For body paragraph text on white backgrounds, use Dark Gray #383838 (slightly lighter).
#6b7280107, 114, 128Secondary text, borders, disabled states
#F9FAFB249, 250, 251Page backgrounds, card backgrounds, and light section backgrounds. The standard light surface colour for all ERI web applications and the alternating light sections on marketing sites
#F5C842245, 200, 66Data highlights, chart callouts, goal indicators, emphasis accents — introduced in Playbook v5
#93E07D147, 224, 125Typographic heading accent colour for use on dark or green backgrounds (e.g. hero sections, dark cards). Use lime #93E07D for accent words when the background is dark green or black. On white or light backgrounds, use Primary Green #3ba559 instead. NOT for UI components, buttons, or data visualisation.
#38383856, 56, 56Standard body paragraph text colour for all ERI surfaces. Use #383838 for all body copy on white or light backgrounds. Pair with Archivo headings (Primary Dark #232323) and Open Sans body text.
#007BB60, 123, 182LinkedIn social media icon background. Used in the ERI footer social links row. Do not use for any other purpose.
#A82400168, 36, 0YouTube social media icon background. Used in the ERI footer social links row. Do not use for any other purpose.
Pillar Colours
These colours represent the five dimensions of organisational climate impact. Use them consistently to reinforce the framework structure.
#9aa08c154, 160, 140Operational emissions, Scope 1 & 2, internal processes
#17b7dd23, 183, 221Supply chain, Scope 3, procurement, supplier engagement
#00ac580, 172, 88Climate solutions, products, services, avoided emissions
#ff8b00255, 139, 0Climate finance, green bonds, sustainable investment
#ff5133255, 81, 51Policy advocacy, regulatory engagement, trade associations
Dark Image Hero — Standard
The standard hero pattern for all ERI web applications and marketing sites. A full-bleed background image is overlaid with a semi-transparent #232323 at 80–85% opacity. Text is always left-aligned, with the left edge aligned with the ERI logotype in the header (same container padding). The eyebrow label, H1, body text, and CTA buttons occupy the left half only — the right half is reserved for the image composition. H1 accent word uses Accent Lime #93E07D — never Primary Green on dark backgrounds.
EXPONENTIAL ROADMAP INITIATIVE ——— BETA
Exponential
Human-AI Lab
One place for everything ERI builds at the intersection of human expertise and AI.
Dark Image Hero — Correct Layout
Left-aligned text, left edge aligned with header logotype. Eyebrow label above H1. Accent Lime #93E07D accent word. Accent Lime CTA button (rounded-lg, dark text). Right half reserved for image.
Hero Anatomy
| Background | Full-bleed image + #232323 at 80–85% opacity |
| Text alignment | text-left — NEVER text-center |
| Left edge | Anchored to logotype via --eri-content-inset — wrap text block in max-w-screen-xl mx-auto container with paddingInline: var(--eri-content-inset). Do NOT use raw pl-* padding. |
| Content width | max-w-xl (~540px) — right half reserved for image |
| Eyebrow label | Required — #93E07D uppercase tracking-widest · "BRAND NAME ——— BETA" |
| Heading | Archivo 800 · white · 4xl–6xl |
| Accent word | #93E07D Accent Lime — NEVER #3ba559 on dark bg |
| Body text | Open Sans 400 · white/80 · 16–18px |
| CTA button | #93E07D Accent Lime · dark text #1a1a1a · rounded-lg |
Logo Usage
Three logo assets are available. Each card shows the asset on both a light and dark background so you can verify contrast before use. Each card includes a file identifier and a direct download button. Always respect minimum sizes and clear-space rules to maintain legibility and brand integrity.
Light background
Dark backgroundPrimary logo for all light-background contexts: website headers, footers, documents, presentations. On dark backgrounds, apply CSS filter: brightness(0) invert(1) to render the logo in white.
filter: brightness(0) invert(1)ERI Icon Mark
Compact ERI mark for use in navigation menus, compact UI elements, and alongside pillar icons. The mark uses original green and black colours — do not recolour.
Favicon — White Rounded (Canonical)
The canonical browser tab favicon for all ERI Manus-hosted projects. White background with 12% corner radius. Use the CDN URL directly in client/index.html — do not copy to client/public/. See the Favicon Implementation card below for the exact head code.
Favicon — Correct <head> Implementation
Copy these exact three lines into client/index.html inside <head>. Remove any existing <link rel="icon"> or <link rel="shortcut icon"> tags first. Do not copy any file into client/public/ — use the CDN URLs directly.
<!-- ERI Favicon — white rounded PNG (32px, white bg, 12% corner radius) --> <!-- PNG only — Manus hosting does not serve .ico correctly --> <link rel="icon" type="image/png" sizes="32x32" href="https://d2xsxph8kpxj0f.cloudfront.net/310519663319595517/5mtZtU66sMbsnmPoVbf6UJ/favicon-white-rounded-32_05ba5ceb.png" /> <link rel="apple-touch-icon" sizes="180x180" href="https://d2xsxph8kpxj0f.cloudfront.net/310519663319595517/5mtZtU66sMbsnmPoVbf6UJ/favicon-white-rounded-180_2daaa7d4.png" /> <link rel="icon" type="image/png" sizes="192x192" href="https://d2xsxph8kpxj0f.cloudfront.net/310519663319595517/5mtZtU66sMbsnmPoVbf6UJ/favicon-white-rounded-192_54fb4338.png" />
Why 32px? That is the correct and intentional size for a browser tab favicon. Do not search for a larger file to use as the tab icon.
!Favicon — What NOT to use
| File / variant | Why it is wrong |
|---|---|
| exponential-logo.webp | Raw swirl with no rounded corners — source file only, not a favicon |
| Any .ico file | Manus hosting does not serve .ico correctly — PNG only |
| Any local /favicon.png file | Local files cause deployment timeouts on Manus — use CDN URLs above |
!Logo Don'ts
- ✕Do not stretch, skew, or distort the logo in any dimension.
- ✕Do not recolour the wordmark — use the full-colour version or the CSS-inverted white version only.
- ✕Do not place the colour wordmark on dark or busy photographic backgrounds without a white backing.
- ✕Do not add drop shadows, outlines, or decorative effects to the logo.
- ✕Do not use the icon mark as the sole brand identifier on external-facing pages.
- ✕Do not place the logo below minimum size (160px wide for wordmark, 32px for icon).
Typography
ERI uses a two-font system. Archivo is the heading and display typeface — used at weight 700–800 for all H1–H3 and marketing hero text. Open Sans is the body typeface — used for all paragraph text, UI labels, navigation, and captions. Both are loaded via Google Fonts CDN. The web applications map font-sans to Archivo for consistency with the design system.
Heading & Display Font
Archivo
Used for all H1–H3, hero text, section titles, and card headings. Weights: 400, 500, 600, 700, 800, 900. Loaded via Google Fonts CDN.
font-archivo → headings, display, hero textfont-sans → Archivo (Tailwind default alias)Body & UI Font
Open Sans
Used for all body text, paragraphs, UI labels, navigation items, captions, and form fields. Weights: 400, 500, 600, 700. Loaded via Google Fonts CDN.
font-['Open_Sans'] → body, UI, captionsStandard body font for all ERI web applicationsType Scale Specimen
Each row shows the rendered text, the exact Tailwind classes used on live pages, and the intended context.
font-archivo text-4xl md:text-5xl font-extrabold text-[#232323]Capture Exponential Opportunities
Page hero headline. Used on Home, Framework, ClimateSolutions, Contact pages.
font-archivo text-3xl md:text-4xl font-extrabold text-[#232323]The Five Pillars of Climate Action
Major section headings within a page. Responsive: 3xl mobile → 4xl desktop.
font-archivo text-2xl md:text-3xl font-extrabold text-[#232323]Brand Design System
Used in the design system itself and for secondary section headings.
font-bold text-[#232323] text-lgCut Operational Emissions
Card headings, widget titles, sidebar section labels.
font-bold text-[#3ba559]Core Values · Tone of Voice
Small card sub-headings, feature labels, pillar accent headings.
text-base text-gray-600The fastest economic transition in history is underway.
Standard paragraph text. 16px (1rem). Open Sans 400 across all ERI surfaces — both marketing and web applications. Colour: #383838 on white backgrounds.
text-sm text-gray-600Interactive assessment tool based on the Exponential Business Playbook v5.0
Card descriptions, nav item descriptions, footer text, form labels. 14px.
text-xs text-gray-500Last updated · March 2026 · Exponential Roadmap Initiative
Timestamps, data source labels, badge text, table meta. 12px.
text-xs font-semibold text-gray-400 uppercase tracking-widerFive Pillars · Navigation · Resources
Section category labels above headings or nav groups.
text-xs font-mono text-gray-700 bg-gray-100 px-1.5 py-0.5 roundedfont-archivo text-4xl font-extrabold
Inline code, Tailwind class references, API keys, identifiers.
Italic Variant
Archivo supports italic. Used sparingly for hero accent phrases and pull quotes.
"The fastest economic transition in history"
font-archivo font-extrabold italic text-2xl text-[#232323]Heading Accent Word Pattern
Accent Lime #93E07D is used for one or two accent words in a heading, exclusively on dark or green backgrounds — hero sections, dark cards, and dark section backgrounds. On white or light backgrounds, use Primary Green #3ba559 instead. Accent Lime has insufficient contrast on light surfaces.
✅ Correct — on dark background
About the Exponential Roadmap Initiative
Exponential Roadmap Initiative Members
❌ Do not use — on white/light background
About the Exponential Roadmap Initiative
Accent Lime on white has insufficient contrast. Use #3ba559 Primary Green on light backgrounds instead.
<h1 className="font-archivo font-extrabold text-white">
About the Exponential Roadmap{" "}
<span className="text-[#93E07D]">Initiative</span> {/* dark bg only */}
</h1>Use sparingly — one or two accent words per heading maximum. Never apply to body text or on light backgrounds.
Typography on Light vs. Dark Backgrounds
Dark Background (hero sections, dark cards)
| H1 hero | Archivo 800 · 4xl–6xl · white |
| H2 section | Archivo 700 · ~36px · #232323 |
| Heading accent | Archivo 700 · #93E07D lime highlight |
| Body text | Open Sans 400 · 16px · #383838 |
| Links | Open Sans · #93E07D Accent Lime |
Light Background (white / #F9FAFB sections)
| H1 hero | Archivo 800 · 4xl–5xl · #232323 |
| H2 section | Archivo 800 · 3xl–4xl · #232323 |
| Heading accent | Archivo 700 · #3ba559 on white bg |
| Body text | Open Sans 400 · 16px · #383838 |
| Links | Open Sans · #3ba559 primary green |
Unified standard (all ERI surfaces): Archivo for headings · Open Sans for body text · #383838 for body copy · #3ba559 for links. Use lime #93E07D for heading accents on dark/green backgrounds only; use #3ba559 on white backgrounds.
Verbal Identity
How we communicate is as important as what we communicate. Our voice reflects our values and builds trust with our audience.
Tone of Voice
Expert
We speak with authority grounded in science and data, not opinion
Accessible
We translate complex concepts without dumbing them down
Urgent
We convey the importance of action without inducing paralysis
Optimistic
We focus on solutions and possibilities, not doom
Writing Principles
Lead with impact
Start with the outcome, not the process
Be specific
Use numbers, percentages, and concrete examples
Active voice
'Apple reduced emissions by 60%' not 'Emissions were reduced'
No jargon without context
Define terms like 'Scope 3' on first use
Preferred Terminology
| Use This | Instead Of |
|---|---|
| Climate solutions | Green products |
| Avoided emissions | Carbon offsets |
| Value chain | Supply chain |
| Exponential impact | Incremental improvement |
Language
ERI is a Swedish-founded initiative operating globally, but headquartered and primarily published in a European context. British English is the standard for all external communications, publications, and digital products.
Spelling Rules
| Rule | British English ✓ | Avoid ✗ |
|---|---|---|
| -ise not -ize | organise, maximise, recognise, prioritise, emphasise, customise | organize, maximize, recognize, prioritize, emphasize, customize |
| -our not -or | colour, behaviour, honour, favour, neighbour | color, behavior, honor, favor, neighbor |
| -re not -er | centre, theatre, fibre, metre, litre | center, theater, fiber, meter, liter |
| -ence not -ense | licence (noun), defence, offence, pretence | license (noun), defense, offense, pretense |
| -ogue not -og | catalogue, dialogue, analogue | catalog, dialog, analog |
| Double consonants | travelling, modelling, cancelled, labelling | traveling, modeling, canceled, labeling |
Punctuation & Formatting
Single quotation marks
Use single quotes for primary quotations: 'climate action'. Use double quotes for quotes within quotes: 'He said "net zero" is achievable.'
Oxford comma
Optional but consistent within a document. ERI preference: omit unless ambiguity arises.
Date format
Day Month Year — no ordinal suffixes: 18 March 2026, not March 18th, 2026.
Numbers
Spell out one to nine; use numerals for 10 and above. Use commas as thousands separators: 1,000 not 1.000.
Per cent
Write 'per cent' as two words in running text; use the % symbol in tables, charts, and data labels.
Common Pitfalls
| Word Pair | Rule | Example |
|---|---|---|
| 'Program' vs 'Programme' | Use 'programme' for schedules, events, and initiatives. Use 'program' only for computer software. | The ERI accelerator programme; a software program |
| 'Practice' vs 'Practise' | 'Practice' is the noun; 'practise' is the verb. | Best practice (noun); to practise consistently (verb) |
| 'Licence' vs 'License' | 'Licence' is the noun; 'license' is the verb. | A Creative Commons licence (noun); licensed under CC BY (verb) |
| 'Enquire' vs 'Inquire' | Use 'enquire' for general questions; 'inquire' for formal investigations. | Enquire about membership; a formal inquiry |
Photography
ERI photography is documentary and systemic — it shows the infrastructure, industries, and cities that need to transform, not aspirational outcomes. These principles are derived from the Exponential Roadmap 1.5.1 report and apply across all ERI publications and digital products.
Photography Philosophy
Systemic, not aspirational
Show the systems that need to change — factories, ports, cities, energy grids — not idealised green futures. The scale of transformation must be visible.
Documentary, not decorative
Photography carries editorial weight. Every image should communicate something specific about climate action, not simply illustrate a mood or fill space.
Human scale within systems
Where people appear, they are interacting with infrastructure or technology — engineers, workers, cyclists. People ground the systemic narrative in lived experience.
Subject Matter by Pillar
Photography subject matter maps directly to the five pillars. Use these categories when sourcing images for pillar-specific content.
| Pillar | Subject Category | Example Subjects | Search Terms |
|---|---|---|---|
| 1 — Cut Operational Emissions | Industrial transformation | Factories, data centres, manufacturing lines, solar farms | aerial solar farm, industrial manufacturing overhead, data centre |
| 2 — Decarbonize Value Chain | Supply chain & logistics | Ports, shipping containers, warehouses, agricultural fields | aerial shipping port, cargo containers, supply chain logistics |
| 3 — Build & Scale Solutions | Technology & innovation | Wind turbine engineers, EV charging, solar installation | wind turbine engineer, electric vehicle charging, clean technology worker |
| 4 — Mobilize Finance & Investment | Urban infrastructure & capital | City skylines, financial districts, construction sites | aerial city financial district, urban construction aerial, smart city |
| 5 — Shape Policy & Narrative | People & governance | Cyclists, public transport, civic infrastructure | cyclists city commuting, public transport tram, urban planning aerial |
Composition Principles
Aerial / Overhead
Chapter openers, hero images, high-impact momentsCommunicates scale, systemic thinking, and the roadmap metaphor. Looking down at the terrain signals strategic perspective. Used for the most important moments in a publication.
Wide Establishing Shot
Section dividers, context-setting imageryShows the full context of a system or place, not a detail. Provides orientation and communicates the scope of the challenge or opportunity being discussed.
Human-Scale Detail
Case studies, inline illustrations, pull quotesShows people interacting with technology or infrastructure. Engineers, workers, and citizens ground the systemic narrative in human experience and make abstract change tangible.
Colour Treatment Rules
✓Do
- ✓Use photography at full colour with no filters or overlays applied
- ✓Place the green brand colour (#3ba559) as a separate graphic element beside or on top of the photo — never blended into it
- ✓Use the green underline bar or swirl shape as the brand accent on chapter openers
- ✓Credit all photography sources — Unsplash, Alamy, Shutterstock, or company-provided
✗Don't
- ✗Apply colour tints, green overlays, or duotone effects to photographs
- ✗Use heavily processed photography: HDR, heavy vignettes, or dramatic colour grading
- ✗Use stock photo clichés: handshakes, lightbulbs, people pointing at whiteboards
- ✗Use nature/landscape photography decoratively — forests, mountains, or oceans without systemic context
- ✗Use close-up portrait photography as a primary image (only for case study headshots)
Approved Sources
Best for aerial, urban, and technology subjects. Search by subject + 'aerial' for overhead shots.
Visit ↗Primary source used in ERI 1.5.1 report. Extensive editorial and documentary photography library.
Visit ↗Used for supplementary imagery. Prefer editorial collections over generic stock.
Visit ↗Partner organisations (Ericsson, Skanska, Telia, etc.) can provide images for case studies with attribution.
Curated Photo Library
29 curated images across all five pillars and brand. Each image has a stable reference ID (e.g. ERI-OPS-001) that can be used in Manus AI task prompts or shared with colleagues. Filter by pillar, copy the reference ID, or download directly.
Using photos in Manus AI tasks
Reference any photo by its ID in a task prompt, e.g.: "Use photo ERI-OPS-001 from the ERI Brand Design System photography library." The AI will use the correct Unsplash URL for that image. All images follow ERI photography principles: documentary, systemic, full colour, no filters.
ERI-BRD-001Mountain valley aerial — systemic landscape
Photo: Sergei Akulich / Unsplash
ERI-BRD-002Foggy forest aerial — natural systems at scale
Photo: Lukasz Szmigiel / Unsplash
ERI-BRD-003City skyline at dusk — urban infrastructure
Photo: Pedro Lastra / Unsplash
ERI-BRD-004Highway interchange aerial — systemic infrastructure
Photo: Denys Nevozhai / Unsplash
ERI-OPS-001Solar panels on factory roof — operational renewables
Photo: American Public Power Association / Unsplash
ERI-OPS-002Wind turbines in field — clean energy at scale
Photo: Nicholas Doherty / Unsplash
ERI-OPS-003Engineer in data centre — operational efficiency
Photo: ThisisEngineering / Unsplash
ERI-OPS-004Solar farm aerial — large-scale renewable deployment
Photo: Zbynek Burival / Unsplash
ERI-OPS-005EV charging station — transport electrification
Photo: Chuttersnap / Unsplash
ERI-VAL-001Container port aerial — global supply chain
Photo: Chuttersnap / Unsplash
ERI-VAL-002Warehouse workers — supply chain operations
Photo: Ruchindra Gunasekara / Unsplash
ERI-VAL-003Cargo ship at sea — maritime freight
Photo: Ian Taylor / Unsplash
ERI-VAL-004Motorway aerial with HGVs — road freight
Photo: Denys Nevozhai / Unsplash
ERI-VAL-005Factory meeting — supplier engagement
Photo: Ant Rozetsky / Unsplash
ERI-SOL-001Offshore wind farm — scaling clean energy
Photo: Nicholas Doherty / Unsplash
ERI-SOL-002Engineers on green tech prototype — innovation
Photo: Science in HD / Unsplash
ERI-SOL-003Green office building — sustainable built environment
Photo: Nastuh Abootalebi / Unsplash
ERI-SOL-004Circuit board — digital technology solutions
Photo: Alexandre Debiève / Unsplash
ERI-SOL-005Large solar installation aerial — scaling renewables
Photo: Zbynek Burival / Unsplash
ERI-FIN-001Financial district aerial — capital markets
Photo: Maxim Hopman / Unsplash
ERI-FIN-002Business meeting with financial data — investment decisions
Photo: Scott Graham / Unsplash
ERI-FIN-003Financial documents — sustainable finance and green bonds
Photo: Markus Winkler / Unsplash
ERI-FIN-004City financial district at night — capital concentration
Photo: Maxim Hopman / Unsplash
ERI-FIN-005ESG data analyst — climate finance and reporting
Photo: Maxim Hopman / Unsplash
ERI-POL-001UN General Assembly — international policy and governance
Photo: Mathias Reding / Unsplash
ERI-POL-002Climate conference — policy dialogue
Photo: Pedro Lastra / Unsplash
ERI-POL-003Government building — policy and regulatory frameworks
Photo: René DeAnda / Unsplash
ERI-POL-004Panel discussion — narrative and business advocacy
Photo: Campaign Creators / Unsplash
ERI-POL-005Roundtable meeting — multi-stakeholder engagement
Photo: Headway / Unsplash
29 images shown
Brand Graphics & Illustrations
Designed visual assets that represent ERI concepts and are approved for use across web applications, reports, presentations, and social media. These are distinct from photography — they are purpose-built illustrations and graphic compositions that carry specific conceptual meaning.
Human-AI Lab Hero — Hands Touching (Primary)
The primary hero background for the Human-AI Lab and any human + AI collaboration narrative. Two translucent wireframe hands reach toward each other across the S-curve crossing point, fingertips meeting in a golden burst of light — a Michelangelo-inspired composition set against a deep teal grid. The crossing point of the S-curves is the visual focal point: the moment of connection between human and AI.
EXPONENTIAL ROADMAP INITIATIVE — EXAMPLE
Exponential
Human-AI Lab
One place for everything ERI builds at the intersection of human expertise and AI.
Asset Details
| File name | hal-hero-human-v2-hands.png |
| Dimensions | 1456 × 816 px |
| Format | PNG |
| Aspect ratio | 16:9 |
| Colours | Amber curve · Accent Lime curve · Dark teal grid · Wireframe hands |
| CDN token | heroImages.halHandsTouching |
Usage Rules
- ✓Always use full-bleed — the image must fill the entire hero section width.
- ✓Always apply a
#232323overlay at 80–85% opacity over the image before placing text. - ✓Use white Archivo for the main heading; Accent Lime
#93E07Dfor the accent word. - ✗Do not crop, rotate, or alter the image in any way.
- ✗Do not use on light backgrounds without the dark overlay.
- ✗Do not use as a decorative element in body content — hero sections only.
Conceptual Meaning
The two S-curves crossing represent the central ERI insight: legacy fossil-fuel systems are on a declining S-curve while clean-technology systems are on a rising S-curve. The crossing point is the transition moment — the moment of connection between human and AI. The amber curve represents the old economy; the lime curve represents the new. The wireframe hands reaching toward each other evoke the Michelangelo “Creation of Adam” — a universal symbol of the spark of intelligence passing between two entities. This image should only be used in contexts where this meaning is relevant — it is not a generic technology background.
Alternate Versions
Three alternate hero compositions share the same S-curve structure and are documented in full in the Surface Modes section.
Testimonials & Pull-Quotes
Testimonials appear on ERI web applications and in reports to convey third-party credibility. The layout pairs a rounded-rectangle portrait with a left-aligned block-quote and a bold attribution line. Heading copy uses the standard ERI accent-word treatment: one or two key words set in Primary Green on a light background.
Layout Anatomy
- 1Section heading — Archivo 700–800, left-aligned. One or two key words use Primary Green
#3ba559(or Accent Lime#93E07Don dark backgrounds). Use either black or green — do not mix both in the same heading. - 2Portrait — rounded-rectangle crop (
border-radius: 8px), 120–160 px wide. No border or drop-shadow. Sits to the left of the quote block. The ERI brand does not use circular elements. - 3Quote body — Open Sans 400, 15–17 px,
text-align: left. No typeset quotation marks. Colour: Dark Gray#383838. Justified alignment creates uneven spacing — left-align is the ERI standard. - 4Attribution line — Bold name in Open Sans 700, comma, then role and organisation in Open Sans 400. Colour:
#232323. - 5Background — light grey
#F9FAFBor white. Never a coloured or gradient background behind testimonials.
Typography & Spacing
Live Example
What others say about us
No company can achieve net zero alone. Accelerating decarbonisation requires collaboration and Exponential Roadmap Initiative has been a great partner and thought leader — helping us to think through our strategies and co-hosted Solutions House with Futerra at Climate Week NYC, facilitating great conversations around climate solutions, the challenges of Scope 3, advanced clean energy technologies and more.
Kate Brandt, Chief Sustainability Officer, Google
✓ Do
- Use a rounded-rectangle portrait crop (border-radius: 8px) — the ERI brand does not use circular elements.
- Left-align the quote body text.
- Bold the speaker's name; use regular weight for role and organisation.
- Use Primary Green for the accent word(s) in the heading on light backgrounds.
- Keep the background white or light grey — no coloured panels.
- Use real photography — no illustrations or icons as the portrait.
✗ Don't
- Don't add decorative quotation mark glyphs (" ") — the layout implies the quote.
- Don't use a coloured or gradient background behind the testimonial block.
- Don't justify the quote body text — justified alignment creates uneven word spacing. Left-align is the ERI standard.
- Don't omit the attribution — an unattributed quote cannot be published.
- Don't use Accent Lime on a white background for body text — only for heading accent words on dark backgrounds.
- Don't place the portrait below or to the right of the quote.
Multiple testimonials: When displaying more than one testimonial, stack them vertically with 40–48 px gap between entries. Do not use a carousel or slider — all testimonials should be visible without interaction. Each entry follows the same portrait-left / quote-right layout.
Exponential Framework
All visual assets for the Exponential Roadmap framework — pillar icons, framework diagrams, and pillar elements — are documented here. Always use the provided assets; never recreate or approximate them.
Pillar Icon Assets
Five WebP images represent the Exponential Framework pillars. They appear in the full-screen navigation overlay, pillar detail pages, and framework diagrams. Import from client/src/lib/pillarColors.ts for the canonical hex colours — never hard-code pillar colours inline.
Cut Operational Emissions
pillar-1-icon.webp#9aa08cDecarbonize Value Chain
pillar-2-icon.webp#17b7ddBuild & Scale Solutions
pillar-3-icon.webp#00ac58Mobilize Finance & Investment
pillar-4-icon.webp#ff8b00Shape Policy & Narrative
pillar-5-icon.webp#ff5133Usage Pattern
// Always import canonical colours from pillarColors.ts
import { pillarColors, pillarMeta } from "@/lib/pillarColors";
import { pillarBottomIcons } from "@/lib/assets";
// Render pillar icon with correct background tint
<div style={{ backgroundColor: pillarColors.pillar3 + "20" }}>
<img src={pillarBottomIcons.pillar3} alt="Build & Scale Solutions" className="w-16 h-16" />
</div>
// Or iterate all five pillars
{pillarMeta.map((p) => (
<img key={p.id} src={pillarBottomIcons[`pillar${p.id}`]} alt={p.name} />
))}Framework Diagrams
v5 NewThe Five Pillars radial diagram is the central visual identity of the Exponential Roadmap framework. Eight approved variants exist for different placement contexts. Always use the provided assets — never recreate the diagram.
Source: ERI Styleguide 1.0 — Framework (pp. 5–8) and Framework Integration (pp. 9–12).
Five Pillars Diagram — 8 Variants

BG
Background only (no logo/text)
framework-5pillars-bg.webp
BG + Logo
With ERI wordmark
framework-5pillars-bg-logo.webp
BG + Logo + Title
With wordmark and title text
framework-5pillars-bg-logo-title.webp
Extended
With action blocks around pillars
framework-5pillars-extended.webp
Transparent
No background — for dark slides
framework-5pillars-transparent.webp
Short Text (Transp)
Pillar names only, transparent
framework-5pillars-short-text.webp
Symbols (Transp)
Icons only, transparent
framework-5pillars-symbols-transparent.webp
Text (Transp)
Full text labels, transparent
framework-5pillars-text-transparent.webpPlacement Rules
Clear Space
Minimum clear space around the diagram equals x — one unit defined as the width of the “E” in EXPONENTIAL. Never crowd the diagram with other elements.
Background Combinations
Use the solid BG variant on white/light backgrounds. Use the Transparent variant on dark or coloured backgrounds. Never place the solid variant on a dark background.
Never Do
- • Do not distort, rotate, or recolour the diagram
- • Do not add extra elements inside the diagram
- • Do not use unofficial variants or recreations
- • Do not place the diagram on a clashing background colour
Supporting Diagrams
Four additional diagrams support the framework narrative. Use these in context — do not mix them with the Five Pillars radial diagram on the same slide.

Leadership A
Leadership categories diagram (variant A)
framework-leadership-a.webp
Leadership B
Leadership categories diagram (variant B)
framework-leadership-b.webp
Pillars Linear
Five pillars in horizontal linear layout
framework-pillars-linear.webp
Reducing / Enabling
Reducing vs. enabling emissions framework
framework-reducing-enabling.webpPillar Elements
v5 NewThe pillar element is a vertical graphic unit that anchors each pillar in presentations, reports, and digital interfaces. It always appears on the left side of a slide or frame. Four variants exist — choose based on available space and content depth. All assets are available in solid (white background) and transparent versions.
Source: ERI Styleguide 1.0 — Framework Integration (pp. 13–18).
Long Pillar (Primary)
The primary integration element for company presentations. Placed on the left side of the frame. Use x (width of the "E" in EXPONENTIAL) as minimum clear space from pillar to frame edge.

pillar-1-long-solid.webp
pillar-2-long-solid.webp
pillar-3-long-solid.webp
pillar-4-long-solid.webp
pillar-5-long-solid.webp
pillar-1-long-transparent.webp
pillar-2-long-transparent.webp
pillar-3-long-transparent.webp
pillar-4-long-transparent.webp
pillar-5-long-transparent.webpRegular Pillar
Scaled-down version for data slides where more horizontal space is needed. Can be placed over images. Use 3x as the distance from pillar to frame edge.

pillar-1-regular-solid.webp
pillar-2-regular-solid.webp
pillar-3-regular-solid.webp
pillar-4-regular-solid.webp
pillar-5-regular-solid.webpExtended Pillar (with Action Blocks)
The most detailed variant — pillar extended downward with labelled Action Blocks (e.g. "Supplier Engagement"). The pillar icon appears at the bottom of the stack. Use 3x as the distance from pillar to frame edge.

pillar-1-extended-solid.webp
pillar-2-extended-solid.webp
pillar-3-extended-solid.webp
pillar-4-extended-solid.webp
pillar-5-extended-solid.webpAction Block Specification
Pillar colour
White, Archivo Bold
~8pt / 11px
1px white
Short Pillar (Symbol & Text variants)
Minimal variant — symbol only (icon mark) or text only (pillar number + name). Used where space is very limited or as a compact reference marker.

pillar-1-symbol-solid.webp
pillar-1-text-solid.webpPillar 1
pillar-2-symbol-solid.webp
pillar-2-text-solid.webpPillar 2
pillar-3-symbol-solid.webp
pillar-3-text-solid.webpPillar 3
pillar-4-symbol-solid.webp
pillar-4-text-solid.webpPillar 4
pillar-5-symbol-solid.webp
pillar-5-text-solid.webpPillar 5Top row: Symbol variant. Bottom row: Text variant. Transparent versions also available.
✓ Correct Usage
- Always place on the left side of the slide or frame
- Maintain minimum clear space: x from pillar to frame edge (basic), 3x for alternate
- Use solid version on light backgrounds; transparent on dark
- Use Long Pillar as the default; scale down only when content requires it
- Keep pillar colours exactly as specified — never approximate
✗ Never Do
- Do not place the pillar on the right, centre, or bottom of the frame
- Do not distort, stretch, or rotate the pillar element
- Do not change pillar colours or mix pillar colours across elements
- Do not use the pillar element without the correct pillar number
- Do not use the Extended variant without all action blocks present
Charts & Data Visualisation
ERI data visualisation follows a consistent visual language across publications, the Crocodile Economy whitepaper, and digital products. The chart style is minimal, editorial, and high-contrast — designed for print and screen alike.
The Crocodile Economy Chart Style
The Crocodile Economy charts show the decoupling of emissions from economic growth over time. Two lines form the "crocodile jaw" — the upper line (GDP or revenue growth) diverges upward from the lower line (CO₂ emissions). The fill colour between the lines encodes the entity type: green for companies, salmon for nations/regions. This is a semantic encoding — not a stylistic choice.
Company / Corporate
#7DD87AGreen fill between the GDP/revenue line and the CO₂ line. Used for all corporate entities (e.g. Astra Zeneca, Scania, Volvo). Signals that the entity is a private-sector actor.
Nation / Region
#F08070Salmon/coral fill between the GDP line and the CO₂ line. Used for all national and supranational entities (e.g. European Union, Sweden, Australia). Signals that the entity is a public-sector actor.
Line Colours
GDP / Revenue line
#00B4D8 — CyanUpper trajectory. Represents economic growth (GDP for nations, revenue for companies).
CO₂ Emissions line
#1A1A1A — Near-blackLower trajectory. Represents territorial or Scope 1+2 CO₂ emissions over time.
Grid lines / Axes
#CCCCCC — Light greyHorizontal gridlines and axis ticks. Minimal — no border box around the chart.
Live Examples
Interactive recreations of the Crocodile Economy chart style using ERI brand colours.
Company
Illustrative. Sources: company annual reports, Klimatkollen.
Country
Illustrative. Sources: World Bank GDP, Global Carbon Budget.
Chart Typography
| Element | Style |
|---|---|
| Chart title | Archivo 700 uppercase · #232323 |
| Axis labels | Open Sans 400 · #666666 · 11–12px |
| Tick values | Open Sans 400 · #888888 · 10–11px |
| Legend labels | Open Sans 400 · #444444 · 11px |
| Data callouts | Archivo 600 · #232323 · 11px |
Chart Anatomy Rules
- • No border box around the chart area — only horizontal gridlines
- • Y-axis on the left only; no right-side axis
- • Zero line is slightly thicker (1.5px) than other gridlines (0.5px)
- • X-axis shows year labels only — no tick marks
- • Fill opacity: 0.7 (allows gridlines to show through)
- • Line stroke width: 2px for both GDP and CO₂ lines
- • Background: white #FFFFFF — no chart background colour
Data Sources
Country charts use World Bank GDP data and Global Carbon Budget CO₂ data. Company charts use Klimatkollen and ERI-compiled Scope 1+2 emissions with publicly reported revenue. Always cite the data source beneath the chart.
Member Company Logotypes
Official logotypes for ERI member companies. Use these assets when referencing member organisations in ERI publications, case studies, and digital products. Each logo has a stable CDN URL for use in Manus AI task prompts.
Note: All logos are the property of their respective companies and are provided here solely for use within authorised ERI communications.
Using member logos in AI tasks: Reference a logo by its token name, e.g.memberLogos.scania.urlfrom assets.ts, or use the direct CDN URL shown on hover. Always display logos on a white or light background. Do not apply colour filters, crop, or recolour any member logo.
Data Source & Partner Logos
Logos for data providers, research institutions, standards bodies, and partner organisations used across ERI products and publications. Use these when citing data sources or acknowledging partners in reports, dashboards, and presentations.
All logos remain the property of their respective organisations and are provided here for use within authorised ERI communications only.
Spacing & Layout Tokens
All spacing uses the standard Tailwind 4px base scale. Container widths and grid patterns are defined here so every page shares the same spatial rhythm.
Content Inset — The Logotype Anchor
A single CSS variable that anchors the header logotype and the hero text block to the same left edge. Both containers must use this variable — never hard-code padding values.
Definition — add to client/src/index.css :root
--eri-content-inset: clamp(1rem, 3vw, 2rem); /* ~16px on mobile → ~32px on wide screens */ /* Defines the left edge shared by the header logotype and the hero text block. */
Usage — header + hero containers
{/* Header inner container */}
<div className="max-w-screen-xl mx-auto w-full"
style={{ paddingInline:
'var(--eri-content-inset)' }}>
{/* Hero text container — same anchor */}
<div className="max-w-screen-xl mx-auto w-full"
style={{ paddingInline:
'var(--eri-content-inset)' }}>
<div className="max-w-xl text-left">px-4 md:px-6 lg:px-8 — static values break the alignmentContainer Widths
| Name | Class | Max Width | Padding | Notes |
|---|---|---|---|---|
| Page Container | .container | 1280px | 1rem → 1.5rem → 2rem | Auto-centered. Responsive padding: mobile 1rem, sm 1.5rem, lg+ 2rem. |
| Narrow Content | max-w-3xl mx-auto | 768px | inherited | Long-form prose, descriptions, intro paragraphs. |
| Wide Content | max-w-6xl mx-auto px-4 | 1152px | 1rem | Used in Brand Design System and most public pages. |
| Full-bleed Section | w-full | none | 0 | Hero sections, coloured bands. Inner content uses container or max-w-6xl. |
Standard Grid Patterns
| Pattern | Tailwind Classes | Typical Usage |
|---|---|---|
| 2-column split | grid md:grid-cols-2 gap-8 | Mission/Vision cards, two-option comparisons, side-by-side content |
| 3-column grid | grid md:grid-cols-3 gap-4 | Resource cards, feature tiles, data source cards |
| 4-column grid | grid md:grid-cols-4 gap-6 | Core values, tone-of-voice traits, pillar quick stats |
| 5-column grid | grid md:grid-cols-5 gap-4 | Pillar colour swatches (one per pillar) |
| Responsive list | grid sm:grid-cols-2 lg:grid-cols-3 gap-4 | Company cards, member lists, search results |
| Dashboard sidebar | flex gap-0 (sidebar 240px + flex-1 main) | Admin/workspace pages using DashboardLayout or AdminLayout |
Spacing Scale
p-1 / m-1 / gap-1Icon internal padding, tight badge gaps
p-2 / m-2 / gap-2Button icon gap, compact list item spacing
p-3 / m-3 / gap-3Card inner padding (compact), chip padding
p-4 / m-4 / gap-4Default card padding, section column gap
p-5 / m-5 / gap-5Card content padding (standard)
p-6 / m-6 / gap-6Card content padding (generous), section sub-gap
p-8 / m-8 / gap-8Grid column gap (desktop), section vertical rhythm
p-12 / m-12Section top/bottom padding (compact pages)
p-16 / m-16Hero section vertical padding
pb-24Hero section bottom padding (desktop)
Component Library
Reusable components that enforce brand standards through their API. These components ensure consistency and prevent styling violations.
ChartContainer
Use for any section requiring a coloured header. The component restricts colours to the approved palette.
P1/P3 Content
Operations or Solutions
Green header for Pillar 1 (Operations) or Pillar 3 (Solutions) content.
P2 Content
Value Chain
Cyan header for Pillar 2 (Value Chain) content.
P4 Content
Finance
Orange header for Pillar 4 (Finance) content.
Usage
import { ChartContainer } from "@/components/ui/chart-container";
<ChartContainer
title="Section Title"
subtitle="Optional subtitle"
headerColor="green" // green | cyan | orange | red | gray
>
{/* Your content */}
</ChartContainer>Badge Reference
Badges are used throughout the platform to communicate status, tier, priority, data type, and qualification. Always use the canonical classes below — never invent new badge colours.
1. Tier Badges
Used in the header, workspace hub, and assessment pages to indicate a company's transformation tier.
bg-gray-200 text-gray-700bg-yellow-100 text-yellow-800bg-purple-100 text-purple-800Shape: rounded (not rounded-full) · Size: text-[10px] px-1.5 py-0.5 · Weight: font-medium capitalize
2. System & Experimental Badges
Used in the header and on feature flags to signal development status.
bg-red-50 text-red-600 border-red-100 rounded-fullbg-[#3ba559]/15 text-[#3ba559] border-[#3ba559]/30bg-gray-100 text-gray-6003. Priority Badges
Used in CPR Recommendations and action lists to indicate urgency level.
bg-red-100 text-red-700 border-red-200bg-amber-100 text-amber-700 border-amber-200bg-[#17b7dd]/10 text-[#17b7dd] border-[#17b7dd]/30bg-gray-100 text-gray-600 border-gray-200Shape: rounded-full · Size: text-xs px-2 py-0.5 · Always include border
4. KPI & Framework Badges
Used in KPI sections and action themes to classify framework items.
bg-[#3ba559]/15 text-[#3ba559]bg-cyan-100 text-cyan-700bg-orange-100 text-orange-700bg-gray-100 text-gray-700Shape: rounded (square corners) · Size: text-xs px-2 py-0.5 · Text UPPERCASE in display
5. Qualification & Status Badges
Used in Climate Solutions qualification, case study cards, and pillar content.
bg-[#3ba559]/15 text-[#3ba559] border-[#3ba559]/40bg-amber-100 text-amber-800 border-amber-300bg-red-100 text-red-800 border-red-300bg-gray-100 text-gray-600 border-gray-200Shape: rounded-full · Size: text-xs px-3 py-1 · Always include border
6. Data Source & API Badges
Used in DataSourceCard, DataSourcesTable, and widget headers to show data freshness and source type.
bg-[#3ba559] text-whitebg-yellow-500 text-whitebg-red-600 text-whiteborder border-gray-200 text-gray-600bg-[#3ba559]/10 text-[#3ba559] border border-[#3ba559]/30border border-gray-200 text-gray-600 font-monoUse shadcn <Badge> component from @/components/ui/badge for these.
7. Opportunity & Category Badges
Used in CPR Opportunities and impact portfolio to categorise opportunity types.
bg-[#3ba559]/15 text-[#3ba559]bg-[#17b7dd]/10 text-[#17b7dd]bg-purple-100 text-purple-700Shape: rounded-full · Size: text-xs px-2 py-0.5 · No border on these
Badge Anatomy Quick Reference
| Family | Shape | Size | Border | Where used |
|---|---|---|---|---|
| Tier | rounded | text-[10px] px-1.5 py-0.5 | No | Header, WorkspaceHub, assessment pages |
| App Status | rounded-full | text-[11px] px-2.5 py-0.5 | Yes (border-current) | Header right zone — ALPHA / BETA / PREVIEW / LIVE |
| Experimental | rounded-full | text-[11px] px-2.5 py-1 | Yes | Header right zone |
| Priority | rounded-full | text-xs px-2 py-0.5 | Yes | CPR Recommendations, action lists |
| KPI / Framework | rounded | text-xs px-2 py-0.5 | No | KPI sections, action themes |
| Qualification | rounded-full | text-xs px-3 py-1 | Yes | Climate Solutions, case study cards |
| Data Source | rounded | text-xs px-2 py-0.5 | Varies | DataSourceCard, widget headers, data lake |
| Opportunity | rounded-full | text-xs px-2 py-0.5 | No | CPR Opportunities, impact portfolio |
CTA Buttons
ERI uses one CTA button style across all products and surfaces. There are no exceptions. The shape is always rounded-lg — never a pill (rounded-full). The fill colour is always Accent Lime #93E07D — never Primary Green.
Shape: rounded-lg — always, everywhere
Hero CTAs, section CTAs, header CTAs, card CTAs, footer CTAs — all use rounded-lg.
Fill: #93E07D Accent Lime — always
Never use Primary Green #3ba559 for filled buttons. Primary Green is for links and text accents only.
No icon prefix, no pill shape
rounded-full is reserved for status badges only. Do not add Lucide icons before button text.
Live Examples
On dark background — hero sections, dark cards
On white / light background — interior pages, cards
Non-conformant patterns — do not use
Code Reference
{/* ✅ Primary CTA — use on ALL surfaces */}
<a
href="/solutions"
className="inline-block px-6 py-3 rounded-lg font-archivo font-semibold text-base text-[#1a1a1a]"
style={{ backgroundColor: "#93E07D" }}
>
Explore Climate Solutions
</a>
{/* ✅ Secondary CTA — dark background */}
<a
href="/playbook"
className="inline-block px-6 py-3 rounded-lg font-archivo font-semibold text-base text-white border-2 border-white"
>
Human-AI Playbook
</a>
{/* ✅ Secondary CTA — light background */}
<a
href="/playbook"
className="inline-block px-6 py-3 rounded-lg font-archivo font-semibold text-base text-[#232323] border-2 border-[#232323]"
>
Learn More
</a>
{/* ❌ WRONG: pill shape */} {/* rounded-full — reserved for status badges only */}
{/* ❌ WRONG: Primary Green fill */} {/* bg-[#3ba559] — never for filled buttons */}
{/* ❌ WRONG: icon prefix */} {/* no Lucide icons before button text */}
{/* ❌ WRONG: CTA in authenticated surface header */} {/* Authenticated surface: no CTA in header right zone */}Size Variants
Interactive States
Consistent hover, active, and focus states reinforce the brand colour system and improve usability.
Link & Text Colours
text-[#3ba559]Default interactive colour for links, active nav items, iconshover:text-[#2d8a47]Darker green on hover — use with transition-colorstext-gray-600Standard body copy, descriptions, secondary labelstext-gray-500Captions, timestamps, placeholder texttext-[#232323]All headings and primary labelstext-red-600Logout, delete, error statesBackground & Border States
bg-[#F9FAFB]Default page backgroundbg-whiteAll Card componentshover:bg-gray-100Table rows, list items, nav items on hoverbg-gray-50Table header rows, alternating rowsbg-[#232323]Hero sections, dark cards, code blocksborder-[#3ba559]Active nav item bottom border, focus ringStandard Transition Utilities
// Colour transitions (links, buttons, icons) className="transition-colors" // All property transitions (cards, shadows, transforms) className="transition-all" // Translate on hover (arrow icons in nav) className="group-hover:translate-x-1" // Shadow elevation on hover (cards) className="shadow-sm hover:shadow-md transition-shadow" // Always pair with a duration class if non-default speed is needed: className="transition-all duration-300 ease-in-out"
Contact Us Integration
Version 2026.04.16 · Service URL: contact-us.exponentialroadmap.org
⚠ Never build a custom contact form
All ERI applications link to the single shared contact service at https://contact-us.exponentialroadmap.org. The service is self-registering — no configuration is needed on the contact service side. The app simply passes its identity in the URL.
URL Pattern
https://contact-us.exponentialroadmap.org/?source=<id>&sourceLabel=<name>&return=<url>
Parameters
| Parameter | Required | Description | Example |
|---|---|---|---|
| source | Recommended | Stable lowercase machine ID for your app. Never change after launch. | psm |
| sourceLabel | Recommended | Human-readable app name. URL-encode spaces as +. | Professional+Services+Matrix |
| return | Recommended | Full URL to return to after form submission. URL-encode the value. | https%3A%2F%2Fpsm.exponentialroadmap.org |
| subject | Optional | Subject hint for the owner alert email. URL-encode spaces as +. | PSM+Partnership+Enquiry |
Full Example — Professional Services Matrix
https://contact-us.exponentialroadmap.org/?source=psm&sourceLabel=Professional+Services+Matrix&return=https%3A%2F%2Fpsm.exponentialroadmap.org&subject=PSM+Enquiry
Button Implementation — Mandatory Style
CRITICAL — Do not style this button yourself.
The Contact Us button MUST use Accent Lime fill, rounded-lg, dark text, and no icon. Any other style is non-conformant.
{/* ✅ CORRECT — copy this exactly */}
const contactUrl =
'https://contact-us.exponentialroadmap.org/' +
'?source=YOUR_SOURCE_ID' +
'&sourceLabel=Your+App+Name' +
'&return=https%3A%2F%2Fyour-app.exponentialroadmap.org';
<a
href={contactUrl}
className="px-4 py-2 bg-[#93E07D] text-[#1a1a1a] rounded-lg text-sm font-semibold hover:opacity-90 transition-opacity"
>
Contact Us
</a>
{/* ❌ WRONG — white fill */}
{/* <button className="bg-white text-gray-900 rounded-lg">Contact Us</button> */}
{/* ❌ WRONG — pill shape */}
{/* <button className="bg-[#93E07D] rounded-full">Contact Us</button> */}
{/* ❌ WRONG — icon suffix */}
{/* <button className="bg-[#93E07D] rounded-lg">Contact Us ✉</button> */}Fill
bg-[#93E07D]
Text
text-[#1a1a1a]
Shape
rounded-lg
Icon
None — text only
Registered Source IDs
Source IDs are self-registering — no manual setup required. This table is maintained here for human reference. Add your app's row when integrating.
| Source ID | App Name | Return URL |
|---|---|---|
| hal | Human-AI Lab | https://human-ai-lab.exponentialroadmap.org |
| psm | Professional Services Matrix | https://psm.exponentialroadmap.org |
| taxonomy | ERI Taxonomy | https://taxonomy.exponentialroadmap.org |
| platform | ERI Platform | https://exponentialroadmap.org |
Choosing a Source ID
- • Use lowercase letters, numbers, and hyphens only — no spaces or special characters.
- • Keep it short and stable. It is stored in the database and used in analytics — do not change it after launch.
- • Use the product's short name or abbreviation. Examples:
hal,psm,playbook,data-hub,climate-tracker.
Implementation Checklist
- 1.Choose a unique source ID following the naming conventions above.
- 2.Add the ID and app name to the Registered Source IDs table in this BDS.
- 3.Construct the full contact URL with source, sourceLabel, return, and optionally subject.
- 4.Place the link in the header CTA (public surface only), footer, or navigation drawer per BDS guidelines.
- 5.Test end-to-end: verify the contact page hero shows your app name, the form submits successfully, and the success screen returns to your app.
Admin Dashboard
All enquiries across all apps are visible at:
https://contact-us.exponentialroadmap.org/adminRequires a Manus account with the admin role on the contact service. Provides a Submissions tab (all enquiries, filterable by source app) and a Registered Apps tab (submission counts, first/last seen, return URL).
Standard Components
Version 2.0.0 · 6 canonical files · Copy verbatim — do not reconstruct
Scope: Public-Facing ERI Apps Only
These components apply to public-facing ERI product apps — such as Taxonomy, Professional Services Matrix, and HAL. They are not intended for internal or documentation tools (such as this BDS site itself, which uses its own PublicLayout with a white header appropriate for a reference document). If a project has a fundamentally different surface — for example a white header, an admin panel, or an embedded widget — it is exempt and should use its own layout.
PREFERRED: INSTALL AS NPM PACKAGE
Install @eri/components once per project. Updates propagate automatically to all ERI sites on their next deploy.
Pin to a stable release (recommended):
pnpm add "github:Exponential-Roadmap-Initiative/eri-brand-design-system#v2.10.0&path:packages/eri-components"
Or track latest (auto-updates on each deploy):
pnpm add "github:Exponential-Roadmap-Initiative/eri-brand-design-system#main&path:packages/eri-components"
Then add the pre-built CSS to client/src/index.css before your own styles (required — without this, components will be invisible in Tailwind 4 projects):
@import "@eri/components/dist/eri-components.css";
Then import in App.tsx:
import { EriPageLayout, EriHeroSection, EriStatusBadge, EriContactUsButton } from '@eri/components';Release workflow (BDS maintainer): After updating a component, bump the version in packages/eri-components/package.json, run pnpm build:css in packages/eri-components/ to rebuild the CSS, save a checkpoint (auto-pushes to GitHub), then run:
cd /home/ubuntu/eri-brand-design-system && TOKEN=$(gh auth token) && git remote set-url user_github "https://x-access-token:${TOKEN}@github.com/Exponential-Roadmap-Initiative/eri-brand-design-system.git" && git tag vX.Y.Z && git push user_github vX.Y.ZSource: github.com/Exponential-Roadmap-Initiative/eri-brand-design-system
REQUIRED: IMPORT THE PRE-BUILT CSS (Tailwind 4)
Tailwind 4 does not scan node_modules by default. Without this import, all component styles are stripped at build time — components render in the DOM but are completely invisible. Add this line to client/src/index.css before your own styles:
@import "@eri/components/dist/eri-components.css";
Temporary workaround (pre-v2.9.1 only)
If pinned to an older version, add this line immediately after @import "tailwindcss"; in client/src/index.css. Remove it once upgraded to v2.9.1+.
@source "../../node_modules/@eri/components/src";
Projects with workaround applied
| Project | Status |
|---|---|
| Exponential Taxonomy | Temporary @source workaround applied — upgrade to v2.9.1 and switch to @import |
FALLBACK: DOWNLOAD FILES DIRECTLY
If the npm package cannot be used, copy all 6 files into client/src/components/eri/. Note: these copies will not receive automatic updates — you must re-download when the BDS is updated.
1. EriStatusBadge
Transparent outlined pill badge for app status. Four values: ALPHA BETA PREVIEW LIVE. Adapts to dark and light backgrounds via the theme prop. Never filled, never coloured.
export type EriStatusValue = 'ALPHA' | 'BETA' | 'PREVIEW' | 'LIVE';
export function EriStatusBadge({ status, theme = 'dark', className = '' }) {
const colours =
theme === 'dark'
? 'border-white/60 text-white'
: 'border-gray-400 text-gray-500';
return (
<span className={`inline-flex items-center rounded-full border
px-2.5 py-0.5 text-[11px] font-semibold tracking-widest
uppercase ${colours} ${className}`}>
{status}
</span>
);
}NON-CONFORMANT PATTERNS — do not use
- Filled background (e.g.
bg-gray-200orbg-green-500) — always transparent - Rounded rectangle (
rounded-md) — alwaysrounded-full - Coloured text (e.g. green or amber) — always white on dark, gray on light
Anatomy & Canonical Class String
Internal / pre-release
Public, under active development
Feature-complete, not yet launched
Fully launched, stable, production
Canonical class string
rounded-full border border-current text-[11px] font-semibold tracking-widest uppercase px-2.5 py-0.5On dark/transparent headers: add text-white border-white/60
On white/light headers: add text-gray-500 border-gray-400
Never use a filled background colour. Never use a status dot alongside the badge.
2. EriContactUsButton
Accent Lime CTA button that links to the shared ERI contact service. Constructs the URL automatically from source, sourceLabel, and returnUrl props. Label is always "Contact Us" — do not rename.
export function EriContactUsButton({
source, sourceLabel, returnUrl, subject, size = 'md', className = ''
}) {
const encodedReturn = encodeURIComponent(returnUrl);
const encodedLabel = encodeURIComponent(sourceLabel);
const subjectParam = subject ? `&subject=${encodeURIComponent(subject)}` : '';
const href = `https://contact-us.exponentialroadmap.org/
?source=${source}&sourceLabel=${encodedLabel}
&return=${encodedReturn}${subjectParam}`;
const padding = size === 'sm' ? 'px-3 py-1.5 text-xs' : 'px-4 py-2 text-sm';
return (
<a href={href}
className={`inline-flex items-center justify-center
rounded-lg font-semibold transition-opacity
hover:opacity-90 ${padding} ${className}`}
style={{ backgroundColor: '#93E07D', color: '#1a1a1a' }}>
Contact Us
</a>
);
}NON-CONFORMANT PATTERNS — do not use
- White or gray button fill — always Accent Lime
#93E07D - Pill shape (
rounded-full) — alwaysrounded-lg - Custom label ("Get in touch", "Send message") — always "Contact Us"
- Custom contact form — always link to the shared service
3. EriAppHeader
Canonical 64px fixed header. Left zone: ERI logo → pipe divider → app name. Right zone: status badge → version → optional CTA → hamburger. The showCTA prop is always true — the Contact Us CTA is visible on all surfaces. Rendered once in EriPageLayout — never imported directly in page files.
Props
| Prop | Type | Notes |
|---|---|---|
| appName | string | App display name shown after the pipe divider |
| status | EriStatusValue? | Omit to hide the badge |
| version | string | e.g. "V.2026.04.15" |
| showCTA | boolean | Always pass true — CTA visible on all surfaces. Only false for purely internal tools. |
| source | string? | Required if showCTA may be true |
| sourceLabel | string? | Human-readable app name for contact service |
| returnUrl | string? | Return URL for contact service |
| onMenuClick | () => void | Opens the navigation drawer |
| logoHref | string? | Defaults to "/" |
// In EriPageLayout (not in page files directly):
<EriAppHeader
appName="Professional Services Matrix"
status="BETA"
version="V.2026.04.17"
showCTA={true}
source="psm"
sourceLabel="Professional Services Matrix"
returnUrl="https://psm.exponentialroadmap.org"
onMenuClick={() => setMenuOpen(true)}
/>INTEGRATION NOTES — read before implementing
- Use via
EriPageLayout, not directly — do not importEriAppHeaderin page files. It is rendered once insideEriPageLayoutinApp.tsx. All header props (appName,status,version,showCTA, etc.) are passed toEriPageLayoutand forwarded internally. - showCTA — always true — the Contact Us CTA must be visible on all surfaces (public and authenticated). Always pass
showCTA={true}. Only passshowCTA={false}if the app has no Contact Us entry point (e.g. a purely internal admin tool). Do not useshowCTA={!isAuthenticated}— this incorrectly hides the CTA from logged-in users. - Contact Us button — three source props all required — the CTA renders only when
source,sourceLabel, andreturnUrlare all provided. Omitting any one of them silently hides the button. A dev-mode console warning fires ifshowCTA=truebut props are missing. - Hamburger — always visible, wire
onMenuClickto your drawer — the hamburger button is always rendered.onMenuClickis optional (defaults to no-op) so the button never disappears, but it will do nothing unless you passonMenuClick={() => setMenuOpen(true)}. The header does not manage a drawer — your app must render its own drawer component. - Scope: public-facing apps only — this dark (
#232323) header is for Taxonomy, PSM, HAL, and future public ERI product apps. Internal tools (e.g. the BDS site itself) use their own layout and are exempt.
NON-CONFORMANT PATTERNS — do not use
- Background other than
#232323— never white, green, or transparent - Height other than 64px — always
h-16 - Status dot (coloured circle) in the right zone — removed in v1.8.0, do not re-add
- Navigation links in the header — use the hamburger drawer
- Importing EriAppHeader directly in page files — use EriPageLayout
Header Anatomy
Fixed (sticky top-0 z-50), 64px tall (h-16), #232323 background. Inner container uses max-w-screen-xl mx-auto with paddingInline: var(--eri-content-inset) — this aligns the logotype with the hero text block.
Left Zone — Logo + Divider + Title Block
h-8 w-auto shrink-0, filter: brightness(0) invert(1), links to /h-6 w-px bg-white/20 shrink-0text-sm font-medium text-white truncateRight Zone — Status + Version + CTA + Menu
EriStatusBadge — transparent outlined pill, white on darkV.YYYY.MM.DD (e.g. V.2026.04.15). Never date-only, never lowercase v.EriContactUsButton. Always pass showCTA={true}. The CTA is visible on both public and authenticated surfaces.size-9 rounded-md with lucide Menu icon, always visible4. EriAppFooter
Canonical two-zone dark footer. Left zone: ERI logo + optional tagline. Right zone: copyright string. Background is always #232323 — never dark green, white, or any other colour. Rendered once in EriPageLayout — never imported directly in page files.
// In EriPageLayout (not in page files directly): <EriAppFooter appName="Professional Services Matrix" tagline="Making Pillar 3 climate impact measurable and actionable." />
NON-CONFORMANT PATTERNS — do not use
- Dark green background (e.g. PSM v1) — always
#232323 - White footer (Tier C variation) — only for public marketing sites, not apps
- Placeholder link columns with unconfirmed URLs — only show links with a confirmed destination
- Importing EriAppFooter directly in page files — use EriPageLayout
Footer Rules
| Property | Value |
|---|---|
| Background | #232323 — always. Never dark green, never white (except Tier C admin tools) |
| Top border | border-t border-gray-700 |
| Padding | py-8 vertical · paddingInline: var(--eri-content-inset) horizontal |
| Layout | flex items-center justify-between — two zones, single row |
| Left zone | ERI white wordmark (h-7, filter brightness(0) invert(1)) + optional tagline below (text-sm text-gray-400, max 80 chars) |
| Right nav zone | Confirmed links only: ERI homepage (https://exponentialroadmap.org/) + Contact Us (https://contact-us.exponentialroadmap.org?source=footer&app=...) — text-sm text-gray-400 hover:text-white |
| © Bottom bar | © YYYY Exponential Roadmap Initiative. [App Name]. — text-sm text-gray-500 |
| Link columns | Only show links with confirmed URLs — no placeholder columns |
Permitted Variation — Tier C (White Background)
Admin tools with a persistent sidebar. No logo (sidebar already shows it). Same two-zone layout, light surface.
Known violations to correct
- ERI Platform footer:
bg-[#1a3a2a]dark green — replace with#232323 - PSM light footer: white background — acceptable only for Tier C admin tools, not for public-facing apps
- Taxonomy footer: single-row flat layout with no logo column — upgrade to two-zone standard
5. EriHeroSection
Canonical full-viewport hero section. Matches the live pattern on human-ai-lab.exponentialroadmap.org. Text block is always left-aligned and vertically centred, anchored to --eri-content-inset so it aligns with the header logotype. The background image is centred (50% 50%) — the hands composition is designed to be centred. The overlay is always rgba(35,35,35,0.82) — brand dark, not pure black.titleLine1 is in Accent Lime; titleLine2 is in white. The canonical hands image is baked in as the default — no need to pass backgroundImage for standard use.
Props
| Prop | Type | Required | Notes |
|---|---|---|---|
| eyebrow | string | Yes | Full eyebrow string e.g. "APP NAME ——— BETA" |
| titleLine1 | string | Yes | First H1 line — displayed in Accent Lime (#93E07D) |
| titleLine2 | string? | No | Second H1 line — displayed in white |
| body | string | Yes | Body paragraph text |
| primaryCTA | { label, href } | Yes | Accent Lime filled button — rounded-lg always |
| secondaryCTA | { label, href }? | No | White outline button — rounded-lg always |
| backgroundImage | string? | No | Defaults to ERI_HERO_IMAGE_HANDS — only override for app-specific images |
| overlayOpacity | number? | No | 0–1, defaults to 0.82. Overlay colour is always #232323 |
| showScrollIndicator | boolean? | No | Renders an animated double-chevron at the bottom-centre of the hero. Defaults to false. |
| children | ReactNode? | No | Optional slot below CTAs — for stat counters, attribution lines, etc. |
import { EriHeroSection } from '@eri/components';
{/* Standard usage with scroll indicator */}
<EriHeroSection
eyebrow="PROFESSIONAL SERVICES MATRIX ——— BETA"
titleLine1="Professional"
titleLine2="Services Matrix"
body="Making Pillar 3 climate impact measurable and actionable."
primaryCTA={{ label: "Try the Client Assessment", href: "/assessment" }}
secondaryCTA={{ label: "PSM Journey Demo", href: "/demo" }}
showScrollIndicator
/>
{/* Custom image (e.g. Crocodile Economics) */}
import { EriHeroSection, ERI_HERO_IMAGE_HANDS } from '@eri/components';
<EriHeroSection
eyebrow="CROCODILE ECONOMICS ——— PROTOTYPE"
titleLine1="Crocodile"
titleLine2="Economics"
body="Revenue up. Emissions down."
primaryCTA={{ label: "Explore the Data", href: "/data" }}
backgroundImage="https://cdn.example.com/croc-hero.webp"
overlayOpacity={0.75}
/>
{/* children slot — supplementary content below the CTAs */}
{/* Use for: attribution lines, stat counters, scroll indicators */}
<EriHeroSection
eyebrow="HUMAN-AI LAB ——— EXPONENTIAL ROADMAP INITIATIVE"
titleLine1="Human-AI"
titleLine2="Collaboration"
body="Exploring the frontier of human and AI working together."
primaryCTA={{ label: "Explore the Lab", href: "/lab" }}
secondaryCTA={{ label: "Read the Research", href: "/research" }}
>
{/* Attribution line — rendered below the CTA buttons */}
<p style={{ color: 'rgba(255,255,255,0.55)', fontSize: '11px', marginTop: '1.5rem' }}>
Data sourced from the ERI Exponential Framework v5.0
</p>
</EriHeroSection>Integration Notes
EriHeroSection adds paddingTop: 64px internally to clear the fixed header. Do NOT wrap it in a div with pt-16 — that doubles the clearance.--eri-content-inset is optional — the component falls back to clamp(1rem, 3vw, 2rem) if the variable is absent. Define it in index.css :root for alignment with the header logotype.@import "@eri/components/dist/eri-components.css" is at the top of index.css (v2.9.1+) to prevent Tailwind 4 from purging component classes.ERI_HERO_IMAGE_HANDS) is the default. Only pass backgroundImage for app-specific hero images. Never regenerate the hands image.NON-CONFORMANT PATTERNS — do not use
- Centred text (
text-center) — always left-aligned - Top-anchored text (no
flex flex-col justify-center) — text must be vertically centred - Pure black overlay (
bg-black/40) — alwaysrgba(35,35,35,0.82) - Accent word in Primary Green (
#3ba559) — always Accent Lime (#93E07D) on dark backgrounds - Pill-shaped CTA (
rounded-full) — alwaysrounded-lg - Icon prefix on CTA buttons — text only
- Wrapping
EriHeroSectionin apt-16div — the component handles its own header clearance - Passing
backgroundImagewith the hands URL manually — importERI_HERO_IMAGE_HANDSor omit the prop entirely - Using the hands image on a Trust / Security / Compliance page — use
ERI_HERO_IMAGE_TRUSTinstead
Trust & Security Variant — ERI_HERO_IMAGE_TRUST
For trust, security, data integrity, and compliance contexts, use ERI_HERO_IMAGE_TRUST instead of the default hands image. The Trust image uses an abstract dark texture with interconnected nodes, a hexagonal grid, and a subtle shield motif — conveying rigour and institutional credibility rather than human-AI collaboration. Import the constant from @eri/components and pass it as backgroundImage.
EXPONENTIAL ROADMAP INITIATIVE ——— TRUST
Security & Transparencyfor every ERI application
How ERI protects your data, maintains system integrity, and upholds transparency across all applications.
import { EriHeroSection, ERI_HERO_IMAGE_TRUST } from '@eri/components';
<EriHeroSection
eyebrow="EXPONENTIAL ROADMAP INITIATIVE ——— TRUST"
titleLine1="Security & Transparency"
titleLine2="for every ERI application"
body="How ERI protects your data, maintains system integrity, and upholds transparency across all applications."
primaryCTA={{ label: "View Security Practices", href: "/security" }}
secondaryCTA={{ label: "Data Privacy", href: "/privacy" }}
backgroundImage={ERI_HERO_IMAGE_TRUST}
showScrollIndicator
/>6. EriPageLayout
Canonical layout wrapper. Renders EriAppHeader and EriAppFooter exactly once, wrapping all page content. Use this in App.tsx — never import header or footer directly in page files. The --eri-content-inset CSS variable must be defined in index.css.
Why this matters
If the header or footer markup is duplicated across page files, a change to one copy does not propagate to the others. A single component in a layout wrapper means one change updates every page simultaneously. This is a structural requirement, not a preference.
:root {
--eri-content-inset: clamp(1rem, 3vw, 2rem);
}import { EriPageLayout } from '@eri/components';
function App() {
const [menuOpen, setMenuOpen] = useState(false);
return (
<EriPageLayout
appName="Professional Services Matrix"
status="BETA"
version="V.2026.04.17"
showCTA={true}
source="psm"
sourceLabel="Professional Services Matrix"
returnUrl="https://psm.exponentialroadmap.org"
footerTagline="Making Pillar 3 climate impact measurable."
onMenuClick={() => setMenuOpen(true)}
>
<NavDrawer open={menuOpen} onClose={() => setMenuOpen(false)} />
<Router /> {/* your page router */}
</EriPageLayout>
);
}INTEGRATION NOTES — read before implementing
- Hamburger is always visible — wire
onMenuClickto your drawer — the hamburger button is always rendered and cannot be hidden via props.onMenuClickdefaults to a no-op, so the button is never missing, but it does nothing unless you passonMenuClick={() => setMenuOpen(true)}. If you do not want a hamburger, do not useEriPageLayout. - Your app owns the drawer — render it as a child of
EriPageLayout—EriPageLayoutfiresonMenuClickbut never renders a drawer itself. Your app must managemenuOpenstate and render its own<NavDrawer>or<Sheet>as a sibling to<Router />inside the layout children. - Outer background is
#232323— the layout wrapper sets a dark background on the outermost div. Each page component must set its own background colour (typicallybg-[#F9FAFB]) on its outermost div, otherwise the page will appear dark. - No automatic top padding —
EriPageLayoutdoes not addpt-16to the content area. The header isfixedat 64px — each page's first section must add enough top padding to clear it (e.g.pt-16orpt-24for hero sections). - showCTA — always true — the Contact Us CTA must be visible on all surfaces (public and authenticated). Always pass
showCTA={true}. Only passshowCTA={false}if the app has no Contact Us entry point (e.g. a purely internal admin tool). Do not useshowCTA={!isAuthenticated}— this incorrectly hides the CTA from logged-in users. - Contact Us button — three source props all required — the CTA renders only when
source,sourceLabel, andreturnUrlare all provided. Omitting any of the three source props silently hides the button with a dev-mode console warning.
NON-CONFORMANT PATTERNS — do not use
- Importing EriAppHeader or EriAppFooter directly in page files — always use EriPageLayout in App.tsx
- Rendering the header inside a page component — leads to duplicate headers on navigation
- Missing
--eri-content-insetin index.css — header and hero text will not align
UI Components
All interactive components use shadcn/ui as the base. Two tab patterns exist — use the right one for the right context. Always import from @/components/ui/* or @/components/SimpleTabNav.
1. Page Navigation Tabs — SimpleTabNav
Used for page-level navigation where each tab changes the URL. Features: URL-driven active state, icon + label + count, green underline indicator, no background fill.
import { SimpleTabNav, TabConfig } from "@/components/SimpleTabNav";
const tabs: TabConfig[] = [
{ id: "file", label: "File", path: "/admin/data-lake/file", count: 7, icon: <FileText /> },
{ id: "api", label: "API", path: "/admin/data-lake/api", count: 5, icon: <Plug /> },
];
<SimpleTabNav tabs={tabs} basePath="/admin/data-lake" />2. In-Page Content Tabs — <Tabs>
Used for in-page content switching where the URL does not change. Uses shadcn pill/background style.
Rule: Use SimpleTabNav when tabs change the page/URL. Use shadcn <Tabs> for in-page content switching only. Never mix the two patterns on the same page.
3. Buttons
Import from @/components/ui/button. The outline variant uses a transparent background — add a bg class manually if needed.
import { Button } from "@/components/ui/button";
// Primary CTA
<Button variant="default">Try Assessment</Button>
// Secondary action (note: transparent bg — add bg-white if on coloured surface)
<Button variant="outline">View Details</Button>
// Danger action
<Button variant="destructive">Delete</Button>4. Inputs & Selects
Always pair with a <label>. Use placeholder as a hint, not as a label substitute.
This field is required.
5. Cards
Use shadow-sm as the default elevation. Add hover:shadow-md transition-shadow for interactive cards. Never use shadow-lg or shadow-xl.
Static Card
shadow-sm · no hover · use for data display
Interactive Card
shadow-sm hover:shadow-md · use for clickable items
Subtle Card
bg-gray-50 · use for secondary info, notes, callouts
import { Card, CardContent } from "@/components/ui/card";
// Static data card
<Card className="shadow-sm"><CardContent className="p-5">...</CardContent></Card>
// Interactive/clickable card
<Card className="shadow-sm hover:shadow-md transition-shadow cursor-pointer">...</Card>
// Subtle callout card
<Card className="shadow-sm bg-gray-50 border-gray-200">...</Card>6. Data Tables
Use plain HTML tables inside a Card with p-0 padding. Alternate row colours with bg-white / bg-gray-50.
| Company | Tier | Status | Score |
|---|---|---|---|
| Volvo Cars | Gold | Active | 87% |
| IKEA | Platinum | Active | 94% |
| H&M Group | Silver | Pending | 61% |
3. CTA Buttons
The canonical call-to-action button for all ERI surfaces — hero sections, landing pages, interior pages, and footers. Accent Lime background (#93E07D), dark text (#1a1a1a), rounded-lg shape. This is the single CTA button style across all ERI products — do not use Primary Green (#3ba559) for filled buttons. Primary Green is reserved for links, active states, and text accents only.
{/* ✅ Primary CTA — use everywhere (hero, interior, footer) */}
<a
href="/solutions"
className="inline-block px-6 py-3 rounded-lg font-archivo font-semibold text-base text-[#1a1a1a]"
style={{ backgroundColor: "#93E07D" }}
>
Explore Climate Solutions
</a>
{/* ✅ Secondary CTA — dark background surfaces */}
<a
href="/playbook"
className="inline-block px-6 py-3 rounded-lg font-archivo font-semibold text-base text-white border-2 border-white"
>
Human-AI Playbook
</a>
{/* ✅ Secondary CTA — light background surfaces */}
<a
href="/playbook"
className="inline-block px-6 py-3 rounded-lg font-archivo font-semibold text-base text-[#232323] border-2 border-[#232323]"
>
Learn More
</a>
{/* ❌ Do NOT use Primary Green for filled buttons */}
{/* ❌ Do NOT add icon prefixes to CTA buttons */}
{/* ❌ Do NOT add CTA buttons to the header right zone */}
{/* ❌ Do NOT use pill shape (rounded-full) for CTAs */}5. Footer
The standard ERI dark footer. Four columns: About (nav links), Newsletter (subscribe CTA), Follow us (social links as text), Contact us (email). Column headings: Archivo weight 500, 18px, white. All links in Accent Lime #93E07D, Open Sans 14px. Bottom bar: Open Sans 16px, white/40.
Contact us
[email protected]Surface Modes
ERI products use two named surface modes — Light and Dark. These are not competing themes; they are two contexts within the same brand. Light mode is the default for application interiors. Dark mode is used for marketing landing pages and hero sections.
Light Mode
Default#F9FAFB#FFFFFF#232323#6B7280#E5E7EB#93E07DUse for: Application interiors — PSM, Crocodile data views, user management, dashboards
Dark Mode
Marketing#0d2828#1a3a3a#FFFFFF#9CA3AF#93E07D#93E07DUse for: Marketing landing pages, hero sections, Human-AI Lab, public-facing app entry points
When to use which mode
Public marketing / landing page?
Dark mode
Authenticated app interior?
Light mode
App with both landing + interior?
Dark hero → Light app (switch at login)
Dark Hero Background Images
Pre-approved hero backgrounds for dark-mode landing pages. Always overlay with white or Accent Lime #93E07D text. The left quarter of each image is kept dark for text placement.
Human-AI Lab — Hands Touching (Primary)
heroImages.halHandsTouchingHuman-AI Lab landing page, any human + AI collaboration narrative. Two translucent wireframe hands reaching toward each other, fingertips meeting at the S-curve crossing point with a golden burst of light. Michelangelo-inspired composition. Currently live on human-ai-lab.exponentialroadmap.org.
Human-AI Lab — Human Network
heroImages.halHumanNetworkHuman-AI Lab, any human + AI collaboration narrative. Features the dual S-curves with a distributed network of connected person icons representing global human collaboration.
Human-AI Lab — Dual S-Curve (Minimal)
heroImages.halSCurveDualGeneric ERI dark hero, any dual-transition narrative without an explicit human network element.
Human-AI Lab — Reaching (Duo Figures)
heroImages.halMFReachingHuman-AI Lab, human collaboration with AI, gender-balanced team narratives. Two constellation figures (male left, female right) reaching toward each other across the S-curve crossing point — emphasising the human-to-human connection enabled by AI.
Crocodile Economics — Decoupling
heroImages.crocodileDecouplingCrocodile Economics app, any absolute decoupling / emissions-reduction narrative. Features diverging jaw curves: cyan (#00B4D8) GDP line rising, amber emissions line falling.
Resources
Additional materials and tools to support brand-consistent design and development.
Business Playbook
The Exponential Business Playbook v5.0 — the foundation for all ERI products.
View PlaybookContact
Questions about brand usage or need custom assets? Get in touch with the ERI team.
Get in TouchMachine Instructions
For AI TasksThis section is the canonical reference for Manus AI tasks building ERI products. When instructed to follow the ERI brand, read this section first. All values are authoritative — do not infer, approximate, or substitute.
ERI BDS Reference Skill
v1.1.0Updated 12 Apr 2026A portable Manus skill that embeds the ERI brand reference directly into any AI project. Once installed, the agent automatically consults the correct colour tokens, typography rules, navigation tiers, and CDN asset URLs before acting — without needing a manual prompt.
For AI agents: Download and install via Manus Skills UI, or add the CDN URL to your project instructions. The skill auto-triggers for any task tagged as an ERI product build.
For project leads: Share the download link with your team or add it to your project onboarding docs. When a new AI task is started, instruct it to install this skill before proceeding.
Before You Act — Pre-Action Checklist
Before generating any asset, writing any colour value, or building any UI component for an ERI product, you must consult the relevant section of this Brand Design System. Do not rely on memory, approximation, or inference — always look up the authoritative value.
When you are…
Touching any logo or favicon
Never recolour the S-curve mark. Favicon = white-bg rounded PNG only. Use CDN URL favicon-white-rounded-32_05ba5ceb.png. 32px is correct — do not use the dark variant.
When you are…
Writing any colour value
→ Check Visual Identity section
Use exact hex values from the Colour Tokens table. Never approximate with Tailwind colour names.
When you are…
Building any navigation component
→ Check Navigation & Layout section
Match the correct tier (B, A, or C) to the app type. Left panel is sole desktop nav for Tier C.
When you are…
Using any brand asset (logo, icon, image)
→ Check Asset URL Reference below
Use the CDN URLs listed here. Do not regenerate assets that already exist on the CDN.
When you are…
Writing any copy or UI text
British English throughout. -ise not -ize, -our not -or. Dates as DD Month YYYY.
When you are…
Choosing a font
→ Check Typography Rules below
Archivo only. Load from Google Fonts CDN. font-extrabold (800) for all headings.
How to reference this page in a Manus task prompt
Add the following instruction to any task prompt that requires ERI brand compliance:
Before building, read the ERI Brand Design System at: https://eri-brand-design-system.manus.space/#ai-instructions Follow all rules in the Machine Instructions section exactly. Do not use any colours, fonts, or patterns not listed there.
Colour Tokens
Use these exact hex values. Never approximate with Tailwind colour names.
Brand Colours
| Token | Hex | Usage |
|---|---|---|
| primary-green | #3ba559 | Links, active states, text accents — NOT for filled buttons |
| primary-dark | #232323 | Headings, footer bg, dark section backgrounds, hero overlay |
| neutral-gray | #6b7280 | Secondary text, borders |
| off-white | #F9FAFB | Page bg, card bg, light section bg |
| green-300 | #93cda3 | Accent links in footer |
Pillar Colours
| Pillar | Hex (500) | Name |
|---|---|---|
| P1 Operations | #9aa08c | See tonal scales in Visual Identity |
| P2 Value Chain | #17b7dd | See tonal scales in Visual Identity |
| P3 Solutions | #00ac58 | See tonal scales in Visual Identity |
| P4 Finance | #ff8b00 | See tonal scales in Visual Identity |
| P5 Policy | #ff5133 | See tonal scales in Visual Identity |
Typography Rules
Mandatory. Do not substitute Inter, Roboto, or any other font.
font-sans and font-archivo.font-extrabold (800) for all h1–h3.#232323.text-gray-900 for body text — use #232323.Header Anatomy — Web App Pattern
All ERI web applications use this exact header structure. Implement it using PublicLayout.
ROADMAP INITIATIVE
EXPONENTIAL ROADMAP INITIATIVE
[App Title]
| Element | Tailwind Classes | Notes |
|---|---|---|
| ERI logo (PNG) | h-8 w-auto | Link to /. PNG not SVG. |
| Vertical divider | w-px h-8 bg-gray-300 shrink-0 | Hidden on mobile. |
| App title | text-[18px] font-semibold text-[#384151] | Current app/page name. |
| BETA badge | border border-gray-400 text-gray-600 rounded-full px-2 py-0.5 text-[11px] | Outlined pill. |
| Version string | text-[11px] font-medium text-gray-500 tracking-wide | Format: V.YYYY.MM.DD |
| Hamburger menu | size-9 rounded-md | Lucide Menu icon. Opens full-screen overlay. |
Language Rules
All copy generated for ERI products must follow these rules without exception.
Component & Layout Rules
Follow these rules when building any ERI UI component or page.
PublicLayout as the wrapper for all public-facing pages — never build a custom header or footer.bg-[#F9FAFB]. Card background: white. Footer background: bg-[#232323].bg-[#93E07D] text-[#1a1a1a] rounded-lg font-semibold hover:opacity-90. No icon prefix. One Contact Us CTA in the header right zone on all surfaces (public and authenticated). Always pass showCTA={true}.shadow-sm, white background, rounded-lg. Use hover:shadow-md transition-shadow for interactive cards.max-w-6xl mx-auto px-4. Never exceed 1152px for content.rounded-full on cards or large containers — only on badges, pills, and avatars.#232323 or white.Asset URL Reference
All brand assets are hosted on the same CloudFront CDN. Use these direct URLs in AI task prompts or code. The base CDN path is https://d2xsxph8kpxj0f.cloudfront.net/310519663319595517/5mtZtU66sMbsnmPoVbf6UJ/.
Logos
| Token | File | Usage |
|---|---|---|
| logos.eriLogoFullColor | eri-logo-full-color_f5763508.png | Primary wordmark (PNG) — use in <img> tags |
| logos.eriLogoFullColorSvg | eri-logo-full-color_775a0122.svg | SVG wordmark — use for download links only |
| logos.eriIconMark | eri-icon-mark_08cd328f.webp | Compact ERI mark |
| logos.exponentialRoadmapLogo | exponential-logo_0cda439e.webp | Exponential swirl icon — raw source file (no rounded corners). Use favicon variants for production. |
| logos.faviconWhiteRounded32 | favicon-white-rounded-32_05ba5ceb.png | ✅ CORRECT browser tab favicon — 32px white-bg rounded PNG (PNG only on Manus) |
| logos.faviconWhiteRounded180 | favicon-white-rounded-180_2daaa7d4.png | 180px Apple Touch Icon (iOS home screen) |
| logos.faviconWhiteRounded192 | favicon-white-rounded-192_54fb4338.png | 192px Android / PWA manifest icon |
Manus Skills
| Skill | Version | CDN URL |
|---|---|---|
| eri-bds-reference | v1.0.0 | eri-bds-reference-v1.2.0_dc90d54c.skill |
Pillar Icons (WebP)
| Token | Pillar |
|---|---|
| pillarBottomIcons.pillar1 | P1 bottom icon (navigation overlay) |
| pillarBottomIcons.pillar2 | P2 bottom icon (navigation overlay) |
| pillarBottomIcons.pillar3 | P3 bottom icon (navigation overlay) |
| pillarBottomIcons.pillar4 | P4 bottom icon (navigation overlay) |
| pillarBottomIcons.pillar5 | P5 bottom icon (navigation overlay) |
| pillarMarks.pillar1 | P1 pillar mark (compact identifier) |
| pillarMarks.pillar2 | P2 pillar mark (compact identifier) |
| pillarMarks.pillar3 | P3 pillar mark (compact identifier) |
| pillarMarks.pillar4 | P4 pillar mark (compact identifier) |
| pillarMarks.pillar5 | P5 pillar mark (compact identifier) |
Framework Diagrams (PNG) — v5
| Token | Description |
|---|---|
| frameworkV5.fivePillarsBg | 5 Pillars radial — coloured background |
| frameworkV5.fivePillarsBgLogo | 5 Pillars radial — bg + ERI logo |
| frameworkV5.fivePillarsBgLogoTitle | 5 Pillars radial — bg + logo + title |
| frameworkV5.fivePillarsExtended | 5 Pillars extended (with action blocks) |
| frameworkV5.fivePillarsTransparent | 5 Pillars radial — transparent bg |
| frameworkV5.fivePillarsShortText | 5 Pillars short text — transparent |
| frameworkV5.fivePillarsSymbols | 5 Pillars symbols only — transparent |
| frameworkV5.fivePillarsText | 5 Pillars text only — transparent |
| frameworkV5.leadershipA | Leadership diagram A |
| frameworkV5.leadershipB | Leadership diagram B |
| frameworkV5.pillarsLinear | Pillars linear layout |
| frameworkV5.reducingEnabling | Reducing & enabling diagram |
Pillar Elements (WebP) — v5
Pattern: pillarsLong[1].solid → filename pillar-1-long-solid.webp. Same for pillarsRegular, pillarsExtended. For pillarsShort: .symbol → pillar-N-symbol-solid.webp / .text → pillar-N-text-solid.webp
| Namespace | Pillars | Variants |
|---|---|---|
| pillarsLong | 1–5 | solid, transparent |
| pillarsRegular | 1–5 | solid, transparent |
| pillarsExtended | 1–5 | solid, transparent |
| pillarsShort | 1–5 | symbol, symbolTransp, text, textTransp |
Data Source & Partner Logos — Direct CDN URLs
Use the CDN URL directly in <img src>. Token pattern: dataSourceLogos.cdp.url
| Name | Category | CDN URL |
|---|---|---|
| CDP | Climate Data | https://d2xsxph8kpxj0f.cloudfront.net/310519663319595517/5mtZtU66sMbsnmPoVbf6UJ/cdp-logo_cce59d3e.webp |
| SBTi | Standards | https://d2xsxph8kpxj0f.cloudfront.net/310519663319595517/5mtZtU66sMbsnmPoVbf6UJ/sbti-logo_c443004e.webp |
| TPI | Climate Data | https://d2xsxph8kpxj0f.cloudfront.net/310519663319595517/5mtZtU66sMbsnmPoVbf6UJ/tpi-logo_8c0a85cd.webp |
| GLEIF | Company Data | https://d2xsxph8kpxj0f.cloudfront.net/310519663319595517/5mtZtU66sMbsnmPoVbf6UJ/gleif-logo_1564ec4e.webp |
| MSCI | ESG Ratings | https://d2xsxph8kpxj0f.cloudfront.net/310519663319595517/5mtZtU66sMbsnmPoVbf6UJ/msci-logo_697a38d2.webp |
| WBA | Benchmarks | https://d2xsxph8kpxj0f.cloudfront.net/310519663319595517/5mtZtU66sMbsnmPoVbf6UJ/wba-logo_a7d5909f.webp |
| Net Zero Tracker | Climate Data | https://d2xsxph8kpxj0f.cloudfront.net/310519663319595517/5mtZtU66sMbsnmPoVbf6UJ/net-zero-tracker-logo_9a6f718f.webp |
| B Corp | Certification | https://d2xsxph8kpxj0f.cloudfront.net/310519663319595517/5mtZtU66sMbsnmPoVbf6UJ/b-corp-logo_2a5f8eeb.webp |
| Eurostat | Statistical Data | https://d2xsxph8kpxj0f.cloudfront.net/310519663319595517/5mtZtU66sMbsnmPoVbf6UJ/eurostat-logo_5e0881d5.webp |
| Wikidata | Open Data | https://d2xsxph8kpxj0f.cloudfront.net/310519663319595517/5mtZtU66sMbsnmPoVbf6UJ/wikidata-logo_064f2f7b.webp |
| Klimatkollen | Climate Data | https://d2xsxph8kpxj0f.cloudfront.net/310519663319595517/5mtZtU66sMbsnmPoVbf6UJ/klimatkollen-logo_69e86393.webp |
| LobbyMap | Policy Data | https://d2xsxph8kpxj0f.cloudfront.net/310519663319595517/5mtZtU66sMbsnmPoVbf6UJ/lobbymap-logo_bf257500.webp |
| Perplexity AI | AI Tools | https://d2xsxph8kpxj0f.cloudfront.net/310519663319595517/5mtZtU66sMbsnmPoVbf6UJ/perplexity-ai-logo_0c220c4f.webp |
| SME Climate Hub | Standards | https://d2xsxph8kpxj0f.cloudfront.net/310519663319595517/5mtZtU66sMbsnmPoVbf6UJ/sme-climate-hub-logo_9687a4db.webp |
| SR Navigator | ERI Tools | https://d2xsxph8kpxj0f.cloudfront.net/310519663319595517/5mtZtU66sMbsnmPoVbf6UJ/sr-navigator-logo_8fe4a7c5.webp |
| Social | https://d2xsxph8kpxj0f.cloudfront.net/310519663319595517/5mtZtU66sMbsnmPoVbf6UJ/linkedin-logo_8d548e22.webp | |
| GitHub | Developer | https://d2xsxph8kpxj0f.cloudfront.net/310519663319595517/5mtZtU66sMbsnmPoVbf6UJ/github-logo_3da73845.webp |
| Oxford Net Zero | Research | https://d2xsxph8kpxj0f.cloudfront.net/310519663319595517/5mtZtU66sMbsnmPoVbf6UJ/oxford-net-zero-logo_ce1013f6.webp |
| Oxford University | Research | https://d2xsxph8kpxj0f.cloudfront.net/310519663319595517/5mtZtU66sMbsnmPoVbf6UJ/oxford-university-logo_eca7f3ea.webp |
| IPCC | Research | https://d2xsxph8kpxj0f.cloudfront.net/310519663319595517/5mtZtU66sMbsnmPoVbf6UJ/ipcc-logo_ab7ea87a.webp |
| UNFCCC | Policy | https://d2xsxph8kpxj0f.cloudfront.net/310519663319595517/5mtZtU66sMbsnmPoVbf6UJ/unfccc-logo_fa309fd3.webp |
| WBCSD | Standards | https://d2xsxph8kpxj0f.cloudfront.net/310519663319595517/5mtZtU66sMbsnmPoVbf6UJ/wbcsd-logo_b3e424e8.webp |
| WRI | Research | https://d2xsxph8kpxj0f.cloudfront.net/310519663319595517/5mtZtU66sMbsnmPoVbf6UJ/wri-logo_83f04a6e.webp |
| Project Drawdown | Research | https://d2xsxph8kpxj0f.cloudfront.net/310519663319595517/5mtZtU66sMbsnmPoVbf6UJ/project-drawdown-logo_2c67a47c.webp |
| Climate Champions | Initiatives | https://d2xsxph8kpxj0f.cloudfront.net/310519663319595517/5mtZtU66sMbsnmPoVbf6UJ/climate-champions-logo_f27672a0.webp |
| 2030 Breakthroughs | Initiatives | https://d2xsxph8kpxj0f.cloudfront.net/310519663319595517/5mtZtU66sMbsnmPoVbf6UJ/2030-breakthroughs-logo_0024771e.webp |
| Klimatkommunerna | Initiatives | https://d2xsxph8kpxj0f.cloudfront.net/310519663319595517/5mtZtU66sMbsnmPoVbf6UJ/klimatkommunerna-logo_551ccf43.webp |
| Viable Cities | Initiatives | https://d2xsxph8kpxj0f.cloudfront.net/310519663319595517/5mtZtU66sMbsnmPoVbf6UJ/viable-cities-logo_42211258.webp |
| Naturvårdsverket | Government | https://d2xsxph8kpxj0f.cloudfront.net/310519663319595517/5mtZtU66sMbsnmPoVbf6UJ/naturvardsverket-logo_bc234e18.webp |
Member Company Logotypes — Direct CDN URLs
Use the CDN URL directly in <img src>. Token pattern: memberLogos.scania.url
| Company | Sector | CDN URL |
|---|---|---|
| AFRY | Engineering | https://d2xsxph8kpxj0f.cloudfront.net/310519663319595517/5mtZtU66sMbsnmPoVbf6UJ/afry-logo_5d25ca8d.webp |
| Alfa Laval | Industrial | https://d2xsxph8kpxj0f.cloudfront.net/310519663319595517/5mtZtU66sMbsnmPoVbf6UJ/alfa-laval-logo_9309c994.webp |
| Apple | Technology | https://d2xsxph8kpxj0f.cloudfront.net/310519663319595517/5mtZtU66sMbsnmPoVbf6UJ/apple-logo_255c3687.webp |
| Axel Johnson | Investment | https://d2xsxph8kpxj0f.cloudfront.net/310519663319595517/5mtZtU66sMbsnmPoVbf6UJ/axel-johnson-logo_28311721.webp |
| BT | Telecoms | https://d2xsxph8kpxj0f.cloudfront.net/310519663319595517/5mtZtU66sMbsnmPoVbf6UJ/bt-logo_d3683a2e.webp |
| Ericsson | Technology | https://d2xsxph8kpxj0f.cloudfront.net/310519663319595517/5mtZtU66sMbsnmPoVbf6UJ/ericsson-logo_36fef01e.webp |
| Technology | https://d2xsxph8kpxj0f.cloudfront.net/310519663319595517/5mtZtU66sMbsnmPoVbf6UJ/google-logo_f127e1bf.webp | |
| Handelsbanken | Finance | https://d2xsxph8kpxj0f.cloudfront.net/310519663319595517/5mtZtU66sMbsnmPoVbf6UJ/handelsbanken-logo_512b4f78.webp |
| Houdini Sportswear | Apparel | https://d2xsxph8kpxj0f.cloudfront.net/310519663319595517/5mtZtU66sMbsnmPoVbf6UJ/houdini-sportswear-logo_881deb10.webp |
| Icebug | Apparel | https://d2xsxph8kpxj0f.cloudfront.net/310519663319595517/5mtZtU66sMbsnmPoVbf6UJ/icebug-logo_b84d308e.webp |
| IKEA | Retail | https://d2xsxph8kpxj0f.cloudfront.net/310519663319595517/5mtZtU66sMbsnmPoVbf6UJ/ikea-logo_26047fb0.webp |
| Investor AB | Investment | https://d2xsxph8kpxj0f.cloudfront.net/310519663319595517/5mtZtU66sMbsnmPoVbf6UJ/investor-ab-logo_1aa672a8.webp |
| Juan Valdez Café | Food & Beverage | https://d2xsxph8kpxj0f.cloudfront.net/310519663319595517/5mtZtU66sMbsnmPoVbf6UJ/juan-valdez-cafe-logo_aa8886b3.webp |
| Max Burgers | Food & Beverage | https://d2xsxph8kpxj0f.cloudfront.net/310519663319595517/5mtZtU66sMbsnmPoVbf6UJ/max-burgers-logo_d1d37117.webp |
| Netflix | Media | https://d2xsxph8kpxj0f.cloudfront.net/310519663319595517/5mtZtU66sMbsnmPoVbf6UJ/netflix-logo_7a66f54f.webp |
| Oatly | Food & Beverage | https://d2xsxph8kpxj0f.cloudfront.net/310519663319595517/5mtZtU66sMbsnmPoVbf6UJ/oatly-logo_e7e935ba.webp |
| Oracle | Technology | https://d2xsxph8kpxj0f.cloudfront.net/310519663319595517/5mtZtU66sMbsnmPoVbf6UJ/oracle-logo_8aaa2878.webp |
| Polestar | Automotive | https://d2xsxph8kpxj0f.cloudfront.net/310519663319595517/5mtZtU66sMbsnmPoVbf6UJ/polestar-logo_7991cd8e.webp |
| PowerCell Sweden | Energy | https://d2xsxph8kpxj0f.cloudfront.net/310519663319595517/5mtZtU66sMbsnmPoVbf6UJ/powercell-sweden-logo_9cbab63c.webp |
| Ragn-Sells | Waste & Recycling | https://d2xsxph8kpxj0f.cloudfront.net/310519663319595517/5mtZtU66sMbsnmPoVbf6UJ/ragnsells-logo_269530a0.webp |
| Scan Global Logistics | Logistics | https://d2xsxph8kpxj0f.cloudfront.net/310519663319595517/5mtZtU66sMbsnmPoVbf6UJ/scan-global-logistics-logo_add4fa3e.webp |
| Scania | Automotive | https://d2xsxph8kpxj0f.cloudfront.net/310519663319595517/5mtZtU66sMbsnmPoVbf6UJ/scania-logo_8e61095e.webp |
| Skanska | Construction | https://d2xsxph8kpxj0f.cloudfront.net/310519663319595517/5mtZtU66sMbsnmPoVbf6UJ/skanska-logo_ff07a68d.webp |
| Speedy Hire | Equipment Hire | https://d2xsxph8kpxj0f.cloudfront.net/310519663319595517/5mtZtU66sMbsnmPoVbf6UJ/speedy-hire-logo_fe52c971.webp |
| Spotify | Media | https://d2xsxph8kpxj0f.cloudfront.net/310519663319595517/5mtZtU66sMbsnmPoVbf6UJ/spotify-logo_70f403a1.webp |
| Stegra | Green Steel | https://d2xsxph8kpxj0f.cloudfront.net/310519663319595517/5mtZtU66sMbsnmPoVbf6UJ/stegra-logo_5fc0f38f.webp |
| Tele2 | Telecoms | https://d2xsxph8kpxj0f.cloudfront.net/310519663319595517/5mtZtU66sMbsnmPoVbf6UJ/tele2-logo_3ecd98de.webp |
| Telia Company | Telecoms | https://d2xsxph8kpxj0f.cloudfront.net/310519663319595517/5mtZtU66sMbsnmPoVbf6UJ/telia-company-logo_ff637b46.webp |
| Unilever | Consumer Goods | https://d2xsxph8kpxj0f.cloudfront.net/310519663319595517/5mtZtU66sMbsnmPoVbf6UJ/unilever-logo_8889bae7.webp |
Section Index
Canonical section IDs and their anchor URLs for programmatic reference.
| # | Section | Anchor ID |
|---|---|---|
| 1 | Brand Proposition | #brand-proposition |
| 2 | Visual Identity | #visual-identity |
| 3 | Logo Usage | #logo-usage |
| 4 | Typography | #typography |
| 5 | Verbal Identity | #verbal-identity |
| 6 | Photography | #photography |
| 7 | Brand Graphics | #brand-graphics |
| 8 | Testimonials | #testimonials |
| 9 | Exponential Framework | #exponential-framework |
| 10 | Charts & Data Visualisation | #charts |
| 11 | Member Logotypes | #member-logos |
| 12 | Data Source Logos | #data-source-logos |
| 13 | Navigation & Layout | #navigation |
| 14 | Spacing & Layout | #spacing |
| 15 | Component Library | #component-library |
| 16 | Badge Reference | #badges |
| 17 | CTA Buttons | #cta-buttons |
| 18 | Interactive States | #interactive-states |
| 19 | Contact Us Integration | #contact-us |
| 20 | Standard Components | #standard-components |
| 21 | UI Components | #components |
| 22 | Surface Modes | #surface-modes |
| 23 | Resources | #resources |
| 24 | Machine Instructions | #ai-instructions |































































