本页面提供了在 Web、Android 和 iOS 项目中使用 Material Symbols 的全面实现指南。Material Symbols 是 Google 目前基于可变字体技术构建的图标系统,通过可调参数提供广泛的自定义选项。
有关 Material Symbols 可变字体背后技术的信息,请参阅 可变字体技术。要了解可用的不同样式变体,请参阅 样式变体。
Material Symbols 是 Google 取代经典 Material Icons 的当前图标系统。Material Symbols 基于可变字体技术构建,为您的项目实现图标提供了更灵活、更高效的方式。
Material Symbols 的主要特点
来源: README.md50-74
来源: README.md50-74
根据您的平台和具体需求,有多种方法可以将 Material Symbols 集成到您的项目中。
来源: README.md120-135
在 Web 项目中实现 Material Symbols 的推荐方法是通过 Google Fonts CDN。
您可以通过更改字体系列来选择三种不同的字体样式
material-symbols-outlinedmaterial-symbols-roundedmaterial-symbols-sharp来源: README.md120-135
如果您需要自托管字体文件,可以从存储库下载它们并将其包含在项目中
/variablefont 目录下载字体文件@font-face 将它们包含在您的项目中来源: README.md120-135 variablefont/MaterialSymbolsOutlined[FILL,GRAD,opsz,wght].codepoints:1-1100
在 Android 项目中实现 Material Symbols
res/font/ 目录中XML 用法示例
对于以编程方式使用,您可以从 codepoints 文件中通过其 Unicode codepoint 来引用图标。
来源: variablefont/MaterialSymbolsOutlined[FILL,GRAD,opsz,wght].codepoints:1-1100
在 iOS 项目中实现 Material Symbols
Swift 实现示例
来源: variablefont/MaterialSymbolsOutlined[FILL,GRAD,opsz,wght].codepoints:1-1100
Material Symbols 的主要优势之一是能够通过四种可变字体轴来自定义图标。
来源: README.md60-64
在 Web 项目中,您可以使用 CSS font-variation-settings 来自定义 Material Symbols
| 轴 | 范围 | 默认 | 描述 |
|---|---|---|---|
| FILL(填充) | 0-1 | 0 | 0 为描边,1 为填充 |
| WGHT(粗细) | 100-700 | 400 | 从细(100)到粗(700) |
| GRAD(字重) | -25 到 200 | 0 | 控制精细的视觉细节 |
| OPSZ(光学尺寸) | 20-48 | 24 | 光学尺寸优化 |
不同变体的 CSS 示例
来源: README.md60-64
Material Symbols 的可变字体技术支持使用 CSS 过渡实现流畅的图标动画
这会在悬停时创建从描边、正常粗细图标到填充、粗体图标的平滑过渡。
来源: README.md57-58
Material Symbols 包含数千个图标,每个图标都有唯一的名称和 Unicode codepoint。您可以在 Google Fonts 网站上浏览这些图标,或在 codepoints 文件中参考。
来源: README.md5 variablefont/MaterialSymbolsOutlined[FILL,GRAD,opsz,wght].codepoints:1-1100, variablefont/MaterialSymbolsRounded[FILL,GRAD,opsz,wght].codepoints:1-1100, variablefont/MaterialSymbolsSharp[FILL,GRAD,opsz,wght].codepoints:1-1100
Material Symbols 中的每个图标都有一个名称和相应的 Unicode codepoint。您可以在存储库的 .codepoints 文件中找到它们
icon_name e123
其中 icon_name 是图标的名称(用于 CSS 类和 HTML),而 e123 是 Unicode codepoint(用于原生实现)。
例如,从 codepoints 文件
search e8b6
home e9b2
settings f013
来源: variablefont/MaterialSymbolsOutlined[FILL,GRAD,opsz,wght].codepoints:1-1100
在整个应用程序中保持图标使用的一致性
一致性类的示例
来源: README.md50-74
常见问题及解决方案
| 问题 | 解决方案 |
|---|---|
| 图标未显示 | 验证字体是否已正确加载,以及类名是否正确 |
| 图标显示为方块 | 检查图标名称是否正确以及字体是否已加载 |
| 图标外观错误 | 确保您的 font-variation-settings 已正确指定 |
| 大小不一致 | 使用一致的 font-size 设置,并考虑 opsz 轴 |
| 性能问题 | 使用 WOFF2 格式,并且仅加载所需的图标样式 |
来源: README.md50-74 README.md120-135
Material Symbols 与所有 Material Design Icons 一样,均根据 Apache License Version 2.0 提供。您可以在您的产品中自由使用它们,但在应用程序的关于屏幕中注明来源将不胜感激(但非必需)。