@ryuxdsgn/design-intelligence 2.6.3 → 2.6.4

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.
@@ -47,6 +47,7 @@ function skill(id, rules) {
47
47
  const RUN = "ryux run 2026-10-02";
48
48
  // Rules that cover a pattern another MIT ruleset also names; the text and numbering are RYUX's own.
49
49
  const AS = "anti-slop (MIT)";
50
+ const EK = "emilkowalski/skills (MIT)";
50
51
  export const RULES = [
51
52
  ...skill("product", [
52
53
  {
@@ -645,10 +646,10 @@ export const RULES = [
645
646
  title: "Motion earns its level",
646
647
  level: "contextual",
647
648
  when: "the design adds motion or transitions",
648
- do: "Classify each motion: L1 state feedback, L2 component transition, L3 page transition, L4 storytelling, L5 decorative. The higher the level, the stronger the reason it needs. Take timing and easing from one motion personality, define them once as motion tokens, animate transform and opacity rather than layout properties, and honor reduced motion (RX-A11Y-08).",
649
- dont: "Animate everything, use one generic duration and easing (transition: all 0.3s) everywhere, or let decorative motion delay content or input.",
649
+ do: "Classify each motion: L1 state feedback, L2 component transition, L3 page transition, L4 storytelling, L5 decorative. The higher the level, the stronger the reason it needs. Then weigh how often people see it: a surface opened many times a day (command palette, shortcut, core navigation, list selection) appears and closes without movement, at most a fade too short to notice; standard transitions belong to occasional surfaces (modal, drawer, toast), and expression to rare or first-time moments. Take timing and easing from one motion personality, define them once as motion tokens, animate transform and opacity rather than layout properties, and honor reduced motion (RX-A11Y-08).",
650
+ dont: "Animate everything, give a surface people open many times a day an entrance they must sit through, use one generic duration and easing (transition: all 0.3s) everywhere, or let decorative motion delay content or input.",
650
651
  why: "Motion directs attention; unearned motion steals it from the task and can make some people unwell.",
651
- basis: "NNGroup animation and usability guidance; WCAG 2.3.3 animation from interactions",
652
+ basis: `NNGroup animation and usability guidance; WCAG 2.3.3 animation from interactions; frequency check: pattern also in ${EK} find-animation-opportunities, written for RYUX`,
652
653
  notWhen: "L1 feedback on standard controls that follows the platform defaults",
653
654
  tradeoff: "fewer flourishes on marketing pages",
654
655
  check: "review; reduced-motion test",
@@ -66,7 +66,9 @@ export const DESIGN_BODY = `# RYUX Design
66
66
  questions alone, most consequential first, at most three, in one message, before designing.
67
67
  **Direction is the user's call:** when neither the prompt nor DESIGN.md sets the UI direction
68
68
  (character, or brand colour and type) or the motion direction, ask for it in that message (it
69
- counts toward the three) instead of choosing it yourself. Complete context means no questions. Never ask what the prompt, DESIGN.md, or the
69
+ counts toward the three) instead of choosing it yourself. **No DESIGN.md and no product docs is the
70
+ case where these questions matter most, never a reason to skip them:** ask, then wait for the
71
+ answer before designing. Complete context means no questions. Never ask what the prompt, DESIGN.md, or the
70
72
  product docs already answer. For the rest, make the smallest reasonable assumption, write it
71
73
  down, and continue (RX-PR-01, RX-PR-02).
72
74
  **Record direction answers.** When the user answers a UI or motion direction question, write the
@@ -177,7 +179,9 @@ export const BUILD_BODY = `# RYUX Build
177
179
  approved mockup; it is the spec. If there is none, run Design first (capabilities/design.md)
178
180
  instead of inventing one in code.
179
181
  3. **Read the modules the task needs** from the task table: for example accessibility, responsive,
180
- and edge-cases for any UI, and forms and content for a form.
182
+ and edge-cases for any UI, and forms and content for a form. When the build adds motion or
183
+ transitions, read knowledge/ui.md (RX-UI-11) before writing any: how often the surface is seen
184
+ decides how much it moves.
181
185
  4. **Implement faithfully.** Use semantic elements, existing components, and real data paths.
182
186
  Build must not invent business rules, prices, or limits; API behavior or response shapes; or
183
187
  data presented as real (RX-FE-02, RX-PR-02). It must not silently change a design decision: a
@@ -422,6 +426,9 @@ If not, the surface has no point of view yet. Stay honest while being bold: a st
422
426
  needs invented numbers, people, or logos.
423
427
 
424
428
  **3. Motion.** Start from purpose: what the motion communicates; with no purpose, no motion.
429
+ Then ask how often someone will see it. The more often, the less of it they should notice: what
430
+ people open many times a day (a command palette, a shortcut, core navigation) appears at once, and
431
+ expression is kept for occasional or first-time moments. A purpose does not outweigh frequency.
425
432
  Every motion follows one lifecycle: before, trigger, transition, new state, feedback.
426
433
  The states themselves (waiting, result, recovery) are defined in ryux-interaction (RX-IX-01,
427
434
  RX-IX-02); motion only makes them visible, and it never compensates for weak UX. Decide the trigger,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ryuxdsgn/design-intelligence",
3
- "version": "2.6.3",
3
+ "version": "2.6.4",
4
4
  "description": "RYUX: design intelligence for AI agents and designers. One skill, five entry points: Analyze, Design, Build, Critique, and QA, for Claude Code, Codex, Cursor, Gemini CLI, OpenCode, Cline, Copilot, and more.",
5
5
  "type": "module",
6
6
  "bin": {