
UNSO Observatory — a fullpage scroll demo for a ridge-top observatory
UNSO is a fullpage scroll demo site designed and built for a fictional astronomical observatory on the ridges of Taebaek. On top of a night-sky palette, a custom fullpage engine moves exactly one section per wheel gesture — no scroll library involved.
A custom fullpage scroll engine
Wheel deltas are accumulated so only deliberate gestures trigger a section change, and an 800ms gate serializes input during transitions to block scroll interruptions. Trackpad jitter (deltaY=0 events) is ignored, and the final section ends in a dead-end footer that behaves naturally. The right-edge dot remote, keyboard navigation (arrows, PageUp/Down, Home/End), and hash-based deep links all run through the same step pipeline.
Facilities slider with isolated inner scroll
The facilities section lets its horizontal slider consume gestures first and only hands back to page transitions at the edges. Nested scroll axes never fight, so exploring the slider to its end never over-advances the page.
Campus accordion with serialized expansion
The campus section introduces eight facilities — domes, a planetarium, an optics lab and more — through a click-only accordion. Switching items closes the open one first (0.24s) before opening the next (0.45s), which structurally eliminates the screen shake caused by two items being expanded at once. Map hotspots and the list share one state, and font sizes capped with min(vw, dvh) keep the full list visible even in wide, short windows.
Stack
- Next.js (App Router, static export) + TypeScript
- Custom fullpage scroll engine built without libraries
- Responsive typography on dvh/vw units, tuned for short viewports
- Deployed on Cloudflare Pages
Related projects

IEUM FRAME — hotel IA translated into a custom steel bicycle atelier
Next.js · Cloudflare Pages · Grok Imagine · custom bicycle

ONSUM Sauna — a franchise landing translated into urban baths
Next.js · GSAP · Franchise Landing · Sauna

PAPYEON RADIO — a museum-language site for an independent station
Next.js · Cloudflare Pages · Grok Imagine · museum IA