@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.0` always resolves to exactly that build, forever
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.0/dist/styles/anim-kit.css" />
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.0/dist/anim-kit.standalone.js";
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.0/dist/anim-kit.standalone.js`
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.0/+esm";
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.0/dist/styles/anim-kit.css" />
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.0/dist/index.js",
153
- "@cosmictraveler002/anim-kit/three": "https://cdn.jsdelivr.net/npm/@cosmictraveler002/anim-kit@1.6.0/dist/three/index.js",
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.0/dist/index.js`, …) —
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, and the strip
933
- dissolves into the floor below instead of ending on a hard edge. Drag to
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, bottom-faded in-shader) —
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":"AA8CA,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,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;AAuED,wBAAgB,cAAc,CAC5B,MAAM,EAAE,UAAU,EAClB,OAAO,GAAE,qBAA0B,GAClC,oBAAoB,CAuatB"}
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 the
5
- * whole strip dissolves into the bottom of the screen.
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 fade out below NDC −0.8.
34
- * `destroy()` kills the tween/ticker/observers/listeners, disposes the
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
- vec4 clip = projectionMatrix * modelViewMatrix * vec4(arc, 1.0);
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
- varying float vNdcY;
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 wheel's far half shows card BACKS: mirrored, one mip of blur,
82
- rgb at half — and every card dissolves into the strip below NDC −0.8
83
- instead of ending on a hard edge. */
84
- vec2 tc = vUv;
85
- tc.x = gl_FrontFacing ? tc.x : 1.0 - tc.x;
86
- float isFront = gl_FrontFacing ? 0.0 : 1.0;
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
- vec4 sharp = texture2D(uMap, tc);
89
- vec4 blur = texture2D(uMap, tc, 1.0);
90
- vec4 col = mix(blur, sharp, isFront);
91
- col.rgb *= 0.5 + isFront * 0.5;
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, aspect 5:3 — the reference card mesh. */
143
- const geometry = new THREE.PlaneGeometry(1, 0.6, 19, 1);
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.0",
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 the
5
- * whole strip dissolves into the bottom of the screen.
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 fade out below NDC −0.8.
34
- * `destroy()` kills the tween/ticker/observers/listeners, disposes the
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
- vec4 clip = projectionMatrix * modelViewMatrix * vec4(arc, 1.0);
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
- varying float vNdcY;
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 wheel's far half shows card BACKS: mirrored, one mip of blur,
110
- rgb at half — and every card dissolves into the strip below NDC −0.8
111
- instead of ending on a hard edge. */
112
- vec2 tc = vUv;
113
- tc.x = gl_FrontFacing ? tc.x : 1.0 - tc.x;
114
- float isFront = gl_FrontFacing ? 0.0 : 1.0;
115
-
116
- vec4 sharp = texture2D(uMap, tc);
117
- vec4 blur = texture2D(uMap, tc, 1.0);
118
- vec4 col = mix(blur, sharp, isFront);
119
- col.rgb *= 0.5 + isFront * 0.5;
120
- col.a *= clamp(smoothstep(-1.0, -0.8, vNdcY), 0.0, 1.0);
121
- gl_FragColor = col;
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, aspect 5:3 — the reference card mesh. */
194
- const geometry = new THREE.PlaneGeometry(1, 0.6, 19, 1);
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
  },