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 / blocks / audio-player / style.css

style.css in Blockenberg — 600+ Advanced Gutenberg Blocks & AI Agent for WordPress Block Editor 2.0.7, at blocks/audio-player/style.css

368 lines 13.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /* ===== Audio Player Block — bkbg-ap- ===== */
2
3 .bkbg-ap-wrapper {
4 max-width: var(--bkbg-ap-max-width, 560px);
5 width: 100%;
6 margin-left: auto;
7 margin-right: auto;
8 font-family: inherit;
9 box-sizing: border-box;
10 }
11
12 /* ── Player shell (all styles) ───────────────────────────────────────────── */
13 .bkbg-ap-player {
14 background: var(--bkbg-ap-bg, #ffffff);
15 border-radius: var(--bkbg-ap-radius, 14px);
16 padding: var(--bkbg-ap-pad, 20px 24px);
17 box-shadow: var(--bkbg-ap-shadow, 0 4px 20px rgba(0,0,0,0.12));
18 box-sizing: border-box;
19 position: relative;
20 overflow: hidden;
21 }
22
23 /* ── Top row (cover + info) ──────────────────────────────────────────────── */
24 .bkbg-ap-top {
25 display: flex;
26 align-items: center;
27 gap: 16px;
28 margin-bottom: 14px;
29 }
30
31 /* ── Cover art ───────────────────────────────────────────────────────────── */
32 .bkbg-ap-cover {
33 flex-shrink: 0;
34 width: var(--bkbg-ap-cover-size, 80px);
35 height: var(--bkbg-ap-cover-size, 80px);
36 border-radius: var(--bkbg-ap-cover-radius, 8px);
37 overflow: hidden;
38 background: #f0f4f8;
39 display: flex;
40 align-items: center;
41 justify-content: center;
42 }
43
44 .bkbg-ap-cover-img {
45 width: 100%;
46 height: 100%;
47 object-fit: cover;
48 display: block;
49 }
50
51 .bkbg-ap-cover-placeholder {
52 width: 100%;
53 height: 100%;
54 display: flex;
55 align-items: center;
56 justify-content: center;
57 color: #b0bec5;
58 background: linear-gradient(135deg, #e8edf3, #d1dae5);
59 }
60
61 /* ── Track info ──────────────────────────────────────────────────────────── */
62 .bkbg-ap-info-col {
63 flex: 1;
64 min-width: 0;
65 }
66
67 .bkbg-ap-track-info {
68 margin-bottom: 10px;
69 }
70
71 .bkbg-ap-title {
72 font-family: var(--bkbg-ap-title-font-family, inherit);
73 font-size: var(--bkbg-ap-title-font-size-d, var(--bkbg-ap-title-font-size, var(--bkbg-ap-title-size, 17px)));
74 font-weight: var(--bkbg-ap-title-font-weight, var(--bkbg-ap-title-weight, 700));
75 font-style: var(--bkbg-ap-title-font-style, normal);
76 text-transform: var(--bkbg-ap-title-text-transform, none);
77 text-decoration: var(--bkbg-ap-title-text-decoration, none);
78 line-height: var(--bkbg-ap-title-line-height-d, var(--bkbg-ap-title-line-height, 1.25));
79 letter-spacing: var(--bkbg-ap-title-letter-spacing-d, var(--bkbg-ap-title-letter-spacing, normal));
80 word-spacing: var(--bkbg-ap-title-word-spacing-d, var(--bkbg-ap-title-word-spacing, normal));
81 color: var(--bkbg-ap-text-color, #111827);
82 white-space: nowrap;
83 overflow: hidden;
84 text-overflow: ellipsis;
85 margin-bottom: 2px;
86 }
87
88 .bkbg-ap-artist {
89 font-family: var(--bkbg-ap-artist-font-family, inherit);
90 font-size: var(--bkbg-ap-artist-font-size-d, var(--bkbg-ap-artist-font-size, var(--bkbg-ap-artist-size, 14px)));
91 font-weight: var(--bkbg-ap-artist-font-weight, 400);
92 font-style: var(--bkbg-ap-artist-font-style, normal);
93 text-transform: var(--bkbg-ap-artist-text-transform, none);
94 text-decoration: var(--bkbg-ap-artist-text-decoration, none);
95 line-height: var(--bkbg-ap-artist-line-height-d, var(--bkbg-ap-artist-line-height, 1.3));
96 letter-spacing: var(--bkbg-ap-artist-letter-spacing-d, var(--bkbg-ap-artist-letter-spacing, normal));
97 word-spacing: var(--bkbg-ap-artist-word-spacing-d, var(--bkbg-ap-artist-word-spacing, normal));
98 color: var(--bkbg-ap-subtitle-color, #6b7280);
99 white-space: nowrap;
100 overflow: hidden;
101 text-overflow: ellipsis;
102 }
103
104 .bkbg-ap-album {
105 font-size: 12px;
106 color: var(--bkbg-ap-subtitle-color, #6b7280);
107 opacity: 0.75;
108 letter-spacing: 0.03em;
109 margin-top: 2px;
110 white-space: nowrap;
111 overflow: hidden;
112 text-overflow: ellipsis;
113 }
114
115 /* ── Progress bar ────────────────────────────────────────────────────────── */
116 .bkbg-ap-progress-wrap {
117 width: 100%;
118 }
119
120 .bkbg-ap-progress-track {
121 position: relative;
122 width: 100%;
123 height: var(--bkbg-ap-progress-h, 4px);
124 background: var(--bkbg-ap-progress-bg, #e5e7eb);
125 border-radius: 999px;
126 cursor: pointer;
127 touch-action: none;
128 }
129
130 .bkbg-ap-progress-fill {
131 height: 100%;
132 width: 0%;
133 background: var(--bkbg-ap-accent, #2563eb);
134 border-radius: 999px;
135 pointer-events: none;
136 transition: width 0.1s linear;
137 }
138
139 .bkbg-ap-progress-thumb {
140 position: absolute;
141 top: 50%;
142 left: 0%;
143 transform: translate(-50%, -50%) scale(0);
144 width: 12px;
145 height: 12px;
146 border-radius: 50%;
147 background: var(--bkbg-ap-accent, #2563eb);
148 pointer-events: none;
149 transition: transform 0.15s ease, left 0.1s linear;
150 }
151
152 .bkbg-ap-progress-track:hover .bkbg-ap-progress-thumb {
153 transform: translate(-50%, -50%) scale(1);
154 }
155
156 /* seek range overlay (transparent, sits on top) */
157 .bkbg-ap-seek {
158 position: absolute;
159 inset: -8px 0;
160 width: 100%;
161 opacity: 0;
162 cursor: pointer;
163 z-index: 2;
164 }
165
166 .bkbg-ap-timestamps {
167 display: flex;
168 justify-content: space-between;
169 font-size: 11px;
170 color: var(--bkbg-ap-subtitle-color, #9ca3af);
171 margin-top: 5px;
172 letter-spacing: 0.02em;
173 }
174
175 /* ── Controls row ────────────────────────────────────────────────────────── */
176 .bkbg-ap-controls {
177 display: flex;
178 align-items: center;
179 gap: 10px;
180 padding-top: 4px;
181 }
182
183 /* ── Play button ─────────────────────────────────────────────────────────── */
184 .bkbg-ap-play-btn {
185 flex-shrink: 0;
186 width: var(--bkbg-ap-btn-size, 52px);
187 height: var(--bkbg-ap-btn-size, 52px);
188 border-radius: 50%;
189 background: var(--bkbg-ap-icon-bg, var(--bkbg-ap-accent, #2563eb));
190 color: var(--bkbg-ap-icon-color, #ffffff);
191 border: none;
192 cursor: pointer;
193 display: flex;
194 align-items: center;
195 justify-content: center;
196 transition: transform 0.15s ease, box-shadow 0.15s ease;
197 box-shadow: 0 2px 8px rgba(0,0,0,0.18);
198 }
199
200 .bkbg-ap-play-btn:hover {
201 transform: scale(1.07);
202 box-shadow: 0 4px 16px rgba(0,0,0,0.22);
203 }
204
205 .bkbg-ap-play-btn:active {
206 transform: scale(0.96);
207 }
208
209 .bkbg-ap-play-btn svg.bkbg-ap-icon-pause { display: none; }
210 .bkbg-ap-play-btn svg.bkbg-ap-icon-play { display: block; }
211 .bkbg-ap-playing .bkbg-ap-play-btn svg.bkbg-ap-icon-pause { display: block; }
212 .bkbg-ap-playing .bkbg-ap-play-btn svg.bkbg-ap-icon-play { display: none; }
213
214 /* ── Volume ──────────────────────────────────────────────────────────────── */
215 .bkbg-ap-volume {
216 display: flex;
217 align-items: center;
218 gap: 6px;
219 margin-left: auto;
220 }
221
222 .bkbg-ap-vol-btn {
223 background: transparent;
224 border: none;
225 color: var(--bkbg-ap-subtitle-color, #6b7280);
226 cursor: pointer;
227 padding: 4px;
228 display: flex;
229 align-items: center;
230 border-radius: 4px;
231 transition: color 0.15s;
232 }
233
234 .bkbg-ap-vol-btn:hover { color: var(--bkbg-ap-accent, #2563eb); }
235
236 .bkbg-ap-vol-slider {
237 -webkit-appearance: none;
238 appearance: none;
239 width: 72px;
240 height: 4px;
241 border-radius: 999px;
242 background: var(--bkbg-ap-progress-bg, #e5e7eb);
243 outline: none;
244 cursor: pointer;
245 }
246
247 .bkbg-ap-vol-slider::-webkit-slider-thumb {
248 -webkit-appearance: none;
249 appearance: none;
250 width: 12px;
251 height: 12px;
252 border-radius: 50%;
253 background: var(--bkbg-ap-accent, #2563eb);
254 cursor: pointer;
255 }
256
257 .bkbg-ap-vol-slider::-moz-range-thumb {
258 width: 12px;
259 height: 12px;
260 border-radius: 50%;
261 background: var(--bkbg-ap-accent, #2563eb);
262 border: none;
263 cursor: pointer;
264 }
265
266 /* ── Speed & download buttons ────────────────────────────────────────────── */
267 .bkbg-ap-speed-btn,
268 .bkbg-ap-download-btn {
269 background: transparent;
270 border: 1px solid currentColor;
271 color: var(--bkbg-ap-subtitle-color, #6b7280);
272 border-radius: 6px;
273 padding: 3px 8px;
274 font-size: 12px;
275 cursor: pointer;
276 transition: color 0.15s, border-color 0.15s;
277 display: flex;
278 align-items: center;
279 text-decoration: none;
280 }
281
282 .bkbg-ap-speed-btn:hover,
283 .bkbg-ap-download-btn:hover {
284 color: var(--bkbg-ap-accent, #2563eb);
285 border-color: var(--bkbg-ap-accent, #2563eb);
286 }
287
288 /* ── Minimal style ───────────────────────────────────────────────────────── */
289 .bkbg-ap-style-minimal .bkbg-ap-player {
290 display: flex;
291 align-items: center;
292 gap: 14px;
293 padding: 12px 18px;
294 }
295
296 .bkbg-ap-style-minimal .bkbg-ap-play-btn {
297 width: var(--bkbg-ap-btn-size, 42px);
298 height: var(--bkbg-ap-btn-size, 42px);
299 min-width: 34px;
300 min-height: 34px;
301 }
302
303 .bkbg-ap-minimal-info {
304 flex: 1;
305 min-width: 0;
306 display: flex;
307 flex-direction: column;
308 gap: 6px;
309 }
310
311 .bkbg-ap-style-minimal .bkbg-ap-title {
312 font-size: 14px;
313 white-space: nowrap;
314 overflow: hidden;
315 text-overflow: ellipsis;
316 }
317
318 .bkbg-ap-style-minimal .bkbg-ap-progress-track {
319 height: 3px;
320 }
321
322 /* ── Compact style ───────────────────────────────────────────────────────── */
323 .bkbg-ap-style-compact .bkbg-ap-top {
324 margin-bottom: 10px;
325 }
326
327 .bkbg-ap-style-compact .bkbg-ap-cover {
328 width: calc(var(--bkbg-ap-cover-size, 80px) * 0.75);
329 height: calc(var(--bkbg-ap-cover-size, 80px) * 0.75);
330 }
331
332 /* ── Responsive / Mobile ─────────────────────────────────────────────────── */
333 @media (max-width: 1024px) {
334 .bkbg-ap-title {
335 font-size: var(--bkbg-ap-title-font-size-t, var(--bkbg-ap-title-font-size-d, var(--bkbg-ap-title-font-size, var(--bkbg-ap-title-size, 17px))));
336 line-height: var(--bkbg-ap-title-line-height-t, var(--bkbg-ap-title-line-height-d, var(--bkbg-ap-title-line-height, 1.25)));
337 letter-spacing: var(--bkbg-ap-title-letter-spacing-t, var(--bkbg-ap-title-letter-spacing-d, var(--bkbg-ap-title-letter-spacing, normal)));
338 word-spacing: var(--bkbg-ap-title-word-spacing-t, var(--bkbg-ap-title-word-spacing-d, var(--bkbg-ap-title-word-spacing, normal)));
339 }
340 .bkbg-ap-artist {
341 font-size: var(--bkbg-ap-artist-font-size-t, var(--bkbg-ap-artist-font-size-d, var(--bkbg-ap-artist-font-size, var(--bkbg-ap-artist-size, 14px))));
342 line-height: var(--bkbg-ap-artist-line-height-t, var(--bkbg-ap-artist-line-height-d, var(--bkbg-ap-artist-line-height, 1.3)));
343 letter-spacing: var(--bkbg-ap-artist-letter-spacing-t, var(--bkbg-ap-artist-letter-spacing-d, var(--bkbg-ap-artist-letter-spacing, normal)));
344 word-spacing: var(--bkbg-ap-artist-word-spacing-t, var(--bkbg-ap-artist-word-spacing-d, var(--bkbg-ap-artist-word-spacing, normal)));
345 }
346 }
347
348 @media (max-width: 767px) {
349 .bkbg-ap-title {
350 font-size: var(--bkbg-ap-title-font-size-m, var(--bkbg-ap-title-font-size-t, var(--bkbg-ap-title-font-size-d, var(--bkbg-ap-title-font-size, var(--bkbg-ap-title-size, 17px)))));
351 line-height: var(--bkbg-ap-title-line-height-m, var(--bkbg-ap-title-line-height-t, var(--bkbg-ap-title-line-height-d, var(--bkbg-ap-title-line-height, 1.25))));
352 letter-spacing: var(--bkbg-ap-title-letter-spacing-m, var(--bkbg-ap-title-letter-spacing-t, var(--bkbg-ap-title-letter-spacing-d, var(--bkbg-ap-title-letter-spacing, normal))));
353 word-spacing: var(--bkbg-ap-title-word-spacing-m, var(--bkbg-ap-title-word-spacing-t, var(--bkbg-ap-title-word-spacing-d, var(--bkbg-ap-title-word-spacing, normal))));
354 }
355 .bkbg-ap-artist {
356 font-size: var(--bkbg-ap-artist-font-size-m, var(--bkbg-ap-artist-font-size-t, var(--bkbg-ap-artist-font-size-d, var(--bkbg-ap-artist-font-size, var(--bkbg-ap-artist-size, 14px)))));
357 line-height: var(--bkbg-ap-artist-line-height-m, var(--bkbg-ap-artist-line-height-t, var(--bkbg-ap-artist-line-height-d, var(--bkbg-ap-artist-line-height, 1.3))));
358 letter-spacing: var(--bkbg-ap-artist-letter-spacing-m, var(--bkbg-ap-artist-letter-spacing-t, var(--bkbg-ap-artist-letter-spacing-d, var(--bkbg-ap-artist-letter-spacing, normal))));
359 word-spacing: var(--bkbg-ap-artist-word-spacing-m, var(--bkbg-ap-artist-word-spacing-t, var(--bkbg-ap-artist-word-spacing-d, var(--bkbg-ap-artist-word-spacing, normal))));
360 }
361 }
362
363 @media (max-width: 480px) {
364 .bkbg-ap-vol-slider { display: none; }
365 .bkbg-ap-cover { display: none; }
366 .bkbg-ap-player { padding: 14px 16px; }
367 }
368