PluginProbe
Outrank / trunk
Outrank vtrunk
1.0.10 trunk 1.0.0 1.0.1 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.0.7 1.0.8 1.0.9
outrank / css / manage.css

manage.css in Outrank trunk, at css/manage.css

408 lines 6.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 .outrank-loading {
2 display: flex;
3 align-items: center;
4 gap: 10px;
5 margin-top: 12px;
6 padding: 10px 16px;
7 background: #f1f1f1;
8 border-left: 4px solid #2271b1;
9 border-radius: 4px;
10 font-size: 14px;
11 }
12
13 .outrank-loading .spinner {
14 border: 3px solid #f3f3f3;
15 border-top: 3px solid #2271b1;
16 border-radius: 50%;
17 width: 18px;
18 height: 18px;
19 animation: spin 1s linear infinite;
20 }
21
22 .hidden {
23 display: none;
24 }
25
26 @keyframes spin {
27 0% {
28 transform: rotate(0deg);
29 }
30 100% {
31 transform: rotate(360deg);
32 }
33 }
34
35 .outrank-settings-container {
36 max-width: 900px;
37 margin: 0 auto;
38 padding: 2rem;
39 font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen,
40 Ubuntu, Cantarell, sans-serif;
41 min-height: 100vh;
42 box-sizing: border-box;
43 }
44
45 .outrank-settings-card {
46 background: rgba(255, 255, 255, 0.95);
47 backdrop-filter: blur(20px);
48 border-radius: 24px;
49 box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1);
50 border: 1px solid rgba(255, 255, 255, 0.2);
51 overflow: hidden;
52 animation: slideUp 0.6s ease-out;
53 }
54
55 @keyframes slideUp {
56 from {
57 opacity: 0;
58 transform: translateY(30px);
59 }
60 to {
61 opacity: 1;
62 transform: translateY(0);
63 }
64 }
65
66 .outrank-settings-header {
67 padding: 2.5rem;
68 background: #882aff;
69 color: white;
70 text-align: center;
71 position: relative;
72 overflow: hidden;
73 }
74
75 .settings-title {
76 margin: 0 0 2rem 0;
77 font-size: 2.5rem;
78 font-weight: 700;
79 position: relative;
80 color: white;
81 z-index: 1;
82 }
83
84 .settings-subtitle {
85 margin: 0;
86 font-size: 1.1rem;
87 opacity: 0.9;
88 position: relative;
89 z-index: 1;
90 }
91
92 .outrank-success-notice {
93 margin: 2rem 2.5rem 0;
94 padding: 0;
95 background: none;
96 border: none;
97 }
98
99 .notice-content {
100 background: linear-gradient(135deg, #10b981 0%, #059669 100%);
101 color: white;
102 padding: 1.5rem;
103 border-radius: 16px;
104 position: fixed;
105 top: 3rem;
106 right: 2rem;
107 z-index: 1000;
108 align-items: flex-start;
109 gap: 1rem;
110 font-weight: 500;
111 box-shadow: 0 8px 25px rgba(16, 185, 129, 0.3);
112 animation: slideIn 0.8s ease-out;
113 }
114
115 @keyframes slideIn {
116 from {
117 opacity: 0;
118 transform: translateX(-30px);
119 }
120 to {
121 opacity: 1;
122 transform: translateX(0);
123 }
124 }
125
126 .notice-icon {
127 width: 24px;
128 height: 24px;
129 flex-shrink: 0;
130 margin-top: 2px;
131 }
132
133 .notice-title {
134 font-size: 1.1rem;
135 font-weight: 600;
136 margin-bottom: 0.25rem;
137 color: white;
138 }
139
140 .notice-subtitle {
141 font-size: 0.9rem;
142 opacity: 0.9;
143 }
144
145 .settings-form-container {
146 padding: 3rem 2.5rem;
147 }
148
149 .settings-form {
150 background: linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%);
151 border-radius: 20px;
152 padding: 2.5rem;
153 border: 1px solid #e2e8f0;
154 box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);
155 margin-bottom: 2rem;
156 }
157
158 .field-group {
159 margin-bottom: 2rem;
160 }
161
162 .field-label {
163 display: block;
164 font-size: 1.1rem;
165 font-weight: 600;
166 color: #1f2937;
167 margin-bottom: 0.75rem;
168 position: relative;
169 }
170
171 .field-input {
172 width: 100%;
173 padding: 1rem 1.25rem;
174 border: 2px solid #e5e7eb;
175 border-radius: 12px;
176 font-size: 1rem;
177 transition: all 0.3s ease;
178 background: white;
179 box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
180 box-sizing: border-box;
181 }
182
183 .field-input:focus {
184 outline: none;
185 border-color: #4f46e5;
186 box-shadow: 0 0 0 3px rgba(79, 70, 229, 0.1);
187 transform: translateY(-1px);
188 }
189
190 .field-description {
191 margin-top: 0.5rem;
192 font-size: 0.9rem;
193 color: #6b7280;
194 display: flex;
195 align-items: center;
196 gap: 0.5rem;
197 }
198
199 /* .field-description::before {
200 content: "💡";
201 font-size: 1rem;
202 } */
203
204 .save-button {
205 background: white;
206 border: 2px solid #4f46e5;
207 color: #4f46e5;
208 padding: 1rem 2.5rem;
209 border-radius: 50px;
210 font-size: 1.1rem;
211 font-weight: 600;
212 cursor: pointer;
213 transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
214 box-shadow: 0 4px 15px rgba(79, 70, 229, 0.1);
215 position: relative;
216 overflow: hidden;
217 display: flex;
218 align-items: center;
219 gap: 0.5rem;
220 }
221
222 .save-button::before {
223 content: "";
224 position: absolute;
225 top: 0;
226 left: -100%;
227 width: 100%;
228 height: 100%;
229 background: linear-gradient(
230 90deg,
231 transparent,
232 rgba(79, 70, 229, 0.1),
233 transparent
234 );
235 transition: left 0.5s;
236 }
237
238 .save-button:hover {
239 transform: translateY(-2px);
240 box-shadow: 0 8px 25px rgba(79, 70, 229, 0.2);
241 }
242
243 .save-button:hover::before {
244 left: 100%;
245 }
246
247 .save-button:active {
248 transform: translateY(0);
249 }
250
251 .sync-button {
252 background: linear-gradient(135deg, #4f46e5 0%, #7c3aed 100%);
253 border: none;
254 color: white;
255 padding: 1rem 2.5rem;
256 border-radius: 50px;
257 font-size: 1.1rem;
258 font-weight: 600;
259 cursor: pointer;
260 transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
261 box-shadow: 0 4px 15px rgba(79, 70, 229, 0.4);
262 position: relative;
263 overflow: hidden;
264 display: flex;
265 align-items: center;
266 gap: 0.5rem;
267 }
268
269 .sync-button::before {
270 content: "";
271 position: absolute;
272 top: 0;
273 left: -100%;
274 width: 100%;
275 height: 100%;
276 background: linear-gradient(
277 90deg,
278 transparent,
279 rgba(255, 255, 255, 0.2),
280 transparent
281 );
282 transition: left 0.5s;
283 }
284
285 .sync-button:hover {
286 transform: translateY(-2px);
287 box-shadow: 0 8px 25px rgba(79, 70, 229, 0.4);
288 }
289
290 .sync-button:hover::before {
291 left: 100%;
292 }
293
294 .sync-button:active {
295 transform: translateY(0);
296 }
297
298 .outrank-fetch-btn svg {
299 display: inline-block;
300 vertical-align: middle;
301 }
302
303 .divider {
304 height: 1px;
305 background: linear-gradient(90deg, transparent, #e5e7eb, transparent);
306 margin: 2rem 0;
307 border: none;
308 }
309
310 @keyframes spin {
311 from {
312 transform: rotate(0deg);
313 }
314 to {
315 transform: rotate(360deg);
316 }
317 }
318
319 .sync-title {
320 font-size: 1.5rem;
321 font-weight: 700;
322 color: #1e40af;
323 margin: 0 0 1rem 0;
324 display: flex;
325 align-items: center;
326 gap: 0.75rem;
327 }
328
329 .sync-title::before {
330 content: "";
331 font-size: 1.8rem;
332 }
333
334 .sync-description {
335 color: #1e40af;
336 font-size: 1rem;
337 line-height: 1.6;
338 margin: 0;
339 }
340
341 .feature-grid {
342 display: grid;
343 grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
344 gap: 1.5rem;
345 margin-top: 2rem;
346 }
347
348 .feature-card {
349 background: white;
350 padding: 1.5rem;
351 border-radius: 12px;
352 border: 1px solid #e5e7eb;
353 box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
354 text-align: center;
355 transition: transform 0.2s ease;
356 }
357
358 .feature-card:hover {
359 transform: translateY(-2px);
360 box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
361 }
362
363 .feature-icon {
364 font-size: 2.5rem;
365 margin-bottom: 1rem;
366 display: block;
367 }
368
369 .feature-title {
370 font-size: 1.1rem;
371 font-weight: 600;
372 color: #1f2937;
373 margin: 0 0 0.5rem 0;
374 }
375
376 .feature-text {
377 font-size: 0.9rem;
378 color: #6b7280;
379 margin: 0;
380 }
381
382 @media (max-width: 768px) {
383 .outrank-settings-container {
384 padding: 1rem;
385 }
386
387 .outrank-settings-header {
388 padding: 2rem 1.5rem;
389 }
390
391 .settings-title {
392 font-size: 2rem;
393 }
394
395 .settings-form-container {
396 padding: 2rem 1.5rem;
397 }
398
399 .settings-form,
400 .sync-info-section {
401 padding: 1.5rem;
402 }
403
404 .feature-grid {
405 grid-template-columns: 1fr;
406 }
407 }
408