PluginProbe
Blockenberg — 600+ Advanced Gutenberg Blocks & AI Agent for WordPress Block Editor / 2.0.6
Blockenberg — 600+ Advanced Gutenberg Blocks & AI Agent for WordPress Block Editor v2.0.6
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 / marquee / style.css

style.css in Blockenberg — 600+ Advanced Gutenberg Blocks & AI Agent for WordPress Block Editor 2.0.6, at blocks/marquee/style.css

241 lines 5.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /* ========================================
2 Marquee / Announcement Bar
3 ======================================== */
4
5 .bkbg-marquee-wrap {
6 --bkbg-mq-bg: #1e40af;
7 --bkbg-mq-color: #ffffff;
8 --bkbg-mq-link-hover: #fbbf24;
9 --bkbg-mq-py: 12px;
10 --bkbg-mq-px: 20px;
11 --bkbg-mq-font-size: 15px;
12 --bkbg-mq-font-weight: 500;
13 --bkbg-mq-letter-spacing: 0;
14 --bkbg-mq-speed: 50s;
15 --bkbg-mq-sep-spacing: 40px;
16 --bkbg-mq-border-color: rgba(255,255,255,0.2);
17 --bkbg-mq-border-width: 1px;
18 --bkbg-mq-close-color: #ffffff;
19 --bkbg-mq-z-index: 999;
20
21 position: relative;
22 width: 100%;
23 background: var(--bkbg-mq-bg);
24 color: var(--bkbg-mq-color);
25 overflow: hidden;
26 }
27
28 .bkbg-marquee-wrap.has-shadow {
29 box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
30 }
31
32 .bkbg-marquee-wrap.has-border-top {
33 border-top: var(--bkbg-mq-border-width) solid var(--bkbg-mq-border-color);
34 }
35
36 .bkbg-marquee-wrap.has-border-bottom {
37 border-bottom: var(--bkbg-mq-border-width) solid var(--bkbg-mq-border-color);
38 }
39
40 .bkbg-marquee-wrap.is-sticky {
41 position: fixed;
42 left: 0;
43 right: 0;
44 z-index: var(--bkbg-mq-z-index);
45 }
46
47 .bkbg-marquee-wrap.is-sticky-top {
48 top: 0;
49 }
50
51 .bkbg-marquee-wrap.is-sticky-bottom {
52 bottom: 0;
53 }
54
55 .bkbg-marquee-wrap.is-hidden {
56 display: none;
57 }
58
59 .bkbg-marquee-inner {
60 display: flex;
61 align-items: center;
62 padding: var(--bkbg-mq-py) var(--bkbg-mq-px);
63 overflow: hidden;
64 position: relative;
65 }
66
67 .bkbg-marquee-track {
68 display: flex;
69 flex-shrink: 0;
70 animation: bkbg-marquee-scroll var(--bkbg-mq-speed) linear infinite;
71 will-change: transform;
72 }
73
74 .bkbg-marquee-wrap[data-direction="right"] .bkbg-marquee-track {
75 animation-name: bkbg-marquee-scroll-right;
76 }
77
78 .bkbg-marquee-wrap.is-paused .bkbg-marquee-track,
79 .bkbg-marquee-wrap:hover .bkbg-marquee-track {
80 animation-play-state: paused;
81 }
82
83 .bkbg-marquee-wrap:not([data-pause-hover="1"]):hover .bkbg-marquee-track {
84 animation-play-state: running;
85 }
86
87 /* Respect reduced motion preference */
88 @media (prefers-reduced-motion: reduce) {
89 .bkbg-marquee-wrap.respects-motion .bkbg-marquee-track {
90 animation: none;
91 }
92 }
93
94 .bkbg-marquee-content {
95 display: flex;
96 align-items: center;
97 flex-shrink: 0;
98 padding-right: var(--bkbg-mq-sep-spacing);
99 }
100
101 .bkbg-marquee-item {
102 display: inline-flex;
103 align-items: center;
104 font-size: var(--bkbg-mq-font-size);
105 font-weight: var(--bkbg-mq-font-weight);
106 letter-spacing: var(--bkbg-mq-letter-spacing);
107 white-space: nowrap;
108 color: inherit;
109 text-decoration: none;
110 transition: color 180ms ease;
111 }
112
113 a.bkbg-marquee-item:hover {
114 color: var(--bkbg-mq-link-hover);
115 }
116
117 .bkbg-marquee-separator {
118 display: inline-block;
119 margin: 0 var(--bkbg-mq-sep-spacing);
120 opacity: 0.5;
121 font-size: var(--bkbg-mq-font-size);
122 }
123
124 .bkbg-marquee-gap {
125 display: inline-block;
126 width: var(--bkbg-mq-sep-spacing);
127 height: 1px;
128 flex: 0 0 auto;
129 }
130
131 /* Close button */
132 .bkbg-marquee-close {
133 position: absolute;
134 right: 10px;
135 top: 50%;
136 transform: translateY(-50%);
137 width: 28px;
138 height: 28px;
139 border: 0;
140 background: transparent;
141 color: var(--bkbg-mq-close-color);
142 cursor: pointer;
143 display: flex;
144 align-items: center;
145 justify-content: center;
146 border-radius: 4px;
147 opacity: 0.7;
148 transition: opacity 180ms ease, background 180ms ease;
149 z-index: 2;
150 }
151
152 .bkbg-marquee-close:hover {
153 opacity: 1;
154 background: rgba(0, 0, 0, 0.1);
155 }
156
157 .bkbg-marquee-close svg {
158 width: 16px;
159 height: 16px;
160 fill: currentColor;
161 }
162
163 /* Keyframes */
164 @keyframes bkbg-marquee-scroll {
165 0% {
166 transform: translateX(0);
167 }
168 100% {
169 transform: translateX(-50%);
170 }
171 }
172
173 @keyframes bkbg-marquee-scroll-right {
174 0% {
175 transform: translateX(-50%);
176 }
177 100% {
178 transform: translateX(0);
179 }
180 }
181
182 /* Editor styles */
183 .editor-styles-wrapper .bkbg-marquee-wrap {
184 outline: 1px dashed rgba(0, 124, 186, 0.25);
185 outline-offset: -1px;
186 /* Ensure editor label (::before) is visible (not clipped) */
187 overflow: visible;
188 }
189
190 .bkbg-marquee-editor-items {
191 padding: 16px;
192 background: rgba(0, 0, 0, 0.03);
193 border-radius: 8px;
194 margin-bottom: 12px;
195 }
196
197 .bkbg-marquee-editor-item {
198 display: grid;
199 grid-template-columns: 1fr auto;
200 gap: 8px;
201 padding: 12px;
202 background: #fff;
203 border: 1px solid rgba(0, 0, 0, 0.1);
204 border-radius: 6px;
205 margin-bottom: 8px;
206 align-items: start;
207 }
208
209 .bkbg-marquee-editor-item:last-child {
210 margin-bottom: 0;
211 }
212
213 .bkbg-marquee-editor-item-fields {
214 display: grid;
215 gap: 8px;
216 }
217
218 .bkbg-marquee-editor-item-actions {
219 display: flex;
220 flex-direction: column;
221 gap: 4px;
222 }
223
224 .bkbg-marquee-editor-item-actions button {
225 padding: 4px 8px;
226 font-size: 11px;
227 }
228
229 /* Text transform classes */
230 .bkbg-marquee-wrap.text-uppercase .bkbg-marquee-item {
231 text-transform: uppercase;
232 }
233
234 .bkbg-marquee-wrap.text-lowercase .bkbg-marquee-item {
235 text-transform: lowercase;
236 }
237
238 .bkbg-marquee-wrap.text-capitalize .bkbg-marquee-item {
239 text-transform: capitalize;
240 }
241