@aurea-uds/core 0.4.0 → 0.5.0

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.
Files changed (2) hide show
  1. package/dist/aurea.css +171 -9
  2. package/package.json +1 -1
package/dist/aurea.css CHANGED
@@ -206,7 +206,7 @@
206
206
  --chart-5:oklch(0.424 0.199 265.638);
207
207
  --sidebar:var(--card);
208
208
  --sidebar-foreground:oklch(0.145 0 0);
209
- --sidebar-primary:var(--brand-yellow);
209
+ --sidebar-primary:var(--primary-emphasis);
210
210
  --sidebar-primary-foreground:var(--brand-yellow-foreground);
211
211
  --sidebar-accent:var(--secondary);
212
212
  --sidebar-accent-foreground:oklch(0.205 0 0);
@@ -243,6 +243,130 @@
243
243
  --danger-bg:oklch(0.95 0.05 22);
244
244
  --info-bg:oklch(0.95 0.045 260);
245
245
  }
246
+ [data-brand="lory"][data-theme="dark"]{
247
+ --background:oklch(0.16 0.018 250);
248
+ --foreground:oklch(0.96 0.006 250);
249
+ --foreground-strong:oklch(1 0 0);
250
+ --card:oklch(0.21 0.02 250);
251
+ --card-foreground:oklch(0.96 0.006 250);
252
+ --popover:oklch(0.21 0.02 250);
253
+ --popover-foreground:oklch(0.96 0.006 250);
254
+ --surface-1:oklch(0.21 0.02 250);
255
+ --surface-2:oklch(0.245 0.02 250);
256
+ --surface-3:oklch(0.19 0.02 250);
257
+ --surface-inset:oklch(0.19 0.02 250);
258
+ --surface-hover:oklch(0.245 0.02 250);
259
+ --primary:oklch(0.72 0.19 48);
260
+ --primary-foreground:oklch(0.16 0.02 250);
261
+ --primary-hover:oklch(0.78 0.17 50);
262
+ --primary-active:oklch(0.66 0.19 46);
263
+ --primary-emphasis:oklch(0.85 0.14 60);
264
+ --primary-outline:oklch(0.72 0.19 48 / 0.4);
265
+ --secondary:oklch(0.245 0.02 250);
266
+ --secondary-foreground:oklch(0.96 0.006 250);
267
+ --secondary-hover:oklch(0.28 0.02 250);
268
+ --muted:oklch(0.19 0.02 250);
269
+ --muted-foreground:oklch(0.72 0.015 250);
270
+ --subtle-foreground:oklch(0.58 0.016 250);
271
+ --accent:oklch(0.32 0.08 50);
272
+ --accent-foreground:oklch(0.85 0.14 60);
273
+ --destructive:oklch(0.7 0.19 25);
274
+ --destructive-foreground:oklch(0.16 0.02 250);
275
+ --border:oklch(1 0 0 / 0.1);
276
+ --border-strong:oklch(1 0 0 / 0.18);
277
+ --input:oklch(1 0 0 / 0.1);
278
+ --field-bg:oklch(0.19 0.02 250);
279
+ --ring:oklch(0.72 0.19 48);
280
+ --focus:oklch(0.72 0.19 48);
281
+ --focus-strong:oklch(0.85 0.14 60);
282
+ --selection:oklch(0.32 0.08 50);
283
+ --control-selected:oklch(0.72 0.19 48);
284
+ --control-selected-foreground:oklch(0.16 0.02 250);
285
+ --overlay:oklch(0 0 0 / 0.6);
286
+ --chart-1:oklch(0.74 0.18 50);
287
+ --chart-2:oklch(0.84 0.14 88);
288
+ --chart-3:oklch(0.72 0.15 158);
289
+ --chart-4:oklch(0.7 0.13 235);
290
+ --chart-5:oklch(0.68 0.16 320);
291
+ --sidebar:oklch(0.21 0.02 250);
292
+ --sidebar-foreground:oklch(0.96 0.006 250);
293
+ --sidebar-primary:oklch(0.72 0.19 48);
294
+ --sidebar-primary-foreground:oklch(0.16 0.02 250);
295
+ --sidebar-accent:oklch(0.245 0.02 250);
296
+ --sidebar-accent-foreground:oklch(0.96 0.006 250);
297
+ --sidebar-border:oklch(1 0 0 / 0.1);
298
+ --sidebar-ring:oklch(0.72 0.19 48);
299
+ --success-400:oklch(0.72 0.15 158);
300
+ --warning-400:oklch(0.78 0.14 78);
301
+ --danger-400:oklch(0.7 0.19 25);
302
+ --info-400:oklch(0.7 0.13 235);
303
+ --success-bg:oklch(0.32 0.07 158);
304
+ --warning-bg:oklch(0.34 0.07 80);
305
+ --danger-bg:oklch(0.34 0.09 25);
306
+ --info-bg:oklch(0.32 0.06 235);
307
+ }
308
+ [data-brand="lory"][data-theme="light"]{
309
+ --background:oklch(0.984 0.004 70);
310
+ --foreground:oklch(0.24 0.022 250);
311
+ --foreground-strong:oklch(0.16 0.02 250);
312
+ --card:oklch(1 0 0);
313
+ --card-foreground:oklch(0.24 0.022 250);
314
+ --popover:oklch(1 0 0);
315
+ --popover-foreground:oklch(0.24 0.022 250);
316
+ --surface-1:oklch(1 0 0);
317
+ --surface-2:oklch(0.975 0.004 70);
318
+ --surface-3:oklch(0.965 0.006 70);
319
+ --surface-inset:oklch(0.965 0.006 70);
320
+ --surface-hover:oklch(0.965 0.006 70);
321
+ --primary:oklch(0.682 0.197 44.5);
322
+ --primary-foreground:oklch(1 0 0);
323
+ --primary-hover:oklch(0.63 0.197 44.5);
324
+ --primary-active:oklch(0.58 0.19 44.5);
325
+ --primary-emphasis:oklch(0.52 0.17 45);
326
+ --primary-outline:oklch(0.682 0.197 44.5 / 0.35);
327
+ --secondary:oklch(0.965 0.006 70);
328
+ --secondary-foreground:oklch(0.24 0.022 250);
329
+ --secondary-hover:oklch(0.94 0.006 70);
330
+ --muted:oklch(0.965 0.006 70);
331
+ --muted-foreground:oklch(0.52 0.018 255);
332
+ --subtle-foreground:oklch(0.65 0.014 255);
333
+ --accent:oklch(0.96 0.04 60);
334
+ --accent-foreground:oklch(0.52 0.17 45);
335
+ --destructive:oklch(0.62 0.21 26);
336
+ --destructive-foreground:oklch(1 0 0);
337
+ --border:oklch(0.915 0.006 255);
338
+ --border-strong:oklch(0.86 0.008 255);
339
+ --input:oklch(0.915 0.006 255);
340
+ --field-bg:oklch(1 0 0);
341
+ --ring:oklch(0.682 0.197 44.5);
342
+ --focus:oklch(0.682 0.197 44.5);
343
+ --focus-strong:oklch(0.52 0.17 45);
344
+ --selection:oklch(0.96 0.04 60);
345
+ --control-selected:oklch(0.682 0.197 44.5);
346
+ --control-selected-foreground:oklch(1 0 0);
347
+ --overlay:oklch(0.16 0.018 250 / 0.45);
348
+ --chart-1:oklch(0.682 0.197 44.5);
349
+ --chart-2:oklch(0.82 0.15 88);
350
+ --chart-3:oklch(0.66 0.15 155);
351
+ --chart-4:oklch(0.62 0.13 235);
352
+ --chart-5:oklch(0.6 0.16 320);
353
+ --sidebar:oklch(1 0 0);
354
+ --sidebar-foreground:oklch(0.24 0.022 250);
355
+ --sidebar-primary:oklch(0.52 0.17 45);
356
+ --sidebar-primary-foreground:oklch(1 0 0);
357
+ --sidebar-accent:oklch(0.975 0.004 70);
358
+ --sidebar-accent-foreground:oklch(0.24 0.022 250);
359
+ --sidebar-border:oklch(0.915 0.006 255);
360
+ --sidebar-ring:oklch(0.682 0.197 44.5);
361
+ --success-400:oklch(0.66 0.15 155);
362
+ --warning-400:oklch(0.78 0.15 75);
363
+ --danger-400:oklch(0.62 0.21 26);
364
+ --info-400:oklch(0.62 0.13 235);
365
+ --success-bg:oklch(0.95 0.05 155);
366
+ --warning-bg:oklch(0.95 0.06 80);
367
+ --danger-bg:oklch(0.95 0.05 25);
368
+ --info-bg:oklch(0.95 0.04 235);
369
+ }
246
370
  [data-density="compact"]{
247
371
  --control-h-xs:1.5rem;
248
372
  --control-h-sm:1.75rem;
@@ -489,12 +613,24 @@ img,svg { display:block; }
489
613
  /* min-width:0 é o que deixa o ellipsis funcionar dentro do flex; sem ele o nome longo empurra
490
614
  o acessório para fora da caixa em vez de cortar. */
491
615
  .sidebar-label { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
492
- @media (hover:hover) and (pointer:fine) { .sidebar-item:hover { background:var(--secondary); } }
493
- .sidebar-item[aria-current] { background:var(--secondary); color:var(--foreground); font-weight:var(--weight-medium); }
616
+ /* A LATERAL SE PINTA COM OS TOKENS DELA, e isto é conserto de 20/08/2026 — o Victor viu.
617
+ Estas duas regras usavam `--secondary` e `--foreground`, que são tokens da PÁGINA. Na Aurea
618
+ isso nunca apareceu porque o painel e a página têm a mesma claridade nos dois temas; sob a
619
+ marca `lory`, onde a lateral é escura mesmo no tema claro (decisão de produto da Mallory), o
620
+ item atual virava uma pílula QUASE BRANCA com texto escuro em cima de um painel escuro. Ele
621
+ chamou de "cores invertidas", e é exatamente o que era.
622
+ `--sidebar-accent` e `--sidebar-accent-foreground` já eram PUBLICADOS e não tinham um único
623
+ uso no core — token publicado que ninguém usa é promessa sem entrega, e era o par certo o
624
+ tempo todo. O defeito não é da marca: a marca só o tornou visível. */
625
+ @media (hover:hover) and (pointer:fine) { .sidebar-item:hover { background:var(--sidebar-accent); } }
626
+ .sidebar-item[aria-current] { background:var(--sidebar-accent); color:var(--sidebar-accent-foreground); font-weight:var(--weight-medium); }
494
627
  .sidebar-item[aria-current] .icon { opacity:1; }
495
628
  /* Alinha com o TEXTO do item: padding do painel (4) + padding do item (12) = 16px. Com o
496
629
  painel apertado, os 8px de antes deixavam a rubrica fora do prumo da lista. */
497
- .sidebar-group-label { margin:var(--space-3) var(--space-3) var(--space-1); color:var(--subtle-foreground); font-size:var(--text-xs); font-weight:var(--weight-medium); letter-spacing:var(--tracking-widest); text-transform:uppercase; }
630
+ /* O rótulo de grupo também sai da escala da LATERAL, pelo mesmo motivo: `--subtle-foreground` é
631
+ apagado contra a página, e contra um painel escuro num tema claro ele some. Derivado do próprio
632
+ `--sidebar-foreground` em vez de token novo — a lateral não publica um "muted" dela. */
633
+ .sidebar-group-label { margin:var(--space-3) var(--space-3) var(--space-1); color:color-mix(in oklab, var(--sidebar-foreground) 62%, transparent); font-size:var(--text-xs); font-weight:var(--weight-medium); letter-spacing:var(--tracking-widest); text-transform:uppercase; }
498
634
  .sidebar-sub { padding-inline-start:var(--space-5); }
499
635
  /* RECOLHIDA — a lateral vira trilho de ícones. O rótulo NÃO some do DOM: o React troca a
500
636
  classe dele por `.sr-only`, então quem usa leitor de tela continua ouvindo o nome. Ícone
@@ -717,9 +853,9 @@ img,svg { display:block; }
717
853
  /* .nav-group-label é o rótulo de categoria SEM ser título de documento: mesma aparência do
718
854
  h4 histórico, mas o grupo se nomeia por aria-labelledby e não entra na lista de títulos
719
855
  do leitor de tela (senão a lateral vem antes do h1 da página). É o jeito preferido. */
720
- .doc-nav h4,.doc-nav .nav-group-label { margin:16px 8px 8px; color:var(--subtle-foreground); font-size:11px; letter-spacing:var(--tracking-widest); text-transform:uppercase; }
856
+ .doc-nav h4,.doc-nav .nav-group-label { margin:16px 8px 8px; color:color-mix(in oklab, var(--sidebar-foreground) 70%, transparent); font-size:11px; letter-spacing:var(--tracking-widest); text-transform:uppercase; }
721
857
  .doc-nav .nav-group { display:grid; gap:var(--space-1); }
722
- .doc-nav a { display:flex; align-items:center; gap:10px; min-height:40px; margin:0; padding:9px 12px; border:1px solid transparent; border-radius:var(--radius-lg); background:transparent; color:var(--muted-foreground); text-decoration:none; box-shadow:none; }
858
+ .doc-nav a { display:flex; align-items:center; gap:10px; min-height:40px; margin:0; padding:9px 12px; border:1px solid transparent; border-radius:var(--radius-lg); background:transparent; color:color-mix(in oklab, var(--sidebar-foreground) 72%, transparent); text-decoration:none; box-shadow:none; }
723
859
  .doc-nav a:hover { color:var(--sidebar-accent-foreground); background:var(--sidebar-accent); border-color:var(--sidebar-border); }
724
860
  .doc-nav a.active { border-color:var(--sidebar-border); }
725
861
  /* o glifo da família fica na frente do rótulo e nunca encolhe o texto */
@@ -895,13 +1031,39 @@ img,svg { display:block; }
895
1031
  grita mais que o próprio rótulo. No tema CLARO o amarelo puro como texto dá 1.6:1, longe
896
1032
  dos 4.5:1 do AA, então o rótulo aprofunda com --foreground e segue âmbar. */
897
1033
  .is-selected,.btn-nav[aria-current]:not([aria-current="false"]),.btn[aria-pressed="true"],
898
- .segmented button.active,.doc-nav a.active { --btn-bg:var(--secondary); --btn-fg:var(--primary); position:relative; background:var(--secondary); color:var(--primary); }
1034
+ .segmented button.active { --btn-bg:var(--secondary); --btn-fg:var(--primary); position:relative; background:var(--secondary); color:var(--primary); }
1035
+ /* O ATIVO DA NAV DA LATERAL sai da escala DELA, e não da página (20/08/2026, o Victor viu sob a
1036
+ marca `lory`). Ele dividia esta regra com o `.segmented`, que vive no conteúdo — e `--secondary`
1037
+ é quase branco no tema claro. Numa lateral escura isso desenhava uma pílula branca com texto
1038
+ escuro: as cores invertidas que ele apontou.
1039
+ `--sidebar-accent` e `--sidebar-primary` já eram publicados e não tinham uso no core. O segundo
1040
+ é o que mantém a MARCA no item atual: fundo da lateral, texto da marca. */
1041
+ .doc-nav a.active { position:relative; background:var(--sidebar-accent); color:var(--sidebar-primary); }
1042
+ /* E O ITEM EM REPOUSO PRECISA DA MESMA PROTEÇÃO, por um motivo de ESPECIFICIDADE que só apareceu
1043
+ medindo a tela do Victor em 20/08/2026 — eu tinha medido o ATIVO e dado o conserto por pronto.
1044
+ Os links da lateral do catálogo não têm atributo `class`, então `[data-theme="light"]
1045
+ a:not([class])` — a regra que existe para LINK DE PROSA — casa com eles. Ela pesa (0,2,1) e a
1046
+ `.doc-nav a` pesa (0,1,1): a regra de prosa ganhava e pintava o item com
1047
+ `color-mix(--primary, --foreground)`. Sob a marca `lory` isso deu MARROM ESCURO
1048
+ (`oklab(0.44 0.059 0.051)`) sobre um painel escuro — ilegível, e foi o que ele viu.
1049
+ Mesmo peso, e depois na folha: quem manda no que está DENTRO da lateral é a lateral.
1050
+ `:not(.active)` NÃO é enfeite — a primeira versão desta linha não tinha, pesava igual à regra do
1051
+ item atual e, vindo depois, APAGAVA o laranja dele. Medido no mesmo minuto: ativo e inativo
1052
+ saíram com a mesma cor. Com o `:not` ela pesa (0,3,1) e só alcança quem está em repouso. */
1053
+ [data-theme="light"] .doc-nav a:not(.active) { color:color-mix(in oklab, var(--sidebar-foreground) 72%, transparent); }
899
1054
  .is-selected::after,.btn-nav[aria-current]:not([aria-current="false"])::after,
900
1055
  .btn[aria-pressed="true"]:not(.btn-icon)::after,.segmented button.active::after,
901
1056
  .doc-nav a.active::after { content:""; position:absolute; inset-inline:15px; bottom:0; height:2px; border-radius:var(--radius-full); background:color-mix(in oklab, var(--primary) 75%, transparent); }
1057
+ /* e o fio do ativo da lateral segue a marca DELA, pelo mesmo motivo da regra de cor acima. */
1058
+ .doc-nav a.active::after { background:color-mix(in oklab, var(--sidebar-primary) 75%, transparent); }
902
1059
  [data-theme="light"] .is-selected,[data-theme="light"] .btn-nav[aria-current]:not([aria-current="false"]),
903
- [data-theme="light"] .btn[aria-pressed="true"],[data-theme="light"] .segmented button.active,
904
- [data-theme="light"] .doc-nav a.active { --btn-fg:color-mix(in oklab, var(--primary) 45%, var(--foreground)); color:color-mix(in oklab, var(--primary) 45%, var(--foreground)); }
1060
+ [data-theme="light"] .btn[aria-pressed="true"],[data-theme="light"] .segmented button.active
1061
+ { --btn-fg:color-mix(in oklab, var(--primary) 45%, var(--foreground)); color:color-mix(in oklab, var(--primary) 45%, var(--foreground)); }
1062
+ /* A NAV DA LATERAL SAIU DESTA LISTA em 20/08/2026. O ajuste existe porque o amarelo puro não se lê
1063
+ sobre o claro — mas ele mistura o `--foreground` da PÁGINA, e o item da lateral não está sobre a
1064
+ página: está sobre `--sidebar-accent`. Sob a marca `lory`, onde esse fundo é escuro no tema
1065
+ claro, a mistura escurecia o texto contra um fundo escuro. Quem manda ali é `--sidebar-primary`,
1066
+ que cada marca já publica com a claridade certa para o painel dela. */
905
1067
 
906
1068
  /* `line-height:1` não é enfeite: sem ele o .badge herdava a entrelinha do pai e a MESMA
907
1069
  classe media 26px dentro do .brand (lh 18px) e 22px dentro de um .btn-nav (lh 12px) — na
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aurea-uds/core",
3
- "version": "0.4.0",
3
+ "version": "0.5.0",
4
4
  "description": "The Aurea UDS stylesheet and its vanilla behaviour. Import @aurea-uds/fonts/css before this.",
5
5
  "keywords": ["aurea", "design-system", "css", "design-tokens"],
6
6
  "license": "Apache-2.0",