Since 1.0.0BETA

Icon

UnoCSS icon system and TuffIcon component

This page was migrated by AI, please review carefully

Migration is complete, but please validate against source code and manual review.

Icon

TuffEx uses UnoCSS preset-icons to provide a rich icon set, with TuffIcon for unified rendering and control.

Basic Usage

UnoCSS icon classes

EXAMPLE.VUE
<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>

TuffIcon component

EXAMPLE.VUE
<template>
  <TuffIcon name="i-ri-home-line" />
  <TuffIcon name="chevron-down" />
  <TuffIcon :icon="{ type: 'emoji', value: '🚀' }" />
</template>

TuffIcons constants

@talex-touch/utils provides predefined icon constants for consistency:

EXAMPLE.TS
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'

Icon categories

NameClassPreview
Homei-ri-home-line
Backi-ri-arrow-left-line
Forwardi-ri-arrow-right-line
Menui-ri-menu-line

Actions

NameClassPreview
Searchi-ri-search-line
Addi-ri-add-line
Deletei-ri-delete-bin-line
Editi-ri-edit-line
Copyi-ri-file-copy-line
Savei-ri-save-line
Downloadi-ri-download-line
Uploadi-ri-upload-line
Refreshi-ri-refresh-line

Status

NameClassPreview
Checki-ri-check-line
Closei-ri-close-line
Warningi-ri-error-warning-line
Infoi-ri-information-line
Errori-ri-close-circle-line

Files

NameClassPreview
Filei-ri-file-line
Folderi-ri-folder-line
FileCodei-ri-file-code-line
FileImagei-ri-image-line

UI elements

NameClassPreview
Settingsi-ri-settings-3-line
Useri-ri-user-line
Stari-ri-star-line
Hearti-ri-heart-line
Locki-ri-lock-line
Eyei-ri-eye-line

Brands

NameClassPreview
GitHubi-simple-icons-github
VSCodei-simple-icons-visualstudiocode
Chromei-simple-icons-googlechrome
Discordi-simple-icons-discord

Custom styles

EXAMPLE.VUE
<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>

TxStatusIcon

Overlay a status indicator on the bottom-right corner of an icon.

TxStatusIcon

Status overlays for different states.

Demo loads on client.

Types & Sources

  • class: icon class name (recommended).
  • emoji: lightweight emphasis.
  • file / url: local or remote icons.
  • builtin: built-in common icons.

API (Lite)

PropertyTypeDefaultDescription
icon-Icon object (type/value)
name-Icon name or class
sizeIcon size
colorfulKeep original colors

Icon sets

SetPrefixDescription
Remix Iconi-ri-General UI icons, outline/filled styles
Carboni-carbon-IBM design system icons
Simple Iconsi-simple-icons-Brand/logo icons

Browse and search icons at Icônes.

API Reference

classIcon / getIcon

EXAMPLE.TS
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' }
Was this helpful?