Skip to main content

Brand Kit

The complete visual identity system for emanuelmallia.com, covering colours, typography, spacing, components, shadows, and motion tokens.

Color Palette

A clean off-white surface in light theme and a near-black ink stage in dark theme, both carried by a single hot ember accent. All colors are CSS custom properties using RGB channels for Tailwind alpha support.

Light Mode

Default theme -- warm, grounded, professional.

Dark Mode

Near-black ink base with a hotter ember accent for contrast.

Typography

Three carefully paired typefaces — Archivo for headings, Hanken Grotesk for body, and Spline Sans Mono for code and data labels — tuned with custom tracking and line-height values.

Headings -- Archivo

Applied automatically to all h1-h6 elements via CSS. Use font-heading for non-heading elements.

H1text-5xl

The quick brown fox

weight: 700 (Bold)line-height: 1.1tracking: -0.03em
H2text-4xl

Jumps over the lazy dog

weight: 600 (Semibold)line-height: 2.75remtracking: -0.03em
H3text-3xl

Pack my box with five

weight: 600 (Semibold)line-height: 2.25remtracking: -0.02em
H4text-2xl

Dozen liquor jugs quickly

weight: 600 (Semibold)line-height: 2remtracking: -0.02em
H5text-xl

How vexingly quick daft

weight: 600 (Semibold)line-height: 1.875remtracking: -0.02em
H6text-lg

Zebras jump in the fog

weight: 600 (Semibold)line-height: 1.75remtracking: -0.01em

Body -- Hanken Grotesk

Default sans-serif for all body copy. Optimised for long-form readability at 16px base.

Body Largetext-lg

The quick brown fox jumps over the lazy dog. 0123456789

weight: Regular (400)line-height: 1.75remtracking: -0.01em
Body Basetext-base

The quick brown fox jumps over the lazy dog. 0123456789

weight: Regular (400)line-height: 1.75remtracking: -0.01em
Body Mediumtext-base font-medium

The quick brown fox jumps over the lazy dog. 0123456789

weight: Medium (500)line-height: 1.75remtracking: -0.01em
Body Semiboldtext-base font-semibold

The quick brown fox jumps over the lazy dog. 0123456789

weight: Semibold (600)line-height: 1.75remtracking: -0.01em
Smalltext-sm

The quick brown fox jumps over the lazy dog. 0123456789

weight: Regular (400)line-height: 1.5remtracking: 0
Extra Smalltext-xs

The quick brown fox jumps over the lazy dog. 0123456789

weight: Regular (400)line-height: 1remtracking: 0.01em

Code -- Spline Sans Mono

Monospace for inline code fragments and fenced code blocks.

Inline Code

Use the cn() utility to merge clsx and tailwind-merge class names.

Code Block

import { cn } from '@/lib/utils'

export function Card({ className, ...props }) {
  return (
    <div
      className={cn(
        'rounded-xl border border-border bg-background-alt p-6',
        className
      )}
      {...props}
    />
  )
}

Emphasis — Hanken Italic

Used sparingly to emphasise focal words and proper nouns. Applied via font-display-serif italic, which now renders Hanken Grotesk italic — a humanist-grotesque italic that leans into the word rather than away from the sans system.

Display Accent

Data & AI Expertise

Pattern: sans bold + Hanken italic emphasis on one focal word

Display Numeral Suffix

50% revenue

Pattern: sans-bold numeral with Hanken italic unit at 0.55em

Inline Body Accent

Data platforms and AI systems that actually ship. From architecture to production.

Pattern: Hanken italic on one verb at 1.08em — rare, one per paragraph max

Spacing & Layout

A 4px base unit spacing scale and three container widths that enforce consistent rhythm across every page.

Spacing Scale

1
0.25rem4px
2
0.5rem8px
4
1rem16px
6
1.5rem24px
8
2rem32px
12
3rem48px
16
4rem64px
24
6rem96px

Container Widths

max-w-narrow42rem / 672px

Article container, forms

max-w-content68ch

Prose content, optimal reading width

max-w-wide76rem / 1216px

Page container, full-width sections

Component Patterns

Reusable UI primitives that compose the entire interface -- buttons, badges, cards, and decorative elements.

Buttons

Primary (Accent CTA)

Secondary (Outline)

Ghost (Minimal)

Badges

DefaultAccentMuted

Card

Standard Card

Rounded-xl with border-border, bg-background-alt, and a smooth hover lift with shadow-card-hover.

Static Card

Same base styling but with hover disabled. Used for informational content that is not interactive.

Accent Line

A 48px wide, 2px tall ember bar used above section headings as a visual anchor. Applied via the accent-line CSS class (pseudo-element) or inline.

Section Title

Supporting description text below.

Focus Ring

All focusable elements use a consistent double-ring style: 2px background gap + 2px accent ring via box-shadow.

Shadow System

Four depth levels from near-flat to prominently elevated, all using neutral black at low opacity for a natural feel.

Subtle

shadow-subtle

Code blocks, subtle depth

0 1px 2px 0 rgb(0 0 0 / 0.03)

Elevated

shadow-elevated

Dropdowns, tooltips

0 4px 6px -1px rgb(0 0 0 / 0.05), ...

Card

shadow-card

Card resting state

0 1px 3px 0 rgb(0 0 0 / 0.04), ...

Card Hover

shadow-card-hover

Card hover, focused elevation

0 10px 15px -3px rgb(0 0 0 / 0.05), ...

Animation Tokens

Entrance animations with stagger support. All animations honour the prefers-reduced-motion media query.

Keyframe Animations

blur-fade0.6sexpo-out [0.16, 1, 0.3, 1]

Signature entrance — hero, inner-page headers, sections

opacity + y:20 + blur:12 -> 0
fade-in0.5sease-out

Gentle entrance for inline elements

translateY(8px) -> 0
fade-in-up0.6sease-out

Section reveals on scroll

translateY(16px) -> 0
slide-in-right0.4sease-out

Horizontal entrance from the right

translateX(8px) -> 0

Stagger Delays

80ms increments applied via CSS utility classes for sequential entrance choreography.

1
0ms.stagger-1
2
80ms.stagger-2
3
160ms.stagger-3
4
240ms.stagger-4
5
320ms.stagger-5
6
400ms.stagger-6

Standard Easing

Custom Cubic Bezier[0.25, 0.4, 0.25, 1]

Used across all Framer Motion transitions. A slightly accelerated ease-out curve that feels responsive on entrance and gentle on settle.

Logo & Identity

The wordmark, avatar, and brand elements that form the visual identity of emanuelmallia.com.

Wordmark

The brand name rendered in Archivo. No separate logomark -- the wordmark is the primary identifier.

Foreground

Emanuel Mallia

Accent

Emanuel Mallia

White on Dark

Emanuel Mallia

Avatar

Circular photo used in headers, about pages, and social contexts. Always rendered with a subtle border.

Emanuel Mallia
32px
Emanuel Mallia
56px
Emanuel Mallia
96px
Download Headshot

Brand Elements

Accent Line Pattern

w-12 h-0.5 bg-accent -- used before section headings as a visual anchor

Tagline

Data & AI Architect

Icon System

Stroke-based SVG icons at consistent weights. All icons use currentColor for seamless theme adaptation.

Arrow

CTA buttons, navigation links

16px
20px
24px

External Link

Outbound links, references

16px
20px
24px

Clock

Reading time, timestamps

16px
20px
24px

LinkedIn

Social links, footer

16px
20px
24px

Do's and Don'ts

Quick reference guidelines for maintaining visual consistency across all brand touchpoints.

Do

Use semantic color tokens (text-foreground, bg-accent) for all color references

Use Archivo (font-heading) for all headings and display text

Use Hanken italic emphasis (font-display-serif italic) sparingly — proper nouns, focal verbs, oversized numeral units. One accent per paragraph, max.

Use blur-fade for hero and section entrances (opacity + y:20 + blur:12, expo-out, 0.6s). It is the signature motion.

Keep layouts clean with generous whitespace and consistent spacing

Use the accent line (w-12 h-0.5 bg-accent) before section headings

Maintain minimum 4.5:1 contrast ratio for all text elements

Don't

Use hardcoded hex values instead of CSS custom properties

Use emojis as icons — use the SVG icon system instead

Mix font families randomly — stick to the three-font system (Archivo, Hanken Grotesk, Spline Sans Mono)

Overuse Hanken italic emphasis — it loses signal if applied broadly. Reserve for hero headlines, numeral units, and single-word body accents.

Use heavy background effects like gradients or complex patterns

Use low-contrast text that fails accessibility standards

Download & Export

Download brand assets or reference this page for design consistency.

Copy the full CSS custom properties block to use in external projects or design tools.

:root {
  --color-background: 248 247 245;
  --color-foreground: 23 22 20;
  --color-accent: 192 51 28;
  --color-accent-hover: 162 40 21;
  --color-muted: 92 88 83;
  --color-border: 229 227 224;
}
.dark {
  --color-background: 12 10 9;
  --color-foreground: 250 250 249;
  --color-accent: 255 77 46;
  --color-accent-hover: 255 112 74;
  --color-muted: 166 160 154;
  --color-border: 40 35 31;
}