@dev-tcloud/tcloud-ui 6.14.3 → 6.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 (92) hide show
  1. package/docs/tcloud-ui-accordion.md +345 -0
  2. package/docs/tcloud-ui-actions.md +88 -0
  3. package/docs/tcloud-ui-alert-banner.md +104 -0
  4. package/docs/tcloud-ui-array-to-text.md +361 -0
  5. package/docs/tcloud-ui-breadcrumb.md +103 -0
  6. package/docs/tcloud-ui-bytes.md +109 -0
  7. package/docs/tcloud-ui-calendar.md +387 -0
  8. package/docs/tcloud-ui-card-accordion.md +266 -0
  9. package/docs/tcloud-ui-card-title.md +47 -0
  10. package/docs/tcloud-ui-card.md +40 -0
  11. package/docs/tcloud-ui-choice-issues.md +59 -0
  12. package/docs/tcloud-ui-cnpj.md +102 -0
  13. package/docs/tcloud-ui-container.md +171 -0
  14. package/docs/tcloud-ui-cpf.md +102 -0
  15. package/docs/tcloud-ui-currency.md +271 -0
  16. package/docs/tcloud-ui-data-list.md +91 -0
  17. package/docs/tcloud-ui-datebr.md +139 -0
  18. package/docs/tcloud-ui-datepicker-time.md +191 -0
  19. package/docs/tcloud-ui-datepicker.md +186 -0
  20. package/docs/tcloud-ui-dropdown-multi.md +444 -0
  21. package/docs/tcloud-ui-dropdown.md +369 -0
  22. package/docs/tcloud-ui-el-copy.md +113 -0
  23. package/docs/tcloud-ui-empty-content.md +412 -0
  24. package/docs/tcloud-ui-faq.md +496 -0
  25. package/docs/tcloud-ui-filter-bar.md +86 -0
  26. package/docs/tcloud-ui-filters.md +337 -0
  27. package/docs/tcloud-ui-hover-parent.md +467 -0
  28. package/docs/tcloud-ui-icon-button.md +104 -0
  29. package/docs/tcloud-ui-input-container.md +520 -0
  30. package/docs/tcloud-ui-input-password.md +258 -0
  31. package/docs/tcloud-ui-input-search.md +314 -0
  32. package/docs/tcloud-ui-label-token.md +286 -0
  33. package/docs/tcloud-ui-legend.md +72 -0
  34. package/docs/tcloud-ui-line-step-circle.md +98 -0
  35. package/docs/tcloud-ui-line-step-title.md +194 -0
  36. package/docs/tcloud-ui-linha-logo.md +550 -0
  37. package/docs/tcloud-ui-loading.md +88 -0
  38. package/docs/tcloud-ui-message.md +539 -0
  39. package/docs/tcloud-ui-modal.md +196 -0
  40. package/docs/tcloud-ui-monthname.md +123 -0
  41. package/docs/tcloud-ui-multi-input.md +290 -0
  42. package/docs/tcloud-ui-multi-select.md +311 -0
  43. package/docs/tcloud-ui-multiples-values.md +157 -0
  44. package/docs/tcloud-ui-not-found.md +88 -0
  45. package/docs/tcloud-ui-number-step.md +134 -0
  46. package/docs/tcloud-ui-pagination.md +579 -0
  47. package/docs/tcloud-ui-progress-bar.md +65 -0
  48. package/docs/tcloud-ui-radio.md +83 -0
  49. package/docs/tcloud-ui-reorder-items.md +418 -0
  50. package/docs/tcloud-ui-respective.md +167 -0
  51. package/docs/tcloud-ui-scroll-box.md +109 -0
  52. package/docs/tcloud-ui-search-bar.md +88 -0
  53. package/docs/tcloud-ui-search-in-object.md +143 -0
  54. package/docs/tcloud-ui-search-input.md +74 -0
  55. package/docs/tcloud-ui-skeleton-loading.md +394 -0
  56. package/docs/tcloud-ui-slide-toggle.md +210 -0
  57. package/docs/tcloud-ui-statusinfo.md +138 -0
  58. package/docs/tcloud-ui-tab-group.md +376 -0
  59. package/docs/tcloud-ui-tab-menu.md +109 -0
  60. package/docs/tcloud-ui-table.md +96 -0
  61. package/docs/tcloud-ui-tag.md +379 -0
  62. package/docs/tcloud-ui-tc-badge.md +168 -0
  63. package/docs/tcloud-ui-tc-btn.md +189 -0
  64. package/docs/tcloud-ui-tc-colors.md +204 -0
  65. package/docs/tcloud-ui-tc-form-control.md +200 -0
  66. package/docs/tcloud-ui-tc-text.md +139 -0
  67. package/docs/tcloud-ui-tc-title.md +118 -0
  68. package/docs/tcloud-ui-tcloud-form.md +55 -0
  69. package/docs/tcloud-ui-toast.md +83 -0
  70. package/docs/tcloud-ui-tooltip.md +88 -0
  71. package/docs/tcloud-ui-topology.md +232 -0
  72. package/docs/tcloud-ui-upload-area.md +195 -0
  73. package/docs/tcloud-ui-welcome.md +112 -0
  74. package/docs/tcloud-ui-wizard-steps.md +103 -0
  75. package/js/tcloud-ui-app.js +11 -0
  76. package/package.json +1 -1
  77. package/scss/tcloud-ui/styles/_claus-badge.scss +117 -0
  78. package/scss/tcloud-ui/styles/_claus-btn.scss +207 -0
  79. package/scss/tcloud-ui/styles/_claus-card.scss +12 -0
  80. package/scss/tcloud-ui/styles/_claus-colors.scss +192 -0
  81. package/scss/tcloud-ui/styles/_claus-form.scss +88 -0
  82. package/scss/tcloud-ui/styles/_claus-sizes.scss +28 -0
  83. package/scss/tcloud-ui/styles/_claus-spacers.scss +49 -0
  84. package/scss/tcloud-ui/styles/_claus-themes.scss +36 -0
  85. package/scss/tcloud-ui/styles/_claus-title.scss +24 -0
  86. package/scss/tcloud-ui/styles/_claus-typography.scss +70 -0
  87. package/scss/tcloud-ui/styles/_claus-variables.scss +131 -0
  88. package/scss/tcloud-ui/styles/_colors.scss +123 -0
  89. package/scss/tcloud-ui/styles/_tc-btn.scss +210 -0
  90. package/scss/tcloud-ui/styles/_tc-card.scss +7 -0
  91. package/scss/tcloud-ui/styles/_tc-title.scss +49 -0
  92. package/scss/tcloud-ui/styles.scss +35 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dev-tcloud/tcloud-ui",
3
- "version": "6.14.3",
3
+ "version": "6.17.0",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^19.2.14",
6
6
  "@angular/core": "^19.2.14"
@@ -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
+ }