command-code 0.26.16 → 0.26.17
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 +2 -0
- package/dist/index.mjs +26 -26
- package/package.json +2 -1
- package/skills/design/SKILL.md +388 -0
- package/skills/design/references/border.md +155 -0
- package/skills/design/references/button.md +192 -0
- package/skills/design/references/checkup.md +160 -0
- package/skills/design/references/color.md +166 -0
- package/skills/design/references/create.md +287 -0
- package/skills/design/references/design-html.md +225 -0
- package/skills/design/references/finish.md +153 -0
- package/skills/design/references/interaction.md +168 -0
- package/skills/design/references/layout.md +158 -0
- package/skills/design/references/motion.md +202 -0
- package/skills/design/references/redesign.md +186 -0
- package/skills/design/references/refine.md +193 -0
- package/skills/design/references/relayout.md +197 -0
- package/skills/design/references/report-html.md +116 -0
- package/skills/design/references/responsive.md +179 -0
- package/skills/design/references/review.md +162 -0
- package/skills/design/references/setup.md +119 -0
- package/skills/design/references/shadow.md +137 -0
- package/skills/design/references/smell.md +197 -0
- package/skills/design/references/surface.md +163 -0
- package/skills/design/references/tokenize.md +124 -0
- package/skills/design/references/typeset.md +170 -0
- package/skills/design/references/voice.md +183 -0
- package/skills/design/references/writing.md +152 -0
- package/vsix/commandcode-vscode.vsix +0 -0
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
# Responsive Design `/design responsive`
|
|
2
|
+
|
|
3
|
+
Responsive design is not making a desktop layout smaller. It is preserving the story, task, and controls across different stages, hands, viewports, and environments.
|
|
4
|
+
|
|
5
|
+
Screen size is only one variable. Input mode often matters more.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Discipline files
|
|
10
|
+
|
|
11
|
+
Responsive drives the recomposition pass — consult these when each dimension comes up during responsive work, not as separate passes to layer on:
|
|
12
|
+
|
|
13
|
+
- [layout.md](layout.md) — for correct grid, spacing rhythm, and composition logic when adapting breakpoints
|
|
14
|
+
- [interaction.md](interaction.md) — for correct touch target sizing and input mode behavior when adapting controls
|
|
15
|
+
- [button.md](button.md) — for correct full-width and stacked button patterns when adapting narrow viewports
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Pre-execution checklist
|
|
20
|
+
|
|
21
|
+
Before proceeding, check for existing reports in the `.commandcode/design/` directory. Look for these files:
|
|
22
|
+
|
|
23
|
+
- `checkup-report.md`
|
|
24
|
+
- `review-report.md`
|
|
25
|
+
- `smell-report.md`
|
|
26
|
+
|
|
27
|
+
If any of these files exist, read the report content and use it as context for your analysis. Prioritize issues flagged in the reports and reference specific findings when making changes.
|
|
28
|
+
|
|
29
|
+
If no reports are found, proceed with the task normally.
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## Composition Changes Across Context
|
|
36
|
+
|
|
37
|
+
The work pattern stays. The composition can change.
|
|
38
|
+
|
|
39
|
+
Monitor screens may collapse from a wall of status into priority strips, alerts, and drill-down panels.
|
|
40
|
+
|
|
41
|
+
Operate screens may move primary commands near the thumb and hide secondary tools behind stable drawers.
|
|
42
|
+
|
|
43
|
+
Compare screens may switch from wide tables to pinned labels, cards with aligned fields, or focused comparison pairs.
|
|
44
|
+
|
|
45
|
+
Configure screens may become grouped sections with sticky save and clear dependency feedback.
|
|
46
|
+
|
|
47
|
+
Learn screens may lengthen into a readable article path with progress cues.
|
|
48
|
+
|
|
49
|
+
Decide screens may reduce to claim, proof, action, and escape.
|
|
50
|
+
|
|
51
|
+
Explore screens may shift filters into drawers, maps into lists, and galleries into search-led flows.
|
|
52
|
+
|
|
53
|
+
Responsive work preserves the job, not the desktop shape.
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## Adaptation Bar
|
|
58
|
+
|
|
59
|
+
`/design responsive` recomposes the interface across contexts. It is not a max-width tweak.
|
|
60
|
+
|
|
61
|
+
At minimum, I verify narrow phone, ordinary phone, tablet, small laptop, desktop, and wide desktop behavior when the app can be rendered.
|
|
62
|
+
|
|
63
|
+
I adapt layout, order, density, navigation, actions, tables, media, forms, type, touch targets, hover dependencies, focus path, safe areas, and environmental preferences where they apply.
|
|
64
|
+
|
|
65
|
+
If the same desktop composition merely shrinks, the responsive pass failed.
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## My Starting Bias
|
|
70
|
+
|
|
71
|
+
I start from the smallest reasonable canvas and add complexity as space earns it. I do not worship the phrase mobile-first. I care that the base experience is sturdy and that wider contexts get more structure rather than stretched leftovers.
|
|
72
|
+
|
|
73
|
+
Breakpoints come from content pressure. When the content breaks, the layout changes.
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## Viewports I Respect
|
|
78
|
+
|
|
79
|
+
I test narrow phones, ordinary phones, tablets, small laptops, standard desktop, and ultrawide screens.
|
|
80
|
+
|
|
81
|
+
At small widths, I look for overflow, crushed labels, unreachable actions, tiny targets, and broken reading order.
|
|
82
|
+
|
|
83
|
+
At wide widths, I look for runaway line length, lonely content, stretched controls, and sections that lose composition.
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## Input Modes
|
|
88
|
+
|
|
89
|
+
I do not equate phone with touch or desktop with mouse.
|
|
90
|
+
|
|
91
|
+
Touch needs larger targets, no hover-only functionality, visible gesture alternatives, and controls placed where hands can reach.
|
|
92
|
+
|
|
93
|
+
Mouse and trackpad can use hover, precision controls, drag, resize, and denser affordances.
|
|
94
|
+
|
|
95
|
+
Keyboard needs logical focus, visible focus, reachable controls, and shortcuts when the product is dense.
|
|
96
|
+
|
|
97
|
+
Stylus and hybrid devices need both touch generosity and pointer precision.
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## Thumb Reach
|
|
102
|
+
|
|
103
|
+
On phones, the bottom of the screen is easier to reach than the top. Primary actions belong where hands naturally operate. Destructive or rare actions can sit farther away when intention matters.
|
|
104
|
+
|
|
105
|
+
This is not a law for every app shell, but it is a pressure I account for.
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
## Component Adaptation
|
|
110
|
+
|
|
111
|
+
Components should adapt to their container when possible.
|
|
112
|
+
|
|
113
|
+
A card in a sidebar, a card in a main column, and a card in a wide split view should not all use the same composition. Page breakpoints cannot solve every component context cleanly.
|
|
114
|
+
|
|
115
|
+
I prefer components that respond to available space and keep their meaning.
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
## Environmental Preferences
|
|
120
|
+
|
|
121
|
+
Responsive includes the user's environment.
|
|
122
|
+
|
|
123
|
+
Dark mode is a real theme. Reduced motion gets an authored alternative. High contrast gets stronger boundaries and no reliance on transparency. Inverted colors and zoom must not destroy meaning.
|
|
124
|
+
|
|
125
|
+
Safe areas matter. Fixed controls cannot sit under notches, rounded corners, browser chrome, or home indicators.
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
## Responsive Type
|
|
130
|
+
|
|
131
|
+
Product UI keeps predictable type scales. Brand display can be fluid. Body text remains readable, not theatrical.
|
|
132
|
+
|
|
133
|
+
I do not let a heading scale so aggressively that it breaks zoom, wraps into nonsense, or overwhelms smaller screens.
|
|
134
|
+
|
|
135
|
+
---
|
|
136
|
+
|
|
137
|
+
## Tables
|
|
138
|
+
|
|
139
|
+
Tables need a chosen strategy.
|
|
140
|
+
|
|
141
|
+
Data-heavy tables usually keep horizontal scroll because preserving columns matters. Small comparison tables can become cards. Mixed-importance tables can hide lower-priority columns. Very small screens may need stacked cells.
|
|
142
|
+
|
|
143
|
+
I do not mix strategies randomly on the same table.
|
|
144
|
+
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
## What I Refuse
|
|
148
|
+
|
|
149
|
+
- Core features hidden on mobile
|
|
150
|
+
- Calling a width tweak a responsive pass
|
|
151
|
+
- Desktop composition simply squeezed smaller
|
|
152
|
+
- Hover-only controls
|
|
153
|
+
- Touch targets sized for cursors
|
|
154
|
+
- Separate mobile and desktop code paths with different IA
|
|
155
|
+
- Fixed widths that cause horizontal scroll
|
|
156
|
+
- Ultrawide pages with unreadable line length
|
|
157
|
+
- Safe-area ignorance on fixed bars
|
|
158
|
+
- Device detection when feature detection is the real need
|
|
159
|
+
- Fluid type in dense product UI because it seems modern
|
|
160
|
+
|
|
161
|
+
---
|
|
162
|
+
|
|
163
|
+
## How I Know Responsive Works
|
|
164
|
+
|
|
165
|
+
- The rendered UI was checked at multiple viewport classes
|
|
166
|
+
- Composition adapts where the job or content pressure changes
|
|
167
|
+
- The same story survives across viewports
|
|
168
|
+
- Controls fit the input mode
|
|
169
|
+
- Nothing overflows at narrow widths
|
|
170
|
+
- Wide layouts stay composed
|
|
171
|
+
- Keyboard and touch both complete the core task
|
|
172
|
+
- Safe areas protect fixed controls
|
|
173
|
+
- Dark, reduced-motion, high-contrast, and zoom states remain usable
|
|
174
|
+
- Tables keep their data meaning
|
|
175
|
+
|
|
176
|
+
STRICT RULE — NEVER BREAK THIS
|
|
177
|
+
Do not create report.md, any kind of report, summary, analysis file,
|
|
178
|
+
or extra documentation. This applies every time this file is used.
|
|
179
|
+
Generate no reports unless explicitly asked.
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
# Review: `/design review`
|
|
2
|
+
|
|
3
|
+
I use review when the interface needs an honest design read. Not a lint pass. Not a final polish pass. A review asks whether the thing works as an experience.
|
|
4
|
+
|
|
5
|
+
I speak plainly. Vague praise does not help anyone ship better work.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Composition Judgment
|
|
10
|
+
|
|
11
|
+
I judge whether the composition serves the dominant work pattern.
|
|
12
|
+
|
|
13
|
+
Monitor surfaces must reveal status, change, alerts, and freshness.
|
|
14
|
+
|
|
15
|
+
Operate surfaces must keep commands, objects, feedback, and recovery close.
|
|
16
|
+
|
|
17
|
+
Compare surfaces must preserve alignment, criteria, filtering, and scanning.
|
|
18
|
+
|
|
19
|
+
Configure surfaces must group decisions by dependency and show consequences.
|
|
20
|
+
|
|
21
|
+
Learn surfaces must create orientation, progression, and readable pace.
|
|
22
|
+
|
|
23
|
+
Decide surfaces must focus attention on claim, proof, risk, and action.
|
|
24
|
+
|
|
25
|
+
Explore surfaces must support search, filtering, browsing, detail, and return.
|
|
26
|
+
|
|
27
|
+
A visually pleasant layout can still fail review if it makes the wrong work shape.
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Prompt Fidelity Judgment
|
|
32
|
+
|
|
33
|
+
I judge whether the design stayed loyal to the prompt invariants.
|
|
34
|
+
|
|
35
|
+
A supplied name must appear exactly. The visible category must match the brief. The hero artifact must belong to the product domain. The proof must answer the user's pressure. The visual language must not be inherited from a previous unrelated run.
|
|
36
|
+
|
|
37
|
+
If the design could fit an unrelated brief after only swapping text, that is a primary failure.
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## Evidence Bar
|
|
42
|
+
|
|
43
|
+
`/design review` judges the real experience. It is not a vibe essay.
|
|
44
|
+
|
|
45
|
+
At minimum, I inspect the rendered surface or actual implementation, walk the primary flow, check visible states where available, and tie each major finding to observed UI, code, or missing behavior.
|
|
46
|
+
|
|
47
|
+
If I did not observe something, I do not cite it as fact.
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## What I Read First
|
|
52
|
+
|
|
53
|
+
I read the surface before I read the code.
|
|
54
|
+
|
|
55
|
+
The first impression tells me whether the design has hierarchy, voice, and confidence. I ask what it is for, where I would act first, what color or shape I remember, and whether the tone matches the product.
|
|
56
|
+
|
|
57
|
+
If the first read is unclear, no amount of component polish saves it.
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## The Experience Lens
|
|
62
|
+
|
|
63
|
+
I walk the primary user flow as a story.
|
|
64
|
+
|
|
65
|
+
The user arrives. The page makes a promise. The user chooses an action. The system responds. The user waits. The action succeeds or fails. The interface resolves the moment.
|
|
66
|
+
|
|
67
|
+
Where the story breaks, the design breaks.
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## The Design Lenses
|
|
72
|
+
|
|
73
|
+
I evaluate the surface through five lenses.
|
|
74
|
+
|
|
75
|
+
**First impression**: Is there a memorable point of view?
|
|
76
|
+
|
|
77
|
+
**Hierarchy**: Does the eye know what matters first, second, and later?
|
|
78
|
+
|
|
79
|
+
**Color voice**: Does color carry mood, state, and action with intent?
|
|
80
|
+
|
|
81
|
+
**Type voice**: Does typography match the register and make content readable?
|
|
82
|
+
|
|
83
|
+
**Interaction feel**: Do controls, states, feedback, and recovery feel complete?
|
|
84
|
+
|
|
85
|
+
I also run the smell lens. If the design looks generated, I say so directly and identify the tells.
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
## Scoring
|
|
90
|
+
|
|
91
|
+
Review uses a `/50` score across the five design lenses. **MAX_SCORE = 50.** Use `/50` as the denominator in the report template — never `/40` or `/25`.
|
|
92
|
+
|
|
93
|
+
| Lens | Max |
|
|
94
|
+
|---|---|
|
|
95
|
+
| First impression | 10 |
|
|
96
|
+
| Hierarchy | 10 |
|
|
97
|
+
| Color voice | 10 |
|
|
98
|
+
| Type voice | 10 |
|
|
99
|
+
| Interaction feel | 10 |
|
|
100
|
+
| **Total** | **50** |
|
|
101
|
+
|
|
102
|
+
The heuristics table in the report uses these 5 rows, each scored `/10`.
|
|
103
|
+
|
|
104
|
+
High scores mean the surface is ready for small improvements. Middle scores mean focused interventions. Low scores mean the direction or structure needs rethinking.
|
|
105
|
+
|
|
106
|
+
I do not inflate scores to be polite. Most real work lives in the middle.
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
## What I Recommend
|
|
111
|
+
|
|
112
|
+
I do not leave the user with a pile of observations.
|
|
113
|
+
|
|
114
|
+
I name the top improvements in order of impact and map each to the right Command Code design mode: recolor, typeset, relayout, interaction, writing, refine, finish, redesign, or create.
|
|
115
|
+
|
|
116
|
+
If the fix is not a design-mode issue, I say that too.
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## Report Boundary
|
|
121
|
+
|
|
122
|
+
Review always produces two report artifacts:
|
|
123
|
+
|
|
124
|
+
- `.commandcode/design/review-report.md`
|
|
125
|
+
- `.commandcode/design/review-report.html`
|
|
126
|
+
|
|
127
|
+
**Important Rule for Generating HTML Report:**
|
|
128
|
+
|
|
129
|
+
- **Use the following template structure: [report-html.md](report-html.md)** to generate `review-report.html`:
|
|
130
|
+
- Do not change the visual design. Only fill in the content.
|
|
131
|
+
|
|
132
|
+
These are the only report artifacts review creates.
|
|
133
|
+
|
|
134
|
+
---
|
|
135
|
+
|
|
136
|
+
## What I Refuse
|
|
137
|
+
|
|
138
|
+
- A review that only lists issues and never prioritizes
|
|
139
|
+
- Findings with no observed evidence
|
|
140
|
+
- Claims about states, motion, or responsiveness I did not check
|
|
141
|
+
- A review that praises the obvious while avoiding the main problem
|
|
142
|
+
- Creating extra report artifacts beyond `review-report.md` and `review-report.html`
|
|
143
|
+
- Treating technical health as design quality
|
|
144
|
+
- Calling generic work "clean" when it has no voice
|
|
145
|
+
- Scoring without explaining what would move the score
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
## How I Know Review Is Done
|
|
150
|
+
|
|
151
|
+
- Major findings are grounded in observed UI, code, or missing behavior
|
|
152
|
+
- The first impression is named
|
|
153
|
+
- The primary flow has been walked
|
|
154
|
+
- The top issues are ordered by impact
|
|
155
|
+
- Smells are called out when present
|
|
156
|
+
- Each recommendation points to a concrete next move
|
|
157
|
+
- `review-report.md` and `review-report.html` both exist
|
|
158
|
+
|
|
159
|
+
STRICT RULE — NEVER BREAK THIS
|
|
160
|
+
Always create .commandcode/design/review-report.md and
|
|
161
|
+
.commandcode/design/review-report.html. Do not create any other report,
|
|
162
|
+
summary, analysis file, or extra documentation.
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
# Setup
|
|
2
|
+
|
|
3
|
+
Setup gives the project one design memory. I use it when the repo needs a root `brief.md` that future design work can trust.
|
|
4
|
+
|
|
5
|
+
This is not a report. It is not a research artifact. It is the working design constitution for the repo.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Composition Defaults I Capture
|
|
10
|
+
|
|
11
|
+
When I create the design constitution, I record the project's likely work patterns.
|
|
12
|
+
|
|
13
|
+
Brand pages may decide, teach, compare, or explore.
|
|
14
|
+
|
|
15
|
+
Product surfaces may monitor, operate, compare, configure, learn, decide, or explore.
|
|
16
|
+
|
|
17
|
+
The project can have more than one pattern, but each screen needs a dominant one.
|
|
18
|
+
|
|
19
|
+
I document the allowed composition lanes so future design work does not collapse into the same centered hero, card grid, and pill controls.
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Applied Setup Bar
|
|
24
|
+
|
|
25
|
+
`/design setup` creates or updates the actual `brief.md`. It is not a conversational setup checklist.
|
|
26
|
+
|
|
27
|
+
At minimum, I read the available project files, extract durable design facts, write the root `brief.md`, and make future design commands more specific than they were before.
|
|
28
|
+
|
|
29
|
+
If I only ask questions or describe what `brief.md` should contain, setup failed.
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## What I Create
|
|
34
|
+
|
|
35
|
+
I create or update one file at the project root: `brief.md`.
|
|
36
|
+
|
|
37
|
+
That file carries the durable answers:
|
|
38
|
+
|
|
39
|
+
- Register: brand or product
|
|
40
|
+
- Users and context
|
|
41
|
+
- Product purpose
|
|
42
|
+
- Voice
|
|
43
|
+
- Anti-references
|
|
44
|
+
- Design principles
|
|
45
|
+
- Accessibility expectations
|
|
46
|
+
- Visual foundation
|
|
47
|
+
- Component rules
|
|
48
|
+
|
|
49
|
+
I do not create separate product and design documents. One file, one source of truth.
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## What I Read Before Asking
|
|
54
|
+
|
|
55
|
+
I read the repo first.
|
|
56
|
+
|
|
57
|
+
README, package metadata, routes, existing styles, tokens, assets, logo, favicon, CSS variables, theme files, previous design notes, and old product or style documents. If the answer exists in the repo, I use it.
|
|
58
|
+
|
|
59
|
+
I form a register hypothesis from the code. Marketing routes, big heroes, pricing, blog, docs, and portfolio shapes point brand. App routes, dashboards, settings, forms, tables, and authenticated shells point product.
|
|
60
|
+
|
|
61
|
+
I ask only for what I cannot infer.
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## What I Ask
|
|
66
|
+
|
|
67
|
+
I keep setup short and strategic.
|
|
68
|
+
|
|
69
|
+
- Is the register hypothesis right?
|
|
70
|
+
- Who is the primary user and what state are they in?
|
|
71
|
+
- What is the single most important job?
|
|
72
|
+
- What should the voice feel like in concrete physical words?
|
|
73
|
+
- What should this not look or feel like?
|
|
74
|
+
- Are there special accessibility or motion needs?
|
|
75
|
+
|
|
76
|
+
I do not ask for fonts, colors, radii, or minor styling preferences before I understand the purpose.
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## How I Write `brief.md`
|
|
81
|
+
|
|
82
|
+
I make it concise enough to stay useful.
|
|
83
|
+
|
|
84
|
+
It should tell future design work what kind of surface this is, who it serves, what it must become, what it must avoid, and what visual system exists or should be respected.
|
|
85
|
+
|
|
86
|
+
If an old `brief.md` exists, I show the intended change before overwriting. I never silently replace the project's design memory.
|
|
87
|
+
|
|
88
|
+
If older context files exist at the project root (any `.md` file that reads like a product brief, style guide, or brand document), I merge useful content into `brief.md` and ask before deleting anything.
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## What I Refuse
|
|
93
|
+
|
|
94
|
+
- Creating surface.md as a separate file
|
|
95
|
+
- Talking about setup without creating or updating `brief.md`
|
|
96
|
+
- Writing generic principles not grounded in the repo
|
|
97
|
+
- Splitting context into multiple files instead of one `brief.md`
|
|
98
|
+
- Overwriting brief.md without confirmation
|
|
99
|
+
- Asking questions the repo already answers
|
|
100
|
+
- Writing a long strategy document nobody will read
|
|
101
|
+
- Treating setup as a design review
|
|
102
|
+
- Markdown reports
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## How I Know Setup Is Done
|
|
107
|
+
|
|
108
|
+
- `brief.md` exists at the project root
|
|
109
|
+
- `brief.md` includes facts found in the repo, not just generic design advice
|
|
110
|
+
- Register is explicit
|
|
111
|
+
- Users, purpose, voice, and anti-references are clear
|
|
112
|
+
- Principles guide decisions rather than restating taste
|
|
113
|
+
- Visual foundation reflects the actual repo when possible
|
|
114
|
+
- Future design commands can proceed without re-asking basics
|
|
115
|
+
|
|
116
|
+
STRICT RULE — NEVER BREAK THIS
|
|
117
|
+
Do not create report.md, any kind of report, summary, analysis file,
|
|
118
|
+
or extra documentation. This applies every time this file is used.
|
|
119
|
+
Generate no reports unless explicitly asked.
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
# Shadow System Helper
|
|
2
|
+
|
|
3
|
+
Shadows explain depth. They tell the user what sits above what, what can move, and what demands attention.
|
|
4
|
+
|
|
5
|
+
If a shadow does not make spatial understanding clearer, I remove it.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Depth Follows Composition
|
|
10
|
+
|
|
11
|
+
The work pattern decides what rises above the surface.
|
|
12
|
+
|
|
13
|
+
Monitor screens elevate urgent alerts, live overlays, and drill-down panels.
|
|
14
|
+
|
|
15
|
+
Operate screens elevate active tools, selected objects, menus, and transient controls.
|
|
16
|
+
|
|
17
|
+
Compare screens avoid gratuitous depth. Alignment and density usually beat floating cards.
|
|
18
|
+
|
|
19
|
+
Configure screens use depth for preview, confirmation, validation, and save affordances.
|
|
20
|
+
|
|
21
|
+
Learn screens use depth only when it helps orientation between sections.
|
|
22
|
+
|
|
23
|
+
Decide screens reserve depth for the primary action or proof that must hold attention.
|
|
24
|
+
|
|
25
|
+
Explore screens use depth for filters, active selections, maps, drawers, and detail views.
|
|
26
|
+
|
|
27
|
+
I do not cast shadows on every repeated item to make a grid feel designed.
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## System Bar
|
|
32
|
+
|
|
33
|
+
Shadow work creates or repairs an elevation system. It is not a random blur pass.
|
|
34
|
+
|
|
35
|
+
At minimum, I define how flat surfaces, raised surfaces, overlays, menus, active drag or selection, hover lift, dark theme depth, and border-shadow combinations behave.
|
|
36
|
+
|
|
37
|
+
If the product should stay flat, I remove unnecessary shadows and strengthen other hierarchy instead.
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## What Shadows Are For
|
|
42
|
+
|
|
43
|
+
I use shadows for raised surfaces, popovers, menus, dragged items, modals, toasts, and interactive lift when the system has a layered physical language.
|
|
44
|
+
|
|
45
|
+
I do not use shadows to make a flat design feel less empty. Empty structure needs layout, type, spacing, or color. Not a random blur.
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## Light Source
|
|
50
|
+
|
|
51
|
+
Light comes from above.
|
|
52
|
+
|
|
53
|
+
Shadows fall down. Higher objects cast softer and larger shadows. Small objects get small shadows. Heavy shadows on tiny badges look fake.
|
|
54
|
+
|
|
55
|
+
The whole product shares one lighting logic. If shadows fall in different directions, the surface feels physically incoherent.
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## Elevation
|
|
60
|
+
|
|
61
|
+
Elevation is semantic.
|
|
62
|
+
|
|
63
|
+
Resting cards sit low. Hovered cards may lift slightly. Dropdowns and popovers sit above content. Modals sit above the whole working surface. Dragged items sit highest because the user is holding them.
|
|
64
|
+
|
|
65
|
+
I do not assign depth by vibes. Depth follows role.
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## Dark Themes
|
|
70
|
+
|
|
71
|
+
Dark themes rarely need heavy shadows. Surface lightness usually communicates elevation better.
|
|
72
|
+
|
|
73
|
+
Raised dark surfaces can become slightly lighter than the base. Floating surfaces can become lighter again. Borders can help. Shadow is a supplement, not the foundation.
|
|
74
|
+
|
|
75
|
+
If a dark shadow cannot be seen without becoming muddy, I use surface value instead.
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
## Motion
|
|
80
|
+
|
|
81
|
+
Shadow can move with interaction, but it should not perform alone.
|
|
82
|
+
|
|
83
|
+
A hover lift works when the element also moves slightly. A modal entrance can grow into its final depth. A dragged item can gain elevation while moving. Shadow changes stay brief and smooth.
|
|
84
|
+
|
|
85
|
+
I never animate shadow on scroll just to create spectacle. It is too expensive and rarely meaningful.
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
## Shadow And Border
|
|
90
|
+
|
|
91
|
+
Border and shadow can coexist softly, but one must lead.
|
|
92
|
+
|
|
93
|
+
Flat systems use borders and maybe a whisper of shadow. Layered systems use shadow and fewer borders. Strong border plus strong shadow makes the component visually shout.
|
|
94
|
+
|
|
95
|
+
I choose the elevation strategy per project and stay with it.
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## Performance
|
|
100
|
+
|
|
101
|
+
Large blurred shadows on large areas can cost real performance. Filters and giant glow effects are heavier than ordinary box shadows. Stacked shadow layers should earn their cost.
|
|
102
|
+
|
|
103
|
+
I test ambitious depth on the target viewport and device class. A premium shadow that janks is not premium.
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## What I Refuse
|
|
108
|
+
|
|
109
|
+
- Colored shadows by default
|
|
110
|
+
- Calling one card shadow a shadow system
|
|
111
|
+
- Heavy elevation on every repeated item
|
|
112
|
+
- Multiple shadow systems in one product
|
|
113
|
+
- Heavy shadows on tiny elements
|
|
114
|
+
- Shadows in dark mode when surface lightness would work
|
|
115
|
+
- Shadows used as decoration
|
|
116
|
+
- Inconsistent light direction
|
|
117
|
+
- Hover depth with no interaction purpose
|
|
118
|
+
- Border and shadow both shouting
|
|
119
|
+
- Scroll-driven shadow animation
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
## How I Know Shadows Work
|
|
124
|
+
|
|
125
|
+
- Elevation is consistent across real layers and states
|
|
126
|
+
- The elevation order is obvious
|
|
127
|
+
- Shadows match object size and role
|
|
128
|
+
- Dark mode uses lightness where shadow fails
|
|
129
|
+
- Popovers, modals, toasts, and dragged items sit in believable layers
|
|
130
|
+
- Hover lift feels physical but not theatrical
|
|
131
|
+
- Performance stays smooth
|
|
132
|
+
- Removing a shadow would make spatial hierarchy worse
|
|
133
|
+
|
|
134
|
+
STRICT RULE — NEVER BREAK THIS
|
|
135
|
+
Do not create report.md, any kind of report, summary, analysis file,
|
|
136
|
+
or extra documentation. This applies every time this file is used.
|
|
137
|
+
Generate no reports unless explicitly asked.
|