导航菜单

Icons

Introduction

The Icons component library provides a basic set of Astro icon components, built on SVG icons, supporting custom sizes, colors, and styles. This component library only provides a limited number of basic icons, primarily for internal use within the component library. If you need more comprehensive icon resources, we recommend using the following popular icon libraries:

Props

class

Customize the CSS class name of the icon through the class attribute to override default styles.

---



import { UserIcon } from "@coffic/cosy-ui";
---

<UserIcon size="32px" />
---



import { UserIcon } from "@coffic/cosy-ui";
---

<UserIcon
  size="32px"
  class="cosy:text-primary cosy:bg-base-200 cosy:p-2 cosy:rounded-lg"
/>
<script setup lang="ts">
import { UserIcon } from "@coffic/cosy-ui/vue";

/**
 * @component ClassBasic
 * @description Vue 图标 class 属性基础示例,展示边框样式
 */
</script>

<template>
    <UserIcon size="32px" class="cosy:border-2 cosy:border-blue-500 cosy:p-2 cosy:rounded-lg" />
</template>
<script setup lang="ts">
import { SmartIcon } from '@coffic/cosy-ui/vue';
</script>
<template>
  <SmartIcon icon="star" class="custom-class" />
</template>

color

Customize the color of the icon through the color attribute, supporting any valid CSS color value.

---



import { UserIcon } from "@coffic/cosy-ui";
---

<UserIcon size="32px" />
---



import { UserIcon } from "@coffic/cosy-ui";
---

<UserIcon size="32px" color="#3b82f6" />
<script setup lang="ts">
import { UserIcon } from "@coffic/cosy-ui/vue";

/**
 * @component ColorRed
 * @description Vue 图标红色示例
 */
</script>

<template>
    <UserIcon size="32px" color="#ef4444" />
</template>
<script setup lang="ts">
import { UserIcon } from "@coffic/cosy-ui/vue";

/**
 * @component ColorPurple
 * @description Vue 图标紫色示例
 */
</script>

<template>
    <UserIcon size="32px" color="#8b5cf6" />
</template>

size

Customize the size of the icon through the size attribute, supporting any valid CSS size value.

---



import { UserIcon } from "@coffic/cosy-ui";
---

<UserIcon size="16px" />
---



import { UserIcon } from "@coffic/cosy-ui";
---

<UserIcon size="32px" />
---



import { UserIcon } from "@coffic/cosy-ui";
---

<UserIcon size="48px" />
<script setup lang="ts">
import { UserIcon } from "@coffic/cosy-ui/vue";

/**
 * @component SizeSmall
 * @description Vue 图标小尺寸示例
 */
</script>

<template>
    <UserIcon size="16px" />
</template>
<script setup lang="ts">
import { UserIcon } from "@coffic/cosy-ui/vue";

/**
 * @component SizeMedium
 * @description Vue 图标中等尺寸示例
 */
</script>

<template>
    <UserIcon size="32px" />
</template>
<script setup lang="ts">
import { UserIcon } from "@coffic/cosy-ui/vue";

/**
 * @component SizeLarge
 * @description Vue 图标大尺寸示例
 */
</script>

<template>
    <UserIcon size="48px" />
</template>

Slots

Icon components do not provide content slots, all content is rendered through SVG path data.

Special Icons

SocialIcon

Social platform icon component that supports displaying icons for various social platforms. Use the platform attribute to specify which social platform to display.

---



import { SocialIcon } from "@coffic/cosy-ui";
---

<SocialIcon platform="github" size="32px" color="#333" />
---



import { SocialIcon } from "@coffic/cosy-ui";
---

<div style="display: flex; gap: 1rem; align-items: center;">
  <SocialIcon platform="github" size="24px" color="#333" />
  <SocialIcon platform="twitter" size="24px" color="#1da1f2" />
  <SocialIcon platform="facebook" size="24px" color="#1877f2" />
  <SocialIcon platform="linkedin" size="24px" color="#0077b5" />
</div>

SmartIcon

Smart icon component with unique visual design, suitable for representing intelligent and technology-related functions.

---



import { SmartIcon } from "@coffic/cosy-ui";
---

<SmartIcon keyword="用户" size="32px" color="#8b5cf6" />
---



import { SmartIcon } from "@coffic/cosy-ui";
---

<div style="display: flex; gap: 1rem; align-items: center;">
  <SmartIcon keyword="用户" size="16px" color="#8b5cf6" />
  <SmartIcon keyword="设置" size="24px" color="#8b5cf6" />
  <SmartIcon keyword="搜索" size="32px" color="#8b5cf6" />
  <SmartIcon keyword="文档" size="48px" color="#8b5cf6" />
</div>

All Icons

Display all available icon components.

AlertTriangle

AppStoreIcon

CalendarIcon

ChartIcon

CheckIcon

CheckCircle

ChevronDownIcon

ChevronLeftIcon

ChevronRightIcon

ClipboardIcon

CloseIcon

CodeIcon

DashboardIcon

DeleteIcon

DocumentIcon

DownloadIcon

EditIcon

ErrorIcon

FacebookIcon

FolderIcon

GithubIcon

GlobeIcon

HeartIcon

HomeIcon

IPhoneBatteryIcon

IPhoneSignalIcon

IPhoneWifiIcon

InfoCircle

InfoIcon

InboxArchive

LinkIcon

LinkedinIcon

LogOut

MailIcon

MapPinIcon

MenuIcon

MessageIcon

NotificationIcon

PhoneIcon

RefreshIcon

ReportIcon

SaveIcon

SearchIcon

SecurityIcon

SettingsIcon

StarIcon

SuccessIcon

SunCloudyIcon

ToolsIcon

TwitterIcon

UploadIcon

UserIcon

UsersIcon

ViewIcon

WalletIcon

WarningIcon

WechatIcon

WebsiteIcon

WhatsappIcon

XCircle

AlertTriangle

AppStore

Calendar

Chart

Check

CheckCircle

ChevronDown

ChevronLeft

ChevronRight

Clipboard

Close

Code

Dashboard

Delete

Document

Download

Edit

Error

Facebook

Folder

Github

Globe

Heart

Home

IPhoneBattery

IPhoneSignal

IPhoneWifi

InboxArchive

InfoCircle

Info

Link

Linkedin

LogOut

Mail

MapPin

Menu

Message

Notification

Phone

Refresh

Report

Save

Search

Security

Settings

Star

Success

SunCloudy

Tools

Twitter

Upload

User

Users

View

Wallet

Warning

Wechat

Website

Whatsapp

XCircle

---



import {
	AlertTriangle,
	AppStoreIcon,
	CalendarIcon,
	ChartIcon,
	CheckCircle,
	CheckIcon,
	ChevronDownIcon,
	ChevronLeftIcon,
	ChevronRightIcon,
	ClipboardIcon,
	CloseIcon,
	CodeIcon,
	DashboardIcon,
	DeleteIcon,
	DocumentIcon,
	DownloadIcon,
	EditIcon,
	ErrorIcon,
	FacebookIcon,
	FolderIcon,
	GithubIcon,
	GlobeIcon,
	HeartIcon,
	HomeIcon,
	InboxArchive,
	InfoCircle,
	InfoIcon,
	IPhoneBatteryIcon,
	IPhoneSignalIcon,
	IPhoneWifiIcon,
	LinkedinIcon,
	LinkIcon,
	LogOut,
	MailIcon,
	MapPinIcon,
	MenuIcon,
	MessageIcon,
	NotificationIcon,
	PhoneIcon,
	RefreshIcon,
	ReportIcon,
	SaveIcon,
	SearchIcon,
	SecurityIcon,
	SettingsIcon,
	StarIcon,
	SuccessIcon,
	SunCloudyIcon,
	ToolsIcon,
	TwitterIcon,
	UploadIcon,
	UserIcon,
	UsersIcon,
	ViewIcon,
	WalletIcon,
	WarningIcon,
	WebsiteIcon,
	WechatIcon,
	WhatsappIcon,
	XCircle,
} from "@coffic/cosy-ui";
---

<div style="padding: 2rem; background-color: #f8f9fa; border-radius: 0.5rem;">
  <div
    style="display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 1rem;">
    <div
      style="text-align: center; padding: 1rem; background: white; border-radius: 0.375rem; border: 1px solid #e5e7eb;">
      <AlertTriangle size="32px" color="#f59e0b" />
      <p style="margin-top: 0.5rem; font-size: 0.875rem; color: #6b7280;">
        AlertTriangle
      </p>
    </div>
    <div
      style="text-align: center; padding: 1rem; background: white; border-radius: 0.375rem; border: 1px solid #e5e7eb;">
      <AppStoreIcon size="32px" color="#3b82f6" />
      <p style="margin-top: 0.5rem; font-size: 0.875rem; color: #1a1b1c;">
        AppStoreIcon
      </p>
    </div>
    <div
      style="text-align: center; padding: 1rem; background: white; border-radius: 0.375rem; border: 1px solid #e5e7eb;">
      <CalendarIcon size="32px" color="#3b82f6" />
      <p style="margin-top: 0.5rem; font-size: 0.875rem; color: #6b7280;">
        CalendarIcon
      </p>
    </div>
    <div
      style="text-align: center; padding: 1rem; background: white; border-radius: 0.375rem; border: 1px solid #e5e7eb;">
      <ChartIcon size="32px" color="#06b6d4" />
      <p style="margin-top: 0.5rem; font-size: 0.875rem; color: #6b7280;">
        ChartIcon
      </p>
    </div>
    <div
      style="text-align: center; padding: 1rem; background: white; border-radius: 0.375rem; border: 1px solid #e5e7eb;">
      <CheckIcon size="32px" color="#10b981" />
      <p style="margin-top: 0.5rem; font-size: 0.875rem; color: #6b7280;">
        CheckIcon
      </p>
    </div>
    <div
      style="text-align: center; padding: 1rem; background: white; border-radius: 0.375rem; border: 1px solid #e5e7eb;">
      <CheckCircle size="32px" color="#10b981" />
      <p style="margin-top: 0.5rem; font-size: 0.875rem; color: #6b7280;">
        CheckCircle
      </p>
    </div>
    <div
      style="text-align: center; padding: 1rem; background: white; border-radius: 0.375rem; border: 1px solid #e5e7eb;">
      <ChevronDownIcon size="32px" color="#6b7280" />
      <p style="margin-top: 0.5rem; font-size: 0.875rem; color: #6b7280;">
        ChevronDownIcon
      </p>
    </div>
    <div
      style="text-align: center; padding: 1rem; background: white; border-radius: 0.375rem; border: 1px solid #e5e7eb;">
      <ChevronLeftIcon size="32px" color="#6b7280" />
      <p style="margin-top: 0.5rem; font-size: 0.875rem; color: #6b7280;">
        ChevronLeftIcon
      </p>
    </div>
    <div
      style="text-align: center; padding: 1rem; background: white; border-radius: 0.375rem; border: 1px solid #e5e7eb;">
      <ChevronRightIcon size="32px" color="#6b7280" />
      <p style="margin-top: 0.5rem; font-size: 0.875rem; color: #6b7280;">
        ChevronRightIcon
      </p>
    </div>
    <div
      style="text-align: center; padding: 1rem; background: white; border-radius: 0.375rem; border: 1px solid #e5e7eb;">
      <ClipboardIcon size="32px" color="#8b5cf6" />
      <p style="margin-top: 0.5rem; font-size: 0.875rem; color: #6b7280;">
        ClipboardIcon
      </p>
    </div>
    <div
      style="text-align: center; padding: 1rem; background: white; border-radius: 0.375rem; border: 1px solid #e5e7eb;">
      <CloseIcon size="32px" color="#ef4444" />
      <p style="margin-top: 0.5rem; font-size: 0.875rem; color: #6b7280;">
        CloseIcon
      </p>
    </div>
    <div
      style="text-align: center; padding: 1rem; background: white; border-radius: 0.375rem; border: 1px solid #e5e7eb;">
      <CodeIcon size="32px" color="#8b5cf6" />
      <p style="margin-top: 0.5rem; font-size: 0.875rem; color: #6b7280;">
        CodeIcon
      </p>
    </div>
    <div
      style="text-align: center; padding: 1rem; background: white; border-radius: 0.375rem; border: 1px solid #e5e7eb;">
      <DashboardIcon size="32px" color="#3b82f6" />
      <p style="margin-top: 0.5rem; font-size: 0.875rem; color: #6b7280;">
        DashboardIcon
      </p>
    </div>
    <div
      style="text-align: center; padding: 1rem; background: white; border-radius: 0.375rem; border: 1px solid #e5e7eb;">
      <DeleteIcon size="32px" color="#ef4444" />
      <p style="margin-top: 0.5rem; font-size: 0.875rem; color: #6b7280;">
        DeleteIcon
      </p>
    </div>
    <div
      style="text-align: center; padding: 1rem; background: white; border-radius: 0.375rem; border: 1px solid #e5e7eb;">
      <DocumentIcon size="32px" color="#8b5cf6" />
      <p style="margin-top: 0.5rem; font-size: 0.875rem; color: #6b7280;">
        DocumentIcon
      </p>
    </div>
    <div
      style="text-align: center; padding: 1rem; background: white; border-radius: 0.375rem; border: 1px solid #e5e7eb;">
      <DownloadIcon size="32px" color="#10b981" />
      <p style="margin-top: 0.5rem; font-size: 0.875rem; color: #6b7280;">
        DownloadIcon
      </p>
    </div>
    <div
      style="text-align: center; padding: 1rem; background: white; border-radius: 0.375rem; border: 1px solid #e5e7eb;">
      <EditIcon size="32px" color="#3b82f6" />
      <p style="margin-top: 0.5rem; font-size: 0.875rem; color: #6b7280;">
        EditIcon
      </p>
    </div>
    <div
      style="text-align: center; padding: 1rem; background: white; border-radius: 0.375rem; border: 1px solid #e5e7eb;">
      <ErrorIcon size="32px" color="#ef4444" />
      <p style="margin-top: 0.5rem; font-size: 0.875rem; color: #6b7280;">
        ErrorIcon
      </p>
    </div>
    <div
      style="text-align: center; padding: 1rem; background: white; border-radius: 0.375rem; border: 1px solid #e5e7eb;">
      <FacebookIcon size="32px" color="#1877f2" />
      <p style="margin-top: 0.5rem; font-size: 0.875rem; color: #6b7280;">
        FacebookIcon
      </p>
    </div>
    <div
      style="text-align: center; padding: 1rem; background: white; border-radius: 0.375rem; border: 1px solid #e5e7eb;">
      <FolderIcon size="32px" color="#f59e0b" />
      <p style="margin-top: 0.5rem; font-size: 0.875rem; color: #6b7280;">
        FolderIcon
      </p>
    </div>
    <div
      style="text-align: center; padding: 1rem; background: white; border-radius: 0.375rem; border: 1px solid #e5e7eb;">
      <GithubIcon size="32px" color="#18181b" />
      <p style="margin-top: 0.5rem; font-size: 0.875rem; color: #6b7280;">
        GithubIcon
      </p>
    </div>
    <div
      style="text-align: center; padding: 1rem; background: white; border-radius: 0.375rem; border: 1px solid #e5e7eb;">
      <GlobeIcon size="32px" color="#06b6d4" />
      <p style="margin-top: 0.5rem; font-size: 0.875rem; color: #6b7280;">
        GlobeIcon
      </p>
    </div>
    <div
      style="text-align: center; padding: 1rem; background: white; border-radius: 0.375rem; border: 1px solid #e5e7eb;">
      <HeartIcon size="32px" color="#ef4444" />
      <p style="margin-top: 0.5rem; font-size: 0.875rem; color: #6b7280;">
        HeartIcon
      </p>
    </div>
    <div
      style="text-align: center; padding: 1rem; background: white; border-radius: 0.375rem; border: 1px solid #e5e7eb;">
      <HomeIcon size="32px" color="#8b5cf6" />
      <p style="margin-top: 0.5rem; font-size: 0.875rem; color: #6b7280;">
        HomeIcon
      </p>
    </div>
    <div
      style="text-align: center; padding: 1rem; background: white; border-radius: 0.375rem; border: 1px solid #e5e7eb;">
      <IPhoneBatteryIcon size="32px" color="#10b981" />
      <p style="margin-top: 0.5rem; font-size: 0.875rem; color: #6b7280;">
        IPhoneBatteryIcon
      </p>
    </div>
    <div
      style="text-align: center; padding: 1rem; background: white; border-radius: 0.375rem; border: 1px solid #e5e7eb;">
      <IPhoneSignalIcon size="32px" color="#3b82f6" />
      <p style="margin-top: 0.5rem; font-size: 0.875rem; color: #6b7280;">
        IPhoneSignalIcon
      </p>
    </div>
    <div
      style="text-align: center; padding: 1rem; background: white; border-radius: 0.375rem; border: 1px solid #e5e7eb;">
      <IPhoneWifiIcon size="32px" color="#8b5cf6" />
      <p style="margin-top: 0.5rem; font-size: 0.875rem; color: #6b7280;">
        IPhoneWifiIcon
      </p>
    </div>
    <div
      style="text-align: center; padding: 1rem; background: white; border-radius: 0.375rem; border: 1px solid #e5e7eb;">
      <InfoCircle size="32px" color="#3b82f6" />
      <p style="margin-top: 0.5rem; font-size: 0.875rem; color: #6b7280;">
        InfoCircle
      </p>
    </div>
    <div
      style="text-align: center; padding: 1rem; background: white; border-radius: 0.375rem; border: 1px solid #e5e7eb;">
      <InfoIcon size="32px" color="#3b82f6" />
      <p style="margin-top: 0.5rem; font-size: 0.875rem; color: #6b7280;">
        InfoIcon
      </p>
    </div>
    <div
      style="text-align: center; padding: 1rem; background: white; border-radius: 0.375rem; border: 1px solid #e5e7eb;">
      <InboxArchive size="32px" color="#f97316" />
      <p style="margin-top: 0.5rem; font-size: 0.875rem; color: #6b7280;">
        InboxArchive
      </p>
    </div>
    <div
      style="text-align: center; padding: 1rem; background: white; border-radius: 0.375rem; border: 1px solid #e5e7eb;">
      <LinkIcon size="32px" color="#06b6d4" />
      <p style="margin-top: 0.5rem; font-size: 0.875rem; color: #6b7280;">
        LinkIcon
      </p>
    </div>
    <div
      style="text-align: center; padding: 1rem; background: white; border-radius: 0.375rem; border: 1px solid #e5e7eb;">
      <LinkedinIcon size="32px" color="#0077b5" />
      <p style="margin-top: 0.5rem; font-size: 0.875rem; color: #6b7280;">
        LinkedinIcon
      </p>
    </div>
    <div
      style="text-align: center; padding: 1rem; background: white; border-radius: 0.375rem; border: 1px solid #e5e7eb;">
      <LogOut size="32px" color="#6b7280" />
      <p style="margin-top: 0.5rem; font-size: 0.875rem; color: #6b7280;">
        LogOut
      </p>
    </div>
    <div
      style="text-align: center; padding: 1rem; background: white; border-radius: 0.375rem; border: 1px solid #e5e7eb;">
      <MailIcon size="32px" color="#8b5cf6" />
      <p style="margin-top: 0.5rem; font-size: 0.875rem; color: #6b7280;">
        MailIcon
      </p>
    </div>
    <div
      style="text-align: center; padding: 1rem; background: white; border-radius: 0.375rem; border: 1px solid #e5e7eb;">
      <MapPinIcon size="32px" color="#ef4444" />
      <p style="margin-top: 0.5rem; font-size: 0.875rem; color: #6b7280;">
        MapPinIcon
      </p>
    </div>
    <div
      style="text-align: center; padding: 1rem; background: white; border-radius: 0.375rem; border: 1px solid #e5e7eb;">
      <MenuIcon size="32px" color="#6b7280" />
      <p style="margin-top: 0.5rem; font-size: 0.875rem; color: #6b7280;">
        MenuIcon
      </p>
    </div>
    <div
      style="text-align: center; padding: 1rem; background: white; border-radius: 0.375rem; border: 1px solid #e5e7eb;">
      <MessageIcon size="32px" color="#06b6d4" />
      <p style="margin-top: 0.5rem; font-size: 0.875rem; color: #6b7280;">
        MessageIcon
      </p>
    </div>
    <div
      style="text-align: center; padding: 1rem; background: white; border-radius: 0.375rem; border: 1px solid #e5e7eb;">
      <NotificationIcon size="32px" color="#f59e0b" />
      <p style="margin-top: 0.5rem; font-size: 0.875rem; color: #6b7280;">
        NotificationIcon
      </p>
    </div>
    <div
      style="text-align: center; padding: 1rem; background: white; border-radius: 0.375rem; border: 1px solid #e5e7eb;">
      <PhoneIcon size="32px" color="#10b981" />
      <p style="margin-top: 0.5rem; font-size: 0.875rem; color: #6b7280;">
        PhoneIcon
      </p>
    </div>
    <div
      style="text-align: center; padding: 1rem; background: white; border-radius: 0.375rem; border: 1px solid #e5e7eb;">
      <RefreshIcon size="32px" color="#10b981" />
      <p style="margin-top: 0.5rem; font-size: 0.875rem; color: #6b7280;">
        RefreshIcon
      </p>
    </div>
    <div
      style="text-align: center; padding: 1rem; background: white; border-radius: 0.375rem; border: 1px solid #e5e7eb;">
      <ReportIcon size="32px" color="#ef4444" />
      <p style="margin-top: 0.5rem; font-size: 0.875rem; color: #6b7280;">
        ReportIcon
      </p>
    </div>
    <div
      style="text-align: center; padding: 1rem; background: white; border-radius: 0.375rem; border: 1px solid #e5e7eb;">
      <SaveIcon size="32px" color="#10b981" />
      <p style="margin-top: 0.5rem; font-size: 0.875rem; color: #6b7280;">
        SaveIcon
      </p>
    </div>
    <div
      style="text-align: center; padding: 1rem; background: white; border-radius: 0.375rem; border: 1px solid #e5e7eb;">
      <SearchIcon size="32px" color="#8b5cf6" />
      <p style="margin-top: 0.5rem; font-size: 0.875rem; color: #6b7280;">
        SearchIcon
      </p>
    </div>
    <div
      style="text-align: center; padding: 1rem; background: white; border-radius: 0.375rem; border: 1px solid #e5e7eb;">
      <SecurityIcon size="32px" color="#f59e0b" />
      <p style="margin-top: 0.5rem; font-size: 0.875rem; color: #6b7280;">
        SecurityIcon
      </p>
    </div>
    <div
      style="text-align: center; padding: 1rem; background: white; border-radius: 0.375rem; border: 1px solid #e5e7eb;">
      <SettingsIcon size="32px" color="#6b7280" />
      <p style="margin-top: 0.5rem; font-size: 0.875rem; color: #6b7280;">
        SettingsIcon
      </p>
    </div>

    <div
      style="text-align: center; padding: 1rem; background: white; border-radius: 0.375rem; border: 1px solid #e5e7eb;">
      <StarIcon size="32px" color="#f59e0b" />
      <p style="margin-top: 0.5rem; font-size: 0.875rem; color: #6b7280;">
        StarIcon
      </p>
    </div>
    <div
      style="text-align: center; padding: 1rem; background: white; border-radius: 0.375rem; border: 1px solid #e5e7eb;">
      <SuccessIcon size="32px" color="#10b981" />
      <p style="margin-top: 0.5rem; font-size: 0.875rem; color: #6b7280;">
        SuccessIcon
      </p>
    </div>
    <div
      style="text-align: center; padding: 1rem; background: white; border-radius: 0.375rem; border: 1px solid #e5e7eb;">
      <SunCloudyIcon size="32px" color="#f59e0b" />
      <p style="margin-top: 0.5rem; font-size: 0.875rem; color: #6b7280;">
        SunCloudyIcon
      </p>
    </div>
    <div
      style="text-align: center; padding: 1rem; background: white; border-radius: 0.375rem; border: 1px solid #e5e7eb;">
      <ToolsIcon size="32px" color="#6b7280" />
      <p style="margin-top: 0.5rem; font-size: 0.875rem; color: #6b7280;">
        ToolsIcon
      </p>
    </div>
    <div
      style="text-align: center; padding: 1rem; background: white; border-radius: 0.375rem; border: 1px solid #e5e7eb;">
      <TwitterIcon size="32px" color="#1da1f2" />
      <p style="margin-top: 0.5rem; font-size: 0.875rem; color: #6b7280;">
        TwitterIcon
      </p>
    </div>
    <div
      style="text-align: center; padding: 1rem; background: white; border-radius: 0.375rem; border: 1px solid #e5e7eb;">
      <UploadIcon size="32px" color="#10b981" />
      <p style="margin-top: 0.5rem; font-size: 0.875rem; color: #6b7280;">
        UploadIcon
      </p>
    </div>
    <div
      style="text-align: center; padding: 1rem; background: white; border-radius: 0.375rem; border: 1px solid #e5e7eb;">
      <UserIcon size="32px" color="#8b5cf6" />
      <p style="margin-top: 0.5rem; font-size: 0.875rem; color: #6b7280;">
        UserIcon
      </p>
    </div>
    <div
      style="text-align: center; padding: 1rem; background: white; border-radius: 0.375rem; border: 1px solid #e5e7eb;">
      <UsersIcon size="32px" color="#8b5cf6" />
      <p style="margin-top: 0.5rem; font-size: 0.875rem; color: #6b7280;">
        UsersIcon
      </p>
    </div>
    <div
      style="text-align: center; padding: 1rem; background: white; border-radius: 0.375rem; border: 1px solid #e5e7eb;">
      <ViewIcon size="32px" color="#06b6d4" />
      <p style="margin-top: 0.5rem; font-size: 0.875rem; color: #6b7280;">
        ViewIcon
      </p>
    </div>
    <div
      style="text-align: center; padding: 1rem; background: white; border-radius: 0.375rem; border: 1px solid #e5e7eb;">
      <WalletIcon size="32px" color="#10b981" />
      <p style="margin-top: 0.5rem; font-size: 0.875rem; color: #6b7280;">
        WalletIcon
      </p>
    </div>
    <div
      style="text-align: center; padding: 1rem; background: white; border-radius: 0.375rem; border: 1px solid #e5e7eb;">
      <WarningIcon size="32px" color="#f59e0b" />
      <p style="margin-top: 0.5rem; font-size: 0.875rem; color: #6b7280;">
        WarningIcon
      </p>
    </div>
    <div
      style="text-align: center; padding: 1rem; background: white; border-radius: 0.375rem; border: 1px solid #e5e7eb;">
      <WechatIcon size="32px" color="#07C160" />
      <p style="margin-top: 0.5rem; font-size: 0.875rem; color: #6b7280;">
        WechatIcon
      </p>
    </div>
    <div
      style="text-align: center; padding: 1rem; background: white; border-radius: 0.375rem; border: 1px solid #e5e7eb;">
      <WebsiteIcon size="32px" color="#06b6d4" />
      <p style="margin-top: 0.5rem; font-size: 0.875rem; color: #6b7280;">
        WebsiteIcon
      </p>
    </div>
    <div
      style="text-align: center; padding: 1rem; background: white; border-radius: 0.375rem; border: 1px solid #e5e7eb;">
      <WhatsappIcon size="32px" color="#25D366" />
      <p style="margin-top: 0.5rem; font-size: 0.875rem; color: #6b7280;">
        WhatsappIcon
      </p>
    </div>
    <div
      style="text-align: center; padding: 1rem; background: white; border-radius: 0.375rem; border: 1px solid #e5e7eb;">
      <XCircle size="32px" color="#ef4444" />
      <p style="margin-top: 0.5rem; font-size: 0.875rem; color: #6b7280;">
        XCircle
      </p>
    </div>
  </div>
</div>
<script setup lang="ts">
import {
	AlertTriangleIcon,
	AppStoreIcon,
	CalendarIcon,
	ChartIcon,
	CheckCircleIcon,
	CheckIcon,
	ChevronDownIcon,
	ChevronLeftIcon,
	ChevronRightIcon,
	ClipboardIcon,
	CloseIcon,
	CodeIcon,
	DashboardIcon,
	DeleteIcon,
	DocumentIcon,
	DownloadIcon,
	EditIcon,
	ErrorIcon,
	FacebookIcon,
	FolderIcon,
	GithubIcon,
	GlobeIcon,
	HeartIcon,
	HomeIcon,
	InboxArchiveIcon,
	InfoCircleIcon,
	InfoIcon,
	IPhoneBatteryIcon,
	IPhoneSignalIcon,
	IPhoneWifiIcon,
	LinkedinIcon,
	LinkIcon,
	LogOut,
	MailIcon,
	MapPinIcon,
	MenuIcon,
	MessageIcon,
	NotificationIcon,
	PhoneIcon,
	RefreshIcon,
	ReportIcon,
	SaveIcon,
	SearchIcon,
	SecurityIcon,
	SettingsIcon,
	StarIcon,
	SuccessIcon,
	SunCloudyIcon,
	ToolsIcon,
	TwitterIcon,
	UploadIcon,
	UserIcon,
	UsersIcon,
	ViewIcon,
	WalletIcon,
	WarningIcon,
	WebsiteIcon,
	WechatIcon,
	WhatsappIcon,
	XCircleIcon,
} from "@coffic/cosy-ui/vue";

/**
 * @component IconShowcase
 * @description Vue 图标展示组件,展示各种图标的使用方法
 */

// 图标配置数组
const icons = [
	{ component: AlertTriangleIcon, name: "AlertTriangle", color: "#f59e0b" },
	{ component: AppStoreIcon, name: "AppStore", color: "#8b5cf6" },
	{ component: CalendarIcon, name: "Calendar", color: "#3b82f6" },
	{ component: ChartIcon, name: "Chart", color: "#06b6d4" },
	{ component: CheckIcon, name: "Check", color: "#10b981" },
	{ component: CheckCircleIcon, name: "CheckCircle", color: "#10b981" },
	{ component: ChevronDownIcon, name: "ChevronDown", color: "#6b7280" },
	{ component: ChevronLeftIcon, name: "ChevronLeft", color: "#6b7280" },
	{ component: ChevronRightIcon, name: "ChevronRight", color: "#6b7280" },
	{ component: ClipboardIcon, name: "Clipboard", color: "#8b5cf6" },
	{ component: CloseIcon, name: "Close", color: "#ef4444" },
	{ component: CodeIcon, name: "Code", color: "#8b5cf6" },
	{ component: DashboardIcon, name: "Dashboard", color: "#3b82f6" },
	{ component: DeleteIcon, name: "Delete", color: "#ef4444" },
	{ component: DocumentIcon, name: "Document", color: "#8b5cf6" },
	{ component: DownloadIcon, name: "Download", color: "#10b981" },
	{ component: EditIcon, name: "Edit", color: "#3b82f6" },
	{ component: ErrorIcon, name: "Error", color: "#ef4444" },
	{ component: FacebookIcon, name: "Facebook", color: "#1877f2" },
	{ component: FolderIcon, name: "Folder", color: "#f59e0b" },
	{ component: GithubIcon, name: "Github", color: "#333" },
	{ component: GlobeIcon, name: "Globe", color: "#06b6d4" },
	{ component: HeartIcon, name: "Heart", color: "#ef4444" },
	{ component: HomeIcon, name: "Home", color: "#8b5cf6" },
	{ component: IPhoneBatteryIcon, name: "IPhoneBattery", color: "#10b981" },
	{ component: IPhoneSignalIcon, name: "IPhoneSignal", color: "#3b82f6" },
	{ component: IPhoneWifiIcon, name: "IPhoneWifi", color: "#8b5cf6" },
	{ component: InboxArchiveIcon, name: "InboxArchive", color: "#f97316" },
	{ component: InfoCircleIcon, name: "InfoCircle", color: "#3b82f6" },
	{ component: InfoIcon, name: "Info", color: "#3b82f6" },
	{ component: LinkIcon, name: "Link", color: "#06b6d4" },
	{ component: LinkedinIcon, name: "Linkedin", color: "#0077b5" },
	{ component: LogOut, name: "LogOut", color: "#6b7280" },
	{ component: MailIcon, name: "Mail", color: "#8b5cf6" },
	{ component: MapPinIcon, name: "MapPin", color: "#ef4444" },
	{ component: MenuIcon, name: "Menu", color: "#6b7280" },
	{ component: MessageIcon, name: "Message", color: "#06b6d4" },
	{ component: NotificationIcon, name: "Notification", color: "#f59e0b" },
	{ component: PhoneIcon, name: "Phone", color: "#10b981" },
	{ component: RefreshIcon, name: "Refresh", color: "#10b981" },
	{ component: ReportIcon, name: "Report", color: "#ef4444" },
	{ component: SaveIcon, name: "Save", color: "#10b981" },
	{ component: SearchIcon, name: "Search", color: "#8b5cf6" },
	{ component: SecurityIcon, name: "Security", color: "#f59e0b" },
	{ component: SettingsIcon, name: "Settings", color: "#6b7280" },
	{ component: StarIcon, name: "Star", color: "#f59e0b" },
	{ component: SuccessIcon, name: "Success", color: "#10b981" },
	{ component: SunCloudyIcon, name: "SunCloudy", color: "#f59e0b" },
	{ component: ToolsIcon, name: "Tools", color: "#6b7280" },
	{ component: TwitterIcon, name: "Twitter", color: "#1da1f2" },
	{ component: UploadIcon, name: "Upload", color: "#10b981" },
	{ component: UserIcon, name: "User", color: "#8b5cf6" },
	{ component: UsersIcon, name: "Users", color: "#8b5cf6" },
	{ component: ViewIcon, name: "View", color: "#06b6d4" },
	{ component: WalletIcon, name: "Wallet", color: "#10b981" },
	{ component: WarningIcon, name: "Warning", color: "#f59e0b" },
	{ component: WechatIcon, name: "Wechat", color: "#07C160" },
	{ component: WebsiteIcon, name: "Website", color: "#06b6d4" },
	{ component: WhatsappIcon, name: "Whatsapp", color: "#25D366" },
	{ component: XCircleIcon, name: "XCircle", color: "#ef4444" },
];
</script>

<template>
    <div style="padding: 2rem; background-color: #f8f9fa; border-radius: 0.5rem;">
        <div style="display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 1rem;">
            <div v-for="icon in icons" :key="icon.name"
                style="text-align: center; padding: 1rem; background: white; border-radius: 0.375rem; border: 1px solid #e5e7eb;">
                <component :is="icon.component" size="32px" :color="icon.color" />
                <p style="margin-top: 0.5rem; font-size: 0.875rem; color: #6b7280;">{{ icon.name }}</p>
            </div>
        </div>
    </div>
</template>

搜索