- svgλ pngμ λ€λ₯΄κ² μμ΄μ½μ μ, ν¬κΈ° λ± μμλ₯Ό λμμΈμ λ°λΌ λ°κΏ μ μλ νμΌ μ λλ€.
- λν μ©λμ΄ λ§€μ° μμμ νλ‘μ νΈ κ΄λ¦¬κ° μ©μ΄ ν©λλ€.
- React.js μ Next.js λ°©λ²μ μ°¨μ΄κ° μ‘΄μ¬ ν©λλ€.
β μ¬μ© μμ
React
- νμΌ κ²½λ‘ : public/svg/icon.svg ( μμ )
<svg width="46" height="46" viewBox="0 0 46 46" fill="current"xmlns="http://www.w3.org/2000/svg">
<line x1="8" y1="35" x2="38" y2="35" stroke="current" stroke-width="4" stroke-linecap="round"/>
<rect x="7" y="10" width="32" height="18" rx="1" fill="current" stroke="current" stroke-width="2"/>
- fill κ³Ό stroke κ° current λ‘ λμ΄μλλ° μλμμ μ€λͺ νκ² μ΅λλ€.
1. img src
import Icon from 'public/svg/icon.svg';
<img src={Icon}/>
2. svg μ»΄ν¬λνΈλ‘
import { ReactComponent as icon } from 'public/svg/icon.svg';
<Icon />;
β svg μ, ν¬κΈ° λ°κΎΈκΈ°
- μμλ μ€νμΌ μ»΄ν¬λνΈλ₯Ό μ¬μ©μ νμμ΅λλ€.
- μλ λ°©λ²μ svg μ½λλ₯Ό μλ°μ€ν¬λ¦½νΈλ‘ κ°μ Έμμ μ»΄ν¬λνΈ μν¨ λ°©λ² μ λλ€.
- λ€λ₯Έ νμΌμμ
<Icon/>
λΆμ¬μ μ¬μ© ν μ μμ΅λλ€. - μ°μ μμμ λ΄€λ fill, κ³Ό stroke λΆλΆμ
current
λ‘ λ³κ²½ ν©λλ€. - μ΄λ κ² μ¬μ©νλ©΄ ν¬κΈ° λλ μμμ λ°κΏ μ μμ΅λλ€.
import styled from "styled-components"
β
const Icon = styled.svg`
cursor : pointer;
fill : #DEDEDE;
stroke : #DEDEDE;
&:active{
fill : #7F7F7F;
stroke : #7F7F7F;
}
`;
β
const Icon = () => {
return(
<Icon width="46" height="46" viewBox="0 0 46" fill="current" xmlns="http://www.w3.org/2000/svg">
<line x1="898" y1="80" x2="80" y2="890" stroke="current" stroke-width="4" stroke-linecap="round"/>
<rect x="17" y="80" width="392" height="168" rx="1" fill="current" stroke="current" stroke-width="2"/>
</Icon>
)
}
β
export default Icon;
β μ°Έκ³
'π Front-End > React.js' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
React Query β (0) | 2022.10.25 |
---|---|
Redux Toolkit (0) | 2022.10.25 |
Styled-Components (0) | 2022.10.25 |
νλ‘μ νΈ λ°°ν¬ μ€λΉ λ° λΉλ (0) | 2022.10.25 |
React - img (0) | 2022.10.25 |