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 / typing-speed-test / style.css

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

291 lines 6.9 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 .bkbg-tst-app {
2 font-family: system-ui, -apple-system, sans-serif;
3 box-sizing: border-box;
4 }
5
6 .bkbg-tst-wrap {
7 border-radius: 12px;
8 padding: 28px;
9 margin: 0 auto;
10 }
11
12 .bkbg-tst-title {
13 font-family: var(--bktst-tt-ff, inherit);
14 font-size: var(--bktst-tt-fsd, 26px);
15 line-height: var(--bktst-tt-lhd, 1.2);
16 letter-spacing: var(--bktst-tt-lsd, normal);
17 word-spacing: var(--bktst-tt-wsd, normal);
18 font-weight: var(--bktst-tt-fw, 700);
19 font-style: var(--bktst-tt-fst, normal);
20 text-decoration: var(--bktst-tt-td, none);
21 text-transform: var(--bktst-tt-tt, none);
22 margin: 0 0 6px;
23 }
24
25 .bkbg-tst-subtitle {
26 font-family: var(--bktst-st-ff, inherit);
27 font-size: var(--bktst-st-fsd, 15px);
28 line-height: var(--bktst-st-lhd, 1.4);
29 letter-spacing: var(--bktst-st-lsd, normal);
30 word-spacing: var(--bktst-st-wsd, normal);
31 font-weight: var(--bktst-st-fw, normal);
32 font-style: var(--bktst-st-fst, normal);
33 text-decoration: var(--bktst-st-td, none);
34 text-transform: var(--bktst-st-tt, none);
35 margin: 0 0 22px;
36 }
37
38 /* Stats row */
39 .bkbg-tst-stats {
40 display: flex;
41 gap: 12px;
42 justify-content: space-between;
43 flex-wrap: wrap;
44 border-radius: 10px;
45 padding: 18px 20px;
46 margin-bottom: 14px;
47 box-shadow: 0 2px 8px rgba(0,0,0,0.06);
48 }
49
50 .bkbg-tst-stat {
51 text-align: center;
52 flex: 1;
53 min-width: 70px;
54 }
55
56 .bkbg-tst-stat-val {
57 font-size: 28px;
58 font-weight: 700;
59 line-height: 1.2;
60 transition: color 0.2s;
61 }
62
63 .bkbg-tst-stat-lbl {
64 font-size: 12px;
65 margin-top: 3px;
66 opacity: 0.65;
67 }
68
69 /* Timer ring */
70 .bkbg-tst-timer-ring {
71 position: relative;
72 display: inline-flex;
73 align-items: center;
74 justify-content: center;
75 width: 56px;
76 height: 56px;
77 margin: 0 auto;
78 }
79
80 .bkbg-tst-timer-ring svg {
81 position: absolute;
82 top: 0; left: 0;
83 transform: rotate(-90deg);
84 }
85
86 .bkbg-tst-timer-ring circle {
87 fill: none;
88 stroke-width: 4;
89 stroke-linecap: round;
90 transition: stroke-dashoffset 1s linear;
91 }
92
93 /* Difficulty buttons */
94 .bkbg-tst-diff-btns {
95 display: flex;
96 gap: 8px;
97 margin-bottom: 14px;
98 flex-wrap: wrap;
99 }
100
101 .bkbg-tst-diff-btn {
102 border: none;
103 border-radius: 6px;
104 padding: 6px 18px;
105 font-size: 13px;
106 font-weight: 600;
107 cursor: pointer;
108 transition: background 0.15s, color 0.15s;
109 }
110
111 /* Text display */
112 .bkbg-tst-text-box {
113 border-radius: 10px;
114 padding: 20px;
115 font-family: 'Courier New', Courier, monospace;
116 font-size: 17px;
117 line-height: 1.9;
118 letter-spacing: 0.02em;
119 min-height: 100px;
120 margin-bottom: 14px;
121 box-shadow: 0 2px 8px rgba(0,0,0,0.06);
122 user-select: none;
123 position: relative;
124 overflow: hidden;
125 }
126
127 .bkbg-tst-char {
128 position: relative;
129 display: inline;
130 }
131
132 .bkbg-tst-char-correct { }
133 .bkbg-tst-char-error { border-radius: 2px; }
134 .bkbg-tst-char-cursor {
135 position: relative;
136 }
137 .bkbg-tst-char-cursor::before {
138 content: '';
139 position: absolute;
140 left: 0;
141 top: 2px;
142 bottom: 2px;
143 width: 2px;
144 border-radius: 1px;
145 animation: bkbg-tst-blink 1s step-end infinite;
146 }
147 @keyframes bkbg-tst-blink {
148 0%, 100% { opacity: 1; }
149 50% { opacity: 0; }
150 }
151
152 /* Input */
153 .bkbg-tst-input {
154 width: 100%;
155 border-radius: 8px;
156 padding: 14px;
157 font-size: 15px;
158 font-family: 'Courier New', Courier, monospace;
159 resize: none;
160 height: 80px;
161 box-sizing: border-box;
162 outline: none;
163 border: 2px solid;
164 transition: border-color 0.2s;
165 margin-bottom: 16px;
166 }
167
168 .bkbg-tst-input:focus { box-shadow: 0 0 0 3px rgba(139,92,246,0.15); }
169
170 .bkbg-tst-input:disabled { opacity: 0.55; cursor: default; }
171
172 /* Actions */
173 .bkbg-tst-actions {
174 display: flex;
175 justify-content: center;
176 gap: 10px;
177 flex-wrap: wrap;
178 }
179
180 .bkbg-tst-btn {
181 border: none;
182 border-radius: 8px;
183 padding: 11px 28px;
184 font-size: 15px;
185 font-weight: 700;
186 cursor: pointer;
187 color: #fff;
188 transition: filter 0.15s, transform 0.1s;
189 }
190
191 .bkbg-tst-btn:hover { filter: brightness(0.9); transform: scale(1.02); }
192 .bkbg-tst-btn-outline { background: transparent !important; border: 2px solid; }
193
194 /* Results */
195 .bkbg-tst-results {
196 display: none;
197 text-align: center;
198 padding: 28px 20px;
199 border-radius: 10px;
200 box-shadow: 0 2px 8px rgba(0,0,0,0.06);
201 margin-bottom: 16px;
202 }
203
204 .bkbg-tst-results.bkbg-tst-show { display: block; }
205
206 .bkbg-tst-results-icon { font-size: 48px; margin-bottom: 10px; }
207
208 .bkbg-tst-results-grid {
209 display: grid;
210 grid-template-columns: repeat(3, 1fr);
211 gap: 14px;
212 margin: 18px 0;
213 }
214
215 .bkbg-tst-result-item {
216 border-radius: 8px;
217 padding: 14px 10px;
218 }
219
220 .bkbg-tst-result-val {
221 font-size: 32px;
222 font-weight: 700;
223 line-height: 1.1;
224 }
225
226 .bkbg-tst-result-lbl {
227 font-size: 12px;
228 opacity: 0.65;
229 margin-top: 4px;
230 }
231
232 .bkbg-tst-rank {
233 display: inline-block;
234 border-radius: 20px;
235 padding: 5px 18px;
236 font-size: 14px;
237 font-weight: 700;
238 margin-top: 8px;
239 color: #fff;
240 }
241
242 /* Progress bar (time) */
243 .bkbg-tst-time-bar-wrap {
244 height: 6px;
245 border-radius: 3px;
246 background: #e5e7eb;
247 margin-bottom: 14px;
248 overflow: hidden;
249 }
250
251 .bkbg-tst-time-bar {
252 height: 100%;
253 border-radius: 3px;
254 transition: width 1s linear;
255 }
256
257 @media (max-width: 1024px) {
258 .bkbg-tst-title {
259 font-size: var(--bktst-tt-fst1, var(--bktst-tt-fsd, 26px));
260 line-height: var(--bktst-tt-lht, var(--bktst-tt-lhd, 1.2));
261 letter-spacing: var(--bktst-tt-lst, var(--bktst-tt-lsd, normal));
262 word-spacing: var(--bktst-tt-wst, var(--bktst-tt-wsd, normal));
263 }
264 .bkbg-tst-subtitle {
265 font-size: var(--bktst-st-fst1, var(--bktst-st-fsd, 15px));
266 line-height: var(--bktst-st-lht, var(--bktst-st-lhd, 1.4));
267 letter-spacing: var(--bktst-st-lst, var(--bktst-st-lsd, normal));
268 word-spacing: var(--bktst-st-wst, var(--bktst-st-wsd, normal));
269 }
270 }
271 @media (max-width: 767px) {
272 .bkbg-tst-title {
273 font-size: var(--bktst-tt-fsm, var(--bktst-tt-fst1, var(--bktst-tt-fsd, 26px)));
274 line-height: var(--bktst-tt-lhm, var(--bktst-tt-lht, var(--bktst-tt-lhd, 1.2)));
275 letter-spacing: var(--bktst-tt-lsm, var(--bktst-tt-lst, var(--bktst-tt-lsd, normal)));
276 word-spacing: var(--bktst-tt-wsm, var(--bktst-tt-wst, var(--bktst-tt-wsd, normal)));
277 }
278 .bkbg-tst-subtitle {
279 font-size: var(--bktst-st-fsm, var(--bktst-st-fst1, var(--bktst-st-fsd, 15px)));
280 line-height: var(--bktst-st-lhm, var(--bktst-st-lht, var(--bktst-st-lhd, 1.4)));
281 letter-spacing: var(--bktst-st-lsm, var(--bktst-st-lst, var(--bktst-st-lsd, normal)));
282 word-spacing: var(--bktst-st-wsm, var(--bktst-st-wst, var(--bktst-st-wsd, normal)));
283 }
284 }
285 @media (max-width: 480px) {
286 .bkbg-tst-wrap { padding: 16px; }
287 .bkbg-tst-text-box { font-size: 15px; }
288 .bkbg-tst-results-grid { grid-template-columns: 1fr 1fr; }
289 .bkbg-tst-stat-val { font-size: 22px; }
290 }
291