Convertir les icônes SVG en composants React
npm i pixoPassez un répertoire ou un chemin de fichier SVG comme premier argument.
$ pixo src --out-dir distChaque icône SVG sera automatiquement optimisée et renommée en nom de fichier de cas Pascal pour le composant. Les composants de l'icône peuvent ensuite être importés dans une application React.
import React from 'react'
import CheckIcon from './CheckIcon'
const App = props => (
< div >
< CheckIcon />
</ div >
)Le modèle de composant par défaut inclut les accessoires pour:
size (nombre) Largeur et hauteur de pixels (par défaut 24 )color (chaîne) transmise à l'attribut fill SVG (par défaut 'currentcolor' ) Chaque icône SVG doit être conforme aux éléments suivants:
viewBox , de préférence 0 0 24 24<path> Pixo inclut le support expérimental pour les éléments <circle> , <polygon> et <rect> .
Les éléments suivants seront ignorés:
<defs> ou <clipPath>fill="none"<ellipse> Éléments<line> Éléments<polyline> Éléments<path>La plupart des applications graphiques peuvent convertir les formes en chemins SVG.
Compound PathPixo utilise un modèle par défaut pour le rendu, mais comprend certaines options intégrées.
default : SVG ordinaire sans stylestyledSystem : Composant stylé avec marge, rembourrage et accessoires de couleur du système stylé Pour utiliser un modèle personnalisé, passez un chemin à votre modèle à l'indicateur --template .
pixo icons --template custom-template.jsUn modèle doit être une fonction qui renvoie une chaîne pour le code source du composant, écrite comme un module Node.js.
// default template
module . exports = ( {
name ,
viewBox ,
pathData
} ) => `import React from 'react'
const ${ name } Icon = ({
size,
color,
...props
}) => (
<svg
{...props}
viewBox=' ${ viewBox } '
width={size}
height={size}
fill={color}
>
<path d=' ${ pathData } ' />
</svg>
)
${ name } Icon.displayName = ' ${ name } Icon'
${ name } Icon.defaultProps = {
size: 24,
color: 'currentcolor'
}
export default ${ name } `Arguments de fonction de modèle
name Camel Basé Nom qui peut être utilisé pour le nom du composantviewBox la valeur Viewbox d'origine à partir du SVGpathData pour l'attribut d de l'élément <path> Les options peuvent être transmises sous forme de drapeaux à la CLI ou ajoutées à un champ pixo dans votre package.json
Exécutez pixo --help pour voir la liste des options.
outDir (String) (DIST DEFAUT)template (chaîne) Nom du modèle intégré ou chemin vers le modèle personnaliséindex (booléen) Créez un module de baril index.jsiconComponent (Boolean) Créer un composant d'emballage Icon.jsrecursive (booléen) Lisez récursivement tous les SVG dans les sous-répertoiresDrapeaux de CLI
-d --out-dir Output directory
-t --template Name of built-in template or path to custom template
-i --index Include index.js barrel module
-c --icon-component Include wrapper Icon.js component
-r --recursive Recursively read all SVGs in subdirectories Exemple package.json
{
"pixo" : {
"outDir" : " dist " ,
"template" : " ./custom-template.js " ,
"index" : true ,
"iconComponent" : true ,
"recursive" : true
}
}Licence MIT