Icon TuffEx uses UnoCSS preset-icons to provide a rich icon set, with TuffIcon for unified rendering and control.
<template>
<!-- Remix Icon -->
<i class="i-ri-home-line" />
<i class="i-ri-search-line" />
<i class="i-ri-settings-3-line" />
<!-- Carbon -->
<i class="i-carbon-user" />
<i class="i-carbon-folder" />
<!-- Simple Icons (brand) -->
<i class="i-simple-icons-github" />
<i class="i-simple-icons-visualstudiocode" />
</template>
<template>
<TuffIcon name="i-ri-home-line" />
<TuffIcon name="chevron-down" />
<TuffIcon :icon="{ type: 'emoji', value: '🚀' }" />
<TuffIcon :icon="{ type: 'url', value: '/app.svg', colorful: true }" />
</template>
@talex-touch/utils provides predefined icon constants for consistency:
import { TuffIcons, AppIcons } from '@talex-touch/utils'
// UI icons
TuffIcons.Home // 'i-ri-home-line'
TuffIcons.Search // 'i-ri-search-line'
TuffIcons.Settings // 'i-ri-settings-3-line'
// Brand icons
AppIcons.VSCode // 'i-simple-icons-visualstudiocode'
AppIcons.GitHub // 'i-simple-icons-github'
Name Class Preview Home i-ri-home-lineBack i-ri-arrow-left-lineForward i-ri-arrow-right-lineMenu i-ri-menu-line
Name Class Preview Search i-ri-search-lineAdd i-ri-add-lineDelete i-ri-delete-bin-lineEdit i-ri-edit-lineCopy i-ri-file-copy-lineSave i-ri-save-lineDownload i-ri-download-lineUpload i-ri-upload-lineRefresh i-ri-refresh-line
Name Class Preview Check i-ri-check-lineClose i-ri-close-lineWarning i-ri-error-warning-lineInfo i-ri-information-lineError i-ri-close-circle-line
Name Class Preview File i-ri-file-lineFolder i-ri-folder-lineFileCode i-ri-file-code-lineFileImage i-ri-image-line
Name Class Preview Settings i-ri-settings-3-lineUser i-ri-user-lineStar i-ri-star-lineHeart i-ri-heart-lineLock i-ri-lock-lineEye i-ri-eye-line
Name Class Preview GitHub i-simple-icons-githubVSCode i-simple-icons-visualstudiocodeChrome i-simple-icons-googlechromeDiscord i-simple-icons-discord
<template>
<!-- Size -->
<i class="i-ri-home-line text-sm" />
<i class="i-ri-home-line text-base" />
<i class="i-ri-home-line text-xl" />
<i class="i-ri-home-line text-2xl" />
<!-- Color -->
<i class="i-ri-star-line text-yellow-500" />
<i class="i-ri-heart-fill text-red-500" />
<i class="i-ri-check-circle-fill text-green-500" />
<!-- Motion -->
<i class="i-ri-loader-4-line animate-spin" />
</template>
Overlay a status indicator on the bottom-right corner of an icon.
Status overlays for different states.
Demo will load when visible.
Copy<template>
<TxStatusIcon name="i-ri-translate-2" :size="22" tone="success" />
<TxStatusIcon name="i-ri-translate-2" :size="22" tone="warning" />
<TxStatusIcon name="i-ri-translate-2" :size="22" tone="error" />
<TxStatusIcon name="i-ri-translate-2" :size="22" tone="info" />
<TxStatusIcon name="i-ri-translate-2" :size="22" tone="loading" />
</template>
Show code
class: icon class name (recommended).emoji: lightweight emphasis.file / url: local or remote icons.builtin: built-in common icons.colorful can be declared on the component prop or on icon.colorful; SVG uses a currentColor mask by default and preserves original colors when colorful is true.Property Type Default Description icon ITuffIcon - Icon object (type/value) name string - Icon name or class size number 16 Icon size colorful boolean false Keep original colors urlResolver url file - Override URL/file path resolution svgFetcher (url: string) => Promise<string> - Override SVG content fetching
Property Type Default Description tone none loading warning success error info 'none' Status indicator indicatorSize number auto Indicator size indicatorOffset number 0 Indicator offset
name values starting with i- render as icon classes; known built-in names render as builtin SVG.file and local absolute url values can be transformed by injected fileProtocol or urlResolver.SVG uses a currentColor mask when colorful=false; colorful=true or icon.colorful=true renders the original image. status='loading' | 'error' takes precedence over normal icon rendering.Set Prefix Description Remix Icon i-ri-General UI icons, outline/filled styles Carbon i-carbon-IBM design system icons Simple Icons i-simple-icons-Brand/logo icons
Browse and search icons at Icônes .
import { classIcon, getIcon } from '@talex-touch/utils'
const icon = classIcon('i-ri-star-line')
// { type: 'class', value: 'i-ri-star-line' }
const searchIcon = getIcon('Search')
// { type: 'class', value: 'i-ri-search-line' }