---
layout: default
title: Features
---
Leaflet Features
Leaflet doesn't try to do everything for everyone. Instead it focuses on making the basic things work perfectly. It should still satisfy the needs of the vast majority of map apps developers while being easily extended by third-party plugins.
Available Map Layers
- Tile layers
- Markers
- Popups
- Vector layers: polylines, polygons, circles, rectangles, circle markers
- Image overlays
- WMS layers
- Layer groups
- GeoJSON layers
Interaction Features
General
- Drag panning with inertia
On Desktop Browsers
- Scroll wheel zoom
- Double click zoom
- Zoom to area (shift-drag)
- Keyboard navigation (with arrows and
+/-
keys)
On Mobile Browsers (iOS, Android)
- Multi-touch zoom (iOS and Android 4+)
- Double tap zoom
For Layers
- Various events: click (tap), mouseover, contextmenu, etc.
- Marker dragging
Visual Features
- Zoom animation on modern browsers (except IE) (for all layers, including markers and vector layers)
- Panning animation
- Smooth continuous zoom on iOS
- Tile and popup fade animation
- Very nice default design for markers, popups and other map controls
Customization Features
- Pure CSS3 popups and controls for easy restyling
- Image- and HTML-based markers
- A simple interface for implementing custom map layers
- The same for custom map controls
- Custom map projections (with
EPSG:4326
, EPSG:3857
and EPSG:3395
out of the box)
- Powerful OOP facilities for extending existing classes
Performance Features
- Hardware acceleration on iOS (and other modern browsers) makes it feel as smooth as native apps
- Utilizing CSS3 features like Transitions, Transforms, requestAnimationFrame where possible to make panning and zooming really smooth
- Smart polyline/polygon rendering with dynamic clipping and simplification makes it responsive even when displaying objects with thousands of points
- Modular design and a build system allow you to reduce the library size by leaving out features you don't need
- Tap delay elimination on mobile devices makes controls and layers respond to taps immediately
Map Controls
- Zoom buttons
- Attribution
- Layer switcher
- Scale
Browser Support
On Desktop
- Chrome
- Firefox
- Safari 5+
- Opera 11.11+
- IE 7–9
- IE 6 (not perfect but accessible)
On Mobile
- Safari for iOS 3/4/5+
- Android browser 2.2+, 3.1+, 4+
- Chrome for Android 4+ and iOS
- Firefox for Android
- Other webkit-based browsers (webOS, Blackberry 7+, etc.)
- IE for Windows Phone 7
Misc
- Extremely lightweight — around 26 KB of gzipped JS code
- No external dependencies
- Keeps your JS environment clean — no global or native prototypes pollution
If you find some feature really missing in Leaflet, please vote for it on the Leaflet UserVoice page.