Skip to main content
Back to Examples

Coralis

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

Visit site

A landing page for an island dive resort. Ivory-and-teal canvas, aqua-cyan and coral accents, Cormorant Garamond over Manrope.

14
core colors
2
typefaces
35
tokens
agent.kombai.com/kombai-inspiration-library/templates/coralis/index.html
01

Palette

turquoise
#1FB6C9
coral
#FF7E6B
palm
#2F7D58
sand
#F7F2E7
aqua-mist
#E4F4F5
marine
#0B3A4A
hero-cyan
#9BF0FB
text-body
#3A5A64
footer-text
#CFE4EA
white
#FFFFFF
hairline-light
RGBA(255,255,255,0.10)
hairline-coral
RGBA(255,126,107,0.35)
hero-scrim
LINEAR-GRADIENT(115DEG, RGBA(11,58,74,0.55) 0%, RGBA(11,58,74,0.12) 38%, RGBA(11,58,74,0) 60%)
villas-gradient
LINEAR-GRADIENT(180DEG, #F7F2E7 0%, #E4F4F5 100%)
02

Typography

displayThe quick brown fox jumps'Cormorant Garamond', serif
clamp(3rem, 8vw, 6rem)
display-sectionThe quick brown fox jumps'Cormorant Garamond', serif
clamp(3rem, 6vw, 3.75rem)
display-cardThe quick brown fox jumps'Cormorant Garamond', serif
1.875rem
display-tileThe quick brown fox jumps'Cormorant Garamond', serif
2.25rem
bodyThe quick brown fox jumps'Manrope', sans-serif
15px
eyebrowThe quick brown fox jumps'Manrope', sans-serif
11px
navThe quick brown fox jumps'Manrope', sans-serif
12px
ctaThe quick brown fox jumps'Manrope', sans-serif
14px
03

Spacing & Shape

TokenValuePreview
xs4px
sm8px
md16px
lg24px
xl32px
2xl48px
section-y96px
04

Border Radius

TokenValuePreview
tile28px
full9999px
pebble-a62% 38% 34% 66% / 58% 34% 66% 42%
pebble-b38% 62% 63% 37% / 41% 44% 56% 59%
pebble-c55% 45% 38% 62% / 60% 55% 45% 40%
package70px 120px 80px 120px / 80px 110px 90px 110px
05

design.md

design.mdreadable by AI agents
tokens (raw)
name: coralis-design
version: alpha
description: >
  Coralis is a luxury overwater dive-resort landing page built on a warm sand
  surface (#F7F2E7) shifting to pale aqua, with deep marine teal (#0B3A4A) text
  and a turquoise/coral voltage pair. Its signature moves are organic "pebble"
  blob radii on every image, animated white caustic light ripples over the hero,
  floating villa cards that gently bob, and a glowing coral CTA. Type pairs an
  airy italic Cormorant Garamond display against a quiet Manrope body, with
  wide-tracked uppercase eyebrows. The geometry is soft, hand-drawn and aquatic
  rather than gridded.
colors:
  # Brand / Voltage
  turquoise: '#1FB6C9'   # --turq; lagoon brand, spa section bg, italic accents, icon tint
  coral: '#FF7E6B'       # --coral; CTA fill, glow shadows, price labels, accent dots/tiles
  palm: '#2F7D58'        # --palm; secondary green accent, eyebrow labels, ocean tile bg
  # Surface
  sand: '#F7F2E7'        # --sand; page surface, package card, sand tile bg
  aqua-mist: '#e4f4f5'   # pale aqua gradient end / experiences section bg
  marine: '#0B3A4A'      # --marine; deep teal — primary text, dark sections, footer bg
  hero-cyan: '#9bf0fb'   # bright cyan used for hero "paradise" italic word
  # Text
  text-body: '#3a5a64'   # muted slate-teal body copy on light surfaces
  footer-text: '#cfe4ea' # pale aqua footer body text
  white: '#ffffff'       # text/labels over imagery and dark/turquoise sections
  # Hairlines
  hairline-light: 'rgba(255,255,255,0.10)'  # footer divider, dark-section borders
  hairline-coral: 'rgba(255,126,107,0.35)'  # spa/stillness tile border
  # Gradient
  hero-scrim: 'linear-gradient(115deg, rgba(11,58,74,0.55) 0%, rgba(11,58,74,0.12) 38%, rgba(11,58,74,0) 60%)'  # hero readability scrim
  villas-gradient: 'linear-gradient(180deg, #F7F2E7 0%, #e4f4f5 100%)'  # villas section sand→aqua wash
typography:
  display:
    fontFamily: "'Cormorant Garamond', serif"
    fontSize: clamp(3rem, 8vw, 6rem)   # hero text-6xl→text-8xl
    fontWeight: 300
    lineHeight: 0.92
  display-section:
    fontFamily: "'Cormorant Garamond', serif"
    fontSize: clamp(3rem, 6vw, 3.75rem) # section h2 text-5xl→text-6xl
    fontWeight: 300
    lineHeight: 1.0
  display-card:
    fontFamily: "'Cormorant Garamond', serif"
    fontSize: 1.875rem                  # villa card h3 text-3xl
    fontWeight: 400
  display-tile:
    fontFamily: "'Cormorant Garamond', serif"
    fontSize: 2.25rem                   # experience tile h3 text-4xl, italic
    fontWeight: 400
    lineHeight: 1.25
  body:
    fontFamily: "'Manrope', sans-serif"
    fontSize: 15px
    fontWeight: 300
    lineHeight: 1.625
  eyebrow:
    fontFamily: "'Manrope', sans-serif"
    fontSize: 11px
    fontWeight: 600
    letterSpacing: 3.85px               # tracking-[0.35em]
    textTransform: uppercase
  nav:
    fontFamily: "'Manrope', sans-serif"
    fontSize: 12px
    fontWeight: 400
    letterSpacing: 2.16px               # tracking-[0.18em]
    textTransform: uppercase
  cta:
    fontFamily: "'Manrope', sans-serif"
    fontSize: 14px
    fontWeight: 600
rounded:                                # mixed: pills + organic blob radii
  tile: 28px              # experience tiles rounded-[28px]
  full: 9999px           # pills, CTAs, eyebrow badges, icon chips
  pebble-a: '62% 38% 34% 66% / 58% 34% 66% 42%'  # organic blob A
  pebble-b: '38% 62% 63% 37% / 41% 44% 56% 59%'  # organic blob B
  pebble-c: '55% 45% 38% 62% / 60% 55% 45% 40%'  # organic blob C
  package: '70px 120px 80px 120px / 80px 110px 90px 110px'  # giant asymmetric package card
spacing:                                # 4px base; Tailwind scale
  xs: 4px
  sm: 8px
  md: 16px
  lg: 24px
  xl: 32px
  '2xl': 48px
  section-y: 96px        # py-24 section rhythm (up to py-36 on package)
components:
  coralCta:
    backgroundColor: '{colors.coral}'
    textColor: '{colors.white}'
    typography: '{typography.cta}'
    rounded: '{rounded.full}'
    padding: '16px 32px'   # px-8 py-4
    elevation: 'inset 1px white ring + dual turquoise/coral glow; lifts -2px on hover'
  eyebrowBadge:
    backgroundColor: 'rgba(255,255,255,0.15)'
    textColor: '{colors.white}'
    typography: '{typography.eyebrow}'
    rounded: '{rounded.full}'
    padding: '6px 16px'    # px-4 py-1.5
    border: '1px solid rgba(255,255,255,0.25); backdrop-blur'
  villaCard:
    backgroundColor: 'transparent'
    textColor: '{colors.marine}'
    typography: '{typography.display-card}'
    rounded: '{rounded.pebble-a}'   # image masked to pebble blob
    elevation: '0 30px 60px -15px rgba(11,58,74,0.4)'
  experienceTile:
    backgroundColor: '{colors.coral}'   # variants: palm, marine, sand+coral border
    textColor: '{colors.white}'
    typography: '{typography.display-tile}'
    rounded: '{rounded.tile}'
    padding: '32px'        # p-8
  packageCard:
    backgroundColor: '{colors.sand}'
    textColor: '{colors.marine}'
    typography: '{typography.display-section}'
    rounded: '{rounded.package}'
    padding: '56px'        # sm:p-14
    elevation: '0 50px 100px -25px rgba(11,58,74,0.65)'
  iconChip:
    backgroundColor: 'rgba(31,182,201,0.14)'  # tinted to feature color
    textColor: '{colors.turquoise}'
    typography: '{typography.display-card}'
    rounded: '{rounded.full}'
    padding: '36px square'  # h-9 w-9
  newsletterInput:
    backgroundColor: 'rgba(255,255,255,0.05)'
    textColor: '{colors.white}'
    typography: '{typography.body}'
    rounded: '{rounded.full}'
    border: '1px solid rgba(255,255,255,0.20)'
motion:
  causticDrift: 'white radial-gradient light layers translate/scale, 11s & 14s ease-in-out infinite, soft-light/overlay blend'
  float: 'anime.js translateY [-8,8] over villa cards & spa thumbnails, 2600ms alternate loop, ease inOut(3)'
  scrollDot: 'hero scroll cue dot drops 12px and fades, 1.8s ease-in-out infinite'
  reveal: 'GSAP ScrollTrigger fade+rise (autoAlpha 0, y 28→0), 0.7s power3.out at top 82%'
  reefTileReveal: 'GSAP fade+rise (y 36), 0.6s power3.out at top 90%'
  heroStagger: 'GSAP hero items fade+rise (y 30), 0.8s, stagger 0.12s, 0.2s delay'
  smoothScroll: 'Lenis lerp 0.09 inertial scrolling'
  ctaHover: 'transform translateY(-2px) + intensified glow, 300ms transition-all'
icons:
  library: inline unicode glyphs (no icon font)
  style: 'typographic symbols → ✈ ♨ ✦ ☼ for package perks; → arrows on CTAs'
  sizes: { chip: 36px, glyph: 18px }
  color: '{colors.turquoise}'   # tinted per feature: turquoise / palm / coral / marine

Coralis — Island Dive Resort

coralis-design · alpha

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

Overview

Coralis is the landing page for a fictional overwater dive resort, and its whole visual language is aquatic and hand-shaped rather than gridded. The surface is a warm sand #F7F2E7 (--sand) that washes into pale aqua #e4f4f5 down the page, with deep marine teal #0B3A4A (--marine) doing the heavy lifting for text and dark sections. The voltage is a turquoise–coral pair: lagoon #1FB6C9 (--turq) fills the spa section and tints italic accents, while a warm coral #FF7E6B (--coral) powers the glowing CTA, price tags and accent tiles; palm green #2F7D58 (--palm) is the quiet third accent on eyebrows and ocean tiles. The signature moves are unmistakable: every photo is masked into an organic "pebble" blob (border-radius: 62% 38% 34% 66% / …), villa cards gently bob with an anime.js float, animated white caustic-light ripples drift across the hero like sun on water, and the all-inclusive package sits inside a giant asymmetric card with a hand-drawn 70px 120px 80px 120px radius. Type pairs an airy, light-weight italic Cormorant Garamond display against a calm Manrope body, with 11px uppercase eyebrows tracked out to 0.35em. The geometry is soft, fluid and oceanic — nothing here is a hard rectangle except the section bands.

Colors

Brand / Voltage. --turq #1FB6C9 is the lagoon brand color — it fills the entire spa section, tints italic display accents ("sky and reef", "tide"), and colors the seaplane icon chip. --coral #FF7E6B is the action/warmth voltage: the .coral-cta fill, the dual-glow shadows beneath it, every "From $… / night" price label, the hero status dot, and the "Sandbank Dinners" tile. --palm #2F7D58 is a supporting green for section eyebrows and the "Reef Dives" tile.

Surface. --sand #F7F2E7 is the page background and the package card body; it gradient-washes into aqua-mist #e4f4f5 across the villas section and is the solid background of the experiences section. --marine #0B3A4A is the deep teal used both as the dominant text color on light surfaces and as the fill for the marine experience tile, the footer, and the lower half of the package band. hero-cyan #9bf0fb is a one-off bright cyan for the hero's italic "paradise".

Text. Headings and primary copy use --marine #0B3A4A. Secondary/body copy on light surfaces uses text-body #3a5a64, a muted slate-teal. On dark and turquoise sections text is white (often at 70–85% opacity); footer body is footer-text #cfe4ea.

Hairlines. Borders are translucent white rgba(255,255,255,0.10) (footer divider, dark-section rules) or a faint coral rgba(255,126,107,0.35) on the "Couples Spa" stillness tile.

Gradient. A diagonal marine scrim (hero-scrim) darkens the hero's lower-left for legibility; villas-gradient runs sand→aqua-mist top to bottom.

Typography

Two Google Fonts, loaded via one @import (Cormorant Garamond + Manrope). Cormorant Garamond (.font-display, serif) is the display face — used light (300–400) and very often italic for an elegant, editorial resort voice. Manrope (.font-body, sans-serif) carries all body, navigation and label text, leaning light (300) for paragraphs and semibold (600) for eyebrows and CTAs. Both are open-source; no substitution needed.

TokenSizeWeightLine-heightTrackingUsage
displayclamp 3–6rem3000.92Hero H1 ("Descend into paradise")
display-sectionclamp 3–3.75rem3001.0Section H2s
display-card1.875rem400Villa card titles
display-tile2.25rem400 italic1.25Experience tile titles
body15px3001.625Paragraph copy
eyebrow11px6000.35emUppercase section labels
nav12px4000.18emUppercase top nav
cta14px600Buttons

Layout

Base unit 4px on the Tailwind scale. The page is a single-column stack of full-bleed sections: a h-screen (min-h-[680px]) photographic hero; a 3-column villas grid where cards are staggered vertically (md:mt-20, md:mt-8) to read as floating; a CSS multi-column masonry of experience tiles (columns-1 → lg:columns-3, break-inside-avoid); a 12-column spa split (4/8) with overlapping pebble thumbnails poking out of the main image; a two-band package section (turquoise top half, marine bottom) with a centered max-w-5xl card straddling the seam; and a marine footer. Content max-width is max-w-7xl with px-6 sm:px-10 gutters. Whitespace is generous — py-24 to py-36 vertical rhythm — and the composition deliberately breaks the grid with overlap and organic shapes.

Elevation & Depth

Depth comes from large, soft, marine-tinted drop shadows rather than neutral greys: villa images carry 0 30px 60px -15px rgba(11,58,74,0.4), the spa hero 0 40px 80px -20px rgba(11,58,74,0.55), and the package card a dramatic 0 50px 100px -25px rgba(11,58,74,0.65). The coral CTA is a special case — an inset white ring plus a dual coral+turquoise glow (0 14px 36px -8px rgba(31,182,201,0.55) and 0 6px 20px -6px rgba(255,126,107,0.6)) that intensifies on hover. The hero uses two animated white caustic light layers in soft-light/overlay blend modes for depth-on-water. Floating pebble thumbnails get a 6px white border to lift them off the photo behind.

Shapes

The radius story is the headline. Photos are never rectangles — they are masked into three organic "pebble" blobs (.pebble-a/b/c, e.g. 62% 38% 34% 66% / 58% 34% 66% 42%) that read like stones or sea-smoothed shells. Experience tiles use a soft 28px (rounded-[28px]). Interactive elements — CTAs, the eyebrow badge, icon chips, the newsletter field — are full pills (9999px). The package card escalates the organic theme to a hand-drawn asymmetric 70px 120px 80px 120px / 80px 110px 90px 110px. Hard 90° corners appear only on the full-bleed section bands.

Components

  • coralCta — coral #FF7E6B fill, white text, pill, px-8 py-4, inset white ring + dual turquoise/coral glow, lifts -2px on hover. Labels: "Reserve Your Lagoon", "Book the Escape", "Join".
  • eyebrowBadge — translucent white rgba(255,255,255,0.15) pill with backdrop-blur, 1px white/25 border, 11px uppercase white. "An overwater sanctuary".
  • villaCard — transparent; pebble-masked photo with 0 30px 60px -15px marine shadow, then Cormorant title (text-3xl), body, and a coral uppercase price line ("From $1,450 / night").
  • experienceTile28px tile, p-8, flat color fill (coral / palm / marine, or sand with a coral hairline border), white italic Cormorant title and a numbered uppercase index ("01 — Dining").
  • packageCard — sand fill, giant asymmetric organic radius, p-14, deep marine shadow; holds price $12,900, a coralCta, and a perks list with icon chips.
  • iconChip36px full-circle, tinted-to-feature background (e.g. rgba(31,182,201,0.14)) with matching glyph color, holds a unicode symbol.
  • newsletterInput — pill row, rgba(255,255,255,0.05) field with white/20 border, transparent input + coralCta "Join" button (footer).

Motion

Motion is layered and ambient. Two causticDrift keyframe layers translate and scale white light gradients over the hero (11s and 14s, soft-light/overlay) to mimic sun caustics on water. Villa cards and spa thumbnails (.float) bob with anime.js translateY [-8, 8] over 2600ms, alternating. A hero scroll-dot drops 12px and fades on a 1.8s loop. Scroll-in reveals are GSAP ScrollTrigger: .reveal and .reef-tile fade up (autoAlpha 0 → 1, y 28–36px) as they enter, and hero items stagger in at 0.12s intervals. Lenis provides inertial smooth scrolling (lerp 0.09). The coral CTA transitions all properties over 300ms on hover.

Iconography

There is no icon font. UI affordances use typographic glyphs: arrows on every CTA, and decorative unicode symbols (✈ ♨ ✦ ☼) inside circular icon chips in the package perks list, each tinted to its feature color (turquoise / palm / coral / marine). Sizing is 36px chips holding ~18px glyphs. The look is intentionally typographic and lightweight, consistent with the editorial Cormorant voice.

Do's and Don'ts

  • Do mask every photo into a pebble blob radius — it is the core identity.
  • Do keep the turquoise/coral voltage pairing; coral is for action and price, turquoise for accents and the spa world.
  • Do use light-weight italic Cormorant for display and keep eyebrows 11px uppercase tracked to 0.35em.
  • Do reach for large, marine-tinted soft shadows for depth, never neutral grey.
  • Don't put hard rectangular corners on imagery or square off the package card.
  • Don't introduce flat/neutral drop shadows or pure-black text — text is --marine #0B3A4A or muted #3a5a64.
  • Don't overload the coral; it is an accent, not a surface (except CTAs/tiles).
  • Don't disable the float/caustic/reveal motion — the calm aquatic life of the page depends on it.

Known Gaps

  • Hero/section display sizes are responsive Tailwind step classes (text-6xl … text-8xl, text-5xl/6xl); the clamp() values in tokens are faithful approximations of those breakpoint ranges, not literal CSS in the file.
  • letterSpacing values are converted from Tailwind em tracking (0.35em ≈ 3.85px at 11px; 0.18em ≈ 2.16px at 12px).
  • The caustic ripple is an animated multi-radial-gradient effect; its motion is described qualitatively. Body weight 300 is the dominant paragraph weight; Manrope is loaded across 300–700.