@cosmictraveler002/anim-kit 1.6.0 → 1.6.1
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/README.md
CHANGED
|
@@ -99,7 +99,7 @@ resolves declarations through the same map — no `typesVersions` shim needed.
|
|
|
99
99
|
|
|
100
100
|
No build step on the consumer's end: `dist/` is served as-is from the npm
|
|
101
101
|
tarball by any npm CDN. Every URL is **version-pinned** — npm versions are
|
|
102
|
-
immutable, so `@cosmictraveler002/anim-kit@1.6.
|
|
102
|
+
immutable, so `@cosmictraveler002/anim-kit@1.6.1` always resolves to exactly that build, forever
|
|
103
103
|
(only a new version creates a new URL; nothing floats unless you ask for a
|
|
104
104
|
range).
|
|
105
105
|
|
|
@@ -110,12 +110,12 @@ plugins anim-kit uses) and `lenis` **inlined** — no import map, one URL, works
|
|
|
110
110
|
identically on jsDelivr and unpkg:
|
|
111
111
|
|
|
112
112
|
```html
|
|
113
|
-
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@cosmictraveler002/anim-kit@1.6.
|
|
113
|
+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@cosmictraveler002/anim-kit@1.6.1/dist/styles/anim-kit.css" />
|
|
114
114
|
|
|
115
115
|
<script type="module">
|
|
116
116
|
import {
|
|
117
117
|
smoothScroll, lineReveal, marquee,
|
|
118
|
-
} from "https://cdn.jsdelivr.net/npm/@cosmictraveler002/anim-kit@1.6.
|
|
118
|
+
} from "https://cdn.jsdelivr.net/npm/@cosmictraveler002/anim-kit@1.6.1/dist/anim-kit.standalone.js";
|
|
119
119
|
|
|
120
120
|
smoothScroll();
|
|
121
121
|
lineReveal("[data-lines]", { mode: "scroll" });
|
|
@@ -123,7 +123,7 @@ identically on jsDelivr and unpkg:
|
|
|
123
123
|
</script>
|
|
124
124
|
```
|
|
125
125
|
|
|
126
|
-
unpkg serves the same file: `https://unpkg.com/@cosmictraveler002/anim-kit@1.6.
|
|
126
|
+
unpkg serves the same file: `https://unpkg.com/@cosmictraveler002/anim-kit@1.6.1/dist/anim-kit.standalone.js`
|
|
127
127
|
|
|
128
128
|
### Option 2 — jsDelivr `+esm`
|
|
129
129
|
|
|
@@ -132,7 +132,7 @@ per version):
|
|
|
132
132
|
|
|
133
133
|
```html
|
|
134
134
|
<script type="module">
|
|
135
|
-
import { lineReveal } from "https://cdn.jsdelivr.net/npm/@cosmictraveler002/anim-kit@1.6.
|
|
135
|
+
import { lineReveal } from "https://cdn.jsdelivr.net/npm/@cosmictraveler002/anim-kit@1.6.1/+esm";
|
|
136
136
|
</script>
|
|
137
137
|
```
|
|
138
138
|
|
|
@@ -144,13 +144,13 @@ locally, with CDN URLs — and the way to share one GSAP between anim-kit and
|
|
|
144
144
|
the rest of your page:
|
|
145
145
|
|
|
146
146
|
```html
|
|
147
|
-
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@cosmictraveler002/anim-kit@1.6.
|
|
147
|
+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@cosmictraveler002/anim-kit@1.6.1/dist/styles/anim-kit.css" />
|
|
148
148
|
|
|
149
149
|
<script type="importmap">
|
|
150
150
|
{
|
|
151
151
|
"imports": {
|
|
152
|
-
"@cosmictraveler002/anim-kit": "https://cdn.jsdelivr.net/npm/@cosmictraveler002/anim-kit@1.6.
|
|
153
|
-
"@cosmictraveler002/anim-kit/three": "https://cdn.jsdelivr.net/npm/@cosmictraveler002/anim-kit@1.6.
|
|
152
|
+
"@cosmictraveler002/anim-kit": "https://cdn.jsdelivr.net/npm/@cosmictraveler002/anim-kit@1.6.1/dist/index.js",
|
|
153
|
+
"@cosmictraveler002/anim-kit/three": "https://cdn.jsdelivr.net/npm/@cosmictraveler002/anim-kit@1.6.1/dist/three/index.js",
|
|
154
154
|
"three": "https://cdn.jsdelivr.net/npm/three@0.186.1/build/three.module.js",
|
|
155
155
|
"gsap": "https://cdn.jsdelivr.net/npm/gsap@3.15.0/index.js",
|
|
156
156
|
"gsap/ScrollTrigger": "https://cdn.jsdelivr.net/npm/gsap@3.15.0/ScrollTrigger.js",
|
|
@@ -171,7 +171,7 @@ the rest of your page:
|
|
|
171
171
|
</script>
|
|
172
172
|
```
|
|
173
173
|
|
|
174
|
-
Swap the host for unpkg (`https://unpkg.com/@cosmictraveler002/anim-kit@1.6.
|
|
174
|
+
Swap the host for unpkg (`https://unpkg.com/@cosmictraveler002/anim-kit@1.6.1/dist/index.js`, …) —
|
|
175
175
|
the file layout is identical. GSAP subpaths are listed one by one because
|
|
176
176
|
import maps match specifiers literally: a trailing-slash prefix map would
|
|
177
177
|
produce extension-less URLs, which CDNs don't serve. The `gsap`/`lenis` pins
|
|
@@ -929,8 +929,9 @@ user-select: none`.
|
|
|
929
929
|
|
|
930
930
|
Media cards on a flattened vertical wheel: each card bends along the arc in
|
|
931
931
|
the vertex shader instead of staying a rigid plane, fronts face you bright
|
|
932
|
-
while the backs show mirrored, one mip blurrier and half-lit,
|
|
933
|
-
|
|
932
|
+
while the backs show mirrored, one mip blurrier and half-lit, every card
|
|
933
|
+
carries a soft rim glow and a hair of blur at its edge — but photos stay
|
|
934
|
+
fully solid to their border, no translucent frames. Drag to
|
|
934
935
|
scrub — a release within 5 % of a slot commits to the neighbouring card,
|
|
935
936
|
smaller drags spring back — and while idle the wheel creeps a slot's lead-in
|
|
936
937
|
and then advances on its own.
|
|
@@ -950,6 +951,8 @@ wheel.destroy();
|
|
|
950
951
|
| `autoplay` / `idle` | `true` / `5` | idle advance — seconds of stillness (with a 1/8-slot lead-in creep) |
|
|
951
952
|
| `duration` | `1.15` | `goTo()` tween, seconds (`next()` / `prev()` use 0.5) |
|
|
952
953
|
| `margin` | `0.1` | gap between cards, as a fraction of one slot |
|
|
954
|
+
| `glow` | `0.32` | rim-glow intensity around every card, 0–1 (0 = hard flat cards) |
|
|
955
|
+
| `edgeBlur` | `1` | soft blur at every card edge, 0–1 (0 = sharp edges); cards stay opaque either way |
|
|
953
956
|
| `dpr` | `2` | device-pixel-ratio cap |
|
|
954
957
|
|
|
955
958
|
Cards are the host's own `<img>`s — cover-cropped into textures at mount (a
|
|
@@ -958,7 +961,7 @@ from their inline opacity on teardown. Pointer capture keeps the drag over the
|
|
|
958
961
|
deck wherever the pointer is and native image-dragging is blocked so a card
|
|
959
962
|
never swallows the stream; the host claims `cursor: grab` + `touch-action:
|
|
960
963
|
pan-y` and a `data-ak-coverflow` stamp, all restored by `destroy()`. Card
|
|
961
|
-
backs reuse the front texture (mirrored, half light
|
|
964
|
+
backs reuse the front texture (mirrored, half light in-shader) —
|
|
962
965
|
no second texture, no extra pass.
|
|
963
966
|
|
|
964
967
|
**Silent no-op ladder.** Missing target → inert handle; no
|
|
@@ -10,6 +10,10 @@ export interface CoverflowWheelOptions extends CommonOptions {
|
|
|
10
10
|
duration?: number;
|
|
11
11
|
/** Gap between cards, as a fraction of one slot (0 = cards touching). @default 0.1 */
|
|
12
12
|
margin?: number;
|
|
13
|
+
/** Rim-glow intensity around every card, 0–1 (0 = hard flat cards). @default 0.32 */
|
|
14
|
+
glow?: number;
|
|
15
|
+
/** Soft blur at every card edge, 0–1 (0 = sharp edges). Cards stay fully opaque either way. @default 1 */
|
|
16
|
+
edgeBlur?: number;
|
|
13
17
|
/** Device-pixel-ratio cap for the canvas. @default 2 */
|
|
14
18
|
dpr?: number;
|
|
15
19
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coverflow-wheel.d.ts","sourceRoot":"","sources":["../../src/three/coverflow-wheel.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"coverflow-wheel.d.ts","sourceRoot":"","sources":["../../src/three/coverflow-wheel.ts"],"names":[],"mappings":"AAgDA,OAAO,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE3E,MAAM,WAAW,qBAAsB,SAAQ,aAAa;IAC1D,6CAA6C;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iEAAiE;IACjE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,yEAAyE;IACzE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sFAAsF;IACtF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qFAAqF;IACrF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,0GAA0G;IAC1G,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wDAAwD;IACxD,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,oBAAoB;IACnC,wEAAwE;IACxE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7C,sCAAsC;IACtC,IAAI,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,0CAA0C;IAC1C,IAAI,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,OAAO,EAAE,OAAO,CAAC;CAClB;AA0GD,wBAAgB,cAAc,CAC5B,MAAM,EAAE,UAAU,EAClB,OAAO,GAAE,qBAA0B,GAClC,oBAAoB,CA+atB"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Coverflow wheel — a deck of `<img>` cards riding a flattened spinning
|
|
3
3
|
* wheel: the front card faces you, its neighbours curve away to both sides,
|
|
4
|
-
* the far half of the wheel shows the blurred, dimmed card *backs*, and
|
|
5
|
-
*
|
|
4
|
+
* the far half of the wheel shows the blurred, dimmed card *backs*, and every
|
|
5
|
+
* card stays fully opaque to its geometric edge — no feather, no frames.
|
|
6
6
|
*
|
|
7
7
|
* - **Cards bend along the arc.** Each card's geometry spans exactly one
|
|
8
8
|
* slot, so every vertex is placed on the circle from its own angle —
|
|
@@ -30,8 +30,10 @@
|
|
|
30
30
|
* - **Fidelity.** The camera is a *horizontal* 35° FOV converted to
|
|
31
31
|
* three's vertical one (near 0.1, far 10); the wheel node sits at
|
|
32
32
|
* `y −0.1, z −(2r) −0.8, rotateX −0.18, rotateZ 0.12`; back faces
|
|
33
|
-
* sample one mip of blur at half rgb; cards
|
|
34
|
-
*
|
|
33
|
+
* sample one mip of blur at half rgb; cards are fully solid — no alpha
|
|
34
|
+
* feather, no bottom dissolve.
|
|
35
|
+
* Every card carries a rim-glow band and softly blurred edges
|
|
36
|
+
* (`glow` / `edgeBlur`). `destroy()` kills the tween/ticker/observers/listeners, disposes the
|
|
35
37
|
* GL objects and restores every style it touched — including the card
|
|
36
38
|
* opacities.
|
|
37
39
|
*
|
|
@@ -52,7 +54,6 @@ uniform float uRadius;
|
|
|
52
54
|
uniform float uMargin;
|
|
53
55
|
|
|
54
56
|
varying vec2 vUv;
|
|
55
|
-
varying float vNdcY;
|
|
56
57
|
|
|
57
58
|
void main() {
|
|
58
59
|
/* Geometry spans one stride, so each card bends along the arc instead of
|
|
@@ -63,34 +64,69 @@ void main() {
|
|
|
63
64
|
float angle = circleProgress * 6.28318530718;
|
|
64
65
|
vec3 arc = vec3(cos(angle) * uRadius, p.y, sin(angle) * uRadius * 0.5);
|
|
65
66
|
|
|
66
|
-
|
|
67
|
+
gl_Position = projectionMatrix * modelViewMatrix * vec4(arc, 1.0);
|
|
67
68
|
vUv = uv;
|
|
68
|
-
vNdcY = clip.y / clip.w;
|
|
69
|
-
gl_Position = clip;
|
|
70
69
|
}
|
|
71
70
|
`;
|
|
71
|
+
/** Rim-glow band width — each side of the plane as a fraction of it. The
|
|
72
|
+
* geometry is inflated by 1/(1 − 2·GM), so the inner region stays the exact
|
|
73
|
+
* 5:3 card (1 × 0.6) while the outer band renders the glow. */
|
|
74
|
+
const GM = 0.045;
|
|
72
75
|
const FRAG = /* glsl */ `
|
|
73
76
|
precision highp float;
|
|
74
77
|
|
|
78
|
+
const float GM = ${GM}; // rim-glow band width, uv units of the whole plane
|
|
79
|
+
|
|
75
80
|
uniform sampler2D uMap;
|
|
81
|
+
uniform float uGlow;
|
|
82
|
+
uniform float uBlur;
|
|
76
83
|
|
|
77
84
|
varying vec2 vUv;
|
|
78
|
-
|
|
85
|
+
|
|
86
|
+
/* 9-tap disc blur — the taps collapse to the centre where the card is sharp. */
|
|
87
|
+
vec4 tapBlur(vec2 uv, float r, float bias) {
|
|
88
|
+
vec4 s = texture2D(uMap, uv, bias) * 2.0;
|
|
89
|
+
s += texture2D(uMap, uv + vec2(r, 0.0), bias);
|
|
90
|
+
s += texture2D(uMap, uv - vec2(r, 0.0), bias);
|
|
91
|
+
s += texture2D(uMap, uv + vec2(0.0, r), bias);
|
|
92
|
+
s += texture2D(uMap, uv - vec2(0.0, r), bias);
|
|
93
|
+
s += texture2D(uMap, uv + vec2(r, r) * 0.7071, bias);
|
|
94
|
+
s += texture2D(uMap, uv + vec2(-r, r) * 0.7071, bias);
|
|
95
|
+
s += texture2D(uMap, uv + vec2(r, -r) * 0.7071, bias);
|
|
96
|
+
s += texture2D(uMap, uv + vec2(-r, -r) * 0.7071, bias);
|
|
97
|
+
return s * 0.1;
|
|
98
|
+
}
|
|
79
99
|
|
|
80
100
|
void main() {
|
|
81
|
-
/* The
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
101
|
+
/* The plane carries a rim-glow band around the card image: inner region =
|
|
102
|
+
content, outer band = glow. Front faces sample the sharp mip at full rgb;
|
|
103
|
+
back faces are mirrored, one mip blurrier and half-lit — the reference
|
|
104
|
+
fragment spec (gl_FrontFacing picks the side you actually see). */
|
|
105
|
+
float front = gl_FrontFacing ? 1.0 : 0.0;
|
|
106
|
+
vec2 cuv = (vUv - GM) / (1.0 - 2.0 * GM);
|
|
107
|
+
vec2 tc = cuv;
|
|
108
|
+
tc.x = front > 0.5 ? tc.x : 1.0 - tc.x;
|
|
109
|
+
|
|
110
|
+
/* distance to the card edge — inside drives the edge blur, outside the glow */
|
|
111
|
+
float dIn = min(min(cuv.x, 1.0 - cuv.x), min(cuv.y, 1.0 - cuv.y));
|
|
112
|
+
vec2 q = abs(vUv - 0.5) - (0.5 - GM);
|
|
113
|
+
float dOut = min(max(q.x, q.y), 0.0) + length(max(q, 0.0)); // signed box, round outside
|
|
114
|
+
|
|
115
|
+
/* every card's edge gets a gentle blur — but alpha stays at the texture's:
|
|
116
|
+
photos are solid to their geometric edge, never feathered into a
|
|
117
|
+
translucent frame over the dark backdrop */
|
|
118
|
+
float r = (1.0 - smoothstep(0.0, 0.035, dIn)) * uBlur * 0.006;
|
|
119
|
+
vec4 col = tapBlur(tc, r, 1.0 - front);
|
|
120
|
+
col.rgb *= mix(0.5, 1.0, front);
|
|
121
|
+
|
|
122
|
+
/* rim glow: brightest hugging the card outline, tight falloff inside the band */
|
|
123
|
+
float band = dOut > 0.0 ? pow(1.0 - clamp(dOut / GM, 0.0, 1.0), 2.4) : 0.0;
|
|
124
|
+
float glowA = band * uGlow * mix(0.6, 1.0, front);
|
|
87
125
|
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
col.a *= clamp(smoothstep(-1.0, -0.8, vNdcY), 0.0, 1.0);
|
|
93
|
-
gl_FragColor = col;
|
|
126
|
+
/* glow sits behind the card content — composited as one normal blend */
|
|
127
|
+
float a = col.a + glowA * (1.0 - col.a);
|
|
128
|
+
vec3 rgb = (col.rgb * col.a + glowA * (1.0 - col.a)) / max(a, 1e-4);
|
|
129
|
+
gl_FragColor = vec4(rgb, a);
|
|
94
130
|
}
|
|
95
131
|
`;
|
|
96
132
|
/** Handles from the silent no-op ladder — every call is safe. */
|
|
@@ -112,7 +148,7 @@ export function coverflowWheel(target, options = {}) {
|
|
|
112
148
|
return INERT;
|
|
113
149
|
if (prefersReducedMotion() && !options.force)
|
|
114
150
|
return INERT;
|
|
115
|
-
const { index = 0, autoplay = true, idle = 5, duration = 1.15, margin = 0.1, dpr = 2, } = options;
|
|
151
|
+
const { index = 0, autoplay = true, idle = 5, duration = 1.15, margin = 0.1, glow = 0.32, edgeBlur = 1, dpr = 2, } = options;
|
|
116
152
|
/* ---------------- availability ladder (silent, no probes) ---------------- */
|
|
117
153
|
if (typeof window === "undefined" || !("WebGLRenderingContext" in window)) {
|
|
118
154
|
return INERT;
|
|
@@ -139,8 +175,10 @@ export function coverflowWheel(target, options = {}) {
|
|
|
139
175
|
"position:absolute;inset:0;width:100%;height:100%;display:block;pointer-events:none;";
|
|
140
176
|
const scene = new THREE.Scene();
|
|
141
177
|
const camera = new THREE.PerspectiveCamera(vfovFor(w / h), w / h, 0.1, 10);
|
|
142
|
-
/* 40 verts / 114 indices
|
|
143
|
-
|
|
178
|
+
/* 40 verts / 114 indices — the reference card mesh, inflated by the glow
|
|
179
|
+
margin: the inner region is still the exact 5:3 card (1 × 0.6), the
|
|
180
|
+
outer band renders the rim glow. */
|
|
181
|
+
const geometry = new THREE.PlaneGeometry(1 / (1 - 2 * GM), 0.6 / (1 - 2 * GM), 19, 1);
|
|
144
182
|
const node = new THREE.Group(); // pose + drag squeeze
|
|
145
183
|
const sway = new THREE.Group(); // pointer parallax
|
|
146
184
|
node.add(sway);
|
|
@@ -150,6 +188,8 @@ export function coverflowWheel(target, options = {}) {
|
|
|
150
188
|
uStride: { value: 0 },
|
|
151
189
|
uRadius: { value: 1 },
|
|
152
190
|
uMargin: { value: margin },
|
|
191
|
+
uGlow: { value: clamp01(glow) },
|
|
192
|
+
uBlur: { value: clamp01(edgeBlur) },
|
|
153
193
|
};
|
|
154
194
|
const materials = [];
|
|
155
195
|
const textures = [];
|
|
@@ -323,6 +363,8 @@ export function coverflowWheel(target, options = {}) {
|
|
|
323
363
|
uStride: shared.uStride,
|
|
324
364
|
uRadius: shared.uRadius,
|
|
325
365
|
uMargin: shared.uMargin,
|
|
366
|
+
uGlow: shared.uGlow,
|
|
367
|
+
uBlur: shared.uBlur,
|
|
326
368
|
uSlot: { value: i * (1 / N) },
|
|
327
369
|
uMap: { value: tex },
|
|
328
370
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coverflow-wheel.js","sourceRoot":"","sources":["../../src/three/coverflow-wheel.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"coverflow-wheel.js","sourceRoot":"","sources":["../../src/three/coverflow-wheel.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cosmictraveler002/anim-kit",
|
|
3
|
-
"version": "1.6.
|
|
3
|
+
"version": "1.6.1",
|
|
4
4
|
"description": "Modular, framework-agnostic animation library — GSAP + ScrollTrigger + Lenis effects packaged as composable ES modules.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Coverflow wheel — a deck of `<img>` cards riding a flattened spinning
|
|
3
3
|
* wheel: the front card faces you, its neighbours curve away to both sides,
|
|
4
|
-
* the far half of the wheel shows the blurred, dimmed card *backs*, and
|
|
5
|
-
*
|
|
4
|
+
* the far half of the wheel shows the blurred, dimmed card *backs*, and every
|
|
5
|
+
* card stays fully opaque to its geometric edge — no feather, no frames.
|
|
6
6
|
*
|
|
7
7
|
* - **Cards bend along the arc.** Each card's geometry spans exactly one
|
|
8
8
|
* slot, so every vertex is placed on the circle from its own angle —
|
|
@@ -30,8 +30,10 @@
|
|
|
30
30
|
* - **Fidelity.** The camera is a *horizontal* 35° FOV converted to
|
|
31
31
|
* three's vertical one (near 0.1, far 10); the wheel node sits at
|
|
32
32
|
* `y −0.1, z −(2r) −0.8, rotateX −0.18, rotateZ 0.12`; back faces
|
|
33
|
-
* sample one mip of blur at half rgb; cards
|
|
34
|
-
*
|
|
33
|
+
* sample one mip of blur at half rgb; cards are fully solid — no alpha
|
|
34
|
+
* feather, no bottom dissolve.
|
|
35
|
+
* Every card carries a rim-glow band and softly blurred edges
|
|
36
|
+
* (`glow` / `edgeBlur`). `destroy()` kills the tween/ticker/observers/listeners, disposes the
|
|
35
37
|
* GL objects and restores every style it touched — including the card
|
|
36
38
|
* opacities.
|
|
37
39
|
*
|
|
@@ -57,6 +59,10 @@ export interface CoverflowWheelOptions extends CommonOptions {
|
|
|
57
59
|
duration?: number;
|
|
58
60
|
/** Gap between cards, as a fraction of one slot (0 = cards touching). @default 0.1 */
|
|
59
61
|
margin?: number;
|
|
62
|
+
/** Rim-glow intensity around every card, 0–1 (0 = hard flat cards). @default 0.32 */
|
|
63
|
+
glow?: number;
|
|
64
|
+
/** Soft blur at every card edge, 0–1 (0 = sharp edges). Cards stay fully opaque either way. @default 1 */
|
|
65
|
+
edgeBlur?: number;
|
|
60
66
|
/** Device-pixel-ratio cap for the canvas. @default 2 */
|
|
61
67
|
dpr?: number;
|
|
62
68
|
}
|
|
@@ -79,7 +85,6 @@ uniform float uRadius;
|
|
|
79
85
|
uniform float uMargin;
|
|
80
86
|
|
|
81
87
|
varying vec2 vUv;
|
|
82
|
-
varying float vNdcY;
|
|
83
88
|
|
|
84
89
|
void main() {
|
|
85
90
|
/* Geometry spans one stride, so each card bends along the arc instead of
|
|
@@ -90,35 +95,71 @@ void main() {
|
|
|
90
95
|
float angle = circleProgress * 6.28318530718;
|
|
91
96
|
vec3 arc = vec3(cos(angle) * uRadius, p.y, sin(angle) * uRadius * 0.5);
|
|
92
97
|
|
|
93
|
-
|
|
98
|
+
gl_Position = projectionMatrix * modelViewMatrix * vec4(arc, 1.0);
|
|
94
99
|
vUv = uv;
|
|
95
|
-
vNdcY = clip.y / clip.w;
|
|
96
|
-
gl_Position = clip;
|
|
97
100
|
}
|
|
98
101
|
`;
|
|
99
102
|
|
|
103
|
+
/** Rim-glow band width — each side of the plane as a fraction of it. The
|
|
104
|
+
* geometry is inflated by 1/(1 − 2·GM), so the inner region stays the exact
|
|
105
|
+
* 5:3 card (1 × 0.6) while the outer band renders the glow. */
|
|
106
|
+
const GM = 0.045;
|
|
107
|
+
|
|
100
108
|
const FRAG = /* glsl */ `
|
|
101
109
|
precision highp float;
|
|
102
110
|
|
|
111
|
+
const float GM = ${GM}; // rim-glow band width, uv units of the whole plane
|
|
112
|
+
|
|
103
113
|
uniform sampler2D uMap;
|
|
114
|
+
uniform float uGlow;
|
|
115
|
+
uniform float uBlur;
|
|
104
116
|
|
|
105
117
|
varying vec2 vUv;
|
|
106
|
-
|
|
118
|
+
|
|
119
|
+
/* 9-tap disc blur — the taps collapse to the centre where the card is sharp. */
|
|
120
|
+
vec4 tapBlur(vec2 uv, float r, float bias) {
|
|
121
|
+
vec4 s = texture2D(uMap, uv, bias) * 2.0;
|
|
122
|
+
s += texture2D(uMap, uv + vec2(r, 0.0), bias);
|
|
123
|
+
s += texture2D(uMap, uv - vec2(r, 0.0), bias);
|
|
124
|
+
s += texture2D(uMap, uv + vec2(0.0, r), bias);
|
|
125
|
+
s += texture2D(uMap, uv - vec2(0.0, r), bias);
|
|
126
|
+
s += texture2D(uMap, uv + vec2(r, r) * 0.7071, bias);
|
|
127
|
+
s += texture2D(uMap, uv + vec2(-r, r) * 0.7071, bias);
|
|
128
|
+
s += texture2D(uMap, uv + vec2(r, -r) * 0.7071, bias);
|
|
129
|
+
s += texture2D(uMap, uv + vec2(-r, -r) * 0.7071, bias);
|
|
130
|
+
return s * 0.1;
|
|
131
|
+
}
|
|
107
132
|
|
|
108
133
|
void main() {
|
|
109
|
-
/* The
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
134
|
+
/* The plane carries a rim-glow band around the card image: inner region =
|
|
135
|
+
content, outer band = glow. Front faces sample the sharp mip at full rgb;
|
|
136
|
+
back faces are mirrored, one mip blurrier and half-lit — the reference
|
|
137
|
+
fragment spec (gl_FrontFacing picks the side you actually see). */
|
|
138
|
+
float front = gl_FrontFacing ? 1.0 : 0.0;
|
|
139
|
+
vec2 cuv = (vUv - GM) / (1.0 - 2.0 * GM);
|
|
140
|
+
vec2 tc = cuv;
|
|
141
|
+
tc.x = front > 0.5 ? tc.x : 1.0 - tc.x;
|
|
142
|
+
|
|
143
|
+
/* distance to the card edge — inside drives the edge blur, outside the glow */
|
|
144
|
+
float dIn = min(min(cuv.x, 1.0 - cuv.x), min(cuv.y, 1.0 - cuv.y));
|
|
145
|
+
vec2 q = abs(vUv - 0.5) - (0.5 - GM);
|
|
146
|
+
float dOut = min(max(q.x, q.y), 0.0) + length(max(q, 0.0)); // signed box, round outside
|
|
147
|
+
|
|
148
|
+
/* every card's edge gets a gentle blur — but alpha stays at the texture's:
|
|
149
|
+
photos are solid to their geometric edge, never feathered into a
|
|
150
|
+
translucent frame over the dark backdrop */
|
|
151
|
+
float r = (1.0 - smoothstep(0.0, 0.035, dIn)) * uBlur * 0.006;
|
|
152
|
+
vec4 col = tapBlur(tc, r, 1.0 - front);
|
|
153
|
+
col.rgb *= mix(0.5, 1.0, front);
|
|
154
|
+
|
|
155
|
+
/* rim glow: brightest hugging the card outline, tight falloff inside the band */
|
|
156
|
+
float band = dOut > 0.0 ? pow(1.0 - clamp(dOut / GM, 0.0, 1.0), 2.4) : 0.0;
|
|
157
|
+
float glowA = band * uGlow * mix(0.6, 1.0, front);
|
|
158
|
+
|
|
159
|
+
/* glow sits behind the card content — composited as one normal blend */
|
|
160
|
+
float a = col.a + glowA * (1.0 - col.a);
|
|
161
|
+
vec3 rgb = (col.rgb * col.a + glowA * (1.0 - col.a)) / max(a, 1e-4);
|
|
162
|
+
gl_FragColor = vec4(rgb, a);
|
|
122
163
|
}
|
|
123
164
|
`;
|
|
124
165
|
|
|
@@ -156,6 +197,8 @@ export function coverflowWheel(
|
|
|
156
197
|
idle = 5,
|
|
157
198
|
duration = 1.15,
|
|
158
199
|
margin = 0.1,
|
|
200
|
+
glow = 0.32,
|
|
201
|
+
edgeBlur = 1,
|
|
159
202
|
dpr = 2,
|
|
160
203
|
} = options;
|
|
161
204
|
|
|
@@ -190,8 +233,10 @@ export function coverflowWheel(
|
|
|
190
233
|
const scene = new THREE.Scene();
|
|
191
234
|
const camera = new THREE.PerspectiveCamera(vfovFor(w / h), w / h, 0.1, 10);
|
|
192
235
|
|
|
193
|
-
/* 40 verts / 114 indices
|
|
194
|
-
|
|
236
|
+
/* 40 verts / 114 indices — the reference card mesh, inflated by the glow
|
|
237
|
+
margin: the inner region is still the exact 5:3 card (1 × 0.6), the
|
|
238
|
+
outer band renders the rim glow. */
|
|
239
|
+
const geometry = new THREE.PlaneGeometry(1 / (1 - 2 * GM), 0.6 / (1 - 2 * GM), 19, 1);
|
|
195
240
|
|
|
196
241
|
const node = new THREE.Group(); // pose + drag squeeze
|
|
197
242
|
const sway = new THREE.Group(); // pointer parallax
|
|
@@ -203,6 +248,8 @@ export function coverflowWheel(
|
|
|
203
248
|
uStride: { value: 0 },
|
|
204
249
|
uRadius: { value: 1 },
|
|
205
250
|
uMargin: { value: margin },
|
|
251
|
+
uGlow: { value: clamp01(glow) },
|
|
252
|
+
uBlur: { value: clamp01(edgeBlur) },
|
|
206
253
|
};
|
|
207
254
|
const materials: THREE.ShaderMaterial[] = [];
|
|
208
255
|
const textures: THREE.Texture[] = [];
|
|
@@ -391,6 +438,8 @@ export function coverflowWheel(
|
|
|
391
438
|
uStride: shared.uStride,
|
|
392
439
|
uRadius: shared.uRadius,
|
|
393
440
|
uMargin: shared.uMargin,
|
|
441
|
+
uGlow: shared.uGlow,
|
|
442
|
+
uBlur: shared.uBlur,
|
|
394
443
|
uSlot: { value: i * (1 / N) },
|
|
395
444
|
uMap: { value: tex },
|
|
396
445
|
},
|