laoyang
|
03eca9dc9c
|
docs: README 加入线上地址与界面章节,截图按新布局重拍,补 .gitignore (#1)
- README 顶部加线上地址 https://password.yangyq.net/
- 新增「界面」章节:左设置/右操作的双栏逻辑、两按钮实测 241×42 宽高差 0px
- 截图全部重拍(旧图还是改动前的布局):dark/light 2400×1640、mobile 780×2490
- 新增 .gitignore,忽略 node_modules(本地跑判据的落点,43MB,之前没被忽略)
验证(不只看文字):
- 截图像素级检查:深浅背景色正确、颜色多样性足够,排除白屏
- _sp_shot_verify.js 26 条:断言被截图的页面状态正确(主题/左右栏/按钮尺寸/无历史模块)
- _sp_readme_check.js 10 条:README 事实性断言与产品逐条对账
- _sp_readme_render.js 9 条:最小 GFM 渲染后三张图 naturalWidth 均 > 0
|
2026-10-28 15:25:47 +08:00 |
|
laoyang
|
6b4ee89d19
|
refactor: 设置左移、主操作按钮等大异色、移除最近生成 (#1)
三处按需求调整:
1. 设置区移到左边
左 = 设置,右 = 输出。不调设置的人视线直接落到右侧密码与「复制密码」。
DOM 顺序也改成设置在前,窄屏单列时天然是设置在上、输出在下。
栅格比例同步反过来(设置 .92fr / 输出 1.08fr)。
2. 「复制密码」与「换一个」等大、不同色
.out-actions 从 flex 改成 grid repeat(2, 1fr),两个按钮严格等宽;
主按钮保留渐变,次按钮改为实心填充(新增 --surface-3,比 --surface-2 更实,
避免深色下与卡片同色而看着像没填充)。
3. 移除「最近生成」模块
删面板、清空按钮,以及 readHistory / pushHistory / renderHistory / ago
与 sp.history.v1 的全部读写。候选面板改为整宽单栏。
顺带清掉了共用工具 listItem 上的历史调用点。
验证(六套,全绿):
功能 jsdom 78 / 0
视觉几何对比度 114 / 0
真实剪贴板端到端 19 / 0
file:// 直开 15 / 0
功能反向注入 22 / 22 命中
视觉反向注入 6 / 6 命中
反向注入拆成两套:_sp_falsify.js 只喂 jsdom(不做布局),
把「按钮等大」「两栏左右」这类几何 bug 注进去影响不到被测判据,
会表现成"注入后仍全绿"、被误判成判据没牙齿(靶子选错)。
几何/视觉类归 _sp_visual_falsify.js。
删历史后专补两条"确实没了"的判据:DOM 节点不存在 +
localStorage 不再写入 sp.history.v1 —— 后者能抓到"面板删了但 JS 还在偷写"。
|
2026-10-28 13:57:29 +08:00 |
|
laoyang
|
a48f414bbb
|
chore: 触发 Gitea 仓库状态刷新 (#1)
|
2026-10-28 11:56:14 +08:00 |
|
laoyang
|
853531c07c
|
feat: 密码生成器 simple_password 初版 (#1)
单文件 index.html,纯 HTML + CSS + JS,零外部依赖,双击即用。
功能:
- 长度 4~64 可调;选「每类至少一位」时下限自动收紧到所选类型数
- 小写 / 大写 / 数字 / 符号四类可选,全不选会兜回小写而非生成空密码
- 生成即复制;剪贴板 API 不可用时降级到 execCommand
- 排除易混淆字符(0 O o 1 l I)与自定义排除
- 真实熵值(长度 × log2(字符池))与五档强度评价
- 批量生成 5 个候选、最近 6 条历史(仅本机 localStorage)
- 深浅色跟随系统并可手动切换,首帧前定主题避免闪烁
- 快捷键:空格换一个、C 复制
实现要点:
- 随机数走 crypto.getRandomValues + 拒绝采样,消除取模偏差
- 「每类至少一位」= 各类先取一位 + 剩余全池随机 + 整体洗牌,
避免固定位置带来的可预测性
验证:功能判据 80 条、浏览器几何/对比度/多视口 105 条、
真实剪贴板端到端 18 条全绿;24 条反向注入全部命中。
|
2026-10-28 11:52:37 +08:00 |
|