If you want to use more Icons Packs and components for multiple Frameworks (React, Vue, Lit and more), check out @steeze-ui/icons which is meant as a successor to svelte-hero-icons:
solid
attribute (solid, mini, micro)devDependency
npm i -D svelte-hero-icons
without any configuration
vite.config.js
:ssr: {
noExternal: ["svelte-hero-icons"],
}
<script>
// Only import what you need!
import { Icon, ArrowUp, Filter } from "svelte-hero-icons";
</script>
<!-- default it's using the outline version of this icon -->
<Icon src="{Filter}" />
<!-- use solid attribute to display the solid version of this icon -->
<Icon src="{Filter}" solid />
<!-- use mini attribute to display the mini version of this icon -->
<Icon src="{Filter}" mini />
<!-- use micro attribute to display the micro version of this icon -->
<Icon src="{Filter}" micro />
<!-- in this (rather unusual) case solid will have the precedence -->
<Icon src="{Filter}" solid mini />
<!-- use size attribute to set icon size (32 -> 32px | 2rem | 100% == default ) -->
<Icon src="{ArrowUp}" size="32" />
<!-- use Windi CSS or tailwindcss classes directly -->
<Icon src="{Filter}" class="h-6 text-red-500 w-6" />
<script>
import { Icon, Filter, type IconSource } from "svelte-hero-icons";
export let icon:IconSource = Filter
</script>
<Icon src="{icon}" solid />
This package is based on heroicons
See all available icons here: https://github.com/refactoringui/heroicons