PluginProbe
Blockenberg — 600+ Advanced Gutenberg Blocks & AI Agent for WordPress Block Editor / 2.0.6
Blockenberg — 600+ Advanced Gutenberg Blocks & AI Agent for WordPress Block Editor v2.0.6
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 / blocks / stats-counter / style.css

style.css in Blockenberg — 600+ Advanced Gutenberg Blocks & AI Agent for WordPress Block Editor 2.0.6, at blocks/stats-counter/style.css

693 lines 14.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /* ========================================
2 Stats Counter Block - Main Styles
3 ======================================== */
4
5 .bkbg-sc-wrap {
6 --bkbg-sc-columns: 4;
7 --bkbg-sc-gap: 32px;
8 --bkbg-sc-icon-size: 48px;
9 --bkbg-sc-icon-bg-size: 80px;
10 --bkbg-sc-icon-radius: 50%;
11 --bkbg-sc-number-size: 48px;
12 --bkbg-sc-number-weight: 700;
13 --bkbg-sc-number-color: #1f2937;
14 --bkbg-sc-label-size: 16px;
15 --bkbg-sc-label-weight: 400;
16 --bkbg-sc-label-color: #6b7280;
17 --bkbg-sc-title-size: 32px;
18 --bkbg-sc-title-color: #1f2937;
19 --bkbg-sc-card-bg: #ffffff;
20 --bkbg-sc-card-border-color: #e5e7eb;
21 --bkbg-sc-card-border-width: 1px;
22 --bkbg-sc-card-radius: 12px;
23 --bkbg-sc-card-padding: 32px;
24 --bkbg-sc-divider-color: #e5e7eb;
25 --bkbg-sc-text-align: center;
26 --bkbg-sc-animation-duration: 2000ms;
27 border: 0;
28 outline: 0;
29 width: 100%;
30 }
31
32 /* Title */
33 .bkbg-sc-title {
34 font-size: var(--bkbg-sc-title-size);
35 font-weight: 700;
36 color: var(--bkbg-sc-title-color);
37 margin-bottom: 32px;
38 text-align: var(--bkbg-sc-text-align);
39 }
40
41 /* List container */
42 .bkbg-sc-list {
43 display: grid;
44 grid-template-columns: repeat(var(--bkbg-sc-columns), 1fr);
45 gap: var(--bkbg-sc-gap);
46 }
47
48 /* Inline layout */
49 .bkbg-sc-inline .bkbg-sc-list {
50 display: flex;
51 flex-wrap: wrap;
52 justify-content: center;
53 }
54
55 .bkbg-sc-inline .bkbg-sc-item {
56 flex: 0 0 auto;
57 }
58
59 /* Stacked layout */
60 .bkbg-sc-stacked .bkbg-sc-list {
61 display: flex;
62 flex-direction: column;
63 }
64
65 /* Individual item */
66 .bkbg-sc-item {
67 position: relative;
68 text-align: var(--bkbg-sc-text-align);
69 }
70
71 /* Item inner */
72 .bkbg-sc-item-inner {
73 display: flex;
74 flex-direction: column;
75 align-items: center;
76 gap: 16px;
77 }
78
79 .bkbg-sc-item-inner--left {
80 flex-direction: row;
81 text-align: left;
82 }
83
84 .bkbg-sc-item-inner--right {
85 flex-direction: row-reverse;
86 text-align: right;
87 }
88
89 .bkbg-sc-item-inner--top {
90 flex-direction: column;
91 }
92
93 /* Text align for horizontal layouts */
94 .bkbg-sc-icon-left .bkbg-sc-item {
95 text-align: left;
96 }
97
98 .bkbg-sc-icon-right .bkbg-sc-item {
99 text-align: right;
100 }
101
102 .bkbg-sc-icon-left .bkbg-sc-item-inner--left,
103 .bkbg-sc-icon-right .bkbg-sc-item-inner--right {
104 justify-content: flex-start;
105 }
106
107 /* Card style */
108 .bkbg-sc-item--card {
109 background: var(--bkbg-sc-card-bg);
110 border: var(--bkbg-sc-card-border-width) solid var(--bkbg-sc-card-border-color);
111 border-radius: var(--bkbg-sc-card-radius);
112 padding: var(--bkbg-sc-card-padding);
113 }
114
115 .bkbg-sc-item--shadow {
116 box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1);
117 }
118
119 /* Icon */
120 .bkbg-sc-icon {
121 display: flex;
122 align-items: center;
123 justify-content: center;
124 flex-shrink: 0;
125 }
126
127 .bkbg-sc-icon .dashicons {
128 font-size: var(--bkbg-sc-icon-size);
129 width: var(--bkbg-sc-icon-size);
130 height: var(--bkbg-sc-icon-size);
131 line-height: 1;
132 }
133
134 .bkbg-sc-icon--filled {
135 width: var(--bkbg-sc-icon-bg-size);
136 height: var(--bkbg-sc-icon-bg-size);
137 border-radius: var(--bkbg-sc-icon-radius);
138 background: #3b82f6;
139 }
140
141 .bkbg-sc-icon--filled .dashicons {
142 color: #fff;
143 }
144
145 .bkbg-sc-icon--outlined {
146 width: var(--bkbg-sc-icon-bg-size);
147 height: var(--bkbg-sc-icon-bg-size);
148 border-radius: var(--bkbg-sc-icon-radius);
149 border: 2px solid #3b82f6;
150 background: transparent;
151 }
152
153 /* Content */
154 .bkbg-sc-content {
155 display: flex;
156 flex-direction: column;
157 gap: 4px;
158 min-width: 0;
159 flex: 1;
160 }
161
162 .bkbg-sc-item-inner--left .bkbg-sc-content,
163 .bkbg-sc-item-inner--right .bkbg-sc-content {
164 align-items: flex-start;
165 }
166
167 .bkbg-sc-item-inner--top .bkbg-sc-content {
168 align-items: center;
169 width: 100%;
170 }
171
172 /* Number */
173 .bkbg-sc-number {
174 font-size: var(--bkbg-sc-number-size);
175 font-weight: var(--bkbg-sc-number-weight);
176 color: var(--bkbg-sc-number-color);
177 line-height: 1.1;
178 font-variant-numeric: tabular-nums;
179 }
180
181 .bkbg-sc-prefix,
182 .bkbg-sc-suffix {
183 font-size: inherit;
184 font-weight: inherit;
185 color: inherit;
186 }
187
188 /* Label */
189 .bkbg-sc-label {
190 font-size: var(--bkbg-sc-label-size);
191 font-weight: var(--bkbg-sc-label-weight);
192 color: var(--bkbg-sc-label-color);
193 line-height: 1.4;
194 }
195
196 /* Dividers */
197 .bkbg-sc-divider .bkbg-sc-item:not(:last-child) {
198 border-right: 1px solid var(--bkbg-sc-divider-color);
199 padding-right: var(--bkbg-sc-gap);
200 }
201
202 .bkbg-sc-stacked.bkbg-sc-divider .bkbg-sc-item:not(:last-child) {
203 border-right: none;
204 border-bottom: 1px solid var(--bkbg-sc-divider-color);
205 padding-right: 0;
206 padding-bottom: var(--bkbg-sc-gap);
207 }
208
209 /* ========================================
210 Responsive Breakpoints
211 ======================================== */
212
213 @media (max-width: 1024px) {
214 .bkbg-sc-wrap {
215 --bkbg-sc-columns: 2;
216 }
217 }
218
219 @media (max-width: 600px) {
220 .bkbg-sc-wrap {
221 --bkbg-sc-columns: 1;
222 }
223
224 .bkbg-sc-divider .bkbg-sc-item:not(:last-child) {
225 border-right: none;
226 border-bottom: 1px solid var(--bkbg-sc-divider-color);
227 padding-right: 0;
228 padding-bottom: var(--bkbg-sc-gap);
229 }
230 }
231
232 /* ========================================
233 Editor-specific Styles
234 ======================================== */
235
236 .editor-styles-wrapper .bkbg-sc-wrap {
237 min-height: 60px;
238 }
239
240 /* Clickable/editable elements */
241 .bkbg-sc-clickable {
242 cursor: text;
243 border-radius: 4px;
244 transition: background-color 0.15s ease;
245 }
246
247 .bkbg-sc-clickable:hover {
248 background-color: rgba(59, 130, 246, 0.08);
249 }
250
251 .bkbg-sc-input-active {
252 background: transparent;
253 border: 1px dashed rgba(59, 130, 246, 0.5);
254 border-radius: 4px;
255 padding: 4px 8px;
256 font-family: inherit;
257 outline: none;
258 width: auto;
259 min-width: 60px;
260 }
261
262 .bkbg-sc-input-active:focus {
263 border-color: #3b82f6;
264 box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.2);
265 }
266
267 input.bkbg-sc-title.bkbg-sc-input-active {
268 font-size: var(--bkbg-sc-title-size);
269 font-weight: 700;
270 color: var(--bkbg-sc-title-color);
271 text-align: var(--bkbg-sc-text-align);
272 width: 100%;
273 }
274
275 input.bkbg-sc-number.bkbg-sc-input-active {
276 font-size: var(--bkbg-sc-number-size);
277 font-weight: var(--bkbg-sc-number-weight);
278 color: var(--bkbg-sc-number-color);
279 text-align: center;
280 width: 100%;
281 max-width: 200px;
282 min-width: 80px;
283 }
284
285 input.bkbg-sc-label.bkbg-sc-input-active {
286 font-size: var(--bkbg-sc-label-size);
287 font-weight: var(--bkbg-sc-label-weight);
288 width: 100%;
289 max-width: 200px;
290 color: var(--bkbg-sc-label-color);
291 }
292
293 /* Item hover actions */
294 .bkbg-sc-item-actions-overlay {
295 position: absolute;
296 top: 0;
297 right: -44px;
298 display: flex;
299 flex-direction: column;
300 gap: 2px;
301 padding: 4px;
302 background: #fff;
303 border-radius: 6px;
304 box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
305 opacity: 0;
306 visibility: hidden;
307 pointer-events: none;
308 transition: opacity 0.15s ease, visibility 0.15s ease;
309 z-index: 10;
310 }
311
312 .bkbg-sc-item:hover .bkbg-sc-item-actions-overlay,
313 .bkbg-sc-item-hovered .bkbg-sc-item-actions-overlay {
314 opacity: 1;
315 visibility: visible;
316 pointer-events: auto;
317 }
318
319 /* Extend hover area to include actions */
320 .bkbg-sc-item::after {
321 content: '';
322 position: absolute;
323 top: 0;
324 right: -50px;
325 bottom: 0;
326 width: 50px;
327 pointer-events: auto;
328 }
329
330 .bkbg-sc-item-actions-overlay .components-button {
331 min-width: 28px !important;
332 height: 28px !important;
333 padding: 0 !important;
334 justify-content: center;
335 }
336
337 .bkbg-sc-item-actions-overlay .components-button:hover:not(:disabled) {
338 background: #f3f4f6 !important;
339 }
340
341 .bkbg-sc-item-actions-overlay .components-button[class*="destructive"]:hover:not(:disabled) {
342 background: #fef2f2 !important;
343 color: #dc2626 !important;
344 }
345
346 .bkbg-sc-item-actions-overlay .components-button:disabled {
347 opacity: 0.3 !important;
348 }
349
350 /* Inspector panel controls */
351 .bkbg-sc-item-control {
352 padding: 12px;
353 background: #f8fafc;
354 border-radius: 8px;
355 margin-bottom: 12px;
356 border: 1px solid #e2e8f0;
357 }
358
359 .bkbg-sc-item-header {
360 display: flex;
361 justify-content: space-between;
362 align-items: center;
363 margin-bottom: 12px;
364 padding-bottom: 8px;
365 border-bottom: 1px solid #e2e8f0;
366 }
367
368 .bkbg-sc-item-title {
369 font-weight: 600;
370 color: #1e293b;
371 font-size: 13px;
372 }
373
374 .bkbg-sc-item-actions {
375 display: flex;
376 gap: 2px;
377 }
378
379 .bkbg-sc-item-actions .components-button {
380 min-width: 28px !important;
381 height: 28px !important;
382 padding: 0 !important;
383 }
384
385 .bkbg-sc-prefix-suffix {
386 display: grid;
387 grid-template-columns: 1fr 1fr;
388 gap: 8px;
389 }
390
391 .bkbg-sc-color-row {
392 display: flex;
393 align-items: center;
394 gap: 12px;
395 margin-top: 8px;
396 }
397
398 .bkbg-sc-color-btn {
399 width: 32px;
400 height: 32px;
401 border-radius: 50%;
402 border: 2px solid #fff;
403 box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.1), inset 0 0 0 1px rgba(0, 0, 0, 0.1);
404 cursor: pointer;
405 transition: transform 0.15s ease;
406 }
407
408 .bkbg-sc-color-btn:hover {
409 transform: scale(1.1);
410 }
411
412 .bkbg-sc-add-btn {
413 width: 100%;
414 margin-top: 8px;
415 }
416
417 /* Selection highlight */
418 .editor-styles-wrapper .bkbg-sc-item {
419 position: relative;
420 border: 1px dashed transparent;
421 border-radius: 8px;
422 transition: border-color 0.15s ease, background-color 0.15s ease;
423 }
424
425 .editor-styles-wrapper .bkbg-sc-item:hover {
426 border-color: rgba(59, 130, 246, 0.25);
427 background-color: rgba(59, 130, 246, 0.02);
428 }
429
430 .editor-styles-wrapper .bkbg-sc-item--card:hover {
431 border-color: rgba(59, 130, 246, 0.35);
432 }
433
434 /* ========================================
435 Animation
436 ======================================== */
437
438 .bkbg-sc-number {
439 transition: opacity 0.3s ease;
440 }
441
442 .bkbg-sc-wrap:not(.bkbg-sc-animated) .bkbg-sc-number {
443 opacity: 0.7;
444 }
445
446 .bkbg-sc-animated .bkbg-sc-number {
447 opacity: 1;
448 }
449
450 /* ========================================
451 Print Styles
452 ======================================== */
453
454 @media print {
455 .bkbg-sc-wrap {
456 page-break-inside: avoid;
457 }
458
459 .bkbg-sc-item {
460 break-inside: avoid;
461 }
462
463 .bkbg-sc-item--shadow {
464 box-shadow: none;
465 border: 1px solid #e5e7eb;
466 }
467 }
468
469 /* ========================================
470 Icon Picker (Editor)
471 ======================================== */
472
473 .bkbg-sc-icon-popover {
474 z-index: 100001;
475 }
476
477 .bkbg-sc-icon-picker-modal {
478 width: 260px;
479 max-height: 450px;
480 background: #fff;
481 border-radius: 8px;
482 box-shadow: 0 4px 24px rgba(0, 0, 0, 0.15);
483 overflow: hidden;
484 }
485
486 .bkbg-sc-icon-picker-header {
487 display: flex;
488 justify-content: space-between;
489 align-items: center;
490 padding: 12px 16px;
491 border-bottom: 1px solid #e0e0e0;
492 }
493
494 .bkbg-sc-icon-picker-header h3 {
495 margin: 0;
496 font-size: 14px;
497 font-weight: 600;
498 }
499
500 .bkbg-sc-icon-picker-close {
501 padding: 0 !important;
502 min-width: 24px !important;
503 height: 24px !important;
504 }
505
506 .bkbg-sc-icon-tabs {
507 display: flex;
508 flex-direction: column;
509 }
510
511 .bkbg-sc-icon-tabs .components-tab-panel__tabs {
512 border-bottom: 1px solid #e0e0e0;
513 margin: 0;
514 padding: 0 12px;
515 }
516
517 .bkbg-sc-icon-tabs .components-tab-panel__tabs button {
518 font-size: 13px;
519 padding: 8px 16px;
520 }
521
522 .bkbg-sc-dashicons-panel {
523 padding: 12px;
524 }
525
526 .bkbg-sc-icon-search {
527 margin-bottom: 12px;
528 }
529
530 .bkbg-sc-icon-search .components-base-control__field {
531 margin-bottom: 0;
532 }
533
534 .bkbg-sc-dashicons-grid {
535 display: grid;
536 grid-template-columns: repeat(6, 1fr);
537 gap: 4px;
538 max-height: 280px;
539 overflow-y: auto;
540 padding: 4px;
541 }
542
543 .bkbg-sc-dashicon-btn {
544 width: 36px;
545 height: 36px;
546 display: flex;
547 align-items: center;
548 justify-content: center;
549 border: 1px solid transparent;
550 border-radius: 4px;
551 background: transparent;
552 cursor: pointer;
553 transition: all 0.15s ease;
554 padding: 0;
555 }
556
557 .bkbg-sc-dashicon-btn:hover {
558 background: #f0f0f0;
559 border-color: #ccc;
560 }
561
562 .bkbg-sc-dashicon-btn.is-active {
563 background: #007cba;
564 border-color: #007cba;
565 }
566
567 .bkbg-sc-dashicon-btn.is-active .dashicons {
568 color: #fff;
569 }
570
571 .bkbg-sc-dashicon-btn .dashicons {
572 font-size: 20px;
573 width: 20px;
574 height: 20px;
575 }
576
577 .bkbg-sc-no-icons {
578 grid-column: 1 / -1;
579 text-align: center;
580 color: #666;
581 padding: 20px;
582 }
583
584 .bkbg-sc-media-panel {
585 padding: 16px;
586 text-align: center;
587 }
588
589 .bkbg-sc-current-media {
590 margin-bottom: 16px;
591 }
592
593 .bkbg-sc-current-media img {
594 max-width: 80px;
595 max-height: 80px;
596 object-fit: contain;
597 border: 1px solid #ddd;
598 border-radius: 4px;
599 margin-bottom: 8px;
600 }
601
602 .bkbg-sc-media-btn {
603 display: inline-flex;
604 align-items: center;
605 gap: 8px;
606 }
607
608 .bkbg-sc-media-hint {
609 font-size: 12px;
610 color: #666;
611 margin-top: 12px;
612 }
613
614 /* Icon row in inspector */
615 .bkbg-sc-icon-row {
616 display: flex;
617 align-items: center;
618 justify-content: space-between;
619 padding: 8px 0;
620 border-top: 1px solid #e0e0e0;
621 margin-top: 8px;
622 }
623
624 .bkbg-sc-icon-btn-wrap {
625 position: relative;
626 }
627
628 .bkbg-sc-icon-btn {
629 width: 40px;
630 height: 40px;
631 display: flex;
632 align-items: center;
633 justify-content: center;
634 border: 1px solid #ccc;
635 border-radius: 4px;
636 background: #f9f9f9;
637 cursor: pointer;
638 transition: all 0.15s ease;
639 padding: 0;
640 }
641
642 .bkbg-sc-icon-btn:hover {
643 background: #fff;
644 border-color: #007cba;
645 }
646
647 .bkbg-sc-icon-btn .dashicons {
648 font-size: 24px;
649 width: 24px;
650 height: 24px;
651 }
652
653 .bkbg-sc-icon-btn img {
654 width: 24px;
655 height: 24px;
656 object-fit: contain;
657 }
658
659 /* Icon clickable in editor */
660 .bkbg-sc-icon-clickable {
661 cursor: pointer;
662 transition: transform 0.15s ease, box-shadow 0.15s ease;
663 position: relative;
664 }
665
666 .bkbg-sc-icon-clickable:hover {
667 transform: scale(1.05);
668 box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
669 }
670
671 .bkbg-sc-icon-clickable::after {
672 content: '';
673 position: absolute;
674 top: 0;
675 left: 0;
676 right: 0;
677 bottom: 0;
678 border: 2px dashed transparent;
679 border-radius: inherit;
680 transition: border-color 0.15s ease;
681 }
682
683 .bkbg-sc-icon-clickable:hover::after {
684 border-color: rgba(0, 124, 186, 0.5);
685 }
686
687 /* Custom icon image */
688 .bkbg-sc-icon-img {
689 width: var(--bkbg-sc-icon-size);
690 height: var(--bkbg-sc-icon-size);
691 object-fit: contain;
692 }
693