Apple's Human Interface Guidelines say each of the nine SF Symbols weights, ultralight to black, corresponds to a weight of the San Francisco system font, so symbols weight-match adjacent text. Each symbol also comes in three scales (small, medium as default, large) defined relative to the font's cap height, so emphasis changes without breaking the weight match. Color goes through four rendering modes: monochrome, hierarchical (one color at stepped opacities per layer), palette (one color per layer) and multicolor; the HIG suggests multiple opacities of the app's accent color to give symbols depth. Variable color fills layers at thresholds from zero to 100 percent to show capacity or strength, and the guidelines bar using the symbols in app icons, logos or other trademarked use.
When the glyph's line weight equals the label's stroke weight, the icon reads as part of the sentence rather than clip art. Scaling against cap height keeps weight steady while emphasis changes.
Product UI, settings and feature lists, app marketing, any piece where icons sit inline with labels and must feel native to the type
Steal it for your brand
The same system, written in your colors, type and shapes. Nothing of Apple's look comes with it.
typography.body.weight gets a stroke of typography.body.weight / 250 px on a 24 px canvas; a display-face label uses typography.display.weight / 250.palette.accent and the supporting parts in the same role at 60 and 35 percent opacity; use palette.ink when the icon is purely monochrome.palette.accent at even thresholds and leave the rest at palette.border.{
"recipe": {
"stroke_weight": "{typography.body.weight}",
"stroke_px_at_24": "{typography.body.weight} / 250",
"scale_to_cap_height": {
"by": "style.density",
"map": {
"dense": 0.9,
"balanced": 1,
"airy": 1.15
},
"default": 1
},
"primary_layer": "{palette.accent}",
"secondary_layer_opacity": 0.6,
"tertiary_layer_opacity": 0.35,
"monochrome_fill": "{palette.ink}",
"state_variant": "fill",
"linecap": "round",
"linejoin": "round"
},
"fallbacks": {
"palette.accent": "{palette.ink}",
"palette.border": "{palette.ink_muted}",
"palette.ink_muted": "{palette.ink}"
},
"steps": [
"Pick one open outline set with a variable or adjustable stroke and draw every icon from it, never the source brand's glyphs.",
"Set the icon stroke from the label it sits beside: a label in the body face at {typography.body.weight} gets a stroke of {typography.body.weight} / 250 px on a 24 px canvas; a display-face label uses {typography.display.weight} / 250.",
"Size the icon from the label's cap height, not its em box: a little smaller in dense layouts and larger in airy ones, without changing stroke weight.",
"For layered icons, draw the main shape in {palette.accent} and the supporting parts in the same role at 60 and 35 percent opacity; use {palette.ink} when the icon is purely monochrome.",
"Show an on or selected state by switching to the filled variant of the same icon, and an off state with a slash variant, rather than recoloring.",
"For a level such as signal or volume, light successive layers in {palette.accent} at even thresholds and leave the rest at {palette.border}."
]
}The lesson
Pick icon weights to match the text beside them, so the icon is read as a word in the line.
Apple's SF Symbols page leads with "SF Symbols provides thousands of consistent, highly configurable symbols" that align with the San Francisco system font "in all weights and sizes." A large yellow tile shows a heart, a star and an S-shaped glyph over a construction grid, and the page's right rail lists "Weights and scales".
Don't copy the yellow tile or Apple's glyph set. Keep the rule: match stroke weight to the label and scale from cap height so emphasis changes without breaking the match.