# ng-mapcn > Angular port of [mapcn](https://www.mapcn.dev) — composable MapLibre GL v6 map components in the spirit of shadcn/ui. Standalone, signals-first, OnPush, SSR-safe, theme-aware. Carto basemaps by default, so no API key is required. Distributed both as an npm package and as copy-paste sources via `ng add` (you own the code). Version: 22.0.0-beta.7 · License: MIT · npm: https://www.npmjs.com/package/ng-mapcn ## Overview - [Home](https://ng-mapcn.vercel.app/): live examples — trails, arcs, fly-to, delivery, analytics, EV charging. - [Documentation](https://ng-mapcn.vercel.app/docs): introduction, features and supported basemaps. - [Installation](https://ng-mapcn.vercel.app/docs/installation): `ng add` (copy-paste) or npm package. - [Map Styles](https://ng-mapcn.vercel.app/docs/basemaps): a working example per provider (Carto, OpenFreeMap, OpenStreetMap, MapTiler, Stadia). - [API Reference](https://ng-mapcn.vercel.app/docs/api-reference): every component with inputs and outputs. - [Credits](https://ng-mapcn.vercel.app/credits): mapcn, Zard UI, MapLibre, Carto. - [Repository](https://github.com/juanvieiraprado99/ng-mapcn): source, issues, releases. - [llms-full.txt](https://ng-mapcn.vercel.app/llms-full.txt): the complete API in one file, for agents. ## Components Docs pages: [Map](https://ng-mapcn.vercel.app/docs/components/map) · [Controls](https://ng-mapcn.vercel.app/docs/components/controls) · [Markers](https://ng-mapcn.vercel.app/docs/components/markers) · [Popups](https://ng-mapcn.vercel.app/docs/components/popups) · [Routes](https://ng-mapcn.vercel.app/docs/components/routes) · [Arcs](https://ng-mapcn.vercel.app/docs/components/arcs) · [GeoJSON](https://ng-mapcn.vercel.app/docs/components/geojson) · [Clusters](https://ng-mapcn.vercel.app/docs/components/clusters) · [Heatmap](https://ng-mapcn.vercel.app/docs/components/heatmap) · [Tile Sources](https://ng-mapcn.vercel.app/docs/components/tile-sources) · [3D Buildings & Terrain](https://ng-mapcn.vercel.app/docs/components/3d) · [Draw](https://ng-mapcn.vercel.app/docs/components/draw) · [Advanced](https://ng-mapcn.vercel.app/docs/components/advanced) - **Map** (`ng-map`): The root container component that initializes MapLibre GL and provides context to child components. Automatically handles theme switching between light and dark modes. - **MapControls** (`ng-map-controls`): Renders map control buttons: zoom, compass, locate, and fullscreen. Must be used inside ng-map. - **MapMarker** (`ng-map-marker`): A container for marker-related components. Provides context for its children and handles marker positioning. - **MarkerContent** (`ng-marker-content`): Renders the visual content of a marker via content projection. If left empty, a default blue dot is rendered; it follows conditional content (shown while nothing is projected). Must be used inside ng-map-marker. - **MarkerLabel** (`ng-marker-label`): An always-visible text label above or below the marker. Must be used inside ng-marker-content. - **MarkerPopup** (`ng-marker-popup`): A popup attached to the marker that opens on click. Must be used inside ng-map-marker. Keyboard: the marker becomes a focusable role=button with aria-haspopup=dialog (unless you set them), Enter/Space opens it, focus moves into the popup, and Escape closes it, stops propagation and returns focus to the marker. Avoid your own