Bulgarian Maps
A self-initiated interactive history project exploring the territorial expansion of Bulgaria through a scroll-driven timeline interface. The project visualizes the reigns of Bulgaria's most significant rulers .
The Challenge
The core idea was to create an immersive, map-driven experience where history unfolds naturally through scrolling. Inspired by editorial cartography and historical atlases, the interface pairs a fixed full-screen historical map on the left with a chronological timeline on the right — each ruler activating a unique map of Bulgaria's borders at that moment in time. The result is a visual narrative of how a nation grew, consolidated, and defended itself over four centuries.
Design & Visual Language
The aesthetic draws from dark cartographic traditions — deep navy backgrounds, antique gold typography, and layered vignetting that dissolve the map naturally into the content panel, creating a sense of depth without hard edges. Every detail was considered: the subtle gradient that bleeds the map into the timeline, the soft glow pulsing on the active timeline dot, the century markers quietly anchoring the reader's position in history.
Technical Decisions
Built with pure vanilla JavaScript, HTML, and CSS — no frameworks, no build tools. The scroll experience was carefully engineered to feel native and responsive across all devices, with smooth map crossfades and a geometric active-state detection system that works reliably in both scroll directions on desktop and mobile.
Challenges
The greatest design challenge was balancing information density with visual clarity — fitting portraits, dates, descriptions, and events into a scrollable card without the interface feeling cluttered. The solution was a clear visual hierarchy: the ruler's name dominates, the epithet recedes, the description breathes, and the events sit quietly beneath. Each layer of information has its own typographic weight and opacity, guiding the eye naturally from the most important to the most detailed.
Project still in building…