스타일드-components와 hue-rotate로 그림을 게으르게 컬러로 변환

어떤 Mock을 만들 때 가상 이미지 아이콘을 다양하게 배색하고 싶은 마음이 있다.
트위터에 옛날 계란 아이콘 같은 거.
스타일드-components와 css의hue-rotate를 이용하면 잡지에 png 한 장만 준비하면 된다.
↓ 이런 느낌으로 만들 수 있다.

"SVG로 하는 게 좋은데 조금 힘들더라"때 추천해드려요.
실상과 다양한 것을 고려하면 압도적으로svg로 하는 것이 좋습니다. 연결 수단으로 사용하세요.
그리고 이번엔 styled-components가 했어요. CSS 기능이니까 ss 같은 것도 할 수 있을 거예요.
Styled-components를 사용하면 동적으로 처리할 수 있다는 점이 맛있어요.

이루어지다


예를 들어 이러한 이미지 준비

그리고 이렇게 설치합니다.
import React, { Component } from "react";
import icon from "./icon.png";
import styled from "styled-components";

const randomAngle = () => {
  const num = 7; // ランダムに出したい色数
  return (Math.ceil(Math.random() * num) * 360) / num;
};

// ここでhue-rotate使う
const MockAvater = styled.img`
  filter: hue-rotate(${() => `${randomAngle()}deg`});
`;

class App extends Component {
  render() {
    return (
      <div className="App">
        <MockAvater src={icon} width="80" />
      </div>
    );
  }
}
"색상 수가 변수에 맡기고 싶은 경우"라면 이런 느낌이에요.
const getAngle = (idx, max) => {
  console.log(idx);
  return (360 * idx) / max;
};
const MockAvaterManual = styled.img`
  filter: hue-rotate(${({ idx, max }) => `${getAngle(idx, max)}deg`});
`;

class App extends Component {
  render() {
    return (
      <MockAvaterManual src={icon} width="80" max={8} idx={0} />
    )
  }
}

좋은 웹페이지 즐겨찾기