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 / portfolio-grid / style.css

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

239 lines 5.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /* ── Portfolio Grid ─────────────────────────────────────────────────────────── */
2 .bkbg-pg-wrapper {
3 box-sizing: border-box;
4 width: 100%;
5 }
6
7 /* Filter bar */
8 .bkbg-pg-filter {
9 display: flex;
10 flex-wrap: wrap;
11 gap: 8px;
12 margin-bottom: 28px;
13 }
14
15 .bkbg-pg-filter-btn {
16 background: transparent;
17 border: 1.5px solid var(--bkbg-pg-accent, #6c3fb5);
18 color: var(--bkbg-pg-accent, #6c3fb5);
19 border-radius: 99px;
20 padding: 6px 18px;
21 font-size: 13px;
22 font-weight: 600;
23 cursor: pointer;
24 transition: background 0.18s ease, color 0.18s ease;
25 line-height: 1.4;
26 }
27
28 .bkbg-pg-filter-btn:hover,
29 .bkbg-pg-filter-btn.is-active {
30 background: var(--bkbg-pg-accent, #6c3fb5);
31 color: #fff;
32 }
33
34 .bkbg-pg-filter--tabs .bkbg-pg-filter-btn {
35 border-radius: 6px;
36 border-width: 1.5px;
37 }
38
39 /* Grid */
40 .bkbg-pg-grid {
41 display: grid;
42 grid-template-columns: repeat(var(--bkbg-pg-cols, 2), 1fr);
43 gap: var(--bkbg-pg-gap, 24px);
44 }
45
46 /* Card */
47 .bkbg-pg-card {
48 position: relative;
49 overflow: hidden;
50 border-radius: var(--bkbg-pg-radius, 14px);
51 background: var(--bkbg-pg-card-bg, #fff);
52 transition: transform 0.24s ease, box-shadow 0.24s ease;
53 cursor: pointer;
54 }
55
56 .bkbg-pg-card.bkbg-pg-shadow--sm { box-shadow: 0 1px 4px rgba(0,0,0,0.07); }
57 .bkbg-pg-card.bkbg-pg-shadow--md { box-shadow: 0 4px 16px rgba(0,0,0,0.10); }
58
59 /* Hover: lift */
60 .bkbg-pg-card.bkbg-pg-hover--lift:hover {
61 transform: translateY(-6px);
62 box-shadow: 0 12px 32px rgba(0,0,0,0.14);
63 }
64
65 /* Image area */
66 .bkbg-pg-img-wrap {
67 position: relative;
68 width: 100%;
69 overflow: hidden;
70 }
71
72 .bkbg-pg-img-wrap img {
73 position: absolute;
74 inset: 0;
75 width: 100%;
76 height: 100%;
77 object-fit: cover;
78 transition: transform 0.36s ease;
79 display: block;
80 }
81
82 .bkbg-pg-card:hover .bkbg-pg-img-wrap img {
83 transform: scale(1.05);
84 }
85
86 /* Overlay */
87 .bkbg-pg-overlay {
88 position: absolute;
89 inset: 0;
90 background: var(--bkbg-pg-overlay-bg, rgba(17,24,39,0.82));
91 color: var(--bkbg-pg-overlay-text, #fff);
92 display: flex;
93 flex-direction: column;
94 justify-content: flex-end;
95 padding: 20px;
96 opacity: 0;
97 transition: opacity 0.3s ease;
98 }
99
100 .bkbg-pg-card.bkbg-pg-hover--overlay:hover .bkbg-pg-overlay {
101 opacity: 1;
102 }
103
104 .bkbg-pg-overlay-title {
105 font-size: 15px;
106 font-weight: 700;
107 margin: 0 0 8px;
108 }
109
110 .bkbg-pg-overlay-desc {
111 font-size: 12px;
112 margin: 0 0 10px;
113 opacity: 0.85;
114 line-height: 1.5;
115 }
116
117 .bkbg-pg-overlay-cta {
118 display: inline-block;
119 font-size: 12px;
120 font-weight: 700;
121 color: inherit;
122 border: 1.5px solid rgba(255,255,255,0.7);
123 padding: 5px 14px;
124 border-radius: 6px;
125 text-decoration: none;
126 align-self: flex-start;
127 transition: background 0.18s ease;
128 }
129
130 .bkbg-pg-overlay-cta:hover {
131 background: rgba(255,255,255,0.2);
132 }
133
134 /* Category badge (above overlay) */
135 .bkbg-pg-cat-badge {
136 position: absolute;
137 top: 12px;
138 left: 12px;
139 background: var(--bkbg-pg-accent, #6c3fb5);
140 color: #fff;
141 font-size: 10px;
142 font-weight: 700;
143 text-transform: uppercase;
144 letter-spacing: 0.06em;
145 padding: 3px 10px;
146 border-radius: 99px;
147 z-index: 1;
148 }
149
150 /* Card body (info below image) */
151 .bkbg-pg-body {
152 padding: 16px 18px 20px;
153 }
154
155 .bkbg-pg-title {
156 font-size: var(--bkbg-pg-title-size, 18px);
157 font-weight: 700;
158 color: var(--bkbg-pg-title-color, #111827);
159 margin: 0 0 6px;
160 line-height: 1.3;
161 }
162
163 .bkbg-pg-desc {
164 font-size: var(--bkbg-pg-desc-size, 14px);
165 color: var(--bkbg-pg-desc-color, #6b7280);
166 margin: 0 0 10px;
167 line-height: 1.55;
168 }
169
170 /* Tech tags */
171 .bkbg-pg-tags {
172 display: flex;
173 flex-wrap: wrap;
174 gap: 6px;
175 margin-bottom: 12px;
176 }
177
178 .bkbg-pg-tag {
179 background: var(--bkbg-pg-tag-bg, #f3f0f9);
180 color: var(--bkbg-pg-tag-color, #6c3fb5);
181 font-size: var(--bkbg-pg-tag-size, 11px);
182 font-weight: 600;
183 padding: 3px 10px;
184 border-radius: 99px;
185 }
186
187 /* CTA link below body */
188 .bkbg-pg-cta {
189 display: inline-block;
190 font-size: var(--bkbg-pg-cta-size, 13px);
191 font-weight: 700;
192 color: var(--bkbg-pg-accent, #6c3fb5);
193 text-decoration: none;
194 padding: 6px 0;
195 transition: opacity 0.18s;
196 }
197
198 .bkbg-pg-cta:hover { opacity: 0.75; }
199
200 /* Slide-up hover style */
201 .bkbg-pg-card.bkbg-pg-hover--slide-up .bkbg-pg-body {
202 transform: translateY(0);
203 transition: transform 0.28s ease;
204 }
205
206 .bkbg-pg-card.bkbg-pg-hover--slide-up:hover .bkbg-pg-body {
207 transform: translateY(-4px);
208 }
209
210 /* Hidden filter items */
211 .bkbg-pg-card.bkbg-pg-hidden {
212 display: none;
213 }
214
215 /* ── Animate on scroll ──────────────────────────────────────────────────────── */
216 .bkbg-pg-card.bkbg-pg-anim {
217 opacity: 0;
218 transform: translateY(24px);
219 transition: opacity 0.5s ease, transform 0.5s ease;
220 }
221
222 .bkbg-pg-card.bkbg-pg-anim.bkbg-pg-visible {
223 opacity: 1;
224 transform: translateY(0);
225 }
226
227 /* ── Responsive ─────────────────────────────────────────────────────────────── */
228 @media (max-width: 768px) {
229 .bkbg-pg-grid {
230 grid-template-columns: repeat(var(--bkbg-pg-cols-tablet, 1), 1fr);
231 }
232 }
233
234 @media (max-width: 480px) {
235 .bkbg-pg-grid {
236 grid-template-columns: 1fr;
237 }
238 }
239