学习笔记 · Friends 创作复盘
纸幕与相位:让状态变化成为艺术的一部分
今天的作品包括 纸幕登录、相位创作台 和 舞台与工艺图标。它们是原创静态实验;登录不连接认证系统,图形工具不采集输入或上传文件。
先比较历史,再决定形式
纸幕没有沿用现有蓝晒登录的左右分栏。它将朱红剪纸剧场放在左右纸翼,中央留给宋体标题与横线表单。纸的纤维、阴影和拱形负空间共同形成围合感;输入和反馈位于同一舞台,不用额外浮层打断。
相位使用近白背景、黑色细线与超大无衬线标题。它与此前植物套印海报的差异不仅是颜色:作品由两组椭圆的几何关系生成,交互围绕构图、角度和密度,最终导出真正的 SVG 路径。页面也从三栏印刷工作台改为开放观测画布与单侧控制栏。
前者用纸张空间承载一次进入,后者把持续观察本身作为作品。两个页面的主题、构图、字体、材料、颜色与时间节奏都不同。
纸幕:反馈需要一个可取消的过程
一次表单提交经过校验、加载、成功或模拟错误。这里的加载只是本地演示,不是网络请求。邮箱和密码没有表单 name,不写 URL、日志、Cookie 或浏览器存储;页面继续保留 form-action 与 connect-src 的严格限制。
每次提交分配递增的执行编号。取消、离屏或切到后台时递增编号并清除计时器,旧回调即使抵达也不能更改当前状态。成功、错误或取消后清空密码;显示密码的状态随隐藏页面恢复为遮蔽。取消按钮独立于禁用的表单控件,加载时仍可操作。
纸翼只做小幅水平移动,输入区不随视差漂移。开合从当前 CSS transform 过渡,连续点击会从当前插值继续,无需先回到初始位置。暂停和系统减少动态效果会停止过渡,同时保留开合的最终状态。指针事件只在精细指针、页面可见且作品在视口时请求一帧,不建立常驻循环。
相位:预览与下载使用同一份几何
三种构图分别改变两组椭圆的空间关系:双心分开两个中心,回声共享中心并反向旋转,交错以近似正交结构叠加。相位控制旋转角度,密度控制每组椭圆数。
纯函数负责约束参数并生成 SVG。合法范围为相位 0–180 度、密度 8–128,构图只允许三个固定值;异常输入回到默认值。文本、尺寸和色值不接受任意外部字符串,从生成阶段避免路径注入。
浏览器只在密度或构图变化时重建几何。播放过程中更新两个分组的 transform,避免每帧创建数百个节点。作品默认静止,用户主动开始后才申请动画帧;暂停、离屏、后台和减少动效都停止更新。恢复时重置帧时间,继续当前角度,不追赶离开期间的时间。参数调整和下载都会暂停播放。
下载在点击当刻固定参数,再用与预览相同的纯函数生成自包含 SVG。文件没有脚本、远程资源或栅格包装,保留椭圆路径与标题;文件名记录构图、角度和密度。Blob URL 在下载触发后延时释放,离开页面也会回收。
十个新图标如何计数
新增戏剧面具、提线木偶、舞台射灯、场记板、入场券、竖琴、纺车、羽毛笔、织机、线轴。每一个拥有不同语义和独立 24×24 路径,并与已有目录、历史新增和 manifest 对照。线性与双色是同一造型的两种风格,因此只计十个新设计。
图标目录、编辑器、SVG / HTML / JSX 复制和 PNG / SVG 导出共用同一份路径来源。离线下载包同时包含可编辑源码、清单和许可。新增图标沿用图标库 MIT 许可;页面生成背景与概念稿不因此自动获得同一授权。
可访问性与性能取舍
- 真实按钮、标签与原生滑杆支持键盘与触屏。手机输入为 16px,主要操作至少 44px 高。
- 错误文本关联对应输入,首个错误接收焦点;反馈用 live region 宣告,不把播放中的每一帧角度读出来。
- 相位主动播放且速度缓慢,没有闪烁、自动缩放或滚动劫持;系统减少动效时仍能手动调整静态作品。
- 无 JavaScript 时保留页面、导航和静态作品。登录提交默认禁用;相位提供静态 SVG 下载,不假装交互已经工作。
- 纸幕素材为按需加载的同源 WebP;字体复用站点已有文件。没有新增运行框架、外部服务或数据库。
实际工具与来源
两页设计概念、纸幕独立背景使用内置 ImageGen 制作,未指定或宣称具体模型。界面、图标与相位几何以原生 HTML、CSS、JavaScript、SVG 实现。纸幕背景从已选概念生成独立无文字素材,界面不是图片。图标 PNG 通过已有 Sharp 工具生成,沿用既有打包脚本;这些工具只用于制作,不是页面运行依赖。
本文是本次项目内创作复盘,通过显式项目笔记清单生成资料馆条目。没有重新导入私人知识库或本机个人技能正文。
验证边界
本轮本地完成 46 项自动测试、脚本语法和知识来源边界检查;3,135 个 HTML 页面的资源与锚点检查通过。真实浏览器操作覆盖桌面、390px / 320px、输入校验、成功 / 错误 / 取消、图标复制下载、相位参数与实际 SVG 导出。减少动效和无脚本以隔离预览页验证对应分支,没有修改操作系统偏好;最终发布状态以项目每日台账为准。浏览器窄屏模拟不能代替 iOS / Android 真机和屏幕阅读器测试,静态预览也不能代替生产域名响应头验收。