@dv.nghiem/flowdeck 0.3.6 → 0.3.7

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.
Files changed (41) hide show
  1. package/dist/agents/index.d.ts +2 -1
  2. package/dist/agents/index.d.ts.map +1 -1
  3. package/dist/agents/supervisor.d.ts +3 -0
  4. package/dist/agents/supervisor.d.ts.map +1 -0
  5. package/dist/config/schema.d.ts +36 -0
  6. package/dist/config/schema.d.ts.map +1 -1
  7. package/dist/dashboard/lib/state-reader.d.ts.map +1 -1
  8. package/dist/dashboard/server.mjs +0 -37
  9. package/dist/dashboard/types.d.ts +0 -2
  10. package/dist/dashboard/types.d.ts.map +1 -1
  11. package/dist/dashboard/views/index.ejs +0 -6
  12. package/dist/dashboard/views/partials/header.ejs +0 -4
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +808 -1
  15. package/dist/services/agent-contract-registry.d.ts.map +1 -1
  16. package/dist/services/supervisor-binding.d.ts +114 -0
  17. package/dist/services/supervisor-binding.d.ts.map +1 -0
  18. package/dist/services/supervisor.test.d.ts +14 -0
  19. package/dist/services/supervisor.test.d.ts.map +1 -0
  20. package/dist/services/telemetry.d.ts +1 -1
  21. package/dist/services/telemetry.d.ts.map +1 -1
  22. package/dist/services/workflow-scorecard.d.ts +20 -0
  23. package/dist/services/workflow-scorecard.d.ts.map +1 -1
  24. package/docs/agents.md +1 -1
  25. package/docs/commands/fd-ask.md +1 -1
  26. package/docs/commands/fd-deploy-check.md +1 -1
  27. package/docs/commands/fd-discuss.md +1 -1
  28. package/docs/commands/fd-fix-bug.md +1 -1
  29. package/docs/commands/fd-new-feature.md +1 -1
  30. package/docs/commands/fd-verify.md +18 -0
  31. package/docs/commands/fd-write-docs.md +1 -1
  32. package/docs/feature-integration-architecture.md +1 -1
  33. package/docs/notifications.md +2 -2
  34. package/docs/quick-start.md +1 -1
  35. package/docs/skills.md +1 -1
  36. package/package.json +1 -1
  37. package/src/commands/fd-new-project.md +0 -1
  38. package/src/rules/common/agent-orchestration.md +1 -1
  39. package/src/skills/design-tokens/SKILL.md +250 -0
  40. package/src/skills/git-release/SKILL.md +1 -1
  41. package/src/skills/ui-design/SKILL.md +313 -0
@@ -0,0 +1,313 @@
1
+ ---
2
+ name: ui-design
3
+ description: UI/visual design patterns, component templates, and layout best practices for creating attractive websites
4
+ origin: Built for FlowDeck's design agent workflow
5
+ tags:
6
+ - design
7
+ - ui
8
+ - frontend
9
+ - templates
10
+ - components
11
+ - layout
12
+ ---
13
+
14
+ # UI Design Skill
15
+
16
+ This skill provides component templates, layout patterns, and design guidance for creating attractive, production-ready websites.
17
+
18
+ ## Component Templates
19
+
20
+ ### Buttons
21
+
22
+ ```html
23
+ <!-- Primary Button -->
24
+ <button class="btn btn-primary">
25
+ <span>Get Started</span>
26
+ <svg class="icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
27
+ <path d="M5 12h14M12 5l7 7-7 7"/>
28
+ </svg>
29
+ </button>
30
+
31
+ <!-- CSS -->
32
+ .btn {
33
+ display: inline-flex;
34
+ align-items: center;
35
+ gap: 0.5rem;
36
+ padding: 0.75rem 1.5rem;
37
+ border-radius: var(--radius-md);
38
+ font-weight: 500;
39
+ transition: all var(--duration-fast) var(--ease-out-expo);
40
+ }
41
+
42
+ .btn-primary {
43
+ background: var(--color-interactive-primary);
44
+ color: white;
45
+ }
46
+
47
+ .btn-primary:hover {
48
+ transform: translateY(-1px);
49
+ box-shadow: var(--shadow-md);
50
+ }
51
+
52
+ .btn-primary:active {
53
+ transform: translateY(0);
54
+ }
55
+ ```
56
+
57
+ ### Cards
58
+
59
+ ```html
60
+ <div class="card">
61
+ <div class="card-media">
62
+ <img src="..." alt="..." loading="lazy"/>
63
+ </div>
64
+ <div class="card-body">
65
+ <h3 class="card-title">Card Title</h3>
66
+ <p class="card-description">Supporting text that explains the card content.</p>
67
+ <div class="card-footer">
68
+ <button class="btn btn-outline">Learn More</button>
69
+ </div>
70
+ </div>
71
+ </div>
72
+
73
+ <!-- CSS -->
74
+ .card {
75
+ background: var(--color-surface);
76
+ border-radius: var(--radius-lg);
77
+ overflow: hidden;
78
+ transition: all var(--duration-normal) var(--ease-out-expo);
79
+ }
80
+
81
+ .card:hover {
82
+ transform: translateY(-2px);
83
+ box-shadow: var(--shadow-lg);
84
+ }
85
+ ```
86
+
87
+ ### Forms
88
+
89
+ ```html
90
+ <form class="form">
91
+ <div class="form-group">
92
+ <label for="email" class="form-label">Email Address</label>
93
+ <input
94
+ type="email"
95
+ id="email"
96
+ class="form-input"
97
+ placeholder="you@example.com"
98
+ autocomplete="email"
99
+ />
100
+ <span class="form-error">Please enter a valid email</span>
101
+ </div>
102
+ <button type="submit" class="btn btn-primary btn-full">Submit</button>
103
+ </form>
104
+
105
+ <!-- CSS -->
106
+ .form-group {
107
+ display: flex;
108
+ flex-direction: column;
109
+ gap: 0.5rem;
110
+ }
111
+
112
+ .form-input {
113
+ padding: 0.75rem 1rem;
114
+ border: 1px solid var(--color-border);
115
+ border-radius: var(--radius-md);
116
+ transition: border-color var(--duration-fast);
117
+ }
118
+
119
+ .form-input:focus {
120
+ outline: none;
121
+ border-color: var(--color-interactive-primary);
122
+ box-shadow: 0 0 0 3px var(--color-interactive-primary-alpha);
123
+ }
124
+
125
+ .form-error {
126
+ color: var(--color-error);
127
+ font-size: var(--typography-caption);
128
+ }
129
+ ```
130
+
131
+ ## Layout Patterns
132
+
133
+ ### Hero Section
134
+
135
+ ```html
136
+ <section class="hero">
137
+ <div class="hero-content">
138
+ <h1 class="hero-heading">Build Something Amazing</h1>
139
+ <p class="hero-subheading">The modern platform for creating and deploying web applications.</p>
140
+ <div class="hero-actions">
141
+ <button class="btn btn-primary btn-lg">Get Started</button>
142
+ <button class="btn btn-outline btn-lg">View Demo</button>
143
+ </div>
144
+ </div>
145
+ <div class="hero-visual">
146
+ <div class="hero-image"></div>
147
+ </div>
148
+ </section>
149
+
150
+ <!-- CSS -->
151
+ .hero {
152
+ display: grid;
153
+ grid-template-columns: 1fr 1fr;
154
+ gap: var(--space-section);
155
+ align-items: center;
156
+ padding: var(--space-section) 0;
157
+ }
158
+
159
+ .hero-heading {
160
+ font-size: var(--text-hero);
161
+ font-weight: 700;
162
+ line-height: 1.1;
163
+ letter-spacing: -0.02em;
164
+ }
165
+
166
+ .hero-subheading {
167
+ font-size: var(--text-lg);
168
+ color: var(--color-text-secondary);
169
+ margin-top: 1.5rem;
170
+ }
171
+
172
+ .hero-actions {
173
+ display: flex;
174
+ gap: 1rem;
175
+ margin-top: 2rem;
176
+ }
177
+ ```
178
+
179
+ ### Bento Grid
180
+
181
+ ```html
182
+ <div class="bento-grid">
183
+ <div class="bento-item bento-tall bento-featured">
184
+ <h3>Featured Content</h3>
185
+ <p>Larger cell spanning multiple rows</p>
186
+ </div>
187
+ <div class="bento-item">
188
+ <h3>Quick Stat</h3>
189
+ <span class="stat-value">2.4M</span>
190
+ </div>
191
+ <div class="bento-item">
192
+ <h3>Recent Activity</h3>
193
+ <p>Compact info card</p>
194
+ </div>
195
+ <div class="bento-item bento-wide">
196
+ <h3>Wide Card</h3>
197
+ <p>Spans multiple columns</p>
198
+ </div>
199
+ </div>
200
+
201
+ <!-- CSS -->
202
+ .bento-grid {
203
+ display: grid;
204
+ grid-template-columns: repeat(4, 1fr);
205
+ gap: var(--spacing-lg);
206
+ }
207
+
208
+ .bento-tall { grid-row: span 2; }
209
+ .bento-wide { grid-column: span 2; }
210
+ .bento-featured { background: var(--color-accent-surface); }
211
+ ```
212
+
213
+ ### Dashboard Layout
214
+
215
+ ```html
216
+ <div class="dashboard">
217
+ <aside class="sidebar">
218
+ <nav class="nav">
219
+ <a href="#" class="nav-item active">
220
+ <svg class="icon"><!-- dashboard icon --></svg>
221
+ Dashboard
222
+ </a>
223
+ <a href="#" class="nav-item">
224
+ <svg class="icon"><!-- analytics icon --></svg>
225
+ Analytics
226
+ </a>
227
+ </nav>
228
+ </aside>
229
+ <main class="main">
230
+ <header class="page-header">
231
+ <h1>Dashboard</h1>
232
+ <button class="btn btn-primary">Create New</button>
233
+ </header>
234
+ <div class="stats-grid">
235
+ <div class="stat-card">
236
+ <span class="stat-label">Total Users</span>
237
+ <span class="stat-value">12,345</span>
238
+ <span class="stat-change positive">+8.2%</span>
239
+ </div>
240
+ </div>
241
+ </main>
242
+ </div>
243
+ ```
244
+
245
+ ## Design Token Usage
246
+
247
+ **CRITICAL**: Always use semantic tokens, never hardcoded values.
248
+
249
+ ```css
250
+ /* WRONG - hardcoded values */
251
+ color: #2563eb;
252
+ padding: 16px;
253
+ font-size: 18px;
254
+
255
+ /* CORRECT - semantic tokens */
256
+ color: var(--color-interactive-primary);
257
+ padding: var(--spacing-lg);
258
+ font-size: var(--typography-body-lg);
259
+ ```
260
+
261
+ ## Animation Principles
262
+
263
+ Use compositor-friendly properties only:
264
+ - `transform` (translate, scale, rotate)
265
+ - `opacity`
266
+ - `clip-path`
267
+
268
+ Avoid animating:
269
+ - `width`, `height`
270
+ - `margin`, `padding`
271
+ - `border`
272
+ - `font-size`
273
+
274
+ ```css
275
+ /* Micro-interactions */
276
+ .card:hover {
277
+ transform: translateY(-2px);
278
+ opacity: 1;
279
+ }
280
+
281
+ /* Reduced motion */
282
+ @media (prefers-reduced-motion: reduce) {
283
+ *, *::before, *::after {
284
+ animation-duration: 0.01ms !important;
285
+ transition-duration: 0.01ms !important;
286
+ }
287
+ }
288
+ ```
289
+
290
+ ## Accessibility
291
+
292
+ - Color contrast: minimum 4.5:1 for normal text, 3:1 for large text
293
+ - Focus states: visible outline on keyboard navigation
294
+ - ARIA labels for icon-only buttons
295
+ - Semantic HTML: use `<button>` for actions, `<a>` for navigation
296
+
297
+ ## Anti-Template Patterns
298
+
299
+ **STOP** — These look like generic templates, not intentional design:
300
+
301
+ - ❌ Uniform card grid with equal spacing everywhere
302
+ - ❌ Centered hero with gradient blob and "Get Started" CTA
303
+ - ❌ Sidebar with 5 identical nav items
304
+ - ❌ Flat gray background with white cards
305
+ - ❌ One font size used for everything
306
+
307
+ **DO** instead:
308
+ - ✓ Clear hierarchy through scale contrast
309
+ - ✓ Intentional rhythm in spacing (not uniform)
310
+ - ✓ Depth through shadows, overlap, or layering
311
+ - ✓ Typography with character and pairing strategy
312
+ - ✓ Hover/focus states that feel designed
313
+ - ✓ Grid-breaking editorial or bento composition