@neuctra/ui-mcp 0.4.1 → 0.4.2
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/README.md +7 -7
- package/data/aiDesignRules.json +8 -3
- package/data/components.json +1221 -866
- package/data/theme.json +5 -3
- package/package.json +1 -1
- package/src/server.mjs +1 -1
package/README.md
CHANGED
|
@@ -36,8 +36,8 @@ generated from your actual TypeScript source. No guessing, no file-spelunking.
|
|
|
36
36
|
neuctra-ui-package/src/components/basic/*.tsx (your actual component source)
|
|
37
37
|
│
|
|
38
38
|
│ npm run registry:generate (ts-morph reads props/JSDoc/defaults,
|
|
39
|
-
│ scrapes one example per
|
|
40
|
-
│ from neuctra-ui-docs)
|
|
39
|
+
│ scrapes one description + example per
|
|
40
|
+
│ component from neuctra-ui-docs-v2)
|
|
41
41
|
▼
|
|
42
42
|
neuctra-ui-package/registry/components.json (source of truth)
|
|
43
43
|
│
|
|
@@ -64,7 +64,7 @@ Three independently-regenerable files feed the server:
|
|
|
64
64
|
the color-token rules ("never hardcode colors"), the anti-AI-look rules ("no
|
|
65
65
|
gradients/shadows/blurs/glows/emoji-icons"), the recommended `@neuctra/ui-cli init`
|
|
66
66
|
setup command, and how the standalone `toast()` API works.
|
|
67
|
-
- **`data/aiDesignRules.json`** — also hand-curated, no generator. A
|
|
67
|
+
- **`data/aiDesignRules.json`** — also hand-curated, no generator. A 51-section
|
|
68
68
|
product/UX design guide (design philosophy, visual hierarchy, page/sidebar/navigation
|
|
69
69
|
structure, per-component usage guidance, spacing/color/border/radius/shadow
|
|
70
70
|
conventions, responsive design, accessibility, and a final UI quality checklist).
|
|
@@ -101,7 +101,7 @@ The tools are designed to be called in roughly this order when generating UI, no
|
|
|
101
101
|
grabbed ad hoc:
|
|
102
102
|
|
|
103
103
|
1. **`get_design_rules`** — call this first, before picking any component. It returns
|
|
104
|
-
the styling rules, the anti-AI-look rules, and the
|
|
104
|
+
the styling rules, the anti-AI-look rules, and the 51-section product/UX guide. This
|
|
105
105
|
shapes *what* to build (hierarchy, when a group actually needs `Card`, when `Modal`
|
|
106
106
|
vs `Drawer`, etc.) before you start reaching for components.
|
|
107
107
|
2. **`get_theme`** — call alongside step 1, not instead of it. Tokens without the design
|
|
@@ -230,7 +230,7 @@ requirements — e.g. `CardBody` is compulsory whenever `Card` has body content,
|
|
|
230
230
|
`Card` itself renders no padding — and component-specific gotchas like Dropdown's
|
|
231
231
|
trigger already stopping propagation internally) and **`antiAiLookRules`** (no
|
|
232
232
|
gradients/shadows/blurs/glows/emoji-icons/em-dashes — the visual tells that make UI read
|
|
233
|
-
as AI-generated), plus **`productDesignGuide`** — a
|
|
233
|
+
as AI-generated), plus **`productDesignGuide`** — a 51-section product/UX design guide
|
|
234
234
|
covering design philosophy, visual hierarchy, page/sidebar/navigation structure,
|
|
235
235
|
per-component usage guidance (when to reach for `Card` vs plain whitespace, `Modal` vs
|
|
236
236
|
`Drawer`, `Table` vs `List`, etc.), spacing/color/border/radius/shadow conventions,
|
|
@@ -258,7 +258,7 @@ Call this before generating any UI — see the recommended workflow above.
|
|
|
258
258
|
"sections": [
|
|
259
259
|
{ "number": 1, "title": "Core Design Philosophy", "content": "..." },
|
|
260
260
|
{ "number": 7, "title": "Cards", "content": "..." },
|
|
261
|
-
// ...
|
|
261
|
+
// ...51 sections total
|
|
262
262
|
],
|
|
263
263
|
"goldenRule": { "title": "Golden Rule", "content": "..." }
|
|
264
264
|
}
|
|
@@ -369,7 +369,7 @@ neuctra-ui-mcp/
|
|
|
369
369
|
├── data/
|
|
370
370
|
│ ├── components.json # synced (generated) — don't edit by hand
|
|
371
371
|
│ ├── theme.json # hand-curated token + styling/anti-AI-look rules
|
|
372
|
-
│ └── aiDesignRules.json # hand-curated
|
|
372
|
+
│ └── aiDesignRules.json # hand-curated 51-section product/UX design guide
|
|
373
373
|
└── package.json
|
|
374
374
|
```
|
|
375
375
|
|
package/data/aiDesignRules.json
CHANGED
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
{
|
|
51
51
|
"number": 10,
|
|
52
52
|
"title": "Typography",
|
|
53
|
-
"content": "Typography should create hierarchy without requiring excessive decoration.\n\nRecommended hierarchy:\n\n```text\nPage title\n↓\nSection title\n↓\nComponent title\n↓\nBody text\n↓\nMetadata\n```\n\nUse:\n\n* Strong weight for headings\n* Regular weight for descriptions\n* Muted color for metadata\n* Comfortable line-height for reading\n\nAvoid:\n\n* Excessive bold text\n* Too many font sizes\n* All-caps body text\n* Huge headings on every page\n* Centering everything"
|
|
53
|
+
"content": "Typography should create hierarchy without requiring excessive decoration.\n\nRecommended hierarchy:\n\n```text\nPage title\n↓\nSection title\n↓\nComponent title\n↓\nBody text\n↓\nMetadata\n```\n\nUse:\n\n* Strong weight for headings\n* Regular weight for descriptions\n* `text-secondary` for paragraphs and descriptions\n* Muted color for metadata\n* Comfortable line-height for reading\n\nAvoid:\n\n* Excessive bold text\n* Too many font sizes\n* All-caps body text\n* Huge headings on every page\n* Centering everything"
|
|
54
54
|
},
|
|
55
55
|
{
|
|
56
56
|
"number": 11,
|
|
@@ -185,7 +185,7 @@
|
|
|
185
185
|
{
|
|
186
186
|
"number": 37,
|
|
187
187
|
"title": "Color Rules",
|
|
188
|
-
"content": "Use color semantically.\n\nPrimary color:\n\n* Primary actions\n* Active navigation\n* Important interactive elements\n* Focus states\n\
|
|
188
|
+
"content": "Use color semantically.\n\nPrimary color:\n\n* Primary actions\n* Active navigation\n* Important interactive elements\n* Focus states\n\nText colors:\n\n* `text-foreground` for headings and titles\n* `text-secondary` for paragraphs and supporting text\n* `text-muted-foreground` for metadata and hints\n\nSemantic colors:\n\n* Success\n* Warning\n* Error\n* Info\n\nDo not use many unrelated accent colors.\n\nA modern interface should generally have:\n\n```text\n1 primary brand color\n+\nneutral system\n+\nsemantic colors\n```"
|
|
189
189
|
},
|
|
190
190
|
{
|
|
191
191
|
"number": 38,
|
|
@@ -251,10 +251,15 @@
|
|
|
251
251
|
"number": 50,
|
|
252
252
|
"title": "Do Not Overwrite Built-in Component Design",
|
|
253
253
|
"content": "Use each `@neuctra/ui` component's built-in design — its default spacing, radius, colors, and layout — as-is.\n\nDo not pass a `className` just to restyle a component's built-in appearance because of personal preference. The component's own design is already the intended, consistent look.\n\nOnly override with Tailwind's `!` important-modifier (e.g. `!bg-red-500`, `!p-2`, `!rounded-lg`) when there is a real, specific need:\n\n* The component's default would otherwise break the current page's existing layout.\n* The default collides or conflicts with the current UI/design of the site.\n* The component has no prop for the needed variation, and leaving the default would visually damage the surrounding design.\n\nNever reach for `!important` overrides as a routine styling habit, a stylistic preference, or 'just because'.\n\nPrefer:\n\n> built-in component design → prop-based variation (variant, size, etc.) → `!important` override (rare, only to prevent breakage)\n\nover:\n\n> restyle every component by default with className overrides\n\nA component that has been overridden with `!important` on every use is a sign the component itself, or the way it's being used, is wrong — not that every instance needs forcing."
|
|
254
|
+
},
|
|
255
|
+
{
|
|
256
|
+
"number": 51,
|
|
257
|
+
"title": "Paragraph Text Color",
|
|
258
|
+
"content": "Use `text-secondary` for all paragraph text: body copy, section descriptions, card descriptions, and supporting text under headings.\n\nDo not use `text-muted-foreground` for paragraphs. It is too low-contrast for reading text.\n\nKeep `text-muted-foreground` for small, low-priority text only:\n\n* Timestamps\n* Metadata\n* Captions\n* Placeholders\n* Helper and hint text\n* Disabled states\n\nUse `text-foreground` for headings, titles, and anything that needs full emphasis.\n\n`secondary` is a text color only. Do not use it as a background (`bg-secondary`).\n\nOrder of emphasis:\n\n```text\ntext-foreground ← headings\n↓\ntext-secondary ← paragraphs\n↓\ntext-muted-foreground ← metadata and hints\n```\n\nToken values:\n\n* Light theme: `--secondary: #3f3f46`\n* Dark theme: `--secondary: #d4d4d8`"
|
|
254
259
|
}
|
|
255
260
|
],
|
|
256
261
|
"goldenRule": {
|
|
257
262
|
"title": "Golden Rule",
|
|
258
263
|
"content": "Do not ask:\n\n> \"Which components can I put on this page?\"\n\nAsk:\n\n> \"What does the user need to understand and do, and which Neuctra UI component communicates that most naturally?\"\n\nThe best Neuctra UI interface is not the one that uses the most components.\n\nIt is the one where **every component has a purpose.**"
|
|
259
264
|
}
|
|
260
|
-
}
|
|
265
|
+
}
|