This record is managed by an account, but domain control has not been proven.
visual.md
---
bcp_version: "1.1.1"
file_type: visual
parent: https://registry.brandcontextprotocol.dev/firefox-8df36a3b/.well-known/brand.md
last_updated: 2026-09-14
---
# Visual
The brand's visual identity is preserved below as machine-readable tokens and practical usage rules.
## Logo
```yaml
logo:
primary:
description: Primary logo asset detected from customer-provided surfaces.
variants:
- format: svg
url: "https://firefox.com/media/img/logos/firefox/logo-word-hor-2026.svg"
sha256: c3ce0c77cf5c57961db3ac3b48991f23c6adc5cbf51d37c58e11d4aa0d92dda3
purpose: "Fetched from the customer's published brand surface."
```
## Logo usage
```yaml
logo_usage:
clear_space:
rule: Keep clear space around the logo at least equal to the height of its core mark.
machine_value:
unit: x-height
multiplier: 1.0
minimum_size:
digital_px: 24
approved_backgrounds:
- type: solid_color
color_token: background
note: Default light surface when contrast is sufficient.
- type: solid_color
color_token: surface-inverse
note: Inverse surface when a light or reversed variant is available.
forbidden_backgrounds:
- type: gradient
note: Do not place the logo over decorative gradients unless brand guidelines explicitly allow it.
- type: patterned
note: Patterned backgrounds reduce legibility.
forbidden_modifications:
- stretch
- rotate
- recolor
- drop_shadow
- glow
- outline
- crop
- container_shape
- animate
```
## Color
```yaml
color:
tokens:
accent:
hex: "#7543E3"
role: primary
description: "accent extracted from customer source material."
background:
hex: "#FFFFFF"
role: surface
description: "background extracted from customer source material."
text:
hex: "#15141A"
role: text
description: "text extracted from customer source material."
approved_pairs:
- foreground: text
background: background
context: Default body text.
forbidden_pairs:
- foreground: accent
background: background
reason: Use only if contrast testing passes for the actual type size.
```
## Typography
```yaml
typography:
families:
mozilla_headline_vf:
family: "Mozilla Headline VF"
fallback_stack: ["Helvetica Neue", "Arial", "sans-serif"]
weights: [600]
styles: ["normal"]
source: "customer site extraction"
mozilla_text_vf:
family: "Mozilla Text VF"
fallback_stack: ["Helvetica Neue", "Arial", "sans-serif"]
weights: [400, 600]
styles: ["normal"]
source: "customer site extraction"
roles:
display: mozilla_headline_vf
body: mozilla_text_vf
ui: mozilla_text_vf
```
## Layout and components
```yaml
elevation:
shadows:
- "rgba(0, 0, 0, 0.16) 0px 4px 12px 0px"
spacing:
scale_px: [8, 24, 48, 70, 128]
components:
buttons:
- background: "#7543e3"
color: "#ffffff"
radius_px: 128
padding_px: [12, 24]
font_weight: 600
- background: "transparent"
color: "#ffffff"
radius_px: 128
padding_px: [12, 24]
font_weight: 600
- background: "transparent"
color: "#15141a"
radius_px: 0
padding_px: [0, 0]
font_weight: 400
source: Observed from the site's live CSS, not a declared design system. Verify against your canonical tokens.
```
## Imagery
```yaml
imagery:
photographic_style: |
Use concrete, brand-owned imagery when available. Avoid generic stock,
abstract AI motifs, and visuals that contradict the extracted identity.
illustration_style: |
Keep illustration subordinate to the brand system. Use only when it
clarifies the message better than photography or product evidence.
iconography_style: |
Follow the brand's existing mark, stroke, and geometry cues. Do not invent
decorative symbols without a human-approved precedent.
forbidden_treatments:
- generic AI iconography
- decorative gradients behind text
- stock business-meeting photography
```