Vitral 0.2
Ícones

799 ícones, desenhados para o Vitral

Um conjunto de contorno numa grade de 24×24: traços arredondados de 2 unidades, sem preenchimento, na cor atual do texto. Cada ícone é uma exportação nomeada de @vitral/icons, então uma aplicação só leva no bundle os que importa. Tamanho e traço vêm dos tokens icon.size e icon.strokeWidth do tema; size e stroke-width os sobrescrevem num ícone.

799 ícones

Setas e navegação 63

Interface e ações 93

Formas 20

Arquivos e pastas 32

Texto e formatação 37

Mídia 44

Comunicação 33

Pessoas e contas 19

Dispositivos e hardware 28

Desenvolvimento 31

Gráficos e dados 20

Mapas e localização 19

Transporte 21

Tempo e calendário 19

Clima e natureza 37

Segurança 20

Saúde e medicina 22

Casa e edifícios 26

Comida e bebida 30

Escola e educação 36

E-commerce 32

Finanças 32

Jogos 50

Esportes 35

Ícones de outras bibliotecas

Toda prop icon, seja num botão, num item de menu, num toast ou num nó de árvore, passa pelo <Icon>, que aceita mais do que este conjunto: o componente Vue de outra biblioteca, markup SVG em que você confia ou as classes de uma fonte de ícones. Seja o que for, recebe a classe vt-icon, o tamanho do tema e a mesma acessibilidade, oculta ou rotulada.

Outras bibliotecas
<script setup lang="ts">
import { h, markRaw } from 'vue';
import { Camera } from 'lucide-vue-next';
import { Icon as Iconify } from '@iconify/vue';
import { FontAwesomeIcon } from '@fortawesome/vue-fontawesome';
import { faUser } from '@fortawesome/free-solid-svg-icons';
import { graduationCap } from '@vitral/icons';

// A component that needs its own props is wrapped in a function.
const MdiHome = () => h(Iconify, { icon: 'mdi:home' });
const FaUser = () => h(FontAwesomeIcon, { icon: faUser });

// Components kept in a model are marked raw, so Vue does not make them reactive.
const items = [
    { label: 'Photo', icon: markRaw(Camera) },
    { label: 'Home', icon: MdiHome },
    { label: 'Course', icon: graduationCap }
];
</script>

<template>
    <Button label="Shoot" :icon="Camera" />
    <Button label="Profile" :icon="FaUser" />
    <Button label="Me" icon="fa-solid fa-user" />        <!-- an icon font's classes -->
    <Button label="Logo" :icon="'<svg viewBox=…>…</svg>'" />  <!-- trusted markup -->
    <Menu :model="items" />
</template>