Phosphor is a flexible icon family for interfaces, diagrams, presentations — whatever, really. More icons at phosphoricons.com.
yarn add --dev phosphor-svelte
or
npm install --save-dev phosphor-svelte
<script>
import { Horse, Heart } from "phosphor-svelte";
// or
import Cube from "phosphor-svelte/lib/Cube"; // for faster compiling
</script>
<Horse />
<Heart color="#AE2983" weight="fill" size="{32}" />
<Cube color="teal" weight="duotone" />
- color?:
string
– Icon stroke/fill color. Can be any CSS color string, includinghex
,rgb
,rgba
,hsl
,hsla
, named colors, or the specialcurrentColor
variable. - size?:
number | string
– Icon height & width. As with standard React elements, this can be a number, or a string with units inpx
,%
,em
,rem
,pt
,cm
,mm
,in
. - weight?:
"thin" | "light" | "regular" | "bold" | "fill" | "duotone"
– Icon weight/style. Can also be used, for example, to "toggle" an icon's state: a rating component could use Stars withweight="regular"
to denote an empty star, andweight="fill"
to denote a filled star. - mirrored?:
boolean
– Flip the icon horizontally. Can be useful in RTL languages where normal icon orientation is not appropriate.
Components can accept arbitrary SVG elements as children, so long as they are valid children of the <svg>
element. This can be used to modify an icon with background layers or shapes, filters, animations and more. The children will be placed below the normal icon contents.
The following will cause the Cube icon to rotate and pulse:
<Cube color="darkorchid" weight="duotone">
<animate
attributeName="opacity"
values="0;1;0"
dur="4s"
repeatCount="indefinite"
></animate>
<animateTransform
attributeName="transform"
attributeType="XML"
type="rotate"
dur="5s"
from="0 0 0"
to="360 0 0"
repeatCount="indefinite"
></animateTransform>
</Cube>
Note: The coordinate space of slotted elements is relative to the contents of the icon
viewBox
, which is a 256x256 square. Only valid SVG elements will be rendered.
MIT © Phosphor Icons