菜单

图标系统

相关源文件

本文档介绍了 Semantic UI 中使用的图标系统。它涵盖了基于字体的图标实现、如何使用图标、可用的变体以及主题化选项。有关其他 UI 元素的信息,请参阅 元素

概述

Semantic UI 的图标系统采用基于字体的方案,其中图标被实现为字体字符而不是图像文件。该系统基于 Font Awesome 5,并具有自定义的命名约定和附加功能,以保持与 Semantic UI 设计原则的一致性。

来源

字体实现

图标系统依赖于包含所有图标字形的自定义字体。当将图标类应用于元素时,CSS 使用带有特定 Unicode 字符的 content 属性,从字体中显示相应的图标。

核心图标实现定义在 icon.less 文件中。

来源

基本用法

要使用 Semantic UI 中的图标,您需要将 icon 类与特定图标名称一起添加到 <i> 元素中。

该系统支持数百个图标,所有图标都定义在 icon.overrides 文件中,其中每个图标都映射到一个特定的 Unicode 字符。

来源

图标状态

Semantic UI 中的图标支持各种状态来指示不同的条件或交互。

状态管理描述
悬停hover鼠标悬停时图标高亮显示。
激活active图标突出显示,表示处于活动状态。
Emphasizedemphasized图标突出显示(类似于 active)。
已禁用disabled图标显示为灰色,表示已禁用。

示例

来源

图标变体

Semantic UI 提供了多种图标变体来定制其外观。

尺寸变体

图标有各种尺寸选项。

大小描述
Minimini最小的图标尺寸。
Tinytiny非常小的图标。
小型small小的图标。
(Default)-标准图标尺寸。
大型large大的图标。
Bigbig更大的图标。
Hugehuge非常大的图标。
Massivemassive最大的图标尺寸。

示例

来源

表单变体

图标可以以各种方式进行样式设置。

变体描述
Fittedfitted移除图标周围的额外边距。
链接link使图标看起来可点击(带悬停状态)。
圆形circular将图标放置在圆形容器中。
Borderedbordered将图标放置在带边框的正方形中。
Flippedflippedhorizontally flipped水平翻转图标。
Vertically Flippedvertically flipped垂直翻转图标。
Rotatedrotatedclockwise rotated顺时针旋转图标 90 度。
Counter-clockwise Rotatedcounterclockwise rotated逆时针旋转图标 90 度。
Inverted(反色)inverted将图标颜色更改为白色(适用于深色背景)。

示例

来源

颜色变体

图标可以使用颜色类进行着色。

颜色描述
红光red红色图标。
Orangeorange橙色图标。
Yellowyellow黄色图标。
Oliveolive橄榄绿色图标。
绿光green绿色图标。
Tealteal青色图标。
蓝光blue蓝色图标。
Violetviolet紫罗兰色图标。
Purplepurple紫色图标。
Pinkpink粉色图标。
Brownbrown棕色图标。
Greygrey灰色图标。
Blackblack黑色图标。

示例

来源

加载图标

Semantic UI 为图标提供加载动画。

加载状态会为图标添加连续的旋转动画。

来源

图标组合

图标可以组合在一起创建更复杂的图标。

示例

这会创建一个带有角落里一个小加号图标的文件图标。

来源

可用图标

Semantic UI 提供了数百个图标,均在 icon.overrides 文件中列出。图标分类为:

  1. 标准 UI 图标(界面元素、操作等)
  2. 品牌图标(公司标志、产品图标)

命名约定

Semantic UI 使用特定于图标的命名约定,这与 Font Awesome 略有不同。

  1. 类名是分开的(例如,i.icon.circle 而不是 i.icon.circle-o)。
  2. 缩写被替换为完整的单词(例如,ellipsis horizontal 而不是 ellipsis-h)。
  3. ASCII 顺序被保留,以便于维护。
  4. 只有一种样式的图标不需要额外的描述符。

来源

主题化

Semantic UI 中的图标系统可以通过主题化系统完全定制。

可以定制的主要变量包括:

可变目的默认
@fontName图标字体的名称。'icons'
@src字体源路径。字体文件的 URL 路径。
@opacity默认图标不透明度。1
@width图标宽度。1.18em
@height图标高度。1em
@distanceFromText与文本的距离(边距)。0.25rem
尺寸变量不同变体的尺寸。值为 0.4em 到 8em。

来源

与其他组件的集成

图标系统设计用于与其他 Semantic UI 组件无缝协作。

  • 图标可以用于按钮:<button class="ui button"><i class="save icon"></i> Save</button>
  • 图标可以用于下拉菜单、菜单和其他组件。
  • 加载状态可用于指示各种组件中的加载状态。

实现细节

在底层,图标系统使用:

  1. 各种格式的字体文件,以实现跨浏览器兼容性。
    • WOFF2、WOFF、TTF、EOT 和 SVG 格式。
  2. CSS 伪元素(:before)来插入图标内容。
  3. CSS 变换用于翻转、旋转等。
  4. CSS 动画用于加载图标。

该系统定义在三个关键文件中:

  1. icon.less - 图标的核心样式。
  2. icon.variables - 可定制的变量。
  3. icon.overrides - 图标定义和覆盖。

来源