SF Symbols brought to you by Expo's Module API
npm install sweet-sfsymbols
SF Symbols are a set of over 5,000 consistent, highly configurable symbols you can use in your app. SF Symbols are designed to integrate seamlessly with the San Francisco system font, so the symbols automatically ensure optical vertical alignment with text for all weights and sizes.
- :fire: Built with Expo's Module API
- :art: Rendering modes
- :art: Variable color values
- :no_bell: Symbol Variants
- :tada: Symbol Effects
- :apple: iOS only (see why)
Sweet SFSymbols requires Expo SDK 46+ and Xcode 15+.
Install the library:
``console`
npx expo install sweet-sfsymbols
Then rebuild your app:
`bashUsing EAS? run a build in the cloud!
eas build --platform ios
> _NOTE:_ This library will not work with Expo Go. Use a development build instead!
Usage
See the example app.
The
SFSymbol component uses SwiftUI's Image view to render SF Symbols.$3
####
nameThe name of the symbol.
SystemName
>
> default: ""####
colorsThe colors of the symbol. For monochrome and hierarchical rendering modes, this is a single color. For palette rendering mode, this is an array of colors. For multicolor rendering mode, this is ignored and system default values are used. This supports hex, hsl(a), rgb(a), web standard color names, PlatformColor and DynamicColorIOS values.
> required: no
>
> type:
(string | OpaqueColorValue)[]
>
> default: []####
weightThe weight of the symbol.
> required: no
>
> type:
"thin" | "ultraLight" | "light" | "regular" | "medium" | "semibold" | "bold" | "heavy" | "black"
>
> default: "regular"####
scaleThe scale of the symbol.
> required: no
>
> type:
"small" | "medium" | "large"
>
> default: "medium"####
renderingMode (iOS 15+)The rendering mode of the symbol. Learn more about rendering modes here.
> required: no
>
> type:
"monochrome" | "hierarchical" | "palette" | "multicolor"
>
> default: "monochrome"####
sizeThe size of the symbol. This deifines the frame of the image view.
> required: no
>
> type:
number
>
> default: 50####
variableValue (iOS 16+)The variable value of the symbol. Only some symbols support variable values, ususally those that represent a change in value (like
speaker.wave.3) The variable value determines what percentage of the symbol is filled in. Learn more about variable values here.> required: no
>
> type:
number
>
> default: 1.0####
variant (iOS 15+)The variant of the symbol. This is an alternate way to modify the symbol's appearance without modifying the symbol name. Learn more about symbol variants here.
> required: no
>
> type: SymbolVariant
>
> default:
none####
symbolEffect (iOS 17+)The symbol effect of the symbol. Adds an animation to the symbol. Learn more about symbol effects here.
SymbolEffect
>
> default: undefined####
styleThe style of the symbol.
> required: no
>
> type:
ViewStyle
>
> default: undefined`It's your responsibility to check Apple's rules about when and where certain icons can be used. You can check the Human Interface Guidelines and use the official SF Symbols app to check for any restrictions on the icons you want to use.
This library isn't associated with Apple, and only exposes a way to use them within React Native apps on iOS.
If you notice that the symbol names are not up to date, either submit an issue or a PR with the updated symbol names!