React Native 向け出力の違い
react-native-svg は SVG の各要素に対応する大文字始まりのコンポーネントを提供しています。<path> は <Path>、<g> は <G>、<linearGradient> は <LinearGradient> になります。ツールはサポートされているすべての要素を対応付け、実際に使うコンポーネントだけを 1 行でインポートし、props を SvgProps 型にします。
<title>、<desc>、<style>、<metadata> などネイティブに対応するものがない要素は、実行時にクラッシュしないよう注意メッセージとともに削除されます。React Native には CSS クラスがないため、class 属性も削除されます。
react-native-svg のセットアップ
生成したコンポーネントを使う手順:
- ライブラリをインストールします:Expo なら npx expo install react-native-svg、素の React Native なら npm install react-native-svg。
- 変換したコードをプロジェクト内の .tsx または .jsx ファイルとして保存します。
- 通常のコンポーネントと同じように描画し、width、height、color などを渡します。
- currentColor を有効にして color プロパティを渡すと、親からアイコンの色を変えられます。
モバイル向けアイコンのヒント
アイコンはシンプルに保ちましょう。フィルターやマスクはローエンドの Android 端末では描画コストが高くなります。座標を小数点以下 1〜2 桁に丸めれば JavaScript バンドルを小さくでき、ごく小さなアイコンでは線よりも塗りを優先すると、高解像度でない画面でもにじみにくくなります。