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 / image-gallery / style.css

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

303 lines 11.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /* ===== Image Gallery Block — bkbg-ig- ===== */
2
3 .bkbg-ig-wrapper {
4 width: 100%;
5 }
6
7 /* ── Filter bar ──────────────────────────────────────────────────────────── */
8 .bkbg-ig-filter-bar {
9 display: flex;
10 flex-wrap: wrap;
11 gap: 8px;
12 margin-bottom: 20px;
13 background: var(--bkbg-ig-filter-bg, transparent);
14 padding: var(--bkbg-ig-filter-bg, 0);
15 border-radius: var(--bkbg-ig-filter-radius, 6px);
16 }
17
18 .bkbg-ig-filter-btn {
19 padding: 6px 16px;
20 border-radius: var(--bkbg-ig-filter-radius, 6px);
21 border: 1px solid var(--bkbg-ig-filter-active, #2563eb);
22 background: transparent;
23 color: var(--bkbg-ig-filter-text, var(--bkbg-ig-filter-active, #2563eb));
24 font-family: var(--bkbg-ig-ft-font-family, inherit);
25 font-size: var(--bkbg-ig-ft-font-size-d, var(--bkbg-ig-ft-sz, 13px));
26 font-weight: var(--bkbg-ig-ft-font-weight, var(--bkbg-ig-ft-w, 500));
27 font-style: var(--bkbg-ig-ft-font-style, normal);
28 text-decoration: var(--bkbg-ig-ft-text-decoration, none);
29 text-transform: var(--bkbg-ig-ft-text-transform, none);
30 line-height: var(--bkbg-ig-ft-line-height-d, var(--bkbg-ig-ft-lh, 1.4));
31 letter-spacing: var(--bkbg-ig-ft-letter-spacing-d, normal);
32 word-spacing: var(--bkbg-ig-ft-word-spacing-d, normal);
33 cursor: pointer;
34 transition: background 0.2s, color 0.2s;
35 }
36
37 .bkbg-ig-filter-btn.is-active,
38 .bkbg-ig-filter-btn:hover {
39 background: var(--bkbg-ig-filter-active, #2563eb);
40 color: #fff;
41 }
42
43 /* ── Grid layout ─────────────────────────────────────────────────────────── */
44 .bkbg-ig-layout-grid .bkbg-ig-grid,
45 .bkbg-ig-layout-justified .bkbg-ig-grid {
46 display: grid;
47 grid-template-columns: repeat(var(--bkbg-ig-cols, 3), 1fr);
48 gap: var(--bkbg-ig-gap, 12px);
49 }
50
51 /* ── Masonry layout ──────────────────────────────────────────────────────── */
52 .bkbg-ig-layout-masonry .bkbg-ig-grid {
53 columns: var(--bkbg-ig-cols, 3);
54 gap: 0;
55 column-gap: var(--bkbg-ig-gap, 12px);
56 }
57
58 .bkbg-ig-layout-masonry .bkbg-ig-item {
59 break-inside: avoid;
60 margin-bottom: var(--bkbg-ig-gap, 12px);
61 }
62
63 /* ── Gallery item ────────────────────────────────────────────────────────── */
64 .bkbg-ig-item {
65 position: relative;
66 overflow: hidden;
67 border-radius: var(--bkbg-ig-radius, 8px);
68 background: var(--bkbg-ig-bg, #f0f4f8);
69 }
70
71 /* ── Link wrapper ────────────────────────────────────────────────────────── */
72 .bkbg-ig-link {
73 display: block;
74 position: relative;
75 overflow: hidden;
76 text-decoration: none;
77 width: 100%;
78 height: 100%;
79 }
80
81 /* ── Image ───────────────────────────────────────────────────────────────── */
82 .bkbg-ig-img {
83 display: block;
84 width: 100%;
85 height: 100%;
86 object-fit: cover;
87 transition: transform 0.4s ease;
88 }
89
90 /* ── Overlay ─────────────────────────────────────────────────────────────── */
91 .bkbg-ig-overlay {
92 position: absolute;
93 inset: 0;
94 background: var(--bkbg-ig-hover-bg, rgba(0,0,0,0.45));
95 opacity: 0;
96 display: flex;
97 align-items: center;
98 justify-content: center;
99 transition: opacity 0.3s ease;
100 color: var(--bkbg-ig-icon-color, #fff);
101 }
102
103 .bkbg-ig-link:hover .bkbg-ig-overlay,
104 .bkbg-ig-link:focus .bkbg-ig-overlay { opacity: 1; }
105
106 .bkbg-ig-eye-icon { flex-shrink: 0; }
107
108 /* ── Hover effects ───────────────────────────────────────────────────────── */
109 /* Zoom */
110 .bkbg-ig-hover-zoom .bkbg-ig-link:hover .bkbg-ig-img,
111 .bkbg-ig-hover-zoom .bkbg-ig-link:focus .bkbg-ig-img {
112 transform: scale(1.08);
113 }
114
115 /* Fade overlay handled by overlay opacity above */
116 .bkbg-ig-hover-fade .bkbg-ig-overlay { display: flex; }
117
118 /* Caption slide */
119 .bkbg-ig-hover-caption-slide .bkbg-ig-caption-hover {
120 transform: translateY(100%);
121 transition: transform 0.35s ease;
122 }
123 .bkbg-ig-hover-caption-slide .bkbg-ig-link:hover .bkbg-ig-caption-hover,
124 .bkbg-ig-hover-caption-slide .bkbg-ig-link:focus .bkbg-ig-caption-hover {
125 transform: translateY(0);
126 }
127
128 /* Grayscale */
129 .bkbg-ig-hover-grayscale .bkbg-ig-img { filter: grayscale(80%); }
130 .bkbg-ig-hover-grayscale .bkbg-ig-link:hover .bkbg-ig-img,
131 .bkbg-ig-hover-grayscale .bkbg-ig-link:focus .bkbg-ig-img { filter: grayscale(0%); }
132
133 /* ── Captions ────────────────────────────────────────────────────────────── */
134 .bkbg-ig-caption {
135 position: absolute;
136 bottom: 0;
137 left: 0;
138 right: 0;
139 padding: 10px 12px;
140 background: var(--bkbg-ig-cap-bg, rgba(0,0,0,0.55));
141 color: var(--bkbg-ig-cap-color, #fff);
142 font-family: var(--bkbg-ig-cp-font-family, inherit);
143 font-size: var(--bkbg-ig-cp-font-size-d, var(--bkbg-ig-cp-sz, 13px));
144 font-weight: var(--bkbg-ig-cp-font-weight, var(--bkbg-ig-cp-w, 400));
145 font-style: var(--bkbg-ig-cp-font-style, normal);
146 text-decoration: var(--bkbg-ig-cp-text-decoration, none);
147 text-transform: var(--bkbg-ig-cp-text-transform, none);
148 line-height: var(--bkbg-ig-cp-line-height-d, var(--bkbg-ig-cp-lh, 1.4));
149 letter-spacing: var(--bkbg-ig-cp-letter-spacing-d, normal);
150 word-spacing: var(--bkbg-ig-cp-word-spacing-d, normal);
151 }
152
153 .bkbg-ig-caption-hover {
154 transform: translateY(100%);
155 transition: transform 0.3s ease;
156 }
157
158 .bkbg-ig-link:hover .bkbg-ig-caption-hover,
159 .bkbg-ig-link:focus .bkbg-ig-caption-hover { transform: translateY(0); }
160
161 /* ── Filter hidden items ─────────────────────────────────────────────────── */
162 .bkbg-ig-item.is-hidden {
163 display: none;
164 }
165
166 /* ── Lightbox overlay ────────────────────────────────────────────────────── */
167 .bkbg-ig-lightbox {
168 position: fixed;
169 inset: 0;
170 z-index: 99999;
171 background: rgba(0, 0, 0, 0.92);
172 display: flex;
173 align-items: center;
174 justify-content: center;
175 opacity: 0;
176 pointer-events: none;
177 transition: opacity 0.3s ease;
178 }
179
180 .bkbg-ig-lightbox.is-open {
181 opacity: 1;
182 pointer-events: auto;
183 }
184
185 .bkbg-ig-lb-inner {
186 position: relative;
187 max-width: 90vw;
188 max-height: 90vh;
189 display: flex;
190 align-items: center;
191 justify-content: center;
192 }
193
194 .bkbg-ig-lb-img {
195 max-width: 90vw;
196 max-height: 85vh;
197 object-fit: contain;
198 border-radius: 4px;
199 display: block;
200 box-shadow: 0 12px 60px rgba(0,0,0,0.6);
201 transition: opacity 0.2s;
202 }
203
204 .bkbg-ig-lb-caption {
205 position: absolute;
206 bottom: -36px;
207 left: 0;
208 right: 0;
209 text-align: center;
210 color: #ccc;
211 font-size: 14px;
212 }
213
214 .bkbg-ig-lb-close,
215 .bkbg-ig-lb-prev,
216 .bkbg-ig-lb-next {
217 position: fixed;
218 background: rgba(255,255,255,0.1);
219 border: none;
220 color: #fff;
221 cursor: pointer;
222 border-radius: 50%;
223 width: 44px;
224 height: 44px;
225 display: flex;
226 align-items: center;
227 justify-content: center;
228 transition: background 0.2s;
229 font-size: 20px;
230 line-height: 1;
231 }
232
233 .bkbg-ig-lb-close:hover,
234 .bkbg-ig-lb-prev:hover,
235 .bkbg-ig-lb-next:hover { background: rgba(255,255,255,0.22); }
236
237 .bkbg-ig-lb-close { top: 20px; right: 20px; }
238 .bkbg-ig-lb-prev { left: 20px; top: 50%; transform: translateY(-50%); }
239 .bkbg-ig-lb-next { right: 20px; top: 50%; transform: translateY(-50%); }
240
241 .bkbg-ig-lb-counter {
242 position: fixed;
243 bottom: 20px;
244 left: 50%;
245 transform: translateX(-50%);
246 color: rgba(255,255,255,0.6);
247 font-size: 13px;
248 pointer-events: none;
249 }
250
251 /* ── Responsive typography ────────────────────────────────────────────────── */
252 @media (max-width: 1024px) {
253 .bkbg-ig-caption {
254 font-size: var(--bkbg-ig-cp-font-size-t, var(--bkbg-ig-cp-font-size-d, var(--bkbg-ig-cp-sz, 13px)));
255 line-height: var(--bkbg-ig-cp-line-height-t, var(--bkbg-ig-cp-line-height-d, var(--bkbg-ig-cp-lh, 1.4)));
256 letter-spacing: var(--bkbg-ig-cp-letter-spacing-t, var(--bkbg-ig-cp-letter-spacing-d, normal));
257 word-spacing: var(--bkbg-ig-cp-word-spacing-t, var(--bkbg-ig-cp-word-spacing-d, normal));
258 }
259 .bkbg-ig-filter-btn {
260 font-size: var(--bkbg-ig-ft-font-size-t, var(--bkbg-ig-ft-font-size-d, var(--bkbg-ig-ft-sz, 13px)));
261 line-height: var(--bkbg-ig-ft-line-height-t, var(--bkbg-ig-ft-line-height-d, var(--bkbg-ig-ft-lh, 1.4)));
262 letter-spacing: var(--bkbg-ig-ft-letter-spacing-t, var(--bkbg-ig-ft-letter-spacing-d, normal));
263 word-spacing: var(--bkbg-ig-ft-word-spacing-t, var(--bkbg-ig-ft-word-spacing-d, normal));
264 }
265 }
266 @media (max-width: 767px) {
267 .bkbg-ig-caption {
268 font-size: var(--bkbg-ig-cp-font-size-m, var(--bkbg-ig-cp-font-size-t, var(--bkbg-ig-cp-font-size-d, var(--bkbg-ig-cp-sz, 13px))));
269 line-height: var(--bkbg-ig-cp-line-height-m, var(--bkbg-ig-cp-line-height-t, var(--bkbg-ig-cp-line-height-d, var(--bkbg-ig-cp-lh, 1.4))));
270 letter-spacing: var(--bkbg-ig-cp-letter-spacing-m, var(--bkbg-ig-cp-letter-spacing-t, var(--bkbg-ig-cp-letter-spacing-d, normal)));
271 word-spacing: var(--bkbg-ig-cp-word-spacing-m, var(--bkbg-ig-cp-word-spacing-t, var(--bkbg-ig-cp-word-spacing-d, normal)));
272 }
273 .bkbg-ig-filter-btn {
274 font-size: var(--bkbg-ig-ft-font-size-m, var(--bkbg-ig-ft-font-size-t, var(--bkbg-ig-ft-font-size-d, var(--bkbg-ig-ft-sz, 13px))));
275 line-height: var(--bkbg-ig-ft-line-height-m, var(--bkbg-ig-ft-line-height-t, var(--bkbg-ig-ft-line-height-d, var(--bkbg-ig-ft-lh, 1.4))));
276 letter-spacing: var(--bkbg-ig-ft-letter-spacing-m, var(--bkbg-ig-ft-letter-spacing-t, var(--bkbg-ig-ft-letter-spacing-d, normal)));
277 word-spacing: var(--bkbg-ig-ft-word-spacing-m, var(--bkbg-ig-ft-word-spacing-t, var(--bkbg-ig-ft-word-spacing-d, normal)));
278 }
279 }
280
281 /* ── Responsive ──────────────────────────────────────────────────────────── */
282 @media (max-width: 768px) {
283 .bkbg-ig-layout-grid .bkbg-ig-grid,
284 .bkbg-ig-layout-justified .bkbg-ig-grid {
285 grid-template-columns: repeat(var(--bkbg-ig-cols-tab, 2), 1fr);
286 }
287 .bkbg-ig-layout-masonry .bkbg-ig-grid {
288 columns: var(--bkbg-ig-cols-tab, 2);
289 }
290 }
291
292 @media (max-width: 480px) {
293 .bkbg-ig-layout-grid .bkbg-ig-grid,
294 .bkbg-ig-layout-justified .bkbg-ig-grid {
295 grid-template-columns: repeat(var(--bkbg-ig-cols-mob, 1), 1fr);
296 }
297 .bkbg-ig-layout-masonry .bkbg-ig-grid {
298 columns: var(--bkbg-ig-cols-mob, 1);
299 }
300 .bkbg-ig-lb-prev { left: 6px; }
301 .bkbg-ig-lb-next { right: 6px; }
302 }
303