Icon Sizes: Standard px for Web, iOS and Android UI (2026)
Standard icon sizes for websites and apps: 16, 20, 24 and 32px UI icons, touch targets from Apple, Android and WCAG 2.2, MUI sizes and app icon dimensions.
On this page
The standard UI icon size is 24px (24dp on Android, 24pt on iOS), with 16px and 20px for dense UI and 32px or more for display use. The tap area around an icon is a separate number: at least 44x44pt on iOS, 48x48dp on Android and 24x24 CSS px for WCAG 2.2 Level AA. App store icons are 1024x1024px for Apple and 512x512px for Google Play. Every platform number below links to its source.
Quick answer
- UI icons: 24px default. 20px next to small text, 16px in tables and inline badges, 32 to 48px for empty states and features.
- Touch targets: iOS 44x44pt default (28x28pt minimum), Android 48x48dp, WCAG 2.2 AA 24x24 CSS px, WCAG AAA 44x44 CSS px.
- The icon is not the target. A 24px icon inside a 44px or 48px button meets every rule above.
- MUI SvgIcon: small 20px, medium 24px (default), large 35px.
- App icons: Apple 1024x1024px. Google Play 512x512px PNG. Android adaptive icon layers 108x108dp.
Platform numbers at a glance
| What | Size | Source |
|---|---|---|
| iOS and iPadOS control, default | 44x44 pt | Apple HIG, Accessibility |
| iOS and iPadOS control, minimum | 28x28 pt | Apple HIG, Accessibility |
| macOS control, default / minimum | 28x28 pt / 20x20 pt | Apple HIG, Accessibility |
| Android touch target | at least 48x48 dp | Android Developers, accessibility |
| Material Symbols optical size | 20 to 48 dp, default 24 | Material Symbols guide |
| Web target, WCAG 2.2 Level AA | at least 24x24 CSS px, or enough spacing | WCAG 2.2 SC 2.5.8 |
| Web target, WCAG Level AAA | at least 44x44 CSS px | WCAG 2.2 SC 2.5.5 |
| Apple app icon (iOS, iPadOS, macOS) | 1024x1024 px | Apple HIG, App icons |
| Google Play store icon | 512x512 px, 32-bit PNG, up to 1024 KB | Google Play icon specs |
| Android adaptive icon layers | 108x108 dp | Android adaptive icons |
Points (pt), density-independent pixels (dp) and CSS pixels are all device-independent units. On a standard screen, 24pt, 24dp and 24 CSS px are the same visual size.
UI icon sizes for websites
There is no W3C or browser standard for icon size on the web. In practice the web follows the same 24 grid as Material and the major icon sets: Lucide and Tabler draw on a 24x24 grid and render at 24px by default, and Material Symbols default to an optical size of 24. Our recommended scale, based on that grid:
| Size | Tailwind | Use it for |
|---|---|---|
| 16px | size-4 | Table rows, inline badges, icons beside 12 to 14px text |
| 20px | size-5 | Buttons and nav items with 14 to 16px labels, form fields |
| 24px | size-6 | Default UI icon, icon-only buttons, mobile nav |
| 32px | size-8 | Feature lists, empty states, cards |
| 48px and up | size-12 | Hero and illustration use |
Rules that keep a UI consistent:
- Use four sizes, not ten. Pick from the scale above and stick to it.
- Match the icon to the text next to it. A 20px icon sits well beside 14 to 16px text; 24px starts to dominate it.
- Keep one stroke weight. Lucide and Tabler default to a 2px stroke at 24px; Heroicons outline uses 1.5px. Mixing sets with different strokes looks uneven at the same size.
- Use the small-size versions when a set has them. Heroicons ships separate 20px and 16px solid icons drawn for those sizes, which read better than a 24px icon scaled down.
Define the scale once:
:root {
--icon-sm: 16px;
--icon-md: 20px;
--icon-base: 24px;
--icon-lg: 32px;
}
.icon { width: var(--icon-base); height: var(--icon-base); flex-shrink: 0; }To set an icon's color the same way, see change SVG icon color with CSS.
Touch targets and icon buttons
The tap or click area matters more than the drawn icon. All three sources measure the target, not the glyph:
- Apple: 44x44pt default control size on iOS, iPadOS and watchOS, 28x28pt minimum. The HIG also suggests about 12pt of padding around elements with a bezel and about 24pt around elements without one.
- Android: at least 48x48dp per interactive element. In Jetpack Compose,
Button,IconButtonandListItemalready enforce this. - WCAG 2.2 SC 2.5.8 (Level AA): at least 24x24 CSS px. A smaller target passes if a 24px circle centered on it does not touch another target or another small target's circle. Links inside sentences are exempt.
- WCAG SC 2.5.5 (Level AAA): at least 44x44 CSS px.
So a 24px icon in a 44px button passes iOS, WCAG AA and WCAG AAA. For Android, make it 48px.
<button type="button" aria-label="Delete" class="icon-button">
<svg width="24" height="24" viewBox="0 0 24 24" aria-hidden="true">...</svg>
</button>
<style>
.icon-button {
display: inline-flex;
align-items: center;
justify-content: center;
min-width: 44px;
min-height: 44px;
}
</style>An icon-only button needs an accessible name (aria-label on the button) and the icon itself hidden from screen readers. Full checklist: accessible SVG icons. For icons inside text buttons and CTAs, see SVG icons for buttons.
Mobile tab bar and navigation icons
- iOS: Apple's tab bar guidance recommends SF Symbols, which adapt automatically between regular and compact tab bars, so there is no single pixel size to hard-code. Keep each tab's target at 44x44pt or more and include a text label.
- Android and Material: 24dp icons (the Material Symbols default) in targets of at least 48x48dp.
- Mobile web: a 24px icon with a label, in a tab item at least 44px tall, meets both the Apple and the WCAG numbers. Use 48px to also meet Android's.
Icon sizes in UI frameworks
Defaults, read from each package's source or README:
| Library | Default | Other sizes |
|---|---|---|
MUI SvgIcon / @mui/icons-material | fontSize="medium": 24px | small: 20px, large: 35px, inherit: parent font size |
| Lucide | 24px | size prop |
| Tabler | 24px | size prop |
| Heroicons | set with CSS | separate 24px outline and solid, 20px solid, 16px solid icons |
| Phosphor (React) | 1em | size prop |
| react-icons | 1em | size prop or IconContext |
MUI's numbers come from the SvgIcon source in @mui/material 9.5, which converts 20, 24 and 35px to rem. A 1em default means the icon follows the font size of its parent.
App icon dimensions
| Platform | Size | Notes |
|---|---|---|
| iOS, iPadOS, macOS | 1024x1024 px | One layered master; the system makes the smaller sizes |
| watchOS | 1088x1088 px | Circular |
| tvOS | 800x480 px | Layered, for the parallax effect |
| Google Play listing | 512x512 px | 32-bit PNG, sRGB, max 1024 KB, full square (Play applies the mask) |
| Android adaptive icon | 108x108 dp layers | Logo at least 48x48 dp and inside the inner 66x66 dp, which stays visible under every mask |
For web apps, the manifest needs 192x192 and 512x512 icons: see PWA icons and the web manifest. For browser tabs, see the favicon sizes guide, or make every size from one logo with the favicon generator.
FAQ
What is the standard icon size?
What icon size should I use on a website?
What is the minimum icon size for accessibility?
What size is an MUI icon?
What is the standard icon size for a mobile app button?
What size should an app icon be?
Related posts