SpareBank1设计系统:图标尺寸更新的技术挑战与解决方案
背景介绍
在SpareBank1设计系统的开发过程中,团队遇到了一个关于图标尺寸更新的技术挑战。当前系统支持的图标尺寸为20px、24px、40px和48px,但随着产品需求的变化,出现了对32px尺寸图标的新需求。这一需求在Figma设计文件中已被实现,但在代码实现层面却遇到了技术障碍。
技术现状分析
目前系统的图标是通过Google Symbols提供的资源实现的,而Google Symbols仅支持20px、24px、40px和48px这四种固定尺寸。这种限制直接导致了无法简单地通过现有工作流添加32px尺寸的图标。
现有的图标处理流程基于一套自动化脚本系统,这套系统能够从设计资源中提取图标并转换为代码可用的格式。然而,当前的实现方式依赖于预定义的固定尺寸,缺乏灵活性。
深入技术问题
核心问题在于当前技术方案的架构选择。固定尺寸的图标实现方式虽然简单直接,但在面对设计系统演进过程中的新需求时显得不够灵活。特别是当设计团队已经在Figma中创建了新尺寸的设计,但技术实现却无法同步跟进时,这种架构限制就变得尤为明显。
潜在解决方案探讨
-
SVG矢量图标方案:最彻底的解决方案是改用可缩放的SVG矢量图标。这种方案允许图标在任何尺寸下保持清晰,无需为每个特定尺寸维护单独的图标资源。SVG图标可以通过CSS轻松调整大小,完美适应响应式设计需求。
-
图标字体方案:另一种选择是使用图标字体(Icon Font),同样具有可缩放特性。但相比SVG,图标字体在灵活性和功能支持上稍显不足。
-
多尺寸预处理方案:如果必须保持固定尺寸的实现方式,可以考虑扩展预处理脚本,使其能够生成更多尺寸的图标变体。但这会增加维护成本。
实施建议
基于当前情况,建议采用SVG矢量图标方案,原因如下:
- 未来兼容性:SVG是现代化的图形解决方案,被所有现代浏览器良好支持。
- 设计一致性:可以确保图标在所有尺寸下保持一致的视觉质量。
- 维护简便:只需维护一套矢量源文件,而非多个尺寸的变体。
- 性能优化:SVG文件通常比多套位图资源更节省空间。
技术实现路径
- 架构评估:首先需要评估现有系统对SVG的支持程度,检查是否有技术债务需要清理。
- 工作流改造:修改现有的图标处理脚本,使其能够正确处理矢量图形而非固定尺寸的位图。
- 渐进式迁移:可以先在新图标上实现SVG方案,逐步替换旧有的固定尺寸图标。
- 性能测试:确保SVG方案在各种使用场景下的性能表现。
- 文档更新:更新开发者文档,说明新的图标使用方式。
总结
设计系统的演进过程中,类似图标尺寸这样的基础组件更新需求会不断出现。采用更灵活、面向未来的技术方案,虽然短期可能需要更多投入,但长期来看能够显著降低维护成本,提高系统的适应能力。SVG矢量图标方案不仅解决了当前的32px需求,还为未来可能出现的其他尺寸需求提供了完美的解决方案。
对于SpareBank1设计系统团队来说,这是一个优化基础架构的好机会,通过这次调整可以建立一个更加健壮、易于扩展的图标系统,为产品的持续发展奠定更好的基础。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考