ki-icons
| Install | |
|---|---|
npm install ki-icons |
|
| Latest Version: | 0.1.0 |
| Vue: | 3 |
| License: | MIT |
| Last Updated: | Oct 6, 2026 |
| Links: | GitHub · npm |
ki-icons
Hand-drawn, full-colour illustrations — food, food categories and trophies —
packaged as an Iconify icon set with the prefix ki.
It works like @iconify-json/mdi: install it, add it to your Nuxt modules, and write
ki:banana wherever you would write mdi:home.
Open catalog.html in a browser to browse every icon.
| Family | Names | Example |
|---|---|---|
| food | the food itself, in English | ki:banana |
| category | category- + the category |
ki:category-fruit |
| trophy | trophy- + the trophy |
ki:trophy-sprout |
The full list, grouped by family, is in names.json.
Install
pnpm add github:gabriVinaiGit/ki-icons
Use with Nuxt
It is a Nuxt module (Nuxt ≥ 4.1). One line:
// nuxt.config.ts
export default defineNuxtConfig({
modules: ['ki-icons'],
})
The module hands the collection to @nuxt/icon
— installing it too if the app does not list it — and ships the whole set in
the client bundle, so icons chosen at runtime (from data) work without a
server, in static and mobile builds as well. Your own icon config still
wins over these defaults; your other custom collections are kept.
<Icon name="ki:banana" size="48" />
With Vuetify, if v-icon renders through <Icon> (as it does for mdi:
icons in a Nuxt + @nuxt/icon setup), ki: icons follow the same rules —
size="x-small" … "x-large" and numbers give exactly the sizes an mdi icon
gets:
<v-icon icon="ki:banana" size="small" />
<v-icon icon="ki:category-fruit" size="x-large" />
<v-icon icon="ki:trophy-tree" :size="64" />
Use anywhere else
icons.json is a standard IconifyJSON document, so any Iconify tool reads
it: @iconify/vue's addCollection(kiIcons), @iconify/utils, UnoCSS
presetIcons({ collections: { ki: () => kiIcons } }). The source SVGs are
also shipped in svg/ for direct use.
Colours
Every icon carries its own palette — a dark outline and a soft offset shadow —
so it does not follow color / currentColor. Iconify renders such
icons as images rather than masks, which keeps the colours intact. Size is
the only thing the surrounding text controls.
Adding an icon
- Draw it on a square
viewBox(24 × 24 for food, any square for the rest), with its own fills and nocurrentColor. - Save it as
svg/<family>/<kebab-name>.svg. - Run
npm run build— it regeneratesicons.json,names.jsonandcatalog.html, and fails on a malformed or unsafe file (scripts, external references, event handlers). - Commit the SVG together with the regenerated files: they are what installs read, with no build step on the consumer's side.
License
MIT © Gabriele Vinai
Related Packages
Use Font Awesome icons with popular Nuxt modules Nuxt Icon and NuxtUI
A motion-aware icon system for Vue 3 — 24x24 geometry, variable weight and fill,...
Nuxt module for easily integrating Solar Icons into your Nuxt 3+ applications.
Version History
| Version | Released | License |
|---|---|---|
| 0.1.0 | MIT |
Pre-releases (1)
| Version | Released | License |
|---|---|---|
| 0.0.0-stage |