get-shit-pretty 0.6.3 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/install.js +36 -20
- package/gsp/agents/gsp-accessibility-auditor.md +1 -1
- package/gsp/agents/gsp-ascii-artist.md +1 -1
- package/gsp/agents/gsp-brand-auditor.md +1 -1
- package/gsp/agents/gsp-brand-strategist.md +1 -1
- package/gsp/agents/gsp-builder.md +1 -1
- package/gsp/agents/gsp-campaign-director.md +1 -1
- package/gsp/agents/gsp-creative-director.md +4 -4
- package/gsp/agents/gsp-critic.md +3 -3
- package/gsp/agents/gsp-designer.md +2 -2
- package/gsp/agents/gsp-project-researcher.md +1 -1
- package/gsp/agents/gsp-researcher.md +1 -1
- package/gsp/agents/gsp-reviewer.md +1 -1
- package/gsp/agents/gsp-scoper.md +1 -1
- package/gsp/skills/get-shit-pretty/SKILL.md +10 -9
- package/gsp/skills/gsp-accessibility/SKILL.md +1 -1
- package/gsp/skills/gsp-accessibility-audit/SKILL.md +2 -2
- package/gsp/skills/gsp-add-reference/SKILL.md +5 -0
- package/gsp/skills/gsp-art/SKILL.md +5 -0
- package/gsp/skills/gsp-brand-audit/SKILL.md +2 -2
- package/gsp/skills/gsp-brand-guidelines/SKILL.md +2 -2
- package/gsp/skills/gsp-brand-identity/SKILL.md +3 -3
- package/gsp/skills/gsp-brand-refine/SKILL.md +1 -1
- package/gsp/skills/gsp-brand-research/SKILL.md +2 -2
- package/gsp/skills/gsp-brand-strategy/SKILL.md +4 -4
- package/gsp/skills/gsp-brand-sync/SKILL.md +3 -3
- package/gsp/skills/gsp-brand-sync/chunk-format.md +79 -0
- package/gsp/skills/gsp-color/SKILL.md +24 -56
- package/gsp/skills/gsp-color/chunk-format.md +79 -0
- package/gsp/skills/{gsp-palette/SKILL.md → gsp-color/domains/palette.md} +31 -101
- package/gsp/skills/gsp-color/domains/system.md +123 -0
- package/gsp/skills/gsp-design-system/SKILL.md +5 -0
- package/gsp/skills/gsp-help/SKILL.md +4 -3
- package/gsp/skills/gsp-icons/SKILL.md +1 -1
- package/gsp/skills/gsp-icons/chunk-format.md +79 -0
- package/gsp/skills/gsp-launch/SKILL.md +1 -1
- package/gsp/skills/gsp-logo/SKILL.md +2 -2
- package/gsp/skills/gsp-logo/chunk-format.md +79 -0
- package/gsp/skills/gsp-phase-transition/SKILL.md +124 -0
- package/gsp/skills/gsp-project-brief/SKILL.md +1 -1
- package/gsp/skills/gsp-project-build/SKILL.md +10 -5
- package/gsp/skills/gsp-project-critique/SKILL.md +5 -5
- package/gsp/{references → skills/gsp-project-critique}/visual-taste.md +1 -1
- package/gsp/skills/gsp-project-design/SKILL.md +1 -1
- package/gsp/skills/gsp-project-research/SKILL.md +1 -1
- package/gsp/skills/gsp-project-review/SKILL.md +1 -1
- package/gsp/skills/gsp-start/SKILL.md +1 -1
- package/gsp/skills/gsp-style/SKILL.md +4 -4
- package/gsp/skills/gsp-style/chunk-format.md +79 -0
- package/gsp/skills/gsp-style/style-preset-schema.md +124 -0
- package/gsp/skills/gsp-typography/SKILL.md +28 -66
- package/gsp/skills/gsp-typography/chunk-format.md +79 -0
- package/gsp/skills/gsp-typography/domains/pairing.md +109 -0
- package/gsp/skills/gsp-typography/domains/scale.md +227 -0
- package/gsp/skills/gsp-typography/domains/system.md +108 -0
- package/gsp/skills/gsp-visuals/SKILL.md +82 -0
- package/gsp/skills/gsp-visuals/chunk-format.md +79 -0
- package/gsp/skills/{gsp-3d/SKILL.md → gsp-visuals/domains/3d.md} +62 -47
- package/gsp/skills/{gsp-images/SKILL.md → gsp-visuals/domains/imagery.md} +17 -69
- package/gsp/skills/{gsp-textures/SKILL.md → gsp-visuals/domains/textures.md} +54 -48
- package/gsp/skills/{gsp-video/SKILL.md → gsp-visuals/domains/video.md} +53 -47
- package/gsp/templates/branding/config.json +1 -1
- package/gsp/templates/phases/brief.md +1 -1
- package/gsp/templates/phases/critique.md +1 -1
- package/gsp/templates/phases/design.md +1 -1
- package/gsp/templates/phases/discover.md +1 -1
- package/gsp/templates/phases/identity.md +1 -1
- package/gsp/templates/phases/launch.md +1 -1
- package/gsp/templates/phases/patterns.md +1 -1
- package/gsp/templates/phases/research.md +1 -1
- package/gsp/templates/phases/review.md +1 -1
- package/gsp/templates/phases/strategy.md +1 -1
- package/gsp/templates/projects/config.json +1 -1
- package/package.json +1 -1
- package/gsp/references/phase-transitions.md +0 -132
- package/gsp/references/style-preset-schema.md +0 -63
- package/gsp/skills/gsp-typescale/SKILL.md +0 -234
- /package/gsp/{references → skills/gsp-accessibility-audit}/wcag-checklist.md +0 -0
- /package/gsp/{references → skills/gsp-art}/terminal-art.md +0 -0
- /package/gsp/{references → skills/gsp-brand-audit}/chunk-format.md +0 -0
- /package/gsp/{references → skills/gsp-brand-guidelines}/design-tokens.md +0 -0
- /package/gsp/{references → skills/gsp-brand-guidelines}/token-mapping.md +0 -0
- /package/gsp/{references → skills/gsp-brand-research}/design-trends.md +0 -0
- /package/gsp/{references → skills/gsp-brand-strategy}/brand-archetypes.md +0 -0
- /package/gsp/{references → skills/gsp-brand-strategy}/brand-prism.md +0 -0
- /package/gsp/{references → skills/gsp-brand-strategy}/positioning-frameworks.md +0 -0
- /package/gsp/{references → skills/gsp-brand-strategy}/voice-tone.md +0 -0
- /package/gsp/{references → skills/gsp-color/references}/color-composition.md +0 -0
- /package/gsp/{references → skills/gsp-project-build}/visual-effects.md +0 -0
- /package/gsp/{references → skills/gsp-project-critique}/anti-patterns.md +0 -0
- /package/gsp/{references → skills/gsp-project-critique}/nielsen-heuristics.md +0 -0
- /package/gsp/{references → skills/gsp-project-design}/apple-hig-patterns.md +0 -0
- /package/gsp/{references → skills/gsp-project-design}/block-patterns.md +0 -0
- /package/gsp/{references → skills/gsp-start}/questioning.md +0 -0
- /package/gsp/{references → skills/gsp-typography/references}/typography-scales.md +0 -0
|
@@ -1,234 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: gsp-typescale
|
|
3
|
-
description: Generate a mathematical type scale — standalone or as a building block for identity
|
|
4
|
-
user-invocable: true
|
|
5
|
-
model: sonnet
|
|
6
|
-
allowed-tools:
|
|
7
|
-
- Read
|
|
8
|
-
- Write
|
|
9
|
-
- Bash
|
|
10
|
-
- AskUserQuestion
|
|
11
|
-
- WebSearch
|
|
12
|
-
---
|
|
13
|
-
<context>
|
|
14
|
-
You are a GSP type scale generator. You produce a complete typography system from a base size, ratio, and font family — including fluid responsive sizing, vertical rhythm, Tailwind/shadcn integration, and accessibility-compliant defaults. Downstream agents (creative-director, system-architect, builder) consume the output files.
|
|
15
|
-
|
|
16
|
-
This is a standalone composable skill. It works two ways:
|
|
17
|
-
1. **Standalone** — user runs `/gsp-typescale "Inter" --ratio 1.25` directly, gets a production-ready type system
|
|
18
|
-
2. **As a building block** — identity phase detects existing typography files and reuses them
|
|
19
|
-
|
|
20
|
-
Visual companion: https://typescale.com/ — users can preview ratios interactively there, then feed the values here.
|
|
21
|
-
</context>
|
|
22
|
-
|
|
23
|
-
<objective>
|
|
24
|
-
Generate a production-ready typography system with fluid responsive sizing, vertical rhythm, and framework-native output.
|
|
25
|
-
|
|
26
|
-
**Input:** Font family, ratio, and options (args or interactive)
|
|
27
|
-
**Output:** `typography.md` foundation chunk + `tailwind.typography.css` (Tailwind/shadcn) or `typescale.css` (vanilla) in the target directory
|
|
28
|
-
**Agent:** None — mathematical scale generation, handled inline
|
|
29
|
-
</objective>
|
|
30
|
-
|
|
31
|
-
<execution_context>
|
|
32
|
-
@${CLAUDE_SKILL_DIR}/../../references/chunk-format.md
|
|
33
|
-
@${CLAUDE_SKILL_DIR}/../../references/typography-scales.md
|
|
34
|
-
</execution_context>
|
|
35
|
-
|
|
36
|
-
<rules>
|
|
37
|
-
- Always use `AskUserQuestion` for user interaction — never prompt via plain text
|
|
38
|
-
- One decision per question — never batch multiple questions in a single message
|
|
39
|
-
- Foundation chunks follow `references/chunk-format.md` format exactly
|
|
40
|
-
- All sizes include px, rem, AND fluid clamp() values for headings
|
|
41
|
-
- Line heights snap to a 4px grid for vertical rhythm (body 24px = 6 × 4px)
|
|
42
|
-
- Letter spacing follows the size-dependent curve: negative for large type, positive for small type, wide for all-caps (see reference)
|
|
43
|
-
- CSS output defaults to Tailwind v4 / shadcn format unless `--vanilla` is passed
|
|
44
|
-
- WCAG 2.2 AA compliance: body line-height ≥ 1.5, layout must survive SC 1.4.12 text spacing overrides
|
|
45
|
-
</rules>
|
|
46
|
-
|
|
47
|
-
<process>
|
|
48
|
-
## Step 0: Parse invocation
|
|
49
|
-
|
|
50
|
-
Read the user's input to determine the mode:
|
|
51
|
-
|
|
52
|
-
| Input | Mode |
|
|
53
|
-
|-------|------|
|
|
54
|
-
| `/gsp-typescale "Inter" --ratio 1.25` | Direct — font and ratio from args |
|
|
55
|
-
| `/gsp-typescale --from-style cyberpunk` | From style — extract typography from a preset |
|
|
56
|
-
| `/gsp-typescale` | Interactive — ask for inputs |
|
|
57
|
-
| `/gsp-typescale --list-ratios` | List — show available ratios |
|
|
58
|
-
| `/gsp-typescale --preview "Inter" --ratio 1.25` | Preview — show scale without writing files |
|
|
59
|
-
|
|
60
|
-
Additional flags (combinable with any mode):
|
|
61
|
-
- **--vanilla** — output plain CSS custom properties instead of Tailwind format
|
|
62
|
-
- **--fluid** — use clamp()-based fluid sizing instead of breakpoint steps (default: fluid)
|
|
63
|
-
- **--no-fluid** — use breakpoint steps only, no clamp()
|
|
64
|
-
- **--grid 4** — vertical rhythm grid unit in px (default: 4)
|
|
65
|
-
|
|
66
|
-
## Step 1: List ratios mode (`--list-ratios`)
|
|
67
|
-
|
|
68
|
-
If `--list-ratios`, display the built-in ratios with practical context:
|
|
69
|
-
|
|
70
|
-
```
|
|
71
|
-
/gsp-typescale — ratios
|
|
72
|
-
═══════════════════════════════════════
|
|
73
|
-
|
|
74
|
-
Name Ratio Character Best for
|
|
75
|
-
──────────────────────────────────────────────────────────────────
|
|
76
|
-
minor-second 1.067 Nearly invisible steps Dense data UIs, admin panels
|
|
77
|
-
major-second 1.125 Gentle, functional Documentation, dashboards
|
|
78
|
-
minor-third 1.200 Balanced, versatile Most product UIs (Polaris uses this)
|
|
79
|
-
major-third 1.250 Clear hierarchy Marketing + product hybrid
|
|
80
|
-
perfect-fourth 1.333 Strong contrast Content-heavy sites, blogs
|
|
81
|
-
augmented-fourth 1.414 Dramatic Editorial, magazine layouts
|
|
82
|
-
perfect-fifth 1.500 Very dramatic Landing pages, hero sections
|
|
83
|
-
golden-ratio 1.618 Maximum drama Art, luxury, display-heavy
|
|
84
|
-
|
|
85
|
-
──────────────────────────────────────────────────────────────────
|
|
86
|
-
Usage: /gsp-typescale "Inter" --ratio 1.25
|
|
87
|
-
Preview interactively: https://typescale.com/
|
|
88
|
-
```
|
|
89
|
-
|
|
90
|
-
Stop here. Do not write any files.
|
|
91
|
-
|
|
92
|
-
## Step 2: Collect inputs
|
|
93
|
-
|
|
94
|
-
### Direct mode (args provided)
|
|
95
|
-
|
|
96
|
-
Parse from the invocation:
|
|
97
|
-
- **Font family** — quoted string (e.g., `"Inter"`)
|
|
98
|
-
- **--ratio** — scale ratio (e.g., `1.25`)
|
|
99
|
-
- **--secondary** — optional secondary font (e.g., `--secondary "Merriweather"`)
|
|
100
|
-
- **--mono** — optional monospace font (e.g., `--mono "Geist Mono"`)
|
|
101
|
-
- **--base** — optional base size in px (default: `16`)
|
|
102
|
-
- **--weights** — optional weight list (e.g., `--weights 400,500,700`)
|
|
103
|
-
- **--line-height** — optional base line-height override (default: `1.5`)
|
|
104
|
-
- **--letter-spacing** — optional base letter-spacing override (default: `0`)
|
|
105
|
-
|
|
106
|
-
### From-style mode (`--from-style`)
|
|
107
|
-
|
|
108
|
-
Read the style preset YAML from `../gsp-style/styles/{name}.yml`. Extract:
|
|
109
|
-
- `typography.font-family-primary` → primary font
|
|
110
|
-
- `typography.font-family-mono` → mono font
|
|
111
|
-
- `typography.font-size-base` → base size
|
|
112
|
-
- `typography.font-weight-heading` → heading weight
|
|
113
|
-
- `typography.font-weight-body` → body weight
|
|
114
|
-
- `typography.line-height-base` → base line height
|
|
115
|
-
|
|
116
|
-
Calculate the implied ratio from the preset's type scale if present, or default to major-third (1.25).
|
|
117
|
-
|
|
118
|
-
### Interactive mode (no args)
|
|
119
|
-
|
|
120
|
-
Use `AskUserQuestion` for each input:
|
|
121
|
-
|
|
122
|
-
1. **Primary font** — offer: Inter, Geist Sans, Plus Jakarta Sans, DM Sans, Space Grotesk, Instrument Serif, Custom
|
|
123
|
-
2. **Scale ratio** — offer: minor-third (1.2), major-third (1.25), perfect-fourth (1.333), augmented-fourth (1.414), Custom. Link https://typescale.com/ for preview.
|
|
124
|
-
3. **Base size** — default 16px unless specified
|
|
125
|
-
|
|
126
|
-
## Step 3: Calculate type scale
|
|
127
|
-
|
|
128
|
-
Generate a 9-level scale: `size = base × ratio^n`. Round px to nearest 0.5px, rem = `px / 16`.
|
|
129
|
-
|
|
130
|
-
| Level | Exponent | Tailwind | Purpose |
|
|
131
|
-
|-------|----------|----------|---------|
|
|
132
|
-
| Display | 5 | `text-6xl`–`text-7xl` | Hero headlines |
|
|
133
|
-
| H1 | 4 | `text-4xl` | Page titles |
|
|
134
|
-
| H2 | 3 | `text-3xl` | Section headings |
|
|
135
|
-
| H3 | 2 | `text-2xl` | Subsection headings |
|
|
136
|
-
| H4 | 1 | `text-xl` | Minor headings |
|
|
137
|
-
| body-large | 0.5* | `text-lg` | Lead paragraphs |
|
|
138
|
-
| body | 0 | `text-base` | Default body (= base) |
|
|
139
|
-
| body-small | -1 | `text-sm` | Secondary text |
|
|
140
|
-
| caption | -2 | `text-xs` | Labels, helper text |
|
|
141
|
-
| overline | -2 | `text-xs` | All-caps labels (= caption size) |
|
|
142
|
-
|
|
143
|
-
*body-large uses half-step exponent to bridge body → H4 gap.
|
|
144
|
-
|
|
145
|
-
### Line height per level (snapped to 4px grid)
|
|
146
|
-
|
|
147
|
-
Formula: `ceil(fontSize * targetRatio / 4) * 4` — every line-height is a multiple of 4px.
|
|
148
|
-
|
|
149
|
-
| Level | Target ratio |
|
|
150
|
-
|-------|-------------|
|
|
151
|
-
| Display | 1.1 |
|
|
152
|
-
| H1 | 1.15 |
|
|
153
|
-
| H2 | 1.2 |
|
|
154
|
-
| H3 | 1.25 |
|
|
155
|
-
| H4 | 1.3 |
|
|
156
|
-
| body-large | 1.5 |
|
|
157
|
-
| body | 1.5 (anchor: e.g. 24px = 6 × 4px) |
|
|
158
|
-
| body-small | 1.5 |
|
|
159
|
-
| caption | 1.4 |
|
|
160
|
-
| overline | 1.5 |
|
|
161
|
-
|
|
162
|
-
If user provided `--line-height`, use it as the body target ratio and adjust proportionally.
|
|
163
|
-
|
|
164
|
-
### Letter spacing per level (size-dependent curve)
|
|
165
|
-
|
|
166
|
-
Based on the principle: small text needs more space, large text needs less. Reference: Apple SF Pro tracking, Tailwind defaults.
|
|
167
|
-
|
|
168
|
-
| Level | Letter spacing | Tailwind token | Rationale |
|
|
169
|
-
|-------|---------------|----------------|-----------|
|
|
170
|
-
| Display | -0.025em | `tracking-tighter` | Tighten large type |
|
|
171
|
-
| H1 | -0.025em | `tracking-tight` | |
|
|
172
|
-
| H2 | -0.025em | `tracking-tight` | |
|
|
173
|
-
| H3 | -0.015em | `tracking-tight` | |
|
|
174
|
-
| H4 | -0.01em | `tracking-tight` | |
|
|
175
|
-
| body-large | 0 | `tracking-normal` | Neutral |
|
|
176
|
-
| body | 0 | `tracking-normal` | |
|
|
177
|
-
| body-small | 0.01em | `tracking-normal` | Slightly open small text |
|
|
178
|
-
| caption | 0.015em | `tracking-wide` | |
|
|
179
|
-
| overline | 0.1em | `tracking-wider` | Wide-tracked for all-caps |
|
|
180
|
-
|
|
181
|
-
## Step 3.5: Calculate fluid type values
|
|
182
|
-
|
|
183
|
-
For headings (Display → H4), generate `clamp()` values scaling between 375px (mobile) and 1280px (desktop). Mobile uses a ratio two steps down from the chosen ratio. Body and below stay fixed.
|
|
184
|
-
|
|
185
|
-
**Ratio step-down map:**
|
|
186
|
-
|
|
187
|
-
```
|
|
188
|
-
golden-ratio → perfect-fifth → augmented-fourth
|
|
189
|
-
perfect-fifth → augmented-fourth → perfect-fourth
|
|
190
|
-
augmented-fourth → perfect-fourth → major-third
|
|
191
|
-
perfect-fourth → major-third → minor-third
|
|
192
|
-
major-third → minor-third → major-second
|
|
193
|
-
minor-third → major-second → minor-second
|
|
194
|
-
major-second → minor-second → minor-second
|
|
195
|
-
minor-second → minor-second → minor-second (floor)
|
|
196
|
-
```
|
|
197
|
-
|
|
198
|
-
If `--no-fluid` is passed, skip clamp() and use breakpoint-only `@media` rules instead.
|
|
199
|
-
|
|
200
|
-
## Step 4: Preview mode (`--preview`)
|
|
201
|
-
|
|
202
|
-
If `--preview`, display all 10 levels in a table with columns: Level, Mobile px, Desktop px, Fluid clamp(), Weight, LH, LS. Show base/ratio/fluid range header. Footer: grid unit, body line-height anchor, usage hint to write files. Stop here — do not write any files.
|
|
203
|
-
|
|
204
|
-
## Step 5: Resolve output path
|
|
205
|
-
|
|
206
|
-
Determine where to write the typography output:
|
|
207
|
-
|
|
208
|
-
### Within a brand identity
|
|
209
|
-
If a brand context exists (`.design/branding/{brand}/`):
|
|
210
|
-
- Write to `{BRAND_PATH}/identity/`
|
|
211
|
-
- Typography files sit alongside other identity artifacts
|
|
212
|
-
|
|
213
|
-
### Standalone (no brand context)
|
|
214
|
-
- Write to `.design/branding/_typescale/`
|
|
215
|
-
- Create minimal directory structure
|
|
216
|
-
|
|
217
|
-
## Step 6: Write typography.md
|
|
218
|
-
|
|
219
|
-
Write `{OUTPUT_PATH}/typography.md` as a foundation chunk per `references/chunk-format.md`. Required sections: Font Families (with Google Fonts URL), Type Scale (all 10 levels — px, rem, clamp, weight, LH, LS, Tailwind class), shadcn/ui Typography Classes, Vertical Rhythm (grid unit + spacing tokens), Weights, Accessibility (WCAG 2.2 AA), Variable Font Notes (conditional), Modern CSS (`text-wrap: balance/pretty`), Related.
|
|
220
|
-
|
|
221
|
-
## Step 7: Write CSS output
|
|
222
|
-
|
|
223
|
-
### Tailwind / shadcn mode (default)
|
|
224
|
-
|
|
225
|
-
Write `{OUTPUT_PATH}/tailwind.typography.css` — Tailwind v4 `@theme` extension. Include: header comment, Google Fonts `@import`, `--font-sans`/`--font-mono` + custom `--text-{level}` tokens (with `--line-height`, `--letter-spacing`, `--font-weight` sub-tokens), `:root` fluid clamp() properties (rem-based min/max only — never pure vw per WCAG 1.4.4), utility classes (`.text-display` through `.text-overline`), optical sizing + dark mode antialiasing, `text-wrap: balance` headings / `pretty` paragraphs.
|
|
226
|
-
|
|
227
|
-
### Vanilla mode (`--vanilla`)
|
|
228
|
-
|
|
229
|
-
Write `{OUTPUT_PATH}/typescale.css` instead — plain CSS custom properties (no Tailwind syntax). Include: Google Fonts import, `:root` with font families, weights, fluid font sizes (clamp, rem-based), 4px grid-snapped line heights, letter spacing, vertical rhythm tokens.
|
|
230
|
-
|
|
231
|
-
## Step 8: Completion output
|
|
232
|
-
|
|
233
|
-
Show: header (`/gsp-typescale — {font} @ {ratio}`), file tree (typography.md + CSS file), scale summary (ratio, range, levels, fluid, grid). Then `AskUserQuestion`: Generate palette → `/gsp-palette`, Apply a full style → `/gsp-style`, Continue to identity → `/gsp-brand-identity`, Done.
|
|
234
|
-
</process>
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|