@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.
- package/LICENSE +21 -0
- package/README.md +62 -0
- package/dist/dsgovbr-bootstraped.css +11872 -0
- package/dist/dsgovbr-bootstraped.css.map +1 -0
- package/dist/dsgovbr-bootstraped.min.css +5 -0
- package/package.json +53 -0
- package/src/scss/_bootstrap-settings.scss +142 -0
- package/src/scss/_tokens.scss +78 -0
- package/src/scss/components/.gitkeep +0 -0
- package/src/scss/components/_card.scss +8 -0
- package/src/scss/index.scss +18 -0
|
@@ -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";
|