start-vibing 4.1.0 → 4.1.1
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/package.json +1 -1
- package/template/.claude/CLAUDE.md +86 -20
- package/template/.claude/agents/sd-audit.md +197 -0
- package/template/.claude/agents/sd-fix-verify-semantic.md +112 -0
- package/template/.claude/agents/sd-fix-verify-technical.md +36 -0
- package/template/.claude/agents/sd-fix.md +194 -0
- package/template/.claude/agents/sd-research.md +61 -0
- package/template/.claude/agents/sd-synthesis.md +74 -0
- package/template/.claude/commands/super-design.md +15 -0
- package/template/.claude/hooks/super-design-session-start.sh +4 -0
- package/template/.claude/settings.json +14 -0
- package/template/.claude/skills/codebase-knowledge/SKILL.md +145 -0
- package/template/.claude/skills/codebase-knowledge/TEMPLATE.md +35 -0
- package/template/.claude/skills/codebase-knowledge/domains/claude-system.md +93 -0
- package/template/.claude/skills/composition-patterns/SKILL.md +89 -0
- package/template/.claude/skills/docs-tracker/SKILL.md +239 -0
- package/template/.claude/skills/mcp-builder/SKILL.md +236 -0
- package/template/.claude/skills/quality-gate/scripts/check-all.sh +83 -0
- package/template/.claude/skills/react-best-practices/SKILL.md +146 -0
- package/template/.claude/skills/security-scan/reference/owasp-top-10.md +257 -0
- package/template/.claude/skills/security-scan/scripts/scan.py +190 -0
- package/template/.claude/skills/super-design/README.md +37 -0
- package/template/.claude/skills/super-design/SKILL.md +105 -0
- package/template/.claude/skills/super-design/hooks/guard-paths.py +35 -0
- package/template/.claude/skills/super-design/hooks/post-edit-lint.py +57 -0
- package/template/.claude/skills/super-design/references/audit-methodology.md +513 -0
- package/template/.claude/skills/super-design/references/change-detection-playbook.md +1432 -0
- package/template/.claude/skills/super-design/references/design-theory.md +706 -0
- package/template/.claude/skills/super-design/references/fix-agent-playbook.md +118 -0
- package/template/.claude/skills/super-design/references/market-research-playbook.md +773 -0
- package/template/.claude/skills/super-design/references/playwright-mcp-reference.md +1057 -0
- package/template/.claude/skills/super-design/references/skills-subagents-reference.md +784 -0
- package/template/.claude/skills/super-design/references/superpowers-and-distribution.md +136 -0
- package/template/.claude/skills/super-design/scripts/detect-changes.sh +61 -0
- package/template/.claude/skills/super-design/scripts/diff-tokens.sh +13 -0
- package/template/.claude/skills/super-design/scripts/discover-routes.sh +45 -0
- package/template/.claude/skills/super-design/scripts/extract-tokens.mjs +41 -0
- package/template/.claude/skills/super-design/scripts/hash-pages.sh +42 -0
- package/template/.claude/skills/super-design/scripts/validate-state.sh +15 -0
- package/template/.claude/skills/super-design/scripts/verify-audit.sh +19 -0
- package/template/.claude/skills/super-design/templates/audit-state.schema.json +57 -0
- package/template/.claude/skills/super-design/templates/findings.schema.json +57 -0
- package/template/.claude/skills/super-design/templates/fix-history.md.tpl +26 -0
- package/template/.claude/skills/super-design/templates/overview.md.tpl +52 -0
- package/template/.claude/skills/test-coverage/reference/playwright-patterns.md +260 -0
- package/template/.claude/skills/test-coverage/scripts/coverage-check.sh +52 -0
- package/template/.claude/skills/typeui-ant/SKILL.md +133 -0
- package/template/.claude/skills/typeui-application/SKILL.md +128 -0
- package/template/.claude/skills/typeui-artistic/SKILL.md +133 -0
- package/template/.claude/skills/typeui-bento/SKILL.md +127 -0
- package/template/.claude/skills/typeui-bold/SKILL.md +127 -0
- package/template/.claude/skills/typeui-clean/SKILL.md +128 -0
- package/template/.claude/skills/typeui-dashboard/SKILL.md +133 -0
- package/template/.claude/skills/typeui-doodle/SKILL.md +142 -0
- package/template/.claude/skills/typeui-dramatic/SKILL.md +127 -0
- package/template/.claude/skills/typeui-enterprise/SKILL.md +132 -0
- package/template/.claude/skills/typeui-neobrutalism/SKILL.md +127 -0
- package/template/.claude/skills/typeui-paper/SKILL.md +127 -0
- package/template/.claude/skills/ui-ux-audit/QUICK-START.md +450 -0
- package/template/.claude/skills/ui-ux-audit/README.md +470 -0
- package/template/.claude/skills/ui-ux-audit/templates/audit-report.md +591 -0
- package/template/.claude/skills/ui-ux-audit/templates/competitor-analysis.md +363 -0
- package/template/.claude/skills/ui-ux-audit/templates/component-spec.md +491 -0
- package/template/.claude/skills/ui-ux-audit/templates/improvement-recommendation.md +450 -0
- package/template/.claude/skills/web-design-guidelines/SKILL.md +39 -0
- package/template/.claude/skills/webapp-testing/SKILL.md +96 -0
- package/template/.claude/skills/workflow-state/workflow-state.json +77 -0
|
@@ -0,0 +1,260 @@
|
|
|
1
|
+
# Playwright E2E Testing Patterns
|
|
2
|
+
|
|
3
|
+
## Page Object Model (POM)
|
|
4
|
+
|
|
5
|
+
### Base Page
|
|
6
|
+
|
|
7
|
+
```typescript
|
|
8
|
+
// tests/e2e/pages/base.page.ts
|
|
9
|
+
import { Page, Locator } from '@playwright/test';
|
|
10
|
+
|
|
11
|
+
export abstract class BasePage {
|
|
12
|
+
readonly page: Page;
|
|
13
|
+
|
|
14
|
+
constructor(page: Page) {
|
|
15
|
+
this.page = page;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
async goto(path: string): Promise<void> {
|
|
19
|
+
await this.page.goto(path);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
async waitForLoad(): Promise<void> {
|
|
23
|
+
await this.page.waitForLoadState('networkidle');
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
getByTestId(id: string): Locator {
|
|
27
|
+
return this.page.getByTestId(id);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
async takeScreenshot(name: string): Promise<void> {
|
|
31
|
+
await this.page.screenshot({ path: `screenshots/${name}.png` });
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
### Specific Page
|
|
37
|
+
|
|
38
|
+
```typescript
|
|
39
|
+
// tests/e2e/pages/login.page.ts
|
|
40
|
+
import { BasePage } from './base.page';
|
|
41
|
+
|
|
42
|
+
export class LoginPage extends BasePage {
|
|
43
|
+
readonly emailInput = this.getByTestId('email-input');
|
|
44
|
+
readonly passwordInput = this.getByTestId('password-input');
|
|
45
|
+
readonly submitButton = this.getByTestId('submit-button');
|
|
46
|
+
readonly errorMessage = this.getByTestId('error-message');
|
|
47
|
+
|
|
48
|
+
async login(email: string, password: string): Promise<void> {
|
|
49
|
+
await this.emailInput.fill(email);
|
|
50
|
+
await this.passwordInput.fill(password);
|
|
51
|
+
await this.submitButton.click();
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
async expectError(message: string): Promise<void> {
|
|
55
|
+
await expect(this.errorMessage).toContainText(message);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## Custom Fixtures
|
|
63
|
+
|
|
64
|
+
### Database Fixture
|
|
65
|
+
|
|
66
|
+
```typescript
|
|
67
|
+
// tests/e2e/fixtures/db.fixture.ts
|
|
68
|
+
import { test as base } from '@playwright/test';
|
|
69
|
+
import { MongoClient, Db, ObjectId } from 'mongodb';
|
|
70
|
+
|
|
71
|
+
type DbFixture = {
|
|
72
|
+
db: Db;
|
|
73
|
+
createdIds: Map<string, ObjectId[]>;
|
|
74
|
+
trackCreated: (collection: string, id: ObjectId) => void;
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
export const test = base.extend<DbFixture>({
|
|
78
|
+
db: async ({}, use) => {
|
|
79
|
+
const client = await MongoClient.connect(process.env['MONGODB_URI']!);
|
|
80
|
+
const db = client.db();
|
|
81
|
+
await use(db);
|
|
82
|
+
await client.close();
|
|
83
|
+
},
|
|
84
|
+
|
|
85
|
+
createdIds: async ({}, use) => {
|
|
86
|
+
await use(new Map());
|
|
87
|
+
},
|
|
88
|
+
|
|
89
|
+
trackCreated: async ({ createdIds }, use) => {
|
|
90
|
+
const track = (collection: string, id: ObjectId) => {
|
|
91
|
+
const ids = createdIds.get(collection) || [];
|
|
92
|
+
ids.push(id);
|
|
93
|
+
createdIds.set(collection, ids);
|
|
94
|
+
};
|
|
95
|
+
await use(track);
|
|
96
|
+
},
|
|
97
|
+
});
|
|
98
|
+
|
|
99
|
+
// Auto-cleanup after each test
|
|
100
|
+
test.afterEach(async ({ db, createdIds }) => {
|
|
101
|
+
for (const [collection, ids] of createdIds.entries()) {
|
|
102
|
+
if (ids.length > 0) {
|
|
103
|
+
await db.collection(collection).deleteMany({
|
|
104
|
+
_id: { $in: ids },
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
### Auth Fixture
|
|
112
|
+
|
|
113
|
+
```typescript
|
|
114
|
+
// tests/e2e/fixtures/auth.fixture.ts
|
|
115
|
+
import { test as base } from '@playwright/test';
|
|
116
|
+
|
|
117
|
+
type AuthFixture = {
|
|
118
|
+
authenticatedPage: Page;
|
|
119
|
+
};
|
|
120
|
+
|
|
121
|
+
export const test = base.extend<AuthFixture>({
|
|
122
|
+
authenticatedPage: async ({ browser }, use) => {
|
|
123
|
+
const context = await browser.newContext({
|
|
124
|
+
storageState: 'tests/e2e/.auth/user.json',
|
|
125
|
+
});
|
|
126
|
+
const page = await context.newPage();
|
|
127
|
+
await use(page);
|
|
128
|
+
await context.close();
|
|
129
|
+
},
|
|
130
|
+
});
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
---
|
|
134
|
+
|
|
135
|
+
## Multi-Viewport Testing
|
|
136
|
+
|
|
137
|
+
### Config
|
|
138
|
+
|
|
139
|
+
```typescript
|
|
140
|
+
// playwright.config.ts
|
|
141
|
+
import { defineConfig, devices } from '@playwright/test';
|
|
142
|
+
|
|
143
|
+
export default defineConfig({
|
|
144
|
+
projects: [
|
|
145
|
+
{
|
|
146
|
+
name: 'Desktop Chrome',
|
|
147
|
+
use: { ...devices['Desktop Chrome'] },
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
name: 'Tablet',
|
|
151
|
+
use: { ...devices['iPad'] },
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
name: 'Mobile',
|
|
155
|
+
use: { ...devices['iPhone 14'] },
|
|
156
|
+
},
|
|
157
|
+
],
|
|
158
|
+
});
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
### Viewport-Aware Tests
|
|
162
|
+
|
|
163
|
+
```typescript
|
|
164
|
+
test('navigation adapts to viewport', async ({ page, isMobile }) => {
|
|
165
|
+
await page.goto('/');
|
|
166
|
+
|
|
167
|
+
if (isMobile) {
|
|
168
|
+
// Mobile: hamburger menu
|
|
169
|
+
await expect(page.getByTestId('hamburger-menu')).toBeVisible();
|
|
170
|
+
await page.getByTestId('hamburger-menu').click();
|
|
171
|
+
await expect(page.getByTestId('mobile-nav')).toBeVisible();
|
|
172
|
+
} else {
|
|
173
|
+
// Desktop: sidebar
|
|
174
|
+
await expect(page.getByTestId('sidebar')).toBeVisible();
|
|
175
|
+
}
|
|
176
|
+
});
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
---
|
|
180
|
+
|
|
181
|
+
## API Testing
|
|
182
|
+
|
|
183
|
+
### REST
|
|
184
|
+
|
|
185
|
+
```typescript
|
|
186
|
+
test.describe('REST API', () => {
|
|
187
|
+
test('requires authentication', async ({ request }) => {
|
|
188
|
+
const response = await request.get('/api/users');
|
|
189
|
+
expect(response.status()).toBe(401);
|
|
190
|
+
});
|
|
191
|
+
|
|
192
|
+
test('validates input', async ({ request }) => {
|
|
193
|
+
const response = await request.post('/api/users', {
|
|
194
|
+
data: { email: 'invalid' },
|
|
195
|
+
});
|
|
196
|
+
expect(response.status()).toBe(400);
|
|
197
|
+
const body = await response.json();
|
|
198
|
+
expect(body.errors).toBeDefined();
|
|
199
|
+
});
|
|
200
|
+
});
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
### tRPC
|
|
204
|
+
|
|
205
|
+
```typescript
|
|
206
|
+
test.describe('tRPC API', () => {
|
|
207
|
+
test('handles validation errors', async ({ request }) => {
|
|
208
|
+
const response = await request.post('/api/trpc/user.create', {
|
|
209
|
+
data: { json: { name: '' } },
|
|
210
|
+
});
|
|
211
|
+
const body = await response.json();
|
|
212
|
+
expect(body.error.data.code).toBe('BAD_REQUEST');
|
|
213
|
+
});
|
|
214
|
+
});
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
---
|
|
218
|
+
|
|
219
|
+
## Best Practices
|
|
220
|
+
|
|
221
|
+
### Use data-testid
|
|
222
|
+
|
|
223
|
+
```tsx
|
|
224
|
+
// Component
|
|
225
|
+
<button data-testid="submit-button">Submit</button>;
|
|
226
|
+
|
|
227
|
+
// Test
|
|
228
|
+
await page.getByTestId('submit-button').click();
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
### Wait for Network
|
|
232
|
+
|
|
233
|
+
```typescript
|
|
234
|
+
// Wait for all network requests to finish
|
|
235
|
+
await page.waitForLoadState('networkidle');
|
|
236
|
+
|
|
237
|
+
// Wait for specific request
|
|
238
|
+
await page.waitForResponse('/api/users');
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
### Retries for Flaky Tests
|
|
242
|
+
|
|
243
|
+
```typescript
|
|
244
|
+
// playwright.config.ts
|
|
245
|
+
export default defineConfig({
|
|
246
|
+
retries: process.env.CI ? 2 : 0,
|
|
247
|
+
});
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
### Screenshots on Failure
|
|
251
|
+
|
|
252
|
+
```typescript
|
|
253
|
+
// playwright.config.ts
|
|
254
|
+
export default defineConfig({
|
|
255
|
+
use: {
|
|
256
|
+
screenshot: 'only-on-failure',
|
|
257
|
+
trace: 'on-first-retry',
|
|
258
|
+
},
|
|
259
|
+
});
|
|
260
|
+
```
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# Test Coverage Check Script
|
|
3
|
+
# Usage: bash .claude/skills/test-coverage/scripts/coverage-check.sh [threshold]
|
|
4
|
+
|
|
5
|
+
set -e
|
|
6
|
+
|
|
7
|
+
THRESHOLD=${1:-80}
|
|
8
|
+
|
|
9
|
+
echo "========================================"
|
|
10
|
+
echo " TEST COVERAGE CHECK"
|
|
11
|
+
echo " Threshold: ${THRESHOLD}%"
|
|
12
|
+
echo "========================================"
|
|
13
|
+
echo ""
|
|
14
|
+
|
|
15
|
+
# Run tests with coverage
|
|
16
|
+
echo "Running tests with coverage..."
|
|
17
|
+
bun test --coverage 2>&1 | tee coverage-output.txt
|
|
18
|
+
|
|
19
|
+
# Extract coverage percentage (adjust regex based on your test framework)
|
|
20
|
+
COVERAGE=$(grep -E "All files.*\|" coverage-output.txt | awk '{print $4}' | tr -d '%' || echo "0")
|
|
21
|
+
|
|
22
|
+
echo ""
|
|
23
|
+
echo "========================================"
|
|
24
|
+
echo " RESULTS"
|
|
25
|
+
echo "========================================"
|
|
26
|
+
|
|
27
|
+
if [ -z "$COVERAGE" ] || [ "$COVERAGE" = "0" ]; then
|
|
28
|
+
echo "⚠ Could not determine coverage percentage"
|
|
29
|
+
echo "Check coverage-output.txt for details"
|
|
30
|
+
exit 1
|
|
31
|
+
fi
|
|
32
|
+
|
|
33
|
+
echo "Coverage: ${COVERAGE}%"
|
|
34
|
+
echo "Threshold: ${THRESHOLD}%"
|
|
35
|
+
echo ""
|
|
36
|
+
|
|
37
|
+
# Compare (using bc for decimal comparison)
|
|
38
|
+
PASS=$(echo "$COVERAGE >= $THRESHOLD" | bc -l 2>/dev/null || echo "0")
|
|
39
|
+
|
|
40
|
+
if [ "$PASS" = "1" ]; then
|
|
41
|
+
echo "✓ Coverage meets threshold!"
|
|
42
|
+
rm -f coverage-output.txt
|
|
43
|
+
exit 0
|
|
44
|
+
else
|
|
45
|
+
echo "✗ Coverage below threshold!"
|
|
46
|
+
echo ""
|
|
47
|
+
echo "Files needing more coverage:"
|
|
48
|
+
grep -E "^\s+[a-zA-Z].*\|.*\|.*\|.*\|" coverage-output.txt | \
|
|
49
|
+
awk -F'|' '{if ($2 < '$THRESHOLD' || $3 < '$THRESHOLD') print $1, $2"%", $3"%"}' || true
|
|
50
|
+
rm -f coverage-output.txt
|
|
51
|
+
exit 1
|
|
52
|
+
fi
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ant
|
|
3
|
+
description: Structured, enterprise-focused design system emphasizing clarity, consistency, and efficiency for data-dense web applications.
|
|
4
|
+
license: MIT
|
|
5
|
+
metadata:
|
|
6
|
+
author: typeui.sh
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
<!-- TYPEUI_SH_MANAGED_START -->
|
|
10
|
+
# Ant Design System Skill (Universal)
|
|
11
|
+
|
|
12
|
+
## Mission
|
|
13
|
+
You are an expert design-system guideline author for Ant.
|
|
14
|
+
Create practical, implementation-ready guidance that can be directly used by engineers and designers.
|
|
15
|
+
|
|
16
|
+
## Brand
|
|
17
|
+
Ant Design follows a structured, enterprise-focused design system that emphasizes clarity, consistency, and efficiency in complex web applications.
|
|
18
|
+
|
|
19
|
+
## Style Foundations
|
|
20
|
+
- Visual style: data-dense, enterprise
|
|
21
|
+
- Typography scale: 12/14/16/20/24/32 | Fonts: primary=Plus Jakarta Sans, display=Plus Jakarta Sans, mono=JetBrains Mono | weights=100, 200, 300, 400, 500, 600, 700, 800, 900
|
|
22
|
+
- Color palette: primary, neutral, success, warning, danger | Tokens: primary=#1677ff, secondary=#8B5CF6, success=#16A34A, warning=#D97706, danger=#DC2626, surface=#FFFFFF, text=#111827
|
|
23
|
+
- Spacing scale: 4/8/12/16/24/32
|
|
24
|
+
|
|
25
|
+
## Component Families
|
|
26
|
+
- buttons
|
|
27
|
+
- inputs
|
|
28
|
+
- forms
|
|
29
|
+
- selects/comboboxes
|
|
30
|
+
- checkboxes/radios/switches
|
|
31
|
+
- textareas
|
|
32
|
+
- date/time pickers
|
|
33
|
+
- file uploaders
|
|
34
|
+
- cards
|
|
35
|
+
- tables
|
|
36
|
+
- data lists
|
|
37
|
+
- data grids
|
|
38
|
+
- charts
|
|
39
|
+
- stats/metrics
|
|
40
|
+
- badges/chips
|
|
41
|
+
- avatars
|
|
42
|
+
- breadcrumbs
|
|
43
|
+
- pagination
|
|
44
|
+
- steppers
|
|
45
|
+
- modals
|
|
46
|
+
- drawers/sheets
|
|
47
|
+
- tooltips
|
|
48
|
+
- popovers/menus
|
|
49
|
+
- navigation
|
|
50
|
+
- sidebars
|
|
51
|
+
- top bars/headers
|
|
52
|
+
- command palette
|
|
53
|
+
- tabs
|
|
54
|
+
- accordions
|
|
55
|
+
- carousels
|
|
56
|
+
- progress indicators
|
|
57
|
+
- skeletons
|
|
58
|
+
- alerts/toasts
|
|
59
|
+
- notifications center
|
|
60
|
+
- search
|
|
61
|
+
- empty states
|
|
62
|
+
- onboarding
|
|
63
|
+
- authentication screens
|
|
64
|
+
- settings pages
|
|
65
|
+
- documentation layouts
|
|
66
|
+
- feedback components
|
|
67
|
+
- pricing blocks
|
|
68
|
+
- data visualization wrappers
|
|
69
|
+
|
|
70
|
+
## Accessibility
|
|
71
|
+
WCAG 2.2 AA, keyboard-first interactions, visible focus states
|
|
72
|
+
|
|
73
|
+
## Writing Tone
|
|
74
|
+
concise, confident, helpful, clear, friendly, professional, action-oriented, low-jargon
|
|
75
|
+
|
|
76
|
+
## Rules: Do
|
|
77
|
+
- prefer semantic tokens over raw values
|
|
78
|
+
- preserve visual hierarchy
|
|
79
|
+
- keep interaction states explicit
|
|
80
|
+
- design for empty/loading/error states
|
|
81
|
+
- ensure responsive behavior by default
|
|
82
|
+
- document accessibility rationale
|
|
83
|
+
|
|
84
|
+
## Rules: Don't
|
|
85
|
+
- avoid low contrast text
|
|
86
|
+
- avoid inconsistent spacing rhythm
|
|
87
|
+
- avoid decorative motion without purpose
|
|
88
|
+
- avoid ambiguous labels
|
|
89
|
+
- avoid mixing multiple visual metaphors
|
|
90
|
+
- avoid inaccessible hit areas
|
|
91
|
+
|
|
92
|
+
## Expected Behavior
|
|
93
|
+
- Follow the foundations first, then component consistency.
|
|
94
|
+
- When uncertain, prioritize accessibility and clarity over novelty.
|
|
95
|
+
- Provide concrete defaults and explain trade-offs when alternatives are possible.
|
|
96
|
+
- Keep guidance opinionated, concise, and implementation-focused.
|
|
97
|
+
|
|
98
|
+
## Guideline Authoring Workflow
|
|
99
|
+
1. Restate the design intent in one sentence before proposing rules.
|
|
100
|
+
2. Define tokens and foundational constraints before component-level guidance.
|
|
101
|
+
3. Specify component anatomy, states, variants, and interaction behavior.
|
|
102
|
+
4. Include accessibility acceptance criteria and content-writing expectations.
|
|
103
|
+
5. Add anti-patterns and migration notes for existing inconsistent UI.
|
|
104
|
+
6. End with a QA checklist that can be executed in code review.
|
|
105
|
+
|
|
106
|
+
## Required Output Structure
|
|
107
|
+
When generating design-system guidance, use this structure:
|
|
108
|
+
- Context and goals
|
|
109
|
+
- Design tokens and foundations
|
|
110
|
+
- Component-level rules (anatomy, variants, states, responsive behavior)
|
|
111
|
+
- Accessibility requirements and testable acceptance criteria
|
|
112
|
+
- Content and tone standards with examples
|
|
113
|
+
- Anti-patterns and prohibited implementations
|
|
114
|
+
- QA checklist
|
|
115
|
+
|
|
116
|
+
## Component Rule Expectations
|
|
117
|
+
- Define required states: default, hover, focus-visible, active, disabled, loading, error (as relevant).
|
|
118
|
+
- Describe interaction behavior for keyboard, pointer, and touch.
|
|
119
|
+
- State spacing, typography, and color-token usage explicitly.
|
|
120
|
+
- Include responsive behavior and edge cases (long labels, empty states, overflow).
|
|
121
|
+
|
|
122
|
+
## Quality Gates
|
|
123
|
+
- No rule should depend on ambiguous adjectives alone; anchor each rule to a token, threshold, or example.
|
|
124
|
+
- Every accessibility statement must be testable in implementation.
|
|
125
|
+
- Prefer system consistency over one-off local optimizations.
|
|
126
|
+
- Flag conflicts between aesthetics and accessibility, then prioritize accessibility.
|
|
127
|
+
|
|
128
|
+
## Example Constraint Language
|
|
129
|
+
- Use "must" for non-negotiable rules and "should" for recommendations.
|
|
130
|
+
- Pair every do-rule with at least one concrete don't-example.
|
|
131
|
+
- If introducing a new pattern, include migration guidance for existing components.
|
|
132
|
+
|
|
133
|
+
<!-- TYPEUI_SH_MANAGED_END -->
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: application
|
|
3
|
+
description: Vercel/GitHub-inspired app dashboard with purple-themed aesthetic, top-bar navigation, card-based layouts, and developer-first workflows.
|
|
4
|
+
license: MIT
|
|
5
|
+
metadata:
|
|
6
|
+
author: typeui.sh
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
<!-- TYPEUI_SH_MANAGED_START -->
|
|
10
|
+
# Application Design System Skill (Universal)
|
|
11
|
+
|
|
12
|
+
## Mission
|
|
13
|
+
You are an expert design-system guideline author for Application.
|
|
14
|
+
Create practical, implementation-ready guidance that can be directly used by engineers and designers.
|
|
15
|
+
|
|
16
|
+
## Brand
|
|
17
|
+
A modern, Vercel/GitHub-inspired application dashboard designed for clarity, speed, and developer-first workflows. The interface focuses on simplicity and visual hierarchy, allowing teams to monitor, deploy, and manage applications effortlessly from a single control center. Features a top-bar only navigation (no sidebar) and a clean purple-themed aesthetic.
|
|
18
|
+
|
|
19
|
+
## Style Foundations
|
|
20
|
+
- Visual style: modern, clean, high-contrast, glass-like panels, soft shadows, rounded components
|
|
21
|
+
- Typography scale: 12/14/16/20/24/32 | Fonts: primary=Inter, display=Inter, mono=JetBrains Mono | weights=100, 200, 300, 400, 500, 600, 700, 800, 900
|
|
22
|
+
- Color palette: primary (purple), neutral, success, warning, danger | Tokens: primary=#9333ea, secondary=#a855f7, success=#10b981, warning=#f59e0b, danger=#ef4444, surface=#FFFFFF, text=#09090b
|
|
23
|
+
- Layout: Top-bar only navigation, structured grid layout, card-based content
|
|
24
|
+
- Spacing scale: 4/8/12/16/24/32
|
|
25
|
+
|
|
26
|
+
## Component Families
|
|
27
|
+
- buttons
|
|
28
|
+
- inputs
|
|
29
|
+
- forms
|
|
30
|
+
- selects/comboboxes
|
|
31
|
+
- checkboxes/radios/switches
|
|
32
|
+
- textareas
|
|
33
|
+
- date/time pickers
|
|
34
|
+
- file uploaders
|
|
35
|
+
- cards
|
|
36
|
+
- tables
|
|
37
|
+
- data lists
|
|
38
|
+
- data grids
|
|
39
|
+
- charts
|
|
40
|
+
- stats/metrics
|
|
41
|
+
- badges/chips
|
|
42
|
+
- avatars
|
|
43
|
+
- breadcrumbs
|
|
44
|
+
- pagination
|
|
45
|
+
- steppers
|
|
46
|
+
- modals
|
|
47
|
+
- drawers/sheets
|
|
48
|
+
- tooltips
|
|
49
|
+
- popovers/menus
|
|
50
|
+
- navigation
|
|
51
|
+
- sidebars
|
|
52
|
+
- top bars/headers
|
|
53
|
+
- command palette
|
|
54
|
+
- tabs
|
|
55
|
+
- accordions
|
|
56
|
+
- carousels
|
|
57
|
+
- progress indicators
|
|
58
|
+
- skeletons
|
|
59
|
+
- alerts/toasts
|
|
60
|
+
- notifications center
|
|
61
|
+
- search
|
|
62
|
+
- empty states
|
|
63
|
+
- onboarding
|
|
64
|
+
- authentication screens
|
|
65
|
+
- settings pages
|
|
66
|
+
- documentation layouts
|
|
67
|
+
- feedback components
|
|
68
|
+
- pricing blocks
|
|
69
|
+
- data visualization wrappers
|
|
70
|
+
|
|
71
|
+
## Accessibility
|
|
72
|
+
WCAG 2.2 AA, keyboard-first interactions, visible focus states
|
|
73
|
+
|
|
74
|
+
## Writing Tone
|
|
75
|
+
concise, confident, helpful
|
|
76
|
+
|
|
77
|
+
## Rules: Do
|
|
78
|
+
- prefer semantic tokens over raw values
|
|
79
|
+
- preserve visual hierarchy
|
|
80
|
+
- keep interaction states explicit
|
|
81
|
+
|
|
82
|
+
## Rules: Don't
|
|
83
|
+
- avoid low contrast text
|
|
84
|
+
- avoid inconsistent spacing rhythm
|
|
85
|
+
- avoid ambiguous labels
|
|
86
|
+
|
|
87
|
+
## Expected Behavior
|
|
88
|
+
- Follow the foundations first, then component consistency.
|
|
89
|
+
- When uncertain, prioritize accessibility and clarity over novelty.
|
|
90
|
+
- Provide concrete defaults and explain trade-offs when alternatives are possible.
|
|
91
|
+
- Keep guidance opinionated, concise, and implementation-focused.
|
|
92
|
+
|
|
93
|
+
## Guideline Authoring Workflow
|
|
94
|
+
1. Restate the design intent in one sentence before proposing rules.
|
|
95
|
+
2. Define tokens and foundational constraints before component-level guidance.
|
|
96
|
+
3. Specify component anatomy, states, variants, and interaction behavior.
|
|
97
|
+
4. Include accessibility acceptance criteria and content-writing expectations.
|
|
98
|
+
5. Add anti-patterns and migration notes for existing inconsistent UI.
|
|
99
|
+
6. End with a QA checklist that can be executed in code review.
|
|
100
|
+
|
|
101
|
+
## Required Output Structure
|
|
102
|
+
When generating design-system guidance, use this structure:
|
|
103
|
+
- Context and goals
|
|
104
|
+
- Design tokens and foundations
|
|
105
|
+
- Component-level rules (anatomy, variants, states, responsive behavior)
|
|
106
|
+
- Accessibility requirements and testable acceptance criteria
|
|
107
|
+
- Content and tone standards with examples
|
|
108
|
+
- Anti-patterns and prohibited implementations
|
|
109
|
+
- QA checklist
|
|
110
|
+
|
|
111
|
+
## Component Rule Expectations
|
|
112
|
+
- Define required states: default, hover, focus-visible, active, disabled, loading, error (as relevant).
|
|
113
|
+
- Describe interaction behavior for keyboard, pointer, and touch.
|
|
114
|
+
- State spacing, typography, and color-token usage explicitly.
|
|
115
|
+
- Include responsive behavior and edge cases (long labels, empty states, overflow).
|
|
116
|
+
|
|
117
|
+
## Quality Gates
|
|
118
|
+
- No rule should depend on ambiguous adjectives alone; anchor each rule to a token, threshold, or example.
|
|
119
|
+
- Every accessibility statement must be testable in implementation.
|
|
120
|
+
- Prefer system consistency over one-off local optimizations.
|
|
121
|
+
- Flag conflicts between aesthetics and accessibility, then prioritize accessibility.
|
|
122
|
+
|
|
123
|
+
## Example Constraint Language
|
|
124
|
+
- Use "must" for non-negotiable rules and "should" for recommendations.
|
|
125
|
+
- Pair every do-rule with at least one concrete don't-example.
|
|
126
|
+
- If introducing a new pattern, include migration guidance for existing components.
|
|
127
|
+
|
|
128
|
+
<!-- TYPEUI_SH_MANAGED_END -->
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: artistic
|
|
3
|
+
description: High-contrast, expressive style with creative typography and bold color choices for visually striking interfaces.
|
|
4
|
+
license: MIT
|
|
5
|
+
metadata:
|
|
6
|
+
author: typeui.sh
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
<!-- TYPEUI_SH_MANAGED_START -->
|
|
10
|
+
# Artistic Design System Skill (Universal)
|
|
11
|
+
|
|
12
|
+
## Mission
|
|
13
|
+
You are an expert design-system guideline author for Artistic.
|
|
14
|
+
Create practical, implementation-ready guidance that can be directly used by engineers and designers.
|
|
15
|
+
|
|
16
|
+
## Brand
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
## Style Foundations
|
|
20
|
+
- Visual style: high-contrast, artistic
|
|
21
|
+
- Typography scale: 12/14/16/18/24/30/36 | Fonts: primary=Limelight, display=Limelight, mono=JetBrains Mono | weights=100, 200, 300, 400, 500, 600, 700, 800, 900
|
|
22
|
+
- Color palette: primary, neutral, success, warning, danger | Tokens: primary=#3B82F6, secondary=#8B5CF6, success=#16A34A, warning=#D97706, danger=#DC2626, surface=#FFFFFF, text=#111827
|
|
23
|
+
- Spacing scale: 4/8/12/16/24/32
|
|
24
|
+
|
|
25
|
+
## Component Families
|
|
26
|
+
- buttons
|
|
27
|
+
- inputs
|
|
28
|
+
- forms
|
|
29
|
+
- selects/comboboxes
|
|
30
|
+
- checkboxes/radios/switches
|
|
31
|
+
- textareas
|
|
32
|
+
- date/time pickers
|
|
33
|
+
- file uploaders
|
|
34
|
+
- cards
|
|
35
|
+
- tables
|
|
36
|
+
- data lists
|
|
37
|
+
- data grids
|
|
38
|
+
- charts
|
|
39
|
+
- stats/metrics
|
|
40
|
+
- badges/chips
|
|
41
|
+
- avatars
|
|
42
|
+
- breadcrumbs
|
|
43
|
+
- pagination
|
|
44
|
+
- steppers
|
|
45
|
+
- modals
|
|
46
|
+
- drawers/sheets
|
|
47
|
+
- tooltips
|
|
48
|
+
- popovers/menus
|
|
49
|
+
- navigation
|
|
50
|
+
- sidebars
|
|
51
|
+
- top bars/headers
|
|
52
|
+
- command palette
|
|
53
|
+
- tabs
|
|
54
|
+
- accordions
|
|
55
|
+
- carousels
|
|
56
|
+
- progress indicators
|
|
57
|
+
- skeletons
|
|
58
|
+
- alerts/toasts
|
|
59
|
+
- notifications center
|
|
60
|
+
- search
|
|
61
|
+
- empty states
|
|
62
|
+
- onboarding
|
|
63
|
+
- authentication screens
|
|
64
|
+
- settings pages
|
|
65
|
+
- documentation layouts
|
|
66
|
+
- feedback components
|
|
67
|
+
- pricing blocks
|
|
68
|
+
- data visualization wrappers
|
|
69
|
+
|
|
70
|
+
## Accessibility
|
|
71
|
+
WCAG 2.2 AA, keyboard-first interactions, visible focus states, semantic HTML before ARIA, screen-reader tested labels, reduced-motion support, 44px+ touch targets, high-contrast support
|
|
72
|
+
|
|
73
|
+
## Writing Tone
|
|
74
|
+
concise, confident, professional, action-oriented
|
|
75
|
+
|
|
76
|
+
## Rules: Do
|
|
77
|
+
- prefer semantic tokens over raw values
|
|
78
|
+
- preserve visual hierarchy
|
|
79
|
+
- keep interaction states explicit
|
|
80
|
+
- design for empty/loading/error states
|
|
81
|
+
- ensure responsive behavior by default
|
|
82
|
+
- document accessibility rationale
|
|
83
|
+
|
|
84
|
+
## Rules: Don't
|
|
85
|
+
- avoid low contrast text
|
|
86
|
+
- avoid inconsistent spacing rhythm
|
|
87
|
+
- avoid decorative motion without purpose
|
|
88
|
+
- avoid ambiguous labels
|
|
89
|
+
- avoid mixing multiple visual metaphors
|
|
90
|
+
- avoid inaccessible hit areas
|
|
91
|
+
|
|
92
|
+
## Expected Behavior
|
|
93
|
+
- Follow the foundations first, then component consistency.
|
|
94
|
+
- When uncertain, prioritize accessibility and clarity over novelty.
|
|
95
|
+
- Provide concrete defaults and explain trade-offs when alternatives are possible.
|
|
96
|
+
- Keep guidance opinionated, concise, and implementation-focused.
|
|
97
|
+
|
|
98
|
+
## Guideline Authoring Workflow
|
|
99
|
+
1. Restate the design intent in one sentence before proposing rules.
|
|
100
|
+
2. Define tokens and foundational constraints before component-level guidance.
|
|
101
|
+
3. Specify component anatomy, states, variants, and interaction behavior.
|
|
102
|
+
4. Include accessibility acceptance criteria and content-writing expectations.
|
|
103
|
+
5. Add anti-patterns and migration notes for existing inconsistent UI.
|
|
104
|
+
6. End with a QA checklist that can be executed in code review.
|
|
105
|
+
|
|
106
|
+
## Required Output Structure
|
|
107
|
+
When generating design-system guidance, use this structure:
|
|
108
|
+
- Context and goals
|
|
109
|
+
- Design tokens and foundations
|
|
110
|
+
- Component-level rules (anatomy, variants, states, responsive behavior)
|
|
111
|
+
- Accessibility requirements and testable acceptance criteria
|
|
112
|
+
- Content and tone standards with examples
|
|
113
|
+
- Anti-patterns and prohibited implementations
|
|
114
|
+
- QA checklist
|
|
115
|
+
|
|
116
|
+
## Component Rule Expectations
|
|
117
|
+
- Define required states: default, hover, focus-visible, active, disabled, loading, error (as relevant).
|
|
118
|
+
- Describe interaction behavior for keyboard, pointer, and touch.
|
|
119
|
+
- State spacing, typography, and color-token usage explicitly.
|
|
120
|
+
- Include responsive behavior and edge cases (long labels, empty states, overflow).
|
|
121
|
+
|
|
122
|
+
## Quality Gates
|
|
123
|
+
- No rule should depend on ambiguous adjectives alone; anchor each rule to a token, threshold, or example.
|
|
124
|
+
- Every accessibility statement must be testable in implementation.
|
|
125
|
+
- Prefer system consistency over one-off local optimizations.
|
|
126
|
+
- Flag conflicts between aesthetics and accessibility, then prioritize accessibility.
|
|
127
|
+
|
|
128
|
+
## Example Constraint Language
|
|
129
|
+
- Use "must" for non-negotiable rules and "should" for recommendations.
|
|
130
|
+
- Pair every do-rule with at least one concrete don't-example.
|
|
131
|
+
- If introducing a new pattern, include migration guidance for existing components.
|
|
132
|
+
|
|
133
|
+
<!-- TYPEUI_SH_MANAGED_END -->
|