@aurea-uds/core 0.16.0 → 0.17.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 +67 -3
  2. package/package.json +1 -1
package/dist/aurea.css CHANGED
@@ -782,7 +782,7 @@ img,svg { display:block; }
782
782
  nativo (`navigation.tsx`). ~~A folga de 4dp do M3 entre o indicador e o rótulo~~ vale só para
783
783
  os redondos agora. */
784
784
  .bottom-nav-mark { height:var(--icon-lg); }
785
- .bottom-nav-ind-circle .bottom-nav-mark, .bottom-nav-ind-circle-raised .bottom-nav-mark, .bottom-nav-ind-circle-outline .bottom-nav-mark, .bottom-nav-ind-circle-bold .bottom-nav-mark { height:var(--bottomnav-ring); }
785
+ .bottom-nav-ind-circle .bottom-nav-mark, .bottom-nav-ind-circle-raised .bottom-nav-mark, .bottom-nav-ind-circle-outline .bottom-nav-mark { height:var(--bottomnav-ring); }
786
786
  /* `inline-flex` no envoltório: como `<span>` solto ele é caixa de LINHA, e mede a entrelinha do
787
787
  item (18px) em vez do contador que carrega (16px). A diferença não aparece na tela — aparece
788
788
  na medição, e medição errada é o que faz a razão parecer 0,75 quando é 0,67. */
@@ -807,7 +807,30 @@ img,svg { display:block; }
807
807
  O FOCO CONTINUA, e a diferença não é de gosto: `:focus-visible` é o que o teclado enxerga, vem
808
808
  do contrato de foco global e o `geometry.spec` cobra. Tirar hover é tirar enfeite; tirar foco
809
809
  seria tirar acesso. */
810
- .bottom-nav-item[aria-current] { color:var(--foreground); font-weight:var(--weight-medium); }
810
+ /* O PESO DO RÓTULO NÃO MUDA COM A ESCOLHA — 03/10/2026, pedido do Victor: *"quero ele estático,
811
+ apenas os botões dinâmicos"*. Era `--weight-medium` só no escolhido, e texto mais grosso é texto
812
+ mais LARGO: no `width="content"` a barra mudava de largura a cada toque, nos sete indicadores
813
+ (medido: 247,7 contra 249,0). Agora todos os rótulos são `--weight-medium` — o "Label medium" do
814
+ Material 3, que no Expressive também deixou de engrossar o escolhido. O que marca a escolha é a
815
+ cor, o ícone cheio e a forma. Quem cobra: `geometry.spec`, "a barra não se mexe". */
816
+ .bottom-nav-item { font-weight:var(--weight-medium); }
817
+ /* A ALTURA DO TELEGRAM — 03/10/2026, pedido do Victor (*"ainda acho ele muito largo comparado a
818
+ bottomnav como do telegram"*; "largo" é a grossura). Medido no fonte do Telegram para Android
819
+ 12.10.6: pílula de 56, botão de 48, ícone de 24, nome de 12 numa linha de 16. O recheio de cima
820
+ e de baixo cai de `--space-1` para `--space-05`, e a linha do nome é a do Telegram: o tamanho
821
+ mais `--space-1` (12 + 4). Com a do corpo (1,5) ela media 18; com a `--leading-tight` (14,4) a
822
+ perna do "j" passava 1 da caixa, e a caixa corta (`overflow:hidden`, para as reticências).
823
+ Fica 56 nos indicadores sem moldura e 64 nos que têm a de 32 — a altura do Material 3
824
+ Expressive. O mesmo no `navigation.tsx`. */
825
+ .bottom-nav-item { padding-block:var(--space-05); }
826
+ /* O NOME COLADO NO ÍCONE — 03/10/2026, pedido do Victor (*"o texto pode ficar mais próximo do
827
+ ícone"*): vão ZERO, como no Telegram, em que o nome começa onde a caixa do ícone acaba. O
828
+ `--space-05` de 30/09/2026 somava 2 aos 2 de folga da linha do nome: medido de tinta a tinta,
829
+ eram 9 no `pill` e 13 no `circle-bold`. No `circle-bold` a moldura de 32 também sai (logo
830
+ abaixo): lá o círculo é o disco, não ela. */
831
+ .bottom-nav-item, .bottom-nav-disc { gap:0; }
832
+ .bottom-nav-label { line-height:calc(1em + var(--space-1)); }
833
+ .bottom-nav-item[aria-current] { color:var(--foreground); }
811
834
  .bottom-nav-item[aria-current] .icon { opacity:1; }
812
835
  /* ── A GRAMÁTICA: DOIS EIXOS, E ELES NÃO SE MISTURAM ────────────────────────────────
813
836
  Reescrito em 20/08/2026 pela auditoria de UI/UX do BottomNav que o Victor encomendou.
@@ -873,7 +896,18 @@ img,svg { display:block; }
873
896
  /* 3.5rem = 56px, e também é número de fora: é a largura do indicador ativo do Material 3
874
897
  Expressive (56dp) e a altura do indicador expandido na mesma doc. É a única forma aqui que
875
898
  envolve ícone E rótulo, então usa a medida expandida e não a de 32. */
876
- .bottom-nav-ind-circle-bold .bottom-nav-item[aria-current] { flex:none; width:var(--bottomnav-bold,3.5rem); border-radius:var(--radius-full); background:var(--primary); color:var(--primary-foreground); }
899
+ /* `padding-inline: space-1` — o recheio de sempre do item (`.bottom-nav-item`). No `width="content"`
900
+ o item ganha `space-3` dos lados, e dentro dos 56 sobravam 32 para o rótulo: "Avisos" (35)
901
+ saía "Avis…". Medido em 02/10/2026, no navegador e no nativo; igual no `navigation.tsx`. */
902
+ /* ~~O disco ERA o item escolhido~~ (até a `0.16.1`): ele media 56 e os outros mediam o conteúdo,
903
+ então trocar de aba mudava a largura da barra (249 a 257 no app, medido em 03/10/2026) e, no
904
+ `full`, os outros itens andavam. Agora o disco é uma caixa DENTRO do item (`.bottom-nav-disc`),
905
+ em todos os itens, e o recheio passa do item para ele: o item mede o mesmo escolhido ou não, e a
906
+ altura da barra não muda. O mesmo no `navigation.tsx`. */
907
+ .bottom-nav.bottom-nav-ind-circle-bold .bottom-nav-item { padding:0; }
908
+ .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); }
909
+ .bottom-nav-ind-circle-bold .bottom-nav-item[aria-current] { color:var(--primary-foreground); }
910
+ .bottom-nav-ind-circle-bold .bottom-nav-item[aria-current] .bottom-nav-disc { background:var(--primary); }
877
911
  .bottom-nav-ind-circle-bold .bottom-nav-item[aria-current] .icon { opacity:1; }
878
912
  /* O contador do `circle-bold` INVERTE, como o do `.btn-primary`, e a volta atrás está medida.
879
913
  Tentei em 20/08/2026 deixá-lo dourado com um anel da cor da barra em volta — é o que as telas
@@ -882,6 +916,36 @@ img,svg { display:block; }
882
916
  se esconde. Fio fino não substitui contraste quando as duas cores são claras. */
883
917
  .bottom-nav-ind-circle-bold .bottom-nav-item[aria-current] .badge { background:var(--primary-foreground); color:var(--primary); border-color:transparent; }
884
918
  .bottom-nav-ind-circle-bold .bottom-nav-item[aria-current] .bottom-nav-badge { color:var(--primary-foreground); }
919
+ /* ── CÁPSULA (`capsule`) — a "A" da bancada do Victor, 03/10/2026: o Material 3 Expressive ────
920
+ A moldura do ícone vira a cápsula de 56 × 32 do indicador ativo do M3 Expressive
921
+ (`--bottomnav-bold` × `--bottomnav-ring`), em TODOS os itens; só a do escolhido é pintada, de
922
+ amarelo sólido. O rótulo fica embaixo, fora dela — é isso que a separa do antigo bloco amarelo
923
+ que a auditoria de 20/08/2026 recusou (achado 5): a forma não estica com o nome.
924
+ O contador fica no canto do ÍCONE, e não da cápsula: sem a cápsula pintada ele ficaria solto,
925
+ longe do sino. São os (56 − 32) / 2 a mais para dentro. E ele INVERTE sobre o amarelo, pela
926
+ mesma razão medida do `circle-bold`, logo acima. */
927
+ .bottom-nav-ind-capsule .bottom-nav-mark { width:var(--bottomnav-bold,3.5rem); height:var(--bottomnav-ring); border-radius:var(--radius-full); }
928
+ .bottom-nav-ind-capsule .bottom-nav-badge { inset-inline-end:calc((var(--bottomnav-bold,3.5rem) - var(--bottomnav-ring)) / 2 - var(--space-05)); }
929
+ .bottom-nav-ind-capsule .bottom-nav-item[aria-current] .bottom-nav-mark { background:var(--primary); color:var(--primary-foreground); }
930
+ .bottom-nav-ind-capsule .bottom-nav-item[aria-current] .icon { opacity:1; }
931
+ .bottom-nav-ind-capsule .bottom-nav-item[aria-current] .badge { background:var(--primary-foreground); color:var(--primary); border-color:transparent; }
932
+ /* No `content`, o recheio de sempre (`--space-1`) e não o `--space-3`: com ele cada item teria 80. */
933
+ .bottom-nav-content:not(.bottom-nav-edge).bottom-nav-ind-capsule .bottom-nav-item { padding-inline:var(--space-1); }
934
+ /* ── EXPANDE (`expand`) — a "C" da bancada do Victor, 03/10/2026 ───────────────────────────────
935
+ Os outros itens mostram só o ícone; o escolhido vira cápsula amarela com o nome ao lado.
936
+ ⚠ É a exceção à regra "o rótulo nunca some" (auditoria de 20/08/2026, achado 6/7), por ordem do
937
+ Victor: o nome dos não escolhidos sai da TELA e fica para o leitor de tela (o componente põe a
938
+ `.sr-only` nele), então o link continua com nome.
939
+ É o ÚNICO em que o botão escolhido cresce — os botões andam, a BARRA não: a vaga do escolhido é
940
+ FIXA, e não do tamanho do nome. Ícone + vão (`--space-2`) + lugar do nome (`--space-20`) +
941
+ recheio (`--space-3` dos dois lados) = 136. Nome maior que 80 termina em "…". */
942
+ .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; }
943
+ .bottom-nav-ind-expand .bottom-nav-mark { width:var(--icon-lg); }
944
+ .bottom-nav-ind-expand .bottom-nav-label { font-size:var(--text-sm); }
945
+ .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-foreground); }
946
+ .bottom-nav-ind-expand .bottom-nav-item[aria-current] .icon { opacity:1; }
947
+ .bottom-nav-ind-expand .bottom-nav-item[aria-current] .badge { background:var(--primary-foreground); color:var(--primary); border-color:transparent; }
948
+ .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; }
885
949
 
886
950
  /* ── A LINHA DE LISTA TOCÁVEL (§4.3 do CONSUMIDOR-1) ──────────────────────────
887
951
  A LISTA NÃO PINTA SUPERFÍCIE. Quem dá o card é o `Card`, e repintar aqui seria um segundo
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aurea-uds/core",
3
- "version": "0.16.0",
3
+ "version": "0.17.0",
4
4
  "description": "O CSS da Aurea UDS e o comportamento em JavaScript puro. Importe @aurea-uds/fonts/css antes deste.",
5
5
  "keywords": [
6
6
  "aurea",