Leaflet.js

Eridanus21 pts0 comments

Leaflet - a JavaScript library for interactive maps

August 16, 2025 — Leaflet 2.0.0-alpha.1 has been released!

Leaflet is the leading open-source JavaScript library for mobile-friendly interactive maps.<br>Weighing just about 42 KB of JS,<br>it has all the mapping features most developers ever need.

Leaflet is designed with simplicity, performance and usability in mind.<br>It works efficiently across all major desktop and mobile platforms,<br>can be extended with lots of plugins,<br>has a beautiful, easy to use and well-documented API<br>and a simple, readable source code that is a joy to<br>contribute to.

Here we create a map in the 'map' div, add tiles of our choice, and then add a marker with some text in a popup:

var map = L.map('map').setView([51.505, -0.09], 13);

L.tileLayer('https://tile.openstreetmap.org/{z}/{x}/{y}.png', {<br>attribution: '&copy; OpenStreetMap contributors'<br>}).addTo(map);

L.marker([51.5, -0.09]).addTo(map)<br>.bindPopup('A pretty CSS popup. Easily customizable.')<br>.openPopup();

Learn more with the quick start guide, check out other tutorials,<br>or head straight to the API documentation.<br>If you have any questions, take a look at the FAQ first.

Trusted by the best

GitHub<br>foursquare<br>Pinterest<br>Facebook<br>Evernote<br>Etsy<br>Flickr<br>500px<br>Data.gov<br>European Commission<br>The Washington Post<br>Financial Times<br>NPR<br>USA Today<br>National Park Service<br>IGN.com<br>OpenStreetMap

Features

Leaflet doesn't try to do everything for everyone. Instead it focuses on making the basic things work perfectly.

Layers Out of the Box

Tile layers, WMS

Markers, Popups

Vector layers: polylines, polygons, circles, rectangles

Image overlays

GeoJSON

Interaction Features

Drag panning with inertia

Scroll wheel zoom

Pinch-zoom on mobile

Double click zoom

Zoom to area (shift-drag)

Keyboard navigation

Events: click, mouseover, etc.

Marker dragging

Visual Features

Zoom and pan animation

Tile and popup fade animation

Very nice default design for markers, popups and map controls

Retina resolution support

Customization Features

Pure CSS popups and controls for easy restyling

Image- and HTML-based markers

A simple interface for custom map layers and controls

Custom map projections (with EPSG:3857/4326/3395 out of the box)

Powerful OOP facilities for extending existing classes

Performance Features

Hardware acceleration on mobile makes it feel as smooth as native apps

Utilizing CSS features to make panning and zooming really smooth

Smart polyline/polygon rendering with dynamic clipping and simplification makes it very fast

Modular build system for leaving out features you don't need

Tap delay elimination on mobile

Map Controls

Zoom buttons

Attribution

Layer switcher

Scale

Browser Support

Desktop

Chrome

Firefox

Safari 5+

Opera 12+

IE 9–11

Edge

Mobile

Safari for iOS 7+

Chrome for mobile

Firefox for mobile

IE10+ for Win8 devices

Misc

Extremely lightweight

No external dependencies

If you find some feature really missing in Leaflet, first check if there's a plugin for it<br>and if it's been discussed before already on GitHub issues.<br>If not, please open a new GitHub issue.

Getting Involved

Let's create the best mapping library in the world!<br>Leaflet was originally created by Volodymyr Agafonkin,<br>but is now developed by a big community of contributors.<br>Pull requests are always welcome.<br>However, there are many more ways to get involved with the development of Leaflet.

You can help the project tremendously by discovering and reporting bugs, improving documentation,<br>helping others on Stack Overflow, GIS Stack Exchange<br>and GitHub issues,<br>X to @LeafletJS<br>and spreading the word about Leaflet among your colleagues and friends.

Check out the contribution guide for more information on getting involved with Leaflet development.

leaflet mobile features zoom github layers

Related Articles