@neuctra/ui-mcp 0.4.7 → 0.4.9

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/data/layouts.json CHANGED
@@ -66,7 +66,8 @@
66
66
  49,
67
67
  50,
68
68
  51,
69
- 59
69
+ 59,
70
+ 64
70
71
  ],
71
72
  "seoRuleIds": [
72
73
  "technical",
@@ -276,7 +277,8 @@
276
277
  48,
277
278
  49,
278
279
  53,
279
- 59
280
+ 59,
281
+ 64
280
282
  ],
281
283
  "seoRuleIds": [
282
284
  "technical",
@@ -483,7 +485,9 @@
483
485
  55,
484
486
  57,
485
487
  58,
486
- 59
488
+ 59,
489
+ 65,
490
+ 66
487
491
  ],
488
492
  "seoRuleIds": [
489
493
  "technical",
@@ -604,6 +608,8 @@
604
608
  2,
605
609
  3,
606
610
  13,
611
+ 15,
612
+ 16,
607
613
  24,
608
614
  35,
609
615
  43,
@@ -615,7 +621,9 @@
615
621
  55,
616
622
  57,
617
623
  58,
618
- 59
624
+ 59,
625
+ 65,
626
+ 66
619
627
  ],
620
628
  "seoRuleIds": [
621
629
  "technical",
@@ -675,6 +683,8 @@
675
683
  4,
676
684
  5,
677
685
  7,
686
+ 15,
687
+ 16,
678
688
  22,
679
689
  23,
680
690
  24,
@@ -691,7 +701,9 @@
691
701
  51,
692
702
  55,
693
703
  57,
694
- 59
704
+ 59,
705
+ 65,
706
+ 66
695
707
  ],
696
708
  "seoRuleIds": [
697
709
  "technical",
@@ -748,6 +760,8 @@
748
760
  2,
749
761
  3,
750
762
  7,
763
+ 15,
764
+ 16,
751
765
  22,
752
766
  23,
753
767
  24,
@@ -759,7 +773,8 @@
759
773
  47,
760
774
  48,
761
775
  49,
762
- 59
776
+ 59,
777
+ 66
763
778
  ],
764
779
  "seoRuleIds": [
765
780
  "technical",
@@ -825,7 +840,8 @@
825
840
  55,
826
841
  57,
827
842
  58,
828
- 59
843
+ 59,
844
+ 66
829
845
  ],
830
846
  "seoRuleIds": [
831
847
  "technical",
@@ -880,6 +896,8 @@
880
896
  2,
881
897
  3,
882
898
  13,
899
+ 15,
900
+ 16,
883
901
  24,
884
902
  35,
885
903
  43,
@@ -891,7 +909,8 @@
891
909
  55,
892
910
  57,
893
911
  58,
894
- 59
912
+ 59,
913
+ 66
895
914
  ],
896
915
  "seoRuleIds": [
897
916
  "technical",
@@ -945,6 +964,8 @@
945
964
  2,
946
965
  3,
947
966
  13,
967
+ 15,
968
+ 16,
948
969
  24,
949
970
  35,
950
971
  43,
@@ -956,7 +977,8 @@
956
977
  55,
957
978
  57,
958
979
  58,
959
- 59
980
+ 59,
981
+ 66
960
982
  ],
961
983
  "seoRuleIds": [
962
984
  "technical",
@@ -1018,7 +1040,9 @@
1018
1040
  55,
1019
1041
  57,
1020
1042
  58,
1021
- 59
1043
+ 59,
1044
+ 65,
1045
+ 66
1022
1046
  ],
1023
1047
  "seoRuleIds": [
1024
1048
  "technical",
@@ -1087,7 +1111,8 @@
1087
1111
  47,
1088
1112
  48,
1089
1113
  49,
1090
- 59
1114
+ 59,
1115
+ 66
1091
1116
  ],
1092
1117
  "seoRuleIds": [
1093
1118
  "technical",
@@ -1138,6 +1163,8 @@
1138
1163
  2,
1139
1164
  3,
1140
1165
  13,
1166
+ 15,
1167
+ 16,
1141
1168
  24,
1142
1169
  35,
1143
1170
  43,
@@ -1149,7 +1176,8 @@
1149
1176
  55,
1150
1177
  57,
1151
1178
  58,
1152
- 59
1179
+ 59,
1180
+ 66
1153
1181
  ],
1154
1182
  "seoRuleIds": [
1155
1183
  "technical",
@@ -1549,6 +1577,7 @@
1549
1577
  2,
1550
1578
  3,
1551
1579
  13,
1580
+ 15,
1552
1581
  24,
1553
1582
  35,
1554
1583
  43,
@@ -1696,6 +1725,7 @@
1696
1725
  2,
1697
1726
  3,
1698
1727
  13,
1728
+ 15,
1699
1729
  24,
1700
1730
  35,
1701
1731
  43,
@@ -1767,6 +1797,7 @@
1767
1797
  7,
1768
1798
  13,
1769
1799
  15,
1800
+ 16,
1770
1801
  22,
1771
1802
  24,
1772
1803
  25,
@@ -2189,7 +2220,8 @@
2189
2220
  49,
2190
2221
  53,
2191
2222
  59,
2192
- 61
2223
+ 61,
2224
+ 64
2193
2225
  ],
2194
2226
  "seoRuleIds": [
2195
2227
  "technical",
@@ -2318,7 +2350,8 @@
2318
2350
  55,
2319
2351
  57,
2320
2352
  58,
2321
- 59
2353
+ 59,
2354
+ 64
2322
2355
  ],
2323
2356
  "seoRuleIds": [
2324
2357
  "technical",
@@ -2551,7 +2584,8 @@
2551
2584
  55,
2552
2585
  57,
2553
2586
  58,
2554
- 59
2587
+ 59,
2588
+ 64
2555
2589
  ],
2556
2590
  "seoRuleIds": [
2557
2591
  "technical",
@@ -2601,6 +2635,7 @@
2601
2635
  2,
2602
2636
  3,
2603
2637
  13,
2638
+ 15,
2604
2639
  24,
2605
2640
  35,
2606
2641
  43,
@@ -2791,7 +2826,9 @@
2791
2826
  55,
2792
2827
  57,
2793
2828
  58,
2794
- 59
2829
+ 59,
2830
+ 65,
2831
+ 66
2795
2832
  ],
2796
2833
  "seoRuleIds": [
2797
2834
  "technical",
package/data/theme.json CHANGED
@@ -14,25 +14,28 @@
14
14
  ],
15
15
  "antiAiLookRules": [
16
16
  "This section exists because AI-generated UI has recognizable tells. Read it before generating anything visual — the goal is UI indistinguishable from a deliberate human design pass, not a demo that screams 'built by an LLM'.",
17
- "No gradients, compulsory: never use gradients on backgrounds, buttons, or text (bg-gradient-to-r, from-purple-500 to-pink-500, bg-clip-text text-transparent, etc.). Use a flat bg-primary (or the relevant status token) instead. This is the single most common AI-UI tell — do not use it even 'just for one hero section'.",
18
- "No shadows, compulsory: never add box-shadow/drop-shadow utilities (shadow-sm through shadow-2xl, glowing hover rings, colored blur halos) to any element YOU style directly — buttons, badges, cards, inputs, hand-built panels/overlays, or any other static surface you write classNames for. A flat surface with border-border is correct. Scope note (applies to every rule in this list, not just this one): this governs classNames/markup you author yourself. It does not mean stripping or fighting any pre-built @neuctra/ui component's own internal default styling, no matter which component or what that default is (several components ship their own shadow — e.g. Modal, Drawer, Popover, Dropdown, Tooltip, Table, DatePicker's calendar panel, Avatar's status dot, Kbd, and the Toast/ToastProvider notification — this is not an exhaustive list and isn't meant to be maintained as one). Per the 'don't overwrite built-in component design' rule: leave every component's shipped defaults exactly as they ship. Never add a decorative shadow yourself, and never override one away with `!important` either — both are the same mistake in opposite directions.",
19
- "No blur effects, compulsory: never use backdrop-blur or any glassmorphism treatment (frosted-glass cards, translucent bg-white/10 panels) on any element YOU style directly, including a hand-built modal/drawer backdrop — use an opaque or semi-opaque solid backdrop (e.g. bg-background/80) instead of a blurred one. Surfaces you author are opaque (bg-card, bg-popover, bg-background), not translucent. Same scope note as the shadow rule above: this is about classNames/markup you write, not about a pre-built @neuctra/ui component's own internal backdrop-blur (e.g. Modal/Drawer's backdrop, Dropdown's menu panel, Carousel's nav buttons ship with backdrop-blur baked in, among others) — leave every component's shipped defaults exactly as they ship, whichever component it is.",
17
+ "Brand effects are allowed, inside the theme, compulsory: gradients, glows, blur and animated backgrounds may be used to make a page feel branded, but every color in them must come from the theme tokens (var(--primary), var(--foreground), var(--background), var(--card), var(--border) and their /opacity variants, or color-mix() of them). Never introduce a color outside the theme for an effect: no from-purple-500 to-pink-500, no rainbow or multicolor gradients, no neon colors. Switching the theme must change every effect with it.",
18
+ "Gradients, restrained: use at most two theme colors per gradient (e.g. from-primary to-foreground, or primary fading to transparent). Allowed on: a few highlighted words in a heading (bg-clip-text), section and hero backgrounds, card edges, and thin divider lines. Not allowed on: buttons, body text, inputs, badges, or every heading on the page. At most one gradient heading per viewport.",
19
+ "No shadows on buttons and cards, compulsory: never add shadow-sm through shadow-2xl, drop-shadow, or any box-shadow to buttons, cards, panels, inputs, modals you build yourself, or any surface that holds content. Separate surfaces with border-border, a background change (bg-card vs bg-background) and spacing instead. Leave the built-in shadows of @neuctra/ui components (Modal, Drawer, Popover, Dropdown, Tooltip, Toast) exactly as they ship.",
20
+ "Glows are not shadows: a soft colored glow made from the primary token is allowed on small accents (a status dot, a step number, a progress bar, a timeline marker) and as a pointer-following light inside a card on hover. Keep it subtle (theme color at 10 to 30 percent opacity) and never use it on buttons, text or inputs.",
21
+ "Blur, in its place: backdrop-blur is allowed on sticky or fixed bars (navbar, tab bar, top bar) and on modal overlays, always with a mostly opaque token background (bg-background/75 or more). Large blurred blobs of the primary token (blur-[100px] or more, low opacity, pointer-events-none, aria-hidden) are allowed behind hero and section content. Never blur content the user reads, and never make a card see-through.",
20
22
  "No blanket border-radius escalation — don't reach for rounded-2xl/rounded-3xl/rounded-full on every card, input, and button by default. Match the radius already used by the surrounding neuctra-ui components (rounded-md/rounded-lg/rounded-xl per component, see each component's own classes) instead of picking a bigger one because it 'looks more modern'.",
21
- "No decorative hover/focus glow rings. ring-* and focus-visible:ring-ring exist for accessibility (keyboard focus indication) only — never add a colored ring or glow as a pointer-hover decoration on cards, buttons, or images.",
22
- "No animate-pulse / bounce / scale-105-on-hover / floating-icon motion sprinkled across static content as decoration. Motion should communicate state (loading, a toast entering, a modal opening) — components already handle that internally. Don't add extra hover-scale or idle animation to elements that aren't interactive or aren't mid-transition.",
23
+ "Focus rings are for accessibility only: ring-* and focus-visible:ring-ring indicate keyboard focus. Never add a colored ring as a pointer-hover decoration on cards, buttons, or images. The only hover glow allowed is the soft pointer-following primary light inside a card described in the glow rule.",
24
+ "Animated backgrounds are allowed, compulsory conditions: they use only theme tokens, sit behind content (absolute, -z-10 or under a readable overlay, pointer-events-none, aria-hidden), stay low contrast so text keeps its contrast, run at most one per viewport, and stop when the user prefers reduced motion (MotionConfig reducedMotion=\"user\" or a prefers-reduced-motion check). Never animate content itself, and never use flashing or fast loops.",
25
+ "Motion on interactive elements stays small: a hover lift of 1 to 4px or a press scale of about 0.97 is allowed on buttons, links and clickable cards. No scale-105 zooms, bouncing, floating icons or wobble. Idle animation is only for decorative backgrounds and live-status dots.",
23
26
  "No emoji used as icons or bullet markers in generated UI (✨, 🚀, 💡, ✅ as list bullets, feature markers, or button icons). Use lucide-react icons — the same icon set every neuctra-ui component already uses — passed via each component's icon props (iconBefore, iconAfter, icon, etc.).",
24
27
  "No 'icon in a colored circle badge' repeated on every single feature/stat/card by default (a bg-primary/10 rounded-full p-3 wrapper around every icon). Use it sparingly, only where the component's own design already calls for it — repeating the same decorative wrapper on every card in a grid is a generic-template tell.",
25
28
  "No arbitrary one-off spacing/sizing values (p-[13px], gap-[7px], w-[327px]) — use the Tailwind spacing scale (p-3, gap-2, w-80, etc.) so spacing stays consistent with the rest of the design system.",
26
29
  "Prefer information density and restraint over generic centered-hero-with-huge-padding layouts. Not every section needs max-w-7xl mx-auto text-center py-24 — match the density and layout the consumer's existing UI already uses.",
27
30
  "Make every layout fully responsive by default — mobile, tablet, and desktop (sm:/md:/lg:/xl: breakpoints), stacking to a single column and adjusting spacing/type-scale at small widths. Never ship a fixed-width or desktop-only layout and call it done.",
28
31
  "No em dashes (—), compulsory: never use an em dash in generated copy or UI text (headings, body copy, button labels, placeholder text). It's a recognizable AI-writing tell. Use a period, comma, colon, or restructure the sentence instead.",
29
- "No over-effects: don't stack multiple decorative treatments on one element (e.g. a gradient plus a shadow plus a hover-scale plus a glow, all on the same button). Every visual effect that does appear should communicate a real state or interaction (hover, focus, loading, an entering toast) — never decoration for its own sake.",
32
+ "No over-effects: one decorative effect per element at most (a gradient OR a glow OR a hover lift), and the effects on one screen must share one color (the primary token). If an effect makes text harder to read or competes with the primary action, remove it.",
30
33
  "Don't layer a separate leading-* utility (leading-relaxed, leading-normal, leading-tight, ...) on top of a text-size class (text-sm, text-base, text-lg, text-xl, ...) — Tailwind's text-size utilities already ship a paired line-height, so adding leading-* alongside one is redundant and can fight the intended rhythm. Only reach for leading-* when no text-size class is already setting one, and even then never leading-none/leading-tight on paragraph-length text. Letter-spacing: use tracking-tight on headings text-3xl and larger; leave everything smaller at the default (tracking-normal); only use tracking-wide for short uppercase labels (badges, eyebrow text, nav labels), and never tracking-wide on paragraph-length text.",
31
34
  "Responsive, compulsory: every page must pass the Breakpoint Checklist in the design guide (360, 768, 1024, 1280, 1536px) with no horizontal scroll and touch targets of at least 44px.",
32
35
  "One focal point per viewport: a single dominant element (usually the primary CTA or one bg-primary block) that the eye lands on first. Never several competing bg-primary blocks on one screen.",
33
36
  "Use the fixed type scale from the design guide (Type Scale section). Never more than 4 text sizes on one screen, and keep paragraphs to max-w-prose or max-w-2xl.",
34
- "The bar is modern, visually appealing UI achieved through typography hierarchy, whitespace, correct token usage, and responsive layout, not through gradients, shadows, blur, or glow effects standing in for actual design decisions.",
35
- "Decent, restrained design, compulsory: build UI that is decent and intentional, never over-designed. When unsure whether an effect (shadow, gradient, blur, glow, animation, an extra color) is warranted on something you're authoring yourself: leave it out. A flat, token-colored, appropriately-radiused, unshadowed, responsive surface using only the semantic color tokens is the correct default for the overwhelming majority of neuctra-ui components — restraint is the default, not the exception."
37
+ "The bar is branded and restrained: a page may have a signature look (gradient headline words, a glow, an animated background in the brand color), but it must still read well with every effect removed. Hierarchy, spacing and typography carry the design; effects only add the brand.",
38
+ "Decent, restrained design, compulsory: build UI that is decent and intentional, never over-designed. When unsure whether an effect (gradient, glow, blur, animation) is warranted on something you're authoring yourself, leave it out; shadows on content surfaces and colors outside the theme are never warranted. A flat, token-colored, appropriately-radiused, unshadowed, responsive surface is the correct default for most neuctra-ui components. Brand effects are added on purpose, only where the effect rules above allow them."
36
39
  ],
37
40
  "tokens": [
38
41
  { "token": "primary", "className": "bg-primary / text-primary / border-primary", "pairsWith": "primary-foreground", "light": "#00c214", "dark": "#00c214", "usage": "Brand color: primary buttons, active states, links, focus accents." },