@ryuxdsgn/design-intelligence 2.19.4 → 2.19.5
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/dist/intelligence/content.js +15 -15
- package/package.json +1 -1
|
@@ -618,10 +618,10 @@ export const RULES = [
|
|
|
618
618
|
num: 3,
|
|
619
619
|
title: "Specific, plain copy",
|
|
620
620
|
level: "preferred",
|
|
621
|
-
do: "Lead with the point and cut words that add length without meaning; write labels as RX-CD-12 says; use sentence case and plain lists, with at most one emoji where the channel expects it.",
|
|
621
|
+
do: "Lead with the point and cut words that add length without meaning; write labels as RX-CD-12 says; use sentence case and plain lists, with at most one emoji where the channel expects it.\n - When numbers are compared and lower is better (errors, invented policies, cost), say so beside the label (\"fewer is better\").",
|
|
622
622
|
dont: "Use vague labels (\"Submit\", \"Learn more\", \"Get started\" when a specific action exists), hype words (\"unlock\", \"elevate\", \"seamlessly\", \"revolutionary\", \"next-generation\"), emoji bullets, ALL CAPS, or stacked exclamation marks.",
|
|
623
623
|
why: "Specific, plain copy tells users what happens next; decoration on every line buries it and reads as generated.",
|
|
624
|
-
basis: `NNGroup 3 C's of informational microcopy (clarity, concision, character); NNGroup button and link-label guidance; ${RUN}: unconstrained WhatsApp copy`,
|
|
624
|
+
basis: `NNGroup 3 C's of informational microcopy (clarity, concision, character); NNGroup button and link-label guidance; ${RUN}: unconstrained WhatsApp copy; owner review of a benchmark video 2026-10-28: "8 vs 0, why does 0 look better?"`,
|
|
625
625
|
check: "audit_copy",
|
|
626
626
|
formerly: ["RX-C-06", "RX-C-10"],
|
|
627
627
|
},
|
|
@@ -800,10 +800,10 @@ export const RULES = [
|
|
|
800
800
|
num: 10,
|
|
801
801
|
title: "Visual language is chosen, not defaulted",
|
|
802
802
|
level: "preferred",
|
|
803
|
-
do: "Derive the art direction from the brand, the audience, the product context, and reference screens, and write it as a Visual Brief (template in knowledge/imagery.md) (objective, concept, composition, color, material, lighting, motion, avoid) before designing an expressive surface or generating images, 3D, or motion.\n - For a new product, decide the brand direction before the tokens, task UI included: palette, type, and shape follow from the product's character (fast, warm, trusted, and so on), not from the one accent that passes contrast.",
|
|
803
|
+
do: "Derive the art direction from the brand, the audience, the product context, and reference screens, and write it as a Visual Brief (template in knowledge/imagery.md) (objective, concept, composition, color, material, lighting, motion, avoid) before designing an expressive surface or generating images, 3D, or motion.\n - For a new product, decide the brand direction before the tokens, task UI included: palette, type, and shape follow from the product's character (fast, warm, trusted, and so on), not from the one accent that passes contrast.\n - With no visual direction in the brief or DESIGN.md, say before building that the result will look plain, and offer two or three directions.",
|
|
804
804
|
dont: "Reach for the category cliché (coins, money rain, floating dashboards, or gradient blobs for fintech; generic 3D characters for any app), or write an image prompt without a brief (role, concept, composition).",
|
|
805
805
|
why: "A default visual language makes the product interchangeable with its competitors.",
|
|
806
|
-
basis: "art direction practice; RX-AS-05 purpose gate",
|
|
806
|
+
basis: "art direction practice; RX-AS-05 purpose gate; owner review 2026-10-27: a food-delivery build \"too plain, no illustration\" from a DESIGN.md with no visual direction",
|
|
807
807
|
notWhen: "an existing brand system already defines the visual language; follow it",
|
|
808
808
|
tradeoff: "a brief takes time before any image exists",
|
|
809
809
|
check: "the Visual Brief; review",
|
|
@@ -1071,10 +1071,10 @@ export const RULES = [
|
|
|
1071
1071
|
title: "Readable contrast",
|
|
1072
1072
|
level: "required",
|
|
1073
1073
|
gate: "hard",
|
|
1074
|
-
do: "Keep text contrast at least 4.5:1, and at least 3:1 for large text and component boundaries.",
|
|
1074
|
+
do: "Keep text contrast at least 4.5:1, and at least 3:1 for large text and component boundaries.\n - Over a photo, illustration, or gradient (a status bar on a full-bleed hero, a caption on an image), measure against the worst pixel behind the text or icon, not the average; fix it with a scrim or the bar's light or dark appearance.",
|
|
1075
1075
|
dont: "Put light grey text on white or white text on a pale accent.",
|
|
1076
1076
|
why: "Low contrast fails outdoors, on cheap screens, and for low vision.",
|
|
1077
|
-
basis: "WCAG 2.2 SC 1.4.3 and 1.4.11",
|
|
1077
|
+
basis: "WCAG 2.2 SC 1.4.3 and 1.4.11; ryux Figma pilot critique 2026-10-28: a dark status bar over a dark food photo (1.3:1), then a white one over a light grocery photo (2.7:1) until the scrim was darkened",
|
|
1078
1078
|
check: "audit_ui",
|
|
1079
1079
|
formerly: ["RX-H-11"],
|
|
1080
1080
|
},
|
|
@@ -1083,10 +1083,10 @@ export const RULES = [
|
|
|
1083
1083
|
title: "Readable text, reachable targets",
|
|
1084
1084
|
level: "required",
|
|
1085
1085
|
gate: "hard",
|
|
1086
|
-
do: "Keep body text around 14 to 16px on mobile, and touch targets at least 24×24px, preferably 44×44px. The target is the hit area, not the glyph: a 20 to 24px icon sits inside a 44×44 button.",
|
|
1086
|
+
do: "Keep body text around 14 to 16px on mobile, and touch targets at least 24×24px, preferably 44×44px. The target is the hit area, not the glyph: a 20 to 24px icon sits inside a 44×44 button. Measure it on the element or node; a name or comment that states a size is not a measurement.",
|
|
1087
1087
|
dont: "Shrink body text or crowd small targets together.",
|
|
1088
1088
|
why: "Small text and targets cause misreads and mis-taps.",
|
|
1089
|
-
basis: "WCAG 2.2 SC 2.5.8 (24px minimum); Apple HIG 44pt; Material 48dp; Fitts's law (Fitts 1954): bigger and nearer targets are faster to hit",
|
|
1089
|
+
basis: "WCAG 2.2 SC 2.5.8 (24px minimum); Apple HIG 44pt; Material 48dp; Fitts's law (Fitts 1954): bigger and nearer targets are faster to hit; ryux Figma pilot critique 2026-10-28: a layer named \"Close (44 pt tap)\" measured 24×44",
|
|
1090
1090
|
check: "audit_ui",
|
|
1091
1091
|
formerly: ["RX-H-12"],
|
|
1092
1092
|
},
|
|
@@ -1335,10 +1335,10 @@ export const RULES = [
|
|
|
1335
1335
|
num: 3,
|
|
1336
1336
|
title: "No covered or colliding text",
|
|
1337
1337
|
level: "required",
|
|
1338
|
-
do: "Keep floating cards and mockups over empty space only, and keep navigation items clear of the logo and buttons.",
|
|
1338
|
+
do: "Keep floating cards and mockups over empty space only, and keep navigation items clear of the logo and buttons.\n - Labels in a row (steps, tabs, chips) stay visibly apart at the smallest width: at least twice a word space between two labels, or show only the current one.\n - On a map, keep street and place labels clear of markers, chips, and the route.",
|
|
1339
1339
|
dont: "Let a card cover prices or labels, or let nav items touch.",
|
|
1340
|
-
why: "Covered text is lost information and looks broken.",
|
|
1341
|
-
basis: `${RUN}: QRIS card over prices, colliding nav`,
|
|
1340
|
+
why: "Covered text is lost information and looks broken; labels a word space apart read as one phrase.",
|
|
1341
|
+
basis: `${RUN}: QRIS card over prices, colliding nav; ryux Figma pilot critique 2026-10-28: "On the way" and "Delivered" 6 pt apart at 360, a courier marker over street labels`,
|
|
1342
1342
|
check: "screenshot",
|
|
1343
1343
|
formerly: ["RX-H-14"],
|
|
1344
1344
|
},
|
|
@@ -1346,10 +1346,10 @@ export const RULES = [
|
|
|
1346
1346
|
num: 4,
|
|
1347
1347
|
title: "Numbers agree",
|
|
1348
1348
|
level: "required",
|
|
1349
|
-
do: "Make line items add up to subtotals and totals, and show the same value the same way everywhere on the screen.",
|
|
1350
|
-
dont: "Show sample numbers that contradict each other.",
|
|
1351
|
-
why: "Readers check sums; one wrong total undermines everything else.",
|
|
1352
|
-
basis: "ryux README checkout image (items Rp125.000, subtotal Rp1.200.000)",
|
|
1349
|
+
do: "Make line items add up to subtotals and totals, and show the same value the same way everywhere on the screen.\n - Times follow one timeline across a flow: the status-bar clock, timestamps, and estimates on each frame fit its stage.",
|
|
1350
|
+
dont: "Show sample numbers or times that contradict each other.",
|
|
1351
|
+
why: "Readers check sums and clocks; one wrong total or an arrival time already past undermines everything else.",
|
|
1352
|
+
basis: "ryux README checkout image (items Rp125.000, subtotal Rp1.200.000); ryux Figma pilot critique 2026-10-28: a 7:31 clock on every frame beside a 7:38 last update and a 6:15 arrival window",
|
|
1353
1353
|
check: "review",
|
|
1354
1354
|
},
|
|
1355
1355
|
{
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ryuxdsgn/design-intelligence",
|
|
3
|
-
"version": "2.19.
|
|
3
|
+
"version": "2.19.5",
|
|
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": {
|