DioptreOptician WordPress Theme
Hold the glasses up to the eye chart and change the prescription, lens and coating — a live WebGPU lens, drawn frames, a face-shape finder and appointment requests.
Open live preview ↗
Highlights
- Live WebGPU lens over an eye chart: prescription, index and coatings
- Frames drawn from their data, rendered live in their own shape and colour
- Face-shape finder, CSS-only frame filters and a lens-thickness calculator
- Appointment slots from opening hours, plus local-search structured data
Overview
Who it is for
Independent opticians, optometrists and eyewear boutiques — practices that win patients by explaining things properly. Dioptre shows the eye care, the frames and the people, helps a visitor choose, and turns interest into an appointment request.
A lens you can hold up to the chart, in WebGPU
The hero is a pair of glasses held over an eye chart. Outside the lenses the chart is blurred by the chosen prescription; through them it is sharp, minified for short sight and magnified for long sight. Colour fringes grow with the lens material’s Abbe number, the edge bevel follows the sagitta thickness formula, and reflections drop from around 8–14% to a faint green residual when anti-glare is on. Blue-filter and sun-reactive lenses behave as they do in life. A compute shader builds the blur mip chain; a 2D canvas version keeps it interactive where WebGPU is missing. Each frame’s page renders the same lens in that frame’s shape, colour and material.
Frames, finder and lens guide
Frames are native records with shape, material, colour, lens width, bridge, temple and the face shapes they suit, drawn in SVG from their data with a measured size diagram. A face-shape finder suggests frames; the frames page filters by shape, material and face with pure CSS. The lens guide compares 1.50, 1.60, 1.67 and 1.74 edge thickness for a visitor’s own prescription, frame size and PD.
Appointments and local search
Appointment slots follow the opening hours set in the Customizer, are validated on the server and stored privately with a reference; nothing is emailed or charged. Every page carries a JSON-LD graph — Optician with address, geo and opening hours, Product offers for frames, Services, BlogPostings, FAQPage and breadcrumbs — plus meta descriptions and Open Graph cards, and it all steps aside for a dedicated SEO plugin.
What's included
- Classic PHP theme source — no build step, no third-party JavaScript
- Frames, collections, services, team and appointment-request post types
- Ten frames, six services, four team members, About, Lens guide and Book pages, four articles
- Customizer: practice details, opening hours, hero copy, starting prescription
- JSON-LD graph, meta descriptions and Open Graph cards that defer to SEO plugins
- Self-hosted OFL fonts and a repeatable demo importer
Specifications
| WordPress | 6.5+ |
|---|---|
| PHP | 8.0+ |
| Browsers | Chrome, Firefox, Safari, Edge (latest) |
| Layout | Fully responsive, mobile → desktop |
| Localization | English interface; translation-ready |
| Accessibility | Keyboard-navigable · prefers-reduced-motion |
| Page builder | Not required — native Customizer |
| License | GNU GPL v2 · single-site commercial |
Release
Version 1.0.0: WebGPU lens hero with 2D-canvas and drawn-frame fallbacks, frames with live per-frame lens previews and size diagrams, face-shape finder, lens-thickness calculator, services, team, appointment requests driven by opening hours, journal with contents, and structured data for local search.