質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

Q&A

解決済

3回答

6278閲覧

react-iconsの色を変えたい

k49977

総合スコア27

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

0グッド

0クリップ

投稿2021/06/18 10:08

編集2021/06/18 10:27

前提・実現したいこと

現在Reactの勉強をしています。

react-iconsを使ってアイコンを表示しているのですが、色の変え方がわかりません。
https://react-icons.github.io/react-icons/

黒色なのを例えば赤に変えるにはどうしたらいいでしょうか?

試したこと

以下のようにしてみましたが色が変化しませんでした。

react

1import { IconContext } from "react-icons"; 2 3<IconContext.Provider value={{ color: "blue", className: "global-class-name" }}> 4 <div> 5 <GrDownload /> 6 </div> 7</IconContext.Provider> 8

参考:https://github.com/react-icons/react-icons#configuration

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

回答締め切っちゃってますが、せっかくなので投稿しますm(__)m

SVGの作りによってはcolorを渡しても色が変わらないようでした。

色が変えられるアイコンの作り

色が変えられるSVGは以下のようになっています。
fillはHTMLでいうとbackgroundみたいなものです。

svg

1<svg> 2 <path fill="#000" /> 3</svg>

色が変えられないアイコンの作り

質問者さんが使用している色が変えられないSVGは以下のようになっていました。
strokeはHTMLでいうとborderみたいなものです。

svg

1<svg> 2 <path stroke="#000" /> 3</svg>

対処方法

CSSのセレクタを使って、strokeの変更をおこなえば、変更することは可能でした。
※SVGで使われている要素は必ずしもpathでは無い可能性があるため、SVG要素を調べる必要はあります。

javascript

1import { GrDownload } from "react-icons/gr"; 2import './icon.css'; 3 4function App() { 5 return ( 6 <div className="App"> 7 <GrDownload className="ico-GrDownload" /> 8 </div> 9 ); 10}

css

1/* icon.css */ 2.ico-GrDownload path { 3 stroke: #f00; /* 赤に変更 */ 4}

投稿2021/06/18 11:09

編集2021/06/18 11:17
runnynose

総合スコア497

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

k49977

2021/06/18 17:16

回答頂きありがとうございます。 strokeを変えるのですよね! CSSファイルでする方法ありがとうございます。 ちなみにjs内でインラインでcssを適用することはできますでしょうか? pathのstrokeに対してインラインでやる方法が思いつきませんでした
runnynose

2021/06/18 19:06

react初心者なんですか、私の知る限りではセレクタの指定みたいなのはできないと思います。
k49977

2021/06/18 22:46

ありがとうございます。CSSファイルを用意する方向で考えたいと思います!
guest

0

以下の実装のように
https://codesandbox.io/s/angry-tree-j6zxr?file=/src/App.js
イメージ説明

やはりGrDownloadは色が変化しませんでした。色を変更できないものもあるのかもしれません

▼Sample.js

react

1import React, { Component } from 'react'; 2import { FaApple, FaAndroid } from 'react-icons/fa'; 3import { IoIosCloudCircle, IoIosHeartEmpty } from "react-icons/io"; 4import { MdDone } from "react-icons/md"; 5import { TiChartLineOutline } from "react-icons/ti"; 6import { GoBeaker } from "react-icons/go"; 7import { FiAlertOctagon } from "react-icons/fi"; 8import { GiFlyingTrout } from "react-icons/gi"; 9import { WiBarometer } from "react-icons/wi"; 10import { DiChrome } from "react-icons/di"; 11import { AiFillApi } from "react-icons/ai"; 12import {GrDownload} from "react-icons/gr"; 13import { IconContext } from "react-icons"; 14 15 16class Sample extends Component { 17 render() { 18 return ( 19 <h3> 20 <FaApple color={'red'}/> 21 <FaAndroid color={'red'} /> 22 <IoIosCloudCircle color={'red'} /> 23 <IoIosHeartEmpty color={'red'} /> 24 <MdDone color={'red'} /> 25 <TiChartLineOutline color={'red'} /> 26 <GoBeaker color={'red'} /> 27 <FiAlertOctagon color={'red'} /> 28 <GiFlyingTrout color={'red'} /> 29 <WiBarometer color={'red'} /> 30 <DiChrome color={'red'} /> 31 <AiFillApi color={'red'} /> 32 <GrDownload color={'red'}/> 33 <IconContext.Provider value={{ color: "blue" }}> 34 <div> 35 <FaApple /> 36 <FaAndroid /> 37 <IoIosCloudCircle /> 38 <IoIosHeartEmpty /> 39 <MdDone /> 40 <TiChartLineOutline /> 41 <GoBeaker /> 42 <FiAlertOctagon /> 43 <GiFlyingTrout /> 44 <WiBarometer /> 45 <DiChrome/> 46 <AiFillApi/> 47 <GrDownload /> 48 </div> 49 </IconContext.Provider> 50 </h3> 51 ) 52 } 53} 54 55export default Sample

参考:https://mebee.info/2020/03/25/post-7296/#outline__1

投稿2021/06/18 10:45

k49977

総合スコア27

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

表示したいアイコンの呼び出しはされてますか??
色の変更はCSSと同じ16進数とかでもできそうです。(例:#ff0000)

javascript

1import { FaFolder } from 'react-icons/fa';

投稿2021/06/18 10:21

編集2021/06/18 10:26
runnynose

総合スコア497

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

k49977

2021/06/18 10:27

はい、呼び出しはできています。 すみません、例が悪かったのですが、アイコンに関しては具体的にはGrDownloadです。(修正しておきます) もしかしたら色が変えられないなどありますでしょうか。
k49977

2021/06/18 10:27

回答いただきありがとうございます
runnynose

2021/06/18 10:47

あ、締め切っちゃいましたね笑 色変えられましたよ。
runnynose

2021/06/18 10:48

せっかくなので新たに回答を投稿します!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問