Changelog
All notable changes follow Keep a Changelog and Semantic Versioning.
0.1.1 — 2026-08-25
Fixed
- Prevented a load-time iOS Safari permission request from blocking the first real interaction, and request only the shared orientation permission instead of racing both sensor APIs.
0.1.0 — 2026-08-24
Added
- Four WebGL optical materials: spectral film, brushed foil, thin film, and facet chrome.
- World-fixed lighting driven by device attitude with pointer fallback.
- Native button props, form semantics, accessibility attributes, and DOM ref forwarding.
- Responsive width and height controls with a fixed high-fidelity pill silhouette.
- Prominent disclosure that the implementation is AI-generated and has not received human review.
Fixed
- Made iOS Safari motion authorization recover existing permission on entry and retry safely on tap when WebKit rejects a non-eligible gesture.
Changed
- Reworked the shared specular response as a smooth glass clear coat and moved the fixed key light roughly 45° toward the lower side of the surface.
- Exposed surface-specular intensity, roughness, bloom, and Fresnel as live-updating component props.
- Unified specular lighting with each material’s perturbed surface normal so prism facets and rim bump directly shape the highlight instead of carrying a separate smooth top coat.
- Softened the recessed/raised rim transition by widening the bump profile and reducing its normal displacement.
- Added specular color, dielectric IOR, anisotropy strength, and anisotropy rotation controls.
- Changed the default text label treatment from white screen blending to solid black while preserving arbitrary JSX children.
- Made zero specular intensity disable every direct highlight contribution and added an independent highlight-size control.
- Removed the label text shadow so the copy no longer appears engraved.
- Promoted the tuned blue, broad anisotropic specular settings from the playground to the component defaults.
- Replaced the public specular tuning parameters with a single
specular boolean and fixed the approved preset inside the material.
- Changed the hero copy to “A button that catches the light.”
- Removed the outermost white top-edge highlight while retaining the inset reflective rim.