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 / content-flip-box / style.css

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

275 lines 9.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /* ========================================
2 Content Flip Box Block Styles
3 Prefix: bkbg-cfb-
4 ======================================== */
5
6 .bkbg-cfb-grid {
7 --bkbg-cfb-cols: 3;
8 --bkbg-cfb-gap: 24px;
9 --bkbg-cfb-height: 280px;
10 --bkbg-cfb-radius: 16px;
11 --bkbg-cfb-speed: 0.6s;
12 --bkbg-cfb-icon-size: 48px;
13 --bkbg-cfb-title-size: 20px;
14 --bkbg-cfb-text-size: 14px;
15 --bkbg-cfb-btn-radius: 50px;
16 --bkbg-cfb-btn-padding: 12px;
17 --bkbg-cfb-btn-font: 14px;
18 display: grid;
19 grid-template-columns: repeat(var(--bkbg-cfb-cols), 1fr);
20 gap: var(--bkbg-cfb-gap);
21 box-sizing: border-box;
22 }
23
24 /* ── Card ── */
25 .bkbg-cfb-card {
26 perspective: 1200px;
27 height: var(--bkbg-cfb-height);
28 border-radius: var(--bkbg-cfb-radius);
29 overflow: visible; /* must be visible for 3d */
30 }
31
32 /* ── Inner (rotates) ── */
33 .bkbg-cfb-inner {
34 position: relative;
35 width: 100%;
36 height: 100%;
37 transform-style: preserve-3d;
38 border-radius: var(--bkbg-cfb-radius);
39 transition: transform var(--bkbg-cfb-speed) cubic-bezier(0.4, 0, 0.2, 1);
40 }
41
42 /* ── Faces (front & back) ── */
43 .bkbg-cfb-face {
44 position: absolute;
45 inset: 0;
46 border-radius: var(--bkbg-cfb-radius);
47 backface-visibility: hidden;
48 -webkit-backface-visibility: hidden;
49 display: flex;
50 flex-direction: column;
51 align-items: center;
52 justify-content: center;
53 gap: 12px;
54 padding: 28px 24px;
55 box-sizing: border-box;
56 overflow: hidden;
57 }
58
59 /* Back face: rotated by default (hidden) */
60 .bkbg-cfb-back {
61 transform: rotateY(180deg);
62 }
63
64 /* Vertical back */
65 .bkbg-cfb-grid[data-direction="vertical"] .bkbg-cfb-back {
66 transform: rotateX(180deg);
67 }
68
69 /* Fade back: no 3D rotation */
70 .bkbg-cfb-grid[data-direction="fade"] .bkbg-cfb-back {
71 transform: none;
72 opacity: 0;
73 transition: opacity var(--bkbg-cfb-speed) ease;
74 z-index: 1;
75 }
76
77 /* ── Hover trigger (horizontal) ── */
78 .bkbg-cfb-grid[data-trigger="hover"][data-direction="horizontal"] .bkbg-cfb-card:hover .bkbg-cfb-inner {
79 transform: rotateY(180deg);
80 }
81
82 /* ── Hover trigger (vertical) ── */
83 .bkbg-cfb-grid[data-trigger="hover"][data-direction="vertical"] .bkbg-cfb-card:hover .bkbg-cfb-inner {
84 transform: rotateX(180deg);
85 }
86
87 /* ── Hover trigger (fade) ── */
88 .bkbg-cfb-grid[data-trigger="hover"][data-direction="fade"] .bkbg-cfb-card:hover .bkbg-cfb-back {
89 opacity: 1;
90 }
91
92 /* ── Click trigger: JS adds .is-flipped ── */
93 .bkbg-cfb-grid[data-trigger="click"][data-direction="horizontal"] .bkbg-cfb-card.is-flipped .bkbg-cfb-inner {
94 transform: rotateY(180deg);
95 }
96
97 .bkbg-cfb-grid[data-trigger="click"][data-direction="vertical"] .bkbg-cfb-card.is-flipped .bkbg-cfb-inner {
98 transform: rotateX(180deg);
99 }
100
101 .bkbg-cfb-grid[data-trigger="click"][data-direction="fade"] .bkbg-cfb-card.is-flipped .bkbg-cfb-back {
102 opacity: 1;
103 }
104
105 /* ── Content elements ── */
106 .bkbg-cfb-icon {
107 font-size: var(--bkbg-cfb-icon-size);
108 line-height: 1;
109 display: block;
110 }
111 .bkbg-cfb-icon svg { width: 1em; height: 1em; fill: currentColor; }
112 .bkbg-cfb-icon .dashicons { font-size: inherit; width: 1em; height: 1em; line-height: 1; }
113 .bkbg-cfb-icon .bkbg-icon-img { width: 1em; height: 1em; object-fit: contain; }
114
115 .bkbg-cfb-title {
116 font-family: var(--bkcfb-title-font-family, inherit);
117 font-size: var(--bkcfb-title-font-size-d, var(--bkcfb-title-font-size, var(--bkbg-cfb-title-size, 20px)));
118 font-weight: var(--bkcfb-title-font-weight, 700);
119 font-style: var(--bkcfb-title-font-style, normal);
120 text-transform: var(--bkcfb-title-text-transform, none);
121 text-decoration: var(--bkcfb-title-text-decoration, none);
122 line-height: var(--bkcfb-title-line-height-d, var(--bkcfb-title-line-height, 1.25));
123 letter-spacing: var(--bkcfb-title-letter-spacing-d, var(--bkcfb-title-letter-spacing, normal));
124 word-spacing: var(--bkcfb-title-word-spacing-d, var(--bkcfb-title-word-spacing, normal));
125 margin: 0;
126 }
127
128 .bkbg-cfb-text {
129 font-family: var(--bkcfb-text-font-family, inherit);
130 font-size: var(--bkcfb-text-font-size-d, var(--bkcfb-text-font-size, var(--bkbg-cfb-text-size, 14px)));
131 font-weight: var(--bkcfb-text-font-weight, 400);
132 font-style: var(--bkcfb-text-font-style, normal);
133 text-transform: var(--bkcfb-text-text-transform, none);
134 text-decoration: var(--bkcfb-text-text-decoration, none);
135 line-height: var(--bkcfb-text-line-height-d, var(--bkcfb-text-line-height, 1.6));
136 letter-spacing: var(--bkcfb-text-letter-spacing-d, var(--bkcfb-text-letter-spacing, normal));
137 word-spacing: var(--bkcfb-text-word-spacing-d, var(--bkcfb-text-word-spacing, normal));
138 opacity: 0.9;
139 margin: 0;
140 }
141
142 .bkbg-cfb-btn {
143 display: inline-flex;
144 align-items: center;
145 justify-content: center;
146 border-radius: var(--bkbg-cfb-btn-radius);
147 padding: 8px var(--bkbg-cfb-btn-padding);
148 font-size: var(--bkbg-cfb-btn-font);
149 font-weight: 600;
150 text-decoration: none;
151 transition: opacity 0.2s, transform 0.2s;
152 cursor: pointer;
153 margin-top: 4px;
154 }
155
156 .bkbg-cfb-btn:hover {
157 opacity: 0.9;
158 transform: translateY(-1px);
159 text-decoration: none;
160 }
161
162 /* ── Editor overrides ── */
163 .bkbg-editor-flip-grid.bkbg-cfb-grid {
164 pointer-events: auto;
165 }
166
167 .bkbg-editor-flip-grid .bkbg-cfb-card {
168 position: relative;
169 cursor: pointer;
170 overflow: hidden;
171 }
172
173 /* In editor we show flat faces, not 3D */
174 .bkbg-editor-flip-grid .bkbg-cfb-face {
175 position: absolute;
176 inset: 0;
177 backface-visibility: visible;
178 -webkit-backface-visibility: visible;
179 transform: none !important;
180 transition: none;
181 }
182
183 .bkbg-editor-flip-grid .bkbg-cfb-inner {
184 transform: none !important;
185 transition: none;
186 }
187
188 /* Active card border */
189 .bkbg-cfb-card--active {
190 outline: 2px dashed #6c3fb5;
191 outline-offset: -2px;
192 }
193
194 /* Tiny flip toggle button in editor */
195 .bkbg-cfb-editor-flip-btn {
196 position: absolute;
197 top: 8px;
198 right: 8px;
199 z-index: 10;
200 background: rgba(255, 255, 255, 0.85);
201 border: none;
202 border-radius: 50%;
203 width: 28px;
204 height: 28px;
205 cursor: pointer;
206 font-size: 12px;
207 display: flex;
208 align-items: center;
209 justify-content: center;
210 box-shadow: 0 1px 4px rgba(0,0,0,0.2);
211 transition: background 0.15s;
212 }
213
214 .bkbg-cfb-editor-flip-btn:hover {
215 background: white;
216 }
217
218 .bkbg-cfb-editor-active-badge {
219 position: absolute;
220 top: 8px;
221 left: 8px;
222 z-index: 10;
223 background: #6c3fb5;
224 color: white;
225 border-radius: 50%;
226 width: 24px;
227 height: 24px;
228 font-size: 12px;
229 display: flex;
230 align-items: center;
231 justify-content: center;
232 }
233
234 /* ── Responsive ── */
235 @media (max-width: 1024px) {
236 .bkbg-cfb-title {
237 font-size: var(--bkcfb-title-font-size-t, var(--bkcfb-title-font-size-d, var(--bkcfb-title-font-size, var(--bkbg-cfb-title-size, 20px))));
238 line-height: var(--bkcfb-title-line-height-t, var(--bkcfb-title-line-height-d, var(--bkcfb-title-line-height, 1.25)));
239 letter-spacing: var(--bkcfb-title-letter-spacing-t, var(--bkcfb-title-letter-spacing-d, var(--bkcfb-title-letter-spacing, normal)));
240 word-spacing: var(--bkcfb-title-word-spacing-t, var(--bkcfb-title-word-spacing-d, var(--bkcfb-title-word-spacing, normal)));
241 }
242 .bkbg-cfb-text {
243 font-size: var(--bkcfb-text-font-size-t, var(--bkcfb-text-font-size-d, var(--bkcfb-text-font-size, var(--bkbg-cfb-text-size, 14px))));
244 line-height: var(--bkcfb-text-line-height-t, var(--bkcfb-text-line-height-d, var(--bkcfb-text-line-height, 1.6)));
245 letter-spacing: var(--bkcfb-text-letter-spacing-t, var(--bkcfb-text-letter-spacing-d, var(--bkcfb-text-letter-spacing, normal)));
246 word-spacing: var(--bkcfb-text-word-spacing-t, var(--bkcfb-text-word-spacing-d, var(--bkcfb-text-word-spacing, normal)));
247 }
248 }
249 @media (max-width: 767px) {
250 .bkbg-cfb-title {
251 font-size: var(--bkcfb-title-font-size-m, var(--bkcfb-title-font-size-t, var(--bkcfb-title-font-size-d, var(--bkcfb-title-font-size, var(--bkbg-cfb-title-size, 20px)))));
252 line-height: var(--bkcfb-title-line-height-m, var(--bkcfb-title-line-height-t, var(--bkcfb-title-line-height-d, var(--bkcfb-title-line-height, 1.25))));
253 letter-spacing: var(--bkcfb-title-letter-spacing-m, var(--bkcfb-title-letter-spacing-t, var(--bkcfb-title-letter-spacing-d, var(--bkcfb-title-letter-spacing, normal))));
254 word-spacing: var(--bkcfb-title-word-spacing-m, var(--bkcfb-title-word-spacing-t, var(--bkcfb-title-word-spacing-d, var(--bkcfb-title-word-spacing, normal))));
255 }
256 .bkbg-cfb-text {
257 font-size: var(--bkcfb-text-font-size-m, var(--bkcfb-text-font-size-t, var(--bkcfb-text-font-size-d, var(--bkcfb-text-font-size, var(--bkbg-cfb-text-size, 14px)))));
258 line-height: var(--bkcfb-text-line-height-m, var(--bkcfb-text-line-height-t, var(--bkcfb-text-line-height-d, var(--bkcfb-text-line-height, 1.6))));
259 letter-spacing: var(--bkcfb-text-letter-spacing-m, var(--bkcfb-text-letter-spacing-t, var(--bkcfb-text-letter-spacing-d, var(--bkcfb-text-letter-spacing, normal))));
260 word-spacing: var(--bkcfb-text-word-spacing-m, var(--bkcfb-text-word-spacing-t, var(--bkcfb-text-word-spacing-d, var(--bkcfb-text-word-spacing, normal))));
261 }
262 }
263
264 @media (max-width: 900px) {
265 .bkbg-cfb-grid {
266 grid-template-columns: repeat(min(var(--bkbg-cfb-cols), 2), 1fr);
267 }
268 }
269
270 @media (max-width: 580px) {
271 .bkbg-cfb-grid {
272 grid-template-columns: 1fr;
273 }
274 }
275