packages/icons/README.md
This package provide a set of icons for use Scalar applications based on Phosphor Icons. It uses a custom Vue implementation based on the @phosphor-icons/vue package which allows for tree shaking.
For a full list of available icons see Phosphor Icons. The icon will be available from this package as ScalarIcon<Icon Name in PascalCase>.
pnpm i @scalar/icons
<script setup lang="ts">
import { ScalarIconMagnifyingGlass } from '@scalar/icons'
</script>
<template>
<!-- You can size and color the icons easily using Tailwind -->
<ScalarIconMagnifyingGlass class="size-4 text-c-3" weight="bold" />
</template>
@phosphor-icons/vueThere are a few differences between this implementation and @phosphor-icons/vue to better it align with our Scalar stack.
size-<Number> or text-<color>) to adjust the size and color of the icons. By default the icons are sized to 1em (the size of the text around it) and set to the currentColor.-scale-x-100 Tailwind class.aria-hidden and role="presentation" attributes set. If you set the label prop then the aria-label will be set instead.To build the icons we use a icon generation script modified from the @phosphor-icons/vue assemble.ts script. The icon SVGs are pulled from @phosphor-icons/core and compiled into individual Vue components for tree shaking.
To generate the icons run:
pnpm generate:icons
This will also update / override the exports in the index file at src/index.ts. See also the development docs for @phosphor-icons/vue.
We are API nerds. You too? Let's chat on Discord: https://discord.gg/scalar
The source code in this repository is licensed under MIT.