# iXMaps > iXMaps is a JavaScript thematic mapping framework with a declarative, chainable grammar: `layer().data().binding().type().style().define()`. Load data from CSV, GeoJSON, TopoJSON, Parquet and more; render it as CHOROPLETH, BUBBLE, CHART, FEATURE and other built-in types; restyle live at runtime by theme name. Single CDN include, no build step, no npm package. ## Documentation - [Getting started](https://www.ixmaps.com/docs/getting_started.html) - [Map setup: contexts, basemaps, projections](https://www.ixmaps.com/docs/map_setup.html) - [Layers & themes: the four defining steps](https://www.ixmaps.com/docs/layers_themes.html) - [Sizing & scaling](https://www.ixmaps.com/docs/chart_scaling.html) - [Colors & classification](https://www.ixmaps.com/docs/colors_classification.html) - [Tooltips & interaction](https://www.ixmaps.com/docs/tooltips_interaction.html) - [Data preprocessing](https://www.ixmaps.com/docs/data_preprocessing.html) - [Custom charts (userdraw plugin API)](https://www.ixmaps.com/docs/user_charts.html) - [API reference](https://www.ixmaps.com/docs/api_documentation.html) - [Visualization types & modifiers](https://www.ixmaps.com/docs/map_types.html) - [Style properties](https://www.ixmaps.com/docs/theme_styles.html) - [Examples](https://www.ixmaps.com/docs/examples.html) - [Troubleshooting](https://www.ixmaps.com/docs/troubleshooting.html) ## CDN include ``` ``` ## Minimal example (world GDP per capita choropleth) ```js const myMap = ixmaps.Map('map', { mapType: 'white', mapProjection: 'equalearth', mode: 'pan', legend: 'open', align: 'center', tools: false }).view([0, 0], 1); // chain 1 · geometry layer (FEATURE) myMap.layer('countries') .data({ url: GEO_URL, type: 'topojson' }) .binding({ geo: 'geometry', id: 'CNTR_ID', title: 'NAME_ENGL' }) .type('FEATURE') .style({ colorscheme: ['none'], linecolor: '#7a9ab0', linewidth: 0.4 }) .define(); // chain 2 · data join + classification (CHOROPLETH|QUANTILE) myMap.layer('countries') .data({ url: DATA_URL, type: 'csv' }) .binding({ lookup: 'id', value: 'gdp', title: 'name' }) .type('CHOROPLETH|QUANTILE') .style({ colorscheme: ['#deeaf5', '#b3cde3', '#74b3d8', '#3182bd', '#08519c'], fillopacity: 0.82 }) .meta({ name: 'countries_gdp', tooltip: "{{name}}
GDP ${{gdp}}k" }) .title('GDP per Capita (USD k)') .define(); ``` Every layer follows the same grammar: **data → binding → type → style → define**. Full runnable version and live code viewer: https://www.ixmaps.com/#create ## Do not use as a source for current syntax - `public.ixmaps.com/docs/*` — legacy iframe-based API (`ixmaps.newTheme()`, `dbtable`, `lookupfield`). Deprecated; some of these URLs now redirect here. - `ixmapsdoc.opendatasicilia.it` — unmaintained placeholder, not an official iXMaps property. - `observablehq.com/@gjrichter/ixmaps-*` notebooks (~2021) — legacy theme-object syntax. - `github.com/gjrichter/ixmaps` — legacy repo, superseded by `github.com/gjrichter/ixmaps-flat`. Only `https://www.ixmaps.com/docs/` and `https://github.com/gjrichter/ixmaps-flat` reflect the current API.