@abrasileirado/dsgovbr-bootstraped 0.1.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.
@@ -0,0 +1,142 @@
1
+ // Sobrescritas de variáveis Sass do Bootstrap, a partir dos tokens em
2
+ // _tokens.scss. Precisam ser definidas ANTES do @import do Bootstrap em
3
+ // index.scss (build autônoma — DP-02 de docs/requisitos.md). Todas as
4
+ // variáveis do Bootstrap usam `!default`, então só são sobrescritas aqui as
5
+ // que definimos explicitamente abaixo.
6
+
7
+ @import "tokens";
8
+
9
+ // --- Cores de tema ---
10
+ $primary: $govbr-interactive;
11
+ $success: $govbr-success;
12
+ $info: $govbr-info;
13
+ $warning: $govbr-warning;
14
+ $danger: $govbr-danger;
15
+ $light: $govbr-gray-5;
16
+ $dark: $govbr-gray-90;
17
+
18
+ $body-color: $govbr-gray-80;
19
+ $body-bg: $govbr-background;
20
+ $border-color: $govbr-gray-20;
21
+
22
+ // --- Tipografia ---
23
+ // $govbr-font-family já é a lista completa ("Rawline", "Raleway", sans-serif)
24
+ // terminando num fallback genérico — não concatenar com mais fontes aqui:
25
+ // isso aninharia a lista (viraria `("Rawline", ...), Arial, ...` no CSS
26
+ // final) em vez de uma pilha de fontes plana.
27
+ $font-family-base: $govbr-font-family;
28
+
29
+ // DP-10: o font-size base do GOV.BR DS (14px) é aplicado apenas à
30
+ // tipografia ($font-size-base), não ao elemento raiz ($font-size-root
31
+ // permanece no padrão do navegador). O próprio GOV.BR DS trata espaçamento
32
+ // (spacer 8px) como uma escala independente do tamanho de fonte — replicamos
33
+ // essa mesma separação aqui. Por isso o padding/margem do Bootstrap em rem
34
+ // (relativos à raiz, não ao font-size-base) NÃO são reescalados por esta
35
+ // mudança; apenas texto, headings, lead e o tamanho de fonte de inputs/botões
36
+ // (que derivam de $font-size-base) diminuem proporcionalmente.
37
+ //
38
+ // 0.875rem = 14px, assumindo a raiz do navegador em 16px (não alterada).
39
+ $font-size-base: 0.875rem;
40
+
41
+ // --- Botão (RF-04) ---
42
+ // Forma de pílula via variáveis (sem CSS adicional): GOV.BR DS usa
43
+ // --button-radius: 100em em vendor/govbr-ds-core/.../button/_mixins.scss.
44
+ //
45
+ // Usamos o valor literal (não $border-radius-pill) porque estas sobrescritas
46
+ // rodam ANTES do Bootstrap definir suas próprias variáveis — $border-radius-pill
47
+ // ainda não existe neste ponto do build. `50rem` é o próprio valor padrão do
48
+ // Bootstrap para $border-radius-pill (vendor/bootstrap/scss/_variables.scss).
49
+ $btn-border-radius: 50rem;
50
+ $btn-border-radius-sm: 50rem;
51
+ $btn-border-radius-lg: 50rem;
52
+
53
+ $btn-font-weight: $govbr-font-weight-semibold;
54
+
55
+ // Padding horizontal alinhado ao spacing-scale-3x do GOV.BR DS (24px) no
56
+ // tamanho padrão; sm/lg escalam proporcionalmente pela própria convenção do
57
+ // Bootstrap (o GOV.BR DS não varia o padding horizontal por tamanho).
58
+ $btn-padding-x: 1.5rem; // 24px
59
+ $btn-padding-x-sm: 1rem; // 16px
60
+ $btn-padding-x-lg: 2rem; // 32px
61
+
62
+ // Padding vertical ajustado para aproximar as alturas de referência do
63
+ // GOV.BR DS (32/40/48px — ver _tokens.scss). É uma aproximação deliberada,
64
+ // não paridade de pixel: a matriz de compatibilidade (docs/requisitos.md §6)
65
+ // não exige identidade exata, só declarar a aproximação.
66
+ $btn-padding-y: 0.5rem; // ~40px de altura total (padrão)
67
+ $btn-padding-y-sm: 0.375rem; // ~32px de altura total
68
+ $btn-padding-y-lg: 0.625rem; // ~48px de altura total
69
+
70
+ // Diferença conhecida e documentada (não replicada nesta issue): o GOV.BR DS
71
+ // usa border: 0 por padrão e cor de foco dourada (--focus-color-light,
72
+ // gold-vivid-40 #c2850c) com contorno tracejado; o Bootstrap mantém sua
73
+ // borda padrão e o anel de foco (`$focus-ring-color`) segue $primary, não a
74
+ // paleta de foco do GOV.BR DS. Ver ficha de fixture em tests/fixtures/btn.html.
75
+
76
+ // --- Campos de texto (RF-05) ---
77
+ // vendor/govbr-ds-core/src/components/input/_mixins.scss (input-tokens,
78
+ // input-default, input-states). Alturas de referência: 32/40/48px — as
79
+ // mesmas do botão (issue #3); por isso reaproveitamos o mesmo padding-y
80
+ // calibrado ali, e o resultado é coerente (o próprio GOV.BR DS usa a mesma
81
+ // escala de altura para os dois componentes).
82
+ $input-color: $govbr-gray-80; // --color-light
83
+ $input-border-color: $govbr-gray-40; // --border-color-alternative
84
+ $input-font-weight: $govbr-font-weight-medium;
85
+
86
+ $input-border-radius: $govbr-radius-sm; // --surface-rounder-sm (4px)
87
+ $input-border-radius-sm: $govbr-radius-sm;
88
+ $input-border-radius-lg: $govbr-radius-sm; // GOV.BR DS não varia o raio por tamanho
89
+
90
+ $input-padding-x: 1rem; // 16px = spacing-scale-2x
91
+ $input-padding-y: 0.5rem; // ~40px de altura total (padrão) — igual ao botão
92
+ $input-padding-y-sm: 0.375rem; // ~32px
93
+ $input-padding-y-lg: 0.625rem; // ~48px
94
+
95
+ $form-label-font-weight: $govbr-font-weight-medium;
96
+
97
+ // Diferença conhecida: o GOV.BR DS engrossa a borda (2px) nos estados de
98
+ // validação (.success/.danger/.warning/.info); o Bootstrap só troca a cor
99
+ // da borda em .is-valid/.is-invalid, mantendo a espessura padrão. Não
100
+ // replicado nesta issue (exigiria CSS específico além de variáveis).
101
+
102
+ // --- Checkbox e radio (RF-05) ---
103
+ // vendor/govbr-ds-core/src/components/checkbox/_mixins.scss e
104
+ // .../radio/_mixins.scss (checkbox-tokens, radio-tokens): ambos usam uma
105
+ // caixa de 24px. $form-check-radio-border-radius (50%) já bate com o radio
106
+ // do GOV.BR DS por padrão do Bootstrap — não precisa de override.
107
+ $form-check-input-width: 24px;
108
+ // $form-check-padding-start soma $form-check-input-width + .5em por padrão;
109
+ // como .5em não é compatível em Sass com um $form-check-input-width em px,
110
+ // sobrescrevemos o resultado final também: 24px (caixa) + 8px (espaçamento,
111
+ // spacing-scale-base do GOV.BR DS) = 32px.
112
+ $form-check-padding-start: 2rem;
113
+ $form-check-input-border-radius: $govbr-radius-sm; // 4px (só a caixa do checkbox)
114
+ $form-check-label-cursor: pointer;
115
+
116
+ // Diferença conhecida: o GOV.BR DS desenha o "check" com bordas rotacionadas
117
+ // via pseudo-elemento; mantemos o ícone SVG nativo do Bootstrap
118
+ // ($form-check-input-checked-bg-image), só recolorido pelo $primary já
119
+ // mapeado (issue #3) — aproximação visual, não replicação de anatomia.
120
+
121
+ // --- Alertas (RF-06) ---
122
+ // vendor/govbr-ds-core/src/components/message/_mixins.scss: sem borda, sem
123
+ // raio de canto, fundo tingido por cor semântica (--{cor}-alternative). O
124
+ // Bootstrap 5.3 já gera automaticamente fundo/texto/borda "subtle" por cor
125
+ // de tema a partir de $success/$info/$warning/$danger (mapeados na issue
126
+ // #3) — não precisamos redefinir cores aqui, só remover borda e raio.
127
+ $alert-border-width: 0;
128
+ $alert-border-radius: 0;
129
+
130
+ // --- Cards (RF-06) ---
131
+ // vendor/govbr-ds-core/src/components/card/_mixins.scss: sem borda, sombra
132
+ // em vez de borda, cabeçalho/rodapé com o MESMO fundo do corpo (sem
133
+ // "cap" diferenciado), padding = spacing-scale-2x (16px) = já é o padrão
134
+ // do Bootstrap ($card-spacer-y/x = $spacer = 1rem), por isso não overamos.
135
+ $card-border-width: 0;
136
+ $card-border-radius: 0;
137
+ $card-box-shadow: $govbr-shadow-sm;
138
+ $card-cap-bg: transparent;
139
+ // Valor literal (não $spacer): estas sobrescritas rodam antes do Bootstrap
140
+ // definir suas variáveis (mesmo motivo do $btn-border-radius acima). 1rem é
141
+ // o próprio valor padrão de $spacer no Bootstrap.
142
+ $card-cap-padding-y: 1rem; // GOV.BR DS usa o spacer inteiro (16px), não a metade
@@ -0,0 +1,78 @@
1
+ // Tokens do GOV.BR DS mapeados para variáveis Sass do Bootstrap.
2
+ //
3
+ // Os valores abaixo são cópias literais, extraídas do submodule
4
+ // vendor/govbr-ds-core (tag v3.7.0) — não são importados via @import/@use
5
+ // porque os parciais de origem dependem de um conjunto próprio de mixins e
6
+ // funções (family-blue, get-rgb, tokens()) que geram custom properties e
7
+ // trariam risco de colisão de seletores com o Bootstrap (RNF-04). Cada valor
8
+ // cita o arquivo de origem para rastreabilidade (RF-02). Revalidar estas
9
+ // cópias sempre que a tag do submodule for atualizada (DP-09).
10
+
11
+ // --- Cores semânticas ---
12
+ // vendor/govbr-ds-core/src/partial/scss/_tokens.scss (bloco :root)
13
+
14
+ // --interactive: var(--blue-warm-vivid-70)
15
+ // vendor/govbr-ds-core/.../configs/colors/_blue-warm-vivid.scss
16
+ $govbr-interactive: #1351b4;
17
+
18
+ // --info: var(--blue-warm-vivid-60)
19
+ $govbr-info: #155bcb;
20
+
21
+ // --success: var(--green-cool-vivid-50)
22
+ // vendor/govbr-ds-core/.../configs/colors/_green-cool-vivid.scss
23
+ $govbr-success: #168821;
24
+
25
+ // --warning: var(--yellow-vivid-20)
26
+ // vendor/govbr-ds-core/.../configs/colors/_yellow-vivid.scss
27
+ $govbr-warning: #ffcd07;
28
+
29
+ // --danger: var(--red-vivid-50)
30
+ // vendor/govbr-ds-core/.../configs/colors/_red-vivid.scss
31
+ $govbr-danger: #e52207;
32
+
33
+ // --- Neutros ---
34
+ // vendor/govbr-ds-core/.../configs/colors/_gray.scss
35
+ $govbr-gray-90: #1b1b1b; // tom mais escuro (usado como $dark)
36
+ $govbr-gray-80: #333; // --color-light (texto padrão)
37
+ $govbr-gray-20: #ccc; // --border-color
38
+ $govbr-gray-5: #f0f0f0; // fundo alternativo (usado como $light)
39
+
40
+ // --background-light: var(--pure-0)
41
+ // vendor/govbr-ds-core/.../configs/colors/_pure.scss
42
+ $govbr-background: #fff;
43
+
44
+ // --- Tipografia ---
45
+ // vendor/govbr-ds-core/src/partial/scss/configs/_typography.scss
46
+ $govbr-font-family: "Rawline", "Raleway", sans-serif;
47
+ $govbr-font-size-base: 14px; // DP-10 — ver nota em _bootstrap-settings.scss
48
+ $govbr-font-weight-medium: 500;
49
+ $govbr-font-weight-semibold: 600;
50
+
51
+ // --- Neutro adicional (issue #4) ---
52
+ // --border-color-alternative: var(--gray-40)
53
+ // vendor/govbr-ds-core/.../configs/colors/_gray.scss
54
+ $govbr-gray-40: #888;
55
+
56
+ // --- Superfície (raio de borda) ---
57
+ // vendor/govbr-ds-core/src/partial/scss/configs/_surface.scss ($rounder-sm)
58
+ $govbr-radius-sm: 4px;
59
+
60
+ // --- Sombra (issue #5: card) ---
61
+ // vendor/govbr-ds-core/src/partial/scss/configs/_elevation.scss ($shadow-sm)
62
+ // = offset-none(0) offset-sm(1px) blur-lg(6px), cor secondary-09 (#000) a 16%
63
+ $govbr-shadow-sm: 0 1px 6px rgba(0, 0, 0, 0.16);
64
+
65
+ // --- Espaçamento ---
66
+ // vendor/govbr-ds-core/src/partial/scss/configs/_spacing.scss ($spacer)
67
+ // Não é remapeado nesta issue (ver matriz em docs/requisitos.md §6: Layout
68
+ // mantém o Bootstrap); registrado aqui apenas para referência futura.
69
+ $govbr-spacer: 8px;
70
+
71
+ // --- Botão ---
72
+ // vendor/govbr-ds-core/src/components/button/_mixins.scss
73
+ // (button-tokens, button-default)
74
+ $govbr-button-radius: 100em; // --button-radius: pílula
75
+ $govbr-button-height-small: 32px; // --button-small
76
+ $govbr-button-height-medium: 40px; // --button-medium (padrão)
77
+ $govbr-button-height-large: 48px; // --button-large
78
+ $govbr-button-padding-x: 24px; // padding: 0 var(--spacing-scale-3x)
File without changes
@@ -0,0 +1,8 @@
1
+ // Ajuste que as variáveis, sozinhas, não resolvem: o mixin box-shadow() do
2
+ // Bootstrap só gera CSS quando $enable-shadows está ativo (padrão: false).
3
+ // Ativar esse flag globalmente também afetaria botões e campos de texto
4
+ // (que ganhariam sombras que o GOV.BR DS não usa nesses componentes), então
5
+ // aplicamos a sombra do card diretamente, sem depender do flag.
6
+ .card {
7
+ box-shadow: var(--bs-card-box-shadow);
8
+ }
@@ -0,0 +1,18 @@
1
+ // Ponto de entrada do dsgovbr-bootstraped.
2
+ //
3
+ // Build autônoma (DP-02 de docs/requisitos.md): recompila o Bootstrap a
4
+ // partir do submodule vendorizado, com as variáveis Sass sobrescritas por
5
+ // _bootstrap-settings.scss ANTES do @import do Bootstrap — caminho de
6
+ // customização oficialmente documentado pelo próprio Bootstrap.
7
+ //
8
+ // O caminho de import usa @import (não @use/@forward) porque o próprio
9
+ // Bootstrap 5.3.8 ainda importa seus parciais dessa forma internamente;
10
+ // o contrato de Sass definitivo deste pacote é a decisão DP-04, ainda
11
+ // pendente em docs/requisitos.md §12.2.
12
+
13
+ @import "bootstrap-settings";
14
+ @import "../../vendor/bootstrap/scss/bootstrap";
15
+
16
+ // Ajustes que as variáveis de tema, sozinhas, não resolvem — um adaptador
17
+ // por componente (ver docs/desenvolvimento.md).
18
+ @import "components/card";