callstack / callstack/react-native-paper

Add support or recommendation for Material Symbols icons

Open
#4,475 0 comments 0 reactions 0 assignees View on GitHub
feature request
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.