callstack / callstack/react-native-paper
Add support or recommendation for Material Symbols icons
- Dominant language
- TypeScript
- Stars
- 14.5k
- Forks
- 2.2k
- Avg merge
- 5d 23h
- Merged PRs (30d)
- 12
Description
**Is your feature request related to a problem? Please describe.**
Icons play a crucial role in truly polished experiences. The current support for MD icons is based on the legacy Material Icons collection (through [MaterialCommunityIcons](https://materialdesignicons.com/)). While this is great to start with, the legacy icons collection tends to fall short as soon one needs to tap into the additional level of customisation that the new [Material Symbols](https://fonts.google.com/icons) collection provide:
* style (i.e. sharp, rounded, outlined)
* weight
* grade
* optical size
**Describe the solution you'd like**
1. Ideally, it would be amazing if the default icons could be based on Material Symbols rather than the old Material Icons.
2. Alternatively, it would be great to extend the [icons doc](https://callstack.github.io/react-native-paper/docs/guides/icons/) to provide a recommendation for existing libraries or workarounds to leverage the new Material Symbols.
**Describe alternatives you've considered**
Searched for React Native libraries with Material Symbols support, very few results with poor maintenance level.
**Additional context**
From [fonts.google.com](https://fonts.google.com/download?family=Material+Symbols+Outlined|Material+Symbols+Rounded|Material+Symbols+Sharp) it is possibile to download the icons in the the three style (i.e. sharp, rounded, outlined), each of which will come with:
* one TTF file containing the variable font with size 12MB
* 56 TTF files containing the static fonts with various combinations of size (28, 36, 48), fill (0, 1), weight (thin, extra light, light, regular, medium, semi bold, bold). Each one of those has size between 1MB and 1.5MB
Using [createIconSet](https://docs.expo.dev/guides/icons/#createiconset) from Expo with one of the static files above (actually two since it is very likely that filled and not filled icons are both needed) and the corresponding [codepoints](https://github.com/google/material-design-icons/tree/master/variablefont), it is possible to make things work.
Contributor guide
Research direction
Start with the icons guide linked in the issue and review the existing MaterialCommunityIcons integration. Compare the two proposed scopes—documenting an Expo createIconSet workaround or replacing the default icon collection—and confirm which direction maintainers want. Done should mean either a clear Material Symbols recommendation in the guide or a complete, tested default-icon integration.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- react-native, typescript
- Domain
- mobile
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100