nyanchu
にゃんちゅう
ABOUT
特定保健指導
フリーランス
料理・栄養
妊娠・子育て
コスメ
雑記
ブログ運営

FigmaでSVGを書き出してreact/typescriptでサクっと扱うSVGR

2021-02-142740

SVGを使いたい時は、SVGRを使ってます。reactでSVG使うなら個人的には一番ラクな方法です。

手順1. FigmaでSVG書き出し

今回はFigma Communityから、material designのiconを使ってみます。

FigmaをDupliicateします https://www.figma.com/community/file/878585965681562011

使いたいアイコンをSVG形式で書き出します。画面右下のExportから。 image

手順2. SVGR Play Ground

扱うSVGが多ければSVGRを通して変換しても良いのですが、そんなに無いので、PlayGroundを都度利用します。 https://react-svgr.com/playground/ https://github.com/gregberge/svgr

PlayGroundなら、SVGファイルを貼り付けると、良い感じにreactコンポーネントとして吐き出してくれる。 typescriptなど必要なフラグをチェックしてコピー。

手順3. react

このままペーストすればOK。

実例+α

SVGをたまーに、すこしだけ追加するので、僕は svgr.tsx にまとめてます。また、スタイルを調整できるように、少しだけ変更を加えるのがオススメ

  • 流用できるようにinterfaceへとコピペ。
  • svgのfill(色のこと)をcurrrentにしておく
// svgr.tsx
interface iconProps {
props?: React.SVGProps<SVGSVGElement>
svgRef?: React.Ref<SVGSVGElement>
}
export const IconA: React.FC<iconProps> = ({ props, svgRef }) => {
return (
<svg
width="1em"
height="1em"
viewBox="0 0 48 48"
fill="none"
xmlns="http://www.w3.org/2000/svg"
ref={svgRef}
{...props}>
<path d="..." fill="current" />
</svg>
)
}
export const IconB: React.FC<iconProps> = ({ props, svgRef }) => {
return (
<svg
width="1em"
height="1em"
viewBox="0 0 48 48"
fill="none"
xmlns="http://www.w3.org/2000/svg"
ref={svgRef}
{...props}>
<path d="..." fill="current" />
</svg>
)
}

呼び出す時にはpropsに入れて渡せばOK

import { IconA } from './svgr
export const ComponentA: React.FC<ComponentAProps> = () => {
return <IconA props={{ height: 38, width: 38, color: 'red' }} />
}

↓参考書籍はこちら↓

この記事をシェアする

」のおすすめ記事も
読んでいってね!

もっと簡単にできないか『エフォートレス思考』まとめ

2022-02-13おまめ

【アカウント作成から解説】Figmaにコメント欲しいとデザイナーに言われたら

2021-09-18おまめ

TOKYO2020オリンピック聖火台にこめられた想い

2021-07-24おまめ

Next/exportで編集可能なHTMLは作れないけど、FTPでも納品できる

2021-07-24おまめ

アマプラおすすめ映画『蜜蜂と遠雷』あなたは美しき世界に気付けるか

2021-07-12おまめ

サムネやWEBデザインに使える!メッシュグラデーションまとめ

2021-07-10おまめ

記事書く自分になるには?セルフイメージでコンフォートゾーンに「戻る力」を使う

2021-06-21おまめ

人の弱さと強さに気づける存在でありたい時、きっと思い出す心のこと

2021-04-03おまめ

【ネタバレ】シン・エヴァンゲリオンお疲れ様でした。補完された僕ら。

2021-03-21おまめ

FigmaでSVGを書き出してreact/typescriptでサクっと扱うSVGR

2021-02-14おまめ

生きづらい世の中を生きぬくために。HSP・ADHD・占いで自分を知り人生を取り戻していく。

2020-12-31おまめ

Vercel + Contentful「Resource is limited」でデプロイできなくなった

2020-12-30おまめ

TENETは逆行ではなくメッセージを見よ【ネタバレ注意】

2020-12-27おまめ

年内にもう一度読みたい!PM向けオススメ記事7選+α

2020-12-27おまめ

コロナで増えたオンラインライブをテレビに映す2方法

2020-11-19おまめ

初心者がReact/Next.js + Vercelでブログ作るまで[1]

2020-11-14おまめ

仏教語みたいな座右の銘が好き

2020-07-11おまめ
おまめ
おまめ
夫。個人開発者・ブロガー・デザイナー。夫婦でサイドFIRE目指してます。
私の楽天ルームはこちらから
Youtubeチャンネル始めました!