@siena-ai/design-system 0.0.24 → 0.0.25

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/globals.css CHANGED
@@ -14,7 +14,7 @@
14
14
  down ancient walls, Renaissance elegance, and timeless beauty.
15
15
 
16
16
  Design Principles:
17
- 1. Typography is the hero — Fraunces serif for headlines
17
+ 1. Typography is the hero — Editorial New serif for headlines
18
18
  2. Warm color palette — cream, bougainvillea purple, sage, ochre
19
19
  3. No gimmicks — no glows, gradients, or glassmorphism
20
20
  4. Generous whitespace — content breathes
@@ -24,10 +24,10 @@
24
24
  */
25
25
 
26
26
  @theme inline {
27
- /* Font families - Next.js sets font CSS vars via body class */
28
- /* SWAP FONTS HERE: use --font-funnel for Funnel Sans, --font-geist for Geist */
27
+ /* Font families Next.js sets --font-display and --font-funnel via body class */
28
+ /* SWAP FONTS: change layout.tsx localFont config + update fallback here */
29
29
  --font-sans: var(--font-funnel), ui-sans-serif, system-ui, sans-serif;
30
- --font-serif: var(--font-fraunces), ui-serif, Georgia, serif;
30
+ --font-serif: var(--font-display), "EB Garamond", Georgia, serif;
31
31
 
32
32
  /* Border radius - slightly softer */
33
33
  --radius-sm: 0.375rem;
@@ -47,6 +47,9 @@
47
47
  --color-siena-sky: var(--siena-sky);
48
48
  --color-siena-tuscan-stone: var(--siena-tuscan-stone);
49
49
 
50
+ /* CSAT star rating color */
51
+ --color-csat-star: var(--csat-star);
52
+
50
53
  /* Base semantic colors - reference CSS variables for dark mode support */
51
54
  --color-background: var(--background);
52
55
  --color-foreground: var(--foreground);
@@ -82,11 +85,11 @@
82
85
 
83
86
  :root, :host{
84
87
  /* ─────────────────────────────────────────────────────────────
85
- FONT FAMILIES — Runtime override (Next.js sets --font-fraunces via body class)
86
- Tailwind's @theme compiles out var(--font-fraunces) since it doesn't exist at build time.
88
+ FONT FAMILIES — Runtime override (Next.js sets --font-display via body class)
89
+ Tailwind's @theme compiles out var(--font-display) since it doesn't exist at build time.
87
90
  We re-declare here so the runtime value takes precedence.
88
91
  ───────────────────────────────────────────────────────────── */
89
- --font-serif: var(--font-fraunces), ui-serif, Georgia, serif;
92
+ --font-serif: var(--font-display), "EB Garamond", Georgia, serif;
90
93
  --font-sans: var(--font-funnel), ui-sans-serif, system-ui, sans-serif;
91
94
 
92
95
  /* ─────────────────────────────────────────────────────────────
@@ -194,6 +197,9 @@
194
197
  CHAT TOKENS — Siena Chat System
195
198
  ───────────────────────────────────────────────────────────── */
196
199
 
200
+ /* CSAT Star Rating - Warm, sunny gold (App Store style) */
201
+ --csat-star: #F5C842;
202
+
197
203
  /* Message Bubbles */
198
204
  --chat-user-bg: #E8E4DF;
199
205
  --chat-user-fg: #1A1A1A;
@@ -223,7 +229,7 @@
223
229
  AVATAR COLOR PALETTE — 14 Solid Earthy Colors
224
230
  ───────────────────────────────────────────────────────────── */
225
231
 
226
- --avatar-bougainvillea: #9B4DAF;
232
+ --avatar-bougainvillea: #D7C1DD;
227
233
  --avatar-terracotta: #C45D35;
228
234
  --avatar-rust: #A44A3F;
229
235
  --avatar-clay: #B67352;
@@ -271,6 +277,15 @@
271
277
  TYPOGRAPHY — The Hero of the Design
272
278
  ═══════════════════════════════════════════════════════════════ */
273
279
 
280
+ /* DISPLAY H1/H2: PP Editorial New for headline headings.
281
+ Outside @layer so it beats Tailwind v4's font-sans on body.
282
+ Uses direct --font-display variable (single hop) with literal fallback.
283
+ To swap display fonts: change layout.tsx config + update fallback name here. */
284
+ h1, h2 {
285
+ font-family: var(--font-display, "PP Editorial New"), "EB Garamond", Georgia, serif !important;
286
+ font-weight: 400 !important;
287
+ }
288
+
274
289
  @layer base {
275
290
  /* Shared heading styles */
276
291
  h1, h2, h3, h4, h5, h6 {
@@ -279,11 +294,6 @@
279
294
  text-wrap: balance;
280
295
  }
281
296
 
282
- /* SERIF: Only h1 and h2 use Fraunces */
283
- h1, h2 {
284
- font-family: var(--font-serif);
285
- }
286
-
287
297
  /* SANS-SERIF: h3-h6 use Geist/Funnel Sans (default font-sans) */
288
298
  h3, h4, h5, h6 {
289
299
  font-family: var(--font-sans);
@@ -376,9 +386,9 @@
376
386
  ═══════════════════════════════════════════════════════════════ */
377
387
 
378
388
  @layer utilities {
379
- /* Serif headings utility */
389
+ /* Serif headings utility — !important needed to beat body's unlayered font-sans */
380
390
  .font-serif {
381
- font-family: var(--font-serif);
391
+ font-family: var(--font-serif) !important;
382
392
  }
383
393
 
384
394
  /* Bougainvillea text accent */
@@ -463,12 +473,12 @@
463
473
 
464
474
  /* SELECTED — User actively chose this option (OptionCard, template picker) */
465
475
  .state-selected {
466
- @apply border-primary bg-primary/5;
476
+ @apply border-siena-sky bg-siena-sky/5;
467
477
  }
468
478
 
469
479
  /* ACTIVE FILTER — A filter/toggle is currently applied (softer than selected) */
470
480
  .state-active-filter {
471
- @apply border-primary/50 bg-primary/5;
481
+ @apply border-siena-sky/50 bg-siena-sky/5;
472
482
  }
473
483
 
474
484
  /* EXPANDED — Collapsible content is open (NOT an action, just state) */
@@ -973,6 +983,17 @@
973
983
  @apply text-foreground decoration-foreground;
974
984
  }
975
985
 
986
+ /* ── Link utility classes ────────────────────────────────────────────── */
987
+ /* Inline text links (embedded in body text, descriptions, tooltips) */
988
+ .link-inline {
989
+ @apply text-foreground underline underline-offset-4 decoration-muted-foreground/50;
990
+ @apply hover:decoration-foreground transition-colors;
991
+ }
992
+ /* Action links ("Learn more", "View all", "Edit", navigation-style) */
993
+ .link-action {
994
+ @apply text-muted-foreground hover:text-foreground transition-colors;
995
+ }
996
+
976
997
  .prose-siena ul,
977
998
  .prose-siena ol {
978
999
  @apply text-muted-foreground;
@@ -988,6 +1009,48 @@
988
1009
  @apply border-l-2 border-primary pl-3 italic;
989
1010
  @apply text-muted-foreground;
990
1011
  }
1012
+
1013
+ /* ─────────────────────────────────────────────────────────────────
1014
+ PROSE-CHAT — For chat messages (WCAG AA contrast)
1015
+ Full foreground color for maximum readability
1016
+ ───────────────────────────────────────────────────────────────── */
1017
+
1018
+ .prose-chat {
1019
+ @apply text-foreground;
1020
+ }
1021
+
1022
+ .prose-chat p {
1023
+ @apply text-foreground leading-snug;
1024
+ margin-bottom: 0.5em;
1025
+ }
1026
+
1027
+ .prose-chat ul,
1028
+ .prose-chat ol {
1029
+ @apply text-foreground;
1030
+ margin-bottom: 0.5em;
1031
+ padding-left: 1.25em;
1032
+ }
1033
+
1034
+ .prose-chat li {
1035
+ margin-bottom: 0.125em;
1036
+ }
1037
+
1038
+ .prose-chat a {
1039
+ @apply text-foreground underline underline-offset-4 decoration-muted-foreground/50;
1040
+ transition: color 150ms, text-decoration-color 150ms;
1041
+ }
1042
+
1043
+ .prose-chat a:hover {
1044
+ @apply text-foreground decoration-foreground;
1045
+ }
1046
+
1047
+ .prose-chat blockquote {
1048
+ @apply border-l-2 border-primary pl-3 italic text-foreground/80;
1049
+ }
1050
+
1051
+ .prose-chat code {
1052
+ @apply text-foreground bg-muted px-1 py-0.5 rounded text-[0.875em];
1053
+ }
991
1054
  }
992
1055
 
993
1056
  /*
@@ -1042,9 +1105,9 @@
1042
1105
  --siena-bougainvillea-dark: #9B4DAF;
1043
1106
  --siena-bougainvillea-light: #DBA3E8;
1044
1107
 
1045
- --siena-sage: #5D7A5F;
1046
- --siena-sage-dark: #3D5A3F;
1047
- --siena-sage-light: #7A9A7C;
1108
+ --siena-sage: #6B9F6F;
1109
+ --siena-sage-dark: #4E8053;
1110
+ --siena-sage-light: #8BBF8F;
1048
1111
 
1049
1112
  --siena-ochre: #D4A017;
1050
1113
  --siena-ochre-dark: #B8860B;
@@ -1080,7 +1143,7 @@
1080
1143
 
1081
1144
  /* Charts - Mediterranean palette (vibrant on dark) */
1082
1145
  --chart-1: #C77DDB; /* bougainvillea purple */
1083
- --chart-2: #5D7A5F; /* sage (deep foliage green) */
1146
+ --chart-2: #6B9F6F; /* sage (deep foliage green) */
1084
1147
  --chart-3: #6BB0D8; /* tuscan sky blue (was ochre) */
1085
1148
  --chart-4: #D4C5B5; /* tuscan stone (warm beige) */
1086
1149
  --chart-5: #DBA3E8; /* bougainvillea light */
@@ -1105,6 +1168,9 @@
1105
1168
  CHAT TOKENS — Dark Mode
1106
1169
  ───────────────────────────────────────────────────────────── */
1107
1170
 
1171
+ /* CSAT Star Rating - Slightly lighter for dark bg */
1172
+ --csat-star: #F7D35C;
1173
+
1108
1174
  --chat-user-bg: #44403C;
1109
1175
  --chat-user-fg: #FAFAF9;
1110
1176
  --chat-ai-bg: transparent;
@@ -1123,7 +1189,7 @@
1123
1189
  --avatar-amber: #D4A86C;
1124
1190
  --avatar-ochre: #B89B2A;
1125
1191
  --avatar-olive: #7C9A4E;
1126
- --avatar-sage: #6D8B74;
1192
+ --avatar-sage: #7AAF7E;
1127
1193
  --avatar-forest: #4D8A5D;
1128
1194
  --avatar-teal: #4A9898;
1129
1195
  --avatar-sky: #7AAFCC;
@@ -1142,6 +1208,32 @@
1142
1208
  ---break---
1143
1209
  */
1144
1210
 
1211
+ /* ============================================================================
1212
+ REACT-COLORFUL — Color Picker Styles
1213
+ ============================================================================ */
1214
+
1215
+ .react-colorful {
1216
+ width: 200px !important;
1217
+ height: 200px !important;
1218
+ }
1219
+
1220
+ .react-colorful__saturation {
1221
+ border-radius: 8px 8px 0 0;
1222
+ }
1223
+
1224
+ .react-colorful__hue {
1225
+ height: 14px;
1226
+ border-radius: 0 0 8px 8px;
1227
+ }
1228
+
1229
+ .react-colorful__saturation-pointer,
1230
+ .react-colorful__hue-pointer {
1231
+ width: 18px;
1232
+ height: 18px;
1233
+ border: 2px solid white;
1234
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
1235
+ }
1236
+
1145
1237
  @layer base {
1146
1238
  * {
1147
1239
  @apply border-border outline-ring/50;