v3.1.7

SVG Sprite Icon

複数の SVG アイコンファイルを 1 つの SVG スプライトファイルにまとめ上げ、ID で呼び出して簡単に使うためのビルトインコンポーネントです。デフォルトでは /assets/icons 配下のアイコンファイルを収集。呼び出す場合はアイコンのファイル名が ID となります。

import { Icon } from "minista"

export default function () {
  return (
    <>
      <Icon iconId="plus" />
      <Icon iconId="heart" />
    </>
  )
}
<svg>
  <use href="/assets/images/icons.svg#plus"></use>
</svg>
<svg>
  <use href="/assets/images/icons.svg#heart"></use>
</svg>

Multiple Sprites

SVG スプライトファイルを複数に分けたい案件もあります。その場合は srcDir で異なるディレクトリ名を指定します。追加された SVG スプライトファイルの名前は指定したディレクトリ名(最下層)となります。

import { Icon } from "minista"

export default function () {
  return (
    <>
      <Icon iconId="plus" />
      <Icon iconId="heart" />
      <Icon iconId="star" srcDir="/src/assets/more-icons" />
    </>
  )
}
<svg>
  <use href="/assets/images/icons.svg#plus"></use>
</svg>
<svg>
  <use href="/assets/images/icons.svg#heart"></use>
</svg>
<svg>
  <use href="/assets/images/more-icons.svg#star"></use>
</svg>

IconProps

type IconProps = {
  iconId: string
  srcDir?: string
  className?: string
  title?: string
  attributes?: React.SVGProps<SVGSVGElement>
} & React.SVGProps<SVGSVGElement>