DHEIVER commited on
Commit
c90443f
·
verified ·
1 Parent(s): 0d080a8

Update style.css

Browse files
Files changed (1) hide show
  1. style.css +183 -137
style.css CHANGED
@@ -1,6 +1,4 @@
1
- /* Melhorias no CSS */
2
  :root {
3
- /* 1. Paleta de cores expandida */
4
  --primary-color: #2563eb;
5
  --primary-dark: #1d4ed8;
6
  --primary-light: #3b82f6;
@@ -11,10 +9,11 @@
11
  --warning-color: #d97706;
12
  --warning-light: #f59e0b;
13
  --background-color: #f8fafc;
 
14
  --text-color: #1e293b;
15
  --text-light: #64748b;
 
16
 
17
- /* 2. Sistema de espaçamento consistente */
18
  --spacing-xs: 0.25rem;
19
  --spacing-sm: 0.5rem;
20
  --spacing-md: 1rem;
@@ -22,104 +21,124 @@
22
  --spacing-xl: 2rem;
23
  }
24
 
25
- /* 3. Dark mode support */
26
- @media (prefers-color-scheme: dark) {
27
- :root {
28
- --background-color: #0f172a;
29
- --text-color: #e2e8f0;
30
- --text-light: #94a3b8;
31
- }
32
  }
33
 
34
- /* 4. Animações melhoradas */
35
- @keyframes slideIn {
36
- from { transform: translateY(-20px); opacity: 0; }
37
- to { transform: translateY(0); opacity: 1; }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
38
  }
39
 
40
- @keyframes fadeIn {
41
- from { opacity: 0; }
42
- to { opacity: 1; }
 
 
 
43
  }
44
 
45
- /* 5. Tipografia responsiva */
46
- html {
47
- font-size: clamp(14px, 1vw + 10px, 18px);
 
48
  }
49
 
50
- /* 6. Melhorias na acessibilidade */
51
- :focus {
52
- outline: 3px solid var(--primary-light);
53
- outline-offset: 2px;
54
  }
55
 
56
- /* 7. Cards com design moderno */
57
  .card {
58
- background: white;
59
  border-radius: 1rem;
60
- box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1);
61
  transition: transform 0.2s, box-shadow 0.2s;
 
62
  }
63
 
64
- .card:hover {
65
- transform: translateY(-2px);
66
- box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1);
67
  }
68
 
69
- /* 8. Upload area mais interativa */
70
  .upload-area {
71
- background-image: linear-gradient(45deg, var(--background-color) 25%, transparent 25%),
72
- linear-gradient(-45deg, var(--background-color) 25%, transparent 25%),
73
- linear-gradient(45deg, transparent 75%, var(--background-color) 75%),
74
- linear-gradient(-45deg, transparent 75%, var(--background-color) 75%);
75
- background-size: 20px 20px;
76
- background-position: 0 0, 0 10px, 10px -10px, -10px 0px;
77
- animation: fadeIn 0.5s ease-out;
78
  }
79
 
80
- /* 9. Loading spinner aprimorado */
81
- .spinner {
82
- background: conic-gradient(from 0deg, var(--primary-color), var(--primary-light));
83
- mask: radial-gradient(farthest-side, transparent calc(100% - 3px), #000 calc(100% - 3px));
84
  }
85
 
86
- /* 10. Tooltips informativos */
87
- [data-tooltip] {
88
- position: relative;
 
 
 
89
  }
90
 
91
- [data-tooltip]:hover::before {
92
- content: attr(data-tooltip);
93
- position: absolute;
94
- bottom: 100%;
95
- left: 50%;
96
- transform: translateX(-50%);
97
- padding: var(--spacing-sm) var(--spacing-md);
98
- background: var(--text-color);
99
- color: white;
100
- border-radius: 4px;
101
- font-size: 0.875rem;
102
- white-space: nowrap;
103
- z-index: 10;
104
  }
105
 
106
- /* 11. Badges de status */
107
- .badge {
108
- display: inline-block;
109
- padding: 0.25em 0.75em;
110
- border-radius: 9999px;
111
- font-size: 0.875em;
112
- font-weight: 500;
113
  }
114
 
115
- .badge-success { background: var(--success-light); color: white; }
116
- .badge-error { background: var(--error-light); color: white; }
117
- .badge-warning { background: var(--warning-light); color: white; }
 
 
 
 
 
 
118
 
119
- /* 12. Progress bars estilizados */
120
  .progress {
121
  height: 8px;
122
- background: #e2e8f0;
123
  border-radius: 4px;
124
  overflow: hidden;
125
  }
@@ -128,111 +147,138 @@ html {
128
  height: 100%;
129
  background: linear-gradient(90deg, var(--primary-light), var(--primary-color));
130
  transition: width 0.3s ease;
 
131
  }
132
 
133
- /* 13. Grid responsivo */
134
- .grid {
135
- display: grid;
 
 
136
  gap: var(--spacing-md);
137
- grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
138
  }
139
 
140
- /* 14. Botões modernos */
141
- .button {
142
- display: inline-flex;
143
- align-items: center;
144
- gap: var(--spacing-sm);
145
- padding: var(--spacing-sm) var(--spacing-md);
146
- border-radius: 8px;
147
- font-weight: 500;
148
- transition: all 0.2s;
149
  }
150
 
151
- .button-primary {
152
- background: var(--primary-color);
153
- color: white;
 
 
154
  }
155
 
156
- .button-primary:hover {
157
- background: var(--primary-dark);
 
158
  }
159
 
160
- /* 15. Scrollbar personalizado */
161
- ::-webkit-scrollbar {
162
- width: 8px;
163
- height: 8px;
164
  }
165
 
166
- ::-webkit-scrollbar-track {
167
- background: #f1f1f1;
 
 
 
 
 
 
168
  }
169
 
170
- ::-webkit-scrollbar-thumb {
171
- background: var(--primary-light);
172
- border-radius: 4px;
173
  }
174
 
175
- /* 16. Form inputs estilizados */
176
- .input {
177
- width: 100%;
178
- padding: var(--spacing-sm) var(--spacing-md);
179
- border: 2px solid #e2e8f0;
180
- border-radius: 8px;
181
- transition: border-color 0.2s;
182
  }
183
 
184
- .input:focus {
185
- border-color: var(--primary-color);
 
 
 
 
 
 
 
 
 
186
  }
187
 
188
- /* 17. Tabelas responsivas */
189
- .table-container {
190
- overflow-x: auto;
191
- margin: var(--spacing-md) 0;
 
 
 
 
 
 
 
 
 
192
  }
193
 
194
- .table {
195
- width: 100%;
196
- border-collapse: collapse;
197
  }
198
 
199
- .table th, .table td {
200
- padding: var(--spacing-sm) var(--spacing-md);
201
- border-bottom: 1px solid #e2e8f0;
 
 
202
  }
203
 
204
- /* 18. Skeleton loading */
205
- .skeleton {
206
- background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
207
- background-size: 200% 100%;
208
- animation: skeleton-loading 1.5s infinite;
 
 
 
 
209
  }
210
 
211
  @keyframes skeleton-loading {
212
- from { background-position: 200% 0; }
213
- to { background-position: -200% 0; }
 
 
 
 
214
  }
215
 
216
- /* 19. Notificações toast */
217
- .toast {
218
- position: fixed;
219
- bottom: var(--spacing-xl);
220
- right: var(--spacing-xl);
221
- padding: var(--spacing-md);
222
- background: white;
223
- border-radius: 8px;
224
- box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1);
225
- animation: slideIn 0.3s ease-out;
226
  }
227
 
228
- /* 20. Media queries para dispositivos diferentes */
229
  @media (max-width: 768px) {
230
  .container {
231
- padding: 0 var(--spacing-md);
232
  }
233
 
234
- .grid {
235
- grid-template-columns: 1fr;
236
  }
237
 
238
  .toast {
 
 
1
  :root {
 
2
  --primary-color: #2563eb;
3
  --primary-dark: #1d4ed8;
4
  --primary-light: #3b82f6;
 
9
  --warning-color: #d97706;
10
  --warning-light: #f59e0b;
11
  --background-color: #f8fafc;
12
+ --card-background: #ffffff;
13
  --text-color: #1e293b;
14
  --text-light: #64748b;
15
+ --border-color: #e2e8f0;
16
 
 
17
  --spacing-xs: 0.25rem;
18
  --spacing-sm: 0.5rem;
19
  --spacing-md: 1rem;
 
21
  --spacing-xl: 2rem;
22
  }
23
 
24
+ /* Base Styles */
25
+ * {
26
+ margin: 0;
27
+ padding: 0;
28
+ box-sizing: border-box;
 
 
29
  }
30
 
31
+ body {
32
+ font-family: system-ui, -apple-system, sans-serif;
33
+ background-color: var(--background-color);
34
+ color: var(--text-color);
35
+ line-height: 1.5;
36
+ transition: background-color 0.3s, color 0.3s;
37
+ }
38
+
39
+ /* Dark Mode */
40
+ body.dark-theme {
41
+ --background-color: #0f172a;
42
+ --card-background: #1e293b;
43
+ --text-color: #e2e8f0;
44
+ --text-light: #94a3b8;
45
+ --border-color: #334155;
46
+ }
47
+
48
+ /* Layout */
49
+ .app {
50
+ min-height: 100vh;
51
+ display: flex;
52
+ flex-direction: column;
53
+ }
54
+
55
+ .container {
56
+ width: 100%;
57
+ max-width: 1200px;
58
+ margin: 0 auto;
59
+ padding: 0 var(--spacing-md);
60
  }
61
 
62
+ /* Header */
63
+ .header {
64
+ background-color: var(--card-background);
65
+ border-bottom: 1px solid var(--border-color);
66
+ padding: var(--spacing-md) 0;
67
+ margin-bottom: var(--spacing-xl);
68
  }
69
 
70
+ .nav {
71
+ display: flex;
72
+ justify-content: space-between;
73
+ align-items: center;
74
  }
75
 
76
+ .title {
77
+ font-size: 1.5rem;
78
+ font-weight: 600;
 
79
  }
80
 
81
+ /* Cards */
82
  .card {
83
+ background-color: var(--card-background);
84
  border-radius: 1rem;
85
+ box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
86
  transition: transform 0.2s, box-shadow 0.2s;
87
+ border: 1px solid var(--border-color);
88
  }
89
 
90
+ /* Upload Area */
91
+ .upload-container {
92
+ margin-bottom: var(--spacing-xl);
93
  }
94
 
 
95
  .upload-area {
96
+ padding: var(--spacing-xl);
97
+ text-align: center;
98
+ border: 2px dashed var(--border-color);
99
+ border-radius: 0.5rem;
100
+ transition: all 0.3s ease;
 
 
101
  }
102
 
103
+ .upload-area.drag-over {
104
+ border-color: var(--primary-color);
105
+ background-color: rgba(37, 99, 235, 0.1);
 
106
  }
107
 
108
+ .upload-label {
109
+ cursor: pointer;
110
+ display: flex;
111
+ flex-direction: column;
112
+ align-items: center;
113
+ gap: var(--spacing-md);
114
  }
115
 
116
+ .upload-icon {
117
+ width: 4rem;
118
+ height: 4rem;
119
+ border: 2px solid var(--text-light);
120
+ border-radius: 50%;
121
+ transition: border-color 0.3s;
 
 
 
 
 
 
 
122
  }
123
 
124
+ .upload-text {
125
+ font-size: 1.125rem;
126
+ color: var(--text-color);
 
 
 
 
127
  }
128
 
129
+ .upload-info {
130
+ color: var(--text-light);
131
+ font-size: 0.875rem;
132
+ }
133
+
134
+ /* Progress Bar */
135
+ .progress-container {
136
+ margin: var(--spacing-md) 0;
137
+ }
138
 
 
139
  .progress {
140
  height: 8px;
141
+ background-color: var(--border-color);
142
  border-radius: 4px;
143
  overflow: hidden;
144
  }
 
147
  height: 100%;
148
  background: linear-gradient(90deg, var(--primary-light), var(--primary-color));
149
  transition: width 0.3s ease;
150
+ width: 0;
151
  }
152
 
153
+ /* Loading */
154
+ .loading {
155
+ display: flex;
156
+ flex-direction: column;
157
+ align-items: center;
158
  gap: var(--spacing-md);
159
+ margin: var(--spacing-xl) 0;
160
  }
161
 
162
+ .spinner {
163
+ width: 3rem;
164
+ height: 3rem;
165
+ border: 3px solid var(--border-color);
166
+ border-top-color: var(--primary-color);
167
+ border-radius: 50%;
168
+ animation: spin 1s linear infinite;
 
 
169
  }
170
 
171
+ /* Results Grid */
172
+ .results-grid {
173
+ display: grid;
174
+ gap: var(--spacing-xl);
175
+ margin-top: var(--spacing-xl);
176
  }
177
 
178
+ /* Compliance Report */
179
+ .compliance-report {
180
+ padding: var(--spacing-lg);
181
  }
182
 
183
+ .report-title {
184
+ margin-bottom: var(--spacing-lg);
185
+ font-size: 1.25rem;
186
+ font-weight: 600;
187
  }
188
 
189
+ /* Badges */
190
+ .badge {
191
+ display: inline-flex;
192
+ align-items: center;
193
+ padding: 0.25em 0.75em;
194
+ border-radius: 9999px;
195
+ font-size: 0.875rem;
196
+ font-weight: 500;
197
  }
198
 
199
+ .badge-success {
200
+ background-color: var(--success-color);
201
+ color: white;
202
  }
203
 
204
+ .badge-error {
205
+ background-color: var(--error-color);
206
+ color: white;
 
 
 
 
207
  }
208
 
209
+ /* Toast */
210
+ .toast {
211
+ position: fixed;
212
+ bottom: var(--spacing-xl);
213
+ right: var(--spacing-xl);
214
+ padding: var(--spacing-md) var(--spacing-lg);
215
+ background-color: var(--card-background);
216
+ border-radius: 0.5rem;
217
+ box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
218
+ animation: slideIn 0.3s ease-out;
219
+ z-index: 50;
220
  }
221
 
222
+ /* Skeleton Loading */
223
+ .skeleton {
224
+ background: linear-gradient(
225
+ 90deg,
226
+ var(--border-color) 25%,
227
+ var(--card-background) 50%,
228
+ var(--border-color) 75%
229
+ );
230
+ background-size: 200% 100%;
231
+ animation: skeleton-loading 1.5s infinite;
232
+ border-radius: 4px;
233
+ height: 1rem;
234
+ margin-bottom: var(--spacing-sm);
235
  }
236
 
237
+ .skeleton-line {
238
+ height: 1rem;
239
+ margin-bottom: var(--spacing-sm);
240
  }
241
 
242
+ /* Animations */
243
+ @keyframes spin {
244
+ to {
245
+ transform: rotate(360deg);
246
+ }
247
  }
248
 
249
+ @keyframes slideIn {
250
+ from {
251
+ transform: translateY(100%);
252
+ opacity: 0;
253
+ }
254
+ to {
255
+ transform: translateY(0);
256
+ opacity: 1;
257
+ }
258
  }
259
 
260
  @keyframes skeleton-loading {
261
+ from {
262
+ background-position: 200% 0;
263
+ }
264
+ to {
265
+ background-position: -200% 0;
266
+ }
267
  }
268
 
269
+ /* Utilities */
270
+ .hidden {
271
+ display: none !important;
 
 
 
 
 
 
 
272
  }
273
 
274
+ /* Responsive */
275
  @media (max-width: 768px) {
276
  .container {
277
+ padding: 0 var(--spacing-sm);
278
  }
279
 
280
+ .upload-area {
281
+ padding: var(--spacing-lg);
282
  }
283
 
284
  .toast {