基础 · Icon
图标
语义化的矢量图形。

图标列表

默认的图标集 @douyinfe/semi-icons 包含面性、线性、AI 三套图标。面性图标、线性图标,以及 AI 图标中的单色图标默认不带颜色,可通过 css color 属性更改颜色。 AI 图标中的双色,多色图标有默认颜色,可以通过 fill 更改颜色。
AI 图标自 v2.86.0 提供。
@douyinfe/semi-icons-lab 为彩色图标集,需单独安装,不可改色, lab 图标集于 v2.48 后提供
@douyinfe/semi-icons icon list:
IconAbsoluteStroked IconActivity IconAlarm IconAlarmStroked IconAlertCircle IconAlertTriangle IconAlignBottom IconAlignCenter IconAlignCenterVertical IconAlignHCenterStroked IconAlignHLeftStroked IconAlignHRightStroked IconAlignJustify IconAlignLeft IconAlignRight IconAlignTop IconAlignVBotStroked IconAlignVBottomStroked IconAlignVCenterStroked IconAlignVTopStroked IconApartment IconAppCenter IconApps IconArchive IconArrowDown IconArrowDownLeft IconArrowDownRight IconArrowLeft IconArrowRight IconArrowUp IconArrowUpLeft IconArrowUpRight IconArticle IconAscend IconAt IconBackTop IconBackward IconBarChartHStroked IconBarChartVStroked IconBeaker IconBell IconBellStroked IconBold IconBolt IconBook IconBookH5Stroked IconBookOpenStroked IconBookStroked IconBookmark IconBookmarkAddStroked IconBookmarkDeleteStroked IconBottomCenterStroked IconBottomLeftStroked IconBottomRightStroked IconBox IconBrackets IconBranch IconBriefStroked IconBriefcase IconBriefcaseStroked IconBulb IconButtonStroked IconBytedanceLogo IconCalendar IconCalendarClock IconCalendarClockStroked IconCalendarStroked IconCamera IconCameraStroked IconCandlestickChartStroked IconCaretdown IconCaretup IconCarouselStroked IconCart IconCartStroked IconCaseSensitive IconCenterLeftStroked IconCenterRightStroked IconChainStroked IconCheckChoiceStroked IconCheckCircleStroked IconCheckList IconCheckboxIndeterminate IconCheckboxTick IconChecklistStroked IconChevronDown IconChevronDownStroked IconChevronLeft IconChevronRight IconChevronRightStroked IconChevronUp IconChevronUpDown IconClear IconClock IconClockStroked IconClose IconCloud IconCloudStroked IconCloudUploadStroked IconCode IconCodeStroked IconCoinMoney IconCoinMoneyStroked IconColorPalette IconColumnsStroked IconCommand IconComment IconCommentStroked IconComponent IconComponentPlaceholderStroked IconComponentStroked IconConfigStroked IconConnectionPoint1 IconConnectionPoint2 IconContrast IconCopy IconCopyAdd IconCopyStroked IconCornerRadiusStroked IconCreditCard IconCreditCardStroked IconCrop IconCrossCircleStroked IconCrossStroked IconCrown IconCrownStroked IconCustomerSupport IconCustomerSupportStroked IconCustomize IconDelete IconDeleteStroked IconDescend IconDescend2 IconDesktop IconDisc IconDislikeThumb IconDivide IconDongchediLogo IconDoubleChevronLeft IconDoubleChevronRight IconDownCircle IconDownCircleStroked IconDownload IconDownloadStroked IconDuration IconEdit IconEdit2 IconEdit2Stroked IconEditStroked IconElementStroked IconEmoji IconExit IconExpand IconExport IconExternalOpen IconExternalOpenStroked IconEyeClosed IconEyeClosedSolid IconEyeClosedSolidStroked IconEyeClosedStroked IconEyeOpened IconEyeOpenedStroked IconEyedropper IconFacebook IconFaceuLogo IconFastForward IconFastFoward IconFavoriteList IconFeishuLogo IconFemale IconFigma IconFile IconFillStroked IconFilledArrowDown IconFilledArrowUp IconFilpVertical IconFilter IconFilterStroked IconFingerLeftStroked IconFixedStroked IconFlag IconFlagStroked IconFlipHorizontal IconFlowChartStroked IconFolder IconFolderOpen IconFolderOpenStroked IconFolderStroked IconFollowStroked IconFont IconFontColor IconForward IconForwardStroked IconFullScreenStroked IconGallery IconGift IconGiftStroked IconGit IconGithubLogo IconGitlabLogo IconGlobe IconGlobeStroke IconGlobeStrokeStroked IconGlobeStroked IconGridRectangle IconGridSquare IconGridStroked IconGridView IconGridView1 IconH1 IconH2 IconH3 IconH4 IconH5 IconH6 IconH7 IconH8 IconH9 IconHandle IconHash IconHeartStroked IconHelm IconHelpCircle IconHelpCircleStroked IconHistogram IconHistory IconHn IconHome IconHomeStroked IconHorn IconHornStroked IconHourglass IconHourglassStroked IconIdCard IconIdCardStroked IconIdentity IconImage IconImageStroked IconImport IconInbox IconIndenpentCornersStroked IconIndentLeft IconIndentRight IconIndependentCornersStroked IconInfoCircle IconInherit IconInheritStroked IconInnerSectionStroked IconInstagram IconInteractiveStroked IconInviteStroked IconIssueStroked IconItalic IconJianying IconKanban IconKey IconKeyStroked IconLanguage IconLayers IconLeftCircle IconLeftCircleStroked IconLightningStroked IconLikeHeart IconLikeThumb IconLineChartStroked IconLineHeight IconLink IconList IconListView IconLive IconLoading IconLock IconLockStroked IconLoopTextStroked IconMail IconMailStroked IconMailStroked1 IconMale IconMapPin IconMapPinStroked IconMarginLeftStroked IconMarginStroked IconMark IconMaximize IconMember IconMenu IconMicrophone IconMicrophoneOff IconMicrophoneOffStroked IconMicrophoneStroked IconMiniPlayer IconMinimize IconMinus IconMinusCircle IconMinusCircleStroked IconMinusStroked IconModalStroked IconMoneyExchangeStroked IconMonitorStroked IconMoon IconMoonStroked IconMore IconMoreStroked IconMusic IconMusicNoteStroked IconMute IconMuteStroked IconNineGridStroked IconNoteMoney IconNoteMoneyStroked IconOption IconOrderedList IconOrderedListStroked IconPaperclip IconPaperclipStroked IconPause IconPercentage IconPhone IconPhoneStroke IconPhoneStroked IconPieChart2Stroked IconPieChartStroked IconPiechartH5Stroked IconPipixiaLogo IconPlay IconPlayCircle IconPlus IconPlusCircle IconPlusCircleStroked IconPlusStroked IconPriceTag IconPrint IconPrize IconPrizeStroked IconPulse IconPuzzle IconQingyan IconQrCode IconQuit IconQuote IconRadio IconRankingCardStroked IconRealSize IconRealSizeStroked IconRedo IconRedoStroked IconRefresh IconRefresh2 IconRegExp IconReply IconReplyStroked IconResso IconRestart IconRingChartStroked IconRotate IconRotationStroked IconRoute IconRowsStroked IconSafe IconSafeStroked IconSave IconSaveStroked IconScan IconScissors IconScissorsStroked IconSearch IconSearchStroked IconSectionStroked IconSemiLogo IconSend IconSendMsgStroked IconSendStroked IconServer IconServerStroked IconSetting IconSettingStroked IconShare IconShareMoneyStroked IconShareStroked IconShield IconShieldStroked IconShift IconShoppingBag IconShoppingBagStroked IconShrink IconShrinkScreenStroked IconSidebar IconSignal IconSimilarity IconSmallTriangleDown IconSmallTriangleLeft IconSmallTriangleRight IconSmallTriangleTop IconSmartphoneCheckStroked IconSmartphoneStroked IconSong IconSonicStroked IconSort IconSortStroked IconSourceControl IconSpin IconStackBarChartStroked IconStar IconStarStroked IconStop IconStopwatchStroked IconStoryStroked IconStrikeThrough IconSun IconSunStroked IconSync IconTabArrowStroked IconTabsStroked IconTaskMoneyStroked IconTemplate IconTemplateStroked IconTerminal IconTestScore IconTestScoreStroked IconText IconTextRectangle IconTextStroked IconThumbUpStroked IconTick IconTickCircle IconTicketCode IconTicketCodeExchangeStroked IconTicketCodeStroked IconTiktokLogo IconTop IconTopCenterStroked IconTopLeftStroked IconTopRightStroked IconTopbuzzLogo IconToutiaoLogo IconTransparentStroked IconTreeTriangleDown IconTreeTriangleRight IconTriangleArrow IconTriangleArrowVertical IconTriangleDown IconTriangleUp IconTrueFalseStroked IconTvCheckedStroked IconTwitter IconTypograph IconUnChainStroked IconUnderline IconUndo IconUnlink IconUnlock IconUnlockStroked IconUpload IconUploadError IconUser IconUserAdd IconUserCardPhone IconUserCardVideo IconUserCardVideoStroked IconUserCircle IconUserCircleStroked IconUserGroup IconUserList IconUserListStroked IconUserSetting IconUserStroked IconVennChartStroked IconVerify IconVersionStroked IconVideo IconVideoDouyinStroked IconVideoListStroked IconVideoStroked IconVideoUrlStroked IconVigoLogo IconVolume1 IconVolume1Stroked IconVolume2 IconVolume2Stroked IconVolumnSilent IconVolumeSilentStroked IconVoteStroked IconVoteVideoStroked IconWeibo IconWholeWord IconWifi IconWindowAdaptionStroked IconWrench IconWrenchStroked IconXiguaLogo IconYoutube IconAIBellLevel1 IconAIBellLevel2 IconAIBellLevel3 IconAIEditLevel1 IconAIEditLevel2 IconAIEditLevel3 IconAIFileLevel1 IconAIFileLevel2 IconAIFileLevel3 IconAIFiledLevel1 IconAIFiledLevel2 IconAIFiledLevel3 IconAIImageLevel1 IconAIImageLevel2 IconAIImageLevel3 IconAISearchLevel1 IconAISearchLevel2 IconAISearchLevel3 IconAIStrokeLevel1 IconAIStrokeLevel2 IconAIStrokeLevel3 IconAIWandLevel1 IconAIWandLevel2 IconAIWandLevel3 IconAILoading
@douyinfe/semi-icons-lab icon list:
IconAccessibility IconAnchor IconAutocomplete IconAvatar IconBackTop IconBadge IconBadgeStar IconBanner IconBreadcrumb IconButton IconCalendar IconCard IconCarousel IconCascader IconChangelog IconChart IconChat IconCheckbox IconCodeHighlight IconCollapse IconCollapsible IconColorPlatte IconColorPlatteNew IconConfig IconDarkMode IconDatePicker IconDescriptions IconDivider IconDropdown IconEmpty IconFaq IconForm IconGettingStarted IconGrid IconHeart IconHighlight IconImage IconInput IconInputNumber IconIntro IconJsonViewer IconLayout IconList IconLocaleProvider IconLottie IconMarkdown IconModal IconNavigation IconNotification IconOverflow IconPagination IconPincode IconPopconfirm IconPopover IconProgress IconRadio IconRating IconScrollList IconSelect IconSideSheet IconSkeleton IconSlider IconSpace IconSpin IconSteps IconSwitch IconTable IconTabs IconTag IconTagInput IconTimePicker IconTimeline IconToast IconToken IconTooltip IconTransfer IconTree IconTreeSelect IconTypography IconUpload IconVersionOne IconVersionTwo IconWebcomponents IconWheelChair
Accessibility  
Alert  
Arrow  
Basic  
Brands  
Building  
Business  
Code  
Communication  
Device  
Files&Folder  
Interface  
Layout  
Magic Customized  
Music  
Objects  
Photo&Video  
Time  
User  
Writing  

彩色图标

Common  

代码演示

如何引入

基础使用

@douyinfe/semi-icons包中引入图标

旋转

@douyinfe/semi-icons包中引入图标,自带尺寸、旋转、spin功能

尺寸

可以改变font-size来更改图标大小
Icon组件封装了size属性,可以更方便地定义图标尺寸,支持 extra-small (8x8),small (12x12), default (16x16), large (20x20), extra-large (24x24),当size指定为inherit时,图标大小继承当前上下文字体大小

颜色

单色图标会自动继承外部容器 CSS 的 color 属性 你还可以通过给 Icon 设置 style props 来修改图标的颜色。

双色图标

双色图标可以通过 fill 属性设置颜色,支持 string 以及 string[]。

多色按钮

多色图标,当前的多色按钮可传入四个颜色。可以通过 fill 属性设置颜色,支持 string 以及 string[]。

自定义图标

可以使用自定义图标传入Icon组件。Icon组件支持 size、rotate、spin 等属性。

使用svgr将svg文件转成ReactComponent

如果 Semi 提供的图标不足以满足业务需求,你也可以通过@svgr/webpack引入自定义图标,并以React组件形式使用

API参考

Icon

属性说明类型默认值
className类名string
fill双色,多色图标的填充颜色string | string[]
onClick单击图标的回调事件(e: Event) => void
onMouseDown鼠标按钮按下的回调事件 >=v1.21(e: Event) => void
onMouseEnter进入图标的回调事件(e: Event) => void
onMouseLeave离开图标的回调事件(e: Event) => void
onMouseMove移动鼠标的回调事件 >=v1.21(e: Event) => void
onMouseUp鼠标按钮抬起的回调事件 >=v1.21(e: Event) => void
rotate旋转度数number
size尺寸,支持inheritextra-smallsmalldefaultlargeextra-largestringdefault
spin旋转动画boolean
style图标样式CSSProperties
svg图标内容ReactNode

Accessibility

ARIA

  • Icon 组件 role 为 img,它的 aria-label 默认为组件的文件名。例如 IconHome 的 aria-label 为 home,如果你有更好的语义化名字,可以通过 aria-label 传入。
  • Icon 内部的 svg 元素为装饰元素,默认设置了 aria-hidden 以不被屏幕阅读器阅读