PluginProbe
Blockenberg — 600+ Advanced Gutenberg Blocks & AI Agent for WordPress Block Editor / 2.0.7
Blockenberg — 600+ Advanced Gutenberg Blocks & AI Agent for WordPress Block Editor v2.0.7
2.0.13 2.0.12 2.0.11 2.0.10 2.0.9 trunk 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.0.8
blockenberg / assets / css / admin-dashboard.css

admin-dashboard.css in Blockenberg — 600+ Advanced Gutenberg Blocks & AI Agent for WordPress Block Editor 2.0.7, at assets/css/admin-dashboard.css

615 lines 13.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /* ═══════════════════════════════════════════════════════════════
2 * Blockenberg – Block Manager Dashboard
3 * WordPress.com-inspired modern admin UI
4 * ═══════════════════════════════════════════════════════════════ */
5
6 /* ── Reset & base ───────────────────────────────── */
7 #bkbg-dashboard *,
8 #bkbg-dashboard *::before,
9 #bkbg-dashboard *::after {
10 box-sizing: border-box;
11 }
12
13 .bkbg-dashboard {
14 --bkbg-primary: #3858e9;
15 --bkbg-primary-hover: #1d35b4;
16 --bkbg-primary-light: #eef1fd;
17 --bkbg-success: #00a32a;
18 --bkbg-success-light: #edfaef;
19 --bkbg-danger: #d63638;
20 --bkbg-danger-light: #fcecec;
21 --bkbg-text: #1e1e1e;
22 --bkbg-text-secondary: #646970;
23 --bkbg-border: #e0e0e0;
24 --bkbg-bg: #f0f0f1;
25 --bkbg-card-bg: #fff;
26 --bkbg-radius: 12px;
27 --bkbg-radius-sm: 8px;
28 --bkbg-shadow: 0 1px 3px rgba(0, 0, 0, .04), 0 1px 2px rgba(0, 0, 0, .06);
29 --bkbg-shadow-hover: 0 4px 12px rgba(0, 0, 0, .08);
30 --bkbg-transition: .2s cubic-bezier(.4, 0, .2, 1);
31
32 margin: 0 0 0 -20px;
33 padding: 0;
34 font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
35 background: var(--bkbg-bg);
36 color: var(--bkbg-text);
37 min-height: 100vh;
38 }
39
40 /* ── Header ─────────────────────────────────────── */
41 .bkbg-header {
42 display: flex;
43 align-items: center;
44 justify-content: space-between;
45 gap: 24px;
46 padding: 20px 32px;
47 background: var(--bkbg-card-bg);
48 border-bottom: 1px solid var(--bkbg-border);
49 position: sticky;
50 top: 32px; /* below WP admin bar */
51 z-index: 100;
52 flex-wrap: wrap;
53 }
54
55 .bkbg-header__left {
56 display: flex;
57 align-items: center;
58 gap: 16px;
59 }
60
61 .bkbg-header__logo {
62 width: 48px;
63 height: 48px;
64 border-radius: var(--bkbg-radius-sm);
65 background: var(--bkbg-primary);
66 display: flex;
67 align-items: center;
68 justify-content: center;
69 color: #fff;
70 flex-shrink: 0;
71 }
72
73 .bkbg-header__logo .dashicons {
74 font-size: 24px;
75 width: 24px;
76 height: 24px;
77 }
78
79 .bkbg-header__text h1 {
80 margin: 0;
81 padding: 0;
82 font-size: 22px;
83 font-weight: 700;
84 letter-spacing: -.3px;
85 color: var(--bkbg-text);
86 line-height: 1.3;
87 }
88
89 .bkbg-header__subtitle {
90 margin: 2px 0 0;
91 font-size: 13px;
92 color: var(--bkbg-text-secondary);
93 line-height: 1.4;
94 }
95
96 .bkbg-header__right {
97 display: flex;
98 align-items: center;
99 gap: 12px;
100 flex-wrap: wrap;
101 }
102
103 /* ── Search ─────────────────────────────────────── */
104 .bkbg-search-wrap {
105 position: relative;
106 display: flex;
107 align-items: center;
108 }
109
110 .bkbg-search-wrap .dashicons {
111 position: absolute;
112 left: 12px;
113 top: 50%;
114 transform: translateY(-50%);
115 color: var(--bkbg-text-secondary);
116 font-size: 20px;
117 width: 20px;
118 height: 20px;
119 line-height: 20px;
120 pointer-events: none;
121 }
122
123 .bkbg-search {
124 min-width: 260px;
125 height: 40px;
126 padding: 0 16px 0 40px;
127 border: 1px solid var(--bkbg-border);
128 border-radius: 20px;
129 font-size: 13px;
130 background: var(--bkbg-bg);
131 color: var(--bkbg-text);
132 transition: border var(--bkbg-transition), box-shadow var(--bkbg-transition);
133 outline: none;
134 }
135
136 .bkbg-search:focus {
137 border-color: var(--bkbg-primary);
138 box-shadow: 0 0 0 2px rgba(56, 88, 233, .15);
139 background: #fff;
140 }
141
142 /* ── Buttons ────────────────────────────────────── */
143 .bkbg-btn {
144 display: inline-flex;
145 align-items: center;
146 gap: 6px;
147 height: 40px;
148 padding: 0 20px;
149 font-size: 13px;
150 font-weight: 600;
151 border-radius: 8px;
152 border: none;
153 cursor: pointer;
154 transition: all var(--bkbg-transition);
155 white-space: nowrap;
156 line-height: 1;
157 }
158
159 .bkbg-btn .dashicons {
160 font-size: 16px;
161 width: 16px;
162 height: 16px;
163 }
164
165 .bkbg-btn--primary {
166 background: var(--bkbg-primary);
167 color: #fff;
168 }
169
170 .bkbg-btn--primary:hover {
171 background: var(--bkbg-primary-hover);
172 transform: translateY(-1px);
173 box-shadow: 0 4px 12px rgba(56, 88, 233, .25);
174 }
175
176 .bkbg-btn--primary:active {
177 transform: translateY(0);
178 }
179
180 .bkbg-btn--primary.bkbg-btn--saving {
181 opacity: .7;
182 pointer-events: none;
183 }
184
185 .bkbg-btn--ghost {
186 background: transparent;
187 color: var(--bkbg-primary);
188 border: 1px solid var(--bkbg-border);
189 height: 32px;
190 padding: 0 14px;
191 font-size: 12px;
192 font-weight: 500;
193 border-radius: 6px;
194 }
195
196 .bkbg-btn--ghost:hover {
197 border-color: var(--bkbg-primary);
198 background: var(--bkbg-primary-light);
199 }
200
201 .bkbg-btn--danger {
202 color: var(--bkbg-danger);
203 }
204
205 .bkbg-btn--danger:hover {
206 border-color: var(--bkbg-danger);
207 background: var(--bkbg-danger-light);
208 }
209
210 /* ── Toolbar / Tabs ─────────────────────────────── */
211 .bkbg-toolbar {
212 display: flex;
213 align-items: center;
214 justify-content: space-between;
215 gap: 16px;
216 padding: 12px 32px;
217 background: var(--bkbg-card-bg);
218 border-bottom: 1px solid var(--bkbg-border);
219 overflow-x: auto;
220 flex-wrap: wrap;
221 }
222
223 .bkbg-toolbar__tabs {
224 display: flex;
225 gap: 4px;
226 flex-wrap: wrap;
227 }
228
229 .bkbg-toolbar__actions {
230 display: flex;
231 gap: 8px;
232 flex-shrink: 0;
233 }
234
235 .bkbg-tab {
236 display: inline-flex;
237 align-items: center;
238 gap: 6px;
239 padding: 6px 14px;
240 border: none;
241 background: transparent;
242 color: var(--bkbg-text-secondary);
243 font-size: 13px;
244 font-weight: 500;
245 border-radius: 20px;
246 cursor: pointer;
247 transition: all var(--bkbg-transition);
248 white-space: nowrap;
249 line-height: 1.4;
250 }
251
252 .bkbg-tab .dashicons {
253 font-size: 14px;
254 width: 14px;
255 height: 14px;
256 }
257
258 .bkbg-tab:hover {
259 background: var(--bkbg-primary-light);
260 color: var(--bkbg-primary);
261 }
262
263 .bkbg-tab--active {
264 background: var(--bkbg-primary);
265 color: #fff;
266 }
267
268 .bkbg-tab--active:hover {
269 background: var(--bkbg-primary-hover);
270 color: #fff;
271 }
272
273 .bkbg-tab__count {
274 display: inline-flex;
275 align-items: center;
276 justify-content: center;
277 min-width: 22px;
278 height: 18px;
279 padding: 0 6px;
280 border-radius: 9px;
281 font-size: 11px;
282 font-weight: 700;
283 line-height: 1;
284 background: rgba(0, 0, 0, .08);
285 }
286
287 .bkbg-tab--active .bkbg-tab__count {
288 background: rgba(255, 255, 255, .25);
289 color: #fff;
290 }
291
292 /* ── Grid & Categories ──────────────────────────── */
293 .bkbg-grid {
294 padding: 24px 32px 48px;
295 }
296
297 .bkbg-category-section {
298 margin-bottom: 32px;
299 }
300
301 .bkbg-category-section[style*="display: none"] {
302 margin: 0;
303 }
304
305 .bkbg-category-header {
306 display: flex;
307 align-items: center;
308 justify-content: space-between;
309 margin-bottom: 16px;
310 padding-bottom: 12px;
311 border-bottom: 1px solid var(--bkbg-border);
312 }
313
314 .bkbg-category-title {
315 display: flex;
316 align-items: center;
317 gap: 10px;
318 margin: 0;
319 font-size: 15px;
320 font-weight: 700;
321 color: var(--bkbg-text);
322 line-height: 1.3;
323 }
324
325 .bkbg-category-title .dashicons {
326 font-size: 18px;
327 width: 18px;
328 height: 18px;
329 color: var(--bkbg-primary);
330 }
331
332 .bkbg-category-count {
333 display: inline-flex;
334 align-items: center;
335 justify-content: center;
336 min-width: 24px;
337 height: 20px;
338 padding: 0 8px;
339 border-radius: 10px;
340 font-size: 11px;
341 font-weight: 700;
342 background: var(--bkbg-primary-light);
343 color: var(--bkbg-primary);
344 }
345
346 .bkbg-category-actions {
347 display: flex;
348 align-items: center;
349 gap: 4px;
350 }
351
352 .bkbg-cat-toggle {
353 background: none;
354 border: none;
355 color: var(--bkbg-primary);
356 font-size: 12px;
357 font-weight: 500;
358 cursor: pointer;
359 padding: 4px 8px;
360 border-radius: 4px;
361 transition: background var(--bkbg-transition);
362 }
363
364 .bkbg-cat-toggle:hover {
365 background: var(--bkbg-primary-light);
366 }
367
368 .bkbg-cat-toggle[data-action="disable"]:hover {
369 color: var(--bkbg-danger);
370 background: var(--bkbg-danger-light);
371 }
372
373 .bkbg-cat-sep {
374 color: var(--bkbg-border);
375 font-size: 12px;
376 user-select: none;
377 }
378
379 /* ── Block cards ────────────────────────────────── */
380 .bkbg-cards {
381 display: grid;
382 grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
383 gap: 12px;
384 }
385
386 .bkbg-card {
387 display: flex;
388 align-items: center;
389 gap: 12px;
390 padding: 14px 16px;
391 background: var(--bkbg-card-bg);
392 border: 1px solid var(--bkbg-border);
393 border-radius: var(--bkbg-radius-sm);
394 transition: all var(--bkbg-transition);
395 cursor: default;
396 }
397
398 .bkbg-card:hover {
399 box-shadow: var(--bkbg-shadow-hover);
400 border-color: #c8c8c8;
401 }
402
403 .bkbg-card--disabled {
404 opacity: .5;
405 }
406
407 .bkbg-card--disabled:hover {
408 opacity: .7;
409 }
410
411 .bkbg-card--hidden {
412 display: none !important;
413 }
414
415 .bkbg-card__icon {
416 width: 36px;
417 height: 36px;
418 border-radius: 8px;
419 background: var(--bkbg-primary-light);
420 display: flex;
421 align-items: center;
422 justify-content: center;
423 flex-shrink: 0;
424 transition: background var(--bkbg-transition);
425 }
426
427 .bkbg-card__icon .dashicons {
428 font-size: 18px;
429 width: 18px;
430 height: 18px;
431 color: var(--bkbg-primary);
432 transition: color var(--bkbg-transition);
433 }
434
435 .bkbg-card--disabled .bkbg-card__icon {
436 background: var(--bkbg-bg);
437 }
438
439 .bkbg-card--disabled .bkbg-card__icon .dashicons {
440 color: var(--bkbg-text-secondary);
441 }
442
443 .bkbg-card__info {
444 flex: 1;
445 min-width: 0;
446 }
447
448 .bkbg-card__title {
449 display: block;
450 font-size: 13px;
451 font-weight: 600;
452 color: var(--bkbg-text);
453 white-space: nowrap;
454 overflow: hidden;
455 text-overflow: ellipsis;
456 line-height: 1.4;
457 }
458
459 /* ── Toggle switch ──────────────────────────────── */
460 .bkbg-toggle {
461 position: relative;
462 display: inline-block;
463 width: 40px;
464 height: 22px;
465 flex-shrink: 0;
466 cursor: pointer;
467 }
468
469 .bkbg-toggle__input {
470 opacity: 0;
471 width: 0;
472 height: 0;
473 position: absolute;
474 }
475
476 .bkbg-toggle__slider {
477 position: absolute;
478 inset: 0;
479 background: #c3c4c7;
480 border-radius: 22px;
481 transition: all var(--bkbg-transition);
482 }
483
484 .bkbg-toggle__slider::before {
485 content: '';
486 position: absolute;
487 width: 16px;
488 height: 16px;
489 left: 3px;
490 top: 3px;
491 background: #fff;
492 border-radius: 50%;
493 transition: all var(--bkbg-transition);
494 box-shadow: 0 1px 3px rgba(0, 0, 0, .15);
495 }
496
497 .bkbg-toggle__input:checked + .bkbg-toggle__slider {
498 background: var(--bkbg-primary);
499 }
500
501 .bkbg-toggle__input:checked + .bkbg-toggle__slider::before {
502 transform: translateX(18px);
503 }
504
505 .bkbg-toggle__input:focus-visible + .bkbg-toggle__slider {
506 box-shadow: 0 0 0 3px rgba(56, 88, 233, .2);
507 }
508
509 /* ── Toast ──────────────────────────────────────── */
510 .bkbg-toast {
511 position: fixed;
512 bottom: 32px;
513 right: 32px;
514 z-index: 9999;
515 padding: 12px 20px;
516 border-radius: var(--bkbg-radius-sm);
517 font-size: 13px;
518 font-weight: 600;
519 color: #fff;
520 background: var(--bkbg-text);
521 box-shadow: 0 8px 24px rgba(0, 0, 0, .15);
522 transform: translateY(20px);
523 opacity: 0;
524 pointer-events: none;
525 transition: all .3s cubic-bezier(.4, 0, .2, 1);
526 }
527
528 .bkbg-toast--visible {
529 transform: translateY(0);
530 opacity: 1;
531 pointer-events: auto;
532 }
533
534 .bkbg-toast--success {
535 background: var(--bkbg-success);
536 }
537
538 .bkbg-toast--error {
539 background: var(--bkbg-danger);
540 }
541
542 /* ── Empty state ────────────────────────────────── */
543 .bkbg-empty {
544 text-align: center;
545 padding: 64px 32px;
546 color: var(--bkbg-text-secondary);
547 }
548
549 .bkbg-empty .dashicons {
550 font-size: 48px;
551 width: 48px;
552 height: 48px;
553 opacity: .3;
554 margin-bottom: 12px;
555 }
556
557 .bkbg-empty p {
558 font-size: 14px;
559 margin: 0;
560 }
561
562 /* ── Unsaved indicator ──────────────────────────── */
563 .bkbg-btn--primary.bkbg-btn--unsaved {
564 animation: bkbg-pulse 1.5s ease-in-out infinite;
565 }
566
567 @keyframes bkbg-pulse {
568 0%, 100% { box-shadow: 0 0 0 0 rgba(56, 88, 233, .3); }
569 50% { box-shadow: 0 0 0 8px rgba(56, 88, 233, 0); }
570 }
571
572 /* ── Responsive ─────────────────────────────────── */
573 @media (max-width: 960px) {
574 .bkbg-header {
575 padding: 16px 20px;
576 }
577
578 .bkbg-toolbar {
579 padding: 12px 20px;
580 }
581
582 .bkbg-grid {
583 padding: 20px 20px 40px;
584 }
585
586 .bkbg-cards {
587 grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
588 }
589
590 .bkbg-search {
591 min-width: 200px;
592 }
593 }
594
595 @media (max-width: 600px) {
596 .bkbg-header {
597 flex-direction: column;
598 align-items: flex-start;
599 gap: 12px;
600 }
601
602 .bkbg-header__right {
603 width: 100%;
604 }
605
606 .bkbg-search {
607 flex: 1;
608 min-width: 0;
609 }
610
611 .bkbg-cards {
612 grid-template-columns: 1fr;
613 }
614 }
615