@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.
Files changed (2) hide show
  1. package/marquee.css +79 -4
  2. 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
- /* .mq-typewriter ships no motion: letter-by-letter reveal needs JS (the
409
- * interactive renderer); here it is its full static text, per contract. */
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
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cube-drone/marquee-css",
3
- "version": "0.1.1",
3
+ "version": "0.2.0",
4
4
  "description": "The Marquee reference stylesheet: the mq-* class contract every renderer targets",
5
5
  "license": "MPL-2.0",
6
6
  "repository": {