| .. | ||
| assets | ||
| fonts | ||
| preview | ||
| screenshots | ||
| ui_kits/product | ||
| uploads | ||
| colors_and_type.css | ||
| ICONOGRAPHY.md | ||
| README.md | ||
| SKILL.md | ||
Fenja AI — Nordic Editorial Design System
The Digital Archivist. An interface that breathes. A design system that treats data like a high-end research publication and an interface like a piece of minimalist Danish furniture.
1. Brand Context
Fenja AI is an AI product whose brand rejects the frantic, neon-soaked tropes of "Deep Tech" AI in favor of a timeless, academic, and human-centric aesthetic. The name Fenja comes from Norse myth — Fenja and Menja are the giantesses of the mill Grótti, grinders of gold and salt. The logo is a single spear (Norse iconography), rendered in warm charcoal #383831.
The goal of every surface: authoritative quietude. Move beyond the "template" look by using intentional asymmetry, oversized editorial margins, tonal surface shifts (no hairline dividers), and a radical commitment to negative space.
Sources in this project
| Source | What it contained |
|---|---|
uploads/fenja icon black.svg |
Primary spear icon (charcoal) |
uploads/fenja icon white.svg |
Spear icon (on dark) |
uploads/fenja black(1).svg |
Full wordmark lockup: spear + "Fenja AI" in Manrope Medium |
uploads/fenja white(1).svg |
Wordmark lockup (on dark) |
uploads/Manrope-*.ttf |
7 weights of Manrope — the functional sans |
uploads/Newsreader_36pt-*.ttf |
5 cuts of Newsreader — the editorial serif |
| Pasted spec | "Nordic Editorial" design principles: surfaces, pigments, "no-line" rule, ghost borders, tonal layering, runic iconography |
No codebase or Figma file was attached. UI kit screens in this system are derived from the written spec alone and should be treated as reference implementations, not pixel ports of a shipping product.
2. Content Fundamentals
Voice: the quiet expert. Fenja doesn't shout. It speaks the way a good research librarian does — precise, unhurried, generous with context. The tone is academic but warm, not clinical.
Tone rules
| Do | Don't |
|---|---|
| "A study in stillness." | "🚀 Blazingly fast AI!" |
| "Archive of 4,812 documents." | "4.8K+ files uploaded 🔥" |
| "We found a pattern." | "AI magic unlocked ✨" |
| Serif subheads paired with crisp sans body | All-caps marketing shouts |
Casing & grammar
- Sentence case everywhere. Buttons, headlines, menu items. No Title Case marketing jargon.
- Oxford comma, always.
- Full stops on standalone sentences, none on single-phrase labels or buttons.
- Numerals for data (
12 results), spelled for prose (twelve years of research). - Prefer "you" for user-facing prose; "we" is used sparingly and only for Fenja itself (e.g. "We found a pattern."). Avoid "our" marketing padding.
The Definitive Emphasis — headline syntax
A strict grammatical and visual rhythm, to reinforce the Archivist persona. Applies to every product-level headline (hero H1, section H2, card H3, ask-pane titles).
| Rule | Detail |
|---|---|
| Terminal keyword placement | The core capability or subject of the headline must always sit at the end of the sentence. |
| Styling | That final keyword or phrase is rendered in Newsreader Bold Italic. Everything before it stays in the standard serif weight. |
| The absolute period | Every headline concludes with a period — even in contexts where headlines are conventionally left open. The period is a visual anchor and a signal of finality. |
Examples:
- "A quiet place to keep what you are reading."
- "Recently filed."
- "Reading alongside you, Fenja."
- "Ask the archive."
Apply this rule only to product-authored headlines — do not rewrite user-generated content (document titles, note headings) into the syntax.
Emoji & glyph policy
- No emoji. Anywhere. Not in UI, not in empty states, not in marketing.
- Unicode glyphs are acceptable as typographic devices only: em-dashes (—), en-dashes (–), interpuncts (·), section marks (§), pilcrow (¶).
- For state markers, use the Archival Pigment accent colors applied to runic geometry, not colored emoji.
Copy examples
| Context | Copy |
|---|---|
| Empty state | "Nothing here yet. Drop a document to begin." |
| Loading | "Reading…" (not "Loading…", never "Please wait") |
| Error | "Could not reach the archive. Retry?" |
| Success | "Filed." or "Saved to your archive." |
| CTA | "Begin" / "Open archive" / "Read the study" |
| Destructive confirm | "Remove this forever?" (full stop, honest) |
Microcopy rhythm
Fenja microcopy often uses a period where other brands use an exclamation point. Confidence comes from restraint.
"A thinking tool. Built slowly." "Search your own library. Quietly." "Ask the archive."
3. Visual Foundations
Surface philosophy — the "no-line" rule
Borders are forbidden for structural sectioning. Define boundaries through background color shifts between surface tiers only. Treat the UI as stacked sheets of fine cotton paper.
surface-container-lowest #fffcf7 ← floating search, topmost elevation (unbleached paper — the only near-white)
surface / background #faf6ee ← primary canvas
surface-container-low #f6f2e8 ← first tonal nest
surface-container #efeadc ← inset sections, sidebars
surface-container-high #e7e1d0 ← deeper insets
surface-container-highest #ddd6c3 ← recessed / pressed button fill
A surface-container-lowest card sits on a surface-container-low section on a surface page with zero dividers.
Archival Pigment accent palette
Flat, matte inks — extracted from historical manuscripts. Never gradient, never glossy. For overlapping data areas, apply at 20–40% opacity so the paper texture bleeds through.
| Swatch | Hex | Use |
|---|---|---|
| Faded Terracotta | #b96b58 |
Warnings, critical alerts, destructive |
| Oxidized Copper | #6d8c7c |
Success, growth, positive trends |
| Raw Ochre | #c29d59 |
Cautions, tertiary accents |
| Faded Indigo | #5a6d83 |
Info, neutral data (the only "blue") |
| Dusty Heather | #8d7a85 |
Categorical, supporting iconography |
No "tech blue." Ever. The only permissible blue is the heavily desaturated #5a6d83.
Typography
- Headlines (Newsreader serif) —
displayandheadlinescales. Atdisplay-lguse letter-spacing-0.02emfor a locked-in editorial feel. - Body & labels (Manrope sans) —
title,body,labelscales. Body line-height 1.6 against the warm background. - Hierarchy rule: always lead with the serif for intent, follow with sans for execution.
- Labels are all-caps, tracked
+0.08em, in--on-surface-variant.
Headlines are always left-aligned. No centered text in hero sections. A strong vertical axis is non-negotiable.
Spacing — the editorial margin
Desktop lateral padding is --space-20 (7rem / 112px). Hero cards use --space-8 (44px) padding. Between list items use --space-6 (32px). Generous whitespace is the system's primary visual tool.
Backgrounds & imagery
- No full-bleed photography in chrome. Imagery lives in contained frames, always.
- Preferred imagery vibe: warm, matte, desaturated — think museum-catalog reproductions. Film grain is welcome; high saturation is not.
- Hand-drawn graphite illustrations are the primary iconography: 1–1.5px stroke in
--on-surface#383831, clean but slightly organic. One Archival Pigment accent per icon, used on a single conceptual element (Oxidized Copper for a positive trend line, Faded Terracotta for a warning mark). - Data & connectivity is drawn as topographic currents — smooth, parallel, hand-drawn contour lines that wrap around figures and interface elements. Never nodes-and-links. Never solid dots.
- Data grids (axes, rules) use the Ghost Border at 15–30% opacity. No solid axis lines.
- No patterns, no gradients on chrome. Primary CTA is a flat fill — no gradient, no shadow.
Elevation & depth
Depth comes from tonal layering, not shadow. Stack surface tiers. When a floating effect is truly needed:
- Blur 32–64px, opacity 4–6%, color
--on-surface(not pure black — keeps the shadow warm). --shadow-ambientfor cards,--shadow-floatfor popovers,--shadow-modalfor overlays.
Borders
Forbidden for layout. If accessibility requires a border (focus ring, form field bottom edge): use the Ghost Border — --outline-variant at 15% opacity. Never a solid 100% border. Focus rings use a 2px outset in --secondary at 40% opacity.
Corner radii
--radius-md0.75rem (12px) — the default. Buttons, cards, inputs.--radius-lg1.25rem (20px) — hero cards, modals.--radius-sm0.375rem (6px) — dense UI, tags, chips.- No fully-rounded pills except for runic state dots and avatars (
--radius-full).
Cards
--radius-md, no border, no solid shadow — tonal lift only. Place a lighter tier card (surface-container-lowest) on a darker tier section (surface-container-low).- Hero cards:
--space-8(44px) padding, generous. - Standard cards:
--space-5to--space-6padding. - If elevation is needed, use
--shadow-ambient— a whisper.
Transparency & blur (Glass)
Reserved for floating overlays only: command palettes, toasts, floating search, dropdowns over scrollable content. Apply backdrop-filter: blur(12–20px) to a surface token at 80% opacity. Do not use glass on chrome, cards, or hero sections.
Hover, press, focus
| State | Treatment |
|---|---|
| Hover (primary button) | fill darkens #785f53 → #6b5348; no scale |
| Hover (secondary) | fill darkens one tonal tier |
| Hover (tertiary) | fill deepens, arrow slides 4px right |
| Hover (link) | border-bottom from 30% opacity → 100% |
| Press | 1px translateY down, no scale-shrink |
| Focus | 2px --secondary ring at 40% opacity, 3px offset |
| Disabled | 40% opacity, no cursor change on hover |
No bounce. No elastic. No "playful" overshoots. The whole system has one easing: cubic-bezier(0.2, 0.0, 0, 1) and one speed: 240ms. Fades and tonal shifts only.
Animation
- Transitions: 140ms (fast micro), 240ms (default), 420ms (layout).
- No bounces, no springs, no overshoots.
- Loading state uses interactive outline typography (drifting Newsreader letterforms behind hand-drawn human illustrations) paired with topographic currents. No spinners, no progress circles, no runic rotations.
- Page entrances: fade + 4px translate-up. Never scale. Never slide from off-screen.
Layout rules
- Desktop content max-width
72rem(1152px), reading measure max42rem(672px). - Lateral margin
--space-20(7rem) on desktop;--space-5(24px) on mobile. - Fixed header (if present) uses glass surface; never a solid fill.
- Asymmetry is encouraged. Illustrations and runic accents may bleed off-center or overlap container edges.
4. Components
Buttons
| Variant | Spec |
|---|---|
| Primary | #785f53 flat fill · white text · radius-md (12px) · no shadow · hover darkens to #6b5348 |
| Secondary | surface-container-highest #ddd6c3 fill · --on-surface text · reads like a subtle indentation in the page |
| Tertiary | Warm-wheat #d9c9a8 fill · dark-walnut text · italic serif arrow that slides right on hover. Kept as a distinct colored button — no underline, no ghost states. |
Cards & lists
- The rule of no dividers. Forbid horizontal lines between list items. Separate with
--space-6(2rem) of whitespace, or alternate background tints betweensurfaceandsurface-container. - Cards:
--radius-md(12px). Generous padding —--space-8(2.75rem) for hero cards to maintain the editorial feel;--space-5to--space-6for standard cards. - No borders. Elevation is tonal — place a lighter tier card on a darker tier section.
Input fields
- Forgo the box.
surface-variant(#e7e1d0) background with a bottom-only Ghost Border (--outline-variantat 30% opacity). No side borders, no rounded box. - Labels:
label-smsize, all-caps, tracked+0.08em, in--secondary-fixed-dim(#9a8679) — muted, sophisticated. - Focus: bottom border thickens to
--secondary(#785f53).
Iconography
See ICONOGRAPHY.md for full detail.
- Hand-drawn, thin stroke (1px or 1.5px) in
--on-surface#383831. Clean but slightly organic — intentional micro-asymmetry. - Pigment accents: one Archival Pigment per icon, applied to a single conceptual element (Oxidized Copper trend line, Faded Terracotta warning flame).
- No filled Material icons. No emoji. No cartoon illustration.
Signature components
- Interactive outline typography (loader). Replaces all spinners and runic geometry. Outlined Newsreader letterforms drift, rotate and morph behind hand-drawn human illustrations — the meeting point of human expression and advanced technology. See
preview/outline-type-loader.html. - Topographic currents (data & connectivity). Parallel, hand-drawn contour lines that wrap around figures and interface elements like elevation rings. Replaces all node-and-link visualizations. See
preview/topographic-currents.html.
5. Font substitutions
No substitutions required — all font files were provided.
- Manrope (supplied, 7 weights: 200, 300, 400, 500, 600, 700, 800) — self-hosted from
fonts/. - Newsreader (supplied, 5 cuts: Regular, Italic, Bold, BoldItalic, ExtraBold) — self-hosted from
fonts/.
Missing from the upload but referenced in the system:
- No monospace was provided. We default to JetBrains Mono / system mono stack. If a specific mono is desired, flag it and we'll swap it in.
6. Index — files in this project
Root
README.md— this fileICONOGRAPHY.md— icon approach, library choice, usage rulescolors_and_type.css— all CSS variables + semantic base styles (import this everywhere)SKILL.md— agent-skill manifestfonts/— Manrope + Newsreader TTFs (self-hosted)assets/— logos (icon + wordmark, black + white variants)
Preview cards
preview/— individual HTML cards that populate the Design System review tab (one card per sub-concept)
UI kits
ui_kits/product/— hi-fi recreation of the Fenja AI product surface (chat-with-archive)index.html— interactive demo*.jsx— component files
Slides
- Not included. No slide template was attached.
7. Known limitations / asks
- No codebase or Figma was attached. UI kit screens are designed from the written spec and should be treated as a reference implementation.
- Custom iconography does not yet exist. We use Lucide at 1.5px stroke weight as a stand-in. A bespoke set matching the "runic + graphite" description is the biggest open gap.
- Illustration assets are not yet produced. Where illustrations are called for, we ship labelled placeholders.
- Product scope unclear. The system as written points toward a research/knowledge product — we modeled a single surface ("Archive") accordingly. Please confirm whether there's a marketing site, a docs site, or other surfaces we should cover.