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 / notification-bar / style.css

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

171 lines 5.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /* =========================================================
2 Notification Bar – bkbg-nb-*
3 ========================================================= */
4
5 /* ── Variables (set via inline style on .bkbg-nb-bar) ── */
6 .bkbg-nb-bar {
7 --bkbg-nb-bg: #2563eb;
8 --bkbg-nb-text: #ffffff;
9 --bkbg-nb-link: #bfdbfe;
10 --bkbg-nb-close: #93c5fd;
11 --bkbg-nb-fs: 14px;
12 --bkbg-nb-pad: 12px;
13
14 background: var(--bkbg-nb-bg);
15 color: var(--bkbg-nb-text);
16 font-size: var(--bkbg-nb-fs);
17 padding: var(--bkbg-nb-pad) 0;
18 width: 100%;
19 box-sizing: border-box;
20 z-index: 9999;
21 will-change: transform, opacity;
22 }
23
24 /* ── Sticky states (applied to outer wrapper by frontend.js) ── */
25 .bkbg-nb-wrap--top-sticky {
26 position: fixed;
27 top: 0;
28 left: 0;
29 right: 0;
30 }
31 .bkbg-nb-wrap--bottom-sticky {
32 position: fixed;
33 bottom: 0;
34 left: 0;
35 right: 0;
36 }
37
38 /* ── Inner layout ── */
39 .bkbg-nb-inner {
40 max-width: 1200px;
41 margin: 0 auto;
42 padding: 0 20px;
43 display: flex;
44 align-items: center;
45 justify-content: space-between;
46 gap: 16px;
47 }
48
49 .bkbg-nb-content {
50 display: flex;
51 align-items: center;
52 gap: 10px;
53 flex: 1;
54 flex-wrap: wrap;
55 justify-content: center;
56 }
57
58 /* ── Icon ── */
59 .bkbg-nb-icon {
60 display: inline-flex;
61 align-items: center;
62 flex-shrink: 0;
63 line-height: 1;
64 }
65 .bkbg-nb-icon svg,
66 .bkbg-nb-icon img {
67 width: 16px;
68 height: 16px;
69 }
70 /* Inline SVG icons rendered by frontend.js */
71 .bkbg-nb-icon--info::before { content: 'ℹ️'; }
72 .bkbg-nb-icon--warning::before { content: '⚠️'; }
73 .bkbg-nb-icon--star::before { content: ''; }
74 .bkbg-nb-icon--megaphone::before { content: '📢'; }
75 .bkbg-nb-icon--bell::before { content: '🔔'; }
76
77 /* ── Message ── */
78 .bkbg-nb-message {
79 font-family: var(--bkbg-nb-msg-font-family, inherit);
80 font-size: var(--bkbg-nb-msg-font-size-d, var(--bkbg-nb-fs, 14px));
81 font-weight: var(--bkbg-nb-msg-font-weight, var(--bkbg-nb-fw, 500));
82 font-style: var(--bkbg-nb-msg-font-style, normal);
83 text-decoration: var(--bkbg-nb-msg-text-decoration, none);
84 text-transform: var(--bkbg-nb-msg-text-transform, none);
85 line-height: var(--bkbg-nb-msg-line-height-d, var(--bkbg-nb-lh, 1.4));
86 letter-spacing: var(--bkbg-nb-msg-letter-spacing-d, normal);
87 word-spacing: var(--bkbg-nb-msg-word-spacing-d, normal);
88 }
89 .bkbg-nb-message strong,
90 .bkbg-nb-message b { font-weight: 700; }
91
92 /* ── CTA link ── */
93 .bkbg-nb-link {
94 color: var(--bkbg-nb-link);
95 font-weight: 700;
96 text-decoration: underline;
97 text-underline-offset: 2px;
98 white-space: nowrap;
99 transition: opacity 0.2s;
100 }
101 .bkbg-nb-link:hover { opacity: 0.8; }
102
103 /* ── Close button ── */
104 .bkbg-nb-close {
105 background: none;
106 border: none;
107 cursor: pointer;
108 color: var(--bkbg-nb-close);
109 display: flex;
110 align-items: center;
111 justify-content: center;
112 padding: 4px;
113 border-radius: 4px;
114 flex-shrink: 0;
115 opacity: 0.85;
116 transition: opacity 0.2s;
117 }
118 .bkbg-nb-close:hover { opacity: 1; }
119 .bkbg-nb-close svg {
120 width: 16px;
121 height: 16px;
122 pointer-events: none;
123 }
124
125 /* ── Animations ── */
126 @keyframes bkbg-nb-slide-down { from { transform: translateY(-100%); } to { transform: translateY(0); } }
127 @keyframes bkbg-nb-slide-up { from { transform: translateY(100%); } to { transform: translateY(0); } }
128 @keyframes bkbg-nb-fade-in { from { opacity: 0; } to { opacity: 1; } }
129
130 .bkbg-nb-wrap--anim-slide.bkbg-nb-wrap--top-sticky { animation: bkbg-nb-slide-down 0.35s ease forwards; }
131 .bkbg-nb-wrap--anim-slide.bkbg-nb-wrap--bottom-sticky { animation: bkbg-nb-slide-up 0.35s ease forwards; }
132 .bkbg-nb-wrap--anim-fade { animation: bkbg-nb-fade-in 0.35s ease forwards; }
133
134 /* hidden until JS shows it */
135 .bkbg-nb-wrap[data-delay] { opacity: 0; }
136 .bkbg-nb-wrap--visible { opacity: 1; }
137
138 /* ── Push body down when top-sticky so content isn't obscured ── */
139 body.bkbg-nb-push-top { transition: padding-top 0.35s ease; }
140 body.bkbg-nb-push-bottom { transition: padding-bottom 0.35s ease; }
141
142 /* ── Editor preview label ── */
143 .bkbg-nb-editor-wrap {
144 padding: 8px 0;
145 }
146 .bkbg-nb-preview-label {
147 font-size: 11px;
148 color: #6b7280;
149 margin-bottom: 6px;
150 font-style: italic;
151 }
152
153 @media (max-width: 1024px) {
154 /* ── Message ── */
155 .bkbg-nb-message {
156 font-size: var(--bkbg-nb-msg-font-size-t, var(--bkbg-nb-msg-font-size-d, var(--bkbg-nb-fs, 14px)));
157 line-height: var(--bkbg-nb-msg-line-height-t, var(--bkbg-nb-msg-line-height-d, var(--bkbg-nb-lh, 1.4)));
158 letter-spacing: var(--bkbg-nb-msg-letter-spacing-t, var(--bkbg-nb-msg-letter-spacing-d, normal));
159 word-spacing: var(--bkbg-nb-msg-word-spacing-t, var(--bkbg-nb-msg-word-spacing-d, normal));
160 }
161 }
162 @media (max-width: 767px) {
163 /* ── Message ── */
164 .bkbg-nb-message {
165 font-size: var(--bkbg-nb-msg-font-size-m, var(--bkbg-nb-msg-font-size-t, var(--bkbg-nb-msg-font-size-d, var(--bkbg-nb-fs, 14px))));
166 line-height: var(--bkbg-nb-msg-line-height-m, var(--bkbg-nb-msg-line-height-t, var(--bkbg-nb-msg-line-height-d, var(--bkbg-nb-lh, 1.4))));
167 letter-spacing: var(--bkbg-nb-msg-letter-spacing-m, var(--bkbg-nb-msg-letter-spacing-t, var(--bkbg-nb-msg-letter-spacing-d, normal)));
168 word-spacing: var(--bkbg-nb-msg-word-spacing-m, var(--bkbg-nb-msg-word-spacing-t, var(--bkbg-nb-msg-word-spacing-d, normal)));
169 }
170 }
171