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 / video-popup / style.css

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

301 lines 9.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /* =========================================================
2 Video Popup Button — bkbg-vp-*
3 ========================================================= */
4
5 /* ── Outer wrapper ─────────────────────────────────────── */
6 .bkbg-vp-outer {
7 display: block;
8 box-sizing: border-box;
9 }
10
11 /* ── Button outer (alignment container) ────────────────── */
12 .bkbg-vp-btn-outer {
13 display: block;
14 box-sizing: border-box;
15 }
16
17 .bkbg-vp-btn-wrap {
18 display: inline-block;
19 vertical-align: top;
20 }
21
22 .bkbg-vp-btn-outer[style*="text-align: left"] .bkbg-vp-btn-wrap,
23 .bkbg-vp-btn-outer[style*="text-align: center"] .bkbg-vp-btn-wrap,
24 .bkbg-vp-btn-outer[style*="text-align: right"] .bkbg-vp-btn-wrap {
25 display: inline-block;
26 }
27
28 /* ── The Button ────────────────────────────────────────── */
29 .bkbg-vp-btn {
30 display: inline-flex;
31 align-items: center;
32 justify-content: center;
33 cursor: pointer;
34 font-family: var(--bkvpo-bt-ff, inherit);
35 font-size: var(--bkvpo-bt-fsd, 15px);
36 font-style: var(--bkvpo-bt-fst, normal);
37 font-weight: var(--bkvpo-bt-fw, 600);
38 letter-spacing: var(--bkvpo-bt-lsd, 0px);
39 line-height: var(--bkvpo-bt-lhd, 1.2);
40 text-decoration: var(--bkvpo-bt-td, none);
41 text-transform: var(--bkvpo-bt-tt, none);
42 word-spacing: var(--bkvpo-bt-wsd, normal);
43 white-space: nowrap;
44 user-select: none;
45 -webkit-user-select: none;
46 outline: none;
47 position: relative;
48 overflow: hidden;
49 /* inline styles from JS handle colors, padding, radius, shadow */
50 }
51
52 .bkbg-vp-btn:focus-visible {
53 outline: 3px solid #005fcc;
54 outline-offset: 3px;
55 }
56
57 .bkbg-vp-btn-label {
58 display: inline;
59 pointer-events: none;
60 }
61
62 /* ── Hover glow/brightness effects ─────────────────────── */
63 /* Generic brightness lift — works for solid, gradient, ghost */
64 .bkbg-vp-btn:hover {
65 filter: brightness(1.1);
66 transform: translateY(-1px);
67 }
68
69 .bkbg-vp-btn:active {
70 transform: translateY(0);
71 filter: brightness(0.95);
72 }
73
74 /* ── Ripple effect on click ─────────────────────────────── */
75 .bkbg-vp-btn::after {
76 content: '';
77 position: absolute;
78 inset: 0;
79 background: rgba(255, 255, 255, 0.18);
80 border-radius: inherit;
81 opacity: 0;
82 transition: opacity 0.15s ease;
83 pointer-events: none;
84 }
85
86 .bkbg-vp-btn:hover::after {
87 opacity: 1;
88 }
89
90 /* ── Subtext ────────────────────────────────────────────── */
91 .bkbg-vp-subtext {
92 display: block;
93 font-family: var(--bkvpo-st-ff, inherit);
94 font-size: var(--bkvpo-st-fsd, 12px);
95 font-style: var(--bkvpo-st-fst, normal);
96 font-weight: var(--bkvpo-st-fw, normal);
97 letter-spacing: var(--bkvpo-st-lsd, normal);
98 line-height: var(--bkvpo-st-lhd, 1.5);
99 text-decoration: var(--bkvpo-st-td, none);
100 text-transform: var(--bkvpo-st-tt, none);
101 word-spacing: var(--bkvpo-st-wsd, normal);
102 }
103
104 /* ── Responsive — Typography ──────────────────────────────── */
105 @media (max-width: 1024px) {
106 .bkbg-vp-btn {
107 font-size: var(--bkvpo-bt-fst1, var(--bkvpo-bt-fsd, 15px));
108 letter-spacing: var(--bkvpo-bt-lst, var(--bkvpo-bt-lsd, 0px));
109 line-height: var(--bkvpo-bt-lht, var(--bkvpo-bt-lhd, 1.2));
110 word-spacing: var(--bkvpo-bt-wst, var(--bkvpo-bt-wsd, normal));
111 }
112 .bkbg-vp-subtext {
113 font-size: var(--bkvpo-st-fst1, var(--bkvpo-st-fsd, 12px));
114 letter-spacing: var(--bkvpo-st-lst, var(--bkvpo-st-lsd, normal));
115 line-height: var(--bkvpo-st-lht, var(--bkvpo-st-lhd, 1.5));
116 word-spacing: var(--bkvpo-st-wst, var(--bkvpo-st-wsd, normal));
117 }
118 }
119
120 @media (max-width: 767px) {
121 .bkbg-vp-btn {
122 font-size: var(--bkvpo-bt-fsm, var(--bkvpo-bt-fst1, var(--bkvpo-bt-fsd, 15px)));
123 letter-spacing: var(--bkvpo-bt-lsm, var(--bkvpo-bt-lst, var(--bkvpo-bt-lsd, 0px)));
124 line-height: var(--bkvpo-bt-lhm, var(--bkvpo-bt-lht, var(--bkvpo-bt-lhd, 1.2)));
125 word-spacing: var(--bkvpo-bt-wsm, var(--bkvpo-bt-wst, var(--bkvpo-bt-wsd, normal)));
126 }
127 .bkbg-vp-subtext {
128 font-size: var(--bkvpo-st-fsm, var(--bkvpo-st-fst1, var(--bkvpo-st-fsd, 12px)));
129 letter-spacing: var(--bkvpo-st-lsm, var(--bkvpo-st-lst, var(--bkvpo-st-lsd, normal)));
130 line-height: var(--bkvpo-st-lhm, var(--bkvpo-st-lht, var(--bkvpo-st-lhd, 1.5)));
131 word-spacing: var(--bkvpo-st-wsm, var(--bkvpo-st-wst, var(--bkvpo-st-wsd, normal)));
132 }
133 }
134
135 /* ── Editor preview box ─────────────────────────────────── */
136 .bkbg-vp-editor-preview {
137 max-width: 100%;
138 overflow: hidden;
139 }
140
141 /* =========================================================
142 Modal Overlay
143 ========================================================= */
144 .bkbg-vp-modal-overlay {
145 position: fixed;
146 inset: 0;
147 z-index: 999999;
148 display: flex;
149 align-items: center;
150 justify-content: center;
151 padding: 20px;
152 box-sizing: border-box;
153 opacity: 0;
154 visibility: hidden;
155 transition: opacity 0.28s cubic-bezier(.4, 0, .2, 1),
156 visibility 0.28s cubic-bezier(.4, 0, .2, 1);
157 /* background-color set via JS data attribute */
158 }
159
160 .bkbg-vp-modal-overlay.is-open {
161 opacity: 1;
162 visibility: visible;
163 }
164
165 /* ── Modal content card ─────────────────────────────────── */
166 .bkbg-vp-modal-content {
167 position: relative;
168 width: 100%;
169 /* max-width set via JS */
170 max-height: 90vh;
171 overflow: hidden;
172 transform: scale(0.86) translateY(12px);
173 transition: transform 0.3s cubic-bezier(.34, 1.36, .64, 1);
174 /* border-radius set via JS */
175 box-shadow: 0 24px 80px rgba(0, 0, 0, 0.6), 0 4px 16px rgba(0, 0, 0, 0.3);
176 background: #000;
177 }
178
179 .bkbg-vp-modal-overlay.is-open .bkbg-vp-modal-content {
180 transform: scale(1) translateY(0);
181 }
182
183 /* ── Iframe aspect-ratio wrapper ────────────────────────── */
184 .bkbg-vp-modal-iframe-wrap {
185 position: relative;
186 width: 100%;
187 /* padding-bottom set via JS to enforce aspect ratio */
188 background: #000;
189 overflow: hidden;
190 }
191
192 .bkbg-vp-modal-iframe-wrap iframe,
193 .bkbg-vp-modal-iframe-wrap video {
194 position: absolute;
195 inset: 0;
196 width: 100%;
197 height: 100%;
198 border: none;
199 display: block;
200 background: #000;
201 }
202
203 /* ── Close button ───────────────────────────────────────── */
204 .bkbg-vp-modal-close {
205 position: absolute;
206 top: -44px;
207 right: 0;
208 width: 36px;
209 height: 36px;
210 display: flex;
211 align-items: center;
212 justify-content: center;
213 background: rgba(255, 255, 255, 0.12);
214 border: 1px solid rgba(255, 255, 255, 0.22);
215 border-radius: 50%;
216 cursor: pointer;
217 padding: 0;
218 line-height: 1;
219 transition: background 0.18s ease, transform 0.18s ease;
220 /* color set via JS */
221 }
222
223 .bkbg-vp-modal-close:hover {
224 background: rgba(255, 255, 255, 0.24);
225 transform: scale(1.1);
226 }
227
228 .bkbg-vp-modal-close:focus-visible {
229 outline: 2px solid #fff;
230 outline-offset: 2px;
231 }
232
233 .bkbg-vp-modal-close svg {
234 display: block;
235 pointer-events: none;
236 }
237
238 /* ── Loading spinner inside modal ───────────────────────── */
239 .bkbg-vp-modal-loader {
240 position: absolute;
241 inset: 0;
242 display: flex;
243 align-items: center;
244 justify-content: center;
245 background: #111;
246 transition: opacity 0.3s ease;
247 pointer-events: none;
248 }
249
250 .bkbg-vp-modal-loader.is-hidden {
251 opacity: 0;
252 }
253
254 .bkbg-vp-modal-loader::after {
255 content: '';
256 width: 36px;
257 height: 36px;
258 border: 3px solid rgba(255, 255, 255, 0.15);
259 border-top-color: #fff;
260 border-radius: 50%;
261 animation: bkbg-vp-spin 0.75s linear infinite;
262 }
263
264 @keyframes bkbg-vp-spin {
265 to { transform: rotate(360deg); }
266 }
267
268 /* ── Responsive: full-screen on very small viewports ─────── */
269 @media (max-width: 500px) {
270 .bkbg-vp-modal-overlay {
271 padding: 0;
272 align-items: flex-end;
273 }
274
275 .bkbg-vp-modal-content {
276 border-radius: 16px 16px 0 0 !important;
277 max-width: 100% !important;
278 max-height: 85vh;
279 }
280
281 .bkbg-vp-modal-close {
282 top: -48px;
283 right: 8px;
284 }
285 }
286
287 /* =========================================================
288 Editor overrides
289 ========================================================= */
290
291 /* Prevent the button triggering anything in the editor — pointer events
292 are handled by Gutenberg's RichText within the button. */
293 .editor-styles-wrapper .bkbg-vp-btn {
294 pointer-events: auto; /* RichText needs this to be clickable */
295 }
296
297 /* Editor preview thumbnail */
298 .editor-styles-wrapper .bkbg-vp-editor-preview {
299 margin-top: 12px;
300 }
301