UI组件后端【免费下载链接】dicebearDiceBear is an avatar library for designers and developers. 项目地址https://gitcode.com/gh_mirrors/di/dicebear点击查看免费下载Icons 是 DiceBear 中的一个极简头像风格在每个头像上放置一个 Bootstrap Icons 图形置于着色背景之上见 风格主页。本文围绕该风格的presets预设展开——DiceBear 官方为它预置了 9 组现成的渲染选项集合从低饱和灰调到高饱和电光色、从单一底色到双色渐变一应俱全。读完本文你将掌握每个预设的完整参数含义、如何把预设直接复制进自己的代码或 HTTP API 请求、如何通过?preset链接在 Playground 中继续微调以及预设未锁定的选项随 seed 变化、因此每个预设仍能产生大量不同头像的底层计数原理。一、什么是 Icons 预设在 DiceBear 的文档体系中一个 preset预设就是一组普通的渲染选项render options。它不是独立的数据格式也不依赖某个特定语言的运行时——正如 presets.ts 顶部注释所说明的A preset is nothing but a bag of regular render options, so it works in every library and as HTTP-API query parameters without the definition format or any of the seven cores knowing that presets exist.也就是说预设只是一堆普通选项因此它可以在 JavaScript、PHP、Go、Rust、Python 等任何语言的 DiceBear 核心库中直接使用也可以原样作为 HTTP API 的查询参数——预设系统本身不需要被任何一个核心实现感知。每个预设的数据结构由StylePreset类型定义presets.ts包含 5 个字段字段含义id稳定的 kebab-case 标识符用于?presetPlayground 链接name预设的展示名称summary一行摘要显示在头像旁边description较长的设计理由说明卡片展开时展示options渲染选项键值对即预设真正生效的部分Icons 风格的预设数据存放在 apps/docs/.vitepress/theme/presets/icons.json 中共 9 个预设。由于 Icons 风格的视觉核心几乎完全由背景色决定图标本身始终随 seed 在图形池中变化这 9 个预设全部围绕backgroundColor做文章其中Sunrise还额外演示了渐变背景选项backgroundColorFill与backgroundColorAngle。二、9 个预设速览id名称一句话摘要核心选项sepiaSepia图标背后的四种暖棕色backgroundColor: [8a6a48,6b4f35,a3855f,54402c]greyscaleGreyscale四种灰色毫无色调backgroundColor: [343437,5e5e62,8c8c90,b6b6b9]duotoneDuotone每个头像同一种靛蓝backgroundColor: [3d4272]mutedMuted六种灰暗底色backgroundColor: [6b705c,a5a58d,b98b73,7c9082,8e9aaf,9c6b58]electricElectric六种全饱和底色backgroundColor: [ff2e88,00e5ff,ffe600,7cff00,ff6a00,b400ff]pastel-wallPastel Wall五种柔和底色backgroundColor: [ffe3ea,e3edff,e2f5e9,fdf1d4,efe6ff]bold-popBold Pop五种饱和底色backgroundColor: [ff5d8f,ffb703,43aa8b,4d96ff,b57bff]sunriseSunrise图标背后的暖色渐变backgroundColor: [ffd9b0,ffa8bf]backgroundColorFill: linearbackgroundColorAngle: 135stencilStencil统一近黑底人人一致backgroundColor: [16161c]值得注意的是Icons 风格默认自带一套饱和的背景色板而大部分预设正是围绕替换这个色板来设计的——下文的逐组详解会说明每个预设的具体取舍逻辑。三、9 个预设逐组详解1. 压低饱和度Sepia、Greyscale、Duotone、MutedSepiaid:sepiaFour warm browns behind the icon. The icon flips between black and white on its own, picking whichever contrasts more, so changing the background carries the whole picture.{ backgroundColor: [8a6a48, 6b4f35, a3855f, 54402c] }四种暖棕色构成了整套底色。Icons 风格的图标会自动在黑、白之间选择对比度更高的那一种来呈现因此你只需要更换背景色整个画面的气质就随之改变——这也是为什么改背景能撑起一整套预设。Greyscaleid:greyscaleFour greys, no hue at all. Useful for a print stylesheet, a disabled state, or anywhere color would carry meaning it should not.{ backgroundColor: [343437, 5e5e62, 8c8c90, b6b6b9] }四种纯灰、完全不含色调。适用场景非常明确打印样式表、禁用状态disabled state以及任何颜色会传达不该传达的含义的界面。Duotoneid:duotoneA single background means every avatar in a set shares it and only the icon changes. The most restrained this style gets.{ backgroundColor: [3d4272] }只有一个颜色值3d4272靛蓝。这意味着整个头像集合共享同一种底色唯一随 seed 变化的就是图标本身。这是该风格最克制的形态也直观展示了预设如何通过锁定选项来大幅压缩头像集合的视觉差异。Mutedid:mutedThe style ships a saturated background palette. This trades it for dusty tones, for interfaces where the avatar should be present without being the loudest thing on screen.{ backgroundColor: [6b705c, a5a58d, b98b73, 7c9082, 8e9aaf, 9c6b58] }Icons 风格默认自带饱和背景色板Muted将其替换为六种灰暗的尘土色dusty tones适用于头像需要在场、但不应成为屏幕上最抢眼元素的界面。2. 拉高饱和度Electric、Bold Pop、Pastel WallElectricid:electricThe other direction on the same lever: six colors past anything the style ships.{ backgroundColor: [ff2e88, 00e5ff, ffe600, 7cff00, ff6a00, b400ff] }与Muted相反Electric在同一个色板旋钮上往另一个方向拧到头——六种饱和度超过风格自带色板的高亮色粉红、青色、明黄、荧光绿、橙、紫。Bold Popid:bold-popThe loud counterpart to Pastel Wall, strong enough that the avatar holds its own against a busy page.{ backgroundColor: [ff5d8f, ffb703, 43aa8b, 4d96ff, b57bff] }五种高饱和底色是Pastel Wall的大声版足够让头像在纷杂的页面上立住。Pastel Wallid:pastel-wallThe lightest way to make a set of avatars feel like it belongs together.{ backgroundColor: [ffe3ea, e3edff, e2f5e9, fdf1d4, efe6ff] }五种柔和的浅色底粉、浅蓝、浅绿、浅黄、浅紫是让一组头像产生整体感最轻盈的方式。3. 渐变背景SunriseSunriseid:sunriseShows the gradient background options: two colors, a linear fill and a fixed angle. The seed still decides which of the two ends up on top.{ backgroundColor: [ffd9b0, ffa8bf], backgroundColorFill: linear, backgroundColorAngle: 135 }Sunrise是 9 个预设中唯一动用了渐变选项的预设它一次性展示了三个背景相关选项的配合backgroundColor提供两个颜色值ffd9b0暖杏色与ffa8bf粉色作为渐变的两个端点backgroundColorFill: linear指定背景采用线性渐变填充backgroundColorAngle: 135固定渐变方向角度为 135°。同时它的说明还点出了一个细节seed 仍然决定两个颜色中哪一个位于渐变顶端——也就是说预设锁定了用哪两个颜色、用什么角度渐变但没有锁定颜色顺序这个自由度留给了 seed。从实现角度看backgroundColorFill与backgroundColorAngle属于展示类选项narrowDefinition.ts 明确指出这类选项不改变组合基数因此在 distinct avatar 计数时会被忽略。4. 统一底色、头像集图标化StencilStencilid:stencilEvery avatar gets the same near-black ground, so nothing distinguishes them but the icon. That turns a set from a group of portraits into an icon sheet.{ backgroundColor: [16161c] }单一近黑色底16161c让所有头像除了图标外再无区别。它的设计意图是把一组头像彻底变成一张图标表icon sheet——与Duotone同属最克制路线但气质完全不同深色 vs 靛蓝。四、如何在代码中使用预设既然预设只是普通渲染选项那么用法就非常简单把options字段原样当作渲染选项传入即可。以Sepia为例// 预设 普通渲染选项可直接作为渲染选项对象使用 const options { backgroundColor: [8a6a48, 6b4f35, a3855f, 54402c], }; // 以任意 DiceBear 核心库JS/PHP/Go/Rust/Python…渲染即可 // 未在预设中指定的选项保持默认随 seed 自由变化按 presets.ts 的说明这套选项也可以作为 HTTP API 的查询参数传递——预设系统本身就是无感知的七个语言核心都不知道预设的存在它们只是按普通选项处理。需要提醒的是预设只锁定了它写明的选项其余选项如图标的选择范围仍由 seed 驱动因此同一个预设在不同 seed 下会产生不同的头像。如果你想把某个预设作为团队内的标准头像模板直接把这几个键值对固化到你的渲染配置里即可如果想要更细的控制则参考下文在 Playground 中继续调参。五、在 Playground 中打开预设继续调预设页的每个预设行都支持一键跳转 Playground。跳转链接由 StylePresetDialog.vue 中的playgroundUrl生成格式为/playground?styleiconspresetpreset-id例如打开sepia预设的链接是/playground?styleiconspresetsepia。点击对话框中的Open in playground按钮即可带着该预设的选项进入 Playground继续调整配色或其他参数。此外预设详情对话框本身也会展示完整 seed 行使用与风格页打开时相同的多个 seed 渲染头像方便你把它与页面上方的默认头像对比直观看出预设锁定了哪些东西、哪些部分仍随 seed 变化选项数量{{ optionCount }} options即该预设显式设置了几个选项StylePresetDialog.vuedistinct avatars 数量锁定这些选项后仍然存在的不同头像总数见下一节选项代码面板把该预设的 options 以代码形式展示可直接复制。六、预设、seed 与还能有多少种头像预设页面的核心设计理念是预设只设置少数几个选项其余选项继续随 seed 变化所以每个预设行都会标注它锁定选项后还剩多少种不同的头像。这一理念在 SitePresetsPage.vue 中贯穿始终页面顶部与每行都使用相同的三个 seed来自 previewRowSeeds.ts 中为 icons 风格配置的种子如Dahlia、Iona、Callum等保证预设之间可以横向对比每个预设行给出锁定后的 distinct avatars 数量让固定颜色明显付出多样性代价这件事变得可见。这个计数不是简单估算而是有一套与 Playground 完全一致的实现narrowDefinitionnarrowDefinition.ts先把风格定义深拷贝一份再把预设选项逐一应用进去${name}Color选项收窄颜色组的值列表applyColorPalette、${name}Variant收窄变体池applyVariantNarrowing、${name}Probability固定组件出现概率、tags过滤变体池——从而得到一个被收窄后的渲染空间computeCountcombinationCount.ts基于收窄后的定义统计组合总数得到 distinct avatars 数量。正如 StylePresetDialog.vue 的注释所说这个数字与 Playground 对同样选项报告的数字一致因此一个固定了颜色的预设会显著降低多样性而不是虚报风格的完整数量。以Duotone为例它把backgroundColor锁成单一颜色视觉上只剩图标随 seed 变化而以Sepia、Muted这类保留多色板的预设背景色仍然在多个颜色之间随 seed 切换多样性的损失就小得多。七、预设页面与数据从何而来预设页本身由一个通用组件渲染页面 index.md 通过SitePresetsPage styleNameicons加载组件实现在 SitePresetsPage.vue其构成包括页面头部面包屑Styles → 风格分类 → Icons → Presets、动态标题如Nine Icons starting points、以及9 presets、Any library、HTTP API三个标识徽章精选侧栏从预设列表中按步长均匀选出最多 4 个SitePresetsPage.vue以头像卡片形式展示在页面侧栏预设列表每个预设占一行头部标出三个 seed 列行内展示该预设在这三个 seed 下的头像。数据加载方面presets.ts 使用import.meta.glob按风格懒加载theme/presets/*.json——每个风格一个 JSON 文件、一个独立的代码块只有打开某风格预设页时才拉取对应文件注释中特别说明若急切内联全部文件所有 55 个风格文件会变成 214 KB 的公共 chunk。loadStylePresets对缺失预设的风格返回空数组而不抛错因为大多数风格目前还没有预设。预设数据的正确性由 validate-presets.ts 校验脚本把关——它会把预设选项与当前风格定义逐一对照确保写入的选项在对应风格中真实存在且类型合法。这也是我们在仓库里新增或修改预设时唯一需要改动的地方一个 JSON 文件数据 一份校验一致性。结语Icons 风格的 9 个预设展示了 DiceBear 预设系统的一个极简样本预设只是普通渲染选项却因为未锁定选项随 seed 变化的设计可以在固定一种风格气质的同时保留庞大的头像多样性。无论是直接复制backgroundColor到自己的代码、作为 HTTP API 查询参数还是通过/playground?styleiconspresetid进入 Playground 继续调色这 9 组方案都能作为你定制 Icons 头像的良好起点——而理解narrowDefinitioncomputeCount的计数链路则能让你对预设锁定后还剩多少种头像心中有数。赞分享UI组件后端【免费下载链接】dicebearDiceBear is an avatar library for designers and developers. 项目地址https://gitcode.com/gh_mirrors/di/dicebear点击查看免费下载相关推荐终极Sunshine游戏串流指南5分钟打造跨平台私人游戏云终极Sunshine游戏串流指南5分钟打造跨平台私人游戏云 Sunshine是一款开源自托管的游戏串流服务器让你能将高性能电脑的游戏画面和操作实时传输到任何UI组件后端Headroom 再对齐工程实录从丢消息压缩到只压活跃区的缓存安全重构REALIGNMENT 全解Headroom 再对齐工程实录从丢消息压缩到只压活跃区的缓存安全重构REALIGNMENT 全解 本文以 Headroom 仓库中的 REALIUI组件后端DiceBear Notionists 风格预设Presets详解现成渲染配置、Playground 调试与多语言代码生成DiceBear Notionists 风格预设Presets详解现成渲染配置、Playground 调试与多语言代码生成 导读 本文围绕 DiceBeaUI组件后端上一篇Discover为Linux打造的轻量级Discord覆盖层下一篇【亲测免费】 Bazel BuildTools 使用教程创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
企业数字化 ERP 产品动态
相关推荐
Lottery 分布式抽奖系统开发起点:环境搭建、工程结构与研发规范全解 文档教程后端 【免费下载链接】CodeGuide :books: 本代码库是作者小傅哥多年从事一线互联网 Java 开发的学习历程技术汇总,旨在为大家提供一个清晰详细的学习教程,侧重点更倾向编写Java核心内容。如果本仓库能为您提供帮助,请给予支持(关注、… · 2026/9/25 9:27:46
Atlas 300V部署YOLO实战:从PyTorch到OM模型推理全流程 1. Atlas 300V 24G 到底是什么卡?先把这个说清楚最近好几个做视觉落地的朋友都在问我同一个问题: Atlas 300V 24G 是运算加速卡吗?能不能直接跑 YOLO?还有人把它和训练卡混在一起,拿到手才发现和自己的预期完全不是一回… · 2026/9/25 9:27:39
Atlas 300V 24G实战:从环境搭建到YOLO高效部署全攻略 1. “Atlas”到底是什么:一张卡、一个家族,还是一整套生态?先回答最容易让人困惑的问题。网上搜“atlas”,会跳出各种互相矛盾的结果:有人说是华为昇腾的AI加速卡,有人说是数据库,还有人说是NVI… · 2026/9/25 9:27:33
人手一份!OpenClaw 中文版汉化及部署教程:TaoToken 统一 Key 配置与验证 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 9:58:57
把 Claude Code 接进 SoC 验证流水线:TaoToken 统一 Key 的 Agent 提效实践 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 9:58:45
OpenClaw 可视化安装全流程演示:用 TaoToken 统一 Key 打通本地智能办公助手 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 9:58:39
创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31
MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:37