@cube-drone/marquee-css 0.1.1 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/marquee.css +79 -4
- package/package.json +1 -1
package/marquee.css
CHANGED
|
@@ -292,7 +292,8 @@ big {
|
|
|
292
292
|
|
|
293
293
|
.mq-bounce,
|
|
294
294
|
.mq-jitter,
|
|
295
|
-
.mq-wave
|
|
295
|
+
.mq-wave,
|
|
296
|
+
.mq-rubber {
|
|
296
297
|
display: inline-block;
|
|
297
298
|
}
|
|
298
299
|
|
|
@@ -310,7 +311,10 @@ big {
|
|
|
310
311
|
.mq-rainbow.mq-split,
|
|
311
312
|
.mq-bounce.mq-split,
|
|
312
313
|
.mq-jitter.mq-split,
|
|
313
|
-
.mq-wave.mq-split
|
|
314
|
+
.mq-wave.mq-split,
|
|
315
|
+
.mq-rubber.mq-split,
|
|
316
|
+
.mq-blink.mq-split,
|
|
317
|
+
.mq-fadein.mq-split {
|
|
314
318
|
animation: none;
|
|
315
319
|
}
|
|
316
320
|
|
|
@@ -334,6 +338,43 @@ big {
|
|
|
334
338
|
animation-delay: calc(var(--mq-o, 0) * -1.4s);
|
|
335
339
|
}
|
|
336
340
|
|
|
341
|
+
.mq-rubber.mq-split .mq-l {
|
|
342
|
+
animation: mq-rubber 0.7s ease-in-out infinite alternate;
|
|
343
|
+
animation-delay: calc(var(--mq-o, 0) * -1.4s);
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
/* The reveals (typewriter, fadein): each unit enters at ordinal x step
|
|
347
|
+
(--mq-o is the sequential integer here, not the loopers' 0..1
|
|
348
|
+
fraction). The hiding lives ONLY in these animations - fill-mode holds
|
|
349
|
+
the from-frame through the delay - so wherever animations don't run
|
|
350
|
+
(reduced motion, print, old browsers) the text is simply visible.
|
|
351
|
+
Never a hostage situation. */
|
|
352
|
+
/* steps(1, start): the value jumps to the end-state at the START of the
|
|
353
|
+
active interval, so the pop lands exactly at the delay and the duration
|
|
354
|
+
only needs to be long enough for the compositor to sample it. (A 1ms
|
|
355
|
+
duration is a trap: its active window falls between frames, and
|
|
356
|
+
never-sampled micro-animations froze mid-word in Chromium.) */
|
|
357
|
+
.mq-typewriter.mq-split .mq-l {
|
|
358
|
+
animation: mq-tw-in 0.4s steps(1, start) both;
|
|
359
|
+
animation-delay: calc(var(--mq-o, 0) * var(--mq-tw-step, 0.07s));
|
|
360
|
+
}
|
|
361
|
+
|
|
362
|
+
.mq-fadein {
|
|
363
|
+
animation: mq-fade-in 1.2s ease-out both;
|
|
364
|
+
}
|
|
365
|
+
|
|
366
|
+
.mq-fadein.mq-split .mq-l {
|
|
367
|
+
animation: mq-fade-in 0.9s ease-out both;
|
|
368
|
+
animation-delay: calc(var(--mq-o, 0) * var(--mq-fi-step, 0.06s));
|
|
369
|
+
}
|
|
370
|
+
|
|
371
|
+
/* Split blink inherits the container's rate; ramp order reads as
|
|
372
|
+
theater-marquee chase lights, scatter as twinkle. */
|
|
373
|
+
.mq-blink.mq-split .mq-l {
|
|
374
|
+
animation: mq-blink calc(1.2s / max(var(--mq-rate, 1), 1)) step-end infinite;
|
|
375
|
+
animation-delay: calc(var(--mq-o, 0) * (-1.2s / max(var(--mq-rate, 1), 1)));
|
|
376
|
+
}
|
|
377
|
+
|
|
337
378
|
.mq-marquee-inner {
|
|
338
379
|
animation: mq-marquee calc(16s / max(var(--mq-speed, 1), 1)) linear infinite;
|
|
339
380
|
}
|
|
@@ -361,6 +402,10 @@ big {
|
|
|
361
402
|
.mq-wave {
|
|
362
403
|
animation: mq-wave 1.4s ease-in-out infinite;
|
|
363
404
|
}
|
|
405
|
+
|
|
406
|
+
.mq-rubber {
|
|
407
|
+
animation: mq-rubber 0.7s ease-in-out infinite alternate;
|
|
408
|
+
}
|
|
364
409
|
}
|
|
365
410
|
|
|
366
411
|
@keyframes mq-marquee {
|
|
@@ -405,8 +450,38 @@ big {
|
|
|
405
450
|
}
|
|
406
451
|
}
|
|
407
452
|
|
|
408
|
-
|
|
409
|
-
|
|
453
|
+
@keyframes mq-rubber {
|
|
454
|
+
from {
|
|
455
|
+
transform: scale(0.82);
|
|
456
|
+
}
|
|
457
|
+
to {
|
|
458
|
+
transform: scale(1.18);
|
|
459
|
+
}
|
|
460
|
+
}
|
|
461
|
+
|
|
462
|
+
@keyframes mq-tw-in {
|
|
463
|
+
from {
|
|
464
|
+
opacity: 0;
|
|
465
|
+
}
|
|
466
|
+
to {
|
|
467
|
+
opacity: 1;
|
|
468
|
+
}
|
|
469
|
+
}
|
|
470
|
+
|
|
471
|
+
@keyframes mq-fade-in {
|
|
472
|
+
from {
|
|
473
|
+
opacity: 0;
|
|
474
|
+
filter: blur(0.12em);
|
|
475
|
+
}
|
|
476
|
+
to {
|
|
477
|
+
opacity: 1;
|
|
478
|
+
filter: blur(0);
|
|
479
|
+
}
|
|
480
|
+
}
|
|
481
|
+
|
|
482
|
+
/* (The typewriter's JS halves - start-on-visibility, tap-to-skip - still
|
|
483
|
+
* belong to the interactive renderer; this is the best-effort CSS reveal,
|
|
484
|
+
* same tier as every other effect.) */
|
|
410
485
|
|
|
411
486
|
/* ---- layouts: picked, not authored ---- */
|
|
412
487
|
|