Skip to main content
Back to Examples

Blue Tides

Remix this template to create a similar design — same sections, layout, animations, colors, and typography.

Visit site

A landing page for an ocean conservation nonprofit. Soft sand canvas, deep reef-teal and coral accents, Fraunces serif over Inter.

14
core colors
2
typefaces
32
tokens
agent.kombai.com/kombai-inspiration-library/templates/blue-tides/index.html
01

Palette

coral
#E87A68
algae
#4A8A6A
sand
#F2EDE2
reef
#2A4A5C
ink
#141210
white
#FFFFFF
text-on-sand
#141210
text-on-reef
#F2EDE2
text-muted
RGBA(20,18,16,0.8)
hairline-dark
RGBA(20,18,16,0.1)
hairline-light
RGBA(242,237,226,0.15)
hero-radial
RADIAL-GRADIENT(ELLIPSE AT 50% -10%,#3B6577 0%,#2A4A5C 45%,#1A3340 100%)
depth-descent
LINEAR-GRADIENT(180DEG,#F2EDE2 0%,#C8C6A8 30%,#5E7D7A 60%,#2A4A5C 100%)
caustic
RADIAL-GRADIENT(ELLIPSE AT 50% 0%, RGBA(240,232,210,.18), TRANSPARENT 60%)
02

Typography

displayThe quick brown fox jumps'Fraunces', serif
clamp(3.5rem,11vw,11rem)
display-sectionThe quick brown fox jumps'Fraunces', serif
clamp(3rem,12vw,11rem)
italic-speciesThe quick brown fox jumps'Fraunces', serif
inherit
stat-numberThe quick brown fox jumps'Fraunces', serif
48px
bodyThe quick brown fox jumps'Inter', sans-serif
16px
eyebrowThe quick brown fox jumps'Inter', sans-serif
12px
03

Spacing & Shape

TokenValuePreview
xs4px
sm8px
md16px
lg24px
xl32px
section-y112px
04

Border Radius

TokenValuePreview
squircle28%
droplet50% 50% 50% 50% / 30% 30% 70% 70%
blob60% 40% 30% 70% / 60% 30% 70% 40%
card-2xl32px
xl12px
full9999px
05

design.md

design.mdreadable by AI agents
tokens (raw)
name: blue-tides-design
version: alpha
description: >
  An editorial ocean-restoration landing page built on a warm sand surface
  (#F2EDE2) with a deep reef-teal (#2A4A5C) as the dominant immersive backdrop
  and coral (#E87A68) as the single warm voltage. Fraunces (optical-size serif,
  SOFT/WONK variation) carries oversized clamp-scaled display headlines with
  italic species names; Inter handles body. The signature moves are organic
  biomorphic blobs and "droplet"/"squircle" radii, a depth-descent gradient
  timeline, a scroll-scrubbed before/after reef wipe, glassmorphic map pins, and
  ambient drifting-fish / breathing-blob animations over a grainy caustic-lit
  scene.
colors:
  # Brand / Voltage
  coral: '#E87A68'    # primary warm voltage — accents, CTAs, pins, eyebrows, focus rings
  algae: '#4A8A6A'    # secondary green accent — featured tier, map dots, "monitoring", method 02
  # Surface
  sand: '#F2EDE2'     # primary page surface; also light text on dark sections (var --sand)
  reef: '#2A4A5C'     # deep teal surface — hero base, sites section, stat tiles, bento card
  ink: '#141210'      # near-black — body text on sand, footer surface, dark accent cards
  white: '#FFFFFF'    # used at low opacity (white/40, white/60) for frosted stat/card fills
  # Text
  text-on-sand: '#141210'   # ink — headings/body on sand surfaces
  text-on-reef: '#F2EDE2'   # sand — text on reef/ink dark surfaces
  text-muted: 'rgba(20,18,16,0.8)'  # ink/80 body copy in problem section
  # Hairlines
  hairline-dark: 'rgba(20,18,16,0.1)'   # ink/10 section dividers, card borders on sand
  hairline-light: 'rgba(242,237,226,0.15)' # sand/15 dividers/borders on reef
  # Gradient
  hero-radial: 'radial-gradient(ellipse at 50% -10%,#3b6577 0%,#2A4A5C 45%,#1a3340 100%)' # hero backdrop
  depth-descent: 'linear-gradient(180deg,#F2EDE2 0%,#c8c6a8 30%,#5e7d7a 60%,#2A4A5C 100%)' # program section sand→reef
  caustic: 'radial-gradient(ellipse at 50% 0%, rgba(240,232,210,.18), transparent 60%)' # hero light shimmer
typography:
  display:
    fontFamily: "'Fraunces', serif"
    fontSize: clamp(3.5rem,11vw,11rem)
    fontWeight: 300
    lineHeight: 0.92
    letterSpacing: -0.03em
  display-section:
    fontFamily: "'Fraunces', serif"
    fontSize: clamp(3rem,12vw,11rem)   # section H2 ~ text-5xl→text-7xl; footer giant uses this clamp
    fontWeight: 300
    lineHeight: 0.95
    letterSpacing: -0.04em
  italic-species:
    fontFamily: "'Fraunces', serif"
    fontStyle: italic
    fontWeight: 500
  stat-number:
    fontFamily: "'Fraunces', serif"
    fontSize: 48px       # text-5xl stat figures
    fontWeight: 300
  body:
    fontFamily: "'Inter', sans-serif"
    fontSize: 16px
    fontWeight: 400
    lineHeight: 1.625
  eyebrow:
    fontFamily: "'Inter', sans-serif"
    fontSize: 12px
    fontWeight: 400
    letterSpacing: 0.3em
    textTransform: uppercase
rounded:
  squircle: 28%        # .squircle bento/tier cards
  droplet: '50% 50% 50% 50% / 30% 30% 70% 70%'  # .droplet / .blob-3 organic egg shape
  blob: '60% 40% 30% 70% / 60% 30% 70% 40%'     # .blob-1 freeform organic
  card-2xl: 32px       # rounded-[2rem] image/map frames
  xl: 12px             # rounded-xl glass pin tooltips
  full: 9999px         # rounded-full pills, chips, nav button, dots
spacing:                # base unit 4px (Tailwind); common steps below
  xs: 4px
  sm: 8px
  md: 16px
  lg: 24px
  xl: 32px
  section-y: 112px      # py-28 section rhythm (md:py-40 ~ 160px)
components:
  nav-cta:
    backgroundColor: transparent
    textColor: '{colors.sand}'
    border: '1px solid currentColor'
    rounded: '{rounded.full}'
    padding: '8px 16px'
    note: 'border-current pill; hover fills with currentColor, text→reef'
  hero-glass-cta:
    backgroundColor: 'rgba(240,232,210,0.08)'
    border: '1px solid rgba(240,232,210,0.25)'
    textColor: '{colors.sand}'
    rounded: '{rounded.full}'
    padding: '16px 28px'
    typography: '{typography.eyebrow}'
    note: 'glass (backdrop-blur 14px); hover bg→coral'
  stat-tile:
    backgroundColor: '{colors.reef}'
    textColor: '{colors.sand}'
    typography: '{typography.stat-number}'
    padding: '24px'
    note: 'gap-px grid creates hairline grid lines via sand/15 background'
  bento-card:
    backgroundColor: '{colors.reef}'
    rounded: '{rounded.squircle}'
    note: 'biomorphic media cards; variants use algae/coral/ink fills and droplet/blob radii; hover-magnet lift'
  tier-card:
    backgroundColor: 'rgba(255,255,255,0.5)'
    border: '1px solid {colors.hairline-dark}'
    rounded: '{rounded.squircle}'
    padding: '32px'
    note: 'on hover a colored .fill rises from bottom (40%/12% radius→0), text→sand; featured tier solid algae'
  tier-button:
    backgroundColor: transparent
    border: '1px solid currentColor'
    rounded: '{rounded.full}'
    padding: '12px 0'
    typography: '{typography.eyebrow}'
    note: 'full-width; hover fills currentColor'
  chip:
    backgroundColor: '{colors.coral}'
    textColor: '{colors.ink}'
    rounded: '{rounded.full}'
    padding: '4px 12px'
    typography: '{typography.eyebrow}'
    note: 'e.g. "Most popular"; also algae/ink-70 timeline chips'
  map-pin-tooltip:
    backgroundColor: 'rgba(240,232,210,0.08)'
    border: '1px solid rgba(240,232,210,0.25)'
    textColor: '{colors.sand}'
    rounded: '{rounded.xl}'
    padding: '12px'
    note: 'glass card; pin dot pulses via pin-glow + ripple-ring'
  range-slider:
    note: 'native input[type=range] with accent-color {colors.coral}; drives donate + before/after wipe'
motion:
  breathe: 'scale(1)→scale(1.08) rotate(2deg), 7s ease-in-out infinite (breathe-slow 11s) — blobs'
  drift: 'translateY(0→-18px), 14s ease-in-out infinite'
  fish-swim: 'translateX(-10vw→110vw) linear 28s / reverse 36s — ambient drifting fish'
  ripple: 'scale(.4→3) opacity .8→0, 3s ease-out infinite — map pin rings'
  pin-glow: 'box-shadow ring 0→22px coral, 2.5s ease-out infinite (pinpulse)'
  scroll-cue: 'translateY 0→8px + opacity, 2s ease-in-out infinite'
  hover-magnet: 'translateY(-6px), .4s cubic-bezier(.2,.8,.2,1)'
  tier-fill: 'bottom -100%→0, .7s cubic-bezier(.65,0,.35,1) + radius morph'
  scroll-wipe: 'GSAP ScrollTrigger scrub: clip-path inset(0 100%→0% 0 0) before/after reef reveal'
  count-up: 'GSAP power2.out 2s number counters (data-count)'
  headline-reveal: 'h1 y+autoAlpha power3.out 1.2s; h2 blur(14px)→0 + y on scroll'
  smooth-scroll: 'Lenis smooth scrolling synced to GSAP ticker'
icons:
  library: 'Tabler icons-webfont (ti) for UI; game-icons (SVG, CSS-filter tinted) for decorative marine life'
  style: outline
  sizes: { sm: 16px, md: 24px, lg: 32px, xl: 56px }
  color: '{colors.algae}'
  note: 'Tabler UI icons (ti-dna-2, ti-wave-sine, ti-plant-2, ti-microscope, ti-school...); game-icons fish/coral/seed tinted via invert/sepia/hue-rotate filters'

Blue Tides

blue-tides-design · alpha

Design spec — version alpha. Source: static HTML (index.html); tokens read from inline styles + class rules. Fictional/sample product; described factually.

Overview

Blue Tides is the landing page for "Coralline," a fictional ocean-restoration collective, and it reads like a printed nature monograph that learned to swim. The base surface is a warm paper sand (#F2EDE2) carrying near-black ink (#141210) text, but the page repeatedly submerges into deep reef teal (#2A4A5C) — the hero is a radial-gradient(ellipse at 50% -10%,#3b6577,#2A4A5C,#1a3340) seascape, and the "program" section literally descends from sand to reef via a linear-gradient(180deg,#F2EDE2,#c8c6a8,#5e7d7a,#2A4A5C). Against this, a single warm voltage of coral (#E87A68) lights every eyebrow, CTA, map pin and emphasis, with algae green (#4A8A6A) as a secondary accent. The type story is the centerpiece: Fraunces (an optical-size serif run with SOFT 100, WONK 1 variation settings) sets enormous clamp(3.5rem,11vw,11rem) light-weight headlines with negative tracking and italic Latin species names (Montipora capitata), while Inter handles body and uppercase wide-tracked eyebrows. Geometry is deliberately organic: nothing is a plain rectangle — cards are squircle (border-radius 28%), droplet and freeform blob shapes, and the scene breathes with animated coral blobs, drifting fish, rippling map pins and a scroll-scrubbed before/after reef wipe.

Colors

Brand / voltage. coral #E87A68 is the one warm signal color: section eyebrows ("01 · The Threat"), the nav "Sponsor a reef" hover, donate slider accent, map pins, the featured-tier badge, and italic headline emphasis (sea's). algae #4A8A6A is the secondary accent — the featured donation tier fill, "Monitoring" map dots, method-02 card, and the Tabler UI icons.

Surface. sand #F2EDE2 (CSS --sand) is the page background and, inverted, the text/foreground color on every dark section. reef #2A4A5C (--reef) is the immersive deep surface — hero gradient base, the sites section, the stat tiles, and the large bento media card. ink #141210 (--ink) is body text on sand and the surface of the footer and dark accent cards. white appears only at low opacity (white/40, white/50, white/60) to frost glassy stat/tier cards over sand.

Text. On sand, headings and body are ink, with body often dropped to ink/80. On reef/ink surfaces, text is sand, frequently at opacity-6080 for secondary copy and opacity-50 for muted labels.

Hairlines. Borders are thin and translucent: ink/10ink/20 on sand (section dividers, card outlines), sand/15sand/20 on reef (the footer rule, map frame, stat-grid lines created by a gap-px background).

Gradients. Three named gradients do the heavy lifting: the hero seascape radial, the sand→reef depth-descent linear on the program section, and the subtle caustic light-from-above radial overlaid on the hero.

Typography

Two Google Fonts: Fraunces (ital,opsz,wght axes, weights 300–900) as the display/serif voice and Inter (300–700) as the body/UI voice; Tabler icons-webfont is loaded for icons. Fraunces is applied with font-variation-settings:"SOFT" 100,"WONK" 1 for a soft, slightly quirky cut, and italic species names use Fraunces italic 500. If substituting, Fraunces is open-source (Google Fonts) so no fallback is needed; Inter likewise.

TokenSizeWeightLine-heightTrackingUsage
displayclamp(3.5rem,11vw,11rem)3000.92-0.03emHero H1
display-sectiontext-5xl→7xl / clamp(3rem,12vw,11rem)3000.95-0.03em→-0.04emSection H2s, footer giant line
italic-speciesinherits500 italicLatin species names inline
stat-number48px (text-5xl), down to text-2xl/3xl300tightBig figures (317,600 · 89%)
body15–20px4001.625Paragraph copy
eyebrow10–12px4000.3em (uppercase)Section labels, kickers, button text

Layout

Base unit is Tailwind's 4px scale. Content sits in max-w-7xl (program in max-w-6xl) with px-6 md:px-12 gutters and a py-28 md:py-40 vertical rhythm. The page is a long single-column scroll narrative with numbered sections (01–05). Signature structural moves: a full-bleed min-h-screen hero with absolutely-positioned floating blobs and fish over a photo; a 12-column biomorphic bento grid mixing squircle, droplet and blob cards of varying spans; a centered depth-descent timeline with a gradient vertical spine and alternating left/right steps pinned by glowing circular markers; a dotted-SVG world map with absolutely-positioned glass pins; and a footer anchored by a giant clamp-scaled "Keep the tide-line rising." headline. Whitespace is generous and editorial; the fixed header uses mix-blend-difference so it reads against any section.

Elevation & Depth

Depth comes mostly from color, blur and organic shape rather than drop shadows. Glass: .glass = rgba(240,232,210,.08) + backdrop-filter:blur(14px) + 1px sand/25 border (hero CTA, map tooltips); some cards use backdrop-blur over white/60. Grain & caustics: a tiny radial-gradient dot pattern (.grain, 3px tile) and the caustic light radial sit over the hero for an underwater texture. Shadow is sparse — the featured donation tier carries shadow-xl and slight scale/translate to pop forward; the pin-glow keyframe animates an expanding coral box-shadow ring on map pins. Otherwise depth is hairline borders and the breathing blurred blobs (filter:blur(1–4px)) layered behind content.

Shapes

Roundness is the brand. Almost nothing is a plain rectangle: .squircle (border-radius:28%) for bento and tier cards, .droplet / .blob-3 (50% 50% 50% 50% / 30% 30% 70% 70%) for egg-shaped tiles, freeform .blob-1/ .blob-2 for the ambient background organisms, rounded-[2rem] (32px) for image and map frames, rounded-xl (12px) for glass tooltips, and rounded-full pills for chips, the nav button, and tier buttons. The tier-card hover even morphs its rising fill from a soft 40% 40% 0 0 / 12% 12% 0 0 arc to square.

Components

  • Nav CTA — transparent pill, 1px border-current, rounded-full, px-4 py-2; hover inverts to filled with reef text. Header is fixed with mix-blend-difference.
  • Hero glass CTA.glass pill, sand text, uppercase tracked label ("Explore ↓"); hover background → coral.
  • Stat tilereef fill, sand text, Fraunces 48px light figure over a tiny uppercase label; tiles separated by gap-px hairlines.
  • Bento card — biomorphic media cards on reef/algae/coral/ink fills, squircle/droplet/blob radii, hover-magnet lift, video/photo backgrounds.
  • Tier cardsquircle, white/50 fill + ink/15 border (featured = solid algae, shadow-xl, scaled up); hover raises a colored .fill from the bottom and flips text to sand. Buttons: full-width border-current pills.
  • Chip / badgerounded-full coral or algae pills, e.g. "Most popular," "2002 · thriving."
  • Map pin — coral/algae dot with pin-glow pulse and ripple-ring; selected pins show a glass rounded-xl tooltip with species name.
  • Range sliders — native input[type=range] with accent-coral, driving the donate calculator and the before/after reef wipe.
  • Footer newsletter — borderless email input on a sand/40 bottom rule with a coral "Join →" button.

Motion

Heavily animated and ambient. CSS keyframes: breathe/breathe-slow (blobs scale+rotate, 7s/11s), drift (vertical float, 14s), fish-swim-1/2 (fish translate across viewport, 28s/36s/42s), ripple (pin rings expand+fade, 3s), pinpulse (coral shadow ring, 2.5s), scrollcue (bounce, 2s). Transitions: hover-magnet lift (.4s soft cubic-bezier), tier-card .fill rise (.7s cubic-bezier with radius morph), tier text color (.5s). GSAP + ScrollTrigger + Lenis power the scroll layer: a scrubbed before/after reef wipe (clip-path inset) tied to the problem section, count-up number animations, hero blob parallax (yPercent), an H1 reveal (y+fade, power3.out 1.2s), and H2s that blur-in (blur(14px)→0) on scroll. Lenis provides smooth scrolling synced to the GSAP ticker.

Iconography

Two icon systems. Tabler icons-webfont (ti ti-*, outline) for UI/meaning — ti-dna-2, ti-wave-sine, ti-plant-2, ti-activity, ti-microscope, ti-school, ti-scuba-mask, ti-flask, ti-speakerphone — typically tinted algae or coral, sized text-2xl–4xl (24–36px). game-icons marine SVGs (tropical-fish, school-of-fish, jellyfish, coral, plant-seed) used decoratively, recolored via CSS filter:invert/sepia/saturate/hue-rotate to coral, algae or sand tints; the small brand mark is an inline currentColor SVG. Sizes range from 10–16px ambient fish up to 56px (w-14) tier-card glyphs.

Do's and Don'ts

  • Do keep coral as the single warm voltage and algae as the lone secondary accent; reserve them for eyebrows, CTAs, pins and emphasis.
  • Do use Fraunces light at large clamp sizes with negative tracking for display, and Fraunces italic 500 for Latin species names.
  • Do keep shapes organic — squircle/droplet/blob and full pills — and let the blobs/fish breathe and drift behind content.
  • Do alternate sand and reef surfaces, inverting text color accordingly.
  • Don't introduce hard drop shadows or sharp rectangular cards; depth is glass, grain, hairlines and blurred blobs.
  • Don't add new hues — stay within sand/reef/ink + coral/algae.
  • Don't set body in the serif or run display in Inter; keep the two voices distinct.

Known Gaps

  • Numeric design tokens (sizes, spacing) come from Tailwind utility classes (text-5xl ≈ 48px, py-28 ≈ 112px, rounded-[2rem] = 32px) interpreted at Tailwind defaults; exact rendered pixels depend on the Tailwind v4 browser build.
  • The hero photo, fish SVGs, and tier/method imagery are remote CDN assets (Pexels/Unsplash/jsDelivr game-icons); only their roles and CSS filters are documented, not the image content.
  • game-icon tint colors are produced by stacked CSS filter chains that approximate coral/algae/sand rather than exact hex values.
  • Gradient color stops (e.g. hero #3b6577/#1a3340, depth #c8c6a8/#5e7d7a) are one-off values read directly from inline styles, not part of the named token palette.