85453da49f
regression / regression-shards (style-16-prod style-9-prod style-17-prod iframe-render-compat variables-prod mp4-h265-sdr, shard-4) (push) Has been cancelled
regression / regression-shards (style-4-prod style-11-prod style-2-prod animejs-adapter typegpu-adapter parallel-capture-regression, shard-5) (push) Has been cancelled
regression / regression-shards (style-7-prod style-8-prod style-10-prod css-spinner-render-compat webm-transparency mp4-h264-sdr webm-vp9, shard-3) (push) Has been cancelled
regression / regression-shards (sub-composition-video style-18-prod raf-ball-render-compat font-variant-numeric sub-comp-t0 sub-comp-id-selector, shard-7) (push) Has been cancelled
Windows render verification / Detect changes (push) Has been cancelled
Windows render verification / Preflight (lint + format) (push) Has been cancelled
Windows render verification / Render on windows-latest (push) Has been cancelled
Windows render verification / Tests on windows-latest (push) Has been cancelled
CI / Detect changes (push) Has been cancelled
CI / Build (push) Has been cancelled
CI / Lint (push) Has been cancelled
CI / Fallow audit (push) Has been cancelled
CI / Format (push) Has been cancelled
CI / Typecheck (push) Has been cancelled
CI / Test (push) Has been cancelled
CI / Producer: integration tests (push) Has been cancelled
CI / Producer: unit tests (push) Has been cancelled
CI / File size check (push) Has been cancelled
CI / Test: skills (push) Has been cancelled
CI / Skills: manifest in sync (push) Has been cancelled
CI / CLI: npx shim (macos-latest) (push) Has been cancelled
CI / CLI: npx shim (ubuntu-latest) (push) Has been cancelled
CI / CLI: npx shim (windows-latest) (push) Has been cancelled
CI / SDK: unit + contract + smoke (push) Has been cancelled
CI / Test: runtime contract (push) Has been cancelled
CI / Studio: load smoke (push) Has been cancelled
CI / Smoke: global install (push) Has been cancelled
CI / CLI smoke (required) (push) Has been cancelled
CI / Semantic PR title (push) Has been cancelled
Player perf / Detect changes (push) Has been cancelled
Player perf / Preflight (lint + format) (push) Has been cancelled
Player perf / player-perf (push) Has been cancelled
Player perf / Perf: drift (push) Has been cancelled
Player perf / Perf: fps (push) Has been cancelled
Player perf / Perf: parity (push) Has been cancelled
Player perf / Perf: scrub (push) Has been cancelled
Player perf / Perf: load (push) Has been cancelled
preview-regression / Detect changes (push) Has been cancelled
preview-regression / Preflight (lint + format) (push) Has been cancelled
preview-regression / Preview parity (push) Has been cancelled
preview-regression / preview-regression (push) Has been cancelled
regression / regression (push) Has been cancelled
regression / Detect changes (push) Has been cancelled
regression / Preflight (lint + format) (push) Has been cancelled
regression / regression-shards (hdr-regression style-5-prod style-3-prod mov-prores, shard-1) (push) Has been cancelled
regression / regression-shards (overlay-montage-prod style-12-prod chat missing-host-comp-id png-sequence portrait-edge-bleed, shard-6) (push) Has been cancelled
regression / regression-shards (style-13-prod style-6-prod vignelli-stacking gsap-letters-render-compat audio-mux-parity, shard-8) (push) Has been cancelled
regression / regression-shards (style-15-prod hdr-hlg-regression style-1-prod many-cuts vfr-screen-recording render-symlinked-assets, shard-2) (push) Has been cancelled
CodeQL / Analyze (actions) (push) Has been cancelled
CodeQL / Analyze (javascript-typescript) (push) Has been cancelled
CodeQL / Analyze (python) (push) Has been cancelled
Docs / Validate docs (push) Has been cancelled
Sync skills to ClawHub / Publish changed skills (push) Has been cancelled
275 lines
17 KiB
Markdown
275 lines
17 KiB
Markdown
---
|
||
version: alpha
|
||
name: Daisy Days — Frame (video / frame layer)
|
||
description: >
|
||
Video-first companion to Daisy Days' design.md. The unit is the frame (1920×1080). Atoms are
|
||
identical and sacred — the sunny-garden pastel palette (cream + turquoise/pink/butter/mint/
|
||
lavender/peach/sky + coral accent), charcoal 3px outlines, hard offset shadows (6/4px, no blur),
|
||
the Fredoka + Quicksand pairing, generous radii, headline text-shadow on color, dot bullets, and
|
||
the hand-drawn SVG ornament layer. Composition + frame scale rewritten. Motion out of scope.
|
||
unit: the frame — 1920×1080 primary; 9:16 and 1:1 documented
|
||
principle: atoms are sacred · composition is free · numbers come from the script
|
||
|
||
colors:
|
||
cream: "#F5F0E6"
|
||
turquoise: "#7ECDC0"
|
||
soft-pink: "#F7C8D4"
|
||
butter: "#FDE68A"
|
||
mint: "#A8E6CF"
|
||
lavender: "#D4A5E8"
|
||
peach: "#FFCBA4"
|
||
sky: "#A8D8F0"
|
||
coral: "#F8635F"
|
||
text-dark: "#2D2D2D"
|
||
text-muted: "#6B6B6B"
|
||
white: "#FFFFFF"
|
||
|
||
borders: { primary: "3px solid text-dark", thin: "2px solid text-dark" }
|
||
shadows: { default: "6px 6px 0 text-dark", small: "4px 4px 0 text-dark", text-headline: "3px 3px 0 text-dark", text-headline-soft: "3px 3px 0 rgba(0,0,0,0.2)" }
|
||
|
||
typography:
|
||
# — reading ramp (Quicksand) —
|
||
body: { fontFamily: "Quicksand", cqw: 0.95, weight: 500, lineHeight: 1.6 }
|
||
body-strong:{ fontFamily: "Quicksand", cqw: 0.95, weight: 600, lineHeight: 1.5 }
|
||
meta: { fontFamily: "Quicksand", cqw: 0.78, weight: 600, lineHeight: 1.45 }
|
||
# — display ramp (Fredoka One / Fredoka 600 — single weight, never italic) —
|
||
badge: { fontFamily: "Fredoka One", cqw: 0.9, tracking: "0.02em" }
|
||
label-display:{ fontFamily: "Fredoka One", cqw: 1.3, lineHeight: 1.3, tracking: "0.02em" }
|
||
subtitle:{ fontFamily: "Fredoka One", cqw: 1.8, lineHeight: 1.2, tracking: "0.02em" }
|
||
quote: { fontFamily: "Fredoka One", cqw: 2.6, lineHeight: 1.35 }
|
||
title: { fontFamily: "Fredoka One", cqw: 3.0, lineHeight: 1.15, tracking: "0.02em" }
|
||
headline:{ fontFamily: "Fredoka One", cqw: 4.5, lineHeight: 1.1, tracking: "0.02em" }
|
||
display: { fontFamily: "Fredoka One", cqw: 6.5, lineHeight: 1.1, tracking: "0.02em" }
|
||
|
||
spacing:
|
||
pad-slide: "3cqw"
|
||
radius: "20px"
|
||
radius-lg: "28px"
|
||
radius-pill: "50px"
|
||
radius-round: "50%"
|
||
|
||
components:
|
||
card:
|
||
backgroundColor: "{colors.white}"
|
||
border: "3px solid {colors.text-dark}"
|
||
rounded: "{spacing.radius} (28px featured)"
|
||
shadow: "6px 6px 0 {colors.text-dark}"
|
||
description: "The universal container; white-on-pastel is standard."
|
||
framed-header:
|
||
backgroundColor: "pastel cap + {colors.white} body"
|
||
border: "3px solid {colors.text-dark} (one continuous)"
|
||
rounded: "{spacing.radius-lg}"
|
||
shadow: "6px 6px 0 {colors.text-dark}"
|
||
description: "Pastel header strip flush above a white body — one unit, one shadow."
|
||
badge-pill:
|
||
backgroundColor: "{colors.butter}"
|
||
border: "3px solid {colors.text-dark}"
|
||
rounded: "{spacing.radius-pill}"
|
||
typography: "{typography.badge}"
|
||
shadow: "4px 4px 0 {colors.text-dark}"
|
||
description: "Section tag. white-space:nowrap."
|
||
circle-marker:
|
||
backgroundColor: "any pastel"
|
||
textColor: "{colors.white} (dark on butter)"
|
||
border: "3px solid {colors.text-dark}"
|
||
rounded: "50%"
|
||
size: "bullet 20 / icon 44 / dot 48 / step 90"
|
||
typography: "Fredoka numeral"
|
||
description: "Steps carry a small shadow."
|
||
bullet-dot:
|
||
backgroundColor: "{colors.butter}"
|
||
border: "2px solid {colors.text-dark}"
|
||
rounded: "50%"
|
||
size: "20px (::before, 4px from line top)"
|
||
description: "Lists never use glyph bullets."
|
||
ornament:
|
||
type: "hand-drawn SVG (daisy, star, sun, cloud, rainbow)"
|
||
stroke: "2.1px {colors.text-dark}"
|
||
placement: "z-index:1 behind content (z-index:2), cropping past the frame edge"
|
||
description: "3–7 per frame, clustered at corners/edges."
|
||
quote-mark:
|
||
typography: "oversized Fredoka quote glyph"
|
||
color: "{colors.soft-pink} (charcoal stroke)"
|
||
description: "Above a quote body."
|
||
text-headline-shadow:
|
||
shadow: "3px 3px 0 {colors.text-dark} (soft 20% variant on pink/mint)"
|
||
appliesTo: "Fredoka headlines on saturated surfaces (cream headlines sit flat)"
|
||
description: "Makes the headline read 'outlined' like the shapes."
|
||
---
|
||
|
||
# Daisy Days — Frame (video / frame layer)
|
||
|
||
## Overview
|
||
|
||
Daisy Days at frame scale is a **cheerful, childlike system** — picture-book illustration meets
|
||
sticker-sheet kawaii. Every shape carries a **3px charcoal outline**, every elevated element a
|
||
**solid hard offset shadow** (no blur), every surface a sunny-garden pastel. The voice is one
|
||
pairing: **Fredoka One** (chunky rounded, single weight) for every headline, **Quicksand** for
|
||
every body and meta line. The signature is the **hand-drawn SVG ornament layer** — daisies, stars,
|
||
suns, clouds, rainbows clustering at corners and cropping past the edge.
|
||
|
||
The palette is **multi-pastel with one warm pop**: cream canvas, seven pastel surfaces, and
|
||
`{colors.coral}` reserved for small high-attention markers only. Headlines on a saturated surface
|
||
get a 3px charcoal text-shadow (so they read "outlined" like the shapes) and switch to white;
|
||
headlines on cream sit flat in charcoal. Depth is 2D and graphic — thick outline + hard offset =
|
||
sticker-on-paper.
|
||
|
||
**Key characteristics at frame scale:**
|
||
|
||
- **Cream default + rotating pastel surfaces**; `{colors.coral}` is a marker accent, never a surface.
|
||
- **Fredoka One** headlines + **Quicksand 500/600** body — strict by role, never crossed.
|
||
- **3px charcoal outline + hard offset shadow** (6/4px, zero blur) on every elevated shape.
|
||
- **Generous radii** — 20px cards, 28px featured, pill badges, full-circle markers; no square corners.
|
||
- **Headline text-shadow on saturated surfaces** (white text); flat charcoal on cream.
|
||
- **Dot bullets** (outlined butter discs, never glyphs) + a **3–7 ornament wreath** per frame.
|
||
|
||
## The Frame
|
||
|
||
### Frame Craft Bar
|
||
|
||
Three eyeball tests gate every frame before any structural check:
|
||
|
||
- **Squint** — one Fredoka headline or content card dominates at 3–6× its neighbor.
|
||
- **Silence** — **one content container per frame** surrounded by an ornament wreath; the **info-card grid is the one dense exception**. Empty corners read as broken.
|
||
- **Restraint** — cream or **one** pastel surface; coral is a small-marker accent (never a surface); charcoal borders + hard offset shadows only; no ninth color.
|
||
- **Reference** — aim at a **children's picture-book / sticker-sheet kawaii zine**; failure looks like a **flat, square-cornered, blurred-shadow corporate slide**.
|
||
|
||
- **Primary:** 1920×1080 (16:9). Display authored in **`cqw`** (`px ÷ 1920 × 100 = cqw`).
|
||
- **Vertical:** 1080×1920 (9:16). **Square:** 1080×1080 (1:1).
|
||
- **Safe area:** `pad-slide` ~3cqw; ornaments deliberately bleed past the edge.
|
||
|
||
**The container law (load-bearing).** Every frame ground sets `container-type: size`; ALL
|
||
frame-relative units are `cqw`/`cqh` against it — never `vw`. Borders stay 3px/2px; radii stay
|
||
20/28/50px; shadow offsets scale in `cqw` so the sticker offset holds proportionally.
|
||
|
||
## Colors
|
||
|
||
Tokens identical to the source. Default ground `{colors.cream}`; rotate saturated pastels
|
||
(turquoise / soft-pink / butter / mint / lavender / peach / sky) for tonal mood. **Cards are white**
|
||
on any surface. **Borders + shadows are always `{colors.text-dark}` charcoal** — never colored,
|
||
never blurred, never `rgba` (save the soft text-shadow variant). `{colors.coral}` is the lone
|
||
high-saturation accent — small markers (step circles, dots, headers) **only**, never a surface.
|
||
Body is charcoal/muted; pastels carry **no semantic meaning**. No ninth color.
|
||
|
||
## Typography
|
||
|
||
Two ramps. The **reading ramp** (Quicksand 500 body 0.95cqw, 600 emphasis, meta) carries copy; the
|
||
**display ramp** (Fredoka One `label-display` 1.3cqw → `display` 6.5cqw, single weight) carries
|
||
every headline, title, quote, and marker numeral.
|
||
|
||
- **Legibility floor:** any load-bearing line ≥ **1.4cqw**; meta is chrome only.
|
||
- **Fit-to-measure:** size the headline to its length. Cap the block at **≤ 78cqw**; ≤3 words → `display`; 4–6 → `headline`; 7+ → `title`.
|
||
- **Fredoka One for all display, Quicksand for all body — never crossed.** Fredoka is single-weight (no italic, no underline, no alt weights); Quicksand stays 500/600/700. Fredoka tracking 0.02em; Quicksand body never uppercase.
|
||
|
||
## Depth & Surface
|
||
|
||
2D graphic depth — hard offset shadow, solid charcoal, zero blur, bottom-right:
|
||
|
||
- **`shadows.default` 6px** cards, frames, badges, chart containers.
|
||
- **`shadows.small` 4px** small cards, step circles, avatars.
|
||
- **Text-headline shadow** — 3px charcoal on Fredoka headlines over saturated surfaces (20% soft variant on pink/mint); cream headlines flat.
|
||
- **Outline + offset** together are the sticker-on-paper signature.
|
||
|
||
**Ceiling:** no blurred shadow, no `rgba` (except the soft text-shadow), no gradient, no glow; an element either casts a hard charcoal offset or none.
|
||
|
||
## Shapes
|
||
|
||
- **20px** cards, **28px** featured, **50px** pill (badges, counter), **50%** all circles, **4px** legend swatch. Zero square corners — every region is rounded.
|
||
|
||
## Components
|
||
|
||
- **card / framed-header** — the white-fill bordered containers (one shadow). **badge-pill** — butter section tag.
|
||
- **circle-marker** family (bullet 20 / icon 44 / dot 48 / step 90) + **bullet-dot** — outlined pastel discs, Fredoka numerals.
|
||
- **ornament** — the hand-drawn SVG sticker layer (3–7 per frame). **quote-mark** — soft-pink Fredoka anchor. **text-headline-shadow** — the on-color headline treatment.
|
||
|
||
## Frame Treatments
|
||
|
||
> Recipe: ground · container · composes · focal · chrome · accent · silence · Fixed/Free · density.
|
||
> One content container per frame + a 3–7 ornament wreath; empty corners read as broken.
|
||
|
||
### 1 · Cover (identity · move: ornament wreath · saturated · centered)
|
||
|
||
**Ground** a saturated pastel (e.g. `{colors.turquoise}`). **Composes** badge-pill, display, body sub, 3–7 ornaments, counter. **Focal** a 1–2 line Fredoka `display` in **white with the 3px charcoal text-shadow**, centered, under a butter badge-pill. **Chrome** counter pill. **Accent** the ornament wreath (daisies + stars at corners, cropping past edges). **Silence** content centered; ornaments fill the edges. **Fixed** text-shadow on color, 3px outlines, charcoal shadows. **Free** surface color, ornament mix/positions, copy. **Density** full-but-not-crowded.
|
||
|
||
### 2 · Info Cards (catalog · move: 3-up white cards · cream · the dense frame)
|
||
|
||
**Ground** `{colors.cream}`, `pad-slide`. **Composes** headline (flat charcoal), 3× card (circle-icon + Fredoka title + Quicksand body), a couple ornaments. **Focal** three white 3px-bordered cards with 6px shadows. **Chrome** flat headline. **Accent** the pastel circle-icons (rotate turquoise/coral/lavender). **Silence** tight — the density exception (fewer ornaments here). **Fixed** white cards, 3px + 6px, 20px radius. **Free** card content, icon hues. **Density** dense-exception.
|
||
|
||
### 3 · Process Steps (sequence · move: rotating circle markers · peach · centered)
|
||
|
||
**Ground** `{colors.peach}` (or another pastel). **Composes** headline (white + text-shadow), 3–4 step circles + `→` arrows, ornaments. **Focal** a row of 90px outlined step circles, fills **rotating coral → mint → sky → lavender**, Fredoka white numerals, linked by Fredoka arrows. **Chrome** white headline with text-shadow. **Accent** the rotating circle fills. **Silence** moderate. **Fixed** 3px circles + small shadow, rotating fills, arrow glyphs. **Free** step count, labels. **Density** standard.
|
||
|
||
### 4 · Quote (quote · move: quote-mark anchor · soft-pink · centered)
|
||
|
||
**Ground** `{colors.soft-pink}`. **Composes** a white quote card (28px radius, 6px shadow), quote-mark, Fredoka quote, Quicksand attribution, ornaments. **Focal** a Fredoka `quote` in charcoal inside the white card, under an oversized soft-pink quote-mark. **Chrome** Quicksand 700 attribution. **Accent** the quote-mark + a star or two. **Silence** card centered, ornaments at corners. **Fixed** quote-mark anchor, white card. **Free** quote, attribution. **Density** moderate.
|
||
|
||
### 5 · Framed Section (feature · move: cap+body card · cream)
|
||
|
||
**Ground** `{colors.cream}`. **Composes** framed-header (pastel cap + white body), bullet-dot list, ornaments. **Focal** a framed-header — a pastel cap strip (Fredoka title, optional text-shadow) above a white body with a butter-dot bullet list. **Accent** the cap color + bullet dots. **Silence** moderate. **Fixed** one continuous 3px border + one shadow, butter dot bullets. **Free** cap color, list. **Density** standard.
|
||
|
||
### 6 · Closing (closer · move: ornament wreath · saturated · centered)
|
||
|
||
**Ground** a saturated pastel (e.g. `{colors.lavender}`). **Composes** badge-pill, display (white + text-shadow), 3–7 ornaments. **Focal** a Fredoka `display` sign-off in white with the charcoal text-shadow, centered. **Accent** the ornament wreath. **Silence** content centered. **Fixed** text-shadow on color, ornaments fill corners. **Free** sign-off, surface, ornaments. **Density** full.
|
||
|
||
## Composition Rules
|
||
|
||
### Do
|
||
|
||
- Pair **Fredoka One headlines + Quicksand body** strictly by role.
|
||
- Outline every shape **3px charcoal + a hard offset shadow** (6/4px, no blur); white card fills on any surface.
|
||
- Give Fredoka headlines on **saturated surfaces a 3px charcoal text-shadow + white text**; flat charcoal on cream.
|
||
- Use **outlined butter-disc bullets** (never glyphs); cluster **3–7 hand-drawn ornaments** per frame (corners, cropping past edges).
|
||
- Keep **one content container per frame**; rotate marker colors (coral → mint → sky → lavender → butter); reserve coral for small markers.
|
||
- Center most frames; lean cream for content-dense frames, saturated for cover/closer/quote.
|
||
|
||
### Don't
|
||
|
||
- No square corners; no blurred or `rgba` shadows (save the soft text-shadow).
|
||
- No colored borders (charcoal only); no coral surface; no ninth color.
|
||
- No third font; no Quicksand headline or Fredoka body; no italic/underline Fredoka; no uppercase Quicksand body.
|
||
- No glyph bullets; no empty corners (ornaments fill them); no two competing content panels.
|
||
- Don't blow a headline edge-to-edge — fit to measure.
|
||
|
||
## Aspect-Ratio Behavior
|
||
|
||
| Treatment | 16:9 | 9:16 | 1:1 |
|
||
| -------------- | -------------------------- | -------------------------------- | ---------- |
|
||
| Cover | centered, corner ornaments | centered, taller, more ornaments | centered |
|
||
| Info Cards | 3 across | stacked | 2+1 |
|
||
| Process Steps | horizontal + arrows | vertical, arrows rotate down | 2×2 |
|
||
| Quote | centered card | centered, taller | centered |
|
||
| Framed Section | cap + body | cap + body taller | cap + body |
|
||
| Closing | centered, wreath | centered, wreath | centered |
|
||
|
||
`pad-slide` holds on the short edge; re-step display above the 1.4cqw floor. On tighter ratios keep
|
||
the ornament count toward the upper end (5–7) so corners never read empty.
|
||
|
||
## Approved Real Entities
|
||
|
||
No real customers, logos, or vendors are defined in the source — render any such mark as a
|
||
placeholder. Ornaments and pastels are content-agnostic; counters/badges carry per-deck text.
|
||
|
||
## Numerals & Claims (hard rule)
|
||
|
||
Never invent figures, dates, or counts at frame scale. Render slots as `— figure —`, `{metric}`,
|
||
`N`. Step numbers and any chart values carry placeholders until the script supplies them; the slide
|
||
counter is decorative chrome.
|
||
|
||
## Pre-Render Self-Audit
|
||
|
||
- **Squint** — one Fredoka headline or content card dominates per frame.
|
||
- **Silence** — one container per frame surrounded by an ornament wreath; only the info-card grid runs dense.
|
||
- **Color** — cream or one pastel surface; coral markers only; charcoal borders/shadows; no ninth hue.
|
||
- **Type** — Fredoka headlines (text-shadow + white on saturated, flat charcoal on cream), Quicksand body; ≥1.4cqw floor.
|
||
- **Depth** — 3px outline + hard offset (no blur, no rgba save soft text-shadow); rounded corners only.
|
||
- **Ornaments** — 3–7 per frame, cropping past edges; no empty corners. **Bullets** — outlined discs, never glyphs.
|
||
- **Fabrication** — every numeral traces to the script, else placeholder.
|
||
|
||
## Known Gaps
|
||
|
||
- **Motion intentionally out of scope.** frame.md specifies composition only; the source uses scroll-snap nav, no transition spec.
|
||
- **Fonts:** the source names _Fredoka One_; Google now serves the **Fredoka** variable family — request `Fredoka:wght@500;600;700` and set display weight 600 (visually equal to Fredoka One), with `Fredoka One` kept first in the stack for environments that still serve it. Quicksand loads normally. CJK: ZCOOL XiaoWei (display) / Yozai (body).
|
||
- **9:16 / 1:1 are guidance**; keep ornament count high so corners stay filled per ratio.
|
||
- Ornaments (daisy/star/sun/cloud/rainbow), markers, and framed headers are CSS/SVG-only; recoloring SVG ornaments requires editing their stroke values.
|
||
- **Contrast:** keep `{colors.text-muted}` off pastel surfaces (cream/white cards only); small text on saturated grounds should be charcoal or white.
|