@inchurch/matcha-theme 22.27.0 → 22.27.2

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.
@@ -45,9 +45,13 @@
45
45
  }
46
46
 
47
47
  // ── Content text ──
48
- .accordion-content {
49
- color: var(--matcha-color-text-label);
50
- }
48
+ // NÃO definir `color` aqui. `.accordion-content` é slot de conteúdo
49
+ // ARBITRÁRIO (form, tabela, parágrafo, componente inteiro) — impor cor
50
+ // sequestra tudo que for projetado. Até 22.27.1 este seletor aplicava
51
+ // `--matcha-color-text-label` (#7a818a), deixando todo texto de accordion
52
+ // cinza; o consumidor herda `--matcha-color-fg` (#2a2d33) do body reset,
53
+ // que é a cor correta. Mesmo contrato do matcha-card, cujo
54
+ // `.matcha-card__slot--content` também não define cor.
51
55
 
52
56
  // ── Chevron ──
53
57
  .accordion-chevron {
@@ -482,11 +482,116 @@
482
482
  // ── Command Palette: high-contrast em matcha-command-palette.scss ──
483
483
  }
484
484
 
485
+ // ── Nav Drawer ───────────────────────────────────────────────────────────────
486
+ // Navegação em drawer (Figma DSV3 node 19228:2014) — a forma da navegação quando
487
+ // não há espaço pro par rail + panel. Compõe matcha-drawer-container +
488
+ // matcha-drawer mode=over; aqui só a anatomia e o ritmo da árvore.
489
+
490
+ .matcha-nav-drawer {
491
+ // Cobre a viewport pra ancorar o backdrop do container (que é absolute/inset:0).
492
+ // Sem isso o scrim ficaria do tamanho do pai onde o drawer foi declarado.
493
+ position: fixed;
494
+ inset: 0;
495
+ z-index: var(--matcha-nav-drawer-z, 1000);
496
+ // Fechado não pode capturar clique da página que está por baixo.
497
+ pointer-events: none;
498
+
499
+ &.matcha-nav-drawer--opened {
500
+ pointer-events: auto;
501
+ }
502
+
503
+ // Contained — ancora no ancestral posicionado em vez da viewport. Preview e
504
+ // embed (playground da doc dentro de um frame de phone). Mesmo cenário que o
505
+ // matcha-drawer já reconhece no max-height do bottom sheet.
506
+ &.matcha-nav-drawer--contained {
507
+ position: absolute;
508
+ }
509
+
510
+ // O container tem bg opaco próprio (é feito pra envolver a app). Aqui ele é só
511
+ // âncora de posicionamento — opaco cobriria a página inteira mesmo fechado.
512
+ .matcha-drawer-container {
513
+ height: 100%;
514
+ background-color: transparent;
515
+ }
516
+
517
+ // Ritmo dos slots: a navegação define o próprio (Figma), não o padding 20/20
518
+ // genérico do drawer. As CSS vars existem pra isso — sem !important.
519
+ matcha-drawer {
520
+ --drawer-pad-x: var(--matcha-space-150, 12px);
521
+ --drawer-pad-y: var(--matcha-space-150, 12px);
522
+ }
523
+
524
+ // Header — brand à esquerda, close à direita (space-between vem do slot).
525
+ .matcha-nav-drawer__brand {
526
+ display: flex;
527
+ align-items: center;
528
+ min-width: 0;
529
+ gap: var(--matcha-space-100, 8px);
530
+ }
531
+
532
+ // Busca — largura total, logo abaixo do header e antes da árvore.
533
+ .matcha-nav-drawer__search {
534
+ display: block;
535
+ width: 100%;
536
+ flex-shrink: 0;
537
+
538
+ > * {
539
+ width: 100%;
540
+ }
541
+ }
542
+
543
+ // Árvore de navegação.
544
+ .matcha-nav-drawer__items {
545
+ display: flex;
546
+ flex-direction: column;
547
+ align-items: stretch;
548
+ gap: var(--matcha-space-050, 4px);
549
+ width: 100%;
550
+ }
551
+
552
+ // Hierarquia de 3 níveis. O matcha-nav-item só tem UM flag de indentação
553
+ // (`indented`), reservado ao nível 3 — que também é o único que o Figma
554
+ // permite sem ícone/chevron. O recuo do nível 2 vem daqui, do container,
555
+ // pra não sobrecarregar o contrato público do nav-item nem mexer no desktop.
556
+ //
557
+ // 24px = ícone (16) + gap (8) do row do módulo. Isso alinha o label do filho
558
+ // com o label do pai, formando uma coluna de texto. Com menos que isso o filho
559
+ // renderiza à ESQUERDA do label do pai (o pai tem ícone, o filho não) e a
560
+ // hierarquia lê invertida. O nível 3 soma os 24 do `indented` por cima.
561
+ .matcha-nav-drawer__items > .matcha-nav-item > .matcha-nav-item__children {
562
+ padding-inline-start: var(--matcha-space-300, 24px);
563
+ }
564
+
565
+ // Footer — lista de itens empilhada. O slot do drawer é feito pra botões de
566
+ // ação (row, alinhado à direita); a navegação precisa do oposto.
567
+ .matcha-drawer__slot--footer > * {
568
+ flex-direction: column;
569
+ align-items: stretch;
570
+ justify-content: flex-start;
571
+ gap: var(--matcha-space-025, 2px);
572
+ }
573
+
574
+ .matcha-nav-drawer__footer {
575
+ display: flex;
576
+ flex-direction: column;
577
+ align-items: stretch;
578
+ gap: var(--matcha-space-025, 2px);
579
+ width: 100%;
580
+ }
581
+
582
+ // O wrapper do slot existe sempre (é do template), então o :has() do drawer
583
+ // não consegue esconder o footer vazio sozinho — a checagem real é esta.
584
+ .matcha-drawer__slot--footer:not(:has(matcha-nav-drawer-footer)) {
585
+ display: none;
586
+ }
587
+ }
588
+
485
589
  // ── Print ──────────────────────────────────────────────────────────────────
486
590
  // Convenção DS: chrome de navegação some em impressão — conteúdo full-page.
487
591
  @media print {
488
592
  .matcha-nav-rail,
489
- .matcha-nav-panel {
593
+ .matcha-nav-panel,
594
+ .matcha-nav-drawer {
490
595
  display: none !important;
491
596
  }
492
597
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@inchurch/matcha-theme",
3
- "version": "22.27.0",
3
+ "version": "22.27.2",
4
4
  "description": "Themes for matcha-design-system",
5
5
  "main": "main.scss",
6
6
  "scripts": {