use-scroll-animate 8.1.0 → 8.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/CHANGELOG.md +24 -0
- package/dist/components/fx-organic.cjs +115 -0
- package/dist/components/fx-organic.cjs.map +1 -0
- package/dist/components/fx-organic.d.cts +66 -0
- package/dist/components/fx-organic.d.ts +66 -0
- package/dist/components/fx-organic.js +111 -0
- package/dist/components/fx-organic.js.map +1 -0
- package/dist/components/fx-retro.cjs +96 -0
- package/dist/components/fx-retro.cjs.map +1 -0
- package/dist/components/fx-retro.d.cts +66 -0
- package/dist/components/fx-retro.d.ts +66 -0
- package/dist/components/fx-retro.js +92 -0
- package/dist/components/fx-retro.js.map +1 -0
- package/dist/components/fx2.cjs +12 -0
- package/dist/components/fx2.cjs.map +1 -1
- package/dist/components/fx2.d.cts +45 -1
- package/dist/components/fx2.d.ts +45 -1
- package/dist/components/fx2.js +9 -1
- package/dist/components/fx2.js.map +1 -1
- package/dist/components/widgets.cjs +460 -155
- package/dist/components/widgets.cjs.map +1 -1
- package/dist/components/widgets.d.cts +63 -2
- package/dist/components/widgets.d.ts +63 -2
- package/dist/components/widgets.js +456 -156
- package/dist/components/widgets.js.map +1 -1
- package/dist/widgets.umd.js +1 -1
- package/dist/widgets.umd.js.map +1 -1
- package/docs/ROADMAP.md +2 -2
- package/docs/components.md +44 -0
- package/package.json +41 -1
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
type MotionSensitivity = 'full' | 'gentle' | 'minimal' | 'static';
|
|
2
|
+
type Cleanup = () => void;
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* 5.0 — unified plugin-style effect registration. Every effect (built-in or
|
|
6
|
+
* yours) is a plain object registered once and played the same way:
|
|
7
|
+
* `playEffect(el, name)`, `bindEffect(el, name, { trigger })` or
|
|
8
|
+
* `<usa-fx effect="name" trigger="click">`. Effects get a context that
|
|
9
|
+
* already applies reduced motion, motion sensitivity, intensity and the
|
|
10
|
+
* animation budget.
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
declare const EFFECT_KINDS: readonly ["enter", "exit", "attention", "click", "hover", "card", "loop", "page", "background", "text", "cursor", "scroll"];
|
|
14
|
+
type EffectKind = (typeof EFFECT_KINDS)[number];
|
|
15
|
+
interface EffectContext {
|
|
16
|
+
/** Reduced motion applies (OS setting, `minimal` / `static` sensitivity). */
|
|
17
|
+
readonly reduced: boolean;
|
|
18
|
+
readonly sensitivity: MotionSensitivity;
|
|
19
|
+
/** The triggering event (pointer position for click effects), if any. */
|
|
20
|
+
readonly event?: Event;
|
|
21
|
+
/** `el.animate()` with the library's motion rules (may return `null`). */
|
|
22
|
+
animate(el: Element, keyframes: Keyframe[], options: KeyframeAnimationOptions): Animation | null;
|
|
23
|
+
/** Register teardown for long-running effects (loops, listeners). */
|
|
24
|
+
onCleanup(fn: Cleanup): void;
|
|
25
|
+
}
|
|
26
|
+
interface EffectDefinition<O extends Record<string, unknown> = Record<string, any>> {
|
|
27
|
+
/** Unique, kebab-case. */
|
|
28
|
+
name: string;
|
|
29
|
+
kind: EffectKind;
|
|
30
|
+
/** One line for docs and the gallery. */
|
|
31
|
+
description?: string;
|
|
32
|
+
/** Option defaults (merged under the caller's options). */
|
|
33
|
+
defaults?: Partial<O>;
|
|
34
|
+
/**
|
|
35
|
+
* Under reduced motion: `'skip'` (do nothing — default for loop, background
|
|
36
|
+
* and cursor effects) or `'run'` (run with `ctx.reduced === true`, the
|
|
37
|
+
* effect degrades itself — default for everything else).
|
|
38
|
+
*/
|
|
39
|
+
reduced?: 'skip' | 'run';
|
|
40
|
+
/** Play the effect. Return an Animation / Promise to be awaited, or a cleanup. */
|
|
41
|
+
run(el: HTMLElement, options: O, ctx: EffectContext): void | Cleanup | Animation | null | Promise<unknown>;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* 8.2 — Retro pack (`motionary/fx/retro`, also `motionary/components/fx-retro`):
|
|
46
|
+
*
|
|
47
|
+
* - `pixelate-in` (enter) — the element resolves from big blocky pixels to
|
|
48
|
+
* sharp, like an 8-bit sprite loading (`steps`).
|
|
49
|
+
* - `crt-power` (enter) — a CRT switching on: a bright line opens into the
|
|
50
|
+
* picture with a flash (`duration`).
|
|
51
|
+
* - `vhs-glitch` (attention) — VHS tracking jitter with an RGB split and a
|
|
52
|
+
* noise band (`intensity`).
|
|
53
|
+
* - `y2k-shine` (attention) — a chrome Y2K highlight sweeps across the
|
|
54
|
+
* element with a little bounce (`color`).
|
|
55
|
+
*
|
|
56
|
+
* Reduced motion: pixelate-in / crt-power fade in, vhs-glitch does nothing,
|
|
57
|
+
* y2k-shine is a short brightness flash.
|
|
58
|
+
*/
|
|
59
|
+
|
|
60
|
+
/** Keyframes stepping a CSS blur/contrast "pixel" filter from coarse to sharp (8.2). */
|
|
61
|
+
declare function pixelSteps(steps?: number): Keyframe[];
|
|
62
|
+
declare const RETRO_FX: EffectDefinition[];
|
|
63
|
+
/** Register pixelate-in, crt-power, vhs-glitch and y2k-shine (8.2). */
|
|
64
|
+
declare function registerRetroPack(): void;
|
|
65
|
+
|
|
66
|
+
export { RETRO_FX, pixelSteps, registerRetroPack };
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
type MotionSensitivity = 'full' | 'gentle' | 'minimal' | 'static';
|
|
2
|
+
type Cleanup = () => void;
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* 5.0 — unified plugin-style effect registration. Every effect (built-in or
|
|
6
|
+
* yours) is a plain object registered once and played the same way:
|
|
7
|
+
* `playEffect(el, name)`, `bindEffect(el, name, { trigger })` or
|
|
8
|
+
* `<usa-fx effect="name" trigger="click">`. Effects get a context that
|
|
9
|
+
* already applies reduced motion, motion sensitivity, intensity and the
|
|
10
|
+
* animation budget.
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
declare const EFFECT_KINDS: readonly ["enter", "exit", "attention", "click", "hover", "card", "loop", "page", "background", "text", "cursor", "scroll"];
|
|
14
|
+
type EffectKind = (typeof EFFECT_KINDS)[number];
|
|
15
|
+
interface EffectContext {
|
|
16
|
+
/** Reduced motion applies (OS setting, `minimal` / `static` sensitivity). */
|
|
17
|
+
readonly reduced: boolean;
|
|
18
|
+
readonly sensitivity: MotionSensitivity;
|
|
19
|
+
/** The triggering event (pointer position for click effects), if any. */
|
|
20
|
+
readonly event?: Event;
|
|
21
|
+
/** `el.animate()` with the library's motion rules (may return `null`). */
|
|
22
|
+
animate(el: Element, keyframes: Keyframe[], options: KeyframeAnimationOptions): Animation | null;
|
|
23
|
+
/** Register teardown for long-running effects (loops, listeners). */
|
|
24
|
+
onCleanup(fn: Cleanup): void;
|
|
25
|
+
}
|
|
26
|
+
interface EffectDefinition<O extends Record<string, unknown> = Record<string, any>> {
|
|
27
|
+
/** Unique, kebab-case. */
|
|
28
|
+
name: string;
|
|
29
|
+
kind: EffectKind;
|
|
30
|
+
/** One line for docs and the gallery. */
|
|
31
|
+
description?: string;
|
|
32
|
+
/** Option defaults (merged under the caller's options). */
|
|
33
|
+
defaults?: Partial<O>;
|
|
34
|
+
/**
|
|
35
|
+
* Under reduced motion: `'skip'` (do nothing — default for loop, background
|
|
36
|
+
* and cursor effects) or `'run'` (run with `ctx.reduced === true`, the
|
|
37
|
+
* effect degrades itself — default for everything else).
|
|
38
|
+
*/
|
|
39
|
+
reduced?: 'skip' | 'run';
|
|
40
|
+
/** Play the effect. Return an Animation / Promise to be awaited, or a cleanup. */
|
|
41
|
+
run(el: HTMLElement, options: O, ctx: EffectContext): void | Cleanup | Animation | null | Promise<unknown>;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* 8.2 — Retro pack (`motionary/fx/retro`, also `motionary/components/fx-retro`):
|
|
46
|
+
*
|
|
47
|
+
* - `pixelate-in` (enter) — the element resolves from big blocky pixels to
|
|
48
|
+
* sharp, like an 8-bit sprite loading (`steps`).
|
|
49
|
+
* - `crt-power` (enter) — a CRT switching on: a bright line opens into the
|
|
50
|
+
* picture with a flash (`duration`).
|
|
51
|
+
* - `vhs-glitch` (attention) — VHS tracking jitter with an RGB split and a
|
|
52
|
+
* noise band (`intensity`).
|
|
53
|
+
* - `y2k-shine` (attention) — a chrome Y2K highlight sweeps across the
|
|
54
|
+
* element with a little bounce (`color`).
|
|
55
|
+
*
|
|
56
|
+
* Reduced motion: pixelate-in / crt-power fade in, vhs-glitch does nothing,
|
|
57
|
+
* y2k-shine is a short brightness flash.
|
|
58
|
+
*/
|
|
59
|
+
|
|
60
|
+
/** Keyframes stepping a CSS blur/contrast "pixel" filter from coarse to sharp (8.2). */
|
|
61
|
+
declare function pixelSteps(steps?: number): Keyframe[];
|
|
62
|
+
declare const RETRO_FX: EffectDefinition[];
|
|
63
|
+
/** Register pixelate-in, crt-power, vhs-glitch and y2k-shine (8.2). */
|
|
64
|
+
declare function registerRetroPack(): void;
|
|
65
|
+
|
|
66
|
+
export { RETRO_FX, pixelSteps, registerRetroPack };
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { registerEffects } from '../chunks/registry-CnO7ZVPK.js';
|
|
2
|
+
import '../chunks/base-CLuqlLfG.js';
|
|
3
|
+
|
|
4
|
+
/** Keyframes stepping a CSS blur/contrast "pixel" filter from coarse to sharp (8.2). */
|
|
5
|
+
function pixelSteps(steps = 6) {
|
|
6
|
+
const n = Math.max(2, Math.min(12, Math.round(steps)));
|
|
7
|
+
return Array.from({ length: n + 1 }, (_, i) => {
|
|
8
|
+
const k = 1 - i / n;
|
|
9
|
+
return { filter: k ? `blur(${(k * 6).toFixed(1)}px) contrast(${(1 + k * 4).toFixed(1)}) saturate(${(1 + k).toFixed(1)})` : 'none', opacity: Math.min(1, 0.3 + i / n), offset: i / n };
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
const fade = (el, ctx) => ctx.animate(el, [{ opacity: 0 }, { opacity: 1 }], { duration: 250 })?.finished.catch(() => undefined);
|
|
13
|
+
const RETRO_FX = [
|
|
14
|
+
{
|
|
15
|
+
name: 'pixelate-in',
|
|
16
|
+
kind: 'enter',
|
|
17
|
+
description: 'The element resolves from blocky pixels to sharp, like an 8-bit sprite loading (`steps`).',
|
|
18
|
+
defaults: { steps: 6, duration: 700 },
|
|
19
|
+
run: (el, o, ctx) => {
|
|
20
|
+
if (ctx.reduced)
|
|
21
|
+
return fade(el, ctx);
|
|
22
|
+
const n = Math.max(2, Math.min(12, Number(o.steps) || 6));
|
|
23
|
+
return ctx.animate(el, pixelSteps(n), { duration: o.duration, easing: `steps(${n}, end)`, fill: 'backwards' })?.finished.catch(() => undefined);
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
name: 'crt-power',
|
|
28
|
+
kind: 'enter',
|
|
29
|
+
description: 'A CRT switching on: a bright line opens into the picture with a flash (`duration`).',
|
|
30
|
+
defaults: { duration: 650 },
|
|
31
|
+
run: (el, o, ctx) => {
|
|
32
|
+
if (ctx.reduced)
|
|
33
|
+
return fade(el, ctx);
|
|
34
|
+
return ctx
|
|
35
|
+
.animate(el, [{ transform: 'scale(.02, .004)', filter: 'brightness(6)', opacity: 0.9 }, { transform: 'scale(1, .006)', filter: 'brightness(5)', opacity: 1, offset: 0.35 }, { transform: 'scale(1, 1.04)', filter: 'brightness(1.6)', offset: 0.75 }, { transform: 'none', filter: 'none', opacity: 1 }], { duration: o.duration, easing: 'cubic-bezier(.2,.7,.3,1)', fill: 'backwards' })
|
|
36
|
+
?.finished.catch(() => undefined);
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
name: 'vhs-glitch',
|
|
41
|
+
kind: 'attention',
|
|
42
|
+
description: 'VHS tracking jitter with an RGB split and a noise band (`intensity` px).',
|
|
43
|
+
defaults: { intensity: 4, duration: 600 },
|
|
44
|
+
run: (el, o, ctx) => {
|
|
45
|
+
if (ctx.reduced)
|
|
46
|
+
return;
|
|
47
|
+
const k = Math.max(1, Math.min(12, Number(o.intensity) || 4));
|
|
48
|
+
const f = [];
|
|
49
|
+
for (let i = 0; i <= 8; i++) {
|
|
50
|
+
const d = i === 0 || i === 8 ? 0 : (i % 2 ? 1 : -1) * k * (1 - i / 10);
|
|
51
|
+
f.push({ transform: d ? `translateX(${d}px) skewX(${(d / 2).toFixed(1)}deg)` : 'none', textShadow: d ? `${-d}px 0 rgba(255,0,80,.75), ${d}px 0 rgba(0,220,255,.75)` : 'none', filter: d ? `hue-rotate(${d * 6}deg)` : 'none', offset: i / 8 });
|
|
52
|
+
}
|
|
53
|
+
return ctx.animate(el, f, { duration: o.duration, easing: 'steps(8, end)' })?.finished.catch(() => undefined);
|
|
54
|
+
},
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
name: 'y2k-shine',
|
|
58
|
+
kind: 'attention',
|
|
59
|
+
description: 'A chrome Y2K highlight sweeps across the element with a little bounce (`color`).',
|
|
60
|
+
defaults: { color: 'rgba(255,255,255,.85)', duration: 900 },
|
|
61
|
+
run: (el, o, ctx) => {
|
|
62
|
+
if (ctx.reduced)
|
|
63
|
+
return ctx.animate(el, [{ filter: 'none' }, { filter: 'brightness(1.25)' }, { filter: 'none' }], { duration: 300 })?.finished.catch(() => undefined);
|
|
64
|
+
if (getComputedStyle(el).position === 'static') {
|
|
65
|
+
const prev = el.style.position;
|
|
66
|
+
el.style.position = 'relative';
|
|
67
|
+
ctx.onCleanup(() => (el.style.position = prev));
|
|
68
|
+
}
|
|
69
|
+
const prevO = el.style.overflow;
|
|
70
|
+
el.style.overflow = 'hidden';
|
|
71
|
+
const sh = document.createElement('span');
|
|
72
|
+
sh.setAttribute('aria-hidden', 'true');
|
|
73
|
+
Object.assign(sh.style, { position: 'absolute', top: '-20%', bottom: '-20%', left: '0', width: '45%', background: `linear-gradient(105deg, transparent, ${o.color} 45%, rgba(180,220,255,.6) 55%, transparent)`, pointerEvents: 'none', mixBlendMode: 'screen' });
|
|
74
|
+
el.appendChild(sh);
|
|
75
|
+
const end = () => {
|
|
76
|
+
sh.remove();
|
|
77
|
+
el.style.overflow = prevO;
|
|
78
|
+
};
|
|
79
|
+
ctx.onCleanup(end);
|
|
80
|
+
ctx.animate(el, [{ transform: 'none' }, { transform: 'scale(1.04)', offset: 0.3 }, { transform: 'none' }], { duration: o.duration * 0.6, easing: 'ease-out' });
|
|
81
|
+
const a = ctx.animate(sh, [{ transform: 'translateX(-120%) skewX(-12deg)' }, { transform: 'translateX(330%) skewX(-12deg)' }], { duration: o.duration, easing: 'cubic-bezier(.3,.6,.3,1)' });
|
|
82
|
+
return a ? a.finished.then(end, end) : (end(), undefined);
|
|
83
|
+
},
|
|
84
|
+
},
|
|
85
|
+
];
|
|
86
|
+
/** Register pixelate-in, crt-power, vhs-glitch and y2k-shine (8.2). */
|
|
87
|
+
function registerRetroPack() {
|
|
88
|
+
registerEffects(RETRO_FX);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
export { RETRO_FX, pixelSteps, registerRetroPack };
|
|
92
|
+
//# sourceMappingURL=fx-retro.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fx-retro.js","sources":["../../src/components/fx2/retro2.ts"],"sourcesContent":["/**\n * 8.2 — Retro pack (`motionary/fx/retro`, also `motionary/components/fx-retro`):\n *\n * - `pixelate-in` (enter) — the element resolves from big blocky pixels to\n * sharp, like an 8-bit sprite loading (`steps`).\n * - `crt-power` (enter) — a CRT switching on: a bright line opens into the\n * picture with a flash (`duration`).\n * - `vhs-glitch` (attention) — VHS tracking jitter with an RGB split and a\n * noise band (`intensity`).\n * - `y2k-shine` (attention) — a chrome Y2K highlight sweeps across the\n * element with a little bounce (`color`).\n *\n * Reduced motion: pixelate-in / crt-power fade in, vhs-glitch does nothing,\n * y2k-shine is a short brightness flash.\n */\nimport type { EffectContext, EffectDefinition } from '../fx/registry';\nimport { registerEffects } from '../fx/registry';\n\n/** Keyframes stepping a CSS blur/contrast \"pixel\" filter from coarse to sharp (8.2). */\nexport function pixelSteps(steps = 6): Keyframe[] {\n const n = Math.max(2, Math.min(12, Math.round(steps)));\n return Array.from({ length: n + 1 }, (_, i) => {\n const k = 1 - i / n;\n return { filter: k ? `blur(${(k * 6).toFixed(1)}px) contrast(${(1 + k * 4).toFixed(1)}) saturate(${(1 + k).toFixed(1)})` : 'none', opacity: Math.min(1, 0.3 + i / n), offset: i / n };\n });\n}\n\nconst fade = (el: HTMLElement, ctx: EffectContext) => ctx.animate(el, [{ opacity: 0 }, { opacity: 1 }], { duration: 250 })?.finished.catch(() => undefined);\n\nexport const RETRO_FX: EffectDefinition[] = [\n {\n name: 'pixelate-in',\n kind: 'enter',\n description: 'The element resolves from blocky pixels to sharp, like an 8-bit sprite loading (`steps`).',\n defaults: { steps: 6, duration: 700 },\n run: (el: HTMLElement, o: any, ctx: EffectContext) => {\n if (ctx.reduced) return fade(el, ctx);\n const n = Math.max(2, Math.min(12, Number(o.steps) || 6));\n return ctx.animate(el, pixelSteps(n), { duration: o.duration, easing: `steps(${n}, end)`, fill: 'backwards' })?.finished.catch(() => undefined);\n },\n },\n {\n name: 'crt-power',\n kind: 'enter',\n description: 'A CRT switching on: a bright line opens into the picture with a flash (`duration`).',\n defaults: { duration: 650 },\n run: (el: HTMLElement, o: any, ctx: EffectContext) => {\n if (ctx.reduced) return fade(el, ctx);\n return ctx\n .animate(el, [{ transform: 'scale(.02, .004)', filter: 'brightness(6)', opacity: 0.9 }, { transform: 'scale(1, .006)', filter: 'brightness(5)', opacity: 1, offset: 0.35 }, { transform: 'scale(1, 1.04)', filter: 'brightness(1.6)', offset: 0.75 }, { transform: 'none', filter: 'none', opacity: 1 }], { duration: o.duration, easing: 'cubic-bezier(.2,.7,.3,1)', fill: 'backwards' })\n ?.finished.catch(() => undefined);\n },\n },\n {\n name: 'vhs-glitch',\n kind: 'attention',\n description: 'VHS tracking jitter with an RGB split and a noise band (`intensity` px).',\n defaults: { intensity: 4, duration: 600 },\n run: (el: HTMLElement, o: any, ctx: EffectContext) => {\n if (ctx.reduced) return;\n const k = Math.max(1, Math.min(12, Number(o.intensity) || 4));\n const f: Keyframe[] = [];\n for (let i = 0; i <= 8; i++) {\n const d = i === 0 || i === 8 ? 0 : (i % 2 ? 1 : -1) * k * (1 - i / 10);\n f.push({ transform: d ? `translateX(${d}px) skewX(${(d / 2).toFixed(1)}deg)` : 'none', textShadow: d ? `${-d}px 0 rgba(255,0,80,.75), ${d}px 0 rgba(0,220,255,.75)` : 'none', filter: d ? `hue-rotate(${d * 6}deg)` : 'none', offset: i / 8 });\n }\n return ctx.animate(el, f, { duration: o.duration, easing: 'steps(8, end)' })?.finished.catch(() => undefined);\n },\n },\n {\n name: 'y2k-shine',\n kind: 'attention',\n description: 'A chrome Y2K highlight sweeps across the element with a little bounce (`color`).',\n defaults: { color: 'rgba(255,255,255,.85)', duration: 900 },\n run: (el: HTMLElement, o: any, ctx: EffectContext) => {\n if (ctx.reduced) return ctx.animate(el, [{ filter: 'none' }, { filter: 'brightness(1.25)' }, { filter: 'none' }], { duration: 300 })?.finished.catch(() => undefined);\n if (getComputedStyle(el).position === 'static') {\n const prev = el.style.position;\n el.style.position = 'relative';\n ctx.onCleanup(() => (el.style.position = prev));\n }\n const prevO = el.style.overflow;\n el.style.overflow = 'hidden';\n const sh = document.createElement('span');\n sh.setAttribute('aria-hidden', 'true');\n Object.assign(sh.style, { position: 'absolute', top: '-20%', bottom: '-20%', left: '0', width: '45%', background: `linear-gradient(105deg, transparent, ${o.color} 45%, rgba(180,220,255,.6) 55%, transparent)`, pointerEvents: 'none', mixBlendMode: 'screen' });\n el.appendChild(sh);\n const end = () => {\n sh.remove();\n el.style.overflow = prevO;\n };\n ctx.onCleanup(end);\n ctx.animate(el, [{ transform: 'none' }, { transform: 'scale(1.04)', offset: 0.3 }, { transform: 'none' }], { duration: o.duration * 0.6, easing: 'ease-out' });\n const a = ctx.animate(sh, [{ transform: 'translateX(-120%) skewX(-12deg)' }, { transform: 'translateX(330%) skewX(-12deg)' }], { duration: o.duration, easing: 'cubic-bezier(.3,.6,.3,1)' });\n return a ? a.finished.then(end, end) : (end(), undefined);\n },\n },\n];\n\n/** Register pixelate-in, crt-power, vhs-glitch and y2k-shine (8.2). */\nexport function registerRetroPack(): void {\n registerEffects(RETRO_FX);\n}\n"],"names":[],"mappings":"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"}
|
package/dist/components/fx2.cjs
CHANGED
|
@@ -19,6 +19,8 @@ var components_fxGeo = require('./fx-geo.cjs');
|
|
|
19
19
|
var components_fxForm = require('./fx-form.cjs');
|
|
20
20
|
var components_fxAi = require('./fx-ai.cjs');
|
|
21
21
|
var components_fxFestival = require('./fx-festival.cjs');
|
|
22
|
+
var components_fxRetro = require('./fx-retro.cjs');
|
|
23
|
+
var components_fxOrganic = require('./fx-organic.cjs');
|
|
22
24
|
require('../chunks/registry-BVklOepd.cjs');
|
|
23
25
|
require('../chunks/base-DoRUZBy-.cjs');
|
|
24
26
|
require('../chunks/generative-BHIj-NU0.cjs');
|
|
@@ -45,6 +47,8 @@ const EFFECT_PACKS = {
|
|
|
45
47
|
form: components_fxForm.FORM_FX,
|
|
46
48
|
ai: components_fxAi.AI_FX,
|
|
47
49
|
festival: components_fxFestival.FESTIVAL_FX,
|
|
50
|
+
retro: components_fxRetro.RETRO_FX,
|
|
51
|
+
organic: components_fxOrganic.ORGANIC_FX,
|
|
48
52
|
};
|
|
49
53
|
/** Register every 6.x effect pack (idempotent). */
|
|
50
54
|
function registerEffectPacks() {
|
|
@@ -66,6 +70,8 @@ function registerEffectPacks() {
|
|
|
66
70
|
components_fxForm.registerFormPack();
|
|
67
71
|
components_fxAi.registerAiPack();
|
|
68
72
|
components_fxFestival.registerFestivalPack();
|
|
73
|
+
components_fxRetro.registerRetroPack();
|
|
74
|
+
components_fxOrganic.registerOrganicPack();
|
|
69
75
|
}
|
|
70
76
|
|
|
71
77
|
exports.EFFECT_PACK_FORMAT = components_marketplace.EFFECT_PACK_FORMAT;
|
|
@@ -135,6 +141,12 @@ exports.splitWords = components_fxAi.splitWords;
|
|
|
135
141
|
exports.FESTIVAL_FX = components_fxFestival.FESTIVAL_FX;
|
|
136
142
|
exports.registerFestivalPack = components_fxFestival.registerFestivalPack;
|
|
137
143
|
exports.sparkVectors = components_fxFestival.sparkVectors;
|
|
144
|
+
exports.RETRO_FX = components_fxRetro.RETRO_FX;
|
|
145
|
+
exports.pixelSteps = components_fxRetro.pixelSteps;
|
|
146
|
+
exports.registerRetroPack = components_fxRetro.registerRetroPack;
|
|
147
|
+
exports.ORGANIC_FX = components_fxOrganic.ORGANIC_FX;
|
|
148
|
+
exports.blobRadius = components_fxOrganic.blobRadius;
|
|
149
|
+
exports.registerOrganicPack = components_fxOrganic.registerOrganicPack;
|
|
138
150
|
exports.EFFECT_PACKS = EFFECT_PACKS;
|
|
139
151
|
exports.registerEffectPacks = registerEffectPacks;
|
|
140
152
|
//# sourceMappingURL=fx2.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fx2.cjs","sources":["../../src/components/fx2/index.ts"],"sourcesContent":["/**\n * The 6.x effect packs, one entry each (`motionary/components/fx-gpu`, …) so\n * their size budgets stay separate. This module (`registerFx2()`) registers\n * them all — used by dist/widgets.umd.js and the showcase.\n */\nimport type { EffectDefinition } from '../fx/registry';\nexport { EFFECT_PACK_FORMAT, packManifest, validateManifest, loadEffectPack } from './manifest';\nexport type { EffectPackManifest } from './manifest';\nimport { GPU_FX, registerGpuPack } from './gpu';\nimport { TEXT3_FX, registerTextPack, splitChars } from './text3';\nimport { LIGHT_FX, registerLightPack, trackPointer } from './light';\nimport { DEPTH3_FX, register3dPack } from './depth3';\nimport { MORPH2_FX, registerMorphPack, samplePath, pointsToPath } from './morph2';\nimport { TRANSITIONS2_FX, registerTransitionsPack, pageTransition, crossDocumentTransitions } from './transitions2';\nimport { WEATHER_FX, registerWeatherPack, skyAt } from './weather';\nimport { PHYSICS2_FX, registerPhysicsPack, VerletWorld } from './physics2';\nimport { FOCUS_FX, registerFocusPack } from './focus';\nimport { MUSIC_FX, registerMusicPack, syntheticSample, musicSample } from './music';\nimport { CHART_FX, registerChartPack, parseFigure } from './chart';\nimport { SHOP_FX, registerShopPack, arcPath } from './shop';\nimport { SOCIAL_FX, registerSocialPack, fanAngles } from './social';\nimport { GAME_FX, registerGamePack, throwPath } from './game';\nimport { GEO_FX, registerGeoPack, routeLength } from './geo';\nimport { FORM_FX, registerFormPack, shakeFrames } from './form';\nimport { AI_FX, registerAiPack, splitWords } from './ai';\nimport { FESTIVAL_FX, registerFestivalPack, sparkVectors } from './festival';\n\nexport { GPU_FX, registerGpuPack, TEXT3_FX, registerTextPack, splitChars };\nexport { shaderBackground, supportsWebGL2, fieldFallback, GLSL_HEAD } from './gl';\nexport { supportsWebGPU, glslToWgsl, wgslModule, webgpuBackground, WGSL_HEAD } from './webgpu';\nexport type { ShaderSpec } from './gl';\n\nexport { LIGHT_FX, registerLightPack, trackPointer };\n\nexport { DEPTH3_FX, register3dPack };\n\nexport { MORPH2_FX, registerMorphPack, samplePath, pointsToPath };\n\nexport { TRANSITIONS2_FX, registerTransitionsPack, pageTransition, crossDocumentTransitions };\n\nexport { WEATHER_FX, registerWeatherPack, skyAt };\n\nexport { PHYSICS2_FX, registerPhysicsPack, VerletWorld };\n\nexport { FOCUS_FX, registerFocusPack };\n\nexport { MUSIC_FX, registerMusicPack, syntheticSample, musicSample };\n\nexport { CHART_FX, registerChartPack, parseFigure };\n\nexport { SHOP_FX, registerShopPack, arcPath };\n\nexport { SOCIAL_FX, registerSocialPack, fanAngles };\n\nexport { GAME_FX, registerGamePack, throwPath };\n\nexport { GEO_FX, registerGeoPack, routeLength };\n\nexport { FORM_FX, registerFormPack, shakeFrames };\n\nexport { AI_FX, registerAiPack, splitWords };\n\nexport { FESTIVAL_FX, registerFestivalPack, sparkVectors };\n\n/** The 6.x effect packs by name. */\nexport const EFFECT_PACKS: Record<string, EffectDefinition[]> = {\n gpu: GPU_FX,\n text: TEXT3_FX,\n light: LIGHT_FX,\n depth: DEPTH3_FX,\n morph: MORPH2_FX,\n transitions: TRANSITIONS2_FX,\n weather: WEATHER_FX,\n physics: PHYSICS2_FX,\n focus: FOCUS_FX,\n music: MUSIC_FX,\n chart: CHART_FX,\n shop: SHOP_FX,\n social: SOCIAL_FX,\n game: GAME_FX,\n geo: GEO_FX,\n form: FORM_FX,\n ai: AI_FX,\n festival: FESTIVAL_FX,\n};\n\n/** Register every 6.x effect pack (idempotent). */\nexport function registerEffectPacks(): void {\n registerGpuPack();\n registerTextPack();\n registerLightPack();\n register3dPack();\n registerMorphPack();\n registerTransitionsPack();\n registerWeatherPack();\n registerPhysicsPack();\n registerFocusPack();\n registerMusicPack();\n registerChartPack();\n registerShopPack();\n registerSocialPack();\n registerGamePack();\n registerGeoPack();\n registerFormPack();\n registerAiPack();\n registerFestivalPack();\n}\n\n\n"],"names":["GPU_FX","TEXT3_FX","LIGHT_FX","DEPTH3_FX","MORPH2_FX","TRANSITIONS2_FX","WEATHER_FX","PHYSICS2_FX","FOCUS_FX","MUSIC_FX","CHART_FX","SHOP_FX","SOCIAL_FX","GAME_FX","GEO_FX","FORM_FX","AI_FX","FESTIVAL_FX","registerGpuPack","registerTextPack","registerLightPack","register3dPack","registerMorphPack","registerTransitionsPack","registerWeatherPack","registerPhysicsPack","registerFocusPack","registerMusicPack","registerChartPack","registerShopPack","registerSocialPack","registerGamePack","registerGeoPack","registerFormPack","registerAiPack","registerFestivalPack"],"mappings":"
|
|
1
|
+
{"version":3,"file":"fx2.cjs","sources":["../../src/components/fx2/index.ts"],"sourcesContent":["/**\n * The 6.x effect packs, one entry each (`motionary/components/fx-gpu`, …) so\n * their size budgets stay separate. This module (`registerFx2()`) registers\n * them all — used by dist/widgets.umd.js and the showcase.\n */\nimport type { EffectDefinition } from '../fx/registry';\nexport { EFFECT_PACK_FORMAT, packManifest, validateManifest, loadEffectPack } from './manifest';\nexport type { EffectPackManifest } from './manifest';\nimport { GPU_FX, registerGpuPack } from './gpu';\nimport { TEXT3_FX, registerTextPack, splitChars } from './text3';\nimport { LIGHT_FX, registerLightPack, trackPointer } from './light';\nimport { DEPTH3_FX, register3dPack } from './depth3';\nimport { MORPH2_FX, registerMorphPack, samplePath, pointsToPath } from './morph2';\nimport { TRANSITIONS2_FX, registerTransitionsPack, pageTransition, crossDocumentTransitions } from './transitions2';\nimport { WEATHER_FX, registerWeatherPack, skyAt } from './weather';\nimport { PHYSICS2_FX, registerPhysicsPack, VerletWorld } from './physics2';\nimport { FOCUS_FX, registerFocusPack } from './focus';\nimport { MUSIC_FX, registerMusicPack, syntheticSample, musicSample } from './music';\nimport { CHART_FX, registerChartPack, parseFigure } from './chart';\nimport { SHOP_FX, registerShopPack, arcPath } from './shop';\nimport { SOCIAL_FX, registerSocialPack, fanAngles } from './social';\nimport { GAME_FX, registerGamePack, throwPath } from './game';\nimport { GEO_FX, registerGeoPack, routeLength } from './geo';\nimport { FORM_FX, registerFormPack, shakeFrames } from './form';\nimport { AI_FX, registerAiPack, splitWords } from './ai';\nimport { FESTIVAL_FX, registerFestivalPack, sparkVectors } from './festival';\nimport { RETRO_FX, registerRetroPack, pixelSteps } from './retro2';\nimport { ORGANIC_FX, registerOrganicPack, blobRadius } from './organic';\n\nexport { GPU_FX, registerGpuPack, TEXT3_FX, registerTextPack, splitChars };\nexport { shaderBackground, supportsWebGL2, fieldFallback, GLSL_HEAD } from './gl';\nexport { supportsWebGPU, glslToWgsl, wgslModule, webgpuBackground, WGSL_HEAD } from './webgpu';\nexport type { ShaderSpec } from './gl';\n\nexport { LIGHT_FX, registerLightPack, trackPointer };\n\nexport { DEPTH3_FX, register3dPack };\n\nexport { MORPH2_FX, registerMorphPack, samplePath, pointsToPath };\n\nexport { TRANSITIONS2_FX, registerTransitionsPack, pageTransition, crossDocumentTransitions };\n\nexport { WEATHER_FX, registerWeatherPack, skyAt };\n\nexport { PHYSICS2_FX, registerPhysicsPack, VerletWorld };\n\nexport { FOCUS_FX, registerFocusPack };\n\nexport { MUSIC_FX, registerMusicPack, syntheticSample, musicSample };\n\nexport { CHART_FX, registerChartPack, parseFigure };\n\nexport { SHOP_FX, registerShopPack, arcPath };\n\nexport { SOCIAL_FX, registerSocialPack, fanAngles };\n\nexport { GAME_FX, registerGamePack, throwPath };\n\nexport { GEO_FX, registerGeoPack, routeLength };\n\nexport { FORM_FX, registerFormPack, shakeFrames };\n\nexport { AI_FX, registerAiPack, splitWords };\n\nexport { FESTIVAL_FX, registerFestivalPack, sparkVectors };\n\nexport { RETRO_FX, registerRetroPack, pixelSteps };\n\nexport { ORGANIC_FX, registerOrganicPack, blobRadius };\n\n/** The 6.x effect packs by name. */\nexport const EFFECT_PACKS: Record<string, EffectDefinition[]> = {\n gpu: GPU_FX,\n text: TEXT3_FX,\n light: LIGHT_FX,\n depth: DEPTH3_FX,\n morph: MORPH2_FX,\n transitions: TRANSITIONS2_FX,\n weather: WEATHER_FX,\n physics: PHYSICS2_FX,\n focus: FOCUS_FX,\n music: MUSIC_FX,\n chart: CHART_FX,\n shop: SHOP_FX,\n social: SOCIAL_FX,\n game: GAME_FX,\n geo: GEO_FX,\n form: FORM_FX,\n ai: AI_FX,\n festival: FESTIVAL_FX,\n retro: RETRO_FX,\n organic: ORGANIC_FX,\n};\n\n/** Register every 6.x effect pack (idempotent). */\nexport function registerEffectPacks(): void {\n registerGpuPack();\n registerTextPack();\n registerLightPack();\n register3dPack();\n registerMorphPack();\n registerTransitionsPack();\n registerWeatherPack();\n registerPhysicsPack();\n registerFocusPack();\n registerMusicPack();\n registerChartPack();\n registerShopPack();\n registerSocialPack();\n registerGamePack();\n registerGeoPack();\n registerFormPack();\n registerAiPack();\n registerFestivalPack();\n registerRetroPack();\n registerOrganicPack();\n}\n\n\n"],"names":["GPU_FX","TEXT3_FX","LIGHT_FX","DEPTH3_FX","MORPH2_FX","TRANSITIONS2_FX","WEATHER_FX","PHYSICS2_FX","FOCUS_FX","MUSIC_FX","CHART_FX","SHOP_FX","SOCIAL_FX","GAME_FX","GEO_FX","FORM_FX","AI_FX","FESTIVAL_FX","RETRO_FX","ORGANIC_FX","registerGpuPack","registerTextPack","registerLightPack","register3dPack","registerMorphPack","registerTransitionsPack","registerWeatherPack","registerPhysicsPack","registerFocusPack","registerMusicPack","registerChartPack","registerShopPack","registerSocialPack","registerGamePack","registerGeoPack","registerFormPack","registerAiPack","registerFestivalPack","registerRetroPack","registerOrganicPack"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsEA;AACO,MAAM,YAAY,GAAuC;AAC9D,IAAA,GAAG,EAAEA,uBAAM;AACX,IAAA,IAAI,EAAEC,0BAAQ;AACd,IAAA,KAAK,EAAEC,2BAAQ;AACf,IAAA,KAAK,EAAEC,yBAAS;AAChB,IAAA,KAAK,EAAEC,4BAAS;AAChB,IAAA,WAAW,EAAEC,wCAAe;AAC5B,IAAA,OAAO,EAAEC,+BAAU;AACnB,IAAA,OAAO,EAAEC,gCAAW;AACpB,IAAA,KAAK,EAAEC,2BAAQ;AACf,IAAA,KAAK,EAAEC,2BAAQ;AACf,IAAA,KAAK,EAAEC,2BAAQ;AACf,IAAA,IAAI,EAAEC,yBAAO;AACb,IAAA,MAAM,EAAEC,6BAAS;AACjB,IAAA,IAAI,EAAEC,yBAAO;AACb,IAAA,GAAG,EAAEC,uBAAM;AACX,IAAA,IAAI,EAAEC,yBAAO;AACb,IAAA,EAAE,EAAEC,qBAAK;AACT,IAAA,QAAQ,EAAEC,iCAAW;AACrB,IAAA,KAAK,EAAEC,2BAAQ;AACf,IAAA,OAAO,EAAEC,+BAAU;;AAGrB;SACgB,mBAAmB,GAAA;AACjC,IAAAC,gCAAe,EAAE;AACjB,IAAAC,kCAAgB,EAAE;AAClB,IAAAC,oCAAiB,EAAE;AACnB,IAAAC,8BAAc,EAAE;AAChB,IAAAC,oCAAiB,EAAE;AACnB,IAAAC,gDAAuB,EAAE;AACzB,IAAAC,wCAAmB,EAAE;AACrB,IAAAC,wCAAmB,EAAE;AACrB,IAAAC,oCAAiB,EAAE;AACnB,IAAAC,oCAAiB,EAAE;AACnB,IAAAC,oCAAiB,EAAE;AACnB,IAAAC,kCAAgB,EAAE;AAClB,IAAAC,sCAAkB,EAAE;AACpB,IAAAC,kCAAgB,EAAE;AAClB,IAAAC,gCAAe,EAAE;AACjB,IAAAC,kCAAgB,EAAE;AAClB,IAAAC,8BAAc,EAAE;AAChB,IAAAC,0CAAoB,EAAE;AACtB,IAAAC,oCAAiB,EAAE;AACnB,IAAAC,wCAAmB,EAAE;AACvB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -610,6 +610,50 @@ declare const FESTIVAL_FX: EffectDefinition[];
|
|
|
610
610
|
/** Register firework-burst, lantern-rise, xmas-snow and spooky-float (8.1). */
|
|
611
611
|
declare function registerFestivalPack(): void;
|
|
612
612
|
|
|
613
|
+
/**
|
|
614
|
+
* 8.2 — Retro pack (`motionary/fx/retro`, also `motionary/components/fx-retro`):
|
|
615
|
+
*
|
|
616
|
+
* - `pixelate-in` (enter) — the element resolves from big blocky pixels to
|
|
617
|
+
* sharp, like an 8-bit sprite loading (`steps`).
|
|
618
|
+
* - `crt-power` (enter) — a CRT switching on: a bright line opens into the
|
|
619
|
+
* picture with a flash (`duration`).
|
|
620
|
+
* - `vhs-glitch` (attention) — VHS tracking jitter with an RGB split and a
|
|
621
|
+
* noise band (`intensity`).
|
|
622
|
+
* - `y2k-shine` (attention) — a chrome Y2K highlight sweeps across the
|
|
623
|
+
* element with a little bounce (`color`).
|
|
624
|
+
*
|
|
625
|
+
* Reduced motion: pixelate-in / crt-power fade in, vhs-glitch does nothing,
|
|
626
|
+
* y2k-shine is a short brightness flash.
|
|
627
|
+
*/
|
|
628
|
+
|
|
629
|
+
/** Keyframes stepping a CSS blur/contrast "pixel" filter from coarse to sharp (8.2). */
|
|
630
|
+
declare function pixelSteps(steps?: number): Keyframe[];
|
|
631
|
+
declare const RETRO_FX: EffectDefinition[];
|
|
632
|
+
/** Register pixelate-in, crt-power, vhs-glitch and y2k-shine (8.2). */
|
|
633
|
+
declare function registerRetroPack(): void;
|
|
634
|
+
|
|
635
|
+
/**
|
|
636
|
+
* 8.3 — Organic pack (`motionary/fx/organic`, also `motionary/components/fx-organic`):
|
|
637
|
+
*
|
|
638
|
+
* - `vine-grow` (enter) — SVG paths inside grow along their length like a
|
|
639
|
+
* vine and `[data-leaf]` / circles pop in along the way (`duration`).
|
|
640
|
+
* - `bloom` (enter) — the element's children unfold from the centre like
|
|
641
|
+
* petals (or the element itself blooms open) (`stagger`).
|
|
642
|
+
* - `water-drop` (attention) — the element dips like a drop hit water and
|
|
643
|
+
* concentric ripples spread out (`rings`, `color`).
|
|
644
|
+
* - `breathe` (loop) — a slow organic morph of shape and scale, like a
|
|
645
|
+
* living blob; the cleanup stops it (`duration`).
|
|
646
|
+
*
|
|
647
|
+
* Reduced motion: vine-grow shows the vine, bloom fades in, water-drop does
|
|
648
|
+
* nothing, breathe is skipped.
|
|
649
|
+
*/
|
|
650
|
+
|
|
651
|
+
/** A blob border-radius ("63% 37% 54% 46% / 55% 48% 52% 45%") from a seed (8.3). */
|
|
652
|
+
declare function blobRadius(seed: number): string;
|
|
653
|
+
declare const ORGANIC_FX: EffectDefinition[];
|
|
654
|
+
/** Register vine-grow, bloom, water-drop and breathe (8.3). */
|
|
655
|
+
declare function registerOrganicPack(): void;
|
|
656
|
+
|
|
613
657
|
/**
|
|
614
658
|
* 5.5 — generative backgrounds on Canvas 2D, registered through
|
|
615
659
|
* `registerEffect()` (kind `background`): `flow-field`, `voronoi`,
|
|
@@ -719,5 +763,5 @@ declare const EFFECT_PACKS: Record<string, EffectDefinition[]>;
|
|
|
719
763
|
/** Register every 6.x effect pack (idempotent). */
|
|
720
764
|
declare function registerEffectPacks(): void;
|
|
721
765
|
|
|
722
|
-
export { AI_FX, CHART_FX, DEPTH3_FX, EFFECT_PACKS, EFFECT_PACK_FORMAT, FESTIVAL_FX, FOCUS_FX, FORM_FX, GAME_FX, GEO_FX, GLSL_HEAD, GPU_FX, LIGHT_FX, MORPH2_FX, MUSIC_FX, PHYSICS2_FX, SHOP_FX, SOCIAL_FX, TEXT3_FX, TRANSITIONS2_FX, VerletWorld, WEATHER_FX, WGSL_HEAD, arcPath, crossDocumentTransitions, fanAngles, fieldFallback, glslToWgsl, loadEffectPack, musicSample, packManifest, pageTransition, parseFigure, pointsToPath, register3dPack, registerAiPack, registerChartPack, registerEffectPacks, registerFestivalPack, registerFocusPack, registerFormPack, registerGamePack, registerGeoPack, registerGpuPack, registerLightPack, registerMorphPack, registerMusicPack, registerPhysicsPack, registerShopPack, registerSocialPack, registerTextPack, registerTransitionsPack, registerWeatherPack, routeLength, samplePath, shaderBackground, shakeFrames, skyAt, sparkVectors, splitChars, splitWords, supportsWebGL2, supportsWebGPU, syntheticSample, throwPath, trackPointer, validateManifest, webgpuBackground, wgslModule };
|
|
766
|
+
export { AI_FX, CHART_FX, DEPTH3_FX, EFFECT_PACKS, EFFECT_PACK_FORMAT, FESTIVAL_FX, FOCUS_FX, FORM_FX, GAME_FX, GEO_FX, GLSL_HEAD, GPU_FX, LIGHT_FX, MORPH2_FX, MUSIC_FX, ORGANIC_FX, PHYSICS2_FX, RETRO_FX, SHOP_FX, SOCIAL_FX, TEXT3_FX, TRANSITIONS2_FX, VerletWorld, WEATHER_FX, WGSL_HEAD, arcPath, blobRadius, crossDocumentTransitions, fanAngles, fieldFallback, glslToWgsl, loadEffectPack, musicSample, packManifest, pageTransition, parseFigure, pixelSteps, pointsToPath, register3dPack, registerAiPack, registerChartPack, registerEffectPacks, registerFestivalPack, registerFocusPack, registerFormPack, registerGamePack, registerGeoPack, registerGpuPack, registerLightPack, registerMorphPack, registerMusicPack, registerOrganicPack, registerPhysicsPack, registerRetroPack, registerShopPack, registerSocialPack, registerTextPack, registerTransitionsPack, registerWeatherPack, routeLength, samplePath, shaderBackground, shakeFrames, skyAt, sparkVectors, splitChars, splitWords, supportsWebGL2, supportsWebGPU, syntheticSample, throwPath, trackPointer, validateManifest, webgpuBackground, wgslModule };
|
|
723
767
|
export type { EffectPackManifest, ShaderSpec };
|
package/dist/components/fx2.d.ts
CHANGED
|
@@ -610,6 +610,50 @@ declare const FESTIVAL_FX: EffectDefinition[];
|
|
|
610
610
|
/** Register firework-burst, lantern-rise, xmas-snow and spooky-float (8.1). */
|
|
611
611
|
declare function registerFestivalPack(): void;
|
|
612
612
|
|
|
613
|
+
/**
|
|
614
|
+
* 8.2 — Retro pack (`motionary/fx/retro`, also `motionary/components/fx-retro`):
|
|
615
|
+
*
|
|
616
|
+
* - `pixelate-in` (enter) — the element resolves from big blocky pixels to
|
|
617
|
+
* sharp, like an 8-bit sprite loading (`steps`).
|
|
618
|
+
* - `crt-power` (enter) — a CRT switching on: a bright line opens into the
|
|
619
|
+
* picture with a flash (`duration`).
|
|
620
|
+
* - `vhs-glitch` (attention) — VHS tracking jitter with an RGB split and a
|
|
621
|
+
* noise band (`intensity`).
|
|
622
|
+
* - `y2k-shine` (attention) — a chrome Y2K highlight sweeps across the
|
|
623
|
+
* element with a little bounce (`color`).
|
|
624
|
+
*
|
|
625
|
+
* Reduced motion: pixelate-in / crt-power fade in, vhs-glitch does nothing,
|
|
626
|
+
* y2k-shine is a short brightness flash.
|
|
627
|
+
*/
|
|
628
|
+
|
|
629
|
+
/** Keyframes stepping a CSS blur/contrast "pixel" filter from coarse to sharp (8.2). */
|
|
630
|
+
declare function pixelSteps(steps?: number): Keyframe[];
|
|
631
|
+
declare const RETRO_FX: EffectDefinition[];
|
|
632
|
+
/** Register pixelate-in, crt-power, vhs-glitch and y2k-shine (8.2). */
|
|
633
|
+
declare function registerRetroPack(): void;
|
|
634
|
+
|
|
635
|
+
/**
|
|
636
|
+
* 8.3 — Organic pack (`motionary/fx/organic`, also `motionary/components/fx-organic`):
|
|
637
|
+
*
|
|
638
|
+
* - `vine-grow` (enter) — SVG paths inside grow along their length like a
|
|
639
|
+
* vine and `[data-leaf]` / circles pop in along the way (`duration`).
|
|
640
|
+
* - `bloom` (enter) — the element's children unfold from the centre like
|
|
641
|
+
* petals (or the element itself blooms open) (`stagger`).
|
|
642
|
+
* - `water-drop` (attention) — the element dips like a drop hit water and
|
|
643
|
+
* concentric ripples spread out (`rings`, `color`).
|
|
644
|
+
* - `breathe` (loop) — a slow organic morph of shape and scale, like a
|
|
645
|
+
* living blob; the cleanup stops it (`duration`).
|
|
646
|
+
*
|
|
647
|
+
* Reduced motion: vine-grow shows the vine, bloom fades in, water-drop does
|
|
648
|
+
* nothing, breathe is skipped.
|
|
649
|
+
*/
|
|
650
|
+
|
|
651
|
+
/** A blob border-radius ("63% 37% 54% 46% / 55% 48% 52% 45%") from a seed (8.3). */
|
|
652
|
+
declare function blobRadius(seed: number): string;
|
|
653
|
+
declare const ORGANIC_FX: EffectDefinition[];
|
|
654
|
+
/** Register vine-grow, bloom, water-drop and breathe (8.3). */
|
|
655
|
+
declare function registerOrganicPack(): void;
|
|
656
|
+
|
|
613
657
|
/**
|
|
614
658
|
* 5.5 — generative backgrounds on Canvas 2D, registered through
|
|
615
659
|
* `registerEffect()` (kind `background`): `flow-field`, `voronoi`,
|
|
@@ -719,5 +763,5 @@ declare const EFFECT_PACKS: Record<string, EffectDefinition[]>;
|
|
|
719
763
|
/** Register every 6.x effect pack (idempotent). */
|
|
720
764
|
declare function registerEffectPacks(): void;
|
|
721
765
|
|
|
722
|
-
export { AI_FX, CHART_FX, DEPTH3_FX, EFFECT_PACKS, EFFECT_PACK_FORMAT, FESTIVAL_FX, FOCUS_FX, FORM_FX, GAME_FX, GEO_FX, GLSL_HEAD, GPU_FX, LIGHT_FX, MORPH2_FX, MUSIC_FX, PHYSICS2_FX, SHOP_FX, SOCIAL_FX, TEXT3_FX, TRANSITIONS2_FX, VerletWorld, WEATHER_FX, WGSL_HEAD, arcPath, crossDocumentTransitions, fanAngles, fieldFallback, glslToWgsl, loadEffectPack, musicSample, packManifest, pageTransition, parseFigure, pointsToPath, register3dPack, registerAiPack, registerChartPack, registerEffectPacks, registerFestivalPack, registerFocusPack, registerFormPack, registerGamePack, registerGeoPack, registerGpuPack, registerLightPack, registerMorphPack, registerMusicPack, registerPhysicsPack, registerShopPack, registerSocialPack, registerTextPack, registerTransitionsPack, registerWeatherPack, routeLength, samplePath, shaderBackground, shakeFrames, skyAt, sparkVectors, splitChars, splitWords, supportsWebGL2, supportsWebGPU, syntheticSample, throwPath, trackPointer, validateManifest, webgpuBackground, wgslModule };
|
|
766
|
+
export { AI_FX, CHART_FX, DEPTH3_FX, EFFECT_PACKS, EFFECT_PACK_FORMAT, FESTIVAL_FX, FOCUS_FX, FORM_FX, GAME_FX, GEO_FX, GLSL_HEAD, GPU_FX, LIGHT_FX, MORPH2_FX, MUSIC_FX, ORGANIC_FX, PHYSICS2_FX, RETRO_FX, SHOP_FX, SOCIAL_FX, TEXT3_FX, TRANSITIONS2_FX, VerletWorld, WEATHER_FX, WGSL_HEAD, arcPath, blobRadius, crossDocumentTransitions, fanAngles, fieldFallback, glslToWgsl, loadEffectPack, musicSample, packManifest, pageTransition, parseFigure, pixelSteps, pointsToPath, register3dPack, registerAiPack, registerChartPack, registerEffectPacks, registerFestivalPack, registerFocusPack, registerFormPack, registerGamePack, registerGeoPack, registerGpuPack, registerLightPack, registerMorphPack, registerMusicPack, registerOrganicPack, registerPhysicsPack, registerRetroPack, registerShopPack, registerSocialPack, registerTextPack, registerTransitionsPack, registerWeatherPack, routeLength, samplePath, shaderBackground, shakeFrames, skyAt, sparkVectors, splitChars, splitWords, supportsWebGL2, supportsWebGPU, syntheticSample, throwPath, trackPointer, validateManifest, webgpuBackground, wgslModule };
|
|
723
767
|
export type { EffectPackManifest, ShaderSpec };
|
package/dist/components/fx2.js
CHANGED
|
@@ -33,6 +33,10 @@ import { AI_FX, registerAiPack } from './fx-ai.js';
|
|
|
33
33
|
export { splitWords } from './fx-ai.js';
|
|
34
34
|
import { FESTIVAL_FX, registerFestivalPack } from './fx-festival.js';
|
|
35
35
|
export { sparkVectors } from './fx-festival.js';
|
|
36
|
+
import { RETRO_FX, registerRetroPack } from './fx-retro.js';
|
|
37
|
+
export { pixelSteps } from './fx-retro.js';
|
|
38
|
+
import { ORGANIC_FX, registerOrganicPack } from './fx-organic.js';
|
|
39
|
+
export { blobRadius } from './fx-organic.js';
|
|
36
40
|
import '../chunks/registry-CnO7ZVPK.js';
|
|
37
41
|
import '../chunks/base-CLuqlLfG.js';
|
|
38
42
|
import '../chunks/generative-2LhxG5BJ.js';
|
|
@@ -59,6 +63,8 @@ const EFFECT_PACKS = {
|
|
|
59
63
|
form: FORM_FX,
|
|
60
64
|
ai: AI_FX,
|
|
61
65
|
festival: FESTIVAL_FX,
|
|
66
|
+
retro: RETRO_FX,
|
|
67
|
+
organic: ORGANIC_FX,
|
|
62
68
|
};
|
|
63
69
|
/** Register every 6.x effect pack (idempotent). */
|
|
64
70
|
function registerEffectPacks() {
|
|
@@ -80,7 +86,9 @@ function registerEffectPacks() {
|
|
|
80
86
|
registerFormPack();
|
|
81
87
|
registerAiPack();
|
|
82
88
|
registerFestivalPack();
|
|
89
|
+
registerRetroPack();
|
|
90
|
+
registerOrganicPack();
|
|
83
91
|
}
|
|
84
92
|
|
|
85
|
-
export { AI_FX, CHART_FX, DEPTH3_FX, EFFECT_PACKS, FESTIVAL_FX, FOCUS_FX, FORM_FX, GAME_FX, GEO_FX, GPU_FX, LIGHT_FX, MORPH2_FX, MUSIC_FX, PHYSICS2_FX, SHOP_FX, SOCIAL_FX, TEXT3_FX, TRANSITIONS2_FX, WEATHER_FX, register3dPack, registerAiPack, registerChartPack, registerEffectPacks, registerFestivalPack, registerFocusPack, registerFormPack, registerGamePack, registerGeoPack, registerGpuPack, registerLightPack, registerMorphPack, registerMusicPack, registerPhysicsPack, registerShopPack, registerSocialPack, registerTextPack, registerTransitionsPack, registerWeatherPack };
|
|
93
|
+
export { AI_FX, CHART_FX, DEPTH3_FX, EFFECT_PACKS, FESTIVAL_FX, FOCUS_FX, FORM_FX, GAME_FX, GEO_FX, GPU_FX, LIGHT_FX, MORPH2_FX, MUSIC_FX, ORGANIC_FX, PHYSICS2_FX, RETRO_FX, SHOP_FX, SOCIAL_FX, TEXT3_FX, TRANSITIONS2_FX, WEATHER_FX, register3dPack, registerAiPack, registerChartPack, registerEffectPacks, registerFestivalPack, registerFocusPack, registerFormPack, registerGamePack, registerGeoPack, registerGpuPack, registerLightPack, registerMorphPack, registerMusicPack, registerOrganicPack, registerPhysicsPack, registerRetroPack, registerShopPack, registerSocialPack, registerTextPack, registerTransitionsPack, registerWeatherPack };
|
|
86
94
|
//# sourceMappingURL=fx2.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fx2.js","sources":["../../src/components/fx2/index.ts"],"sourcesContent":["/**\n * The 6.x effect packs, one entry each (`motionary/components/fx-gpu`, …) so\n * their size budgets stay separate. This module (`registerFx2()`) registers\n * them all — used by dist/widgets.umd.js and the showcase.\n */\nimport type { EffectDefinition } from '../fx/registry';\nexport { EFFECT_PACK_FORMAT, packManifest, validateManifest, loadEffectPack } from './manifest';\nexport type { EffectPackManifest } from './manifest';\nimport { GPU_FX, registerGpuPack } from './gpu';\nimport { TEXT3_FX, registerTextPack, splitChars } from './text3';\nimport { LIGHT_FX, registerLightPack, trackPointer } from './light';\nimport { DEPTH3_FX, register3dPack } from './depth3';\nimport { MORPH2_FX, registerMorphPack, samplePath, pointsToPath } from './morph2';\nimport { TRANSITIONS2_FX, registerTransitionsPack, pageTransition, crossDocumentTransitions } from './transitions2';\nimport { WEATHER_FX, registerWeatherPack, skyAt } from './weather';\nimport { PHYSICS2_FX, registerPhysicsPack, VerletWorld } from './physics2';\nimport { FOCUS_FX, registerFocusPack } from './focus';\nimport { MUSIC_FX, registerMusicPack, syntheticSample, musicSample } from './music';\nimport { CHART_FX, registerChartPack, parseFigure } from './chart';\nimport { SHOP_FX, registerShopPack, arcPath } from './shop';\nimport { SOCIAL_FX, registerSocialPack, fanAngles } from './social';\nimport { GAME_FX, registerGamePack, throwPath } from './game';\nimport { GEO_FX, registerGeoPack, routeLength } from './geo';\nimport { FORM_FX, registerFormPack, shakeFrames } from './form';\nimport { AI_FX, registerAiPack, splitWords } from './ai';\nimport { FESTIVAL_FX, registerFestivalPack, sparkVectors } from './festival';\n\nexport { GPU_FX, registerGpuPack, TEXT3_FX, registerTextPack, splitChars };\nexport { shaderBackground, supportsWebGL2, fieldFallback, GLSL_HEAD } from './gl';\nexport { supportsWebGPU, glslToWgsl, wgslModule, webgpuBackground, WGSL_HEAD } from './webgpu';\nexport type { ShaderSpec } from './gl';\n\nexport { LIGHT_FX, registerLightPack, trackPointer };\n\nexport { DEPTH3_FX, register3dPack };\n\nexport { MORPH2_FX, registerMorphPack, samplePath, pointsToPath };\n\nexport { TRANSITIONS2_FX, registerTransitionsPack, pageTransition, crossDocumentTransitions };\n\nexport { WEATHER_FX, registerWeatherPack, skyAt };\n\nexport { PHYSICS2_FX, registerPhysicsPack, VerletWorld };\n\nexport { FOCUS_FX, registerFocusPack };\n\nexport { MUSIC_FX, registerMusicPack, syntheticSample, musicSample };\n\nexport { CHART_FX, registerChartPack, parseFigure };\n\nexport { SHOP_FX, registerShopPack, arcPath };\n\nexport { SOCIAL_FX, registerSocialPack, fanAngles };\n\nexport { GAME_FX, registerGamePack, throwPath };\n\nexport { GEO_FX, registerGeoPack, routeLength };\n\nexport { FORM_FX, registerFormPack, shakeFrames };\n\nexport { AI_FX, registerAiPack, splitWords };\n\nexport { FESTIVAL_FX, registerFestivalPack, sparkVectors };\n\n/** The 6.x effect packs by name. */\nexport const EFFECT_PACKS: Record<string, EffectDefinition[]> = {\n gpu: GPU_FX,\n text: TEXT3_FX,\n light: LIGHT_FX,\n depth: DEPTH3_FX,\n morph: MORPH2_FX,\n transitions: TRANSITIONS2_FX,\n weather: WEATHER_FX,\n physics: PHYSICS2_FX,\n focus: FOCUS_FX,\n music: MUSIC_FX,\n chart: CHART_FX,\n shop: SHOP_FX,\n social: SOCIAL_FX,\n game: GAME_FX,\n geo: GEO_FX,\n form: FORM_FX,\n ai: AI_FX,\n festival: FESTIVAL_FX,\n};\n\n/** Register every 6.x effect pack (idempotent). */\nexport function registerEffectPacks(): void {\n registerGpuPack();\n registerTextPack();\n registerLightPack();\n register3dPack();\n registerMorphPack();\n registerTransitionsPack();\n registerWeatherPack();\n registerPhysicsPack();\n registerFocusPack();\n registerMusicPack();\n registerChartPack();\n registerShopPack();\n registerSocialPack();\n registerGamePack();\n registerGeoPack();\n registerFormPack();\n registerAiPack();\n registerFestivalPack();\n}\n\n\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fx2.js","sources":["../../src/components/fx2/index.ts"],"sourcesContent":["/**\n * The 6.x effect packs, one entry each (`motionary/components/fx-gpu`, …) so\n * their size budgets stay separate. This module (`registerFx2()`) registers\n * them all — used by dist/widgets.umd.js and the showcase.\n */\nimport type { EffectDefinition } from '../fx/registry';\nexport { EFFECT_PACK_FORMAT, packManifest, validateManifest, loadEffectPack } from './manifest';\nexport type { EffectPackManifest } from './manifest';\nimport { GPU_FX, registerGpuPack } from './gpu';\nimport { TEXT3_FX, registerTextPack, splitChars } from './text3';\nimport { LIGHT_FX, registerLightPack, trackPointer } from './light';\nimport { DEPTH3_FX, register3dPack } from './depth3';\nimport { MORPH2_FX, registerMorphPack, samplePath, pointsToPath } from './morph2';\nimport { TRANSITIONS2_FX, registerTransitionsPack, pageTransition, crossDocumentTransitions } from './transitions2';\nimport { WEATHER_FX, registerWeatherPack, skyAt } from './weather';\nimport { PHYSICS2_FX, registerPhysicsPack, VerletWorld } from './physics2';\nimport { FOCUS_FX, registerFocusPack } from './focus';\nimport { MUSIC_FX, registerMusicPack, syntheticSample, musicSample } from './music';\nimport { CHART_FX, registerChartPack, parseFigure } from './chart';\nimport { SHOP_FX, registerShopPack, arcPath } from './shop';\nimport { SOCIAL_FX, registerSocialPack, fanAngles } from './social';\nimport { GAME_FX, registerGamePack, throwPath } from './game';\nimport { GEO_FX, registerGeoPack, routeLength } from './geo';\nimport { FORM_FX, registerFormPack, shakeFrames } from './form';\nimport { AI_FX, registerAiPack, splitWords } from './ai';\nimport { FESTIVAL_FX, registerFestivalPack, sparkVectors } from './festival';\nimport { RETRO_FX, registerRetroPack, pixelSteps } from './retro2';\nimport { ORGANIC_FX, registerOrganicPack, blobRadius } from './organic';\n\nexport { GPU_FX, registerGpuPack, TEXT3_FX, registerTextPack, splitChars };\nexport { shaderBackground, supportsWebGL2, fieldFallback, GLSL_HEAD } from './gl';\nexport { supportsWebGPU, glslToWgsl, wgslModule, webgpuBackground, WGSL_HEAD } from './webgpu';\nexport type { ShaderSpec } from './gl';\n\nexport { LIGHT_FX, registerLightPack, trackPointer };\n\nexport { DEPTH3_FX, register3dPack };\n\nexport { MORPH2_FX, registerMorphPack, samplePath, pointsToPath };\n\nexport { TRANSITIONS2_FX, registerTransitionsPack, pageTransition, crossDocumentTransitions };\n\nexport { WEATHER_FX, registerWeatherPack, skyAt };\n\nexport { PHYSICS2_FX, registerPhysicsPack, VerletWorld };\n\nexport { FOCUS_FX, registerFocusPack };\n\nexport { MUSIC_FX, registerMusicPack, syntheticSample, musicSample };\n\nexport { CHART_FX, registerChartPack, parseFigure };\n\nexport { SHOP_FX, registerShopPack, arcPath };\n\nexport { SOCIAL_FX, registerSocialPack, fanAngles };\n\nexport { GAME_FX, registerGamePack, throwPath };\n\nexport { GEO_FX, registerGeoPack, routeLength };\n\nexport { FORM_FX, registerFormPack, shakeFrames };\n\nexport { AI_FX, registerAiPack, splitWords };\n\nexport { FESTIVAL_FX, registerFestivalPack, sparkVectors };\n\nexport { RETRO_FX, registerRetroPack, pixelSteps };\n\nexport { ORGANIC_FX, registerOrganicPack, blobRadius };\n\n/** The 6.x effect packs by name. */\nexport const EFFECT_PACKS: Record<string, EffectDefinition[]> = {\n gpu: GPU_FX,\n text: TEXT3_FX,\n light: LIGHT_FX,\n depth: DEPTH3_FX,\n morph: MORPH2_FX,\n transitions: TRANSITIONS2_FX,\n weather: WEATHER_FX,\n physics: PHYSICS2_FX,\n focus: FOCUS_FX,\n music: MUSIC_FX,\n chart: CHART_FX,\n shop: SHOP_FX,\n social: SOCIAL_FX,\n game: GAME_FX,\n geo: GEO_FX,\n form: FORM_FX,\n ai: AI_FX,\n festival: FESTIVAL_FX,\n retro: RETRO_FX,\n organic: ORGANIC_FX,\n};\n\n/** Register every 6.x effect pack (idempotent). */\nexport function registerEffectPacks(): void {\n registerGpuPack();\n registerTextPack();\n registerLightPack();\n register3dPack();\n registerMorphPack();\n registerTransitionsPack();\n registerWeatherPack();\n registerPhysicsPack();\n registerFocusPack();\n registerMusicPack();\n registerChartPack();\n registerShopPack();\n registerSocialPack();\n registerGamePack();\n registerGeoPack();\n registerFormPack();\n registerAiPack();\n registerFestivalPack();\n registerRetroPack();\n registerOrganicPack();\n}\n\n\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsEA;AACO,MAAM,YAAY,GAAuC;AAC9D,IAAA,GAAG,EAAE,MAAM;AACX,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,KAAK,EAAE,QAAQ;AACf,IAAA,KAAK,EAAE,SAAS;AAChB,IAAA,KAAK,EAAE,SAAS;AAChB,IAAA,WAAW,EAAE,eAAe;AAC5B,IAAA,OAAO,EAAE,UAAU;AACnB,IAAA,OAAO,EAAE,WAAW;AACpB,IAAA,KAAK,EAAE,QAAQ;AACf,IAAA,KAAK,EAAE,QAAQ;AACf,IAAA,KAAK,EAAE,QAAQ;AACf,IAAA,IAAI,EAAE,OAAO;AACb,IAAA,MAAM,EAAE,SAAS;AACjB,IAAA,IAAI,EAAE,OAAO;AACb,IAAA,GAAG,EAAE,MAAM;AACX,IAAA,IAAI,EAAE,OAAO;AACb,IAAA,EAAE,EAAE,KAAK;AACT,IAAA,QAAQ,EAAE,WAAW;AACrB,IAAA,KAAK,EAAE,QAAQ;AACf,IAAA,OAAO,EAAE,UAAU;;AAGrB;SACgB,mBAAmB,GAAA;AACjC,IAAA,eAAe,EAAE;AACjB,IAAA,gBAAgB,EAAE;AAClB,IAAA,iBAAiB,EAAE;AACnB,IAAA,cAAc,EAAE;AAChB,IAAA,iBAAiB,EAAE;AACnB,IAAA,uBAAuB,EAAE;AACzB,IAAA,mBAAmB,EAAE;AACrB,IAAA,mBAAmB,EAAE;AACrB,IAAA,iBAAiB,EAAE;AACnB,IAAA,iBAAiB,EAAE;AACnB,IAAA,iBAAiB,EAAE;AACnB,IAAA,gBAAgB,EAAE;AAClB,IAAA,kBAAkB,EAAE;AACpB,IAAA,gBAAgB,EAAE;AAClB,IAAA,eAAe,EAAE;AACjB,IAAA,gBAAgB,EAAE;AAClB,IAAA,cAAc,EAAE;AAChB,IAAA,oBAAoB,EAAE;AACtB,IAAA,iBAAiB,EAAE;AACnB,IAAA,mBAAmB,EAAE;AACvB;;;;"}
|