Skip to main content
Back to Examples

The Kitchen Garden Journal

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

Visit site

A blog page for seasonal growing notes. Parchment canvas, terracotta and garden-green ink, Playfair Display over Crimson Pro.

7
core colors
3
typefaces
20
tokens
agent.kombai.com/kombai-inspiration-library/templates/kitchengarden/index.html
01

Palette

ink-green
#4F6F52
terra
#B5613A
corn
#6495ED
parchment
#F0EAD6
rule-green
RGBA(79,111,82,0.4)
rule-terra
RGBA(181,97,58,0.3)
dash-gray
#7A7A72
02

Typography

displayThe quick brown fox jumps'Playfair Display', serif
clamp(48px, 8vw, 120px)
headingThe quick brown fox jumps'Playfair Display', serif
36px
bodyThe quick brown fox jumps'Lora', serif
15px
latinThe quick brown fox jumps'Crimson Pro', serif
16px
eyebrowThe quick brown fox jumps'Lora', serif
10px
03

Spacing & Shape

TokenValuePreview
xs4px
sm8px
md12px
lg16px
xl28px
2xl64px
04

Border Radius

TokenValuePreview
none0px
full9999px
05

design.md

design.mdreadable by AI agents
tokens (raw)
name: kitchengarden-design
version: alpha
description: >
  An almanac-styled seasonal gardening journal printed on warm parchment
  (`#F0EAD6`) and set entirely in serif type. Ink-green (`#4F6F52`) carries the
  body and headings, terracotta (`#B5613A`) is the editorial accent for rules,
  captions, and harvest bars, and a single cornflower blue (`#6495ED`) marks the
  current month. The signature moves are oval double-framed engravings, hairline
  and double-rule dividers, a sticky twelvemonth calendar with a scroll-drawn
  vine, and per-bed sow/harvest grid charts. Geometry is print-page: 1200-wide
  ledgers, sharp rectangular dashed crop labels, and perfect-circle photo frames.
colors:
  # Brand / Accent
  ink-green: '#4F6F52'   # primary text, headings, vine stroke, rules, sow bars
  terra: '#B5613A'       # accent: captions, eyebrows, frames, harvest bars, current month
  corn: '#6495ED'        # cornflower blue; the single "current month" dot marker
  # Surface
  parchment: '#F0EAD6'   # page background; also fills dashed crop-label cards
  # Hairlines / Borders
  rule-green: 'rgba(79,111,82,0.4)'   # inner cell dividers, spine, vine baseline
  rule-terra: 'rgba(181,97,58,0.3)'   # bed separators, almanac row hairlines
  dash-gray: '#7a7a72'                # dashed border on crop-label cards
typography:
  display:
    fontFamily: "'Playfair Display', serif"
    fontSize: clamp(48px, 8vw, 120px)
    fontWeight: 900
    lineHeight: 0.9
  heading:
    fontFamily: "'Playfair Display', serif"
    fontSize: 36px
    fontWeight: 700
  body:
    fontFamily: "'Lora', serif"
    fontSize: 15px
    fontWeight: 400
    lineHeight: 1.625
  latin:
    fontFamily: "'Crimson Pro', serif"
    fontSize: 16px
    fontWeight: 400
    fontStyle: italic
  eyebrow:
    fontFamily: "'Lora', serif"
    fontSize: 10px
    fontWeight: 400
    letterSpacing: 0.32em
    textTransform: uppercase
rounded:
  none: 0px       # crop-label cards, calendar cells, bar charts
  full: 9999px    # oval frames, month dot
spacing:          # base unit 4px; Tailwind scale
  xs: 4px
  sm: 8px
  md: 12px
  lg: 16px
  xl: 28px
  '2xl': 64px
components:
  cropLabel:
    backgroundColor: '{colors.parchment}'
    textColor: '{colors.ink-green}'
    typography: '{typography.body}'
    border: '2px dashed {colors.dash-gray}'
    rounded: '{rounded.none}'
    padding: '12px 16px'   # px-4 py-3
  ovalFrame:
    border: '2px solid {colors.terra}'
    rounded: '{rounded.full}'
    padding: '10px'
    # ::after inset 4px, 1px solid rgba(79,111,82,0.45); img has 1px terra border
  stickyCalendar:
    backgroundColor: '{colors.parchment}'
    textColor: '{colors.ink-green}'
    border: '2px solid {colors.ink-green}'  # border-y-2, top:0 z-40
    typography: '{typography.heading}'
  eyebrow:
    textColor: '{colors.terra}'
    typography: '{typography.eyebrow}'
  doubleRule:
    border: '3px double {colors.ink-green}'  # footer top rule, section dividers
  barChart:
    sowColor: '{colors.ink-green}'
    harvestColor: '{colors.terra}'
    border: '1px solid {colors.rule-green}'
    rounded: '{rounded.none}'
  star:
    backgroundColor: '{colors.ink-green}'   # 5-point clip-path star, list bullets
    # footer variant uses {colors.terra}
motion:
  vineDraw: 'clip-path inset() driven by --scroll var; vine paints left-to-right with page scroll progress'
  reveal: 'opacity 1.1s ease on .reveal beds; IntersectionObserver adds .is-inview at threshold 0.15'
  progress: 'sticky-calendar "% sown" counter updates from Lenis scroll progress'
  smoothScroll: 'Lenis (autoRaf) smooth scrolling drives --scroll and the percent readout'
icons:
  library: inline SVG + CSS clip-path shapes
  style: hand-drawn / engraving aesthetic
  stroke: 1.5px–2.5px (vine path)
  sizes: { dot: 6px, star: 12px, starList: 16px }
  color: '{colors.ink-green}'

The Kitchen Garden Journal

kitchengarden-design · alpha

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

Overview

The Kitchen Garden Journal is a seasonal almanac rendered as a printed page. The entire surface is warm parchment (#F0EAD6) and every word is set in serif: Playfair Display for display and headings, Lora for body copy, and an italic Crimson Pro for Latin botanical names and captions. The voice color is ink-green (#4F6F52) — it carries headings, body text, the spine rules, and the scroll-drawn vine — with terracotta (#B5613A) as the editorial accent for eyebrows, hairlines, oval frames, and harvest bars. A single cornflower blue (#6495ED) appears exactly once, as the dot marking the current month on the twelvemonth calendar. The signature moves are unmistakably almanac: an oval double-framed engraving for every crop and the masthead, dashed rectangular crop labels, double-rule and hairline dividers, a sticky twelvemonth calendar bar whose vine paints itself left-to-right as you scroll, and per-bed sow/harvest grid charts built in JS from data-sow/data-harvest attributes. Geometry is print: 1200-wide ledgers, sharp-cornered cards, and perfect circles for photos.

Colors

Brand / Accent. ink-green #4F6F52 is the primary ink — all headings and body text (.ink-green), the calendar/section spine rules, the vine stroke, and sow bars. terra #B5613A (.terra) is the accent: tracked eyebrow labels, captions, the oval frame border, almanac/bed hairlines, harvest bars, and the selection highlight (selection:bg-[#B5613A]). corn #6495ED (.corn) is used only for the small dot under the current month ("Jun").

Surface. parchment #F0EAD6 (.parchment) is the page background and also fills the dashed crop-label cards and the sticky calendar bar; it also serves as the selection text color.

Hairlines / Borders. Dividers come in translucent variants of the two inks: rgba(79,111,82,0.4) (border-[#4F6F52]/40) for inner cell dividers and the center spine, rgba(181,97,58,0.3) for almanac rows and bed separators, and a neutral #7a7a72 for the dashed crop-label borders.

Typography

Three Google Fonts, all serif, imported together: Playfair Display (400/700/900 + italic) for display and headings, Lora (400/500/600 + italic) for body, and Crimson Pro (italic 400/500/600) used exclusively as italic for Latin names and captions (.font-latin). No mono or sans face appears.

TokenSizeWeightLine-heightTrackingUsage
displayclamp 48→120px9000.9Masthead H1 (text-[120px])
heading36–60px700normalSection/bed H2/H3, calendar months
body15px4001.625Lora prose, crop names
latin16–18px400 italicnormalCrimson Pro Latin names, captions
eyebrow10–11px400normal0.32emUppercase .tracked labels

Layout

Base unit 4px (Tailwind scale). The page is a single centered ledger column: masthead max-w-6xl (1152px), planting beds max-w-6xl, the June checklist max-w-2xl, and the footer max-w-3xl. The masthead is a centered title flanked by vertical and horizontal rules, above a three-column bordered ledger (Almanac table / oval portrait / pull-quote). A sticky (top-0 z-40) twelvemonth calendar spans the page with a 12-column month grid, tick marks, and the SVG vine. The five planting beds alternate left/right in a two-column grid around a center spine, each pairing prose + dashed crop labels + a sow/harvest chart against an oval engraving. Whitespace is generous and editorial; the rhythm is set by hairline and double-rule dividers rather than boxes.

Elevation & Depth

Flat by design — there are no box-shadows or glass anywhere. Depth is created entirely with borders and rules: 2px solid borders (border-y-2), translucent hairlines, 3px double rules (.double-rule), dashed 2px borders on crop cards, and the oval double-frame (outer 2px terra ring + a 1px inset green ring via ::after + a 1px terra border on the image itself). The look is ink on paper.

Shapes

Two extremes, nothing in between. Photo frames and the current-month dot are perfect circles (border-radius:50% / rounded-full). Everything else is sharp-cornered (radius 0): crop-label cards, the calendar bar, and the sow/harvest grid charts. A custom 5-point star (clip-path: polygon(...)) is used as the checklist bullet and footer ornament.

Components

  • Crop label — parchment fill, 2px dashed #7a7a72 border, square corners, px-4 py-3; bold Lora name + italic Crimson Pro Latin name ("Tomato — Solanum lycopersicum").
  • Oval frameborder-radius:50%, 2px terra outer ring, 10px padding, a 1px inset green ::after ring, and a 1px terra-bordered cover image inside.
  • Sticky calendar — parchment bar, border-y-2 ink-green, top-0 z-40; a 12-col Playfair month row (current month terra + bold with corn dot), tick marks, an SVG baseline vine (0.25 opacity) and the bold vine that draws on scroll.
  • Sow/Harvest chart — JS-built 12-cell grids bordered rgba(79,111,82,0.3); green "Sow" cells, terra "Harvest" cells, with a J–F–M…D month axis below.
  • Eyebrow — uppercase tracked (0.32em) terra label between hairline rules.
  • Double rule3px double ink-green, used in section dividers and footer.
  • Star bullet — clip-path 5-point star, ink-green (16px) for checklist items, terra (12px) as the footer centerpiece.

Motion

Three scroll-linked behaviors, all driven by Lenis smooth scrolling (autoRaf). (1) The calendar vine paints left-to-right: .vine-draw clips with inset(0 calc(100% - var(--scroll) * 100%) 0 0) and --scroll is set from Lenis progress. (2) The same progress drives the "% sown" counter in the calendar bar. (3) .reveal beds fade in (opacity 1.1s ease) when an IntersectionObserver (threshold 0.15) adds .is-inview. There are no hover or keyframe animations.

Iconography

No icon font. Visual marks are CSS clip-path shapes (the 5-point .star5) and a single hand-drawn SVG vine path (stroke 1.5–2.5px, ink-green). The current-month indicator is a 6px corn-blue dot. The aesthetic is botanical-engraving; imagery is photographic (Unsplash/Pexels) inside oval frames, treated as plate engravings.

Do's and Don'ts

  • Do keep everything serif and on parchment — Playfair for display, Lora for body, italic Crimson Pro for Latin names and captions.
  • Do divide with rules: hairlines, border-y-2, and 3px double rules; let borders, not shadows, create structure.
  • Do reserve corn blue (#6495ED) for the single current-month marker only.
  • Do keep photos in oval double-frames; keep cards/charts sharp-cornered.
  • Don't add box-shadows, gradients, glass, or rounded rectangles.
  • Don't introduce a sans-serif or mono face.
  • Don't brighten the palette — it must read as ink (green/terra) on aged paper.

Known Gaps

  • display size is expressed as clamp(48px, 8vw, 120px) approximating the responsive text-5xl → text-7xl → text-[120px] Tailwind ladder; intermediate steps are the Tailwind defaults.
  • The .reveal final state is in the static CSS (opacity:1); the fade depends on a .is-inview/initial-opacity rule that the IntersectionObserver toggles — the pre-reveal opacity value is implied by the JS, not the inline CSS.
  • Spacing scale lists the values actually used (Tailwind utilities); no custom spacing variables are defined in the markup.