Feather icons for VanJS.
Powered by:
- Vite for tooling
- Vite-Plugin-VanJS for SSR support
- Vitest for unit tests
- TailwindCSS for demo styling
- VanJSConverter for generating the source code
Install with npm:
npm install vanjs-feather
Install with pnpm:
pnpm add vanjs-feather
Install with bun:
bun add vanjs-feather
Install with deno:
deno install npm:vanjs-feather
Basic Usage You can call any icon(s) within your VanJS app:
import van from "vanjs-core";
import { Activity } from "vanjs-feather";
const { main } = van.tags;
const App = () => {
return main({},
Activity({ class:"icon", style:"color: turquoise" });
);
};
van.add(document.body, App());
JSX Usage When using vite-plugin-vanjs with JSX transformation enabled you can call any icon(s) within your VanJS app:
import van from "vanjs-core";
import { Activity } from "vanjs-feather";
const App = () => {
return <main>
<Activity class="icon" style={{ color: "turquoise" }} />
</main>;
};
van.add(document.body, <App />);
Notes
- All
SVGSVGElement
attributes should be supported, even with reactive values; - Camel case attribute names are not supported and strongly discouraged (EG: use
"stroke-width"
instead ofstrokeWidth
); - Since the feather library adds color to icons via the
stroke
property, any textcolor
value inherited from parent elements would apply to your icons; - The
width
andheight
properties can change the scale of the icons, something you may not want when using customstyle
and / orclass
; - JSX transformation via vite-plugin-vanjs allows you to use
CSSStyleDeclaration
like objects for your icons and elements in general.
VanJS Feather is released under the MIT License.