Svelte Heroicons
Info
Check out @steeze-ui/icons which is meant as a successor of svelte-hero-icons:
- Icon Components for any framework (for now its only svelte)
- Icon Packs (e.g heroicons, radix-icons, iconic-free)
- A template to create your own publishable Icon Pack (Planned)
- Now lives under an org that will focus on more ui tools that I have planned (primarily for svelte)
Description
- complete heroicon set optimized for svelte
- programatically change solid or outline version based on the
solid
attribute - fully typed for a great IDE experience
- works with SvelteKit & Vite
Install
- install as
dependency
(important)
NPM
npm install svelte-hero-icons
Configuration
- Add this to your
vite.config.js
, so all icons are bundled into one file -> no import waterfalls
const config = {
kit: {
vite: {
ssr: {
noExternal: ["svelte-hero-icons"],
},
optimizeDeps: {
include: ["svelte-hero-icons"],
},
},
},
};
export default config;
Usage
- Default is Outline version of icon
- Use solid attribute for Solid Icons
<script>
import { Icon, ArrowUp, Filter } from "svelte-hero-icons";
</script>
<Icon src="{Filter}" solid />
<Icon src="{ArrowUp}" size="32" />
<Icon src="{Filter}" class="h-6 text-red-500 w-6" />
See all icons here: https://github.com/refactoringui/heroicons
Known Problems
Windows & pnpm
If you are developing with Windows or pnpm you need to prevent the dependency from being externalized for SSR:
const config = {
kit: {
vite: {
ssr: {
noExternal: ["svelte-hero-icons"],
},
},
},
};
Author
This package is based on heroicons