@aurea-uds/core 0.35.0 → 0.36.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.
- package/dist/aurea.css +197 -34
- package/dist/aurea.js +18 -0
- package/package.json +1 -1
package/dist/aurea.css
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
--brand-yellow:oklch(0.795 0.184 86.047);
|
|
5
5
|
--brand-yellow-foreground:oklch(0.421 0.095 57.708);
|
|
6
6
|
--brand-yellow-text:oklch(0.516 0.105 86.047);
|
|
7
|
+
--brand-yellow-ink:#242424;
|
|
7
8
|
--white:oklch(1 0 0);
|
|
8
9
|
--black:oklch(0 0 0);
|
|
9
10
|
--font-ui:"Atkinson Hyperlegible Next","Segoe UI",sans-serif;
|
|
@@ -20,6 +21,8 @@
|
|
|
20
21
|
--text-3xl:1.875rem;
|
|
21
22
|
--text-4xl:2.25rem;
|
|
22
23
|
--text-5xl:3rem;
|
|
24
|
+
--text-6xl:3.75rem;
|
|
25
|
+
--text-7xl:4.5rem;
|
|
23
26
|
--leading-tight:1.2;
|
|
24
27
|
--leading-normal:1.5;
|
|
25
28
|
--leading-relaxed:1.7;
|
|
@@ -152,7 +155,7 @@
|
|
|
152
155
|
--popover:#292929;
|
|
153
156
|
--popover-foreground:#ffffff;
|
|
154
157
|
--primary:var(--brand-yellow);
|
|
155
|
-
--primary-foreground:var(--brand-yellow-
|
|
158
|
+
--primary-foreground:var(--brand-yellow-ink);
|
|
156
159
|
--link:var(--brand-yellow);
|
|
157
160
|
--link-hover:var(--brand-yellow);
|
|
158
161
|
--secondary:#333333;
|
|
@@ -174,7 +177,7 @@
|
|
|
174
177
|
--sidebar:#292929;
|
|
175
178
|
--sidebar-foreground:#ffffff;
|
|
176
179
|
--sidebar-primary:var(--brand-yellow);
|
|
177
|
-
--sidebar-primary-foreground:var(--brand-yellow-
|
|
180
|
+
--sidebar-primary-foreground:var(--brand-yellow-ink);
|
|
178
181
|
--sidebar-accent:#333333;
|
|
179
182
|
--sidebar-accent-foreground:#ffffff;
|
|
180
183
|
--sidebar-border:#525252;
|
|
@@ -198,7 +201,9 @@
|
|
|
198
201
|
--primary-emphasis:var(--primary);
|
|
199
202
|
--primary-outline:var(--primary);
|
|
200
203
|
--control-selected:var(--primary);
|
|
201
|
-
--control-selected-foreground:var(--
|
|
204
|
+
--control-selected-foreground:var(--brand-yellow-ink);
|
|
205
|
+
--control-selected-dot:oklch(0.985 0 0);
|
|
206
|
+
--primary-mark:var(--brand-yellow-foreground);
|
|
202
207
|
--selection:oklch(0.795 0.184 86.047 / 0.22);
|
|
203
208
|
--success-bg:#052505;
|
|
204
209
|
--warning-bg:#4a1e04;
|
|
@@ -242,9 +247,9 @@
|
|
|
242
247
|
--popover:#ffffff;
|
|
243
248
|
--popover-foreground:#242424;
|
|
244
249
|
--primary:var(--brand-yellow);
|
|
245
|
-
--primary-foreground:var(--brand-yellow-
|
|
246
|
-
--link:
|
|
247
|
-
--link-hover:
|
|
250
|
+
--primary-foreground:var(--brand-yellow-ink);
|
|
251
|
+
--link:var(--brand-yellow);
|
|
252
|
+
--link-hover:var(--brand-yellow);
|
|
248
253
|
--secondary:#ebebeb;
|
|
249
254
|
--secondary-foreground:#242424;
|
|
250
255
|
--muted:var(--secondary);
|
|
@@ -264,7 +269,7 @@
|
|
|
264
269
|
--sidebar:var(--card);
|
|
265
270
|
--sidebar-foreground:#242424;
|
|
266
271
|
--sidebar-primary:var(--primary-emphasis);
|
|
267
|
-
--sidebar-primary-foreground:var(--brand-yellow-
|
|
272
|
+
--sidebar-primary-foreground:var(--brand-yellow-ink);
|
|
268
273
|
--sidebar-accent:var(--secondary);
|
|
269
274
|
--sidebar-accent-foreground:#242424;
|
|
270
275
|
--sidebar-border:#e0e0e0;
|
|
@@ -284,11 +289,13 @@
|
|
|
284
289
|
--secondary-hover:var(--surface-hover);
|
|
285
290
|
--segment:oklch(1 0 0);
|
|
286
291
|
--focus:var(--primary);
|
|
287
|
-
--focus-strong:var(--
|
|
288
|
-
--primary-emphasis:var(--brand-yellow
|
|
289
|
-
--primary-outline:var(--brand-yellow
|
|
290
|
-
--control-selected:var(--brand-yellow
|
|
291
|
-
--control-selected-foreground:
|
|
292
|
+
--focus-strong:var(--foreground);
|
|
293
|
+
--primary-emphasis:var(--brand-yellow);
|
|
294
|
+
--primary-outline:var(--brand-yellow);
|
|
295
|
+
--control-selected:var(--brand-yellow);
|
|
296
|
+
--control-selected-foreground:var(--brand-yellow-ink);
|
|
297
|
+
--control-selected-dot:oklch(0.985 0 0);
|
|
298
|
+
--primary-mark:var(--brand-yellow-foreground);
|
|
292
299
|
--success-400:#0e700e;
|
|
293
300
|
--warning-400:#8a3707;
|
|
294
301
|
--danger-400:#b10e1c;
|
|
@@ -366,6 +373,8 @@
|
|
|
366
373
|
--selection:oklch(0.32 0.08 50);
|
|
367
374
|
--control-selected:oklch(0.72 0.19 48);
|
|
368
375
|
--control-selected-foreground:oklch(0.16 0.02 250);
|
|
376
|
+
--control-selected-dot:oklch(0.16 0.02 250);
|
|
377
|
+
--primary-mark:oklch(0.16 0.02 250);
|
|
369
378
|
--overlay:oklch(0 0 0 / 0.6);
|
|
370
379
|
--chart-1:oklch(0.74 0.18 50);
|
|
371
380
|
--chart-2:oklch(0.84 0.14 88);
|
|
@@ -428,6 +437,8 @@
|
|
|
428
437
|
--selection:oklch(0.96 0.04 60);
|
|
429
438
|
--control-selected:oklch(0.682 0.197 44.5);
|
|
430
439
|
--control-selected-foreground:oklch(1 0 0);
|
|
440
|
+
--control-selected-dot:oklch(1 0 0);
|
|
441
|
+
--primary-mark:oklch(1 0 0);
|
|
431
442
|
--overlay:oklch(0.16 0.018 250 / 0.45);
|
|
432
443
|
--chart-1:oklch(0.682 0.197 44.5);
|
|
433
444
|
--chart-2:oklch(0.82 0.15 88);
|
|
@@ -450,6 +461,8 @@
|
|
|
450
461
|
--warning-bg:oklch(0.95 0.06 80);
|
|
451
462
|
--danger-bg:oklch(0.95 0.05 25);
|
|
452
463
|
--info-bg:oklch(0.95 0.04 235);
|
|
464
|
+
--link:oklch(0.52 0.106 86.047);
|
|
465
|
+
--link-hover:oklch(0.44 0.106 86.047);
|
|
453
466
|
}
|
|
454
467
|
[data-density="compact"]{
|
|
455
468
|
--control-h-xs:1.5rem;
|
|
@@ -618,6 +631,43 @@ img,svg { display:block; }
|
|
|
618
631
|
.section-inset { background:var(--surface-inset); }
|
|
619
632
|
.section-spacing-sm { padding-block:var(--space-8); }
|
|
620
633
|
@media (min-width:768px) { .section { padding-block:var(--space-24); } .section-spacing-sm { padding-block:var(--space-12); } }
|
|
634
|
+
/* GAR-21 e GAR-22 (lote U, 19/10/2026): a `Section` variant="hero" — a abertura de página. Os vãos são os do início da
|
|
635
|
+
referência (medidos em 15/10/2026): a sobrelinha a 8 do título (16 a partir de 1024), o texto colado no título, os
|
|
636
|
+
botões a 16, o que vier depois a 8 (16 a partir de 1024); o texto 16/24, e 18/28 a partir de 768, em 672 de largura (o
|
|
637
|
+
640 da escala mais o --space-8). O título 36, 60 a partir de 768 e 72 a partir de 1024 (os três tamanhos são decisão
|
|
638
|
+
do Victor; as larguras, desta peça). Com imagem e align="start", o texto e a imagem lado a lado a partir de 1024;
|
|
639
|
+
abaixo disso, a imagem desce.
|
|
640
|
+
As larguras são da FAIXA, e não da janela (`@container`, como o `.media-player`): de ponta a ponta, a faixa tem a
|
|
641
|
+
largura da janela e dá o mesmo; numa coluna mais estreita (a prévia do catálogo), o título não passa dela. O 72 entra
|
|
642
|
+
em 1024, e não em 1280: numa janela de 1280 a barra de rolagem deixa a faixa com menos de 1280, e o 72 não apareceria
|
|
643
|
+
na tela larga mais comum. */
|
|
644
|
+
.section-hero { container:aurea-hero / inline-size; }
|
|
645
|
+
.section-hero-content { display:grid; justify-items:start; min-inline-size:0; }
|
|
646
|
+
.section-hero-center .section-hero-content { justify-items:center; text-align:center; }
|
|
647
|
+
.section-hero-text { display:grid; justify-items:inherit; }
|
|
648
|
+
/* A sobrelinha em flex: com um selo ou link dentro de um bloco comum, a linha de texto do bloco somava 2 à altura dele. */
|
|
649
|
+
.section-hero-eyebrow { display:flex; align-items:center; }
|
|
650
|
+
.section-hero-content > * + * { margin-block-start:var(--space-2); }
|
|
651
|
+
.section-hero-content > * + .section-hero-actions { margin-block-start:var(--space-4); }
|
|
652
|
+
.section-hero-title { margin:0; color:var(--foreground); font-family:var(--font-heading); font-size:var(--text-4xl); line-height:var(--text-4xl-leading); font-weight:var(--weight-bold); letter-spacing:var(--tracking-tight); text-wrap:balance; }
|
|
653
|
+
.section-hero-description { max-inline-size:calc(var(--breakpoint-sm) + var(--space-8)); margin:0; color:var(--muted-foreground); font-size:var(--text-base); line-height:var(--leading-normal); text-wrap:pretty; }
|
|
654
|
+
.section-hero-center .section-hero-description { text-wrap:balance; }
|
|
655
|
+
.section-hero-actions { display:flex; flex-wrap:wrap; align-items:center; gap:var(--space-3); }
|
|
656
|
+
.section-hero-center .section-hero-actions { justify-content:center; }
|
|
657
|
+
/* O campo de e-mail no lugar dos botões: o formulário cresce até 480 (o --breakpoint-xs), e não fica do tamanho do texto
|
|
658
|
+
de exemplo. */
|
|
659
|
+
.section-hero-actions > form { flex:1 1 auto; max-inline-size:var(--breakpoint-xs); }
|
|
660
|
+
.section-hero-media { min-inline-size:0; margin-block-start:var(--space-12); }
|
|
661
|
+
@container aurea-hero (min-width:768px) {
|
|
662
|
+
.section-hero-title { font-size:var(--text-6xl); line-height:var(--leading-none); }
|
|
663
|
+
.section-hero-description { font-size:var(--text-lg); line-height:var(--text-lg-leading); }
|
|
664
|
+
}
|
|
665
|
+
@container aurea-hero (min-width:1024px) {
|
|
666
|
+
.section-hero-content > * + :not(.section-hero-actions) { margin-block-start:var(--space-4); }
|
|
667
|
+
.section-hero-split .section-hero-inner { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:center; gap:var(--space-12); }
|
|
668
|
+
.section-hero-split .section-hero-media { margin-block-start:0; }
|
|
669
|
+
.section-hero-title { font-size:var(--text-7xl); }
|
|
670
|
+
}
|
|
621
671
|
/* GAR-06 (07/10/2026): a `Section` variant="footer" — o rodapé de site, uma faixa como as outras
|
|
622
672
|
(fundo, respiro e tema vêm dela). No celular tudo empilha numa coluna; a partir de 768 a marca
|
|
623
673
|
fica à esquerda e as colunas de links se repartem à direita, cada uma com pelo menos 8rem (a
|
|
@@ -982,6 +1032,75 @@ img,svg { display:block; }
|
|
|
982
1032
|
}
|
|
983
1033
|
}
|
|
984
1034
|
|
|
1035
|
+
/* O ARRANJO DE DOCUMENTAÇÃO NO CELULAR E NO TABLET (`AppShell layout="docs"`, lote U, 19/10/2026 — o Victor: "tudo como
|
|
1036
|
+
ela"), medido na página da documentação da referência a 375, 768 e 1100:
|
|
1037
|
+
- a LATERAL é coluna desde 768 (e não desde 1024): de 768 a 1023 ela fica à esquerda do texto, como lá;
|
|
1038
|
+
- abaixo de 768 ela é a gaveta, e abre pela DIREITA, do lado do botão (que o `AppShell` põe no fim da barra);
|
|
1039
|
+
- o índice ("On this page") é coluna só de 1280 para cima. Abaixo, ele é a GAVETA da BARRA DO ÍNDICE: uma barra de 40
|
|
1040
|
+
presa logo abaixo do topo, na coluna do texto, com o nome da seção em vista e a setinha; tocar desce a lista. A
|
|
1041
|
+
referência desenha um círculo de progresso; aqui é o ícone de lista, e nenhuma linha (ADR-0072).
|
|
1042
|
+
Estas regras vêm DEPOIS das da gaveta de sempre e levam a classe do arranjo — com a mesma força, a ordem decide. */
|
|
1043
|
+
.docs-toc-bar { display:none; }
|
|
1044
|
+
@media (min-width:768px) and (max-width:1023px) {
|
|
1045
|
+
.app-shell.app-shell-docs { grid-template-columns:var(--docs-sidebar-width) minmax(0,1fr); }
|
|
1046
|
+
.app-shell-docs .btn.nav-toggle { display:none; }
|
|
1047
|
+
.app-shell-docs > .sidebar[popover]:not(.app-shell-aside):not(:popover-open) { display:flex; }
|
|
1048
|
+
.app-shell-docs > .sidebar:not(.app-shell-aside):not(.sidebar-flush) { --shell-top:calc(var(--docs-top) + var(--space-4)); grid-column:1; grid-row:2 / span 2;
|
|
1049
|
+
position:sticky; inset-block-start:var(--shell-top); align-self:start; block-size:calc(100vh - var(--shell-top) - var(--space-8));
|
|
1050
|
+
max-block-size:none; margin:var(--space-4) 0 0; border-width:0; padding-block:var(--space-2) var(--space-4); padding-inline:var(--space-4); }
|
|
1051
|
+
.app-shell-docs > .sidebar > .sidebar-nav > .sidebar-list > li:first-child > .sidebar-group-label { margin-block-start:0; }
|
|
1052
|
+
.app-shell-docs > .sidebar .sidebar-item { padding-inline:var(--space-2); }
|
|
1053
|
+
.app-shell-docs > .sidebar .sidebar-group-label { margin-inline:var(--space-2); }
|
|
1054
|
+
.app-shell-docs > .docs-toc-bar { grid-column:2; grid-row:2; }
|
|
1055
|
+
.app-shell-docs > .content.content { grid-column:2; grid-row:3; }
|
|
1056
|
+
}
|
|
1057
|
+
@media (min-width:1024px) and (max-width:1279px) {
|
|
1058
|
+
.app-shell-docs > .sidebar:not(.app-shell-aside):not(.sidebar-flush) { grid-row:2 / span 2; }
|
|
1059
|
+
.app-shell-docs > .docs-toc-bar { grid-column:3; grid-row:2; }
|
|
1060
|
+
.app-shell-docs > .content.content { grid-row:3; }
|
|
1061
|
+
}
|
|
1062
|
+
@media (max-width:1279px) {
|
|
1063
|
+
.app-shell-docs > .docs-toc-bar { display:block; position:sticky; inset-block-start:var(--docs-top); z-index:var(--z-sticky); background:var(--background); }
|
|
1064
|
+
.docs-toc-toggle { display:flex; align-items:center; gap:var(--space-2); inline-size:100%; min-block-size:var(--space-10); padding:0 var(--space-6);
|
|
1065
|
+
border:0; background:transparent; color:var(--muted-foreground); font:inherit; font-size:var(--text-sm); text-align:start; cursor:pointer; }
|
|
1066
|
+
.docs-toc-toggle:hover { color:var(--foreground); }
|
|
1067
|
+
.docs-toc-toggle:focus-visible { outline:var(--focus-width) solid var(--focus-strong); outline-offset:calc(-1 * var(--focus-width)); }
|
|
1068
|
+
.docs-toc-current { flex:1; min-inline-size:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
|
|
1069
|
+
.app-shell-docs:has(> .app-shell-aside:popover-open) .docs-toc-toggle > .icon:last-child { rotate:180deg; }
|
|
1070
|
+
}
|
|
1071
|
+
@supports selector(:popover-open) {
|
|
1072
|
+
@media (max-width:1279px) {
|
|
1073
|
+
.app-shell-docs > .sidebar.app-shell-aside[popover]:not(:popover-open) { display:none; }
|
|
1074
|
+
/* Aberto, ele desce da barra: preso logo abaixo dela, na largura da coluna do texto, uma superfície que flutua por cima
|
|
1075
|
+
do texto (o fundo opaco do popover, o canto do cartão). Sem véu: a lista é um atalho, não uma janela. */
|
|
1076
|
+
.app-shell-docs > .sidebar.app-shell-aside[popover]:popover-open { position:fixed; inset-block-start:calc(var(--docs-top) + var(--space-10));
|
|
1077
|
+
inset-block-end:auto; inset-inline:var(--space-4); inline-size:auto; block-size:auto;
|
|
1078
|
+
max-block-size:calc(100dvh - var(--docs-top) - var(--space-10) - var(--space-4)); margin:0; padding:var(--space-2) var(--space-4) var(--space-4);
|
|
1079
|
+
overflow:auto; border-radius:var(--radius-card); background:var(--popover); color:var(--popover-foreground); box-shadow:var(--shadow-lg); }
|
|
1080
|
+
.app-shell-docs > .sidebar.app-shell-aside[popover]::backdrop { background:transparent; }
|
|
1081
|
+
}
|
|
1082
|
+
@media (min-width:768px) and (max-width:1279px) {
|
|
1083
|
+
.app-shell-docs > .sidebar.app-shell-aside[popover]:popover-open { inset-inline-start:calc(var(--docs-sidebar-width) + var(--space-4)); }
|
|
1084
|
+
}
|
|
1085
|
+
@media (max-width:767px) {
|
|
1086
|
+
/* A gaveta ABERTA é uma superfície, mesmo com a lateral sem caixa (`sidebarVariant="plain"`) do desktop: sem o fundo,
|
|
1087
|
+
a lista se misturava ao texto da página por baixo (medido a 375). O fundo e o canto do popover, como o do índice. */
|
|
1088
|
+
.app-shell-docs > .sidebar[popover]:not(.app-shell-aside):popover-open { inset-inline-start:auto; inset-inline-end:var(--space-4);
|
|
1089
|
+
padding:var(--space-2) var(--space-4) var(--space-4); border-radius:var(--radius-card); background:var(--popover); color:var(--popover-foreground); box-shadow:var(--shadow-lg); }
|
|
1090
|
+
.app-shell-docs > .sidebar[popover]:not(.app-shell-aside):popover-open .sidebar-item { padding-inline:var(--space-2); }
|
|
1091
|
+
.app-shell-docs > .sidebar[popover]:not(.app-shell-aside):popover-open .sidebar-group-label { margin-inline:var(--space-2); }
|
|
1092
|
+
}
|
|
1093
|
+
}
|
|
1094
|
+
/* De 1280 para cima o índice é a coluna, e o atributo de gaveta não pode encolhê-lo: a regra da gaveta fechada
|
|
1095
|
+
(`.sidebar[popover]:not(:popover-open)`, `width:auto`) vem antes na folha com a mesma força e o deixava com 200 (medido). */
|
|
1096
|
+
@media (min-width:1280px) {
|
|
1097
|
+
.app-shell-docs > .sidebar.app-shell-aside[popover] { inline-size:var(--docs-toc-width); }
|
|
1098
|
+
}
|
|
1099
|
+
/* No celular o título fica a 32 da barra do índice, como o da referência a 375 (de 768 para cima, 16 nas duas). */
|
|
1100
|
+
@media (max-width:767px) {
|
|
1101
|
+
.app-shell-docs > .content.content { padding-block-start:var(--space-8); }
|
|
1102
|
+
}
|
|
1103
|
+
|
|
985
1104
|
/* ── A LISTA DA LATERAL (PLANO-1.0, item B1) ───────────────────────────────────────
|
|
986
1105
|
Até 06/08/2026 a Sidebar era só a caixa: item, grupo, aninhamento e marca de item atual
|
|
987
1106
|
existiam neste arquivo como `.doc-nav`, que é CHROME do catálogo (achado A6) e nunca foi
|
|
@@ -1279,7 +1398,7 @@ img,svg { display:block; }
|
|
|
1279
1398
|
altura da barra não muda. O mesmo no `navigation.tsx`. */
|
|
1280
1399
|
.bottom-nav.bottom-nav-ind-circle-bold .bottom-nav-item { padding:0; }
|
|
1281
1400
|
.bottom-nav-disc { display:flex; flex-direction:column; align-items:center; justify-content:center; inline-size:var(--bottomnav-bold,3.5rem); max-inline-size:100%; min-height:var(--control-h-lg); padding:var(--space-1); border-radius:var(--radius-full); }
|
|
1282
|
-
.bottom-nav-ind-circle-bold .bottom-nav-item[aria-current] { color:var(--primary-
|
|
1401
|
+
.bottom-nav-ind-circle-bold .bottom-nav-item[aria-current] { color:var(--primary-mark); }
|
|
1283
1402
|
.bottom-nav-ind-circle-bold .bottom-nav-item[aria-current] .bottom-nav-disc { background:var(--primary); }
|
|
1284
1403
|
.bottom-nav-ind-circle-bold .bottom-nav-item[aria-current] .icon { opacity:1; }
|
|
1285
1404
|
/* O contador do `circle-bold` INVERTE, como o do `.btn-primary`, e a volta atrás está medida.
|
|
@@ -1287,8 +1406,8 @@ img,svg { display:block; }
|
|
|
1287
1406
|
do Victor mostram. O gate de contraste reprovou no tema CLARO: sobre o amarelo sólido, nem o
|
|
1288
1407
|
fundo do contador nem o anel branco chegam a 3:1. No escuro passava, e é assim que este defeito
|
|
1289
1408
|
se esconde. Fio fino não substitui contraste quando as duas cores são claras. */
|
|
1290
|
-
.bottom-nav-ind-circle-bold .bottom-nav-item[aria-current] .badge { background:var(--primary-
|
|
1291
|
-
.bottom-nav-ind-circle-bold .bottom-nav-item[aria-current] .bottom-nav-badge { color:var(--primary-
|
|
1409
|
+
.bottom-nav-ind-circle-bold .bottom-nav-item[aria-current] .badge { background:var(--primary-mark); color:var(--primary); border-color:transparent; }
|
|
1410
|
+
.bottom-nav-ind-circle-bold .bottom-nav-item[aria-current] .bottom-nav-badge { color:var(--primary-mark); }
|
|
1292
1411
|
/* ── CÁPSULA (`capsule`) — a "A" da bancada do Victor, 03/10/2026: o modelo de uma das referências ─
|
|
1293
1412
|
A moldura do ícone vira a cápsula de 56 × 32 do indicador ativo dessa referência
|
|
1294
1413
|
(`--bottomnav-bold` × `--bottomnav-ring`), em TODOS os itens; só a do escolhido é pintada, de
|
|
@@ -1299,9 +1418,9 @@ img,svg { display:block; }
|
|
|
1299
1418
|
mesma razão medida do `circle-bold`, logo acima. */
|
|
1300
1419
|
.bottom-nav-ind-capsule .bottom-nav-mark { width:var(--bottomnav-bold,3.5rem); height:var(--bottomnav-ring); border-radius:var(--radius-full); }
|
|
1301
1420
|
.bottom-nav-ind-capsule .bottom-nav-badge { inset-inline-end:calc((var(--bottomnav-bold,3.5rem) - var(--bottomnav-ring)) / 2 - var(--space-05)); }
|
|
1302
|
-
.bottom-nav-ind-capsule .bottom-nav-item[aria-current] .bottom-nav-mark { background:var(--primary); color:var(--primary-
|
|
1421
|
+
.bottom-nav-ind-capsule .bottom-nav-item[aria-current] .bottom-nav-mark { background:var(--primary); color:var(--primary-mark); }
|
|
1303
1422
|
.bottom-nav-ind-capsule .bottom-nav-item[aria-current] .icon { opacity:1; }
|
|
1304
|
-
.bottom-nav-ind-capsule .bottom-nav-item[aria-current] .badge { background:var(--primary-
|
|
1423
|
+
.bottom-nav-ind-capsule .bottom-nav-item[aria-current] .badge { background:var(--primary-mark); color:var(--primary); border-color:transparent; }
|
|
1305
1424
|
/* No `content`, o recheio de sempre (`--space-1`) e não o `--space-3`: com ele cada item teria 80. */
|
|
1306
1425
|
.bottom-nav-content:not(.bottom-nav-edge).bottom-nav-ind-capsule .bottom-nav-item { padding-inline:var(--space-1); }
|
|
1307
1426
|
/* ── EXPANDE (`expand`) — a "C" da bancada do Victor, 03/10/2026 ───────────────────────────────
|
|
@@ -1315,9 +1434,9 @@ img,svg { display:block; }
|
|
|
1315
1434
|
.bottom-nav-ind-expand .bottom-nav-item { flex-direction:row; gap:var(--space-2); min-width:var(--target-min); min-height:var(--target-min); padding:0; }
|
|
1316
1435
|
.bottom-nav-ind-expand .bottom-nav-mark { width:var(--icon-lg); }
|
|
1317
1436
|
.bottom-nav-ind-expand .bottom-nav-label { font-size:var(--text-sm); }
|
|
1318
|
-
.bottom-nav-ind-expand .bottom-nav-item[aria-current] { flex:none; inline-size:calc(var(--icon-lg) + var(--space-2) + var(--space-20) + 2 * var(--space-3)); padding-inline:var(--space-3); background:var(--primary); color:var(--primary-
|
|
1437
|
+
.bottom-nav-ind-expand .bottom-nav-item[aria-current] { flex:none; inline-size:calc(var(--icon-lg) + var(--space-2) + var(--space-20) + 2 * var(--space-3)); padding-inline:var(--space-3); background:var(--primary); color:var(--primary-mark); }
|
|
1319
1438
|
.bottom-nav-ind-expand .bottom-nav-item[aria-current] .icon { opacity:1; }
|
|
1320
|
-
.bottom-nav-ind-expand .bottom-nav-item[aria-current] .badge { background:var(--primary-
|
|
1439
|
+
.bottom-nav-ind-expand .bottom-nav-item[aria-current] .badge { background:var(--primary-mark); color:var(--primary); border-color:transparent; }
|
|
1321
1440
|
.bottom-nav-content:not(.bottom-nav-edge).bottom-nav-ind-expand .bottom-nav-item:not([aria-current]) { flex:none; inline-size:var(--target-min); padding-inline:0; }
|
|
1322
1441
|
|
|
1323
1442
|
/* ── A LINHA DE LISTA TOCÁVEL (§4.3 do CONSUMIDOR-1) ──────────────────────────
|
|
@@ -2054,7 +2173,12 @@ img,svg { display:block; }
|
|
|
2054
2173
|
/* A opção marcada fica CHEIA, com o ponto no meio, como a da referência (o ponto dela tem 8 numa
|
|
2055
2174
|
marca de 16: a metade). Era vazia, com o ponto amarelo. */
|
|
2056
2175
|
.radio input:checked + .control-mark { background:var(--control-selected); border-color:transparent; }
|
|
2057
|
-
|
|
2176
|
+
/* A BOLINHA tem 6 de 14, a da referência (`scale: 0.4286` no CSS publicado dela, 3.2.6), e é ENCOLHIDA POR ESCALA a
|
|
2177
|
+
partir do miolo inteiro, e não desenhada pequena (17/10/2026 — o Victor: "a bolinha do rádio não está centralizada, é
|
|
2178
|
+
torta"). Medido na imagem: a de antes, 7 dentro de 14, ficava meio ponto acima e à esquerda do centro em todo zoom —
|
|
2179
|
+
a folga de 3,5 virava 3 de um lado e 4 do outro. A escala gira em torno do centro exato da caixa. */
|
|
2180
|
+
.radio input:checked + .control-mark:after { content:""; inline-size:100%; block-size:100%; border-radius:50%;
|
|
2181
|
+
background:var(--control-selected-dot); scale:calc(3 / 7); }
|
|
2058
2182
|
.switch { display:inline-flex; align-items:center; gap:var(--space-3); font-size:var(--text-sm); font-weight:var(--weight-medium); cursor:pointer; } .switch input { position:absolute; opacity:0; }
|
|
2059
2183
|
/* O TRILHO DO SWITCH (0.32.0): o da referência, 40 × 20 (sm 32 × 16, lg 48 × 24) — a largura é o
|
|
2060
2184
|
dobro da altura. Era 42 × 24. A altura é a de controle MENOS 16: dá exatamente os três dela
|
|
@@ -2078,7 +2202,7 @@ img,svg { display:block; }
|
|
|
2078
2202
|
mesma distância nos dois sentidos de escrita. */
|
|
2079
2203
|
.switch-track:after { --thumb-h:calc(var(--switch-h) - 2 * var(--space-05)); --thumb-w:calc(var(--thumb-h) * 11 / 8); content:""; position:absolute; inset-inline-start:calc(var(--space-05) - var(--border-width)); top:calc(var(--space-05) - var(--border-width)); block-size:var(--thumb-h); inline-size:var(--thumb-w); border-radius:var(--radius-full); background:var(--muted-foreground); transition:transform var(--duration-base) var(--ease-standard),background var(--duration-base) var(--ease-standard); }
|
|
2080
2204
|
.switch-track { --switch-x:calc(var(--switch-h) * 2 - (var(--switch-h) - 2 * var(--space-05)) * 11 / 8 - 2 * var(--space-05)); }
|
|
2081
|
-
.switch input:checked + .switch-track { background:var(--control-selected); border-color:transparent; } .switch input:checked + .switch-track:after { transform:translateX(var(--switch-x)); background:var(--
|
|
2205
|
+
.switch input:checked + .switch-track { background:var(--control-selected); border-color:transparent; } .switch input:checked + .switch-track:after { transform:translateX(var(--switch-x)); background:var(--primary-mark); }
|
|
2082
2206
|
.range { width:100%; accent-color:var(--primary); }
|
|
2083
2207
|
/* Slider VERTICAL, no `<input type=range>` NATIVO — sem trocar de motor.
|
|
2084
2208
|
|
|
@@ -2118,7 +2242,7 @@ img,svg { display:block; }
|
|
|
2118
2242
|
.slider-track { position:relative; inline-size:100%; block-size:var(--space-5); border-inline:var(--space-3) solid transparent; border-radius:var(--radius-full); background:var(--secondary); }
|
|
2119
2243
|
.slider-fill { box-sizing:content-box; block-size:100%; margin-inline-start:calc(-1 * var(--space-3)); padding-inline-start:var(--space-3); border-radius:var(--radius-full); background:var(--primary); }
|
|
2120
2244
|
.slider-thumb { display:grid; place-items:center; inline-size:calc(var(--space-6) + var(--space-1)); block-size:100%; border-radius:var(--radius-full); background:var(--primary); cursor:grab; }
|
|
2121
|
-
.slider-thumb::after { content:""; inline-size:var(--space-6); block-size:var(--space-4); border-radius:var(--radius-full); background:var(--primary-
|
|
2245
|
+
.slider-thumb::after { content:""; inline-size:var(--space-6); block-size:var(--space-4); border-radius:var(--radius-full); background:var(--primary-mark); box-shadow:var(--shadow-sm); transition:scale var(--duration-fast) var(--ease-standard); }
|
|
2122
2246
|
.slider-thumb[data-dragging] { cursor:grabbing; }
|
|
2123
2247
|
.slider-thumb[data-dragging]::after { scale:.9; }
|
|
2124
2248
|
.slider-thumb:has(input:focus-visible) { outline:var(--focus-width) solid var(--focus-strong); outline-offset:var(--focus-offset); }
|
|
@@ -2258,7 +2382,8 @@ img,svg { display:block; }
|
|
|
2258
2382
|
/* `line-height:1` não é enfeite: sem ele o .badge herdava a entrelinha do pai e a MESMA
|
|
2259
2383
|
classe media 26px dentro do .brand (lh 18px) e 22px dentro de um .btn-nav (lh 12px) — na
|
|
2260
2384
|
mesma barra (achado A2, 26/07/2026). Geometria de componente não se decide pelo contexto.
|
|
2261
|
-
|
|
2385
|
+
A etiqueta de código do SITE (a classe `.chip` do `scripts/build-catalog.mjs`, que não é peça da Aurea) já tinha
|
|
2386
|
+
aprendido isso; o .badge não. Desde 19/10/2026 (GAR-20), o componente `Chip` existe: é outro nome do `Badge`. */
|
|
2262
2387
|
/* 0.32.0: as medidas do Chip da referência (o `Badge` da Aurea é o Chip dela), lidas no CSS publicado:
|
|
2263
2388
|
24 de altura, 10 até o texto (8 da caixa + 2 do rótulo — aqui, com a borda de 1 que é nossa, 9), 4
|
|
2264
2389
|
entre o glifo e o texto (era 6); `sm` 20 com 6 até o texto, `lg` 28 com 14 e letra de 14. A cápsula e a
|
|
@@ -2272,7 +2397,9 @@ img,svg { display:block; }
|
|
|
2272
2397
|
numa fila, `align-self:flex-start` tiraria o selo do meio; o tamanho definido só desliga o
|
|
2273
2398
|
esticar, que é o que a coluna faz com um item sem tamanho. */
|
|
2274
2399
|
.badge-fit { inline-size:fit-content; }
|
|
2275
|
-
|
|
2400
|
+
/* O cheio da marca enche com o acento e escreve com a letra do botão amarelo (`--primary-foreground`): desde a ADR-0073
|
|
2401
|
+
o acento do claro é o próprio amarelo, e a letra de antes (`--background`, clara) media 1,75:1 em cima dele. */
|
|
2402
|
+
.badge-primary { --badge-accent:var(--primary-emphasis); --badge-on:var(--primary-foreground); color:var(--primary-emphasis); border-color:transparent; background:color-mix(in srgb,var(--primary) 10%,transparent); }
|
|
2276
2403
|
/* TAMANHOS. O md é a base (24px), que não muda — é o que as 103 fichas já usam. */
|
|
2277
2404
|
.badge-xs { min-height:var(--space-4); padding:0 var(--space-1); border-width:0; }
|
|
2278
2405
|
.badge-sm { min-height:var(--space-5); padding:0 calc(var(--space-1) + var(--space-05) - var(--border-width)); }
|
|
@@ -2357,8 +2484,8 @@ img,svg { display:block; }
|
|
|
2357
2484
|
`--background` como texto do sólido serve aos DOIS temas porque o acento já vira com o
|
|
2358
2485
|
tema: `--success-400` é verde CLARO no escuro e verde ESCURO no claro. */
|
|
2359
2486
|
/* O selo CHEIO de estado é o botão cheio do mesmo tom (ADR-0061): a mesma cor funda e a mesma letra
|
|
2360
|
-
(`--badge-fill`/`--badge-on`). Quem não declara o par (as categorias,
|
|
2361
|
-
|
|
2487
|
+
(`--badge-fill`/`--badge-on`). Quem não declara o par (as categorias, o neutro) segue enchendo com o
|
|
2488
|
+
acento, como antes; a marca enche com o acento e declara só a letra (ADR-0073). */
|
|
2362
2489
|
.badge-solid { background:var(--badge-fill, var(--badge-accent)); color:var(--badge-on, var(--background)); border-color:transparent; }
|
|
2363
2490
|
.badge-outline { background:transparent; color:var(--badge-accent); border-color:transparent; }
|
|
2364
2491
|
/* flat (15/10/2026): o tom de sempre sem a linha em volta — o selo da referência não tem borda em forma nenhuma. A
|
|
@@ -2478,7 +2605,23 @@ img,svg { display:block; }
|
|
|
2478
2605
|
Só o ícone DIRETO do alerta: um ícone dentro do corpo (num botão, num link) é do corpo. */
|
|
2479
2606
|
.alert>.icon { --step-icon:var(--icon-sm); margin:var(--space-1); color:var(--alert-tone); }
|
|
2480
2607
|
.banner strong { font-size:var(--text-sm); } .banner p { margin:0; color:var(--muted-foreground); font-size:var(--text-sm); }
|
|
2481
|
-
|
|
2608
|
+
/* GAR-19 (lote U, 19/10/2026): o aviso de cookies, Banner variant="consent". Uma coluna: o título (h2), o texto e os
|
|
2609
|
+
três botões de MESMO peso numa linha que quebra — rejeitar tão fácil de ver quanto aceitar (o guia da ANPD) —; depois
|
|
2610
|
+
da escolha, a confirmação no lugar deles. O aviso mora no alto da página e não fica preso: com position:fixed ele
|
|
2611
|
+
cobriria o que recebe o foco (WCAG 2.4.11). A janela de preferências é o Dialog, e as categorias, o Switch. */
|
|
2612
|
+
/* O fundo e a sombra são os do cartão, como os do Alert: no fundo cinza do Banner comum, os botões cinza sumiam (medido na
|
|
2613
|
+
bancada). */
|
|
2614
|
+
.banner-consent { grid-template-columns:minmax(0,1fr); align-items:start; gap:var(--space-3); background:var(--card); box-shadow:var(--shadow-sm); }
|
|
2615
|
+
.banner-consent-title { margin:0; color:var(--foreground); font-size:var(--text-base); font-weight:var(--weight-semibold); line-height:var(--leading-tight); }
|
|
2616
|
+
.banner-consent-text { min-inline-size:0; color:var(--muted-foreground); font-size:var(--text-sm); }
|
|
2617
|
+
.banner-consent-text > * + * { margin-block-start:var(--space-2); }
|
|
2618
|
+
.banner-consent-actions { display:flex; flex-wrap:wrap; gap:var(--space-2); }
|
|
2619
|
+
.banner-consent-message { color:var(--foreground); font-size:var(--text-sm); }
|
|
2620
|
+
.banner-consent-categories { display:grid; gap:var(--space-5); }
|
|
2621
|
+
.banner-consent-required { display:grid; gap:var(--space-1); }
|
|
2622
|
+
.banner-consent-required-head { display:flex; flex-wrap:wrap; align-items:center; gap:var(--space-2); }
|
|
2623
|
+
.banner-consent-required p { margin:0; color:var(--muted-foreground); font-size:var(--text-xs); line-height:var(--space-4); }
|
|
2624
|
+
@media (max-width:640px) { .banner:not(.banner-consent) { grid-template-columns:auto minmax(0,1fr); } .banner:not(.banner-consent)>:last-child { grid-column:2; justify-self:start; } }
|
|
2482
2625
|
.progress { height:8px; overflow:hidden; border-radius:999px; background:var(--surface-3); }
|
|
2483
2626
|
.progress>span { display:block; height:100%; border-radius:inherit; background:var(--primary); }
|
|
2484
2627
|
/* AN-07 (03/10/2026): a caixa de fora, o texto de apoio e o tom. A anatomia é a da barra de progresso da
|
|
@@ -3177,15 +3320,17 @@ button.tag-main { cursor:pointer; }
|
|
|
3177
3320
|
`.image`; aqui fica só o que não varia. O `<iframe>` é absoluto porque a altura é da caixa, não
|
|
3178
3321
|
dele. A fachada é um `<button>` que cobre a caixa inteira: o alvo de clique é o vídeo todo, e o
|
|
3179
3322
|
anel de foco é o `:focus-visible` global da casa. A pastilha de tocar é amarela porque é a ação
|
|
3180
|
-
da tela — o mesmo combinado do `Card variant="brand"`: amarelo só para pedir ação. O
|
|
3181
|
-
`--
|
|
3182
|
-
|
|
3323
|
+
da tela — o mesmo combinado do `Card variant="brand"`: amarelo só para pedir ação. O ícone dela
|
|
3324
|
+
é o marrom da marca (`--primary-mark`), e ela não tem mais o anel escuro em volta: decisão do
|
|
3325
|
+
Victor, 17/10/2026 (*"não quero preto"*). Numa capa amarela, quem a separa é a sombra. A caixa
|
|
3326
|
+
pinta o fundo só por dentro da borda transparente (`background-clip`): sem isso, o fundo escuro
|
|
3327
|
+
aparecia como um aro de 1 em volta da capa. */
|
|
3183
3328
|
.media-embed { display:grid; gap:var(--space-2); min-inline-size:0; }
|
|
3184
|
-
.media-embed-frame { position:relative; overflow:hidden; border:1px solid transparent; border-radius:var(--radius-card); background:var(--media-canvas); }
|
|
3329
|
+
.media-embed-frame { position:relative; overflow:hidden; border:1px solid transparent; border-radius:var(--radius-card); background:var(--media-canvas); background-clip:padding-box; }
|
|
3185
3330
|
.media-embed-frame>iframe { position:absolute; inset:0; inline-size:100%; block-size:100%; border:0; }
|
|
3186
3331
|
.media-embed-facade { position:absolute; inset:0; display:grid; place-items:center; padding:0; border:0; border-radius:inherit; background:var(--media-canvas); color:var(--media-foreground); cursor:pointer; }
|
|
3187
3332
|
.media-embed-facade>img { position:absolute; inset:0; inline-size:100%; block-size:100%; object-fit:cover; }
|
|
3188
|
-
.media-embed-play { position:relative; display:grid; place-items:center; inline-size:var(--control-h-lg); block-size:var(--control-h-lg); border-radius:var(--radius-full); background:var(--primary); color:var(--primary-
|
|
3333
|
+
.media-embed-play { position:relative; display:grid; place-items:center; inline-size:var(--control-h-lg); block-size:var(--control-h-lg); border-radius:var(--radius-full); background:var(--primary); color:var(--primary-mark); box-shadow:var(--shadow-lg); }
|
|
3189
3334
|
.media-embed-facade:hover .media-embed-play { transform:scale(1.06); }
|
|
3190
3335
|
.media-embed-link { display:inline-flex; align-items:center; gap:var(--space-1); justify-self:start; color:var(--muted-foreground); font-size:var(--text-sm); }
|
|
3191
3336
|
.media-embed-link:hover { color:var(--foreground); }
|
|
@@ -3302,7 +3447,10 @@ button.tag-main { cursor:pointer; }
|
|
|
3302
3447
|
/* `0.9em` e não um token: código dentro do texto se mede em relação à LINHA em que está, e um
|
|
3303
3448
|
valor absoluto o deixaria maior que o parágrafo dentro de um h2. É o mesmo motivo pelo qual o
|
|
3304
3449
|
`.badge` tem `line-height:1` — geometria que depende do contexto se escreve relativa. */
|
|
3305
|
-
|
|
3450
|
+
/* `overflow-wrap:anywhere` (18/10/2026, lote U): código no meio do texto é uma palavra só — `window.Aurea.setDensity("compact")`
|
|
3451
|
+
—, e sem a quebra ele empurrava a página para o lado a 320 (medido na página Density do site; a WCAG 1.4.10 pede que
|
|
3452
|
+
nada role para o lado). Dentro do `pre` ela não age: lá o `white-space` não quebra, e a caixa rola. */
|
|
3453
|
+
.prose code { padding:var(--space-05) var(--space-1); border-radius:var(--radius-xs); background:var(--surface-2); font-family:var(--font-code); font-size:0.9em; overflow-wrap:anywhere; }
|
|
3306
3454
|
.prose pre { overflow-x:auto; padding:var(--space-4); border:1px solid transparent; border-radius:var(--radius-card); background:var(--surface-2); }
|
|
3307
3455
|
.prose pre code { padding:0; border-radius:0; background:transparent; font-size:var(--text-sm); }
|
|
3308
3456
|
.prose img { max-width:100%; height:auto; border-radius:var(--radius-lg); }
|
|
@@ -3616,7 +3764,8 @@ button.tag-main { cursor:pointer; }
|
|
|
3616
3764
|
/* A largura é a do GLIFO que mora dentro (`--icon-sm`, o mesmo do `<Icon size="sm">`), e não um
|
|
3617
3765
|
px cru: assim o slot acompanha a escala de glifo do sistema em vez de fixar um número. */
|
|
3618
3766
|
.menu-mark { flex:none; display:inline-flex; align-items:center; justify-content:center; inline-size:var(--icon-sm); block-size:var(--icon-sm); color:var(--primary); }
|
|
3619
|
-
/* METADE do slot,
|
|
3767
|
+
/* METADE do slot: a marca é proporcional, e PAR (8 em 16), então fica no centro em qualquer zoom — o ponto do `Radio`
|
|
3768
|
+
precisou de escala porque o dele era ímpar (17/10/2026). */
|
|
3620
3769
|
.menu-ponto { inline-size:calc(var(--icon-sm) / 2); block-size:calc(var(--icon-sm) / 2); border-radius:50%; background:currentColor; }
|
|
3621
3770
|
/* O rótulo de grupo NÃO é item: não é focável, não é clicável, e a pele não pode sugerir que é. */
|
|
3622
3771
|
.menu-label { padding:var(--space-2) var(--menu-px) var(--space-1); color:var(--muted-foreground); font-size:var(--text-xs); font-weight:var(--weight-semibold); }
|
|
@@ -4150,6 +4299,15 @@ th[aria-sort] .datagrid-sort-icon { color:var(--primary); }
|
|
|
4150
4299
|
.graph-node { position:relative; inline-size:var(--graph-node-w,180px); }
|
|
4151
4300
|
.graph-node-body { display:grid; gap:var(--space-05); inline-size:100%; padding:var(--space-2) var(--space-3); border:1px solid transparent; border-radius:var(--radius-card); background:var(--card); color:var(--foreground); font-family:inherit; font-size:var(--text-sm); text-align:start; }
|
|
4152
4301
|
button.graph-node-body { cursor:pointer; }
|
|
4302
|
+
/* O PONTEIRO NOS BOTÕES DO NÓ (lote U, 19/10/2026 — o pedido 16 do app de topologia). Fora do modo de arrumar, o nó vai ao
|
|
4303
|
+
motor como não escolhível (`selectable:false`, pela trava `alvo-clicavel`), e o motor tira o ponteiro do invólucro
|
|
4304
|
+
(`.react-flow__node`) quando o nó não é escolhível nem arrastável e o app não passa `onNodeClick`/`onNodeMouse*` — os
|
|
4305
|
+
botões de dentro herdavam o `none`, e o clique de mouse no corpo não chegava ao `onSelect` (pelo teclado chegava). Os
|
|
4306
|
+
botões pegam o ponteiro de volta: o corpo só é botão quando há `onSelect` (sem ele, segue sem ponteiro, como a trava
|
|
4307
|
+
pede); o de recolher e o de fechar o contêiner são sempre botões. A regra sai presa ao `.dependency-graph`, e não à
|
|
4308
|
+
classe do motor (o check 15 barra classe de terceiro no core): o `pointer-events` herda, e o `auto` no botão vale
|
|
4309
|
+
embaixo de qualquer invólucro. */
|
|
4310
|
+
.dependency-graph :is(button.graph-node-body,.graph-node-toggle,.graph-group-toggle) { pointer-events:auto; }
|
|
4153
4311
|
.graph-node[data-selected] .graph-node-body { border-color:transparent; background:color-mix(in oklab,var(--primary) 14%,var(--card)); }
|
|
4154
4312
|
.graph-node-label { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-weight:var(--weight-medium); }
|
|
4155
4313
|
/* `kind` é TEXTO, e não cor: a referência pinta dez tipos de nó em dez cores, e é a quarta vez
|
|
@@ -4495,6 +4653,11 @@ button.graph-node-body { cursor:pointer; }
|
|
|
4495
4653
|
da "C" dos botões): com a letra de sempre, o verde caía a 3,79:1 no claro e o `success` a 4,15:1 no escuro, dentro do
|
|
4496
4654
|
cartão. Medido em 16/10/2026: o pior caso passa a 4,79:1. Os outros selos (suave, plano) têm fundo próprio e não mudam. */
|
|
4497
4655
|
.badge-outline { background-color:color-mix(in oklab,var(--badge-accent) 16%,transparent); color:color-mix(in oklab,var(--badge-accent) 80%,var(--foreground)); }
|
|
4656
|
+
/* Menos o primário da Aurea (ADR-0073, decisão do Victor de 18/10/2026, "A"): a letra é o próprio amarelo, a mesma
|
|
4657
|
+
do selo suave e do botão de contorno da marca — misturado ao texto, ele virava mostarda (2,36:1) só nesta peça. A
|
|
4658
|
+
referência principal usa a mesma letra no suave e no contorno. Só sem `data-brand`: na `lory` do claro, sem a
|
|
4659
|
+
mistura, a letra cairia de 5,56 para 4,42:1. */
|
|
4660
|
+
.badge-primary.badge-outline:not(:where([data-brand],[data-brand] *)) { color:var(--badge-accent); }
|
|
4498
4661
|
/* O registro ganhou o fundo dos campos; o nível `info` (o azul) caía a 4,08:1 sobre ele no claro. A mesma letra 20% para o texto. */
|
|
4499
4662
|
.log-stream .log-level.info { color:color-mix(in oklab,var(--info-400) 80%,var(--foreground)); }
|
|
4500
4663
|
.step:not(.step-done,.step-active,.step-error,.done,.active) .step-dot { background-color:var(--fill-3-solid); }
|
package/dist/aurea.js
CHANGED
|
@@ -240,6 +240,10 @@
|
|
|
240
240
|
}
|
|
241
241
|
if (!targets.length) return;
|
|
242
242
|
var seen = {};
|
|
243
|
+
// A BARRA DO ÍNDICE do `AppShell layout="docs"` (lote U, 19/10/2026): abaixo de 1280 o índice é a gaveta dela, e ela
|
|
244
|
+
// mostra o nome da seção em vista, como a da referência. É o mesmo cálculo; aqui só se escreve o nome lá.
|
|
245
|
+
var shell = toc.closest ? toc.closest(".app-shell") : null;
|
|
246
|
+
var nomeNaBarra = shell ? shell.querySelector("[data-toc-current]") : null;
|
|
243
247
|
var observer = new IntersectionObserver(function (entries) {
|
|
244
248
|
// Se o React assumiu este índice depois de nós, saímos. A ordem importa e não é
|
|
245
249
|
// controlável: `initTocs` roda no DOMContentLoaded, e a hidratação pode vir depois. Sem
|
|
@@ -255,6 +259,7 @@
|
|
|
255
259
|
if (id === current) links[id].setAttribute("aria-current", "true");
|
|
256
260
|
else links[id].removeAttribute("aria-current");
|
|
257
261
|
}
|
|
262
|
+
if (nomeNaBarra && links[current]) nomeNaBarra.textContent = links[current].textContent;
|
|
258
263
|
}, {rootMargin: "0px 0px -75% 0px"});
|
|
259
264
|
for (var k = 0; k < targets.length; k++) observer.observe(targets[k]);
|
|
260
265
|
}
|
|
@@ -350,6 +355,19 @@
|
|
|
350
355
|
for (var g = 0; g < abertas.length; g++) if (estaAberta(abertas[g])) abertas[g].hidePopover();
|
|
351
356
|
};
|
|
352
357
|
if (desktop.addEventListener) desktop.addEventListener("change", aoSubir);
|
|
358
|
+
// No `layout="docs"` (lote U) a lateral é coluna desde 768 e o índice desde 1280: cada gaveta fecha no corte DELA.
|
|
359
|
+
// 768 e 1280 são o `--breakpoint-md` e o `--breakpoint-xl`, os cortes do arranjo na folha.
|
|
360
|
+
var cortes = [["(min-width: 768px)", ".app-shell-docs > .sidebar[popover]:not(.app-shell-aside)"],
|
|
361
|
+
["(min-width: 1280px)", ".app-shell-docs > .sidebar.app-shell-aside[popover]"]];
|
|
362
|
+
cortes.forEach(function (par) {
|
|
363
|
+
var mq = window.matchMedia(par[0]);
|
|
364
|
+
if (!mq.addEventListener) return;
|
|
365
|
+
mq.addEventListener("change", function (e) {
|
|
366
|
+
if (!e.matches) return;
|
|
367
|
+
var gavetas = document.querySelectorAll(par[1]);
|
|
368
|
+
for (var g = 0; g < gavetas.length; g++) if (estaAberta(gavetas[g])) gavetas[g].hidePopover();
|
|
369
|
+
});
|
|
370
|
+
});
|
|
353
371
|
}
|
|
354
372
|
|
|
355
373
|
function toastStack() {
|