On this page
Filled icons and outlined icons are different ways of distributing visual mass. A filled bell often makes a stronger silhouette; an outlined bell can feel lighter beside text. Neither treatment automatically communicates better. The useful question is which style preserves meaning, hierarchy, and state within the particular interface you are designing.
Compare styles in context, not isolation
Start with one realistic screen containing navigation, actions, and status information. Make two versions using paired variants from the same family. Keep size, labels, color, and placement identical. Otherwise you may mistake a larger canvas or stronger color for a benefit of the drawing style itself.
Use the contrast checker to compare the icon color against its adjacent background. Enter the actual foreground and surface values, including selected-state surfaces. The result checks color contrast, not whether a symbol is understandable or whether its thin details survive rendering.
Evaluate visual mass at the size users will see. An outlined icon can occupy a large canvas while producing very little visible material. A filled icon can remain clear at a smaller size, but tightly packed internal cutouts may close up. Export both and inspect them at normal zoom rather than relying on enlarged design-tool previews.
Choose a default style for each recurring role. For example, a product might use outlined action icons and filled status badges. This is more coherent than choosing whichever variant looks nicest for each individual symbol. Document the reason for any role-based distinction.
Use silhouettes when they improve recognition
Filled treatments work well when the outer silhouette carries the meaning: hearts, stars, flags, and simple media controls are common candidates. They can also provide a stronger anchor in compact navigation. The advantage comes from recognizable shape, not from fill as an abstract property.
Outlined treatments can be useful when interior structure distinguishes the object. A tray, panel, or document with meaningful internal divisions may need careful negative space. However, outlines are not inherently more descriptive: several nested strokes at 16 pixels may turn into a confusing knot.
Test recognition at size with the actual candidates. Show a small group of colleagues labeled controls, then ask which symbol they would expect for specific tasks. Follow up on ambiguity rather than collecting votes for a favorite aesthetic. Where labels will be absent, test the unlabelled controls separately and expect a higher risk of misunderstanding.
A useful comparison set includes search, settings, notifications, favorite, archive, and a domain-specific object. Search may behave similarly in both styles, while archive can expose important differences. The Material Symbols documentation demonstrates a family where fill is an explicit axis, helping distinguish a controlled variant from an unrelated replacement drawing.
Reserve style changes for clearly defined states
Switching from outline to fill can reinforce selection, especially for a favorite or saved item. It should not be your only signal. Pair it with a label, selected background, indicator, or other appropriate cue so users do not have to inspect subtle changes in the artwork.
Keep state meaning consistent. If fill means selected in a navigation rail, avoid using a filled icon to mean disabled in the same rail. Likewise, a filled warning triangle should not imply that warnings are selected. Distinguish a symbol's normal construction from a component's interactive state.
For a toggle button, preserve its accessible name and expose the pressed state. This example assumes a renderer supplies two decorative SVG variants:
function FavoriteButton({ saved, onToggle }) {
return (
<button
type="button"
aria-label="Favorite"
aria-pressed={saved}
onClick={onToggle}
>
{saved ? (
<FilledStar aria-hidden="true" />
) : (
<OutlineStar aria-hidden="true" />
)}
</button>
);
}The components shown are application-defined, not built-in browser elements. Use your chosen library's paired assets, and ensure both variants share a stable slot so switching state does not move neighboring content.
Consult the WAI button pattern for toggle semantics. For navigation, use the appropriate current-page indication instead of copying toggle behavior. Visual similarity between selected controls does not make their interaction semantics identical.
Balance density, weight and contrast
Filled artwork often attracts attention because it covers more area, but surrounding typography changes the result. A dense sidebar with bold labels and heavy filled symbols can become visually loud. A sparse toolbar with thin outlines can become too faint. Judge the combined rhythm of text and icons rather than either element alone.
Do not compensate for weak outlines only by making their color darker. First check whether the family offers a suitable weight or a smaller-size variant. Increasing stroke width arbitrarily can close gaps, distort corners, or make related symbols look inconsistent. Prefer designed weights over ad hoc path editing.
Review dark surfaces separately. Bright filled shapes may feel heavier against a dark background even when their geometry is unchanged. The existing dark-mode design guide provides useful context, but keep the decision grounded in your screen rather than a universal light-versus-dark rule.
For functional graphical objects, the WCAG non-text contrast explanation describes the relevant requirements and exceptions. Avoid reducing the decision to a single numerical score: contrast supports visibility, while shape, spacing, labels, and familiarity support recognition.
Write a small policy and audit exceptions
Create a style policy that names defaults for navigation, actions, status, and illustration-like decoration. Add one example for each category and show how selected, disabled, and destructive states are represented. A compact policy is easier to follow than an uncurated page of hundreds of symbols.
Review mixed styles intentionally. A solid warning icon among outlined actions can be appropriate because it serves a different role. A random solid download icon among otherwise outlined toolbar actions usually needs a stronger explanation. Consistency means predictable decisions, not an absolute ban on variation.
Keep an exception log for symbols that fail at small sizes or lack a paired variant. Record the chosen replacement and its reason. If exceptions multiply, reconsider the family instead of continuing to patch individual drawings. Browse the broader icon and illustration category for adjacent production concerns, while keeping this policy focused on style and meaning.
Finally, audit real screens after implementation. Designers may approve paired variants that developers accidentally mix with older assets. A screenshot review at ordinary display scale catches weight mismatches, disappearing cutouts, and inconsistent selection behavior that an asset list will miss.
Key takeaways
- Choose styles through realistic screen comparisons, not isolated preferences.
- Use fill changes to reinforce state, never as the only state cue.
- Preserve readable silhouettes, stable slots, and appropriate control semantics.
- Document role-based defaults and review exceptions before they become a second system.
Reach designers & developers at work
Put your product next to the tools people use every day. One sponsor per placement, no tracking pixels.
Become a sponsor