sheleg-design-skill 1.33.0 → 1.34.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/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,48 @@ All notable changes to this project are documented in this file. The format
|
|
|
4
4
|
follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/); versions
|
|
5
5
|
follow [SemVer](https://semver.org/spec/v2.0.0.html).
|
|
6
6
|
|
|
7
|
+
## [1.34.0] - 2026-08-15
|
|
8
|
+
|
|
9
|
+
**The pack was applied correctly and the result still read as somebody else's typography.**
|
|
10
|
+
Everything measured green — zero radius, zero shadow, two hues, AA on every pair — and the
|
|
11
|
+
dashboard was flat. This release is what the flatness turned out to be, and most of it is a
|
|
12
|
+
correction to the `### On a product surface` section shipped two versions ago.
|
|
13
|
+
|
|
14
|
+
### Fixed — in `tenor`
|
|
15
|
+
|
|
16
|
+
- **"A dashboard has no display type" threw away the rule that makes this pack legible.** The
|
|
17
|
+
section rhythm is a page value and stays out; the *tracking rule* is not, and it only acts on
|
|
18
|
+
type large enough to show it. A screen title at 30px tracked `-0.02em` is the rule acting on
|
|
19
|
+
nothing. The section now separates the **ramp** (out) from the **rule** (in) and gives the three
|
|
20
|
+
steps a dashboard actually has — screen title, section head, metric — with sizes, tracking and
|
|
21
|
+
line-height for each. All three at weight **400**: ranking by size is this pack's device and
|
|
22
|
+
ranking by weight is the one it replaced. Measured against a ramp of 30 / 16 / 13, where the
|
|
23
|
+
jump from title to section head was **3:1 with nothing between** — two sizes that far apart stop
|
|
24
|
+
reading as a hierarchy.
|
|
25
|
+
- **A stat row built as four bordered boxes breaks the inversion.** `## Components` already said
|
|
26
|
+
three equal blocks share one lattice and never read as three cards; what it did not say is that
|
|
27
|
+
the construction is load-bearing on a product surface. Container draws top and left, each cell
|
|
28
|
+
draws right and bottom, **gap zero**. Build it with boxes 12px apart and the hover inversion
|
|
29
|
+
leaves a seam down every border it touches.
|
|
30
|
+
- **A colour earns its place where the column varies, and the chip rule only covered half of it.**
|
|
31
|
+
1.32.0 dropped the box from a chip repeated down a table; the hue stayed. Measured across twenty
|
|
32
|
+
routes: on the agent-connections screen, **82 rows all reading `ACTIVE` and 421 green marks**,
|
|
33
|
+
none of which told the reader anything, because a value that never changes is not a status. Two
|
|
34
|
+
screens away the audit log spends the same green across 200 rows against the warn value and it
|
|
35
|
+
carries the whole distinction. Set the severity value only on rows that differ from the column's
|
|
36
|
+
norm; leave the norm in `--ink`.
|
|
37
|
+
|
|
38
|
+
### Added — in `tenor`
|
|
39
|
+
|
|
40
|
+
- **The motion budget of a product surface, stated.** Every motion token in this pack is a page
|
|
41
|
+
value — a 640ms fade, an 820ms travel, a 110ms stagger four steps deep — spent on a block a
|
|
42
|
+
reader scrolls to once. `MOTION_DOCTRINE.md` §1 puts a dashboard's screens in the row where
|
|
43
|
+
animation is cut to the floor, so **the entrance budget on a product surface is zero**: nothing
|
|
44
|
+
plays on load, on client navigation or on a keystroke. What remains is the whole budget and it is
|
|
45
|
+
enough — the cell inversion, the nav underline, the focus ring, the fill on a hovered control.
|
|
46
|
+
Each is caused by the reader's own pointer, which is what makes it read as a response rather
|
|
47
|
+
than as a delay.
|
|
48
|
+
|
|
7
49
|
## [1.33.0] - 2026-08-15
|
|
8
50
|
|
|
9
51
|
**Three things the pack asserts that a running page disproved.** Same dashboard as 1.32.0,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sheleg-design-skill",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.34.0",
|
|
4
4
|
"description": "Design taste as an installable agent skill. Cinematic scroll-driven landing pages built on one scroll clock and layered degrade-to-calm motion, a motion doctrine that decides whether to animate before it decides how, three calibration dials, and twenty locked style packs with ready-made design tokens — instrument-console, editorial-luxury, workbench, briefing-room, atrium, orchard, field-notes, cyclorama, showroom, blueprint, prism, maquette, scoreboard, datasheet, manpage, pigeonhole, roster, ora, tenor and paperclip. Colour, slop and fork-reciprocity gates run as scripts, not opinions. Works with Cursor, Claude Code and any agent that reads a SKILL.md.",
|
|
5
5
|
"bin": {
|
|
6
6
|
"sheleg-design-skill": "bin/cli.js"
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "sheleg-design",
|
|
3
3
|
"displayName": "SHELEG Design",
|
|
4
4
|
"description": "SHELEG Design methodology: cinematic scroll-driven landing pages (single scroll clock, layered degrade-to-calm motion, WebGL particle formations), a motion doctrine that decides whether to animate before it decides how, and twenty pluggable visual style packs — instrument-console (dark console), editorial-luxury (warm editorial), workbench (light/dark product UI for dashboards and tools), briefing-room (dark 16:9 deck), atrium (warm consumer health), orchard (friendly consumer biotech), field-notes (warm paper for dev tools sold on auditability), cyclorama (a pastel field on a 32s cycle), showroom (the product as the exhibit), blueprint (a drawing sheet, zero radius), prism (one iridescent wash over mono body), maquette (cream axonometric models on a dark table), scoreboard (warm paper, pixel numerals, a dark ledger of results), datasheet (an off-white spec sheet whose live instrument goes dark when it detects the reader is hiding), manpage (a developer landing page set in the reader's own system monospace on cream paper, with coral label chips that are real headings and a dark code frame as the argument), pigeonhole (a white sorting wall whose nine pastel categories are a filing scheme rather than a mood, each a two-layer chip whose label word is mandatory), roster (a white field in a faint grid of squares whose argument is other people's marks — client logotypes in pill-labelled industry columns, an engine's wordmark inside the headline — where the proof is a name rather than a number), ora (a warm coal field with cream ink and no third hue — the accent is the inverted field — a serif carrying every human sentence over a monospace carrying every machine fact, a terminal surface cut below the page, and a six-step verdict ramp, for products whose output is a machine's verdict about the reader), tenor (warm paper with zero radius and zero shadow, one hairline weight, an orange that exists only on hover and on focus, a sans tracked negative against a mono tracked positive, display at a line-height below one in an eight-to-twelve-character measure, and product proof delivered as silent looping video, for products arguing that a new kind of thing must be managed like an existing organisation), paperclip (neutral coal with no functional colour at all — every control monochrome and elevation made of hairlines, with the whole chromatic budget spent on a curtain of gradient capsules and twelve gradient section badges that cannot be clicked — for products that ask a person to run something that runs itself: agent teams, autonomous back-office, schedulers and budget-governed compute). Ships the sheleg-design skill, the architecture reference, the motion doctrine, the Figma and Claude Design bridges, AI-surface patterns, style packs with ready-made token CSS, and the /sheleg-design command.",
|
|
5
|
-
"version": "1.
|
|
5
|
+
"version": "1.34.0",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "ssheleg",
|
|
8
8
|
"url": "https://x.com/sshlg93"
|
|
@@ -3,7 +3,7 @@ name: sheleg-design
|
|
|
3
3
|
description: Use when building or upgrading a cinematic scroll-driven landing page, marketing site or hero (particle/WebGL background, scroll-linked animation, parallax, scrubbed sections) — when such a page feels busy or janky or its motion layers drift out of sync — or when styling product UI with its style packs - dashboards, admin panels, internal/dev tools, mobile app screens, design tokens, light/dark themes - or when carrying a visual system across the Figma border (publishing tokens as variables, implementing a design without importing raw values). Triggers - "cinematic landing" / "кинематографичный лендинг", "scroll animation" / "скролл-анимация", "dashboard style" / "стиль дашборда", "design tokens" / "дизайн-токены", "light/dark theme" / "светлая/тёмная тема", "figma variables / figma to code" / "переменные фигмы, фигма в код", "chat/agent UI" / "интерфейс чата или агента", "streaming output" / "стриминг ответа", "mobile screen" / "мобильный экран".
|
|
4
4
|
license: MIT
|
|
5
5
|
metadata:
|
|
6
|
-
version: 1.
|
|
6
|
+
version: 1.34.0
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# SHELEG Design
|
|
@@ -297,6 +297,16 @@ mounting the pack on a populated twenty-route dashboard rather than reasoned abo
|
|
|
297
297
|
the status as the word alone in its severity value, with `--warn` kept for the
|
|
298
298
|
mark beside it. Panels and tiles are unaffected: the same lattice at four cells
|
|
299
299
|
across a dashboard's stat row reads exactly as it does on the page.
|
|
300
|
+
|
|
301
|
+
**And dropping the box is only half of it: a colour earns its place where the
|
|
302
|
+
column varies.** Measured across twenty routes of one dashboard — on the screen
|
|
303
|
+
listing agent connections, **82 rows all reading `ACTIVE`, 421 green marks, and
|
|
304
|
+
not one of them told the reader anything**, because a value that never changes
|
|
305
|
+
is not a status. Two screens away the audit log spends the same green across 200
|
|
306
|
+
rows against the warn value, and there it carries the whole distinction. The
|
|
307
|
+
rule: **set the severity value only on the rows that differ from the column's
|
|
308
|
+
own norm**, and leave the norm in `--ink`. A constant column is prose, and prose
|
|
309
|
+
is not coloured here.
|
|
300
310
|
- **Prose sits on two fields at once and `--ink-soft` fails on the second.** This
|
|
301
311
|
is what produced `--ink-soft-aa`; see Gotcha 1.
|
|
302
312
|
- **A data mark must not borrow the hairline, and in this pack it silently will.**
|
|
@@ -315,12 +325,59 @@ mounting the pack on a populated twenty-route dashboard rather than reasoned abo
|
|
|
315
325
|
`dataviz` first — token names are not uniform across the twenty, and an aliased
|
|
316
326
|
one fails exactly this quietly.
|
|
317
327
|
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
328
|
+
**The type ramp is where this section was wrong, and the correction matters more
|
|
329
|
+
than the error.** It used to say a dashboard has "neither a section rhythm nor
|
|
330
|
+
display type" and to keep the product's own scale outright. The first half holds
|
|
331
|
+
— the section rhythm is a page value. The second half threw away the thing that
|
|
332
|
+
makes this pack legible: **the tracking rule only acts on type large enough to
|
|
333
|
+
show it.** A screen title at 30px tracked `-0.02em` is the rule acting on
|
|
334
|
+
nothing, and a product mounted that way reads as the pack's palette with somebody
|
|
335
|
+
else's typography inside it.
|
|
336
|
+
|
|
337
|
+
So the distinction is between the *ramp* and the *rule*. The marketing ramp stays
|
|
338
|
+
out: no `clamp(3rem, 6.5vw, 6.6rem)`, no 8–12ch measures, no section head at
|
|
339
|
+
6.6rem. The tracking rule comes in, and a dashboard has exactly **three steps**
|
|
340
|
+
for it to act on:
|
|
341
|
+
|
|
342
|
+
| Step | Size | Tracking | Weight |
|
|
343
|
+
|---|---|---|---|
|
|
344
|
+
| The screen title — one per screen | `clamp(2.35rem, 3vw, 3.15rem)` | `-0.04em` | 400 |
|
|
345
|
+
| A section head | `clamp(1.2rem, 1.4vw, 1.45rem)` | `-0.03em` | 400 |
|
|
346
|
+
| A metric — the argument of the screen | `clamp(2.1rem, 2.4vw, 2.75rem)` | `-0.045em` | 500, mono |
|
|
347
|
+
|
|
348
|
+
Line-height goes to `0.98` on the title and `1` on the metric — below the prose
|
|
349
|
+
leading, which is what makes a title read as a drawn object rather than as a
|
|
350
|
+
large sentence. **All three drop to weight 400 in the sans**, because ranking by
|
|
351
|
+
size is the pack's device and ranking by weight is the one it replaced; a heading
|
|
352
|
+
distinguished by being semibold at body size is a heading with no step under it.
|
|
353
|
+
Measured on a dashboard whose ramp was 30 / 16 / 13: the jump from title to
|
|
354
|
+
section head was 3:1 with nothing between, and two sizes that far apart stop
|
|
355
|
+
reading as a hierarchy and start reading as two unrelated decisions.
|
|
356
|
+
|
|
357
|
+
**A stat row is a lattice, and it is built per cell or the inversion breaks.**
|
|
358
|
+
The `## Components` entry says three equal blocks share one lattice and never read
|
|
359
|
+
as three cards; on a product surface that is the row of metric tiles, and the
|
|
360
|
+
construction is load-bearing rather than stylistic. The container draws its top
|
|
361
|
+
and left edge, each cell draws its right and bottom, and **the gap is zero** — a
|
|
362
|
+
lattice has no gap. Build it with four bordered boxes 12px apart and the hover
|
|
363
|
+
inversion leaves a seam down every border it touches, which is the exact failure
|
|
364
|
+
`border-collapse` and a background line also produce.
|
|
365
|
+
|
|
366
|
+
**Motion on a product surface is pointer-driven and nothing else.** Tenor's motion
|
|
367
|
+
tokens are page values — a 640ms fade, an 820ms travel, a 110ms stagger four steps
|
|
368
|
+
deep — and every one of them is spent on a block a reader scrolls to once.
|
|
369
|
+
`MOTION_DOCTRINE.md` §1 puts a dashboard's screens in the row where animation is
|
|
370
|
+
cut to the floor, because the same screen is opened tens of times a day, so **the
|
|
371
|
+
entrance budget on a product surface is zero**: nothing plays on load, on client
|
|
372
|
+
navigation, or on a keystroke. What is left is the whole budget and it is enough —
|
|
373
|
+
the cell inversion at `--dur-panel`, the nav underline at `--dur-nav`, the focus
|
|
374
|
+
ring, and the fill on a hovered control. Each is caused by the reader's own
|
|
375
|
+
pointer, which is what makes it feel like a response rather than like a delay.
|
|
376
|
+
|
|
377
|
+
What still does **not** change: the spacing scale and the section rhythm. Keep the
|
|
378
|
+
product's own spacing and take the pack's *surface* — the field, the zero radius,
|
|
379
|
+
the single hairline, the hue that only appears under the cursor, and the two
|
|
380
|
+
tracking ramps.
|
|
324
381
|
|
|
325
382
|
## Hero
|
|
326
383
|
|