1) 上传结果行:「复制全部 / 清除」原来绝对定位盖在右上角,压住 Markdown with link /
Thumbnail url 两个标签,且只在 hover 时出现(手机没有 hover,等于点不到)。
改为与标签栏同一行的左右两段:标签栏 flex-1 自行横向滚动,按钮固定右侧、常显。
(div 开闭数已核对:与原始一致,只多一层包装)
2) 侧栏品牌块去掉 sm:justify-center → 桌面端 logo + 站点名靠左(手机端本就不居中,无影响)
3) 文案:「设置」→「用户设置」(侧栏导航项、页面大标题「基础设置」、顶栏标题、头像菜单)
4) 桌面端侧栏可折叠(手机端抽屉行为完全不变):
- 折叠状态 = <html class="sidebar-collapsed">,由 stores/sidebar.js 管理并记入 localStorage;
app.blade.php 的首屏内联脚本在样式之前就贴类,不会「先展开再收起」地抖一下
- 折叠宽度 4rem 只留图标;文字、分组标题、容量区整体隐藏;导航项居中;每项带 title 便于悬停辨认
- 折叠规则全部在 @media (min-width: 640px) 内,并用选择器权重(html.sidebar-collapsed #app-sidebar)
压过工具类 sm:w-64 / sm:ml-64 —— 不依赖打包顺序(components 层总在 utilities 之前)
- 顶栏 ☰ 桌面端也显示:桌面=折叠/展开、手机=抽屉,同一语义;toggleSmart() 按视口分流
- 我的图片页:图片墙按容器宽度算布局,侧栏一动必须重排 —— 监听 lsky:sidebar-toggled,
等 300ms 宽度动画结束后 justifiedGallery('norewind') + viewer.update() + ds.setSelectables()
(这三个 API 在翻页加载数据时本来就在用)
- 不做「悬停临时展开」:那会让图片墙每次鼠标划过都重排
验证:
- 新增 test/sidebar.test.mjs(6 例,jsdom):默认展开 / 存过 collapsed 则加载即贴类 /
折叠写存储并派发事件 / 展开还原 / 手机端只开抽屉不动折叠态 / 桌面端走折叠。
与既有 70 例一起由 npm test 串行执行(CI 那步就是 npm test)
- 用真编译产物 + 真实 DOM 结构在 Chromium 里量计算样式:
桌面折叠 → 侧栏 64px、内容左边距 64px、文字/分组/容量隐藏、图标居中偏差 0px、按钮与标签零重叠;
桌面展开 → 256px / 256px;手机端即使贴了折叠类 → 侧栏仍 75% 抽屉、无隐藏、边距 0(确认零影响)
- php -l 全仓库通过;php artisan view:cache 全量编译通过;verify_repo.py 通过;
context-js.js 两份仍字节一致(e114c840…,长按与点击防护未动)
14 lines
278 B
JSON
14 lines
278 B
JSON
{
|
|
"name": "lsky-pro-docker-tests",
|
|
"private": true,
|
|
"type": "module",
|
|
"scripts": {
|
|
"test": "node longpress.test.mjs && node sidebar.test.mjs",
|
|
"repro": "node repro-clickthrough.mjs"
|
|
},
|
|
"devDependencies": {
|
|
"jquery": "3.7.1",
|
|
"jsdom": "^30.1.1"
|
|
}
|
|
}
|