不是 Windows 8 磁贴式堆叠,而是信息优先的直角版式;无边框 + 贴边追求屏幕利用率;动画用受控减速,而非系统默认的物理弹性。
无圆角、无曲线,一切由直角切出。显示器是像素矩阵,界面应直接而诚实。
去装饰,信息优先,大量元件无缝贴边。MetroInsets 一次解 Android 几何分裂。
非物理动画(UWP easing,无弹簧/回弹),受控减速。动画用 :kanesumi-anim 的 Sokuou 预设。
单一 progress 驱动所有动画;视觉属性一律在 graphicsLayer / drawBehind 读取,绝不在组合阶段逐帧重组。
所有动画由一个 Float 驱动,任意时刻可中断。
视觉属性在 draw phase 读取,不触发 Compose 重组作用域扩张。
类稳定性显式标注,避免重组作用域扩张。
库不提供 state 驱动动画的高层组件,动画值只从 Animatable 进 graphicsLayer。
kanesumi-anim 消费 Sokuou 曲线与 Spring 物理,不吞并引擎。
层 0 起自带语义树,MetroIndication 只负责视觉反馈。
Compose 之上、Material 之下——保留布局/文本/手势/a11y 能力,摆脱 M3 魔改。
| 模块 | 层 | 职责 |
|---|---|---|
| :kanesumi-core | 层 0 | MetroInsets 安全区、MetroBottomStack、MetroTheme/Colors/Typography、MetroText/Icon、MetroIndication 直角闪切 |
| :kanesumi-anim | 层 1 | Sokuou 分支——UWP easing 全家族、sokuouSpring 桥接、SokuouPresets/Tweens、MetroFlingBehavior |
| :kanesumi-structure | 层 2 | MetroShell / MetroAppBar / MetroDetailScaffold / MetroTopScrim / MetroBottomNav |
| :kanesumi-controls | 层 3 | MetroSurface/Button/ListRow/Switch/TabRow/Dialog/BottomSheet/TextField/Drawer 等全部控件 |
| :sample | 演示 | 覆盖所有组件的真实交互流演示 app |
v0.1.0-SNAPSHOT——组件层第一轮完成 + 首屏 Ncrust 反向迁移落地。Kanesumi 已被 Ncrust 通过 Gradle includeBuild 实际消费,SearchScreen 作为首个迁移屏跑通,基础设施验证通过。
矩(かね)—— 矩尺,画出直角的工具。「以直角丈量边缘」的几何身份。
隅(すみ)—— 角落、边缘,同音「墨」,日本墨的东方意境。直角、无边框、贴边。
合意:「以直角丈量边缘」 —— 直角 / 无边框 / 贴边,浓缩了库的整个几何身份。