Repository navigation
v1.7.0
nosDshell v1.7.0
这一版把全部动效换成了一套有出处的设计语言:所有时长收进五档令牌、所有曲线取自一张
CDS 曲线表——弹出层从锚点长出、带一点回弹,按钮按下微缩、松手弹回,通知和 OSD 沿屏
幕边滑入滑出,行类元素的指针态依旧瞬变;切主题时全部颜色做一次交叉淡化,关掉动画或
进入性能模式时这一切同时归零。配套地,弹出层、菜单、对话框的阴影重画成轮廓外侧的双
层投影,深色弹出层上沿多了一道 1 px 高光,滚动区边缘的内容不再被色块盖住,而是沿曲
线溶进背景;键盘操作也终于有了焦点环。
顺手修掉一批"看不见的拦截者":会话菜单关掉后不再以一块透明全屏表面继续吃掉点击和按
键,滚动区边缘层不再在重建瞬间吞掉偶发的按下,通知超时退场也有了自己的动画而不是瞬
灭。验证侧新添了逐帧拍动效曲线的取证工具,和一套 Nix 测试环境,云端容器里也能跑完整
的校验。
新功能
- debug findAll, and hit-tests that see through wheel layers:
79a47960a - top-edge highlight on dark popups:
28b7408d6 - non-linear CDS edge fade as an alpha mask:
c46f19be3 - NFocusRing for keyboard focus; notification cards use it:
b64bc6fcc - theme crossfade on motionTheme with the swift curve:
5583af7d7 - finish the migration; every loop honours reduced motion:
6f299f7d2 - control-centre page pushes on motionPage:
87c3c597d - app strips, workspaces and bar pills on §1.7 tokens:
3bc5075eb - NPressScale press squish on button-class controls:
64d9c533c - data, reorder and focus colours on tokens; gate loops:
b975d9d5a - scroll views on §1.7 curves; reduced motion covers them:
3253aa324 - switch, collapsible and page transitions on §1.7 curves:
fc62a2412 - full-screen surfaces on the §1.7 tokens:
853fc8ecd - CDS enter/exit on the OSD tile:
dddd54dae - bubble recipe for enter and exit; animate dismissal:
2acd04b3f - CDS enter/exit for bubbles and the history list:
b89f459fb - popover motion and room for the shadow:
d06fe10c1 - move panels, dimmer and bar slide onto the §1.7 tokens:
072756b21 - draw shadows outside the silhouette only, in two CDS layers:
31b6af3be - grow popups out of their anchor on the CDS popover recipe:
7b7a71caa - add NAnim/NColorAnim motion primitives:
2129bf309
修复
- let the anchor group through the missing-property check:
8c40184d3 - run the section editor's drop pulse from a binding:
2410d6bfb - unmap the session menu once its close fade is over:
15b2c2369 - keep a resident virtual pointer so injected clicks are not lost:
2e6690e7f - hand the bundled launcher icon over as a file URL:
05b561c6e - size the section editor title from the editor, not its row:
27bc89629 - reserve the scrollbar column one turn after overflow changes:
26c583fb7 - declare the tab-ready Connections target as null:
e960b97e5 - give the module scroll an explicit content size:
e10743751 - draw the top highlight with rectangles, not Shape strokes:
e5f87b4ca - draw the focus ring only for keyboard selection:
51133a04e - send the pointer motion before every click, not only held ones:
c3a960203 - keep the edge-fade layer stable so clicks are not lost:
513d8b6ba - deliver the press of a held click:
8d71d27bc - let dismissOldest play the bubble exit:
9dd791c73 - give popup menu windows room for their shadow:
f1c902ff8 - keep fitted curves under the QEasingCurve 11-segment crash:
ff72a76b3 - repair debug-smoke assertions that drifted from the debug IPC:
69a2f5d90 - replace the
//comment that broke flake evaluation:2aeb9c76b
观感
- run qmlformat over DebugService:
e2b017ed8 - add CDS duration tiers, curve tokens and reduceMotion:
c50f30a24
重构
- converge tabular numerals on NText.numeric:
e9a854140
性能
- fade arrow-popup backgrounds by item opacity, not path colour:
a64a6da65
文档
- how to tell a lost press from a QML bug; known issue:
4332151e8 - record the arrow-panel scale exception and the spline cap:
163605412 - adopt the CDS motion language and surface finish:
232877667
验证
- read settings-tree's contentY directly, not from a tree dump:
688682864 - move item_centre next to the other scene helpers:
d05a17198 - make cc-switch find its switch by objectName and assert it:
260cf95b0 - run lockscreen last in the default scene set as well:
742a3ebea - select the Papirus icon theme in isolated sessions:
362905c30 - say so when edge-fade has no scrollable page to test:
988a1ca47 - park edge-fade at the middle of the scroll range:
b88bb5ee6 - make cc-notif-groups run all four steps and assert them:
18ec80ef4 - add an edge-fade scene that asserts the fade widths:
b9c5a03df - add cc-notif-focus for the keyboard focus ring:
8bfa0ddea - let a burst skip the still-screen wait:
cf0166dcb - add a motion-tooltip scene:
8585a0ab3 - assert the menu shadow margin is click-through; fix VINPUT clash:
e80f38d62 - fail runs on config load failures and crashes; add motion-panel:
68b3b85d6 - wait for lazily painted layers before the first burst:
c3ecb0047 - let qmlfmt.sh fall back to the nix test environment:
2a9c64a85 - add frame-burst motion capture with filmstrips and curves:
fa5d0caf8 - add a nix package backend to the test and lint harness:
893922430