@adres/mgda-ui 0.0.0-stage → 0.0.1
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/brand-knowledge.json +451 -0
- package/knowledge/accordion.md +135 -0
- package/knowledge/activity-rings.md +123 -0
- package/knowledge/alert.md +184 -0
- package/knowledge/answer-actions.md +217 -0
- package/knowledge/aspect-ratio.md +82 -0
- package/knowledge/avatar.md +158 -0
- package/knowledge/badge.md +172 -0
- package/knowledge/bar-graph.md +167 -0
- package/knowledge/bento-grid.md +115 -0
- package/knowledge/blockquote.md +153 -0
- package/knowledge/box-list.md +177 -0
- package/knowledge/bullet-list.md +128 -0
- package/knowledge/button-group.md +179 -0
- package/knowledge/button.md +231 -0
- package/knowledge/calendar.md +168 -0
- package/knowledge/card.md +321 -0
- package/knowledge/cards-nav.md +170 -0
- package/knowledge/chain-of-thought.md +164 -0
- package/knowledge/chat-container.md +135 -0
- package/knowledge/chat-message.md +224 -0
- package/knowledge/checkbox-card.md +172 -0
- package/knowledge/checkbox.md +111 -0
- package/knowledge/citations.md +241 -0
- package/knowledge/combobox.md +265 -0
- package/knowledge/countdown-pill.md +153 -0
- package/knowledge/cta.md +118 -0
- package/knowledge/data-list.md +173 -0
- package/knowledge/data-table.md +220 -0
- package/knowledge/dialog.md +249 -0
- package/knowledge/drawer.md +236 -0
- package/knowledge/dropdown-menu.md +238 -0
- package/knowledge/dropzone.md +153 -0
- package/knowledge/email-chips-input.md +161 -0
- package/knowledge/empty-state.md +106 -0
- package/knowledge/entity-header.md +166 -0
- package/knowledge/feature-grid.md +120 -0
- package/knowledge/feedback-bar.md +127 -0
- package/knowledge/footer.md +116 -0
- package/knowledge/heading.md +189 -0
- package/knowledge/hero.md +361 -0
- package/knowledge/input-button.md +187 -0
- package/knowledge/input-group.md +185 -0
- package/knowledge/input.md +256 -0
- package/knowledge/inset.md +177 -0
- package/knowledge/kpi-card.md +206 -0
- package/knowledge/list-nav.md +181 -0
- package/knowledge/logo-cloud.md +102 -0
- package/knowledge/media-gallery.md +158 -0
- package/knowledge/message-actions.md +175 -0
- package/knowledge/nav-sidebar.md +225 -0
- package/knowledge/number-stepper.md +159 -0
- package/knowledge/page-header.md +109 -0
- package/knowledge/pagination.md +225 -0
- package/knowledge/popover.md +159 -0
- package/knowledge/pricing.md +132 -0
- package/knowledge/progress.md +156 -0
- package/knowledge/prompt-input.md +337 -0
- package/knowledge/prompt-suggestions.md +168 -0
- package/knowledge/quota-bar.md +160 -0
- package/knowledge/quote.md +116 -0
- package/knowledge/radio-card.md +172 -0
- package/knowledge/radio-group.md +135 -0
- package/knowledge/reasoning.md +142 -0
- package/knowledge/search.md +131 -0
- package/knowledge/section-nav.md +162 -0
- package/knowledge/segmented-control.md +181 -0
- package/knowledge/select-button.md +205 -0
- package/knowledge/select.md +210 -0
- package/knowledge/separator.md +75 -0
- package/knowledge/shimmer-text.md +140 -0
- package/knowledge/sidebar.md +227 -0
- package/knowledge/skeleton.md +142 -0
- package/knowledge/slider.md +133 -0
- package/knowledge/slideshow.md +159 -0
- package/knowledge/source.md +156 -0
- package/knowledge/spinner.md +120 -0
- package/knowledge/stat-strip.md +128 -0
- package/knowledge/stats.md +117 -0
- package/knowledge/step-indicator.md +157 -0
- package/knowledge/switch.md +88 -0
- package/knowledge/table.md +190 -0
- package/knowledge/tabs.md +169 -0
- package/knowledge/testimonials.md +115 -0
- package/knowledge/text-link.md +192 -0
- package/knowledge/text.md +194 -0
- package/knowledge/thinking-bar.md +115 -0
- package/knowledge/thinking-steps.md +140 -0
- package/knowledge/toaster.md +127 -0
- package/knowledge/toggle.md +113 -0
- package/knowledge/tool-call-card.md +241 -0
- package/knowledge/tooltip.md +120 -0
- package/knowledge/top-nav.md +138 -0
- package/knowledge.json +19854 -0
- package/package.json +94 -4
- package/src/components/accordion.stories.tsx +46 -0
- package/src/components/accordion.tsx +74 -0
- package/src/components/activity-rings.stories.tsx +73 -0
- package/src/components/activity-rings.tsx +121 -0
- package/src/components/alert.stories.tsx +43 -0
- package/src/components/alert.tsx +132 -0
- package/src/components/answer-actions.stories.tsx +54 -0
- package/src/components/answer-actions.test.tsx +37 -0
- package/src/components/answer-actions.tsx +313 -0
- package/src/components/aspect-ratio.stories.tsx +32 -0
- package/src/components/aspect-ratio.tsx +5 -0
- package/src/components/avatar.stories.tsx +40 -0
- package/src/components/avatar.tsx +154 -0
- package/src/components/badge.stories.tsx +27 -0
- package/src/components/badge.tsx +63 -0
- package/src/components/bar-graph.stories.tsx +28 -0
- package/src/components/bar-graph.tsx +204 -0
- package/src/components/bento-grid.stories.tsx +23 -0
- package/src/components/bento-grid.tsx +67 -0
- package/src/components/blockquote.stories.tsx +28 -0
- package/src/components/blockquote.tsx +88 -0
- package/src/components/box-list.stories.tsx +25 -0
- package/src/components/box-list.tsx +108 -0
- package/src/components/bullet-list.stories.tsx +22 -0
- package/src/components/bullet-list.tsx +101 -0
- package/src/components/button-group.stories.tsx +31 -0
- package/src/components/button-group.tsx +156 -0
- package/src/components/button.stories.tsx +66 -0
- package/src/components/button.test.ts +17 -0
- package/src/components/button.tsx +139 -0
- package/src/components/calendar.stories.tsx +25 -0
- package/src/components/calendar.tsx +367 -0
- package/src/components/card.stories.tsx +44 -0
- package/src/components/card.tsx +392 -0
- package/src/components/cards-nav.stories.tsx +35 -0
- package/src/components/cards-nav.tsx +115 -0
- package/src/components/chain-of-thought.stories.tsx +67 -0
- package/src/components/chain-of-thought.test.tsx +50 -0
- package/src/components/chain-of-thought.tsx +170 -0
- package/src/components/chat-container.stories.tsx +47 -0
- package/src/components/chat-container.test.tsx +49 -0
- package/src/components/chat-container.tsx +222 -0
- package/src/components/chat-message.stories.tsx +52 -0
- package/src/components/chat-message.test.tsx +36 -0
- package/src/components/chat-message.tsx +163 -0
- package/src/components/checkbox-card.stories.tsx +27 -0
- package/src/components/checkbox-card.tsx +200 -0
- package/src/components/checkbox.stories.tsx +26 -0
- package/src/components/checkbox.tsx +61 -0
- package/src/components/citations.stories.tsx +64 -0
- package/src/components/citations.test.tsx +61 -0
- package/src/components/citations.tsx +220 -0
- package/src/components/combobox.stories.tsx +184 -0
- package/src/components/combobox.test.tsx +82 -0
- package/src/components/combobox.tsx +407 -0
- package/src/components/countdown-pill.stories.tsx +24 -0
- package/src/components/countdown-pill.tsx +129 -0
- package/src/components/cta.stories.tsx +29 -0
- package/src/components/cta.tsx +52 -0
- package/src/components/data-list.stories.tsx +50 -0
- package/src/components/data-list.test.tsx +35 -0
- package/src/components/data-list.tsx +181 -0
- package/src/components/data-table.stories.tsx +29 -0
- package/src/components/data-table.tsx +200 -0
- package/src/components/dialog.stories.tsx +42 -0
- package/src/components/dialog.tsx +200 -0
- package/src/components/drawer.stories.tsx +48 -0
- package/src/components/drawer.tsx +385 -0
- package/src/components/dropdown-menu.stories.tsx +41 -0
- package/src/components/dropdown-menu.tsx +252 -0
- package/src/components/dropzone.stories.tsx +19 -0
- package/src/components/dropzone.tsx +250 -0
- package/src/components/email-chips-input.stories.tsx +135 -0
- package/src/components/email-chips-input.tsx +210 -0
- package/src/components/empty-state.stories.tsx +22 -0
- package/src/components/empty-state.tsx +35 -0
- package/src/components/entity-header.stories.tsx +43 -0
- package/src/components/entity-header.test.tsx +35 -0
- package/src/components/entity-header.tsx +92 -0
- package/src/components/feature-grid.stories.tsx +25 -0
- package/src/components/feature-grid.tsx +87 -0
- package/src/components/feedback-bar.stories.tsx +25 -0
- package/src/components/feedback-bar.test.tsx +24 -0
- package/src/components/feedback-bar.tsx +62 -0
- package/src/components/footer.stories.tsx +23 -0
- package/src/components/footer.tsx +78 -0
- package/src/components/heading.stories.tsx +45 -0
- package/src/components/heading.test.tsx +22 -0
- package/src/components/heading.tsx +77 -0
- package/src/components/hero.stories.tsx +38 -0
- package/src/components/hero.tsx +498 -0
- package/src/components/input-button.stories.tsx +19 -0
- package/src/components/input-button.tsx +112 -0
- package/src/components/input-group.stories.tsx +38 -0
- package/src/components/input-group.tsx +157 -0
- package/src/components/input.stories.tsx +31 -0
- package/src/components/input.tsx +284 -0
- package/src/components/inset.stories.tsx +29 -0
- package/src/components/inset.tsx +70 -0
- package/src/components/kpi-card.stories.tsx +29 -0
- package/src/components/kpi-card.tsx +284 -0
- package/src/components/list-nav.stories.tsx +22 -0
- package/src/components/list-nav.tsx +145 -0
- package/src/components/logo-cloud.stories.tsx +23 -0
- package/src/components/logo-cloud.tsx +42 -0
- package/src/components/media-gallery.stories.tsx +25 -0
- package/src/components/media-gallery.tsx +347 -0
- package/src/components/message-actions.stories.tsx +45 -0
- package/src/components/message-actions.test.tsx +32 -0
- package/src/components/message-actions.tsx +119 -0
- package/src/components/nav-sidebar.stories.tsx +58 -0
- package/src/components/nav-sidebar.test.tsx +54 -0
- package/src/components/nav-sidebar.tsx +462 -0
- package/src/components/number-stepper.stories.tsx +19 -0
- package/src/components/number-stepper.tsx +158 -0
- package/src/components/page-header.stories.tsx +25 -0
- package/src/components/page-header.tsx +64 -0
- package/src/components/pagination.stories.tsx +110 -0
- package/src/components/pagination.test.tsx +46 -0
- package/src/components/pagination.tsx +144 -0
- package/src/components/popover.stories.tsx +26 -0
- package/src/components/popover.tsx +62 -0
- package/src/components/pricing.stories.tsx +42 -0
- package/src/components/pricing.tsx +130 -0
- package/src/components/progress.stories.tsx +22 -0
- package/src/components/progress.tsx +189 -0
- package/src/components/prompt-input.stories.tsx +62 -0
- package/src/components/prompt-input.test.tsx +106 -0
- package/src/components/prompt-input.tsx +343 -0
- package/src/components/prompt-suggestions.stories.tsx +53 -0
- package/src/components/prompt-suggestions.test.tsx +37 -0
- package/src/components/prompt-suggestions.tsx +122 -0
- package/src/components/quota-bar.stories.tsx +19 -0
- package/src/components/quota-bar.tsx +191 -0
- package/src/components/quote.stories.tsx +18 -0
- package/src/components/quote.tsx +43 -0
- package/src/components/radio-card.stories.tsx +27 -0
- package/src/components/radio-card.tsx +225 -0
- package/src/components/radio-group.stories.tsx +32 -0
- package/src/components/radio-group.tsx +68 -0
- package/src/components/reasoning.stories.tsx +50 -0
- package/src/components/reasoning.test.tsx +48 -0
- package/src/components/reasoning.tsx +143 -0
- package/src/components/search.stories.tsx +18 -0
- package/src/components/search.tsx +133 -0
- package/src/components/section-nav.stories.tsx +59 -0
- package/src/components/section-nav.test.tsx +36 -0
- package/src/components/section-nav.tsx +146 -0
- package/src/components/segmented-control.stories.tsx +22 -0
- package/src/components/segmented-control.tsx +301 -0
- package/src/components/select-button.stories.tsx +27 -0
- package/src/components/select-button.tsx +174 -0
- package/src/components/select.stories.tsx +27 -0
- package/src/components/select.tsx +198 -0
- package/src/components/separator.stories.tsx +22 -0
- package/src/components/separator.tsx +23 -0
- package/src/components/shimmer-text.stories.tsx +23 -0
- package/src/components/shimmer-text.test.tsx +35 -0
- package/src/components/shimmer-text.tsx +43 -0
- package/src/components/sidebar.stories.tsx +25 -0
- package/src/components/sidebar.tsx +234 -0
- package/src/components/skeleton.stories.tsx +22 -0
- package/src/components/skeleton.tsx +96 -0
- package/src/components/slider.stories.tsx +20 -0
- package/src/components/slider.tsx +176 -0
- package/src/components/slideshow.stories.tsx +30 -0
- package/src/components/slideshow.tsx +291 -0
- package/src/components/source.stories.tsx +32 -0
- package/src/components/source.test.tsx +40 -0
- package/src/components/source.tsx +161 -0
- package/src/components/spinner.stories.tsx +19 -0
- package/src/components/spinner.tsx +76 -0
- package/src/components/stat-strip.stories.tsx +36 -0
- package/src/components/stat-strip.test.tsx +25 -0
- package/src/components/stat-strip.tsx +85 -0
- package/src/components/stats.stories.tsx +24 -0
- package/src/components/stats.tsx +83 -0
- package/src/components/step-indicator.stories.tsx +18 -0
- package/src/components/step-indicator.test.tsx +18 -0
- package/src/components/step-indicator.tsx +286 -0
- package/src/components/switch.stories.tsx +26 -0
- package/src/components/switch.tsx +32 -0
- package/src/components/table.stories.tsx +38 -0
- package/src/components/table.tsx +220 -0
- package/src/components/tabs.stories.tsx +25 -0
- package/src/components/tabs.tsx +276 -0
- package/src/components/testimonials.stories.tsx +22 -0
- package/src/components/testimonials.tsx +109 -0
- package/src/components/text-link.stories.tsx +47 -0
- package/src/components/text-link.test.tsx +18 -0
- package/src/components/text-link.tsx +88 -0
- package/src/components/text.stories.tsx +49 -0
- package/src/components/text.tsx +105 -0
- package/src/components/thinking-bar.stories.tsx +19 -0
- package/src/components/thinking-bar.test.tsx +27 -0
- package/src/components/thinking-bar.tsx +64 -0
- package/src/components/thinking-steps.stories.tsx +44 -0
- package/src/components/thinking-steps.test.tsx +42 -0
- package/src/components/thinking-steps.tsx +92 -0
- package/src/components/toaster.stories.tsx +80 -0
- package/src/components/toaster.tsx +36 -0
- package/src/components/toggle.stories.tsx +21 -0
- package/src/components/toggle.tsx +103 -0
- package/src/components/tool-call-card.stories.tsx +97 -0
- package/src/components/tool-call-card.test.tsx +88 -0
- package/src/components/tool-call-card.tsx +231 -0
- package/src/components/tooltip.stories.tsx +25 -0
- package/src/components/tooltip.tsx +43 -0
- package/src/components/top-nav.stories.tsx +20 -0
- package/src/components/top-nav.tsx +76 -0
- package/src/docs/Colors.stories.tsx +192 -0
- package/src/docs/GettingStarted.mdx +72 -0
- package/src/docs/Mcp.mdx +52 -0
- package/src/docs/Typography.stories.tsx +114 -0
- package/src/hooks/use-in-view.ts +32 -0
- package/src/hooks/use-reduced-motion.ts +26 -0
- package/src/index.ts +343 -0
- package/src/lib/cn.test.ts +67 -0
- package/src/lib/cn.ts +81 -0
- package/src/lib/motion.ts +109 -0
- package/src/lib/prefix-utilities.test.ts +56 -0
- package/src/lib/prefix-utilities.ts +50 -0
- package/src/styles/base.css +489 -0
- package/src/styles/motion.css +69 -0
- package/src/styles/overrides.css +44 -0
- package/src/styles/typography.css +173 -0
- package/src/theme/theme.css +391 -0
- package/src/theme/tokens.ts +29 -0
- package/src/theme/types.ts +26 -0
- package/README.md +0 -3
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* @adres/mgda-ui - typography.css
|
|
3
|
+
*
|
|
4
|
+
* Semantic single-class typography utilities built with @apply.
|
|
5
|
+
* One class covers font-size, font-weight, line-height, and letter-spacing.
|
|
6
|
+
* Color is excluded. Apply it separately:
|
|
7
|
+
*
|
|
8
|
+
* <h1 class="ax:t-display-xl ax:text-foreground">…</h1>
|
|
9
|
+
* <p class="ax:t-body-md ax:text-muted-foreground">…</p>
|
|
10
|
+
*
|
|
11
|
+
* Registered with @utility so Tailwind v4 generates responsive variants
|
|
12
|
+
* (ax:md:t-display-xl, ax:lg:t-h1, etc.) automatically.
|
|
13
|
+
*
|
|
14
|
+
* ─── Scale ────────────────────────────────────────────────────────────────────
|
|
15
|
+
*
|
|
16
|
+
* Display t-display-3xl / 2xl / xl / sm / lg / md Marketing + hero headlines
|
|
17
|
+
* Heading t-h1 → t-h6 Page + section structure
|
|
18
|
+
* Body t-body-lg / md / sm Readable prose
|
|
19
|
+
* Label t-label-lg / md / sm / xs UI controls (buttons, nav, tabs)
|
|
20
|
+
* Caption t-caption Metadata, timestamps
|
|
21
|
+
* Overline t-overline Eyebrow / category badges
|
|
22
|
+
* Code t-code Monospace / technical content
|
|
23
|
+
* Micro t-micro 10px UI annotations (sub-caption)
|
|
24
|
+
*/
|
|
25
|
+
|
|
26
|
+
/* ── Display ────────────────────────────────────────────────────────────────
|
|
27
|
+
* Hero headlines and campaign copy.
|
|
28
|
+
* Sub-1 leading requires an arbitrary value: no Tailwind default exists.
|
|
29
|
+
* ─────────────────────────────────────────────────────────────────────────── */
|
|
30
|
+
|
|
31
|
+
@utility t-display-3xl {
|
|
32
|
+
@apply ax:font-sans ax:text-8xl ax:font-semibold ax:leading-24 ax:tracking-tighter ax:text-foreground-strong;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
@utility t-display-2xl {
|
|
36
|
+
@apply ax:font-sans ax:text-7xl ax:font-semibold ax:leading-18 ax:tracking-tighter ax:text-foreground-strong;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
@utility t-display-xl {
|
|
40
|
+
/* 64px - explicit so the display ramp stays monotonic regardless of the
|
|
41
|
+
base text-* scale (base.css leaves text-6xl at the Tailwind default 60px). */
|
|
42
|
+
@apply ax:font-sans ax:text-[4rem] ax:font-semibold ax:leading-16 ax:tracking-tighter ax:text-foreground-strong;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
@utility t-display-lg {
|
|
46
|
+
/* 56px - sits between md (48) and xl (64). */
|
|
47
|
+
@apply ax:font-sans ax:text-[3.5rem] ax:font-semibold ax:leading-14 ax:tracking-tight ax:text-foreground-strong;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
@utility t-display-md {
|
|
51
|
+
@apply ax:font-sans ax:text-4xl ax:font-semibold ax:leading-10.5 ax:tracking-tight ax:text-foreground-strong;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
@utility t-display-sm {
|
|
55
|
+
@apply ax:font-sans ax:text-3xl ax:font-semibold ax:leading-8.5 ax:tracking-tight ax:text-foreground-strong;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/* ── Heading ────────────────────────────────────────────────────────────────
|
|
59
|
+
* Page titles and document / section hierarchy.
|
|
60
|
+
* ─────────────────────────────────────────────────────────────────────────── */
|
|
61
|
+
|
|
62
|
+
@utility t-h1 {
|
|
63
|
+
@apply ax:text-2xl ax:font-semibold ax:leading-8 ax:tracking-tight ax:text-foreground-strong;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
@utility t-h2 {
|
|
67
|
+
@apply ax:text-xl ax:font-semibold ax:leading-7 ax:tracking-tight ax:text-foreground-strong;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
@utility t-h3 {
|
|
71
|
+
@apply ax:text-lg ax:font-semibold ax:leading-6 ax:tracking-tight ax:text-foreground-strong;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
@utility t-h4 {
|
|
75
|
+
@apply ax:text-base ax:font-semibold ax:leading-5 ax:text-foreground-strong;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
@utility t-h5 {
|
|
79
|
+
@apply ax:text-sm ax:font-semibold ax:leading-normal ax:text-foreground-strong;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
@utility t-h6 {
|
|
83
|
+
@apply ax:text-xs ax:font-semibold ax:leading-normal ax:text-foreground-strong;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/* ── Body ───────────────────────────────────────────────────────────────────
|
|
87
|
+
* Readable prose. Set max-width separately (max-w-prose ≈ 65ch).
|
|
88
|
+
* ─────────────────────────────────────────────────────────────────────────── */
|
|
89
|
+
|
|
90
|
+
@utility t-body-2xl {
|
|
91
|
+
@apply ax:text-2xl ax:leading-8 ax:font-medium ax:tracking-tight;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
@utility t-body-xl {
|
|
95
|
+
@apply ax:text-xl ax:leading-7 ax:font-medium ax:tracking-tight;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
@utility t-body-lg {
|
|
99
|
+
@apply ax:text-lg ax:leading-6.5 ax:font-medium;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
@utility t-body-md {
|
|
103
|
+
@apply ax:text-base ax:leading-snug;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
@utility t-body-sm {
|
|
107
|
+
@apply ax:text-sm ax:leading-snug;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
@utility t-body-xs {
|
|
111
|
+
@apply ax:text-xs ax:leading-snug;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
/* ── Label ──────────────────────────────────────────────────────────────────
|
|
115
|
+
* UI controls: buttons, tabs, nav items, form labels, badge text.
|
|
116
|
+
* leading-none - labels are single-line by design.
|
|
117
|
+
* ─────────────────────────────────────────────────────────────────────────── */
|
|
118
|
+
|
|
119
|
+
@utility t-label-lg {
|
|
120
|
+
@apply ax:text-lg ax:font-medium ax:leading-none;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
@utility t-label-md {
|
|
124
|
+
@apply ax:text-base ax:font-medium ax:leading-none;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
@utility t-label-sm {
|
|
128
|
+
@apply ax:text-sm ax:font-medium ax:leading-none;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
@utility t-label-xs {
|
|
132
|
+
@apply ax:text-xs ax:font-medium ax:leading-none ax:tracking-wide;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
@utility t-label-2xs {
|
|
136
|
+
font-size: var(--text-3xs); /* 10px */
|
|
137
|
+
@apply ax:font-medium ax:leading-none ax:tracking-wide;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
/* ── Caption ────────────────────────────────────────────────────────────────
|
|
141
|
+
* Auxiliary information: timestamps, photo credits, metadata footnotes.
|
|
142
|
+
* ─────────────────────────────────────────────────────────────────────────── */
|
|
143
|
+
|
|
144
|
+
@utility t-caption {
|
|
145
|
+
@apply ax:text-xs ax:font-normal ax:leading-tight;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
/* ── Overline ───────────────────────────────────────────────────────────────
|
|
149
|
+
* Eyebrow labels, category badges, section markers.
|
|
150
|
+
* Always uppercase with wide tracking.
|
|
151
|
+
* ─────────────────────────────────────────────────────────────────────────── */
|
|
152
|
+
|
|
153
|
+
@utility t-overline {
|
|
154
|
+
font-size: var(--text-3xs);
|
|
155
|
+
@apply ax:font-semibold ax:leading-none ax:tracking-widest ax:uppercase;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
/* ── Code ───────────────────────────────────────────────────────────────────
|
|
159
|
+
* Monospace content: code snippets, property IDs, API values.
|
|
160
|
+
* ─────────────────────────────────────────────────────────────────────────── */
|
|
161
|
+
|
|
162
|
+
@utility t-code {
|
|
163
|
+
@apply ax:font-mono ax:text-sm ax:font-normal ax:leading-relaxed ax:tracking-tight;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
/* ── Micro ──────────────────────────────────────────────────────────────────
|
|
167
|
+
* Sub-caption annotations: "Before / After", status micro-labels, dense
|
|
168
|
+
* data badges. 10 px. Use only when truly space-constrained.
|
|
169
|
+
* ─────────────────────────────────────────────────────────────────────────── */
|
|
170
|
+
|
|
171
|
+
@utility t-micro {
|
|
172
|
+
@apply ax:text-[10px] ax:font-medium ax:leading-none ax:tracking-wide;
|
|
173
|
+
}
|
|
@@ -0,0 +1,391 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* MGDA theme - theme.css
|
|
3
|
+
*
|
|
4
|
+
* MGDA brand tokens.
|
|
5
|
+
*
|
|
6
|
+
* Brand identity:
|
|
7
|
+
* Primary Vivid blue hsl(208 100% 50%) - actions, links, the brand spark
|
|
8
|
+
* Secondary Pale cyan hsl(184 100% 64%) - quiet utility surfaces
|
|
9
|
+
* Accent Gold hsl(38 90% 55%) - emphasis highlights (not brief-specified;
|
|
10
|
+
* chosen to complement primary/secondary)
|
|
11
|
+
* Neutrals Cool blue-gray hsl(220 20% 45%)
|
|
12
|
+
*
|
|
13
|
+
* Typography: Gilroy, self-hosted via @adres/fonts/gilroy. Weights 300-700.
|
|
14
|
+
* The consuming app must render the `gilroy` loader's `.variable` className
|
|
15
|
+
* on <html> (or an ancestor) so --font-gilroy resolves below.
|
|
16
|
+
* Radius: architectural - 4 / 6 / 8 / 12px.
|
|
17
|
+
*
|
|
18
|
+
* Layer 1 - primitives (neutrals + primary / secondary / accent / status scales)
|
|
19
|
+
* Layer 2 - semantic tokens (--background, --primary, etc.) consumed by the design system
|
|
20
|
+
*
|
|
21
|
+
* Pulled in by @adres/mgda-ui/styles; apps do not import it directly.
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
:root {
|
|
25
|
+
/* ─── Layer 1 - primitives ──────────────────────────────────────────── */
|
|
26
|
+
|
|
27
|
+
/* Neutrals - cool blue-gray (h:220, s:20%), anchored at 500 = hsl(220 20% 45%) */
|
|
28
|
+
--neutral-50: 220 20% 97%;
|
|
29
|
+
--neutral-100: 220 20% 92%;
|
|
30
|
+
--neutral-200: 220 20% 86%;
|
|
31
|
+
--neutral-300: 220 20% 74%;
|
|
32
|
+
--neutral-400: 220 20% 60%;
|
|
33
|
+
--neutral-500: 220 20% 45%;
|
|
34
|
+
--neutral-600: 220 20% 40%;
|
|
35
|
+
--neutral-700: 220 20% 30%;
|
|
36
|
+
--neutral-800: 220 20% 20%;
|
|
37
|
+
--neutral-900: 220 20% 10%;
|
|
38
|
+
--neutral-950: 220 20% 5%;
|
|
39
|
+
|
|
40
|
+
/* Primary - vivid blue, anchored at 500 = hsl(208 100% 50%) */
|
|
41
|
+
--primary-50: 208 100% 97%;
|
|
42
|
+
--primary-100: 208 100% 92%;
|
|
43
|
+
--primary-200: 208 100% 86%;
|
|
44
|
+
--primary-300: 208 100% 74%;
|
|
45
|
+
--primary-400: 208 100% 59%;
|
|
46
|
+
--primary-500: 208 100% 50%; /* DEFAULT */
|
|
47
|
+
--primary-600: 208 100% 41%;
|
|
48
|
+
--primary-700: 208 100% 32%;
|
|
49
|
+
--primary-800: 208 100% 23%;
|
|
50
|
+
--primary-900: 208 100% 14%;
|
|
51
|
+
--primary-950: 208 100% 5%;
|
|
52
|
+
|
|
53
|
+
/* Secondary - pale cyan, anchored at 500 = hsl(184 100% 64%) */
|
|
54
|
+
--secondary-50: 184 100% 97%;
|
|
55
|
+
--secondary-100: 184 100% 94%;
|
|
56
|
+
--secondary-200: 184 100% 90%;
|
|
57
|
+
--secondary-300: 184 100% 84%;
|
|
58
|
+
--secondary-400: 184 100% 76%;
|
|
59
|
+
--secondary-500: 184 100% 64%; /* DEFAULT */
|
|
60
|
+
--secondary-600: 184 100% 50%;
|
|
61
|
+
--secondary-700: 184 100% 38%;
|
|
62
|
+
--secondary-800: 184 100% 26%;
|
|
63
|
+
--secondary-900: 184 100% 16%;
|
|
64
|
+
--secondary-950: 184 100% 10%;
|
|
65
|
+
|
|
66
|
+
/* Accent - gold, anchored at 500 = hsl(38 90% 55%). Not brief-specified;
|
|
67
|
+
* chosen to pair with the blue/cyan primary + secondary. */
|
|
68
|
+
--accent-50: 38 90% 97%;
|
|
69
|
+
--accent-100: 38 90% 89%;
|
|
70
|
+
--accent-200: 38 90% 80%;
|
|
71
|
+
--accent-300: 38 90% 72%;
|
|
72
|
+
--accent-400: 38 90% 63%;
|
|
73
|
+
--accent-500: 38 90% 55%; /* DEFAULT */
|
|
74
|
+
--accent-600: 38 90% 45%;
|
|
75
|
+
--accent-700: 38 90% 35%;
|
|
76
|
+
--accent-800: 38 90% 25%;
|
|
77
|
+
--accent-900: 38 90% 15%;
|
|
78
|
+
--accent-950: 38 90% 5%;
|
|
79
|
+
|
|
80
|
+
/* Status - destructive / success / warning. Unified palette, identical across
|
|
81
|
+
* all Adres brands (explicit HSL, full 50→950 scale). */
|
|
82
|
+
--destructive-50: 0 80% 97%;
|
|
83
|
+
--destructive-100: 0 80% 94%;
|
|
84
|
+
--destructive-200: 0 80% 88%;
|
|
85
|
+
--destructive-300: 0 80% 80%;
|
|
86
|
+
--destructive-400: 0 80% 75%;
|
|
87
|
+
--destructive-500: 0 80% 62%;
|
|
88
|
+
--destructive-600: 0 80% 44%;
|
|
89
|
+
--destructive-700: 0 80% 32%;
|
|
90
|
+
--destructive-800: 0 80% 18%;
|
|
91
|
+
--destructive-900: 0 80% 10%;
|
|
92
|
+
--destructive-950: 0 80% 6%;
|
|
93
|
+
|
|
94
|
+
--success-50: 158 80% 97%;
|
|
95
|
+
--success-100: 158 80% 94%;
|
|
96
|
+
--success-200: 158 80% 88%;
|
|
97
|
+
--success-300: 158 80% 80%;
|
|
98
|
+
--success-400: 158 80% 75%;
|
|
99
|
+
--success-500: 158 80% 62%;
|
|
100
|
+
--success-600: 158 80% 44%;
|
|
101
|
+
--success-700: 158 80% 32%;
|
|
102
|
+
--success-800: 158 80% 18%;
|
|
103
|
+
--success-900: 158 80% 10%;
|
|
104
|
+
--success-950: 158 80% 6%;
|
|
105
|
+
|
|
106
|
+
--warning-50: 32 92% 97%;
|
|
107
|
+
--warning-100: 32 92% 94%;
|
|
108
|
+
--warning-200: 32 92% 88%;
|
|
109
|
+
--warning-300: 32 92% 80%;
|
|
110
|
+
--warning-400: 32 92% 75%;
|
|
111
|
+
--warning-500: 32 92% 62%;
|
|
112
|
+
--warning-600: 32 92% 44%;
|
|
113
|
+
--warning-700: 32 92% 32%;
|
|
114
|
+
--warning-800: 32 92% 18%;
|
|
115
|
+
--warning-900: 38 55% 10%;
|
|
116
|
+
--warning-950: 32 92% 6%;
|
|
117
|
+
|
|
118
|
+
/* ─── Typography primitives - Gilroy, self-hosted via @adres/fonts/gilroy.
|
|
119
|
+
* --font-gilroy is supplied by the `gilroy.variable` className the
|
|
120
|
+
* consuming app renders on <html>. Storybook (Vite, can't run next/font)
|
|
121
|
+
* does not set that variable; it loads the "Gilroy" family from the
|
|
122
|
+
* Fontshare CDN in preview-head.html. The fallback inside var() uses that
|
|
123
|
+
* family name when the variable is unset. */
|
|
124
|
+
--font-family-sans:
|
|
125
|
+
var(--font-gilroy, "Gilroy"), "Gilroy", "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto,
|
|
126
|
+
"Helvetica Neue", Arial, sans-serif;
|
|
127
|
+
|
|
128
|
+
/* ─── Brand-specific radius - architectural register ───────────────────── */
|
|
129
|
+
--radius-xs: 0.125rem; /* 2px */
|
|
130
|
+
--radius-sm: 0.25rem; /* 4px */
|
|
131
|
+
--radius: 0.375rem; /* 6px - DEFAULT - buttons, inputs */
|
|
132
|
+
--radius-md: 0.5rem; /* 8px - cards */
|
|
133
|
+
--radius-lg: 0.75rem; /* 12px - modals */
|
|
134
|
+
--radius-xl: 1rem; /* 16px */
|
|
135
|
+
--radius-full: 9999px;
|
|
136
|
+
--radius-badge: var(--radius-sm);
|
|
137
|
+
--button-radius: var(--radius);
|
|
138
|
+
--input-radius: var(--radius);
|
|
139
|
+
|
|
140
|
+
--surface-n1: var(--neutral-200);
|
|
141
|
+
--surface-0: var(--neutral-100);
|
|
142
|
+
--surface-1: 0 0% 100%;
|
|
143
|
+
--surface-2: 0 0% 100%;
|
|
144
|
+
--surface-3: var(--neutral-300);
|
|
145
|
+
|
|
146
|
+
/* ─── Layer 2 - semantic tokens (LIGHT theme) ───────────────────────────
|
|
147
|
+
* These are the names the design system consumes.
|
|
148
|
+
* Format: HSL channels only (no hsl() wrapper) - design-system wraps them.
|
|
149
|
+
* ───────────────────────────────────────────────────────────────────── */
|
|
150
|
+
|
|
151
|
+
--background: var(--neutral-50);
|
|
152
|
+
--foreground: var(--neutral-strong);
|
|
153
|
+
--foreground-strong: var(--neutral-strongest);
|
|
154
|
+
--foreground-muted: var(--neutral);
|
|
155
|
+
|
|
156
|
+
--card: var(--white);
|
|
157
|
+
--card-foreground: var(--neutral-strong);
|
|
158
|
+
|
|
159
|
+
--popover: var(--white);
|
|
160
|
+
--popover-foreground: var(--neutral-strong);
|
|
161
|
+
|
|
162
|
+
--primary: var(--primary-500);
|
|
163
|
+
--primary-foreground: var(--primary-600);
|
|
164
|
+
|
|
165
|
+
--secondary: var(--secondary-500);
|
|
166
|
+
--secondary-foreground: var(--secondary-strong);
|
|
167
|
+
|
|
168
|
+
--accent: var(--accent-500);
|
|
169
|
+
--accent-foreground: var(--accent-strong);
|
|
170
|
+
|
|
171
|
+
--muted: var(--neutral-weakest);
|
|
172
|
+
--muted-foreground: var(--neutral);
|
|
173
|
+
|
|
174
|
+
--selected: var(--neutral-weaker);
|
|
175
|
+
|
|
176
|
+
--destructive: var(--destructive-500);
|
|
177
|
+
--destructive-foreground: var(--destructive-strong);
|
|
178
|
+
|
|
179
|
+
--success: var(--success-500);
|
|
180
|
+
--success-foreground: var(--success-strong);
|
|
181
|
+
|
|
182
|
+
--warning: var(--warning-500);
|
|
183
|
+
--warning-foreground: var(--warning-strong);
|
|
184
|
+
|
|
185
|
+
--border: var(--neutral-weaker);
|
|
186
|
+
--border-strong: var(--neutral-weak);
|
|
187
|
+
--input: var(--neutral-weak);
|
|
188
|
+
--ring: var(--primary);
|
|
189
|
+
|
|
190
|
+
/* ─── Named aliases - point at numbered steps so DS @theme inline mapping
|
|
191
|
+
* (--color-primary-weakest, --color-accent-stronger, etc.) resolves to a
|
|
192
|
+
* single edit point per palette: the numbered scale above.
|
|
193
|
+
* ─────────────────────────────────────────────────────────────────────── */
|
|
194
|
+
|
|
195
|
+
--neutral: var(--neutral-500);
|
|
196
|
+
--neutral-muted: var(--neutral-50);
|
|
197
|
+
--neutral-weakest: var(--neutral-100);
|
|
198
|
+
--neutral-weaker: var(--neutral-200);
|
|
199
|
+
--neutral-weak: var(--neutral-300);
|
|
200
|
+
--neutral-strong: var(--neutral-700);
|
|
201
|
+
--neutral-stronger: var(--neutral-800);
|
|
202
|
+
--neutral-strongest: var(--neutral-900);
|
|
203
|
+
|
|
204
|
+
--primary-muted: var(--primary-50);
|
|
205
|
+
--primary-weakest: var(--primary-100);
|
|
206
|
+
--primary-weaker: var(--primary-200);
|
|
207
|
+
--primary-weak: var(--primary-300);
|
|
208
|
+
--primary-strong: var(--primary-700);
|
|
209
|
+
--primary-stronger: var(--primary-800);
|
|
210
|
+
--primary-strongest: var(--primary-900);
|
|
211
|
+
|
|
212
|
+
--secondary-muted: var(--secondary-50);
|
|
213
|
+
--secondary-weakest: var(--secondary-100);
|
|
214
|
+
--secondary-weaker: var(--secondary-200);
|
|
215
|
+
--secondary-weak: var(--secondary-300);
|
|
216
|
+
--secondary-strong: var(--secondary-700);
|
|
217
|
+
--secondary-stronger: var(--secondary-800);
|
|
218
|
+
--secondary-strongest: var(--secondary-900);
|
|
219
|
+
|
|
220
|
+
--accent-muted: var(--accent-50);
|
|
221
|
+
--accent-weakest: var(--accent-100);
|
|
222
|
+
--accent-weaker: var(--accent-200);
|
|
223
|
+
--accent-weak: var(--accent-300);
|
|
224
|
+
--accent-strong: var(--accent-700);
|
|
225
|
+
--accent-stronger: var(--accent-800);
|
|
226
|
+
--accent-strongest: var(--accent-900);
|
|
227
|
+
|
|
228
|
+
--destructive-muted: var(--destructive-50);
|
|
229
|
+
--destructive-weakest: var(--destructive-100);
|
|
230
|
+
--destructive-weaker: var(--destructive-200);
|
|
231
|
+
--destructive-weak: var(--destructive-300);
|
|
232
|
+
--destructive-strong: var(--destructive-700);
|
|
233
|
+
--destructive-stronger: var(--destructive-800);
|
|
234
|
+
--destructive-strongest: var(--destructive-900);
|
|
235
|
+
|
|
236
|
+
--success-muted: var(--success-50);
|
|
237
|
+
--success-weakest: var(--success-100);
|
|
238
|
+
--success-weaker: var(--success-200);
|
|
239
|
+
--success-weak: var(--success-300);
|
|
240
|
+
--success-strong: var(--success-700);
|
|
241
|
+
--success-stronger: var(--success-800);
|
|
242
|
+
--success-strongest: var(--success-900);
|
|
243
|
+
|
|
244
|
+
--warning-muted: var(--warning-50);
|
|
245
|
+
--warning-weakest: var(--warning-100);
|
|
246
|
+
--warning-weaker: var(--warning-200);
|
|
247
|
+
--warning-weak: var(--warning-300);
|
|
248
|
+
--warning-strong: var(--warning-700);
|
|
249
|
+
--warning-stronger: var(--warning-800);
|
|
250
|
+
--warning-strongest: var(--warning-900);
|
|
251
|
+
|
|
252
|
+
/* ─── Data visualisation palette ────────────────────────────────────────────
|
|
253
|
+
* Categorical colours for charts, graphs, and maps ONLY.
|
|
254
|
+
* Source: Tableau 10 (production-tested, perceptually balanced).
|
|
255
|
+
* Do NOT use these for UI chrome - they exist solely for data encoding.
|
|
256
|
+
* ────────────────────────────────────────────────────────────────────────── */
|
|
257
|
+
--chart-1: 211 36% 48%; /* blue #4e79a7 */
|
|
258
|
+
--chart-2: 30 88% 56%; /* orange #f28e2c */
|
|
259
|
+
--chart-3: 359 70% 61%; /* red #e15759 */
|
|
260
|
+
--chart-4: 175 31% 59%; /* teal #76b7b2 */
|
|
261
|
+
--chart-5: 113 34% 47%; /* green #59a14f */
|
|
262
|
+
--chart-6: 47 82% 61%; /* yellow #edc949 */
|
|
263
|
+
--chart-7: 316 25% 58%; /* purple #af7aa1 */
|
|
264
|
+
--chart-8: 354 100% 81%; /* pink #ff9da7 */
|
|
265
|
+
--chart-9: 22 24% 49%; /* brown #9c755f */
|
|
266
|
+
--chart-10: 20 10% 70%; /* grey #bab0ab */
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
/* ─── Layer 2 - semantic tokens (DARK theme) ──────────────────────────────
|
|
270
|
+
* Activated when `.dark` class is present on <html> or any ancestor.
|
|
271
|
+
* ─────────────────────────────────────────────────────────────────────── */
|
|
272
|
+
|
|
273
|
+
:root.dark,
|
|
274
|
+
:root[data-theme="dark"] {
|
|
275
|
+
--background: var(--neutral-weakest);
|
|
276
|
+
--foreground: var(--neutral-strong);
|
|
277
|
+
--foreground-strong: var(--neutral-strongest);
|
|
278
|
+
--foreground-muted: var(--neutral);
|
|
279
|
+
|
|
280
|
+
--card: var(--neutral-muted);
|
|
281
|
+
--card-foreground: var(--neutral-strong);
|
|
282
|
+
|
|
283
|
+
--popover: var(--neutral-muted);
|
|
284
|
+
--popover-foreground: var(--neutral-strong);
|
|
285
|
+
|
|
286
|
+
--primary: var(--primary-500);
|
|
287
|
+
--primary-foreground: var(--primary);
|
|
288
|
+
|
|
289
|
+
--secondary: var(--secondary-500);
|
|
290
|
+
--secondary-foreground: var(--secondary-strong);
|
|
291
|
+
|
|
292
|
+
--accent: var(--accent-500);
|
|
293
|
+
--accent-foreground: var(--accent);
|
|
294
|
+
|
|
295
|
+
--muted: var(--neutral-weaker);
|
|
296
|
+
--muted-foreground: var(--neutral);
|
|
297
|
+
|
|
298
|
+
--selected: var(--neutral-weaker);
|
|
299
|
+
|
|
300
|
+
--destructive: var(--destructive-500);
|
|
301
|
+
--destructive-foreground: var(--destructive);
|
|
302
|
+
|
|
303
|
+
--success: var(--success-500);
|
|
304
|
+
--success-foreground: var(--success);
|
|
305
|
+
|
|
306
|
+
--warning: var(--warning-500);
|
|
307
|
+
--warning-foreground: var(--warning);
|
|
308
|
+
|
|
309
|
+
--border: var(--neutral-weaker);
|
|
310
|
+
--border-strong: var(--neutral-weak);
|
|
311
|
+
--input: var(--neutral-weak);
|
|
312
|
+
--ring: var(--primary);
|
|
313
|
+
|
|
314
|
+
--surface-n1: var(--neutral-900);
|
|
315
|
+
--surface-0: var(--neutral-950);
|
|
316
|
+
--surface-1: var(--neutral-900);
|
|
317
|
+
--surface-2: var(--neutral-800);
|
|
318
|
+
--surface-3: var(--neutral-700);
|
|
319
|
+
|
|
320
|
+
/* Strong-emphasis aliases inverted for dark surfaces - light step reads
|
|
321
|
+
* as a confident brand colour on the dark background. */
|
|
322
|
+
|
|
323
|
+
/* Data visualisation - lightened and more vivid for dark backgrounds */
|
|
324
|
+
--chart-1: 211 70% 65%;
|
|
325
|
+
--chart-2: 30 95% 63%;
|
|
326
|
+
--chart-3: 359 85% 70%;
|
|
327
|
+
--chart-4: 175 55% 65%;
|
|
328
|
+
--chart-5: 113 50% 58%;
|
|
329
|
+
--chart-6: 47 90% 68%;
|
|
330
|
+
--chart-7: 316 50% 68%;
|
|
331
|
+
--chart-8: 354 100% 85%;
|
|
332
|
+
--chart-9: 22 55% 62%;
|
|
333
|
+
--chart-10: 220 15% 72%;
|
|
334
|
+
|
|
335
|
+
/* Emphasis aliases INVERT in dark: weak side -> dark steps, strong side -> light steps. */
|
|
336
|
+
--primary-muted: var(--primary-900);
|
|
337
|
+
--primary-weakest: var(--primary-800);
|
|
338
|
+
--primary-weaker: var(--primary-700);
|
|
339
|
+
--primary-weak: var(--primary-600);
|
|
340
|
+
--primary-strong: var(--primary-300);
|
|
341
|
+
--primary-stronger: var(--primary-200);
|
|
342
|
+
--primary-strongest: var(--primary-100);
|
|
343
|
+
|
|
344
|
+
--secondary-muted: var(--secondary-950);
|
|
345
|
+
--secondary-weakest: var(--secondary-900);
|
|
346
|
+
--secondary-weaker: var(--secondary-800);
|
|
347
|
+
--secondary-weak: var(--secondary-700);
|
|
348
|
+
--secondary-strong: var(--secondary-300);
|
|
349
|
+
--secondary-stronger: var(--secondary-200);
|
|
350
|
+
--secondary-strongest: var(--secondary-100);
|
|
351
|
+
|
|
352
|
+
--accent-muted: var(--accent-900);
|
|
353
|
+
--accent-weakest: var(--accent-800);
|
|
354
|
+
--accent-weaker: var(--accent-700);
|
|
355
|
+
--accent-weak: var(--accent-600);
|
|
356
|
+
--accent-strong: var(--accent-300);
|
|
357
|
+
--accent-stronger: var(--accent-200);
|
|
358
|
+
--accent-strongest: var(--accent-100);
|
|
359
|
+
|
|
360
|
+
--neutral-muted: var(--neutral-950);
|
|
361
|
+
--neutral-weakest: var(--neutral-900);
|
|
362
|
+
--neutral-weaker: var(--neutral-800);
|
|
363
|
+
--neutral-weak: var(--neutral-700);
|
|
364
|
+
--neutral-strong: var(--neutral-300);
|
|
365
|
+
--neutral-stronger: var(--neutral-200);
|
|
366
|
+
--neutral-strongest: var(--neutral-100);
|
|
367
|
+
|
|
368
|
+
--destructive-muted: var(--destructive-900);
|
|
369
|
+
--destructive-weakest: var(--destructive-800);
|
|
370
|
+
--destructive-weaker: var(--destructive-700);
|
|
371
|
+
--destructive-weak: var(--destructive-600);
|
|
372
|
+
--destructive-strong: var(--destructive-300);
|
|
373
|
+
--destructive-stronger: var(--destructive-200);
|
|
374
|
+
--destructive-strongest: var(--destructive-100);
|
|
375
|
+
|
|
376
|
+
--success-muted: var(--success-900);
|
|
377
|
+
--success-weakest: var(--success-800);
|
|
378
|
+
--success-weaker: var(--success-700);
|
|
379
|
+
--success-weak: var(--success-600);
|
|
380
|
+
--success-strong: var(--success-300);
|
|
381
|
+
--success-stronger: var(--success-200);
|
|
382
|
+
--success-strongest: var(--success-100);
|
|
383
|
+
|
|
384
|
+
--warning-muted: var(--warning-900);
|
|
385
|
+
--warning-weakest: var(--warning-800);
|
|
386
|
+
--warning-weaker: var(--warning-700);
|
|
387
|
+
--warning-weak: var(--warning-600);
|
|
388
|
+
--warning-strong: var(--warning-300);
|
|
389
|
+
--warning-stronger: var(--warning-200);
|
|
390
|
+
--warning-strongest: var(--warning-100);
|
|
391
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { BrandMeta, BrandTokens } from "./types"
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @adres/brand-mgda - authored brand facts
|
|
5
|
+
*
|
|
6
|
+
* Palette, type, and radius live in `theme.css`. This file is meta, shape, and voice.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
export const mgdaBrand = {
|
|
10
|
+
name: "MGDA",
|
|
11
|
+
description:
|
|
12
|
+
"MGDA brand tokens. Vivid blue primary, pale cyan secondary, cool blue-gray neutrals, Gilroy typography.",
|
|
13
|
+
id: "mgda",
|
|
14
|
+
} as const satisfies BrandMeta
|
|
15
|
+
|
|
16
|
+
export const mgdaTokens = {
|
|
17
|
+
shape: {
|
|
18
|
+
softBg: false,
|
|
19
|
+
cardBorderless: false,
|
|
20
|
+
cardElevation: "sm",
|
|
21
|
+
tabsRounded: false,
|
|
22
|
+
},
|
|
23
|
+
voice: {
|
|
24
|
+
personality: ["Clear", "Structured", "Institutional", "Trustworthy"],
|
|
25
|
+
avoid: ["Decorative", "Noisy", "Off-brand whimsy"],
|
|
26
|
+
},
|
|
27
|
+
} as const satisfies BrandTokens
|
|
28
|
+
|
|
29
|
+
export type MgdaTokens = typeof mgdaTokens
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/** Registry metadata for the theme. */
|
|
2
|
+
export interface BrandMeta {
|
|
3
|
+
id: string
|
|
4
|
+
name: string
|
|
5
|
+
description: string
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export type BrandCardElevation = "none" | "xs" | "sm" | "md"
|
|
9
|
+
|
|
10
|
+
/** Authored JS facts CSS cannot express. Palette values live in theme.css. */
|
|
11
|
+
export interface BrandTokens {
|
|
12
|
+
shape: BrandTokenShape
|
|
13
|
+
voice: BrandTokenVoice
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export interface BrandTokenShape {
|
|
17
|
+
softBg: boolean
|
|
18
|
+
cardBorderless: boolean
|
|
19
|
+
cardElevation: BrandCardElevation
|
|
20
|
+
tabsRounded: boolean
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export interface BrandTokenVoice {
|
|
24
|
+
personality: readonly string[]
|
|
25
|
+
avoid: readonly string[]
|
|
26
|
+
}
|
package/README.md
DELETED