@dev-tcloud/tcloud-ui 6.14.2 → 6.15.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/fesm2022/dev-tcloud-tcloud-ui.mjs +1 -2
- package/fesm2022/dev-tcloud-tcloud-ui.mjs.map +1 -1
- package/package.json +1 -1
- package/scss/tcloud-ui/styles/_claus-badge.scss +117 -0
- package/scss/tcloud-ui/styles/_claus-btn.scss +207 -0
- package/scss/tcloud-ui/styles/_claus-card.scss +12 -0
- package/scss/tcloud-ui/styles/_claus-colors.scss +192 -0
- package/scss/tcloud-ui/styles/_claus-form.scss +88 -0
- package/scss/tcloud-ui/styles/_claus-sizes.scss +28 -0
- package/scss/tcloud-ui/styles/_claus-spacers.scss +49 -0
- package/scss/tcloud-ui/styles/_claus-themes.scss +36 -0
- package/scss/tcloud-ui/styles/_claus-title.scss +24 -0
- package/scss/tcloud-ui/styles/_claus-typography.scss +70 -0
- package/scss/tcloud-ui/styles/_claus-variables.scss +131 -0
- package/scss/tcloud-ui/styles/_colors.scss +123 -0
- package/scss/tcloud-ui/styles/_tc-btn.scss +210 -0
- package/scss/tcloud-ui/styles/_tc-card.scss +7 -0
- package/scss/tcloud-ui/styles/_tc-title.scss +49 -0
- package/scss/tcloud-ui/styles.scss +35 -0
package/package.json
CHANGED
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
// =============================================================================
|
|
2
|
+
// Claus — tc-badge
|
|
3
|
+
// Uso: <span class="tc-badge tc-badge-primary">Label</span>
|
|
4
|
+
// =============================================================================
|
|
5
|
+
|
|
6
|
+
.tc-badge {
|
|
7
|
+
display: inline-flex;
|
|
8
|
+
align-items: center;
|
|
9
|
+
gap: 4px;
|
|
10
|
+
padding: 2px 10px;
|
|
11
|
+
border-radius: var(--bor-radius-pill);
|
|
12
|
+
font-family: var(--f-family);
|
|
13
|
+
font-size: 0.75rem;
|
|
14
|
+
font-weight: 600;
|
|
15
|
+
line-height: 1.6;
|
|
16
|
+
white-space: nowrap;
|
|
17
|
+
border: 1px solid transparent;
|
|
18
|
+
|
|
19
|
+
// --- Variantes filled -------------------------------------------------------
|
|
20
|
+
|
|
21
|
+
&-primary {
|
|
22
|
+
background-color: var(--c-primary-300);
|
|
23
|
+
color: var(--c-primary-700);
|
|
24
|
+
border-color: var(--c-primary-400);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
&-danger {
|
|
28
|
+
background-color: var(--c-danger-300);
|
|
29
|
+
color: var(--c-danger-700);
|
|
30
|
+
border-color: var(--c-danger-400);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
&-alert {
|
|
34
|
+
background-color: var(--c-alert-300);
|
|
35
|
+
color: var(--c-alert-700);
|
|
36
|
+
border-color: var(--c-alert-400);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
&-success {
|
|
40
|
+
background-color: var(--c-success-300);
|
|
41
|
+
color: var(--c-success-700);
|
|
42
|
+
border-color: var(--c-success-400);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
&-info {
|
|
46
|
+
background-color: var(--c-info-300);
|
|
47
|
+
color: var(--c-primary-700);
|
|
48
|
+
border-color: var(--c-info-400);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
&-neutral {
|
|
52
|
+
background-color: var(--c-neutral-200);
|
|
53
|
+
color: var(--c-neutral-600);
|
|
54
|
+
border-color: var(--c-neutral-300);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
// --- Variante solid (fundo cheio, texto claro) ------------------------------
|
|
58
|
+
|
|
59
|
+
&-solid {
|
|
60
|
+
&.tc-badge-primary {
|
|
61
|
+
background-color: var(--c-primary-500);
|
|
62
|
+
color: var(--c-neutral-50);
|
|
63
|
+
border-color: var(--c-primary-500);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
&.tc-badge-danger {
|
|
67
|
+
background-color: var(--c-danger-500);
|
|
68
|
+
color: var(--c-neutral-50);
|
|
69
|
+
border-color: var(--c-danger-500);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
&.tc-badge-alert {
|
|
73
|
+
background-color: var(--c-alert-500);
|
|
74
|
+
color: var(--c-neutral-700);
|
|
75
|
+
border-color: var(--c-alert-500);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
&.tc-badge-success {
|
|
79
|
+
background-color: var(--c-success-500);
|
|
80
|
+
color: var(--c-neutral-50);
|
|
81
|
+
border-color: var(--c-success-500);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
&.tc-badge-info {
|
|
85
|
+
background-color: var(--c-info-500);
|
|
86
|
+
color: var(--c-neutral-50);
|
|
87
|
+
border-color: var(--c-info-500);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
&.tc-badge-neutral {
|
|
91
|
+
background-color: var(--c-neutral-600);
|
|
92
|
+
color: var(--c-neutral-50);
|
|
93
|
+
border-color: var(--c-neutral-600);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
// --- Tamanhos ---------------------------------------------------------------
|
|
98
|
+
|
|
99
|
+
&-sm {
|
|
100
|
+
padding: 1px 7px;
|
|
101
|
+
font-size: 0.6875rem;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
&-lg {
|
|
105
|
+
padding: 4px 14px;
|
|
106
|
+
font-size: 0.875rem;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
// --- Estado desabilitado ----------------------------------------------------
|
|
110
|
+
|
|
111
|
+
&-disabled,
|
|
112
|
+
&[disabled] {
|
|
113
|
+
opacity: 0.45;
|
|
114
|
+
cursor: not-allowed;
|
|
115
|
+
pointer-events: none;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
// =============================================================================
|
|
2
|
+
// Claus — tc-btn
|
|
3
|
+
// Uso: <button class="tc-btn tc-btn-primary">Label</button>
|
|
4
|
+
// Todas as cores via CSS custom properties (--c-*); sem valores literais.
|
|
5
|
+
// =============================================================================
|
|
6
|
+
|
|
7
|
+
@mixin btn-filled($bg, $bg-hover, $bg-active, $color) {
|
|
8
|
+
background-color: $bg;
|
|
9
|
+
color: $color;
|
|
10
|
+
border-color: $bg;
|
|
11
|
+
|
|
12
|
+
&:hover:not(:disabled) {
|
|
13
|
+
background-color: $bg-hover;
|
|
14
|
+
border-color: $bg-hover;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
&:active:not(:disabled) {
|
|
18
|
+
background-color: $bg-active;
|
|
19
|
+
border-color: $bg-active;
|
|
20
|
+
transform: scale(0.98);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
@mixin btn-outline($color, $color-hover-bg, $color-active-bg) {
|
|
25
|
+
background-color: transparent;
|
|
26
|
+
color: $color;
|
|
27
|
+
border-color: $color;
|
|
28
|
+
|
|
29
|
+
&:hover:not(:disabled) {
|
|
30
|
+
background-color: $color-hover-bg;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
&:active:not(:disabled) {
|
|
34
|
+
background-color: $color-active-bg;
|
|
35
|
+
transform: scale(0.98);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
// --- Base --------------------------------------------------------------------
|
|
40
|
+
|
|
41
|
+
.tc-btn {
|
|
42
|
+
display: inline-flex;
|
|
43
|
+
align-items: center;
|
|
44
|
+
justify-content: center;
|
|
45
|
+
gap: 8px;
|
|
46
|
+
padding: 8px 18px;
|
|
47
|
+
border-radius: 40px;
|
|
48
|
+
border: 2px solid transparent;
|
|
49
|
+
font-family: inherit;
|
|
50
|
+
font-size: 0.9rem;
|
|
51
|
+
font-weight: 600;
|
|
52
|
+
line-height: 1;
|
|
53
|
+
cursor: pointer;
|
|
54
|
+
text-decoration: none;
|
|
55
|
+
white-space: nowrap;
|
|
56
|
+
transition:
|
|
57
|
+
background-color 0.15s ease,
|
|
58
|
+
color 0.15s ease,
|
|
59
|
+
border-color 0.15s ease,
|
|
60
|
+
transform 0.1s ease,
|
|
61
|
+
opacity 0.15s ease;
|
|
62
|
+
|
|
63
|
+
&:disabled {
|
|
64
|
+
opacity: 0.45;
|
|
65
|
+
cursor: not-allowed;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
&:focus-visible {
|
|
69
|
+
outline: 3px solid var(--c-primary-400);
|
|
70
|
+
outline-offset: 2px;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
// --- Tamanhos ---------------------------------------------------------------
|
|
74
|
+
|
|
75
|
+
&.tc-btn-sm {
|
|
76
|
+
padding: 5px 12px;
|
|
77
|
+
font-size: 0.8rem;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
&.tc-btn-lg {
|
|
81
|
+
padding: 12px 24px;
|
|
82
|
+
font-size: 1rem;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
// --- Filled -----------------------------------------------------------------
|
|
86
|
+
|
|
87
|
+
&.tc-btn-primary {
|
|
88
|
+
@include btn-filled(
|
|
89
|
+
var(--c-primary-500),
|
|
90
|
+
var(--c-primary-600),
|
|
91
|
+
var(--c-primary-700),
|
|
92
|
+
var(--c-neutral-50)
|
|
93
|
+
);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
&.tc-btn-danger {
|
|
97
|
+
@include btn-filled(
|
|
98
|
+
var(--c-danger-500),
|
|
99
|
+
var(--c-danger-600),
|
|
100
|
+
var(--c-danger-700),
|
|
101
|
+
var(--c-neutral-50)
|
|
102
|
+
);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
&.tc-btn-alert {
|
|
106
|
+
@include btn-filled(
|
|
107
|
+
var(--c-alert-500),
|
|
108
|
+
var(--c-alert-600),
|
|
109
|
+
var(--c-alert-700),
|
|
110
|
+
var(--c-neutral-700)
|
|
111
|
+
);
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
&.tc-btn-success {
|
|
115
|
+
@include btn-filled(
|
|
116
|
+
var(--c-success-500),
|
|
117
|
+
var(--c-success-600),
|
|
118
|
+
var(--c-success-700),
|
|
119
|
+
var(--c-neutral-50)
|
|
120
|
+
);
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
&.tc-btn-neutral {
|
|
124
|
+
@include btn-filled(
|
|
125
|
+
var(--c-neutral-200),
|
|
126
|
+
var(--c-neutral-300),
|
|
127
|
+
var(--c-neutral-400),
|
|
128
|
+
var(--c-neutral-700)
|
|
129
|
+
);
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
// --- Outline ----------------------------------------------------------------
|
|
133
|
+
|
|
134
|
+
&.tc-btn-outline-primary {
|
|
135
|
+
@include btn-outline(
|
|
136
|
+
var(--c-primary-500),
|
|
137
|
+
var(--c-primary-300),
|
|
138
|
+
var(--c-primary-400)
|
|
139
|
+
);
|
|
140
|
+
color: var(--c-primary-500);
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
&.tc-btn-outline-danger {
|
|
144
|
+
@include btn-outline(
|
|
145
|
+
var(--c-danger-500),
|
|
146
|
+
var(--c-danger-300),
|
|
147
|
+
var(--c-danger-400)
|
|
148
|
+
);
|
|
149
|
+
color: var(--c-danger-500);
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
&.tc-btn-outline-neutral {
|
|
153
|
+
@include btn-outline(
|
|
154
|
+
var(--c-neutral-400),
|
|
155
|
+
var(--c-neutral-100),
|
|
156
|
+
var(--c-neutral-200)
|
|
157
|
+
);
|
|
158
|
+
color: var(--c-neutral-600);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
a.tc-btn {
|
|
163
|
+
display: inline-flex;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
// --- tc-link -----------------------------------------------------------------
|
|
167
|
+
|
|
168
|
+
.tc-link {
|
|
169
|
+
color: var(--c-primary-500);
|
|
170
|
+
text-decoration: none;
|
|
171
|
+
font-weight: 500;
|
|
172
|
+
border-bottom: 1px solid transparent;
|
|
173
|
+
transition: color 0.15s, border-color 0.15s;
|
|
174
|
+
|
|
175
|
+
&:hover {
|
|
176
|
+
color: var(--c-primary-600);
|
|
177
|
+
border-bottom-color: var(--c-primary-400);
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
&:active {
|
|
181
|
+
color: var(--c-primary-700);
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
&:focus-visible {
|
|
185
|
+
outline: 3px solid var(--c-primary-400);
|
|
186
|
+
outline-offset: 2px;
|
|
187
|
+
border-radius: 2px;
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
&.tc-link-danger {
|
|
191
|
+
color: var(--c-danger-500);
|
|
192
|
+
|
|
193
|
+
&:hover {
|
|
194
|
+
color: var(--c-danger-600);
|
|
195
|
+
border-bottom-color: var(--c-danger-400);
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
&.tc-link-muted {
|
|
200
|
+
color: var(--c-neutral-500);
|
|
201
|
+
|
|
202
|
+
&:hover {
|
|
203
|
+
color: var(--c-neutral-700);
|
|
204
|
+
border-bottom-color: var(--c-neutral-400);
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
// =============================================================================
|
|
2
|
+
// Claus — tc-card
|
|
3
|
+
// Uso: <div class="tc-card">...</div>
|
|
4
|
+
// =============================================================================
|
|
5
|
+
|
|
6
|
+
.tc-card {
|
|
7
|
+
width: 100%;
|
|
8
|
+
padding: 16px;
|
|
9
|
+
border-radius: 16px;
|
|
10
|
+
box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.14);
|
|
11
|
+
background-color: var(--c-neutral-50);
|
|
12
|
+
}
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
@use "sass:map";
|
|
2
|
+
|
|
3
|
+
// =============================================================================
|
|
4
|
+
// Claus — Color Palette (fonte única de verdade)
|
|
5
|
+
// =============================================================================
|
|
6
|
+
// Prefixo: --c- (alinhado com os componentes tc-*)
|
|
7
|
+
// Escala numérica: quanto maior, mais escuro no modo light.
|
|
8
|
+
// No modo dark as mesmas variáveis são remapeadas; componentes não mudam.
|
|
9
|
+
//
|
|
10
|
+
// Ativar dark mode : document.body.classList.add('tc-dark')
|
|
11
|
+
// Variante prime : document.body.classList.add('tc-prime-modern')
|
|
12
|
+
// =============================================================================
|
|
13
|
+
|
|
14
|
+
:root {
|
|
15
|
+
// --- Neutros ----------------------------------------------------------------
|
|
16
|
+
--c-neutral-50: #FFFFFF;
|
|
17
|
+
--c-neutral-100: #F2F6F9;
|
|
18
|
+
--c-neutral-200: #EEEEEE;
|
|
19
|
+
--c-neutral-300: #CED4DA;
|
|
20
|
+
--c-neutral-400: #BAC0C6;
|
|
21
|
+
--c-neutral-500: #5E5E5E;
|
|
22
|
+
--c-neutral-600: #363636;
|
|
23
|
+
--c-neutral-700: #1A1A1A;
|
|
24
|
+
--c-neutral-800: #0D0D0D;
|
|
25
|
+
--c-neutral-900: #000000;
|
|
26
|
+
|
|
27
|
+
// --- Primária ---------------------------------------------------------------
|
|
28
|
+
--c-primary-300: #EAF9FF;
|
|
29
|
+
--c-primary-400: #75D8FF;
|
|
30
|
+
--c-primary-500: #0897E9;
|
|
31
|
+
--c-primary-600: #0457A7;
|
|
32
|
+
--c-primary-700: #012C6F;
|
|
33
|
+
|
|
34
|
+
// --- Danger -----------------------------------------------------------------
|
|
35
|
+
--c-danger-300: #FDE1D6;
|
|
36
|
+
--c-danger-400: #F48E85;
|
|
37
|
+
--c-danger-500: #DC3545;
|
|
38
|
+
--c-danger-600: #B02A37;
|
|
39
|
+
--c-danger-700: #8B1A23;
|
|
40
|
+
|
|
41
|
+
// --- Alert ------------------------------------------------------------------
|
|
42
|
+
--c-alert-300: #FFE6B7;
|
|
43
|
+
--c-alert-400: #FECD6E;
|
|
44
|
+
--c-alert-500: #FEAC0E;
|
|
45
|
+
--c-alert-600: #D9920B;
|
|
46
|
+
--c-alert-700: #B37709;
|
|
47
|
+
|
|
48
|
+
// --- Info -------------------------------------------------------------------
|
|
49
|
+
--c-info-300: #E6F5FD;
|
|
50
|
+
--c-info-400: #6BC1F2;
|
|
51
|
+
--c-info-500: #0897E9;
|
|
52
|
+
|
|
53
|
+
// --- Success ----------------------------------------------------------------
|
|
54
|
+
--c-success-300: #E7FBDA;
|
|
55
|
+
--c-success-400: #A3E78C;
|
|
56
|
+
--c-success-500: #47B13D;
|
|
57
|
+
--c-success-600: #3A9132;
|
|
58
|
+
--c-success-700: #2D7227;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
// =============================================================================
|
|
62
|
+
// Variante Prime Modern — light
|
|
63
|
+
// =============================================================================
|
|
64
|
+
body.tc-prime-modern {
|
|
65
|
+
--c-primary-300: #D3C8FF;
|
|
66
|
+
--c-primary-400: #896DFF;
|
|
67
|
+
--c-primary-500: #6B48FF;
|
|
68
|
+
--c-primary-600: #3A24B7;
|
|
69
|
+
--c-primary-700: #190D7A;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
// =============================================================================
|
|
73
|
+
// Dark mode — remapeia as variáveis; componentes não precisam de alterações
|
|
74
|
+
// =============================================================================
|
|
75
|
+
body.tc-dark {
|
|
76
|
+
// --- Neutros (invertidos) ---------------------------------------------------
|
|
77
|
+
--c-neutral-50: #0F1117;
|
|
78
|
+
--c-neutral-100: #181B24;
|
|
79
|
+
--c-neutral-200: #22263A;
|
|
80
|
+
--c-neutral-300: #363B55;
|
|
81
|
+
--c-neutral-400: #5C6280;
|
|
82
|
+
--c-neutral-500: #8C91A8;
|
|
83
|
+
--c-neutral-600: #C0C6D8;
|
|
84
|
+
--c-neutral-700: #DDE1EE;
|
|
85
|
+
--c-neutral-800: #ECEEF5;
|
|
86
|
+
--c-neutral-900: #F5F6FA;
|
|
87
|
+
|
|
88
|
+
// --- Primária ---------------------------------------------------------------
|
|
89
|
+
--c-primary-300: #0E2A45;
|
|
90
|
+
--c-primary-400: #0B5C9C;
|
|
91
|
+
--c-primary-500: #29A8F5;
|
|
92
|
+
--c-primary-600: #74CCFA;
|
|
93
|
+
--c-primary-700: #BFE9FD;
|
|
94
|
+
|
|
95
|
+
// --- Danger -----------------------------------------------------------------
|
|
96
|
+
--c-danger-300: #3D0A0A;
|
|
97
|
+
--c-danger-400: #C0372E;
|
|
98
|
+
--c-danger-500: #F26F6F;
|
|
99
|
+
--c-danger-600: #F58888;
|
|
100
|
+
--c-danger-700: #F9A0A0;
|
|
101
|
+
|
|
102
|
+
// --- Alert ------------------------------------------------------------------
|
|
103
|
+
--c-alert-300: #3A2000;
|
|
104
|
+
--c-alert-400: #B87500;
|
|
105
|
+
--c-alert-500: #FFCC55;
|
|
106
|
+
--c-alert-600: #FFD56B;
|
|
107
|
+
--c-alert-700: #FFDE80;
|
|
108
|
+
|
|
109
|
+
// --- Info -------------------------------------------------------------------
|
|
110
|
+
--c-info-300: #0E2A45;
|
|
111
|
+
--c-info-400: #0B5C9C;
|
|
112
|
+
--c-info-500: #29A8F5;
|
|
113
|
+
|
|
114
|
+
// --- Success ----------------------------------------------------------------
|
|
115
|
+
--c-success-300: #0A2B05;
|
|
116
|
+
--c-success-400: #277A20;
|
|
117
|
+
--c-success-500: #6DD462;
|
|
118
|
+
--c-success-600: #7EDD75;
|
|
119
|
+
--c-success-700: #90E688;
|
|
120
|
+
|
|
121
|
+
// --- Prime Modern dark ------------------------------------------------------
|
|
122
|
+
&.tc-prime-modern {
|
|
123
|
+
--c-primary-300: #1A0F40;
|
|
124
|
+
--c-primary-400: #4B2FD4;
|
|
125
|
+
--c-primary-500: #9580FF;
|
|
126
|
+
--c-primary-600: #C0B4FF;
|
|
127
|
+
--c-primary-700: #E4DEFF;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
// =============================================================================
|
|
132
|
+
// Mapa SCSS — referencia os tokens --c-* para geração de utilitários
|
|
133
|
+
// =============================================================================
|
|
134
|
+
$colors: (
|
|
135
|
+
"primary": (
|
|
136
|
+
"300": var(--c-primary-300),
|
|
137
|
+
"400": var(--c-primary-400),
|
|
138
|
+
"500": var(--c-primary-500),
|
|
139
|
+
"600": var(--c-primary-600),
|
|
140
|
+
"700": var(--c-primary-700),
|
|
141
|
+
),
|
|
142
|
+
"neutral": (
|
|
143
|
+
"50": var(--c-neutral-50),
|
|
144
|
+
"100": var(--c-neutral-100),
|
|
145
|
+
"200": var(--c-neutral-200),
|
|
146
|
+
"300": var(--c-neutral-300),
|
|
147
|
+
"400": var(--c-neutral-400),
|
|
148
|
+
"500": var(--c-neutral-500),
|
|
149
|
+
"600": var(--c-neutral-600),
|
|
150
|
+
"700": var(--c-neutral-700),
|
|
151
|
+
"800": var(--c-neutral-800),
|
|
152
|
+
"900": var(--c-neutral-900),
|
|
153
|
+
),
|
|
154
|
+
"danger": (
|
|
155
|
+
"300": var(--c-danger-300),
|
|
156
|
+
"400": var(--c-danger-400),
|
|
157
|
+
"500": var(--c-danger-500),
|
|
158
|
+
"600": var(--c-danger-600),
|
|
159
|
+
"700": var(--c-danger-700),
|
|
160
|
+
),
|
|
161
|
+
"alert": (
|
|
162
|
+
"300": var(--c-alert-300),
|
|
163
|
+
"400": var(--c-alert-400),
|
|
164
|
+
"500": var(--c-alert-500),
|
|
165
|
+
"600": var(--c-alert-600),
|
|
166
|
+
"700": var(--c-alert-700),
|
|
167
|
+
),
|
|
168
|
+
"info": (
|
|
169
|
+
"300": var(--c-info-300),
|
|
170
|
+
"400": var(--c-info-400),
|
|
171
|
+
"500": var(--c-info-500),
|
|
172
|
+
),
|
|
173
|
+
"success": (
|
|
174
|
+
"300": var(--c-success-300),
|
|
175
|
+
"400": var(--c-success-400),
|
|
176
|
+
"500": var(--c-success-500),
|
|
177
|
+
"600": var(--c-success-600),
|
|
178
|
+
"700": var(--c-success-700),
|
|
179
|
+
),
|
|
180
|
+
);
|
|
181
|
+
|
|
182
|
+
// =============================================================================
|
|
183
|
+
// Utilitários gerados — .text-{color}-{shade} .bg-{color}-{shade}
|
|
184
|
+
// .border-{color}-{shade}
|
|
185
|
+
// =============================================================================
|
|
186
|
+
@each $color, $shades in $colors {
|
|
187
|
+
@each $shade, $value in $shades {
|
|
188
|
+
.text-#{$color}-#{$shade} { color: $value; }
|
|
189
|
+
.bg-#{$color}-#{$shade} { background-color: $value; }
|
|
190
|
+
.border-#{$color}-#{$shade} { border-color: $value; }
|
|
191
|
+
}
|
|
192
|
+
}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
// =============================================================================
|
|
2
|
+
// Claus — tc-form-control
|
|
3
|
+
// Uso: <input class="tc-form-control" type="text" />
|
|
4
|
+
// =============================================================================
|
|
5
|
+
|
|
6
|
+
.tc-form-control {
|
|
7
|
+
border: 1px solid var(--c-neutral-400);
|
|
8
|
+
border-radius: var(--bor-radius-pill);
|
|
9
|
+
color: var(--c-neutral-700);
|
|
10
|
+
display: inline-block;
|
|
11
|
+
font-family: var(--f-family);
|
|
12
|
+
font-size: var(--f-size-14);
|
|
13
|
+
line-height: var(--l-height-20);
|
|
14
|
+
outline: none;
|
|
15
|
+
height: var(--size-40);
|
|
16
|
+
transition: .2s ease;
|
|
17
|
+
padding: 0 var(--size-16);
|
|
18
|
+
max-width: 100%;
|
|
19
|
+
width: 100%;
|
|
20
|
+
background-color: var(--c-neutral-50);
|
|
21
|
+
box-sizing: border-box;
|
|
22
|
+
|
|
23
|
+
&::placeholder {
|
|
24
|
+
color: var(--c-neutral-400);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
&:hover:not(:disabled):not(.tc-form-control--error) {
|
|
28
|
+
border-color: var(--c-neutral-500);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
&:focus:not(:disabled):not(.tc-form-control--error) {
|
|
32
|
+
border-color: var(--c-primary-500);
|
|
33
|
+
box-shadow: 0 0 0 3px var(--c-primary-300);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
// --- Estado desabilitado ----------------------------------------------------
|
|
37
|
+
&:disabled,
|
|
38
|
+
&[disabled] {
|
|
39
|
+
background-color: var(--c-neutral-100);
|
|
40
|
+
border-color: var(--c-neutral-300);
|
|
41
|
+
color: var(--c-neutral-400);
|
|
42
|
+
cursor: not-allowed;
|
|
43
|
+
opacity: 1;
|
|
44
|
+
|
|
45
|
+
&::placeholder {
|
|
46
|
+
color: var(--c-neutral-300);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
// --- Estado de erro ---------------------------------------------------------
|
|
51
|
+
&--error {
|
|
52
|
+
border-color: var(--c-danger-500);
|
|
53
|
+
background-color: var(--c-danger-300);
|
|
54
|
+
|
|
55
|
+
&:focus {
|
|
56
|
+
border-color: var(--c-danger-500);
|
|
57
|
+
box-shadow: 0 0 0 3px var(--c-danger-300);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
// --- Wrapper com label -------------------------------------------------------
|
|
63
|
+
// Uso: <div class="tc-form-field"> <label> ... <input> </div>
|
|
64
|
+
|
|
65
|
+
.tc-form-field {
|
|
66
|
+
display: flex;
|
|
67
|
+
flex-direction: column;
|
|
68
|
+
gap: 6px;
|
|
69
|
+
|
|
70
|
+
label {
|
|
71
|
+
font-size: var(--f-size-14);
|
|
72
|
+
font-weight: 600;
|
|
73
|
+
color: var(--c-neutral-700);
|
|
74
|
+
line-height: 1;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
.tc-form-hint {
|
|
78
|
+
font-size: 0.75rem;
|
|
79
|
+
color: var(--c-neutral-500);
|
|
80
|
+
margin: 0;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
.tc-form-error {
|
|
84
|
+
font-size: 0.75rem;
|
|
85
|
+
color: var(--c-danger-500);
|
|
86
|
+
margin: 0;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
@use "sass:map";
|
|
2
|
+
@use "./claus-variables.scss";
|
|
3
|
+
|
|
4
|
+
//Width e height
|
|
5
|
+
$sizing: (
|
|
6
|
+
08: var(--gs-8),
|
|
7
|
+
10: var(--gs-10),
|
|
8
|
+
12: var(--gs-12),
|
|
9
|
+
14: var(--gs-14),
|
|
10
|
+
16: var(--gs-16),
|
|
11
|
+
18: var(--gs-18),
|
|
12
|
+
20: var(--gs-20),
|
|
13
|
+
24: var(--gs-24),
|
|
14
|
+
32: var(--gs-32),
|
|
15
|
+
40: var(--gs-40),
|
|
16
|
+
48: var(--gs-48),
|
|
17
|
+
56: var(--gs-56),
|
|
18
|
+
);
|
|
19
|
+
|
|
20
|
+
@each $size, $value in $sizing {
|
|
21
|
+
.h-#{$size} {
|
|
22
|
+
height: $value;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.w-#{$size} {
|
|
26
|
+
width: $value;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
@use "sass:map";
|
|
2
|
+
@use 'sass:meta';
|
|
3
|
+
@use "./claus-variables.scss";
|
|
4
|
+
|
|
5
|
+
//Padding e margin
|
|
6
|
+
|
|
7
|
+
$spacers: (
|
|
8
|
+
"auto": auto,
|
|
9
|
+
"none": var(--gs-none),
|
|
10
|
+
08: var(--gs-8),
|
|
11
|
+
10: var(--gs-10),
|
|
12
|
+
12: var(--gs-12),
|
|
13
|
+
14: var(--gs-14),
|
|
14
|
+
16: var(--gs-16),
|
|
15
|
+
18: var(--gs-18),
|
|
16
|
+
20: var(--gs-20),
|
|
17
|
+
24: var(--gs-24),
|
|
18
|
+
32: var(--gs-32),
|
|
19
|
+
40: var(--gs-40),
|
|
20
|
+
48: var(--gs-48),
|
|
21
|
+
56: var(--gs-56),
|
|
22
|
+
);
|
|
23
|
+
|
|
24
|
+
@each $size, $space-value in $spacers {
|
|
25
|
+
@each $abbr, $side-value in claus-variables.$sides {
|
|
26
|
+
.p#{$abbr}-#{$size} {
|
|
27
|
+
@if meta.type-of($side-value) == "list" {
|
|
28
|
+
@each $s in $side-value {
|
|
29
|
+
padding-#{$s}: $space-value;
|
|
30
|
+
}
|
|
31
|
+
} @else if $side-value != "" {
|
|
32
|
+
padding-#{$side-value}: $space-value;
|
|
33
|
+
} @else {
|
|
34
|
+
padding: $space-value;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
.m#{$abbr}-#{$size} {
|
|
38
|
+
@if meta.type-of($side-value) == "list" {
|
|
39
|
+
@each $s in $side-value {
|
|
40
|
+
margin-#{$s}: $space-value;
|
|
41
|
+
}
|
|
42
|
+
} @else if $side-value != "" {
|
|
43
|
+
margin-#{$side-value}: $space-value;
|
|
44
|
+
} @else {
|
|
45
|
+
margin: $space-value;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|