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 / progress-bar / style.css

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

407 lines 8.9 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /* ========================================
2 Progress Bar Block - Main Styles
3 ======================================== */
4
5 .bkbg-pb-wrap {
6 --bkbg-pb-bar-height: 20px;
7 --bkbg-pb-bar-spacing: 24px;
8 --bkbg-pb-bar-radius: 10px;
9 --bkbg-pb-track-color: #e5e7eb;
10 --bkbg-pb-label-color: #1f2937;
11 --bkbg-pb-label-size: 16px;
12 --bkbg-pb-label-weight: 500;
13 --bkbg-pb-percentage-color: #6b7280;
14 --bkbg-pb-percentage-size: 14px;
15 --bkbg-pb-title-color: #1f2937;
16 --bkbg-pb-title-size: 24px;
17 --bkbg-pb-animation-duration: 1000ms;
18
19 width: 100%;
20 }
21
22 /* Title */
23 .bkbg-pb-title {
24 font-size: var(--bkbg-pb-title-size);
25 font-weight: 700;
26 color: var(--bkbg-pb-title-color);
27 margin-bottom: 24px;
28 }
29
30 /* List container */
31 .bkbg-pb-list {
32 display: flex;
33 flex-direction: column;
34 gap: var(--bkbg-pb-bar-spacing);
35 }
36
37 /* Individual item */
38 .bkbg-pb-item {
39 width: 100%;
40 }
41
42 /* Header with label and percentage */
43 .bkbg-pb-header {
44 display: flex;
45 justify-content: space-between;
46 align-items: center;
47 margin-bottom: 8px;
48 }
49
50 /* Label */
51 .bkbg-pb-label {
52 font-size: var(--bkbg-pb-label-size);
53 font-weight: var(--bkbg-pb-label-weight);
54 color: var(--bkbg-pb-label-color);
55 line-height: 1.4;
56 }
57
58 /* Percentage */
59 .bkbg-pb-percentage {
60 font-size: var(--bkbg-pb-percentage-size);
61 font-weight: 600;
62 color: var(--bkbg-pb-percentage-color);
63 font-variant-numeric: tabular-nums;
64 }
65
66 /* Track (background) */
67 .bkbg-pb-track {
68 width: 100%;
69 height: var(--bkbg-pb-bar-height);
70 background: var(--bkbg-pb-track-color);
71 border-radius: var(--bkbg-pb-bar-radius);
72 overflow: hidden;
73 position: relative;
74 }
75
76 /* Progress bar (filled part) */
77 .bkbg-pb-bar {
78 height: 100%;
79 border-radius: var(--bkbg-pb-bar-radius);
80 transition: width var(--bkbg-pb-animation-duration) ease-out;
81 display: flex;
82 align-items: center;
83 justify-content: flex-end;
84 position: relative;
85 }
86
87 /* Percentage inside bar */
88 .bkbg-pb-percentage-inside {
89 font-size: calc(var(--bkbg-pb-bar-height) * 0.6);
90 font-weight: 600;
91 color: #fff;
92 padding-right: 8px;
93 text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
94 white-space: nowrap;
95 }
96
97 /* Percentage above bar */
98 .bkbg-pb-above {
99 position: relative;
100 height: 24px;
101 margin-bottom: 4px;
102 }
103
104 .bkbg-pb-percentage-above {
105 position: absolute;
106 transform: translateX(-50%);
107 font-size: var(--bkbg-pb-percentage-size);
108 font-weight: 600;
109 color: var(--bkbg-pb-percentage-color);
110 font-variant-numeric: tabular-nums;
111 transition: left var(--bkbg-pb-animation-duration) ease-out;
112 }
113
114 /* ========================================
115 Layout: Default
116 ======================================== */
117
118 /* Already defined above */
119
120 /* ========================================
121 Layout: Rounded
122 ======================================== */
123
124 .bkbg-pb-rounded .bkbg-pb-track {
125 border-radius: 50px;
126 }
127
128 .bkbg-pb-rounded .bkbg-pb-bar {
129 border-radius: 50px;
130 }
131
132 /* ========================================
133 Layout: Flat
134 ======================================== */
135
136 .bkbg-pb-flat .bkbg-pb-track {
137 border-radius: 0;
138 }
139
140 .bkbg-pb-flat .bkbg-pb-bar {
141 border-radius: 0;
142 }
143
144 /* ========================================
145 Layout: Thin
146 ======================================== */
147
148 .bkbg-pb-thin .bkbg-pb-track {
149 height: calc(var(--bkbg-pb-bar-height) * 0.5);
150 }
151
152 .bkbg-pb-thin .bkbg-pb-bar {
153 height: 100%;
154 }
155
156 .bkbg-pb-thin .bkbg-pb-percentage-inside {
157 display: none;
158 }
159
160 /* ========================================
161 Layout: Thick
162 ======================================== */
163
164 .bkbg-pb-thick .bkbg-pb-track {
165 height: calc(var(--bkbg-pb-bar-height) * 1.5);
166 }
167
168 /* ========================================
169 Effects: Stripes - applied via inline styles
170 ======================================== */
171
172 .bkbg-pb-striped-animated .bkbg-pb-bar {
173 animation: bkbg-pb-stripes 1s linear infinite;
174 }
175
176 @keyframes bkbg-pb-stripes {
177 0% {
178 background-position: 40px 0, 0 0;
179 }
180 100% {
181 background-position: 0 0, 0 0;
182 }
183 }
184
185 /* ========================================
186 Effects: Glow - applied via inline styles
187 ======================================== */
188
189 /* ========================================
190 Effects: Gradient - shimmer animation
191 ======================================== */
192
193 .bkbg-pb-gradient-animated .bkbg-pb-bar {
194 animation: bkbg-pb-gradient-shift 3s ease infinite;
195 }
196
197 @keyframes bkbg-pb-gradient-shift {
198 0%, 100% {
199 background-position: 0% 50%, 0 0;
200 }
201 50% {
202 background-position: 100% 50%, 0 0;
203 }
204 }
205
206 /* ========================================
207 Animation: Initial state (for scroll animation)
208 ======================================== */
209
210 .bkbg-pb-wrap[data-animate="1"]:not(.bkbg-pb-animated) .bkbg-pb-bar {
211 width: 0 !important;
212 }
213
214 .bkbg-pb-wrap[data-animate="1"]:not(.bkbg-pb-animated) .bkbg-pb-percentage-above {
215 left: 0 !important;
216 }
217
218 /* ========================================
219 Editor Styles
220 ======================================== */
221
222 .bkbg-pb-clickable {
223 cursor: pointer;
224 border: 1px dashed transparent;
225 padding: 2px 4px;
226 margin: -2px -4px;
227 border-radius: 4px;
228 transition: border-color 0.2s, background-color 0.2s;
229 }
230
231 .bkbg-pb-clickable:hover {
232 border-color: var(--wp-admin-theme-color, #007cba);
233 background-color: rgba(0, 124, 186, 0.05);
234 }
235
236 .bkbg-pb-input-active {
237 border: 1px solid var(--wp-admin-theme-color, #007cba);
238 outline: none;
239 padding: 4px 8px;
240 border-radius: 4px;
241 font-family: inherit;
242 background: #fff;
243 }
244
245 input.bkbg-pb-title.bkbg-pb-input-active {
246 font-size: var(--bkbg-pb-title-size);
247 font-weight: 700;
248 color: var(--bkbg-pb-title-color);
249 width: 100%;
250 margin-bottom: 24px;
251 }
252
253 input.bkbg-pb-label.bkbg-pb-input-active {
254 font-size: var(--bkbg-pb-label-size);
255 font-weight: var(--bkbg-pb-label-weight);
256 color: var(--bkbg-pb-label-color);
257 }
258
259 /* Inspector Controls Styles */
260 .bkbg-pb-item-control {
261 background: #f9fafb;
262 border: 1px solid #e5e7eb;
263 border-radius: 8px;
264 padding: 12px;
265 margin-bottom: 12px;
266 }
267
268 .bkbg-pb-item-header {
269 display: flex;
270 justify-content: space-between;
271 align-items: center;
272 margin-bottom: 12px;
273 padding-bottom: 8px;
274 border-bottom: 1px solid #e5e7eb;
275 }
276
277 .bkbg-pb-item-title {
278 font-weight: 600;
279 font-size: 13px;
280 color: #374151;
281 }
282
283 .bkbg-pb-item-actions {
284 display: flex;
285 gap: 4px;
286 }
287
288 .bkbg-pb-color-row {
289 display: flex;
290 align-items: center;
291 justify-content: space-between;
292 margin-top: 8px;
293 }
294
295 .bkbg-pb-color-row span {
296 font-size: 11px;
297 text-transform: uppercase;
298 font-weight: 500;
299 color: #6b7280;
300 }
301
302 .bkbg-pb-color-btn {
303 width: 32px;
304 height: 32px;
305 border-radius: 4px;
306 border: 2px solid #e5e7eb;
307 cursor: pointer;
308 transition: border-color 0.2s;
309 }
310
311 .bkbg-pb-color-btn:hover {
312 border-color: #9ca3af;
313 }
314
315 .bkbg-pb-add-btn {
316 width: 100%;
317 justify-content: center;
318 margin-top: 8px;
319 }
320
321 /* ========================================
322 Editor: Item Hover States
323 ======================================== */
324
325 /* Individual item hover */
326 .bkbg-pb-item {
327 position: relative;
328 padding: 8px;
329 margin: -8px;
330 margin-bottom: calc(var(--bkbg-pb-bar-spacing) - 8px);
331 border-radius: 6px;
332 transition: background-color 0.15s;
333 }
334
335 .bkbg-pb-item:last-child {
336 margin-bottom: -8px;
337 }
338
339 .bkbg-pb-item:hover,
340 .bkbg-pb-item.bkbg-pb-item-hovered {
341 background-color: rgba(0, 0, 0, 0.02);
342 }
343
344 /* Item actions toolbar */
345 .bkbg-pb-item .bkbg-pb-item-actions {
346 position: absolute;
347 top: 50%;
348 right: -44px;
349 transform: translateY(-50%);
350 display: flex;
351 flex-direction: column;
352 gap: 2px;
353 opacity: 0;
354 visibility: hidden;
355 transition: opacity 0.15s, visibility 0.15s;
356 background: #fff;
357 border-radius: 6px;
358 box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
359 padding: 4px;
360 z-index: 10;
361 }
362
363 .bkbg-pb-item:hover .bkbg-pb-item-actions,
364 .bkbg-pb-item.bkbg-pb-item-hovered .bkbg-pb-item-actions {
365 opacity: 1;
366 visibility: visible;
367 }
368
369 .bkbg-pb-item .bkbg-pb-item-actions .components-button {
370 min-width: 28px;
371 height: 28px;
372 padding: 0;
373 justify-content: center;
374 }
375
376 .bkbg-pb-item .bkbg-pb-item-actions .components-button:hover {
377 background: #f3f4f6;
378 }
379
380 .bkbg-pb-item .bkbg-pb-item-actions .components-button.is-destructive:hover {
381 background: #fef2f2;
382 color: #dc2626;
383 }
384
385 /* Add button UI is standardized via assets/css/editor.css (.bkbg-editor-actions) */
386
387 /* ========================================
388 Responsive
389 ======================================== */
390
391 @media (max-width: 768px) {
392 .bkbg-pb-wrap {
393 --bkbg-pb-bar-height: 16px;
394 --bkbg-pb-label-size: 14px;
395 --bkbg-pb-percentage-size: 12px;
396 }
397
398 .bkbg-pb-header {
399 flex-wrap: wrap;
400 gap: 4px;
401 }
402
403 .bkbg-pb-item .bkbg-pb-item-actions {
404 right: -40px;
405 }
406 }
407