菜单

码点映射

相关源文件

字形码映射是 Material Design Icons 仓库中将人类可读的图标名称与其 Unicode 字形码值连接起来的系统。本文档解释了图标名称如何映射到特定的 Unicode 字形码,使开发者能够在应用程序中通过名称引用图标,同时确保跨平台的渲染一致性。

有关图标样式和变体的信息,请参阅Material Icons 与 Material Symbols。有关字体文件结构和格式的详细信息,请参阅字体文件

字形码文件格式

该仓库包含多个 .codepoints 文件,每个文件定义了图标名称与其分配的 Unicode 字形码之间的映射。这些文件遵循一致的格式

icon_name hexadecimal_codepoint

每行包含

  • 一个图标名称(例如,homeadd_circle
  • 一个空格分隔符
  • 一个十六进制 Unicode 字形码(例如,e88af1d8

Material Symbols 字形码文件示例

home e88a
add_circle e147
face f008
account_circle f20b

来源:variablefont/MaterialSymbolsRounded[FILL,GRAD,opsz,wght].codepoints

字形码文件组织

该仓库为每个字体变体维护单独的字形码文件

Material Symbols(当前)

位于 variablefont 目录中

  • MaterialSymbolsRounded[FILL,GRAD,opsz,wght].codepoints
  • MaterialSymbolsOutlined[FILL,GRAD,opsz,wght].codepoints
  • MaterialSymbolsSharp[FILL,GRAD,opsz,wght].codepoints

Material Icons(旧版)

位于 font 目录中

  • MaterialIcons-Regular.codepoints
  • MaterialIconsRound-Regular.codepoints
  • MaterialIconsOutlined-Regular.codepoints
  • MaterialIconsSharp-Regular.codepoints

来源:variablefont/MaterialSymbolsRounded[FILL,GRAD,opsz,wght].codepointsfont/MaterialIcons-Regular.codepoints

Unicode 范围和分配

Unicode 私有使用区

Material Design Icons 使用 Unicode 私有使用区 (PUA) 作为其字形码

  • 范围从 e000f8ff
  • 此范围在 Unicode 中保留用于自定义字符分配
  • 使用 PUA 可确保与标准 Unicode 字符不发生冲突

字形码一致性

同一个图标在不同的样式变体中保持一致的字形码

  • 例如,“home”在 Outlined、Rounded 和 Sharp 变体中使用相同的字形码(e88a
  • 这种一致性允许在不更改引用的情况下轻松切换样式

图标命名约定

字形码文件中的图标名称遵循特定的模式

  • 全小写字母
  • 单词之间用下划线分隔(例如,add_circlearrow_forward
  • 数字直接包含(例如,10k3d_rotation
  • 允许使用某些特殊字符(例如,6_ft_apart1x_mobiledata_badge

来源:variablefont/MaterialSymbolsRounded[FILL,GRAD,opsz,wght].codepoints:1-20

字形码映射流程

图标名称到渲染的字形

下图说明了字形码映射如何连接图标名称及其视觉表示

来源:variablefont/MaterialSymbolsRounded[FILL,GRAD,opsz,wght].codepointsfont/MaterialIcons-Regular.codepoints

在开发中使用字形码

HTML 实现方法

CSS 实现

可变字体控件(仅限 Material Symbols)

对于 Material Symbols,其他 CSS 属性控制可变字体轴

图标集之间的字形码差异

Material Icons 和 Material Symbols 都使用相同的底层字形码系统,但存在一些差异

方面Material IconsMaterial Symbols
基础字体技术固定字体可变字体
字形码范围主要为 e000-e999扩展到包含较新的 f000-f8ff
图标覆盖约 1,000 个图标约 2,500 个图标
更新状态旧版(未更新)活跃(接收新图标)

来源:font/MaterialIcons-Regular.codepoints variablefont/MaterialSymbolsRounded[FILL,GRAD,opsz,wght].codepoints

在仓库架构中的作用

图标系统中的字形码映射

下图说明了字形码映射如何集成到 Material Design Icons 的整体架构中

来源:variablefont/MaterialSymbolsRounded[FILL,GRAD,opsz,wght].codepointsfont/MaterialIcons-Regular.codepoints

技术实现细节

字体文件中的字形码到字形映射

字体文件使用标准的 OpenType 表将字形码连接到字形

来源:variablefont/MaterialSymbolsRounded[FILL,GRAD,opsz,wght].codepoints

最佳实践

在使用 Material Design 图标字形码时

  1. 尽可能使用基于名称的引用,以提高代码的可读性
  2. 保持字体引用更新以访问最新的图标
  3. 对于 Material Symbols,请指定适当的可变字体参数值
  4. 在单个项目中选择一致的样式
  5. 考虑可访问性,提供适当的文本替代

常见的字形码模式

字形码分配遵循一些通用模式

  • 基础图标通常使用 e000-e999 范围
  • 较新的图标通常使用更高的范围(f000-f8ff
  • 相关的图标通常具有连续或相邻的字形码
  • 与文件相关的图标(file_copyfile_download 等)共享相似的字形码范围
  • 同一图标的不同样式变体(填充、轮廓等)保持相同的字形码

来源:variablefont/MaterialSymbolsRounded[FILL,GRAD,opsz,wght].codepoints:400-500