diff --git a/README.md b/README.md
index d14fece..70d62ae 100644
--- a/README.md
+++ b/README.md
@@ -147,63 +147,248 @@ el.scrollWheelZoom = false; // disable at runtime
All `leaflet-map` properties are two-way: reading returns the live map value; writing updates both the attribute and the map.
+### CSS
+
+Leaflet's stylesheet is loaded from a CDN via a `` in the shadow DOM. Marker icon paths are derived from the CSS URL automatically.
+
+| Attribute | Default | Description |
+|---|---|---|
+| `css-url` | `https://unpkg.com/leaflet@1.9.4/dist/leaflet.css` | URL for Leaflet CSS |
+| `css-integrity` | `sha256-...` | SRI hash (required with default URL; when `css-url` is custom, no default integrity is used unless explicitly set) |
+| `css-crossorigin` | _(auto)_ | `"anonymous"` when integrity is active, otherwise absent. Set explicitly to override. |
+
+### Resize
+
+A `ResizeObserver` on the host element automatically calls `map.invalidateSize()` whenever the element's dimensions change — from CSS classes, inline styles, attribute changes, or parent layout.
+
---
-## Other components
+## Components
-### Tile layers
+### ``
-| Element | Key attributes |
-|---|---|
-| `leaflet-tile-layer` | `url`, `attribution`, `min-zoom`, `max-zoom`, `opacity`, `z-index` |
-| `leaflet-tile-layer-wms` | `url`, `layers`, `styles`, `format`, `transparent`, `version` |
+| Attribute | Default | Description |
+|---|---|---|
+| `url` | `''` | Tile URL template (`https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png`) |
+| `attribution` | `''` | Attribution text |
+| `min-zoom` | `0` | Minimum zoom level |
+| `max-zoom` | `18` | Maximum zoom level |
+| `opacity` | `1.0` | Tile layer opacity |
+| `z-index` | `0` | Z-index |
-### Vector layers
+### ``
-Path style attributes (`color`, `weight`, `opacity`, `fill`, `fill-color`, `fill-opacity`, `dash-array`, `line-cap`, `line-join`) are shared by all vector layers.
+| Attribute | Default | Description |
+|---|---|---|
+| `url` | `''` | WMS service URL |
+| `layers` | `''` | Comma-separated layer names |
+| `styles` | `''` | Comma-separated style names |
+| `format` | `'image/jpeg'` | Image format |
+| `transparent` | — | Request transparent tiles |
+| `version` | `'1.1.1'` | WMS version |
+| `uppercase` | — | Use uppercase WMS parameter names |
+
+### ``
-| Element | Additional attributes | Notes |
+| Attribute | Default | Description |
|---|---|---|
-| `leaflet-circle` | `lat`, `lng`, `radius` (meters) | |
-| `leaflet-circle-marker` | `lat`, `lng`, `radius` (pixels) | |
-| `leaflet-polyline` | — | Vertices via `` children |
-| `leaflet-polygon` | — | Vertices via `` children |
-| `leaflet-rectangle` | `bounds` (JSON) | |
-| `leaflet-line` | `lat`, `lng` | Vertex only — not rendered directly |
+| `lat` | `0` | Latitude |
+| `lng` | `0` | Longitude |
+| `title` | `''` | Tooltip text on hover |
+| `alt` | `''` | Alt text for the marker image |
+| `draggable` | — | Allow dragging the marker |
+| `opacity` | `1.0` | Marker opacity |
+| `z-index-offset` | `0` | Z-index offset |
-### Markers & overlays
+### ``
-| Element | Key attributes |
-|---|---|
-| `leaflet-marker` | `lat`, `lng`, `title`, `alt`, `draggable`, `opacity`, `z-index-offset` |
-| `leaflet-image-overlay` | `url`, `bounds` (JSON), `opacity`, `alt`, `interactive` |
-| `leaflet-video-overlay` | `url`, `bounds` (JSON), `opacity`, `loop`, `autoplay`, `muted` |
-| `leaflet-svg-overlay` | `bounds` (JSON), `opacity`, `interactive` — wrap an `