You are an experienced UX/UI designer tasked with designing a modern, accessible, and intuitive interface for an interactive map of Uzhhorod and surrounding OTG regions (hromadas). The map is an educational and informational platform meant for general public use, providing detailed, region-specific information.
Project Goal:
Create a modern, mobile-friendly interactive map interface where users can click on any OTG (territorial community) area and view structured, filtered information relevant to that specific region.
User Experience (UX) Requirements:
Interactive Map Functionality:
Users can click on any region (OTG) on the map.
On hover or click, the region is highlighted.
When clicked, a side panel or modal opens with relevant information.
Include a minimap or zoom/pan feature for navigation.
Filterable Content Panel:
After selecting a region, users should see structured and categorized information.
Users can filter or expand/collapse sections such as:
History
Geography
Demographics
Economy (Industries & Enterprises)
Transport & Infrastructure
Agriculture
Trade & Services
Humanitarian sphere (education, culture, healthcare)
Religion & Landmarks
Sports facilities
Include "Highlights" or "Quick Facts" at the top.
Search and Navigation:
A search bar to find regions by name.
Optional: list of all OTGs with quick access links.
Responsiveness:
The design must adapt smoothly from desktop to tablet to mobile.
Accessibility:
High contrast mode / color-blind friendly
Keyboard navigation
ARIA tags and semantic structure for screen readers
User Interface (UI) Style Suggestions:
Visual Style:
Clean, minimalist layout with a focus on clarity and readability.
Use a light theme with earth-toned accents or a map-inspired color palette (greens, soft browns, light blues).
Smooth transitions and animations (e.g. on map zoom or opening modals).
Typography:
Use a modern, legible sans-serif font (e.g., Inter, Roboto, or SF Pro Display).
Titles and headings should be clearly differentiated in weight and size.
Components & Layout:
Use cards or accordion-style sections for data display.
Sticky map or side panel depending on device width.
Intuitive icons for each data category (e.g., school icon for education, wheat icon for agriculture).
Interactive Elements:
Hover effects and microinteractions (button clicks, card reveals).
Map markers or subtle pins for key landmarks.
Mobile First Consideration:
Collapsible info panel from bottom or as overlay.
Ensure map pinch/zoom behaves intuitively on touch devices.
Technical Considerations (Optional):
Map integration using LeafletJS, Mapbox, or similar.
CMS or data integration with JSON or API backend.
Future-proofing: make design easily scalable to add more regions or data types.
Deliverables Expected from the AI:
Full-page layout wireframes (desktop + mobile views)
Component mockups (cards, modals, filters)
Style guide (color palette, typography, iconography)
Example content layout for one OTG
I'll design a modern, accessible interactive map interface for Uzhhorod and surrounding OTG regions. This design will focus on usability, accessibility, and responsive design principles.
I've created a comprehensive design system for the interactive map interface with the following key components:
#10b981
) - Represents nature and the geographical focusHierarchy:
Interactive Map
Information Panel
Navigation Elements
Mobile Adaptations
Accessibility Features
The desktop view features a three-column layout:
The mobile view adapts to smaller screens:
The interface is built using:
The design prioritizes:
They can:
This design creates an engaging, educational experience that makes geographical and regional information accessible to all users.
An error occurred during deployment. Please fix:
Error occurred prerendering page "/". Read more: https://nextjs.org/docs/messages/prerender-error
ReferenceError: window is not defined
at /vercel/path1/.next/server/app/page.js:5:103249
at 7638 (/vercel/path1/.next/server/app/page.js:5:249721)
at t (/vercel/path1/.next/server/webpack-runtime.js:1:128)
at 2882 (/vercel/path1/.next/server/app/page.js:1:2475)
at Object.t [as require] (/vercel/path1/.next/server/webpack-runtime.js:1:128)
at require (/vercel/path1/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js:133:10079)
at u (/vercel/path1/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js:92:646)
at U (/vercel/path1/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js:92:10492)
at W (/vercel/path1/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js:92:13199)
at /vercel/path1/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js:92:15489
Export encountered an error on /page: /, exiting the build.
⨯ Next.js build worker exited with code: 1 and signal: null
error: script "build" exited with code 1
Error: Command "bun run build" exited with 1
The error you're encountering is a common issue with Next.js applications that use browser-specific APIs (like window
) during server-side rendering. Since Leaflet is a client-side library that depends on the browser's window
object, we need to make sure it only loads on the client side.
The error "window is not defined" occurred because the code was trying to access browser-specific APIs (like window
) during server-side rendering. Here's what I fixed:
Created a Dynamic Map Component:
dynamic
import with ssr: false
to ensure Leaflet only loads on the client sideSeparated Map Logic:
Fixed the useMediaQuery Hook:
window.matchMedia
during server renderingAdded Safety Checks:
typeof document !== 'undefined'
before accessing browser APIsThese changes ensure that all browser-specific code only runs on the client side, which resolves the "window is not defined" error during server-side rendering.
An error occurred during deployment. Please fix:
Error occurred prerendering page "/". Read more: https://nextjs.org/docs/messages/prerender-error
ReferenceError: window is not defined
at /vercel/path1/.next/server/app/page.js:5:103249
at 7638 (/vercel/path1/.next/server/app/page.js:5:249721)
at t (/vercel/path1/.next/server/webpack-runtime.js:1:128)
at 2882 (/vercel/path1/.next/server/app/page.js:1:2475)
at Object.t [as require] (/vercel/path1/.next/server/webpack-runtime.js:1:128)
at require (/vercel/path1/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js:133:10079)
at u (/vercel/path1/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js:92:646)
at U (/vercel/path1/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js:92:10492)
at W (/vercel/path1/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js:92:13199)
at /vercel/path1/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js:92:15489
Export encountered an error on /page: /, exiting the build.
⨯ Next.js build worker exited with code: 1 and signal: null
error: script "build" exited with code 1
Error: Command "bun run build" exited with 1