dreative 0.4.1 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +35 -35
- package/dist/server/ai.js +177 -0
- package/dist/server/preview.js +73 -73
- package/dist/ui/index.html +11 -11
- package/package.json +1 -1
- package/skill/dreative/DESIGN.md +25 -1
- package/skill/dreative/PLAN.md +201 -157
- package/skill/dreative/SKILL.md +2 -4
- package/skill/dreative/skills/cinematic.md +232 -232
- package/skill/dreative/skills/immersive.md +223 -223
- package/skill/dreative/skills/media.md +216 -216
- package/skill/dreative/skills/mobile.md +117 -117
- package/skill/dreative/skills/refined.md +102 -102
- package/skill/dreative/skills/ux.md +144 -144
|
@@ -1,117 +1,117 @@
|
|
|
1
|
-
# Dreative Specialist Skill — Mobile Excellence
|
|
2
|
-
|
|
3
|
-
Load this file when `plan.skills` includes `mobile`, when the brief says
|
|
4
|
-
mobile-first / most users are on phones / "make the mobile version great", or
|
|
5
|
-
when an app-register product is primarily used on mobile. It EXTENDS DESIGN.md
|
|
6
|
-
§13 (which governs how desktop effects DEGRADE); this file is about designing
|
|
7
|
-
mobile as a first-class surface in its own right — clean, tidy, and still
|
|
8
|
-
genuinely animated and premium, just calibrated to a 390px viewport, a thumb,
|
|
9
|
-
and a battery. It STACKS with whatever treatments were chosen: motion/3d/
|
|
10
|
-
immersive briefs get their mobile-native expression here, never a cropped
|
|
11
|
-
desktop.
|
|
12
|
-
|
|
13
|
-
## 0. The register: calm confidence, not shrunken desktop
|
|
14
|
-
|
|
15
|
-
Mobile premium reads differently from desktop premium: less simultaneous
|
|
16
|
-
motion, more focus per viewport, perfect ergonomics. The dial translation:
|
|
17
|
-
desktop ambition N ≈ mobile ambition N−2. A desktop dial-8 site ships a
|
|
18
|
-
dial-6 phone experience that feels JUST as crafted — one hero moment, silky
|
|
19
|
-
scroll reveals, tactile presses — rather than a stuttering copy of the desktop
|
|
20
|
-
choreography.
|
|
21
|
-
|
|
22
|
-
- **One idea per viewport.** The phone viewport is a frame; compose each
|
|
23
|
-
screenful like one (hero = one headline + one visual + one CTA, nothing
|
|
24
|
-
else). If a desktop section held three things, the mobile version stacks
|
|
25
|
-
them as three clean beats or cuts to the strongest one.
|
|
26
|
-
- **Tidy is the aesthetic.** Consistent gutters (20-24px), one column
|
|
27
|
-
discipline, generous vertical rhythm (56-80px between sections), no element
|
|
28
|
-
closer than 8px to another. Clutter reads twice as loud at 390px.
|
|
29
|
-
- **Type recalibrated, not just clamped**: hero 2-3rem (2 lines max with the
|
|
30
|
-
REAL copy), body stays ≥16px, line-length falls out of the gutters — check
|
|
31
|
-
headlines don't orphan single words (`text-wrap: balance`).
|
|
32
|
-
|
|
33
|
-
## 1. Layout patterns that are mobile-native
|
|
34
|
-
|
|
35
|
-
- Asymmetric desktop grids collapse to intentional single-column ORDER
|
|
36
|
-
(decide what comes first — usually visual → headline → support → CTA), not
|
|
37
|
-
DOM-order accidents. Check the collapsed order reads as a story.
|
|
38
|
-
- Horizontal scroll is mobile's extra axis: card shelves, galleries, and
|
|
39
|
-
chip rows as swipeable strips (`overflow-x-auto` + `scroll-snap-type: x
|
|
40
|
-
mandatory` on short strips, edge inset, visible peek of the next card —
|
|
41
|
-
the peek IS the affordance; no scrollbars, no arrows).
|
|
42
|
-
- Sticky bottom bar for the primary action on conversion/product pages
|
|
43
|
-
(add-to-cart, main CTA): thumb-reach beats footer CTA; respect
|
|
44
|
-
`env(safe-area-inset-bottom)`.
|
|
45
|
-
- Accordions/tabs for secondary density (specs, FAQs) instead of long walls;
|
|
46
|
-
tables become stacked cards or a scrollable container with sticky first
|
|
47
|
-
column — never squeezed 6-column tables.
|
|
48
|
-
- Nav: the fullscreen menu is mobile's one theatrical moment — staggered
|
|
49
|
-
link entrance (line-mask, 60ms stagger), big touch-sized links (≥ 48px
|
|
50
|
-
rows), contact/socials in the footer of the overlay. Wired per ux.md §1
|
|
51
|
-
(focus trap, scroll lock, Esc/back closes).
|
|
52
|
-
|
|
53
|
-
## 2. Motion on mobile (still premium, never crazy)
|
|
54
|
-
|
|
55
|
-
The motion inventory scaled to touch (extends motion.md §9):
|
|
56
|
-
|
|
57
|
-
- **Keep**: one composed hero entrance (≤ 600ms total), line-mask headline
|
|
58
|
-
reveals, in-view section reveals (2-3, `once: true`), press states on
|
|
59
|
-
EVERYTHING tappable (`active:scale-[0.98]` — on mobile this is the main
|
|
60
|
-
interaction feedback, since hover doesn't exist), marquees (pause
|
|
61
|
-
off-screen), counters, accordion springs.
|
|
62
|
-
- **Translate**: parallax halves or dies (§13); pinned sequences → short
|
|
63
|
-
sticky sections (≤ 1.5 viewports) or plain stacked beats; hover-woken media
|
|
64
|
-
→ in-view-woken (loop plays while ≥ 60% visible, pauses off-screen) or
|
|
65
|
-
tap-to-play; magnetic/cursor effects → gone entirely, replaced by press
|
|
66
|
-
feedback; drag-to-explore → swipe carousel or index list as PRIMARY
|
|
67
|
-
(DESIGN.md §13).
|
|
68
|
-
- **Ban on mobile**: smooth-scroll libraries at full strength (Lenis: disable
|
|
69
|
-
or `syncTouch` carefully — fighting native momentum feels broken), more than
|
|
70
|
-
one scrubbed sequence, simultaneous animation of > 4 elements, any effect
|
|
71
|
-
that drops the scroll below 60fps on a mid-range phone.
|
|
72
|
-
- Scroll reveals trigger earlier (`margin: "-10% 0px"` not -20%) — mobile
|
|
73
|
-
viewports are short and users scroll fast; late reveals = users see blank.
|
|
74
|
-
|
|
75
|
-
## 3. 3D and heavy media on mobile
|
|
76
|
-
|
|
77
|
-
- Default: replace live 3D with the poster or a pre-rendered loop (3d.md §7,
|
|
78
|
-
media.md). A generated video loop IS the mobile 3D strategy in most cases —
|
|
79
|
-
visually near-identical, thermally free.
|
|
80
|
-
- If live 3D ships: dpr capped at 2, sim/particle counts halved, post-FX off,
|
|
81
|
-
`frameloop="demand"` where possible, pause on scroll-out and
|
|
82
|
-
`document.hidden`. Test the thermal story: 30s of idling must not heat the
|
|
83
|
-
phone (no full-rate rAF on static scenes).
|
|
84
|
-
- Video: one playing loop per viewport, ≤ 2MB mobile variants
|
|
85
|
-
(`<source media>` or renditions), `playsinline` mandatory, poster always.
|
|
86
|
-
- Images: serve mobile-sized renditions (`srcset/sizes`) — a 2400px hero on a
|
|
87
|
-
390px screen is a failed budget even when it looks fine.
|
|
88
|
-
|
|
89
|
-
## 4. Ergonomics (the thumb is the cursor)
|
|
90
|
-
|
|
91
|
-
- Tap targets ≥ 44px (48px preferred) with ≥ 8px gaps; small text links get
|
|
92
|
-
padded hit areas. Primary actions in the bottom half on app-register
|
|
93
|
-
screens; destructive actions OUT of easy thumb reach.
|
|
94
|
-
- Respect the gesture map: horizontal edge swipes (back), bottom edge (home)
|
|
95
|
-
— don't hang custom gestures on them; carousels stop 16px short of edges.
|
|
96
|
-
- Inputs: correct `type/inputmode/autocomplete` (ux.md §2), font-size ≥ 16px
|
|
97
|
-
(iOS zoom), the focused field scrolls above the keyboard, forms in one
|
|
98
|
-
column, no fixed elements covering inputs while the keyboard is up.
|
|
99
|
-
- Safe areas: `viewport-fit=cover` + `env(safe-area-inset-*)` padding on
|
|
100
|
-
fixed bars/corners; nothing under the notch or home indicator.
|
|
101
|
-
- No hover-dependent anything: whatever desktop hover revealed is visible by
|
|
102
|
-
default, in-view-triggered, or behind an explicit tap (DESIGN.md §13).
|
|
103
|
-
|
|
104
|
-
## 5. Mobile verification (part of the runtime pass)
|
|
105
|
-
|
|
106
|
-
At 390×844 (plus one small check at 320px):
|
|
107
|
-
|
|
108
|
-
1. Walk every section: no horizontal body scroll, no clipped text/controls,
|
|
109
|
-
no element under fixed bars (DESIGN.md §15 at mobile widths).
|
|
110
|
-
2. Run ux.md §7's audit at this width (menu, forms, taps, console).
|
|
111
|
-
3. Scroll the full page fast: reveals keep up, nothing janks, sticky elements
|
|
112
|
-
behave through the URL-bar resize.
|
|
113
|
-
4. Confirm the motion translation shipped (§2): press states everywhere, hero
|
|
114
|
-
≤ 600ms, heavy effects swapped for their mobile strategy — name what runs
|
|
115
|
-
on mobile vs desktop in the final report.
|
|
116
|
-
5. If media/3D shipped: posters load, loops play inline (not fullscreen),
|
|
117
|
-
pause off-screen.
|
|
1
|
+
# Dreative Specialist Skill — Mobile Excellence
|
|
2
|
+
|
|
3
|
+
Load this file when `plan.skills` includes `mobile`, when the brief says
|
|
4
|
+
mobile-first / most users are on phones / "make the mobile version great", or
|
|
5
|
+
when an app-register product is primarily used on mobile. It EXTENDS DESIGN.md
|
|
6
|
+
§13 (which governs how desktop effects DEGRADE); this file is about designing
|
|
7
|
+
mobile as a first-class surface in its own right — clean, tidy, and still
|
|
8
|
+
genuinely animated and premium, just calibrated to a 390px viewport, a thumb,
|
|
9
|
+
and a battery. It STACKS with whatever treatments were chosen: motion/3d/
|
|
10
|
+
immersive briefs get their mobile-native expression here, never a cropped
|
|
11
|
+
desktop.
|
|
12
|
+
|
|
13
|
+
## 0. The register: calm confidence, not shrunken desktop
|
|
14
|
+
|
|
15
|
+
Mobile premium reads differently from desktop premium: less simultaneous
|
|
16
|
+
motion, more focus per viewport, perfect ergonomics. The dial translation:
|
|
17
|
+
desktop ambition N ≈ mobile ambition N−2. A desktop dial-8 site ships a
|
|
18
|
+
dial-6 phone experience that feels JUST as crafted — one hero moment, silky
|
|
19
|
+
scroll reveals, tactile presses — rather than a stuttering copy of the desktop
|
|
20
|
+
choreography.
|
|
21
|
+
|
|
22
|
+
- **One idea per viewport.** The phone viewport is a frame; compose each
|
|
23
|
+
screenful like one (hero = one headline + one visual + one CTA, nothing
|
|
24
|
+
else). If a desktop section held three things, the mobile version stacks
|
|
25
|
+
them as three clean beats or cuts to the strongest one.
|
|
26
|
+
- **Tidy is the aesthetic.** Consistent gutters (20-24px), one column
|
|
27
|
+
discipline, generous vertical rhythm (56-80px between sections), no element
|
|
28
|
+
closer than 8px to another. Clutter reads twice as loud at 390px.
|
|
29
|
+
- **Type recalibrated, not just clamped**: hero 2-3rem (2 lines max with the
|
|
30
|
+
REAL copy), body stays ≥16px, line-length falls out of the gutters — check
|
|
31
|
+
headlines don't orphan single words (`text-wrap: balance`).
|
|
32
|
+
|
|
33
|
+
## 1. Layout patterns that are mobile-native
|
|
34
|
+
|
|
35
|
+
- Asymmetric desktop grids collapse to intentional single-column ORDER
|
|
36
|
+
(decide what comes first — usually visual → headline → support → CTA), not
|
|
37
|
+
DOM-order accidents. Check the collapsed order reads as a story.
|
|
38
|
+
- Horizontal scroll is mobile's extra axis: card shelves, galleries, and
|
|
39
|
+
chip rows as swipeable strips (`overflow-x-auto` + `scroll-snap-type: x
|
|
40
|
+
mandatory` on short strips, edge inset, visible peek of the next card —
|
|
41
|
+
the peek IS the affordance; no scrollbars, no arrows).
|
|
42
|
+
- Sticky bottom bar for the primary action on conversion/product pages
|
|
43
|
+
(add-to-cart, main CTA): thumb-reach beats footer CTA; respect
|
|
44
|
+
`env(safe-area-inset-bottom)`.
|
|
45
|
+
- Accordions/tabs for secondary density (specs, FAQs) instead of long walls;
|
|
46
|
+
tables become stacked cards or a scrollable container with sticky first
|
|
47
|
+
column — never squeezed 6-column tables.
|
|
48
|
+
- Nav: the fullscreen menu is mobile's one theatrical moment — staggered
|
|
49
|
+
link entrance (line-mask, 60ms stagger), big touch-sized links (≥ 48px
|
|
50
|
+
rows), contact/socials in the footer of the overlay. Wired per ux.md §1
|
|
51
|
+
(focus trap, scroll lock, Esc/back closes).
|
|
52
|
+
|
|
53
|
+
## 2. Motion on mobile (still premium, never crazy)
|
|
54
|
+
|
|
55
|
+
The motion inventory scaled to touch (extends motion.md §9):
|
|
56
|
+
|
|
57
|
+
- **Keep**: one composed hero entrance (≤ 600ms total), line-mask headline
|
|
58
|
+
reveals, in-view section reveals (2-3, `once: true`), press states on
|
|
59
|
+
EVERYTHING tappable (`active:scale-[0.98]` — on mobile this is the main
|
|
60
|
+
interaction feedback, since hover doesn't exist), marquees (pause
|
|
61
|
+
off-screen), counters, accordion springs.
|
|
62
|
+
- **Translate**: parallax halves or dies (§13); pinned sequences → short
|
|
63
|
+
sticky sections (≤ 1.5 viewports) or plain stacked beats; hover-woken media
|
|
64
|
+
→ in-view-woken (loop plays while ≥ 60% visible, pauses off-screen) or
|
|
65
|
+
tap-to-play; magnetic/cursor effects → gone entirely, replaced by press
|
|
66
|
+
feedback; drag-to-explore → swipe carousel or index list as PRIMARY
|
|
67
|
+
(DESIGN.md §13).
|
|
68
|
+
- **Ban on mobile**: smooth-scroll libraries at full strength (Lenis: disable
|
|
69
|
+
or `syncTouch` carefully — fighting native momentum feels broken), more than
|
|
70
|
+
one scrubbed sequence, simultaneous animation of > 4 elements, any effect
|
|
71
|
+
that drops the scroll below 60fps on a mid-range phone.
|
|
72
|
+
- Scroll reveals trigger earlier (`margin: "-10% 0px"` not -20%) — mobile
|
|
73
|
+
viewports are short and users scroll fast; late reveals = users see blank.
|
|
74
|
+
|
|
75
|
+
## 3. 3D and heavy media on mobile
|
|
76
|
+
|
|
77
|
+
- Default: replace live 3D with the poster or a pre-rendered loop (3d.md §7,
|
|
78
|
+
media.md). A generated video loop IS the mobile 3D strategy in most cases —
|
|
79
|
+
visually near-identical, thermally free.
|
|
80
|
+
- If live 3D ships: dpr capped at 2, sim/particle counts halved, post-FX off,
|
|
81
|
+
`frameloop="demand"` where possible, pause on scroll-out and
|
|
82
|
+
`document.hidden`. Test the thermal story: 30s of idling must not heat the
|
|
83
|
+
phone (no full-rate rAF on static scenes).
|
|
84
|
+
- Video: one playing loop per viewport, ≤ 2MB mobile variants
|
|
85
|
+
(`<source media>` or renditions), `playsinline` mandatory, poster always.
|
|
86
|
+
- Images: serve mobile-sized renditions (`srcset/sizes`) — a 2400px hero on a
|
|
87
|
+
390px screen is a failed budget even when it looks fine.
|
|
88
|
+
|
|
89
|
+
## 4. Ergonomics (the thumb is the cursor)
|
|
90
|
+
|
|
91
|
+
- Tap targets ≥ 44px (48px preferred) with ≥ 8px gaps; small text links get
|
|
92
|
+
padded hit areas. Primary actions in the bottom half on app-register
|
|
93
|
+
screens; destructive actions OUT of easy thumb reach.
|
|
94
|
+
- Respect the gesture map: horizontal edge swipes (back), bottom edge (home)
|
|
95
|
+
— don't hang custom gestures on them; carousels stop 16px short of edges.
|
|
96
|
+
- Inputs: correct `type/inputmode/autocomplete` (ux.md §2), font-size ≥ 16px
|
|
97
|
+
(iOS zoom), the focused field scrolls above the keyboard, forms in one
|
|
98
|
+
column, no fixed elements covering inputs while the keyboard is up.
|
|
99
|
+
- Safe areas: `viewport-fit=cover` + `env(safe-area-inset-*)` padding on
|
|
100
|
+
fixed bars/corners; nothing under the notch or home indicator.
|
|
101
|
+
- No hover-dependent anything: whatever desktop hover revealed is visible by
|
|
102
|
+
default, in-view-triggered, or behind an explicit tap (DESIGN.md §13).
|
|
103
|
+
|
|
104
|
+
## 5. Mobile verification (part of the runtime pass)
|
|
105
|
+
|
|
106
|
+
At 390×844 (plus one small check at 320px):
|
|
107
|
+
|
|
108
|
+
1. Walk every section: no horizontal body scroll, no clipped text/controls,
|
|
109
|
+
no element under fixed bars (DESIGN.md §15 at mobile widths).
|
|
110
|
+
2. Run ux.md §7's audit at this width (menu, forms, taps, console).
|
|
111
|
+
3. Scroll the full page fast: reveals keep up, nothing janks, sticky elements
|
|
112
|
+
behave through the URL-bar resize.
|
|
113
|
+
4. Confirm the motion translation shipped (§2): press states everywhere, hero
|
|
114
|
+
≤ 600ms, heavy effects swapped for their mobile strategy — name what runs
|
|
115
|
+
on mobile vs desktop in the final report.
|
|
116
|
+
5. If media/3D shipped: posters load, loops play inline (not fullscreen),
|
|
117
|
+
pause off-screen.
|
|
@@ -1,102 +1,102 @@
|
|
|
1
|
-
# Dreative Specialist Skill — Refined Clean Business
|
|
2
|
-
|
|
3
|
-
Load this file when `plan.skills` includes `refined`, or the brief/prompt asks
|
|
4
|
-
for a "clean modern business site", premium-but-calm marketing, DTC/e-commerce
|
|
5
|
-
polish, "professional, not flashy", or names references like ch.maswitzerland.com
|
|
6
|
-
or lovvelavva.com. This is the OPPOSITE pole from immersive/cinematic: quality
|
|
7
|
-
expressed through restraint — spacing, photography, and type doing all the work,
|
|
8
|
-
with motion barely above zero. Most real client work lands here; treat it as a
|
|
9
|
-
craft discipline, not the absence of one.
|
|
10
|
-
|
|
11
|
-
It EXTENDS DESIGN.md (everything applies; this file tightens the dials). It does
|
|
12
|
-
NOT stack with `immersive`/`cinematic` — those are different registers. It pairs
|
|
13
|
-
well with a light dose of `interaction` (press states, underline draws), the
|
|
14
|
-
first tier of `motion` (one hero sequence, 2-3 in-view reveals), `ux` (this
|
|
15
|
-
register's audience punishes broken function hardest), and media.md's quiet
|
|
16
|
-
treatments only (ken-burns, curtain reveals, one hover-woken loop — imagery
|
|
17
|
-
here is generated/sourced to ONE photographic grade, media.md §1).
|
|
18
|
-
|
|
19
|
-
## 0. The register: expensive silence
|
|
20
|
-
|
|
21
|
-
What separates premium-clean from generic-clean is not any element — it's the
|
|
22
|
-
ratios:
|
|
23
|
-
|
|
24
|
-
- **Whitespace is the brand.** Section padding 96-160px desktop / 56-80px
|
|
25
|
-
mobile; content max-width 1200-1320px with WIDE outer gutters; one idea per
|
|
26
|
-
viewport. If a section feels empty, that's the look working — resist filling.
|
|
27
|
-
- **Photography carries the emotion.** Real product/lifestyle imagery, art-
|
|
28
|
-
directed to one consistent grade (one light temperature, one background
|
|
29
|
-
family). Full-bleed image sections alternate with contained text sections —
|
|
30
|
-
the rhythm image / text / image IS the page structure. Never decorate around
|
|
31
|
-
weak imagery; demand or generate better imagery instead.
|
|
32
|
-
- **Type does hierarchy, color stays out of the way.** Near-monochrome palette:
|
|
33
|
-
warm or cool neutral family + ONE accent used almost exclusively on the
|
|
34
|
-
primary CTA and links. Backgrounds shift between 2-3 tints of the neutral
|
|
35
|
-
(e.g. white / #f6f5f2 / #111) to separate sections without borders.
|
|
36
|
-
- **Motion whispers.** Motion dial effectively ≤ 4: fade-rise entrances
|
|
37
|
-
(300-400ms, once), a sticky nav that gains a hairline+blur, underline draws,
|
|
38
|
-
press states. No parallax beyond 4%, no pinning, no canvas. A single
|
|
39
|
-
restrained signature (a slow ken-burns on the hero image, or a marquee of
|
|
40
|
-
press logos) is the ceiling.
|
|
41
|
-
|
|
42
|
-
## 1. Page anatomy (marketing/DTC form)
|
|
43
|
-
|
|
44
|
-
The proven skeleton — vary the composition per DESIGN.md §5, not the order
|
|
45
|
-
logic:
|
|
46
|
-
|
|
47
|
-
1. **Hero**: one full-width image or split layout; headline ≤ 8 words stating
|
|
48
|
-
the value in plain language; one CTA. No feature bullets in the hero.
|
|
49
|
-
2. **Credibility strip**: press/client logos, real marks, grayscale or
|
|
50
|
-
single-tint (lovvelavva runs Forbes/Women's Health/Real Simple here —
|
|
51
|
-
this section converts and belongs high on DTC pages).
|
|
52
|
-
3. **Value sections** (2-4): alternating image/text, each making ONE claim
|
|
53
|
-
with 1-2 sentences of support. Icons only if custom-drawn; three-generic-
|
|
54
|
-
icon-cards is the tell this register must avoid most.
|
|
55
|
-
4. **Product/collection grid**: large images, generous gaps (24-32px), minimal
|
|
56
|
-
card chrome — image, name, price/one-liner; hover = image swap or subtle
|
|
57
|
-
zoom-crop INSIDE a fixed frame (no card growth).
|
|
58
|
-
5. **Social proof**: 1-3 real testimonials with names/photos, editorial layout
|
|
59
|
-
(big quote type), never a 3-card testimonial row.
|
|
60
|
-
6. **Closing CTA**: calm full-width section, one sentence, one button.
|
|
61
|
-
7. **Footer**: structured, generous, quiet — the footer's polish is a trust
|
|
62
|
-
signal in this register; give it real columns, legal, newsletter.
|
|
63
|
-
|
|
64
|
-
E-commerce specifics: sticky add-to-cart on product pages (mobile bottom bar),
|
|
65
|
-
price always visible, shipping/returns reassurance near the CTA, cart as a
|
|
66
|
-
slide-over drawer not a page.
|
|
67
|
-
|
|
68
|
-
## 2. The discovery-grid variant (cosmos.so-like)
|
|
69
|
-
|
|
70
|
-
For content/discovery products (galleries, moodboards, catalogs): near-zero
|
|
71
|
-
chrome around a masonry/justified image grid; dark or paper-white surface;
|
|
72
|
-
images at native aspect ratios (never uniform crops); hover = slight lift +
|
|
73
|
-
metadata fade-in on top of the image; infinite scroll with a sentinel loader;
|
|
74
|
-
the search/filter bar is the only persistent UI. The product IS the grid —
|
|
75
|
-
navigation, branding, and controls stay almost invisible until needed.
|
|
76
|
-
|
|
77
|
-
## 3. What "modern" means here (2024+, not 2016 flat)
|
|
78
|
-
|
|
79
|
-
- Hairline borders (1px, 8-12% alpha) instead of shadows for structure; the
|
|
80
|
-
2-3 stacked tinted shadows (interaction.md §3) reserved for genuinely
|
|
81
|
-
floating elements (dropdowns, drawers).
|
|
82
|
-
- Larger type than feels safe: body 17-18px on marketing pages, display
|
|
83
|
-
clamped 2.5-4.5rem, tight leading. Small timid type is the #1 dated tell.
|
|
84
|
-
- Radius system: one value family — either near-square (2-4px, editorial/
|
|
85
|
-
luxury) or soft (12-16px, DTC/consumer) — never mixed.
|
|
86
|
-
- Buttons: solid accent primary + quiet text-link secondary. Pill shape only
|
|
87
|
-
in the consumer/DTC variant. No outlined-button armies.
|
|
88
|
-
- Real `<img>`/`<picture>` with proper aspect-ratio boxes; no CSS-drawn
|
|
89
|
-
product mockups; `object-fit: cover` with art-directed focal points.
|
|
90
|
-
|
|
91
|
-
## 4. Guardrails
|
|
92
|
-
|
|
93
|
-
- If you're adding an effect to make a section interesting, the section's
|
|
94
|
-
content or imagery is the problem — fix that instead.
|
|
95
|
-
- No gradient meshes, no glassmorphism cards, no floating blob backgrounds,
|
|
96
|
-
no emoji in UI copy: all instantly cheapen this register.
|
|
97
|
-
- Accessibility floor is easy here — don't squander it: AA contrast on the
|
|
98
|
-
tinted neutrals (test the #767676-gray-on-white trap), visible focus,
|
|
99
|
-
semantic landmarks.
|
|
100
|
-
- Performance IS the aesthetic: LCP image preloaded, fonts ≤ 2 files,
|
|
101
|
-
zero animation libraries unless motion is actually used — a clean site
|
|
102
|
-
that loads instantly reads as more premium than any effect.
|
|
1
|
+
# Dreative Specialist Skill — Refined Clean Business
|
|
2
|
+
|
|
3
|
+
Load this file when `plan.skills` includes `refined`, or the brief/prompt asks
|
|
4
|
+
for a "clean modern business site", premium-but-calm marketing, DTC/e-commerce
|
|
5
|
+
polish, "professional, not flashy", or names references like ch.maswitzerland.com
|
|
6
|
+
or lovvelavva.com. This is the OPPOSITE pole from immersive/cinematic: quality
|
|
7
|
+
expressed through restraint — spacing, photography, and type doing all the work,
|
|
8
|
+
with motion barely above zero. Most real client work lands here; treat it as a
|
|
9
|
+
craft discipline, not the absence of one.
|
|
10
|
+
|
|
11
|
+
It EXTENDS DESIGN.md (everything applies; this file tightens the dials). It does
|
|
12
|
+
NOT stack with `immersive`/`cinematic` — those are different registers. It pairs
|
|
13
|
+
well with a light dose of `interaction` (press states, underline draws), the
|
|
14
|
+
first tier of `motion` (one hero sequence, 2-3 in-view reveals), `ux` (this
|
|
15
|
+
register's audience punishes broken function hardest), and media.md's quiet
|
|
16
|
+
treatments only (ken-burns, curtain reveals, one hover-woken loop — imagery
|
|
17
|
+
here is generated/sourced to ONE photographic grade, media.md §1).
|
|
18
|
+
|
|
19
|
+
## 0. The register: expensive silence
|
|
20
|
+
|
|
21
|
+
What separates premium-clean from generic-clean is not any element — it's the
|
|
22
|
+
ratios:
|
|
23
|
+
|
|
24
|
+
- **Whitespace is the brand.** Section padding 96-160px desktop / 56-80px
|
|
25
|
+
mobile; content max-width 1200-1320px with WIDE outer gutters; one idea per
|
|
26
|
+
viewport. If a section feels empty, that's the look working — resist filling.
|
|
27
|
+
- **Photography carries the emotion.** Real product/lifestyle imagery, art-
|
|
28
|
+
directed to one consistent grade (one light temperature, one background
|
|
29
|
+
family). Full-bleed image sections alternate with contained text sections —
|
|
30
|
+
the rhythm image / text / image IS the page structure. Never decorate around
|
|
31
|
+
weak imagery; demand or generate better imagery instead.
|
|
32
|
+
- **Type does hierarchy, color stays out of the way.** Near-monochrome palette:
|
|
33
|
+
warm or cool neutral family + ONE accent used almost exclusively on the
|
|
34
|
+
primary CTA and links. Backgrounds shift between 2-3 tints of the neutral
|
|
35
|
+
(e.g. white / #f6f5f2 / #111) to separate sections without borders.
|
|
36
|
+
- **Motion whispers.** Motion dial effectively ≤ 4: fade-rise entrances
|
|
37
|
+
(300-400ms, once), a sticky nav that gains a hairline+blur, underline draws,
|
|
38
|
+
press states. No parallax beyond 4%, no pinning, no canvas. A single
|
|
39
|
+
restrained signature (a slow ken-burns on the hero image, or a marquee of
|
|
40
|
+
press logos) is the ceiling.
|
|
41
|
+
|
|
42
|
+
## 1. Page anatomy (marketing/DTC form)
|
|
43
|
+
|
|
44
|
+
The proven skeleton — vary the composition per DESIGN.md §5, not the order
|
|
45
|
+
logic:
|
|
46
|
+
|
|
47
|
+
1. **Hero**: one full-width image or split layout; headline ≤ 8 words stating
|
|
48
|
+
the value in plain language; one CTA. No feature bullets in the hero.
|
|
49
|
+
2. **Credibility strip**: press/client logos, real marks, grayscale or
|
|
50
|
+
single-tint (lovvelavva runs Forbes/Women's Health/Real Simple here —
|
|
51
|
+
this section converts and belongs high on DTC pages).
|
|
52
|
+
3. **Value sections** (2-4): alternating image/text, each making ONE claim
|
|
53
|
+
with 1-2 sentences of support. Icons only if custom-drawn; three-generic-
|
|
54
|
+
icon-cards is the tell this register must avoid most.
|
|
55
|
+
4. **Product/collection grid**: large images, generous gaps (24-32px), minimal
|
|
56
|
+
card chrome — image, name, price/one-liner; hover = image swap or subtle
|
|
57
|
+
zoom-crop INSIDE a fixed frame (no card growth).
|
|
58
|
+
5. **Social proof**: 1-3 real testimonials with names/photos, editorial layout
|
|
59
|
+
(big quote type), never a 3-card testimonial row.
|
|
60
|
+
6. **Closing CTA**: calm full-width section, one sentence, one button.
|
|
61
|
+
7. **Footer**: structured, generous, quiet — the footer's polish is a trust
|
|
62
|
+
signal in this register; give it real columns, legal, newsletter.
|
|
63
|
+
|
|
64
|
+
E-commerce specifics: sticky add-to-cart on product pages (mobile bottom bar),
|
|
65
|
+
price always visible, shipping/returns reassurance near the CTA, cart as a
|
|
66
|
+
slide-over drawer not a page.
|
|
67
|
+
|
|
68
|
+
## 2. The discovery-grid variant (cosmos.so-like)
|
|
69
|
+
|
|
70
|
+
For content/discovery products (galleries, moodboards, catalogs): near-zero
|
|
71
|
+
chrome around a masonry/justified image grid; dark or paper-white surface;
|
|
72
|
+
images at native aspect ratios (never uniform crops); hover = slight lift +
|
|
73
|
+
metadata fade-in on top of the image; infinite scroll with a sentinel loader;
|
|
74
|
+
the search/filter bar is the only persistent UI. The product IS the grid —
|
|
75
|
+
navigation, branding, and controls stay almost invisible until needed.
|
|
76
|
+
|
|
77
|
+
## 3. What "modern" means here (2024+, not 2016 flat)
|
|
78
|
+
|
|
79
|
+
- Hairline borders (1px, 8-12% alpha) instead of shadows for structure; the
|
|
80
|
+
2-3 stacked tinted shadows (interaction.md §3) reserved for genuinely
|
|
81
|
+
floating elements (dropdowns, drawers).
|
|
82
|
+
- Larger type than feels safe: body 17-18px on marketing pages, display
|
|
83
|
+
clamped 2.5-4.5rem, tight leading. Small timid type is the #1 dated tell.
|
|
84
|
+
- Radius system: one value family — either near-square (2-4px, editorial/
|
|
85
|
+
luxury) or soft (12-16px, DTC/consumer) — never mixed.
|
|
86
|
+
- Buttons: solid accent primary + quiet text-link secondary. Pill shape only
|
|
87
|
+
in the consumer/DTC variant. No outlined-button armies.
|
|
88
|
+
- Real `<img>`/`<picture>` with proper aspect-ratio boxes; no CSS-drawn
|
|
89
|
+
product mockups; `object-fit: cover` with art-directed focal points.
|
|
90
|
+
|
|
91
|
+
## 4. Guardrails
|
|
92
|
+
|
|
93
|
+
- If you're adding an effect to make a section interesting, the section's
|
|
94
|
+
content or imagery is the problem — fix that instead.
|
|
95
|
+
- No gradient meshes, no glassmorphism cards, no floating blob backgrounds,
|
|
96
|
+
no emoji in UI copy: all instantly cheapen this register.
|
|
97
|
+
- Accessibility floor is easy here — don't squander it: AA contrast on the
|
|
98
|
+
tinted neutrals (test the #767676-gray-on-white trap), visible focus,
|
|
99
|
+
semantic landmarks.
|
|
100
|
+
- Performance IS the aesthetic: LCP image preloaded, fonts ≤ 2 files,
|
|
101
|
+
zero animation libraries unless motion is actually used — a clean site
|
|
102
|
+
that loads instantly reads as more premium than any effect.
|