@cube-drone/marquee-css 0.1.1 → 0.3.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 +108 -4
- package/package.json +1 -1
package/marquee.css
CHANGED
|
@@ -77,6 +77,35 @@
|
|
|
77
77
|
font-size: 0.75em;
|
|
78
78
|
}
|
|
79
79
|
|
|
80
|
+
/* ---- :::center / :::right / :::left - the <center> tag back from the
|
|
81
|
+
dead, with siblings. Inline content aligns via text-align; block
|
|
82
|
+
children that size themselves (tables) follow via margins. Physical
|
|
83
|
+
directions on purpose. ---- */
|
|
84
|
+
|
|
85
|
+
.mq-center {
|
|
86
|
+
text-align: center;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
.mq-right {
|
|
90
|
+
text-align: right;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
.mq-left {
|
|
94
|
+
text-align: left;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
.mq-center .mq-table {
|
|
98
|
+
margin-inline: auto;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
.mq-right .mq-table {
|
|
102
|
+
margin-left: auto;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
.mq-left .mq-table {
|
|
106
|
+
margin-right: auto;
|
|
107
|
+
}
|
|
108
|
+
|
|
80
109
|
/* ---- tables: paragraph-rows and [c] cells (SPEC.md, "Tables") ---- */
|
|
81
110
|
|
|
82
111
|
.mq-table {
|
|
@@ -292,7 +321,8 @@ big {
|
|
|
292
321
|
|
|
293
322
|
.mq-bounce,
|
|
294
323
|
.mq-jitter,
|
|
295
|
-
.mq-wave
|
|
324
|
+
.mq-wave,
|
|
325
|
+
.mq-rubber {
|
|
296
326
|
display: inline-block;
|
|
297
327
|
}
|
|
298
328
|
|
|
@@ -310,7 +340,10 @@ big {
|
|
|
310
340
|
.mq-rainbow.mq-split,
|
|
311
341
|
.mq-bounce.mq-split,
|
|
312
342
|
.mq-jitter.mq-split,
|
|
313
|
-
.mq-wave.mq-split
|
|
343
|
+
.mq-wave.mq-split,
|
|
344
|
+
.mq-rubber.mq-split,
|
|
345
|
+
.mq-blink.mq-split,
|
|
346
|
+
.mq-fadein.mq-split {
|
|
314
347
|
animation: none;
|
|
315
348
|
}
|
|
316
349
|
|
|
@@ -334,6 +367,43 @@ big {
|
|
|
334
367
|
animation-delay: calc(var(--mq-o, 0) * -1.4s);
|
|
335
368
|
}
|
|
336
369
|
|
|
370
|
+
.mq-rubber.mq-split .mq-l {
|
|
371
|
+
animation: mq-rubber 0.7s ease-in-out infinite alternate;
|
|
372
|
+
animation-delay: calc(var(--mq-o, 0) * -1.4s);
|
|
373
|
+
}
|
|
374
|
+
|
|
375
|
+
/* The reveals (typewriter, fadein): each unit enters at ordinal x step
|
|
376
|
+
(--mq-o is the sequential integer here, not the loopers' 0..1
|
|
377
|
+
fraction). The hiding lives ONLY in these animations - fill-mode holds
|
|
378
|
+
the from-frame through the delay - so wherever animations don't run
|
|
379
|
+
(reduced motion, print, old browsers) the text is simply visible.
|
|
380
|
+
Never a hostage situation. */
|
|
381
|
+
/* steps(1, start): the value jumps to the end-state at the START of the
|
|
382
|
+
active interval, so the pop lands exactly at the delay and the duration
|
|
383
|
+
only needs to be long enough for the compositor to sample it. (A 1ms
|
|
384
|
+
duration is a trap: its active window falls between frames, and
|
|
385
|
+
never-sampled micro-animations froze mid-word in Chromium.) */
|
|
386
|
+
.mq-typewriter.mq-split .mq-l {
|
|
387
|
+
animation: mq-tw-in 0.4s steps(1, start) both;
|
|
388
|
+
animation-delay: calc(var(--mq-o, 0) * var(--mq-tw-step, 0.07s));
|
|
389
|
+
}
|
|
390
|
+
|
|
391
|
+
.mq-fadein {
|
|
392
|
+
animation: mq-fade-in 1.2s ease-out both;
|
|
393
|
+
}
|
|
394
|
+
|
|
395
|
+
.mq-fadein.mq-split .mq-l {
|
|
396
|
+
animation: mq-fade-in 0.9s ease-out both;
|
|
397
|
+
animation-delay: calc(var(--mq-o, 0) * var(--mq-fi-step, 0.06s));
|
|
398
|
+
}
|
|
399
|
+
|
|
400
|
+
/* Split blink inherits the container's rate; ramp order reads as
|
|
401
|
+
theater-marquee chase lights, scatter as twinkle. */
|
|
402
|
+
.mq-blink.mq-split .mq-l {
|
|
403
|
+
animation: mq-blink calc(1.2s / max(var(--mq-rate, 1), 1)) step-end infinite;
|
|
404
|
+
animation-delay: calc(var(--mq-o, 0) * (-1.2s / max(var(--mq-rate, 1), 1)));
|
|
405
|
+
}
|
|
406
|
+
|
|
337
407
|
.mq-marquee-inner {
|
|
338
408
|
animation: mq-marquee calc(16s / max(var(--mq-speed, 1), 1)) linear infinite;
|
|
339
409
|
}
|
|
@@ -361,6 +431,10 @@ big {
|
|
|
361
431
|
.mq-wave {
|
|
362
432
|
animation: mq-wave 1.4s ease-in-out infinite;
|
|
363
433
|
}
|
|
434
|
+
|
|
435
|
+
.mq-rubber {
|
|
436
|
+
animation: mq-rubber 0.7s ease-in-out infinite alternate;
|
|
437
|
+
}
|
|
364
438
|
}
|
|
365
439
|
|
|
366
440
|
@keyframes mq-marquee {
|
|
@@ -405,8 +479,38 @@ big {
|
|
|
405
479
|
}
|
|
406
480
|
}
|
|
407
481
|
|
|
408
|
-
|
|
409
|
-
|
|
482
|
+
@keyframes mq-rubber {
|
|
483
|
+
from {
|
|
484
|
+
transform: scale(0.82);
|
|
485
|
+
}
|
|
486
|
+
to {
|
|
487
|
+
transform: scale(1.18);
|
|
488
|
+
}
|
|
489
|
+
}
|
|
490
|
+
|
|
491
|
+
@keyframes mq-tw-in {
|
|
492
|
+
from {
|
|
493
|
+
opacity: 0;
|
|
494
|
+
}
|
|
495
|
+
to {
|
|
496
|
+
opacity: 1;
|
|
497
|
+
}
|
|
498
|
+
}
|
|
499
|
+
|
|
500
|
+
@keyframes mq-fade-in {
|
|
501
|
+
from {
|
|
502
|
+
opacity: 0;
|
|
503
|
+
filter: blur(0.12em);
|
|
504
|
+
}
|
|
505
|
+
to {
|
|
506
|
+
opacity: 1;
|
|
507
|
+
filter: blur(0);
|
|
508
|
+
}
|
|
509
|
+
}
|
|
510
|
+
|
|
511
|
+
/* (The typewriter's JS halves - start-on-visibility, tap-to-skip - still
|
|
512
|
+
* belong to the interactive renderer; this is the best-effort CSS reveal,
|
|
513
|
+
* same tier as every other effect.) */
|
|
410
514
|
|
|
411
515
|
/* ---- layouts: picked, not authored ---- */
|
|
412
516
|
|