iPhone Siri

Pro

Tap the Dynamic Island and a live WebGL glass surface blooms out of it.

webgl3dphonemockupglassvoiceshaderiostheme
iPhone Siri component preview

Installation

Run the following command

~/your-project
pnpm dlx wensity@latest add iphone-siri

Usage

Import IphoneSiri from @/components/wensity/iphone-siri and render it anywhere in your React or Next.js app. The source lands in your own repo, so every prop, class and animation below is yours to edit.

app/example.tsx
import { IphoneSiri } from "@/components/wensity/iphone-siri";
export default function Example() {
return (
<IphoneSiri
frame="cosmic-orange"
weather={{ city: "Noida", condition: "Cloudy", temperature: 28, high: 33, low: 27 }}
calendar={{ weekday: "TUESDAY", day: "17", month: "Aug" }}
/>
);
}

Props

PropTypeDefaultDescription
wallpaperstringbronze wallpaperWallpaper URL. Drives both the screen and the glass reflection.
weatherIphoneSiriWeather-City, condition, temperature, and the high and low row.
calendarIphoneSiriCalendar-Weekday, day, and month shown on the calendar widget.
eventIphoneSiriEvent | null-Single all day calendar entry. Pass null for an empty day.
statusTimestring"9:41"Status bar clock text.
frame"cosmic-orange" | "silver" | "deep-blue" | "burgundy""cosmic-orange"Chassis finish. Retints the rail, buttons, polished rim, and antenna lines.
hintbooleantrueShow the discovery affordances: a halo on the Dynamic Island and a leader line at the side button. Both retire once Siri is opened.
wallpaperDimnumber0.4Black laid over the wallpaper, 0 to 1. Applied to the screen and matched in the glass reflection.
wallpaperBlurnumber1Wallpaper blur in CSS pixels. The reflection uses twice this value, since it renders at 2x.
renderScalenumber1Multiplies the WebGL buffer resolution so the glass stays sharp when the phone is scaled up. Capped at 3x.
classNamestring-Classes merged onto the outer wrapper.