Icons
Launchpad uses Material Symbols Rounded as its icon font. The framework adds size helpers, inline alignment, and a pre-paint skeleton so icons never flash their fallback text. Icons inherit currentColor and the font supports three variable axes: FILL, wght, GRAD.
Basic Usage
Any element with class="material-symbols-rounded" renders a Material icon. The text inside is the icon name (from fonts.google.com/icons).
Size Helpers
Use .lp-icon-xs, .lp-icon-sm, .lp-icon-md, or .lp-icon-lg to size a standalone icon. Default (no helper) is the browser's inherited font-size.
Icons in Buttons — Auto-Sized (DO NOT add size helpers)
.lp-icon-xs etc. inside .lp-btn overrides the correct per-size value and makes icons visually wrong. Just put the bare .material-symbols-rounded span inside.
Icon-only buttons — same rule, no size helper needed:
Inline With Text — use .lp-icon-inline
For an icon sitting next to body text or a heading, use .lp-icon-inline. It sets size to 1.125rem and nudges the baseline so the icon doesn't sit too high.
Section heading with leading icon
A paragraph with an inline icon that tracks the line height.
Without .lp-icon-inline — icon sits too high:
A paragraph with bolt a misaligned icon.
With .lp-icon-inline — aligned:
A paragraph with a well-aligned icon.
Filled vs Outlined — .icon-filled
Material Symbols supports a FILL axis. Add .icon-filled for the filled form, omit for outline. Useful for selected/hover states.
Weight & Grade (advanced)
Tune stroke weight (wght) and optical thickness (GRAD) via font-variation-settings. Default is 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24.
Color — inherits currentColor
Icons render in the current text color. Apply any text-color utility or wrap in an element with a color set.
Icons in Badges, Pills, Chips, Labels
Small inline components already set their own font-size, so the icon sizes naturally. No helper class needed.
Icons in Alerts
Lead an alert with a status icon. Alerts style icons automatically — no helper needed.
Icons in Links & Breadcrumbs
Same rule as inline text — use .lp-icon-inline when the icon sits next to anchor text.
When to use which size helper
| Context | Size helper? | Why |
|---|---|---|
Inside .lp-btn (any size) | No | Button auto-sizes icons per lp-btn-{xs,sm,lg,xl}. |
Inside .lp-badge / .lp-pill / .lp-chip | No | The component's own font-size cascades to the icon. |
Inside .lp-alert | No | Alert styles the leading icon automatically. |
| Inline with paragraph / heading text | Use .lp-icon-inline | Sets 1.125rem + baseline nudge so the icon aligns with text. |
| Standalone icon (not in any component) | Yes — xs/sm/md/lg | No parent sets the size, so pick one explicitly. |
| One-off custom size | Inline style | style="font-size: 2rem" is fine for a demo/unique case. |