Networkadvertising (NAI) Brand Design System Deep-Dive
1. Brand Overview
Networkadvertising.org (NAI) is the self-regulatory association for digital advertising privacy practices. Their audience is a mix of industry insiders—tech companies, ad networks, compliance officers—and policymakers. This isn’t a consumer-facing brand in the traditional sense. It’s about trust, authority, and professional credibility.
The design language reflects that. You won't see playful gradients or whimsical illustrations. Instead, the site leans on clean typography, restrained color, and a utilitarian layout system. The vibe is “professional tech policy.” It’s direct, minimal, and functional—almost like a standards document with just enough visual polish to feel modern.
The primary color choice, a deep vivid violet (#7900f2), is unusual for a compliance-focused site. It injects some brand personality without undermining seriousness. This isn’t the safe blue you see in most corporate tech brands. Violet here reads as confident and slightly academic, evoking depth and thoughtfulness.
Typography is handled with precision: GT America for big statements, system-ui sans-serif stacks for body and utility text. GT America is a neo-grotesque with a rigid, modern feel, perfect for headings that need authority. The fallback stacks show they care about performance and rendering consistency, especially given their audience may be on corporate networks with varying font availability.
Spacing is disciplined, built on an 8px scale with occasional 4px offsets. This is a developer-friendly grid—easy to remember, easy to implement. Breakpoints are clearly defined, targeting mobile-first, then stepping through tablet and desktop widths.
Every visual choice supports NAI’s mission: clarity over decoration, structure over flourish. But there’s enough color and typographic texture to avoid looking like a PDF dump of legal text.
2. Color System
2.1 Primary Colors
The primary semantic color is pure black (rgb(0,0,0) / #000000). That’s the default text and link color in most contexts. The hero brand accent is a saturated violet (rgb(121,0,242) / #7900f2). This is used for standout links and accents, not background fills—it’s a signal color.
Why violet? It’s less common than blue in the tech/privacy space. Blue says “safe, corporate.” Violet says “thoughtful, distinctive.” It’s positioned here as an accent, keeping the main interface monochrome for readability.
The palette also includes functional colors: error red (#da394d), sky cyan (#00c6f2), and a range of grays for borders and secondary text.
2.2 Complete Palette
| Color Name | Hex | Role | Usage |
|---|---|---|---|
| Primary Black | #000000 | Semantic primary | Body text, default links |
| Brand Violet | #7900f2 | Accent | Highlight links, brand elements |
| White | #ffffff | Background | Page background, text on dark |
| Indigo-Gray | #564c90 | Hover/focus state | Link hover |
| Semi-transparent White | #ffffff (72.5% opacity) | Hover/focus overlay | Button hover overlay |
| Near-Black | #040112 | Hover/focus background | Dark surfaces |
| Deep Navy | #07021f | Hover/focus background | Darker UI states |
| TEC Event Hover | #334aff | Functional accent | Event icon hover |
| TEC Accent Hover CC | #334affcc | Functional accent | Link accent hover |
| Secondary Icon | #bababa | Icon color | UI icons |
| Event Icon Primary | #141827 | Icon color | Events |
| Text Secondary Date | #5d5d5d | Secondary text | Dates |
| Icon Alt | #757575 | Icon alt color | Secondary icons |
| Error Red | #da394d | Error state | Validation, alerts |
| Background Secondary Datepicker | #f7f6f6 | Background | Datepicker panels |
| Border Secondary | #e4e4e4 | Border | Dividers, containers |
| Border Default | #d5d5d5 | Border | Default outlines |
| Scroll Track | rgba(0,0,0,0.25) | Scroll track | Scroll UI |
| Background Error | #da394d14 | Error bg | Error overlays |
| Background Transparent | #fff9 | Overlay | Transparent panels |
| Background Multiday | #1418273d | Calendar bg | Multiday events |
| Background Multiday Hover | #14182757 | Calendar hover | Multiday events hover |
| Background Primary Multiday | #334aff3d | Calendar bg | Primary events |
| Background Primary Multiday Hover | #334aff57 | Calendar hover | Primary events hover |
2.3 Color Relationships
The palette is high-contrast by default—black text on white background meets WCAG AAA easily. Violet (#7900f2) on white is also high contrast, though on black it drops. Error red (#da394d) on white passes AA.
Functional blues (#334aff) are lighter, so for accessibility, they need dark or white backgrounds, not mid-gray surfaces. Semi-transparent overlays are purely decorative and shouldn’t carry critical information.
Dark mode is not indicated in the data—this is a light-first design.
2.4 Usage Guide
- Works well: Black text on white, violet accents for CTAs, red for errors.
- Avoid: Violet text on deep navy (#07021f)—contrast drops badly.
- Functional: Use gray borders (#e4e4e4, #d5d5d5) for dividing space; don’t fill large areas with them.
- Accents: Keep violet and cyan for interactive elements only—don’t flood backgrounds.
3. Typography
3.1 Font Families
- GT America — Adobe Fonts source. Used for headings, buttons, some links. No fallbacks listed.
- ui-sans-serif — System stack fallback:
system-ui, -apple-system, Segoe UI, Roboto, Helvetica Neue, Arial, Noto Sans, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji. - proxima-nova — One occurrence in headings at 16px.
No Google Fonts. No variable fonts. This is a fixed-weight setup.
3.2 Type Scale
| Element | Font | Size | Weight | Line Height |
|---|---|---|---|---|
| Heading-1 | GT America | 72px (4.50rem) | 700 | 1.00 |
| Heading-1 | GT America | 60px (3.75rem) | 700 | 1.00 |
| Heading-1 | GT America | 48px (3.00rem) | 700 | 1.25 |
| Heading-1 | GT America | 36px (2.25rem) | 700 | 1.11 |
| Link | ui-sans-serif | 30px (1.88rem) | 500 | 1.20 |
| Heading-1 | GT America | 30px (1.88rem) | 700 | 1.20 |
| Button | GT America | 24px (1.50rem) | 700 | 1.33 |
| Heading-1 | ui-sans-serif | 20px (1.25rem) | 700 | 1.40 |
| Link | ui-sans-serif | 18px (1.13rem) | 700 | 1.56 |
| Link | ui-sans-serif | 16px (1.00rem) | 400 | 1.50 |
| Link | ui-sans-serif | 16px (1.00rem) | 400 | 1.50 |
| Heading-1 | ui-sans-serif | 16px | 400 | 1.50 |
| Link | GT America | 16px | 400 | 1.50 |
| Button | GT America | 16px | 400 | 1.50 |
| Heading-1 | GT America | 16px | 400 | 1.50 |
| Link | GT America | 16px | 400 | 1.50 |
| Heading-1 | ui-sans-serif | 16px | 400 | 1.50 |
| Button | ui-sans-serif | 16px | 400 | 1.50 |
| Heading-1 | proxima-nova | 16px | 400 | 1.50 |
| Link | ui-sans-serif | 14px (0.88rem) | 400 | 1.43 |
| Button | ui-sans-serif | 14px | 400 | 1.43 |
| Caption | ui-sans-serif | 14px | 400 | 1.43 |
| Caption | ui-sans-serif | 14px | 400 | 1.43 |
3.3 Hierarchy
Big headings (72px, 60px) are for hero statements—rare, high-impact. 48px and 36px are section leaders. 30px sits in between heading and link, interestingly. 24px buttons are oversized compared to most UI norms—this reads as deliberate for emphasis. Body text is 16px, with 14px for captions. The letter spacing 0.8px on some 16px and 14px sizes adds air, improving scanability in dense UI contexts.
4. Spacing & Layout
4.1 Spacing Scale
Base scale: 8px. It’s consistent, with half-step 4px for tight elements.
| Value (px) | rem | Count | Use |
|---|---|---|---|
| 4 | 0.25rem | 10 | Icon gaps, micro padding |
| 6 | 0.38rem | 2 | Rare tight padding |
| 8 | 0.50rem | 118 | Core gap, padding in lists |
| 10 | 0.63rem | 2 | Niche |
| 12 | 0.75rem | 57 | Button padding, small gaps |
| 16 | 1.00rem | 17 | Body padding, card content |
| 24 | 1.50rem | 7 | Larger card padding |
| 28 | 1.75rem | 3 | Odd gap—probably image spacing |
| 32 | 2.00rem | 42 | Section gaps |
| 40 | 2.50rem | 22 | Major section gaps |
| 48 | 3.00rem | 13 | Hero spacing |
| 64 | 4.00rem | 25 | Page-level gaps |
| 80 | 5.00rem | 2 | Rare large spacing |
| 112 | 7.00rem | 4 | Hero vertical |
| 115.328 | 7.21rem | 33 | Specific layout offset |
| 128 | 8.00rem | 2 | Max container gap |
| 144 | 9.00rem | 1 | Max spacing |
4.2 Layout
Breakpoints: 500px, 600px, 640px, 768px, 781px, 782px, 1024px, 1280px. The 781/782px split suggests pixel-perfect adjustments for certain components. Tailwind CSS is in play, so responsive modifiers are native to the code.
5. Visual Elements
Border Radius: Just two values—6px (menu) and 9999px (pill shapes). The full radius is used on anchors and divs to create pills and avatars. No medium-radius cards—either sharp or completely round.
Shadows: Two types. A heavy drop (rgba(0,0,0,0.2) 0px 2px 15px) used 11 times—probably for modals or dropdowns. A subtle multi-layer shadow used 5 times for light elevation.
Borders: Frequent use of bottom borders (0px 0px 2px solid #e5e7eb) for links. Occasionally, 5px bottom borders for emphasis. Grays (#e5e7eb, #d1d5db) dominate. Rare cyan (#00c6f2) and white borders for special states.
6. Components
6.1 Buttons
No explicit button background data in extracted JSON—likely context-dependent. Typography for buttons: GT America, sizes 24px (bold) and 16px (regular). Radius: either square or pill (9999px). Borders: minimal.
States: Not detailed for buttons—hover styles may rely on color overlays.
6.2 Links
Five link variants:
- Black (#000000), weight 400, no underline. Hover: gray (
rgba(107,114,128,var(--tw-text-opacity))). - White (#ffffff), weight 400. Hover: same gray.
- Blue (
#6366f1), weight 500. Hover: gray. - Violet (#7900f2), weight 400. Hover: gray.
- Cyan (#00c6f2), weight 700. Hover: gray.
All kill the underline—pure color change for hover.
6.3 Forms
No input styling extracted—likely default Tailwind/Vuetify components.
6.4 Cards
Shadow rgba(0,0,0,0.2) 0px 2px 15px fits card usage. Radius likely sharp or pill depending on layout.
7. Design Tokens
:root {
/* Colors - Semantic */
--color-primary: #000000;
--color-brand-violet: #7900f2;
--color-white: #ffffff;
--color-indigo-gray: #564c90;
--color-near-black: #040112;
--color-deep-navy: #07021f;
--color-event-hover: #334aff;
--color-event-hover-cc: #334affcc;
--color-icon-secondary: #bababa;
--color-event-icon-primary: #141827;
--color-text-secondary-date: #5d5d5d;
--color-icon-alt: #757575;
--color-error-red: #da394d;
--color-bg-secondary-datepicker: #f7f6f6;
--color-border-secondary: #e4e4e4;
--color-border-default: #d5d5d5;
--color-scroll-track: rgba(0,0,0,0.25);
--color-bg-error: #da394d14;
--color-bg-transparent: #fff9;
--color-bg-multiday: #1418273d;
--color-bg-multiday-hover: #14182757;
--color-bg-primary-multiday: #334aff3d;
--color-bg-primary-multiday-hover: #334aff57;
/* Typography */
--font-gt-america: "GT America", sans-serif;
--font-ui-sans: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
--font-proxima-nova: "Proxima Nova", sans-serif;
/* Spacing */
--space-4: 4px;
--space-6: 6px;
--space-8: 8px;
--space-10: 10px;
--space-12: 12px;
--space-16: 16px;
--space-24: 24px;
--space-28: 28px;
--space-32: 32px;
--space-40: 40px;
--space-48: 48px;
--space-64: 64px;
--space-80: 80px;
--space-112: 112px;
--space-115-328: 115.328px;
--space-128: 128px;
--space-144: 144px;
/* Border Radius */
--radius-sm: 6px;
--radius-full: 9999px;
/* Shadows */
--shadow-heavy: rgba(0,0,0,0.2) 0px 2px 15px 0px;
--shadow-light: rgba(0,0,0,0.1) 0px 1px 3px 0px, rgba(0,0,0,0.06) 0px 1px 2px 0px;
}8. AI Coding Assistant Prompt
# NAI Design System Specification
You are a Networkadvertising (NAI) design expert. Build UIs matching their visual language exactly.
## Brand Context
NAI’s design language is professional, minimal, and structured. It uses a monochrome base with vivid violet accents for brand personality. Typography is clean and authoritative, spacing is disciplined on an 8px grid.
## Color Palette
- Primary Black: #000000 — Default text, primary links
- Brand Violet: #7900f2 — Accent links, brand elements
- White: #ffffff — Page backgrounds, text on dark surfaces
- Indigo-Gray: #564c90 — Hover/focus link state
- Near-Black: #040112 — Hover/focus dark backgrounds
- Deep Navy: #07021f — Darker UI states
- Event Hover Blue: #334aff — Interactive hover accents
- Event Hover CC Blue: #334affcc — Link accent hover
- Secondary Icon Gray: #bababa — UI icons
- Event Icon Primary: #141827 — Event icon color
- Text Secondary Gray: #5d5d5d — Secondary text like dates
- Icon Alt Gray: #757575 — Alternative icon color
- Error Red: #da394d — Validation errors, destructive actions
- Background Secondary Datepicker: #f7f6f6 — Datepicker panels
- Border Secondary: #e4e4e4 — Dividers
- Border Default: #d5d5d5 — Default outlines
- Scroll Track: rgba(0,0,0,0.25) — Scroll UI
- Background Error: #da394d14 — Error overlays
- Background Transparent: #fff9 — Transparent overlays
- Background Multiday: #1418273d — Calendar multiday events
- Background Multiday Hover: #14182757 — Calendar hover state
- Background Primary Multiday: #334aff3d — Calendar primary events
- Background Primary Multiday Hover: #334aff57 — Calendar hover primary events
## Typography
- Headings: GT America (Adobe Fonts)
- Body/UI: ui-sans-serif system stack
- Special: Proxima Nova (occasional headings)
| Level | Font | Size | Weight | Line Height | Use For |
|-------|------|------|--------|-------------|---------|
| H1 Hero | GT America | 72px | 700 | 1.00 | Page titles |
| H1 Large | GT America | 60px | 700 | 1.00 | Section hero |
| H1 Medium | GT America | 48px | 700 | 1.25 | Major section headings |
| H1 Small | GT America | 36px | 700 | 1.11 | Subsections |
| Link XL | ui-sans-serif | 30px | 500 | 1.20 | Navigation links |
| H1/Link Med | GT America | 30px | 700 | 1.20 | Subheadings |
| Button Lg | GT America | 24px | 700 | 1.33 | Primary buttons |
| H1 Small UI | ui-sans-serif | 20px | 700 | 1.40 | UI headings |
| Link Md | ui-sans-serif | 18px | 700 | 1.56 | Inline links |
| Body | ui-sans-serif | 16px | 400 | 1.50 | Paragraphs |
| Caption | ui-sans-serif | 14px | 400 | 1.43 | Small labels |
## Spacing & Grid
Base: 8px grid. Values: 4, 6, 8, 10, 12, 16, 24, 28, 32, 40, 48, 64, 80, 112, 115.328, 128, 144px.
Use multiples of 8px for all spacing. 4px for micro-gaps, 32px+ for section spacing.
## Border Radius
- sm: 6px — Menus
- full: 9999px — Pills, avatars
## Shadows & Depth
- Heavy: rgba(0,0,0,0.2) 0px 2px 15px — Modals, cards
- Light: rgba(0,0,0,0.1) 0px 1px 3px, rgba(0,0,0,0.06) 0px 1px 2px — Light elevation
## Component Specifications
### Primary Button
```css
.btn-primary {
font-family: var(--font-gt-america);
font-size: 24px;
font-weight: 700;
line-height: 1.33;
border-radius: var(--radius-full);
padding: var(--space-12) var(--space-32);
background: var(--color-brand-violet);
color: var(--color-white);
border: none;
transition: background 150ms ease;
}
.btn-primary:hover { background: var(--color-indigo-gray); }
.btn-primary:focus { outline: 2px solid var(--color-event-hover); outline-offset: 2px; }
.btn-primary:disabled { opacity: 0.5; cursor: not-allowed; }
```
### Navigation Links
```css
.nav-link {
font-weight: 400;
color: var(--color-primary);
text-decoration: none;
}
.nav-link:hover { color: rgba(107,114,128,1); }
```
### Card
```css
.card {
background: var(--color-white);
border-radius: var(--radius-sm);
box-shadow: var(--shadow-heavy);
padding: var(--space-32);
}
```
## Layout & Responsive Rules
Max content width: 1280px.
Padding: 16px mobile / 32px desktop.
Breakpoints: 500px, 600px, 640px, 768px, 781px, 782px, 1024px, 1280px.
## Interaction Rules
- Transition timing: 150ms ease for hover and focus
- Focus indicators: 2px solid accent colors
- Loading states: Reduce opacity
## DO List
- Use ONLY colors from the palette—no custom colors
- Maintain 8px grid—all spacing must be multiples of 8px
- Use GT America for headings, ui-sans-serif for body
- Keep link hover color as gray, no underline
- Apply full-radius for pills consistently
## DON'T List
- Don’t mix rounded and sharp corners in the same component
- Don’t use shadows on text
- Don’t invent new accent colors
- Don’t remove padding from buttons—they rely on spacing for visual balance
## Code Examples
### Primary Button
```css
<button class="btn-primary">Submit</button>
```
### Card Container
```css
<div class="card">Content here</div>
```
### Form Input
```css
.input {
border: 1px solid var(--color-border-default);
border-radius: var(--radius-sm);
padding: var(--space-12);
font-size: 16px;
}
.input:focus {
border-color: var(--color-event-hover);
outline: none;
}
```9. Summary
TL;DR — NAI’s design system is disciplined, monochrome-first with violet accents. Typography is authoritative, spacing is predictable, and UI elements avoid decoration in favor of clarity.
Brand Keywords — trust-driven, tech-minimalist, violet-accented, grid-disciplined, policy-focused