OEFF Design DNA

Extracted from hosts.oneearthfilmfest.org — tokens, patterns, and principles

Color Palette

Brand Colors

OEFF Black
#231F20
OEFF Blue
#3960AC
OEFF Aqua
#42A7C2
Light Aqua
#BAE1E2
OEFF Sage
#92BEAA
OEFF Ivory
#FFF3DF

Extended Palette

Blue Deep
#2d4a8a
Sage Deep
#6a9a84
Sage Light
#c8ddd2

Neutrals (Sage-Tinted)

Warm White
#FAFAF8
Sage Mist
#F5F8F6
Sage Whisper
#EEF3F0
Border
#e5e2dc

Text Colors

TokenValueUse
--color-text#231F20Primary text
--color-text-soft#4a4542Secondary text
--color-text-muted#7a746fTertiary / labels
Key insight: Neutrals have a subtle sage/green tint — not pure gray. This creates warmth and connects to the environmental theme.

Typography

RoleFont StackUse
--font-display 'Avenir Next', 'Avenir', 'Segoe UI', system-ui, sans-serif Headlines, labels, nav, buttons, tables
--font-body Georgia, 'Times New Roman', serif Body text, paragraphs, quotes

Type Settings

PropertyBodyHeadlines
line-height1.71.2-1.3
letter-spacing0.01em-0.02em (tighter)
word-spacing0.02emnormal
font-feature-settings'kern' 1, 'liga' 1, 'onum' 1
Pattern: Sans-serif (Avenir) for functional UI; Serif (Georgia) for reading. This creates clear hierarchy with 0KB web font overhead.

Spacing Scale

TokenValuePx @ 17px base
--space-2xs0.25rem4.25px
--space-xs0.5rem8.5px
--space-sm0.75rem12.75px
--space-md1rem17px
--space-lg1.5rem25.5px
--space-xl2rem34px
--space-2xl3rem51px
--space-3xl4rem68px

Base font size: 17px (desktop), 16px (mobile)

Border Radius

Organic Radius Pattern

OEFF uses asymmetric border-radius for a hand-crafted, organic feel:

Standard
6px
Organic
10-12-9-11
Organic SM
5-7-6-8
--radius: 6px; --radius-lg: 10px; --radius-organic: 10px 12px 9px 11px; --radius-organic-sm: 5px 7px 6px 8px;
When to use: Organic radius on cards, buttons, callouts — anything that should feel "natural." Standard radius on tables, inputs, small UI elements.

Shadows

Shadows are sage-tinted, not gray — this is distinctive:

--shadow-soft: 0 1px 2px rgba(146, 190, 170, 0.08), 0 4px 8px rgba(146, 190, 170, 0.06), 0 8px 16px rgba(35, 31, 32, 0.03); --shadow-elevated: 0 2px 4px rgba(146, 190, 170, 0.10), 0 8px 16px rgba(146, 190, 170, 0.08), 0 16px 32px rgba(35, 31, 32, 0.04);

The rgba(146, 190, 170, ...) is sage (#92BEAA). This creates warmth even in shadows.

Motion

EasingValueUse
Standard ease cubic-bezier(0.4, 0, 0.2, 1) General transitions
Spring (interactive) cubic-bezier(0.34, 1.4, 0.64, 1) Buttons, pills, hover states — slight overshoot

Animations

NameDurationUse
logo-breathecontinuousSubtle logo rotation (1.5deg)
gentle-pulse4sCarbon dot, status indicators
timeline-pulse3sCurrent timeline marker glow
fade-in-up0.3sFAQ answers, content reveal

Texture

The site uses layered grain overlays (SVG noise patterns) for organic texture:

Grain Implementation

Component Patterns

Gate Pattern (User Routing)

Stage Navigation Pills

Timeline

FAQ Accordion

Next Step Callout

Carbon Badge

Accessibility

FeatureImplementation
Skip linkHidden until focused, jumps to #main
Focus visible2px solid aqua, 2px offset
Reduced motion@media query disables animations
ARIAExpandable sections have aria-expanded, aria-controls
KeyboardAll interactive elements support Enter/Space

Design Principles (Inferred)

1. Warm but Professional

2. Sustainability-First

3. Progressive Disclosure

4. Nature-Inspired

Integration with CogCommons

To add OEFF as a domain theme in the design system:

/* themes/oeff.css */ [data-domain="oeff"] { --accent-primary: #92BEAA; /* sage */ --accent-secondary: #42A7C2; /* aqua */ --accent-tertiary: #3960AC; /* blue */ --surface-warm: #FAFAF8; --surface-tinted: #F5F8F6; --surface-accent: #EEF3F0; --shadow-color: 146, 190, 170; /* sage RGB for shadows */ --radius-organic: 10px 12px 9px 11px; --font-display: 'Avenir Next', system-ui, sans-serif; --font-body: Georgia, serif; }