@xenonbyte/da-vinci-workflow 0.1.13 → 0.1.14
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/CHANGELOG.md +12 -0
- package/README.md +6 -1
- package/README.zh-CN.md +6 -1
- package/SKILL.md +2 -0
- package/docs/prompt-presets/README.md +1 -0
- package/docs/prompt-presets/desktop-app.md +1 -0
- package/docs/prompt-presets/mobile-app.md +1 -0
- package/docs/prompt-presets/tablet-app.md +1 -0
- package/docs/prompt-presets/web-app.md +1 -0
- package/docs/visual-adapters.md +9 -0
- package/docs/visual-assist-presets/README.md +4 -2
- package/docs/visual-assist-presets/desktop-app.md +2 -0
- package/docs/visual-assist-presets/mobile-app.md +2 -0
- package/docs/visual-assist-presets/tablet-app.md +2 -0
- package/docs/visual-assist-presets/web-app.md +2 -0
- package/docs/zh-CN/prompt-presets/README.md +1 -0
- package/docs/zh-CN/prompt-presets/desktop-app.md +1 -0
- package/docs/zh-CN/prompt-presets/mobile-app.md +1 -0
- package/docs/zh-CN/prompt-presets/tablet-app.md +1 -0
- package/docs/zh-CN/prompt-presets/web-app.md +1 -0
- package/docs/zh-CN/visual-adapters.md +9 -0
- package/docs/zh-CN/visual-assist-presets/README.md +5 -3
- package/docs/zh-CN/visual-assist-presets/desktop-app.md +2 -0
- package/docs/zh-CN/visual-assist-presets/mobile-app.md +2 -0
- package/docs/zh-CN/visual-assist-presets/tablet-app.md +2 -0
- package/docs/zh-CN/visual-assist-presets/web-app.md +2 -0
- package/examples/greenfield-spec-markupflow/DA-VINCI.md +1 -0
- package/examples/greenfield-spec-markupflow/README.md +3 -0
- package/examples/greenfield-spec-markupflow/design-registry.md +3 -0
- package/examples/greenfield-spec-markupflow/pencil-design.md +4 -0
- package/package.json +1 -1
- package/references/artifact-templates.md +9 -2
- package/references/checkpoints.md +3 -0
- package/references/design-inputs.md +7 -0
- package/references/layout-hygiene.md +117 -0
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,18 @@
|
|
|
4
4
|
|
|
5
5
|
- No unreleased changes yet.
|
|
6
6
|
|
|
7
|
+
## v0.1.14 - 2026-03-27
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
- `references/layout-hygiene.md` as the central form-factor-specific layout hygiene gate for mobile, tablet, desktop, and web screenshot review
|
|
11
|
+
|
|
12
|
+
### Changed
|
|
13
|
+
- screenshot-review and design-checkpoint guidance now apply a resolved layout-hygiene profile per reviewed surface instead of relying on generic spacing checks alone
|
|
14
|
+
- design-input and artifact-template guidance now records the resolved layout-hygiene profile and blocker classes in `design-brief.md` and `pencil-design.md`
|
|
15
|
+
- visual-adapter docs now state explicitly that `Visual Assist` does not replace form-factor-specific layout hygiene
|
|
16
|
+
- prompt presets for mobile, tablet, desktop, and web now point to the form-factor-specific layout hygiene gate before screenshot review passes
|
|
17
|
+
- Chinese documentation now matches the new layout-hygiene guidance instead of mixing untranslated preset instructions
|
|
18
|
+
|
|
7
19
|
## v0.1.13 - 2026-03-27
|
|
8
20
|
|
|
9
21
|
### Changed
|
package/README.md
CHANGED
|
@@ -27,7 +27,7 @@ This workflow is intended for:
|
|
|
27
27
|
|
|
28
28
|
Latest published npm package:
|
|
29
29
|
|
|
30
|
-
- `@xenonbyte/da-vinci-workflow@0.1.
|
|
30
|
+
- `@xenonbyte/da-vinci-workflow@0.1.14`
|
|
31
31
|
|
|
32
32
|
Release highlights:
|
|
33
33
|
|
|
@@ -35,6 +35,7 @@ Release highlights:
|
|
|
35
35
|
- cross-platform near-name adapters such as `frontend-skill` and `frontend-design` are now treated as distinct unless the current environment explicitly resolves them
|
|
36
36
|
- complex `redesign-from-code` runs now require a visual thesis, content plan, interaction thesis, and anchor-surface structural-delta notes before broad Pencil generation
|
|
37
37
|
- screenshot review is now documented as a binding gate; analysis that reports hierarchy, spacing, clarity, or inconsistency issues cannot be treated as an automatic pass
|
|
38
|
+
- form-factor-specific layout hygiene is now documented as a separate hard gate from `Visual Assist`, with blocker conditions for mobile, tablet, desktop, and web review
|
|
38
39
|
- `.da-vinci/designs/` is now documented more strictly as a `.pen`-only directory, and project-local `.pen` persistence must be verified as shell-visible immediately after the first Pencil write
|
|
39
40
|
- multi-surface redesign guidance now requires a shared primitive family to be defined from approved anchor surfaces before broad page expansion
|
|
40
41
|
- Pencil generation guidance now explicitly rejects web-only properties such as `flex` and `margin`
|
|
@@ -116,6 +117,7 @@ Recommended default:
|
|
|
116
117
|
- visual contract refinement
|
|
117
118
|
- page composition
|
|
118
119
|
- hierarchy and spacing
|
|
120
|
+
- anchor-surface composition
|
|
119
121
|
- Pencil design refinement
|
|
120
122
|
- Fallback:
|
|
121
123
|
- native-da-vinci
|
|
@@ -141,6 +143,7 @@ Quality-first redesign configuration:
|
|
|
141
143
|
- page composition
|
|
142
144
|
- hierarchy and spacing
|
|
143
145
|
- motion guidance
|
|
146
|
+
- anchor-surface composition
|
|
144
147
|
- Pencil design refinement
|
|
145
148
|
- Fallback:
|
|
146
149
|
- native-da-vinci
|
|
@@ -158,8 +161,10 @@ Selection rules:
|
|
|
158
161
|
|
|
159
162
|
- keep `ui-ux-pro-max` first for dense app and dashboard surfaces when the visual bar is moderate
|
|
160
163
|
- move `frontend-skill` to the first slot when art direction, composition quality, and premium visual hierarchy matter more
|
|
164
|
+
- write actual installed adapter names for the current environment instead of assuming cross-platform aliases
|
|
161
165
|
- when `Preferred adapters` are configured, the resolved primary adapter should actively lead the first design pass instead of being recorded only for traceability
|
|
162
166
|
- state the resolved primary adapter explicitly at runtime and name any requested adapters that are unavailable
|
|
167
|
+
- treat form-factor-specific layout hygiene as a separate hard gate from `Visual Assist`; adapter choice does not override mobile/tablet/desktop/web review failures
|
|
163
168
|
- do not assume cross-platform equivalence between near-name adapters
|
|
164
169
|
- write a visual thesis, content plan, and interaction thesis before the first anchor surface
|
|
165
170
|
- use Pencil guides as platform/buildability constraints, not as the main art-direction source
|
package/README.zh-CN.md
CHANGED
|
@@ -29,7 +29,7 @@ Da Vinci 是一个把产品需求一路推进到结构化规格、Pencil 设计
|
|
|
29
29
|
|
|
30
30
|
最新已发布 npm 包:
|
|
31
31
|
|
|
32
|
-
- `@xenonbyte/da-vinci-workflow@0.1.
|
|
32
|
+
- `@xenonbyte/da-vinci-workflow@0.1.14`
|
|
33
33
|
|
|
34
34
|
已发布版本重点:
|
|
35
35
|
|
|
@@ -37,6 +37,7 @@ Da Vinci 是一个把产品需求一路推进到结构化规格、Pencil 设计
|
|
|
37
37
|
- `frontend-skill`、`frontend-design` 这类跨平台近名 adapter 现在明确视为不同能力源,除非当前环境真的解析到了它们
|
|
38
38
|
- 复杂 `redesign-from-code` 现在要求在大规模 Pencil 设计前先写 visual thesis、content plan、interaction thesis 和 anchor surface 的 structural-delta 说明
|
|
39
39
|
- screenshot review 现在被明确强调为硬闸门;只要分析指出 hierarchy、spacing、clarity 或 inconsistency 问题,就不能自动判通过
|
|
40
|
+
- form factor 专用的 layout hygiene 现在被定义成独立于 `Visual Assist` 的硬闸门,mobile、tablet、desktop、web 都有各自的 blocker 条件
|
|
40
41
|
- `.da-vinci/designs/` 现在更明确只用于放 `.pen` 文件,而且第一次 Pencil 写入后就要验证对应 `.pen` 已经成为 shell 可见文件
|
|
41
42
|
- 多 surface 重设计现在要求先从已通过的 anchor surface 中抽出 shared primitive family,再扩展更多页面
|
|
42
43
|
- Pencil 生成规则现在明确拒绝 `flex`、`margin` 这类 Web 属性
|
|
@@ -121,6 +122,7 @@ Da Vinci V2 支持四种模式:
|
|
|
121
122
|
- visual contract refinement
|
|
122
123
|
- page composition
|
|
123
124
|
- hierarchy and spacing
|
|
125
|
+
- anchor-surface composition
|
|
124
126
|
- Pencil design refinement
|
|
125
127
|
- Fallback:
|
|
126
128
|
- native-da-vinci
|
|
@@ -146,6 +148,7 @@ Da Vinci V2 支持四种模式:
|
|
|
146
148
|
- page composition
|
|
147
149
|
- hierarchy and spacing
|
|
148
150
|
- motion guidance
|
|
151
|
+
- anchor-surface composition
|
|
149
152
|
- Pencil design refinement
|
|
150
153
|
- Fallback:
|
|
151
154
|
- native-da-vinci
|
|
@@ -163,8 +166,10 @@ Da Vinci V2 支持四种模式:
|
|
|
163
166
|
|
|
164
167
|
- 高密度 app、dashboard、工具型界面,且视觉要求中等时,优先把 `ui-ux-pro-max` 放第一位
|
|
165
168
|
- 如果更重视 art direction、构图和高级感,就把 `frontend-skill` 放第一位
|
|
169
|
+
- `Preferred adapters` 里要写当前环境里真实存在的 adapter 名,不要默认套用跨平台别名
|
|
166
170
|
- 一旦配置了 `Preferred adapters`,解析出来的主 adapter 应该真正主导首轮设计,而不是只登记在工件里
|
|
167
171
|
- 运行时必须明确写出解析出来的主 adapter,以及哪些请求的 adapter 当前不可用
|
|
172
|
+
- form factor 专用的 layout hygiene 是独立于 `Visual Assist` 的硬闸门;adapter 选择不能覆盖 mobile、tablet、desktop、web 的版式失败条件
|
|
168
173
|
- 不要默认把跨平台的近名 adapter 当成同一个能力源
|
|
169
174
|
- 在第一个 anchor surface 之前,先写 visual thesis、content plan 和 interaction thesis
|
|
170
175
|
- Pencil 的 guide 只应该约束平台布局和可实现性,不应该替代主 adapter 成为设计方向来源
|
package/SKILL.md
CHANGED
|
@@ -225,6 +225,7 @@ During active Pencil work:
|
|
|
225
225
|
- after the first successful Pencil write, verify that the registered project-local `.pen` path exists as a shell-visible file before treating the design source as persistent
|
|
226
226
|
- use only Pencil-supported properties; do not emit web- or CSS-only layout properties such as `flex` or `margin`
|
|
227
227
|
- on complex redesigns, turn approved anchor surfaces into a small shared primitive family before broad page expansion
|
|
228
|
+
- apply the resolved form-factor-specific layout hygiene profile before passing screenshot review on any anchor surface or other approval candidate
|
|
228
229
|
- screenshot review is binding: if the review calls out hierarchy, spacing, clarity, inconsistency, or unresolved-placeholder issues, revise the screen before treating the checkpoint as `PASS`
|
|
229
230
|
|
|
230
231
|
## Load References On Demand
|
|
@@ -235,6 +236,7 @@ Load only the reference that matches the current step:
|
|
|
235
236
|
- Read `references/artifact-templates.md` when creating or updating workflow artifacts
|
|
236
237
|
- Read `references/checkpoints.md` when running or reporting checkpoints
|
|
237
238
|
- Read `references/design-inputs.md` when collecting product form factor, style, and constraints
|
|
239
|
+
- Read `references/layout-hygiene.md` when screenshot review or the design checkpoint needs form-factor-specific layout hygiene rules
|
|
238
240
|
- Read `references/page-mapping.md` when defining project pages, Pencil pages, and route-to-screen bindings
|
|
239
241
|
- Read `references/pencil-design-to-code.md` when turning Pencil data into implementation
|
|
240
242
|
- Read `references/platform-adapters.md` when guiding users on Codex, Claude, or Gemini invocation patterns
|
|
@@ -25,6 +25,7 @@ Design rule:
|
|
|
25
25
|
|
|
26
26
|
- prompt presets define workflow intent, decomposition rules, and truth-source handling
|
|
27
27
|
- visual-assist presets define UI-design helper preferences
|
|
28
|
+
- form-factor-specific layout hygiene remains a separate hard gate that screenshot review must apply before a screen passes
|
|
28
29
|
- use both together for the strongest result
|
|
29
30
|
|
|
30
31
|
Each scene preset should now include:
|
|
@@ -46,6 +46,7 @@ Treat the resolved primary visual adapter as the first-pass design lead.
|
|
|
46
46
|
Use Pencil guides only as workspace constraints, not as the design direction.
|
|
47
47
|
Do not start with broad multi-screen scaffolding.
|
|
48
48
|
Design 1-3 anchor surfaces first, review screenshots, then expand.
|
|
49
|
+
Apply the form-factor-specific layout hygiene rules for desktop before passing screenshot review.
|
|
49
50
|
Do not pass design checkpoint if the result is a repeated placeholder scaffold, flat panel soup, or a recolor of the old desktop shell.
|
|
50
51
|
Persist project-local Pencil files under .da-vinci/designs/.
|
|
51
52
|
```
|
|
@@ -50,6 +50,7 @@ Do not start with broad multi-screen scaffolding.
|
|
|
50
50
|
Design 1-3 anchor surfaces first, review screenshots, then expand.
|
|
51
51
|
For each anchor surface, explain how the new composition differs structurally from the current layout.
|
|
52
52
|
Do not treat screenshot analysis as an automatic pass if it reports hierarchy, spacing, clarity, or inconsistency issues.
|
|
53
|
+
Apply the form-factor-specific layout hygiene rules for mobile before passing screenshot review.
|
|
53
54
|
Use only Pencil-supported properties; do not use web-only props like flex or margin.
|
|
54
55
|
Verify the registered project-local `.pen` file exists as a shell-visible file after the first Pencil write.
|
|
55
56
|
Keep non-`.pen` workflow artifacts out of `.da-vinci/designs/`.
|
|
@@ -46,6 +46,7 @@ Treat the resolved primary visual adapter as the first-pass design lead.
|
|
|
46
46
|
Use Pencil guides only as tablet-layout constraints, not as the design direction.
|
|
47
47
|
Do not start with broad multi-screen scaffolding.
|
|
48
48
|
Design 1-3 anchor surfaces first, review screenshots, then expand.
|
|
49
|
+
Apply the form-factor-specific layout hygiene rules for tablet before passing screenshot review.
|
|
49
50
|
Do not pass design checkpoint if the result collapses into a stretched phone layout, repeated placeholders, or weak multi-region hierarchy.
|
|
50
51
|
Persist project-local Pencil files under .da-vinci/designs/.
|
|
51
52
|
```
|
|
@@ -47,6 +47,7 @@ Treat the resolved primary visual adapter as the first-pass design lead.
|
|
|
47
47
|
Use Pencil guides only as responsive layout constraints, not as the design direction.
|
|
48
48
|
Do not start with broad multi-screen scaffolding.
|
|
49
49
|
Design 1-3 anchor surfaces first, review screenshots, then expand.
|
|
50
|
+
Apply the form-factor-specific layout hygiene rules for web before passing screenshot review.
|
|
50
51
|
Do not pass design checkpoint if the result is a generic SaaS card grid, repeated placeholder scaffolds, or a recolor of the old interface.
|
|
51
52
|
Persist project-local Pencil files under .da-vinci/designs/.
|
|
52
53
|
```
|
package/docs/visual-adapters.md
CHANGED
|
@@ -24,6 +24,11 @@ It must not redefine:
|
|
|
24
24
|
|
|
25
25
|
Those still come from requirements, existing code, `page-map.md`, and `pencil-bindings.md`.
|
|
26
26
|
|
|
27
|
+
Visual adapters also do not replace form-factor-specific layout-hygiene rules.
|
|
28
|
+
|
|
29
|
+
- adapters shape art direction
|
|
30
|
+
- layout hygiene decides whether a reviewed screen is structurally sound for its form factor
|
|
31
|
+
|
|
27
32
|
## Where To Configure It
|
|
28
33
|
|
|
29
34
|
Configure visual-adapter preferences inside `DA-VINCI.md`.
|
|
@@ -49,6 +54,7 @@ Recommended shape:
|
|
|
49
54
|
- page composition
|
|
50
55
|
- hierarchy and spacing
|
|
51
56
|
- motion guidance
|
|
57
|
+
- anchor-surface composition
|
|
52
58
|
- Pencil design refinement
|
|
53
59
|
- Fallback:
|
|
54
60
|
- native-da-vinci
|
|
@@ -71,6 +77,7 @@ Balanced default:
|
|
|
71
77
|
- visual contract refinement
|
|
72
78
|
- page composition
|
|
73
79
|
- hierarchy and spacing
|
|
80
|
+
- anchor-surface composition
|
|
74
81
|
- Pencil design refinement
|
|
75
82
|
- Fallback:
|
|
76
83
|
- native-da-vinci
|
|
@@ -95,6 +102,7 @@ Quality-first redesign:
|
|
|
95
102
|
- page composition
|
|
96
103
|
- hierarchy and spacing
|
|
97
104
|
- motion guidance
|
|
105
|
+
- anchor-surface composition
|
|
98
106
|
- Pencil design refinement
|
|
99
107
|
- Fallback:
|
|
100
108
|
- native-da-vinci
|
|
@@ -120,6 +128,7 @@ Use the fields like this:
|
|
|
120
128
|
- `Scope`
|
|
121
129
|
- the only areas where adapters are allowed to influence the workflow
|
|
122
130
|
- keep this limited to presentation-quality work such as composition, spacing, and Pencil refinement
|
|
131
|
+
- include anchor-surface composition when the redesign depends on a strong first-pass visual direction
|
|
123
132
|
- do not use this field to delegate behavior, routes, or state truth
|
|
124
133
|
- `Fallback`
|
|
125
134
|
- what Da Vinci should do if the preferred adapters are unavailable locally
|
|
@@ -20,6 +20,7 @@ If the project is design-critical or previous outputs were weak, generic, or too
|
|
|
20
20
|
- consider `Require Adapter: true`
|
|
21
21
|
- raise the design checkpoint bar before broad Pencil generation
|
|
22
22
|
- switch to anchor-first generation: design 1-3 anchor surfaces, review screenshots, then expand
|
|
23
|
+
- update `Preferred adapters` to the actual installed names for the current environment instead of assuming cross-platform aliases
|
|
23
24
|
|
|
24
25
|
Available presets:
|
|
25
26
|
|
|
@@ -33,5 +34,6 @@ How to use them:
|
|
|
33
34
|
1. choose the preset closest to the product surface
|
|
34
35
|
2. copy the `## Visual Assist` block into `DA-VINCI.md`
|
|
35
36
|
3. adjust adapter order only if the project clearly needs a different visual bias
|
|
36
|
-
4.
|
|
37
|
-
5.
|
|
37
|
+
4. replace adapter names with the actual installed names for the current environment when they differ
|
|
38
|
+
5. keep `Require Adapter: false` unless the project truly must stop without a specific local skill
|
|
39
|
+
6. for complex redesigns, do not treat the preset alone as enough; pair it with anchor-first Pencil generation and screenshot review
|
|
@@ -21,6 +21,7 @@ Recommended `DA-VINCI.md` block:
|
|
|
21
21
|
- workspace composition
|
|
22
22
|
- hierarchy and spacing
|
|
23
23
|
- motion guidance
|
|
24
|
+
- anchor-surface composition
|
|
24
25
|
- Pencil design refinement
|
|
25
26
|
- Fallback:
|
|
26
27
|
- native-da-vinci
|
|
@@ -31,6 +32,7 @@ Recommended `DA-VINCI.md` block:
|
|
|
31
32
|
Notes:
|
|
32
33
|
|
|
33
34
|
- prefer `ui-ux-pro-max` first for dense app layout decisions
|
|
35
|
+
- replace adapter names with the actual installed names for the current environment when they differ
|
|
34
36
|
- keep section hierarchy stronger than decorative treatment
|
|
35
37
|
- use `frontend-skill` only as a secondary visual-quality helper, not as a marketing-style override
|
|
36
38
|
- if the result looks flat, over-boxed, or too generic, move `frontend-skill` to the first slot and raise the design checkpoint bar
|
|
@@ -21,6 +21,7 @@ Recommended `DA-VINCI.md` block:
|
|
|
21
21
|
- mobile page composition
|
|
22
22
|
- hierarchy and spacing
|
|
23
23
|
- touch-first motion guidance
|
|
24
|
+
- anchor-surface composition
|
|
24
25
|
- Pencil design refinement
|
|
25
26
|
- Fallback:
|
|
26
27
|
- native-da-vinci
|
|
@@ -31,6 +32,7 @@ Recommended `DA-VINCI.md` block:
|
|
|
31
32
|
Notes:
|
|
32
33
|
|
|
33
34
|
- prefer `ui-ux-pro-max` first for app-surface density and control balance
|
|
35
|
+
- replace adapter names with the actual installed names for the current environment when they differ
|
|
34
36
|
- keep motion guidance light and purposeful
|
|
35
37
|
- do not let the adapter turn routine mobile product UI into a marketing page
|
|
36
38
|
- if the output keeps collapsing into generic cards or weak hierarchy, move `frontend-skill` to the first slot and consider `Require Adapter: true`
|
|
@@ -21,6 +21,7 @@ Recommended `DA-VINCI.md` block:
|
|
|
21
21
|
- tablet page composition
|
|
22
22
|
- hierarchy and spacing
|
|
23
23
|
- touch-aware motion guidance
|
|
24
|
+
- anchor-surface composition
|
|
24
25
|
- Pencil design refinement
|
|
25
26
|
- Fallback:
|
|
26
27
|
- native-da-vinci
|
|
@@ -31,6 +32,7 @@ Recommended `DA-VINCI.md` block:
|
|
|
31
32
|
Notes:
|
|
32
33
|
|
|
33
34
|
- keep spacing more generous than desktop but more structured than phone UI
|
|
35
|
+
- replace adapter names with the actual installed names for the current environment when they differ
|
|
34
36
|
- use adapter guidance to improve split layouts, canvases, and workspace balance
|
|
35
37
|
- avoid over-compressing content into phone-like stacking
|
|
36
38
|
- if the result still feels bland or over-framed, move `frontend-skill` to the first slot and require a stronger visual thesis before Pencil work
|
|
@@ -21,6 +21,7 @@ Recommended `DA-VINCI.md` block:
|
|
|
21
21
|
- page composition
|
|
22
22
|
- hierarchy and spacing
|
|
23
23
|
- responsive motion guidance
|
|
24
|
+
- anchor-surface composition
|
|
24
25
|
- Pencil design refinement
|
|
25
26
|
- Fallback:
|
|
26
27
|
- native-da-vinci
|
|
@@ -31,6 +32,7 @@ Recommended `DA-VINCI.md` block:
|
|
|
31
32
|
Notes:
|
|
32
33
|
|
|
33
34
|
- keep `ui-ux-pro-max` first for product surfaces, dashboards, and operational UI
|
|
35
|
+
- replace adapter names with the actual installed names for the current environment when they differ
|
|
34
36
|
- if the project is more brand-led than tool-led, swap the order and put `frontend-skill` first
|
|
35
37
|
- do not let responsive polish erase product clarity
|
|
36
38
|
- if the output feels like generic SaaS filler, switch `frontend-skill` to first and tighten the visual direction in `DA-VINCI.md`
|
|
@@ -46,6 +46,7 @@ Treat the resolved primary visual adapter as the first-pass design lead.
|
|
|
46
46
|
Use Pencil guides only as workspace constraints, not as the design direction.
|
|
47
47
|
Do not start with broad multi-screen scaffolding.
|
|
48
48
|
Design 1-3 anchor surfaces first, review screenshots, then expand.
|
|
49
|
+
在通过 screenshot review 之前,先应用桌面端专用的 form-factor layout hygiene 规则。
|
|
49
50
|
Do not pass design checkpoint if the result is a repeated placeholder scaffold, flat panel soup, or a recolor of the old desktop shell.
|
|
50
51
|
Persist project-local Pencil files under .da-vinci/designs/.
|
|
51
52
|
```
|
|
@@ -50,6 +50,7 @@ Do not start with broad multi-screen scaffolding.
|
|
|
50
50
|
Design 1-3 anchor surfaces first, review screenshots, then expand.
|
|
51
51
|
For each anchor surface, explain how the new composition differs structurally from the current layout.
|
|
52
52
|
Do not treat screenshot analysis as an automatic pass if it reports hierarchy, spacing, clarity, or inconsistency issues.
|
|
53
|
+
在通过 screenshot review 之前,先应用移动端专用的 form-factor layout hygiene 规则。
|
|
53
54
|
Use only Pencil-supported properties; do not use web-only props like flex or margin.
|
|
54
55
|
Verify the registered project-local `.pen` file exists as a shell-visible file after the first Pencil write.
|
|
55
56
|
Keep non-`.pen` workflow artifacts out of `.da-vinci/designs/`.
|
|
@@ -46,6 +46,7 @@ Treat the resolved primary visual adapter as the first-pass design lead.
|
|
|
46
46
|
Use Pencil guides only as tablet-layout constraints, not as the design direction.
|
|
47
47
|
Do not start with broad multi-screen scaffolding.
|
|
48
48
|
Design 1-3 anchor surfaces first, review screenshots, then expand.
|
|
49
|
+
在通过 screenshot review 之前,先应用平板端专用的 form-factor layout hygiene 规则。
|
|
49
50
|
Do not pass design checkpoint if the result collapses into a stretched phone layout, repeated placeholders, or weak multi-region hierarchy.
|
|
50
51
|
Persist project-local Pencil files under .da-vinci/designs/.
|
|
51
52
|
```
|
|
@@ -47,6 +47,7 @@ Treat the resolved primary visual adapter as the first-pass design lead.
|
|
|
47
47
|
Use Pencil guides only as responsive layout constraints, not as the design direction.
|
|
48
48
|
Do not start with broad multi-screen scaffolding.
|
|
49
49
|
Design 1-3 anchor surfaces first, review screenshots, then expand.
|
|
50
|
+
在通过 screenshot review 之前,先应用 Web 专用的 form-factor layout hygiene 规则。
|
|
50
51
|
Do not pass design checkpoint if the result is a generic SaaS card grid, repeated placeholder scaffolds, or a recolor of the old interface.
|
|
51
52
|
Persist project-local Pencil files under .da-vinci/designs/.
|
|
52
53
|
```
|
|
@@ -26,6 +26,11 @@ visual adapter 是可选的 presentation 质量增强层。
|
|
|
26
26
|
|
|
27
27
|
这些仍然由 requirements、existing code、`page-map.md` 和 `pencil-bindings.md` 决定。
|
|
28
28
|
|
|
29
|
+
visual adapter 也不能替代按 form factor 执行的 layout hygiene 规则。
|
|
30
|
+
|
|
31
|
+
- adapter 负责 art direction
|
|
32
|
+
- layout hygiene 负责判断当前 screen 对于其 form factor 是否结构上合格
|
|
33
|
+
|
|
29
34
|
## 应该配置在哪里
|
|
30
35
|
|
|
31
36
|
把 visual adapter 偏好写在 `DA-VINCI.md` 里。
|
|
@@ -51,6 +56,7 @@ visual adapter 是可选的 presentation 质量增强层。
|
|
|
51
56
|
- page composition
|
|
52
57
|
- hierarchy and spacing
|
|
53
58
|
- motion guidance
|
|
59
|
+
- anchor-surface composition
|
|
54
60
|
- Pencil design refinement
|
|
55
61
|
- Fallback:
|
|
56
62
|
- native-da-vinci
|
|
@@ -73,6 +79,7 @@ visual adapter 是可选的 presentation 质量增强层。
|
|
|
73
79
|
- visual contract refinement
|
|
74
80
|
- page composition
|
|
75
81
|
- hierarchy and spacing
|
|
82
|
+
- anchor-surface composition
|
|
76
83
|
- Pencil design refinement
|
|
77
84
|
- Fallback:
|
|
78
85
|
- native-da-vinci
|
|
@@ -97,6 +104,7 @@ visual adapter 是可选的 presentation 质量增强层。
|
|
|
97
104
|
- page composition
|
|
98
105
|
- hierarchy and spacing
|
|
99
106
|
- motion guidance
|
|
107
|
+
- anchor-surface composition
|
|
100
108
|
- Pencil design refinement
|
|
101
109
|
- Fallback:
|
|
102
110
|
- native-da-vinci
|
|
@@ -122,6 +130,7 @@ visual adapter 是可选的 presentation 质量增强层。
|
|
|
122
130
|
- `Scope`
|
|
123
131
|
- adapter 被允许影响的范围
|
|
124
132
|
- 应该限制在构图、层级、spacing、Pencil refinement 这类 presentation 质量问题
|
|
133
|
+
- 当重设计高度依赖首轮视觉质量时,也应该把 anchor-surface composition 明确写进 `Scope`
|
|
125
134
|
- 不要把 behavior、route、state truth 交给它
|
|
126
135
|
- `Fallback`
|
|
127
136
|
- 当本地没有可用 adapter 时应该怎么处理
|
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
- 视情况把 `Require Adapter` 改成 `true`
|
|
21
21
|
- 在大规模 Pencil 设计前先把 design checkpoint 门槛抬高
|
|
22
22
|
- 改成 anchor-first:先做 1 到 3 个 anchor surface,截图审查通过后再扩展
|
|
23
|
+
- 把 `Preferred adapters` 改成当前环境里真实存在的 adapter 名,不要默认沿用跨平台别名
|
|
23
24
|
|
|
24
25
|
可用模板:
|
|
25
26
|
|
|
@@ -32,6 +33,7 @@
|
|
|
32
33
|
|
|
33
34
|
1. 先选最接近当前产品形态的模板
|
|
34
35
|
2. 把其中的 `## Visual Assist` 片段复制到 `DA-VINCI.md`
|
|
35
|
-
3.
|
|
36
|
-
4.
|
|
37
|
-
5.
|
|
36
|
+
3. 如果当前环境里的 adapter 名不同,先把 `Preferred adapters` 改成真实可用名称
|
|
37
|
+
4. 只有在项目真的有不同视觉偏向时才调整 adapter 顺序
|
|
38
|
+
5. 除非确实“没有某个本地 skill 就不能继续”,否则保持 `Require Adapter: false`
|
|
39
|
+
6. 如果是复杂重设计,不要只复制 preset 就开画;还要配合 anchor-first 的 Pencil 生成策略
|
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
- workspace composition
|
|
19
19
|
- hierarchy and spacing
|
|
20
20
|
- motion guidance
|
|
21
|
+
- anchor-surface composition
|
|
21
22
|
- Pencil design refinement
|
|
22
23
|
- Fallback:
|
|
23
24
|
- native-da-vinci
|
|
@@ -28,5 +29,6 @@
|
|
|
28
29
|
说明:
|
|
29
30
|
|
|
30
31
|
- 优先用 `ui-ux-pro-max` 做高密度 app 布局判断
|
|
32
|
+
- 如果当前环境里的 adapter 名不一样,先改成真实可用名称
|
|
31
33
|
- `frontend-skill` 更适合作为辅助,不要反过来把工具界面做成营销页
|
|
32
34
|
- 如果结果太平、太盒子化、太像通用后台,就把 `frontend-skill` 调到第一位,并提高 design checkpoint 的要求
|
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
- mobile page composition
|
|
18
18
|
- hierarchy and spacing
|
|
19
19
|
- touch-first motion guidance
|
|
20
|
+
- anchor-surface composition
|
|
20
21
|
- Pencil design refinement
|
|
21
22
|
- Fallback:
|
|
22
23
|
- native-da-vinci
|
|
@@ -27,5 +28,6 @@
|
|
|
27
28
|
说明:
|
|
28
29
|
|
|
29
30
|
- `ui-ux-pro-max` 更适合移动端 app 表面的密度和平衡
|
|
31
|
+
- 如果当前环境里的 adapter 名不一样,先改成真实可用名称
|
|
30
32
|
- motion 要轻,不要把普通 app 页面做成营销页
|
|
31
33
|
- 如果结果总是变成泛化卡片堆砌或层级太弱,就把 `frontend-skill` 调到第一位,并考虑把 `Require Adapter` 改成 `true`
|
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
- tablet page composition
|
|
18
18
|
- hierarchy and spacing
|
|
19
19
|
- touch-aware motion guidance
|
|
20
|
+
- anchor-surface composition
|
|
20
21
|
- Pencil design refinement
|
|
21
22
|
- Fallback:
|
|
22
23
|
- native-da-vinci
|
|
@@ -27,5 +28,6 @@
|
|
|
27
28
|
说明:
|
|
28
29
|
|
|
29
30
|
- spacing 一般要比手机更舒展,但又不能像桌面端那样过密
|
|
31
|
+
- 如果当前环境里的 adapter 名不一样,先改成真实可用名称
|
|
30
32
|
- 更适合用 adapter 去辅助分栏、画布区和主次区域的平衡
|
|
31
33
|
- 如果结果还是寡淡或被边框框死,就把 `frontend-skill` 调到第一位,并要求在 Pencil 设计前先写清楚 visual thesis
|
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
- page composition
|
|
19
19
|
- hierarchy and spacing
|
|
20
20
|
- responsive motion guidance
|
|
21
|
+
- anchor-surface composition
|
|
21
22
|
- Pencil design refinement
|
|
22
23
|
- Fallback:
|
|
23
24
|
- native-da-vinci
|
|
@@ -28,5 +29,6 @@
|
|
|
28
29
|
说明:
|
|
29
30
|
|
|
30
31
|
- 如果是典型 product UI,优先 `ui-ux-pro-max`
|
|
32
|
+
- 如果当前环境里的 adapter 名不一样,先改成真实可用名称
|
|
31
33
|
- 如果页面更偏品牌表达或强视觉,可以把 `frontend-skill` 放前面
|
|
32
34
|
- 如果结果像很普通的 SaaS 模板,就把 `frontend-skill` 提到第一位,并把 `DA-VINCI.md` 的视觉方向写得更具体
|
|
@@ -40,7 +40,10 @@ Live design source used for this forward test:
|
|
|
40
40
|
Visual adapter used for this forward test:
|
|
41
41
|
|
|
42
42
|
- requested adapters: `frontend-skill`, `ui-ux-pro-max`
|
|
43
|
+
- available requested adapters: `frontend-skill`, `ui-ux-pro-max`
|
|
44
|
+
- unavailable requested adapters: none
|
|
43
45
|
- resolved primary adapter: `frontend-skill`
|
|
46
|
+
- runtime declaration: explicit before first anchor pass
|
|
44
47
|
- fallback: `native-da-vinci` if no local adapter were available
|
|
45
48
|
|
|
46
49
|
Important note:
|
|
@@ -10,9 +10,12 @@
|
|
|
10
10
|
|
|
11
11
|
## Visual Adapter Resolution
|
|
12
12
|
- Requested adapters: `frontend-skill`, `ui-ux-pro-max`
|
|
13
|
+
- Available requested adapters: `frontend-skill`, `ui-ux-pro-max`
|
|
14
|
+
- Unavailable requested adapters: none
|
|
13
15
|
- Resolved primary adapter: `frontend-skill`
|
|
14
16
|
- Secondary helpers: none
|
|
15
17
|
- Status: active
|
|
18
|
+
- Runtime declaration: explicitly stated before first anchor pass
|
|
16
19
|
- Scope: `DA-VINCI.md`, `design.md`, `pencil-design.md`
|
|
17
20
|
- Fallback reason if native Da Vinci rules were used: none
|
|
18
21
|
|
|
@@ -8,8 +8,12 @@
|
|
|
8
8
|
- `MarkupFlow Product Detail`
|
|
9
9
|
|
|
10
10
|
## Visual Adapter Use
|
|
11
|
+
- Available requested adapters: `frontend-skill`, `ui-ux-pro-max`
|
|
12
|
+
- Unavailable requested adapters: none
|
|
11
13
|
- Resolved primary adapter: `frontend-skill`
|
|
12
14
|
- Secondary helpers: none
|
|
15
|
+
- Whether runtime execution explicitly declared the resolved primary adapter: yes
|
|
16
|
+
- Whether the primary adapter actively led the first-pass composition: yes
|
|
13
17
|
- How it affected composition, hierarchy, or motion guidance:
|
|
14
18
|
- stronger hero anchor for the desktop-product story
|
|
15
19
|
- restrained panel treatment instead of generic card grids
|
package/package.json
CHANGED
|
@@ -175,8 +175,8 @@ Use this structure:
|
|
|
175
175
|
|
|
176
176
|
Field meaning:
|
|
177
177
|
|
|
178
|
-
- `Preferred adapters`: desired local-skill priority order
|
|
179
|
-
- `Scope`: allowed presentation-quality influence areas only
|
|
178
|
+
- `Preferred adapters`: desired local-skill priority order using adapter names that actually exist in the current environment
|
|
179
|
+
- `Scope`: allowed presentation-quality influence areas only, including anchor-surface composition when redesign quality matters
|
|
180
180
|
- `Fallback`: what to do when preferred adapters are unavailable
|
|
181
181
|
- `Require Adapter`: whether missing adapters should block the workflow
|
|
182
182
|
|
|
@@ -214,6 +214,11 @@ Use this structure:
|
|
|
214
214
|
- workspace density
|
|
215
215
|
- responsiveness expectations
|
|
216
216
|
|
|
217
|
+
## Layout Hygiene Profile
|
|
218
|
+
- Resolved profile: mobile / tablet / desktop / web
|
|
219
|
+
- Per-surface overrides when mixed product surfaces require them
|
|
220
|
+
- Blocker classes to watch during screenshot review
|
|
221
|
+
|
|
217
222
|
## Notes
|
|
218
223
|
- explicit user preferences
|
|
219
224
|
- inferred preferences
|
|
@@ -483,7 +488,9 @@ Use this structure:
|
|
|
483
488
|
- Which 1-3 anchor screens were designed first
|
|
484
489
|
- Structural-delta summary for each anchor surface
|
|
485
490
|
- Screenshot review status for each anchor
|
|
491
|
+
- Applied layout-hygiene profile for each reviewed anchor surface
|
|
486
492
|
- Whether screenshot review found hierarchy, spacing, clarity, or inconsistency issues
|
|
493
|
+
- Whether screenshot review found blocker-level layout-hygiene issues
|
|
487
494
|
- Whether each anchor was revised after screenshot review
|
|
488
495
|
- Whether broad multi-screen expansion is approved yet
|
|
489
496
|
|
|
@@ -48,6 +48,7 @@ Check:
|
|
|
48
48
|
- the active mode is correct
|
|
49
49
|
- the starting material is stable enough to write specs
|
|
50
50
|
- product form factor and visual direction are known, inferred, or explicitly deferred
|
|
51
|
+
- the form factor is specific enough to resolve the active layout-hygiene profile before screenshot review begins
|
|
51
52
|
- candidate pages or current pages are clear enough to move into `page-map.md`
|
|
52
53
|
- open questions are explicitly tracked
|
|
53
54
|
- workflow artifacts are being written to standard locations, especially keeping `.da-vinci/designs/` for `.pen` files rather than markdown notes
|
|
@@ -101,6 +102,7 @@ Check:
|
|
|
101
102
|
- when a primary adapter is active, the workflow wrote a visual thesis, content plan, and interaction thesis before broad anchor-surface generation
|
|
102
103
|
- complex redesigns have 1-3 fully composed anchor surfaces reviewed before broad multi-screen expansion
|
|
103
104
|
- each anchor surface includes a short explanation of how its composition differs structurally from the current layout truth
|
|
105
|
+
- the relevant form-factor-specific layout-hygiene profile was applied to each reviewed anchor surface and any other screen being treated as approval-ready
|
|
104
106
|
- each page has a clear visual anchor or primary working surface
|
|
105
107
|
- section hierarchy is readable without relying on decorative chrome
|
|
106
108
|
- the design does not collapse into generic card-grid or border-heavy filler UI
|
|
@@ -122,6 +124,7 @@ Automatic failures:
|
|
|
122
124
|
- if more than roughly 20% of a screen's primary content area is unresolved placeholder scaffolding, treat the design checkpoint as `BLOCK`
|
|
123
125
|
- if multiple screens are effectively the same scaffold with title changes, treat the design checkpoint as `BLOCK`
|
|
124
126
|
- if screenshot review or image analysis calls out hierarchy, spacing, clarity, inconsistency, or unresolved-placeholder issues and the workflow marks the screen as passed without revision, treat the design checkpoint as `BLOCK`
|
|
127
|
+
- if any blocker-level condition from the active form-factor-specific layout-hygiene profile is present on a reviewed screen, treat the design checkpoint as `BLOCK`
|
|
125
128
|
- if a redesign screen materially mirrors the current XML grouping with only recolor, spacing tweaks, or minor rearrangement, treat the design checkpoint as `BLOCK`
|
|
126
129
|
|
|
127
130
|
## `design-source checkpoint`
|
|
@@ -72,6 +72,11 @@ Collect or infer:
|
|
|
72
72
|
- whether adapter use is required or optional
|
|
73
73
|
- fallback expectation when adapters are unavailable
|
|
74
74
|
|
|
75
|
+
6. layout hygiene profile
|
|
76
|
+
- resolved from the product form factor
|
|
77
|
+
- per-surface override only when the product intentionally mixes different surface classes
|
|
78
|
+
- blocker classes that must fail screenshot review
|
|
79
|
+
|
|
75
80
|
## Inference Order
|
|
76
81
|
|
|
77
82
|
Infer in this order:
|
|
@@ -97,6 +102,8 @@ Examples:
|
|
|
97
102
|
|
|
98
103
|
Write stable answers into `design-brief.md`.
|
|
99
104
|
|
|
105
|
+
Record the resolved layout-hygiene profile there as well, including any intentional per-surface overrides for mixed products.
|
|
106
|
+
|
|
100
107
|
If `DA-VINCI.md` did not already exist, generate it from those stable answers and save it as the project visual baseline.
|
|
101
108
|
|
|
102
109
|
If Pencil creates or updates a baseline during the workflow:
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
# Layout Hygiene
|
|
2
|
+
|
|
3
|
+
Use this reference when screenshot review or the design checkpoint needs form-factor-specific layout hygiene rules.
|
|
4
|
+
|
|
5
|
+
This layer is separate from `Visual Assist`.
|
|
6
|
+
|
|
7
|
+
- visual adapters decide art direction and composition quality
|
|
8
|
+
- layout hygiene decides whether a screen is structurally healthy enough to expand or implement
|
|
9
|
+
|
|
10
|
+
## Resolution Rule
|
|
11
|
+
|
|
12
|
+
Apply exactly one primary hygiene profile to each reviewed surface:
|
|
13
|
+
|
|
14
|
+
1. mobile
|
|
15
|
+
2. tablet
|
|
16
|
+
3. desktop
|
|
17
|
+
4. web
|
|
18
|
+
|
|
19
|
+
Use the resolved project form factor from `DA-VINCI.md`, `design-brief.md`, or stable codebase signals.
|
|
20
|
+
|
|
21
|
+
For mixed products:
|
|
22
|
+
|
|
23
|
+
- apply the dominant profile per surface
|
|
24
|
+
- record surface-specific exceptions in `design-brief.md` or `pencil-design.md`
|
|
25
|
+
|
|
26
|
+
## Generic Checks
|
|
27
|
+
|
|
28
|
+
Apply these checks to every reviewed surface:
|
|
29
|
+
|
|
30
|
+
- no clipped or edge-colliding primary content
|
|
31
|
+
- no unexplained whitespace bands that break the screen's visual balance
|
|
32
|
+
- a clear dominant working surface or anchor
|
|
33
|
+
- aligned top-chrome rhythm across related screens
|
|
34
|
+
- spacing rhythm that does not bunch one region while leaving another region visually empty
|
|
35
|
+
- screenshot review findings must be interpreted, not treated as an automatic pass
|
|
36
|
+
|
|
37
|
+
## Severity
|
|
38
|
+
|
|
39
|
+
Use these result levels:
|
|
40
|
+
|
|
41
|
+
- `PASS`
|
|
42
|
+
- no blocker-level hygiene failure is present
|
|
43
|
+
- `WARN`
|
|
44
|
+
- minor spacing, rhythm, or proportion issues exist, but the screen is still structurally coherent
|
|
45
|
+
- `BLOCK`
|
|
46
|
+
- any blocker-level hygiene failure exists
|
|
47
|
+
- or screenshot analysis reports hierarchy, spacing, clarity, inconsistency, clipping, or unresolved-placeholder issues and the screen is not revised
|
|
48
|
+
|
|
49
|
+
## Mobile
|
|
50
|
+
|
|
51
|
+
Use for phone-first app screens.
|
|
52
|
+
|
|
53
|
+
Check:
|
|
54
|
+
|
|
55
|
+
- top inset and safe-area rhythm are respected unless the screen is intentionally full-bleed
|
|
56
|
+
- the first content band does not begin flush against the top edge without a clear chrome strategy
|
|
57
|
+
- the main task area is vertically balanced against top chrome and bottom actions
|
|
58
|
+
- bottom trays and action rows do not crowd the main content
|
|
59
|
+
- header and title start lines are consistent across related screens
|
|
60
|
+
|
|
61
|
+
Treat as `BLOCK` when:
|
|
62
|
+
|
|
63
|
+
- top content is visibly pinned to the edge without an intentional full-bleed reason
|
|
64
|
+
- a large unexplained void appears above or within the primary task area
|
|
65
|
+
- a bottom action tray compresses the main task area into an obviously cramped strip
|
|
66
|
+
- related anchor screens use incompatible top-chrome alignment systems
|
|
67
|
+
|
|
68
|
+
## Tablet
|
|
69
|
+
|
|
70
|
+
Use for tablet-first flows or tablet-dominant surfaces.
|
|
71
|
+
|
|
72
|
+
Check:
|
|
73
|
+
|
|
74
|
+
- panes, canvases, and supporting rails use intentional proportions
|
|
75
|
+
- gutters are consistent across primary and secondary regions
|
|
76
|
+
- the screen is not just a stretched phone layout
|
|
77
|
+
- primary and secondary regions have a clear weight relationship
|
|
78
|
+
|
|
79
|
+
Treat as `BLOCK` when:
|
|
80
|
+
|
|
81
|
+
- one side of the screen is heavily compressed while another side is mostly empty without purpose
|
|
82
|
+
- pane ratios feel accidental or unstable
|
|
83
|
+
- the layout is essentially a phone stack widened onto a tablet canvas
|
|
84
|
+
|
|
85
|
+
## Desktop
|
|
86
|
+
|
|
87
|
+
Use for desktop software and dense workspaces.
|
|
88
|
+
|
|
89
|
+
Check:
|
|
90
|
+
|
|
91
|
+
- toolbar, sidebar, workspace, and inspector edges align to a coherent system
|
|
92
|
+
- the main workspace visibly owns the screen
|
|
93
|
+
- panels feel attached to a layout system instead of floating independently
|
|
94
|
+
- chrome height and content start lines are consistent between related screens
|
|
95
|
+
|
|
96
|
+
Treat as `BLOCK` when:
|
|
97
|
+
|
|
98
|
+
- the workspace does not read as the dominant region
|
|
99
|
+
- panels feel like disconnected boxed islands or floating soup
|
|
100
|
+
- top chrome and content starts drift enough to make related screens feel structurally inconsistent
|
|
101
|
+
|
|
102
|
+
## Web
|
|
103
|
+
|
|
104
|
+
Use for browser-based product UI and marketing/product hybrids.
|
|
105
|
+
|
|
106
|
+
Check:
|
|
107
|
+
|
|
108
|
+
- header plus first viewport content fit within a coherent viewport budget
|
|
109
|
+
- max-width and gutters are disciplined
|
|
110
|
+
- responsive behavior does not collapse hierarchy
|
|
111
|
+
- the first impression is not a generic card pile
|
|
112
|
+
|
|
113
|
+
Treat as `BLOCK` when:
|
|
114
|
+
|
|
115
|
+
- header plus hero or workspace visibly overruns the initial viewport without intent
|
|
116
|
+
- gutters or max-width rules drift enough to break hierarchy
|
|
117
|
+
- breakpoint changes turn the screen into a generic stacked-card filler layout
|