From 6ec5b6a6876e9a35d420635ba180a5cb916149bb Mon Sep 17 00:00:00 2001 From: Dana Bauer Date: Fri, 6 Mar 2026 12:14:11 -0500 Subject: [PATCH 1/7] first pass at landing page redesign --- docs/introduction.mdx | 81 ---------- sidebars.js | 1 - src/pages/index.jsx | 182 +++++++++++++++++++++++ src/pages/index.module.css | 296 +++++++++++++++++++++++++++++++++++++ 4 files changed, 478 insertions(+), 82 deletions(-) delete mode 100644 docs/introduction.mdx create mode 100644 src/pages/index.jsx create mode 100644 src/pages/index.module.css diff --git a/docs/introduction.mdx b/docs/introduction.mdx deleted file mode 100644 index cd8568da..00000000 --- a/docs/introduction.mdx +++ /dev/null @@ -1,81 +0,0 @@ ---- -description: Overture Documentation -slug: / -title: Introduction ---- - -Welcome! Overture provides free and open map data normalized to [one schema](/schema). Our [six data "themes"](guides) — [addresses](guides/addresses), [buildings](guides/buildings), [base](guides/base), [divisions](guides/divisions), [places](guides/places), and [transportation](guides/transportation) — contain nearly 4.2 billion features and will continue to expand in size and scale. The data we use to build our datasets comes from many sources, including OpenStreetMap, Meta, Microsoft, Esri, OpenAddresses, and [more](attribution). - -In this documentation, you'll find [instructions](getting-data) for accessing and handling Overture's large datasets, [reference material](/schema) to help you understand the Overture schema, comprehensive [guides](guides) to working with the many themes and types of Overture data, and [hands-on examples](examples) using data wrangling, analysis, and visualization tools you know and love. Want to see what our community has been building? Check out the [community projects](community) section of our documentation for inspiration. - -## Overture data - -We release our data monthly as [cloud-native GeoParquet](https://guide.cloudnativegeo.org/geoparquet/) files, partitioned by theme and type. Each data theme contains one or more feature types: - -| Theme | Feature types | -| --------------------------------------- | ------------------------------------------------------------- | -| [Addresses](guides/addresses) | address | -| [Base](guides/base) | bathymetry, infrastructure, land, land_cover, land_use, water | -| [Buildings](guides/buildings) | building, building_part | -| [Divisions](guides/divisions) | division, division_area, division_boundary | -| [Places](guides/places) | place | -| [Transportation](guides/transportation) | segment, connector | - -
-Theme-type mapping as JSON - -```json -type_theme_map = { - "address": "addresses", - "building": "buildings", - "building_part": "buildings", - "division": "divisions", - "division_area": "divisions", - "division_boundary": "divisions", - "place": "places", - "segment": "transportation", - "connector": "transportation", - "bathymetry": "base", - "infrastructure": "base", - "land": "base", - "land_cover": "base", - "land_use": "base", - "water": "base" -} -``` - -
- -You'll find the GeoParquet column definitions for each feature type in our data [guides](guides). - -## Overture schema - -In our [schema reference docs](/schema), we describe key schema concepts for each theme and definitions and examples for each feature type. - -## Vision - -The [member companies of the Overture Maps Foundation](https://overturemaps.org/about/members/) are working collaboratively to build the datasets and schema. They share a common vision: - -### Address the core, enable the periphery - -The Overture schema doesn't solve every problem. It offers complete, out-of-the-box solutions for the most fundamental "core" use cases. At the same time, the schema's extensible structure enables a wide range of other use cases ("the periphery"). - -### Invent across the gap - -The mapping community already has access to many excellent tools, standards and practices. The Overture schema reuses these existing solutions to maximize compatibility and focus on solving unaddressed pain points. - -### Backward-compatible is forward-compatible - -No design is future-proof, but good designs stay relevant by adding features without breaking what already works. The Overture schema can be enhanced in a backward-compatible way. - -### Always open - -The Overture schema and data formats aim for compatibility with free and open-source tools, avoiding dependency on proprietary technologies. - -## Contact us - -We want to hear from you. Ask questions, report bugs, provide feedback, and submit contributions via our public Overture GitHub repositories: - -- [Schema](https://github.com/OvertureMaps/schema) -- [Data](https://github.com/OvertureMaps/data) -- [Docs](https://github.com/OvertureMaps/docs) diff --git a/sidebars.js b/sidebars.js index bfb976b3..4510c36c 100644 --- a/sidebars.js +++ b/sidebars.js @@ -1,7 +1,6 @@ /** @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} */ const sidebars = { docs: [ - 'introduction', { type: 'category', label: 'Getting Started', diff --git a/src/pages/index.jsx b/src/pages/index.jsx new file mode 100644 index 00000000..f6957866 --- /dev/null +++ b/src/pages/index.jsx @@ -0,0 +1,182 @@ +import React, { useEffect, useRef } from 'react'; +import Layout from '@theme/Layout'; +import styles from './index.module.css'; + +const WORDS = [ + 'free and open map data.', + 'a modular, extendable schema.', + 'stable UUIDs for the world.', + 'shared infrastructure.', + 'cross-sector collaboration.', + 'an invitation to build and share.', +]; + +const STATS = [ + { number: '2.7B+', label: 'map features globally' }, + { number: '6', label: 'unified data themes' }, + { number: '50+', label: 'member organizations' }, + { number: 'Free', label: 'under open licenses' }, +]; + +function RotatingWord() { + const wrapRef = useRef(null); + const wordRefs = useRef([]); + const dotRefs = useRef([]); + const currentRef = useRef(0); + const timerRef = useRef(null); + + useEffect(() => { + const wordEls = wordRefs.current; + const dotEls = dotRefs.current; + const wrap = wrapRef.current; + + // Size wrap to widest word + let maxW = 0; + wordEls.forEach(el => { + el.style.visibility = 'hidden'; + el.style.opacity = '1'; + el.style.position = 'relative'; + maxW = Math.max(maxW, el.offsetWidth); + el.style.visibility = ''; + el.style.opacity = ''; + el.style.position = ''; + }); + wrap.style.width = maxW + 'px'; + + function goTo(next) { + const prev = currentRef.current; + if (next === prev) return; + wordEls[prev].classList.remove(styles.active); + wordEls[prev].classList.add(styles.exit); + dotEls[prev].classList.remove(styles.activeDot); + currentRef.current = next; + setTimeout(() => wordEls[prev].classList.remove(styles.exit), 400); + wordEls[next].classList.add(styles.active); + dotEls[next].classList.add(styles.activeDot); + } + + function advance() { + goTo((currentRef.current + 1) % WORDS.length); + } + + timerRef.current = setInterval(advance, 3200); + + wrap._goTo = (i) => { + clearInterval(timerRef.current); + goTo(i); + timerRef.current = setInterval(advance, 3200); + }; + + const pauseTimer = () => clearInterval(timerRef.current); + const resumeTimer = () => { timerRef.current = setInterval(advance, 3200); }; + wrap.addEventListener('mouseenter', pauseTimer); + wrap.addEventListener('mouseleave', resumeTimer); + + return () => { + clearInterval(timerRef.current); + wrap.removeEventListener('mouseenter', pauseTimer); + wrap.removeEventListener('mouseleave', resumeTimer); + }; + }, []); + + return ( + <> +
+ {WORDS.map((word, i) => ( + (wordRefs.current[i] = el)} + > + {word} + + ))} +
+
+ {WORDS.map((_, i) => ( +
(dotRefs.current[i] = el)} + onClick={() => wrapRef.current?._goTo(i)} + /> + ))} +
+ + ); +} + +export default function Home() { + return ( + + {/* HERO TEXT */} +
+
+
+ Overture + is +
+ +
+ +

+ A platform for bringing together tech companies, mapping organizations, government agencies, nonprofits, open data communities, and researchers + to build open, reliable, and interoperable map data infrastructure. +

+ +
+ + Explore the data + + + Read the docs → + +
+
+ + {/* EXPLORER EMBED */} +
+
+