# Sizing & stroke > Size, StrokeWidth, and AbsoluteStroke — all the ways to control icon dimensions. Source: https://shellicons.shellui.dev/docs/guides/sizing-and-stroke ## `Size` `Size` is a `string` — anything valid for an SVG `width`/`height` attribute. Default is `"24"`. ```razor ``` CSS units work too: ```razor Text with a matched icon. ``` ## `StrokeWidth` Any `double`. Lucide's default is `2`. ```razor ``` ## `AbsoluteStroke` By default, stroke scales with size — a 48px icon has a visually thicker stroke than a 16px one at the same `StrokeWidth="2"`. Sometimes that's not what you want; you want the *rendered* stroke width to look constant across sizes. `AbsoluteStroke="true"` divides the stroke by size to compensate: **Default (stroke scales):** ```razor ``` **Absolute (stroke is visually constant):** ```razor ``` The math: emitted `stroke-width = StrokeWidth × 24 / Size`. When `Size` isn't a plain number (`"1.5em"`, `"100%"`), `AbsoluteStroke` silently falls back to `StrokeWidth` as-is — there's no scale to compensate for. ## Sizing via CSS Because everything ultimately becomes an SVG element, you can size icons via CSS too: ```razor ``` Set `Size="100%"` and let the parent constrain the box.