《中华人民共和国融媒体 SVG 交互设计技术规范》是由复旦大学奇点新媒体研究中心等单位牵头,《硬核运营:新媒体技术流养成》第一作者计育韬等人主要起草,并于2024年8月起面向全社会行业从业者发布的最高技术标准。该标准前身为 2016 年计育韬与微信团队合作拟定的《SVG AttributeName 白名单》,以下为技术规范的当前具体要求,可作为SVG交互设计执行时的流程对照与验收参考。
本文件按照GB/T 1.1—2020《标准化工作导则 第1部分:标准化文件的结构和起草规则》的规定起草。
请注意本文件的某些内容可能涉及专利。
本文件由复旦大学奇点新媒体研究中心提出。
本文件起草单位:复旦大学奇点新媒体研究中心、上海四零四艺术文化发展有限公司、青岛阔野文化传播有限公司、长春意符文化传媒有限公司、嘉兴千梦文化传播有限公司、上海衬线文化传播有限公司、上海谘诹信息技术有限公司、上海泛猩文化传媒有限公司、深圳云语图信息科技有限公司、锦江区科蚪网络科技工作室、泰州一付信息技术有限公司、东莞市石龙归零心态网络科技工作室。
本文件主要起草人:计育韬、姜棋超、赵国梁、杨泽昊。
本文件规定了融媒体 SVG 交互设计的基本要求、设计要求、设计流程、验收归档。
本文件适用于融媒体 SVG 交互设计。
本文件没有规范性引用文件。
下列术语和定义适用于本文件。
充分利用媒介载体,把广播、电视、报纸等既有共同点,又存在互补性的不同媒体,在人力、内容、宣传等方面进行全面整合的新型媒体。
在 SVG 技术的应用下,用户通过一系列的操作(如点击、滑动、长按等)与 SVG 内容进行互动的过程。
下列缩略语适用于本文件。
CSS:层叠样式表(Cascading Style Sheets)
HTML:超文本标记语言(Hyper Text Markup Language)
SVG:可伸缩矢量图形(Scalable Vector Graphics)
XML:可扩展标记语言(Extensible Markup Language)
应遵守可扩展标记语言语法规范和矢量图像动画代码规范,并根据展示终端的浏览器特性选择正确的适配策略进行构建和渲染。
注:一般采用 W3C 万维网联盟制定的《XML 可扩展标记语言语法规范》和《SVG 矢量图像动画代码规范》。
应遵守不同展示平台或展示体系的自有技术规范。
示例1:在微信公众平台的公众号图文界面内,遵守《SVG AttributeName 白名单》的范围进行动画标签、动画指令和其他 CSS 指令的应用,《SVG AttributeName 白名单》内容参见附录 A。
示例2:在微博平台,遵守微博平台的对应融媒体 SVG 交互设计规范进行设计与开发。
应遵守不同终端硬件系统特性和渲染规则。
在移动端常见的 iOS 生态、安卓生态中浏览器引擎存在内核差异,融媒体 SVG 交互设计应在原型开发完毕后在多机型中进行调试,并注意命名空间的申明。
注:iOS 是指苹果公司开发的移动操作系统。
应存在明确基于自动、点击、触摸(开始)、触摸(结束)、触摸(移动)、滚动特性以及组合而成的交互结构。应包括半自动的触发形式。
宜包含结构可靠的触发器和相对明确的触发意符设计。触发器标签一般宜选择矩形结构、圆形结构、多边形结构或复合路径生成。
应为用户提供最终明确的交互反馈,反馈的视觉变化宜相对显著,反馈的位置可被预期并大概率保留在交互行为发生时的视窗范围内。
宜优先选择具备缓动函数的动画表达,能体现物理加速、阻尼感的动画为佳,动画细节宜尽可能表现出物理特性的生动感,一般结合以下交互形式构件基本动画承载结构:
a) 伸长:自动或通过用户点击、拖拽(滑屏)等手势操作,使得移动端图文页面在纵向发生高度扩张,一次或多次不断向下延伸的动画效果,并能嵌套或接续新一组伸长以进一步展开画面内容;
b) 穿透触发:通过鼠标点击属性值管理SVG图层响应关系的关键技术,通过对不同结构穿透与否的设定,结合 XML/HTML 编程语言构建出复杂的 SVG 或 CSS 交互模型;
c) 双层触发:需要用户一次点击带动更多复杂且存在技术冲突性的动画时,通过双层触发模型进行 SVG 代码的构建。双层触发能使动画效果的可行性翻倍,通过一次点击引发更丰富的 SVG 交互效果,并能实现 SVG 动画的倒序行为;
d) 零高容器/结构:高度为零的 CSS 结构,使得内容在同一画面内可以准确无限堆叠,并由此辅助大多数的 SVG 伸长动画展现。
一般宜根据实际动画制作的内容选择具体模式,CSS 体系中将动画区分为以下 4 种:
a) linear(匀速线性);
b) ease-in(缓入特性);
c) ease-out(缓出特性);
d) ease-in-out(缓动出入)。
函数坐标区间为(0 0;1 1)。
应采用防误触设计,确保动画不出现预期外的重复执行、无法执行等状况。
应符合视觉识别系统的行业通识要求,在美学上宜基本反映出创作机构的企业文化、机关属性或媒体职能。若无文字信息和账号名称,应确保用户能感受到明确的设计所属主体。
宜采用个性化、拟人化的融媒体表达,可采用下列方式:
a) 在视觉识别系统基础上融合多样艺术流派形成自身融媒体交互设计美学风格;
b) 与艺术家联名开展作品设计。
融媒体交互设计中的行文一般不宜采用传统排版设计学中的行文处理方式,而宜充分考虑用户跳读、速读以及电商产品的浏览习惯,引导用户在规定时间内完成预期交互行为。具体行文要求如下:
a) 文案一般宜以短句或非完整句进行排列;
b) 换行位置应根据词义的连贯性决定;
c) 长段落行文一般不宜段首缩进,采用符号避头避尾法进行排版,段落与段落之间用空行分隔。
宜采用融媒体交互设计中被普遍应用且成为行业通用行文基本规范的标点符号进行设计。
示例1:以“「」”替代引号。
示例2:以“|”替代冒号、分号等。
需求方与设计师和开发者进行初步沟通,明确基本设计方向。
在基本确定技术可行性与设计可行性后,需求方通过专业方式建立需求简报。
针对融媒体交互设计作品中计划的某些核心交互结构进行提前的开发调试,验证代码模型的可行性,确保切片素材设计有意义。验证过程中一般采用假图和乱数假文进行视觉占位,并为后续设计师的栅格化设计提供参照。
结合技术可行性验证的结果,为需求方提供关键章节的样例设计,确定主视觉风格。
在一个整体画板中体现交互的基本特性,以静态方式将所有动态的交互过程进行呈现,包括:
a) 点击后开场的画面延展;
b) 展开后的画面纵向布局顺序;
c) 特定布局中的滑动/切换状态说明等。
框架设计应使需求方、开发者均能清楚核对交互细节,并方便注释新的修改需求以及对照进行下一阶段的工作。
设计师采用平面设计工具或前端网页设计工具开展设计。
开发者选择关键的局部结构或直接对整体进行融媒体交互能力的开发,完成完整的交互模型并进行初步功能验证,预留好功能延展的代码架构。
将从 HTML 本地文件到进入不同展示平台的基本部署进行模型化演示,并在多机型终端进行基本的调试和适配。
根据模型化演示,需求方和设计师核对需求实现的结果和设计切片的准确性。
对各项图片、内容、交互进行详细修改,定稿后进入交付流程。
设计方根据需求方的实际应用场景和其自身的融媒体运营能力提供对应的交付形式。包括但不限于:
a) 若需求方熟悉融媒体交互设计技术,可选择获取 HTML 文档,自行导入线上部署;
b) 若需求方缺乏对融媒体交互设计技术的认知,可选择技术插件以超链接导入的方式注入自己的平台;
c) 若需求方缺乏相关操作经验,根据情况进行具体协商由开发者进行在线部署并开展交付工作。
为发布方提供基本的代码内版权保护申明,界定融媒体 SVG 交互效果的版权归属,将 SVG 代码指令化序列和被终端程序调用的数据做区分,以 SVG 代码指令化序列为重点进行申明与存证。
内容交付生成后,设计方完成发布前的各项设计、技术验证。具体方式及要求如下:
a) 从硬件上,应准备多种典型的系统与机型用于适配检验;
b) 从平台上,应通过额外的私人账号进行拟发布试验,检查收到内容的各项技术参数是否完备,模型运行是否顺利且流畅。
融媒体交互设计正式上线后,设计方与需求方应核对发布效果,共同完成验收。
设计方应归档需求方需要的其他特定文件,包括但不限于:
a) HTML 代码文档;
b) 终稿切片文件夹;
c) 设计工程文件等。
附录A
(资料性)
SVG AttributeName 白名单
*SVG AttributeName 白名单见表 A.1
表 A.1 SVG AttributeName 白名单
序号 | 元素 | Name | 备注 |
1 | animate | x | 控制简单几何体 x 轴方向移动 创意应用如柱状图等 |
2 | y | 控制简单几何体 y 轴方向移动 创意应用如柱状图等 | |
3 | width | 控制简单几何体宽度变化 创意应用如伸长式图文(宽度自适应) | |
4 | height | 控制简单几何体高度变化 创意应用如伸长式图文、预占位等 | |
5 | CX | 控制圆心 x 轴方向移动 | |
6 | CY | 控制圆心 y 轴方向移动 | |
7 | opacity | 控制透明度变化,数值为 0 到 1 | |
8 | d | 控制贝塞尔曲线补间行为 但表现具有随机性 | |
9 | points | 控制多边形补间行为 但表现具有随机性 | |
10 | stroke-width | 描边宽度、描边端点和描边偏移量 创意应用如遮罩动画、饼/分图、进度线等 | |
11 | stroke-linecap | ||
12 | stroke-dashoffset | ||
13 | fill | 控制填充色过渡变化 | |
14 | set | visibility | 控制可见性效果的表达,数值包括 visible | hidden | collapse | inherit 创意应用如防误触等 |
15 | animateTransform | translate | 控制路径和编组的位移 |
16 | scale | 控制路径和编组的 x、y 轴缩放 创意应用如伪翻转等 | |
17 | rotate | 控制路径和编组的旋转 | |
18 | skewX | 控制路径和编组的 x 轴倾斜 创意应用如台历翻阅等 | |
19 | skewY | 控制路径和编组的 y 轴倾斜 创意应用如书籍翻阅等 | |
20 | animateMotion | path | 单行/复杂的轨迹动画 可通过 rotate 定义朝向 创意应用如轨迹飞行等 |