fix(iced/feedback): 复审 r3 的 A/B/D/E/F 项 + C 项待 rebase 后改 view_at
(先落一个中间提交,rebase main 之后再按 tower 的修正把空态图标改成 32/view_at)
This commit is contained in:
1 parent
5d9e75efd8
commit
a4cdd61fe5
12 files changed
+325
-108
No files matched your search
@@ -4,7 +4,6 @@
|
||||
//! (宽高/内距/圆角)。合在一个文件里会顶到 400 行红线(AGENTS.md §3-1)。
|
||||
|
||||
use unlucky_design::component_map::Component;
|
||||
use unlucky_design::icons::IconSize;
|
||||
use unlucky_design::spacing::Space;
|
||||
|
||||
use crate::theme::Ui;
|
||||
@@ -83,6 +82,14 @@ pub struct DialogGeometry {
|
||||
}
|
||||
|
||||
impl DialogGeometry {
|
||||
/// 可用宽 → 实际渲染宽:`min(本项目 480, 可用宽)`,再**尊重官方下限 280**。
|
||||
///
|
||||
/// 复审 E:早先 `Dialog::width(200)` 会真的画 200(官方 `DialogMinWidth = 280` 只在测试里)。
|
||||
/// 可用宽 < 280 时仍画 280(**溢出宿主**)—— iced 没有 min-width,这条是 G17-d 之二。
|
||||
pub fn effective_width(&self, available: f32) -> f32 {
|
||||
available.min(self.width).max(self.min_width)
|
||||
}
|
||||
|
||||
/// 从令牌求值(内边距与三个间距全部落在 4px 栅格上 ⇒ 走 `Space`)。
|
||||
pub fn of(ui: &Ui) -> Self {
|
||||
let width = 480.0;
|
||||
@@ -100,14 +107,23 @@ impl DialogGeometry {
|
||||
}
|
||||
}
|
||||
|
||||
/// 空态的几何(**全部 `[估]`**:官方没有这个组件)。
|
||||
/// 空态图标边长 = `icons::view` 的实际渲染尺寸(24),见 [`EmptyStateGeometry::icon`] 的 G18-h。
|
||||
pub const EMPTY_ICON: f32 = 24.0;
|
||||
|
||||
/// 空态的几何(**项目自定**:官方没有这个组件;`[估]` 几何 + `[规格]` 排版 + `[源]` CTA)。
|
||||
#[derive(Debug, Clone, Copy, PartialEq)]
|
||||
pub struct EmptyStateGeometry {
|
||||
/// 图标块边长(96)。
|
||||
pub block: f32,
|
||||
/// 图标块圆角(16,`ShapeScale::Large`)。
|
||||
pub block_radius: f32,
|
||||
/// 块内图标(32,`IconSize::Empty`)。
|
||||
/// 块内图标(**24**,实渲染值)。
|
||||
///
|
||||
/// 欠账 **G18-h**:早先登记的是 `IconSize::Empty`(32),但 `icons::view` 内部把 svg 钉成
|
||||
/// `Length::Fixed(24)`(Q9 的同一处),外面套 32 的盒子只是**居中**、不拉伸子件 ——
|
||||
/// 实测墨迹 20×20、字形 24。所以登记值改成 24,与 `view` 一致。
|
||||
/// 真要 32:需要 `view_at(px)`(把 `icons::RENDER_PX` 也传进去,按 32 重算
|
||||
/// `stroke_width(32)`,否则 1.5px 视觉线宽会变成 2.0px)——那是 **M86** 的 scope,本线不自造。
|
||||
pub icon: f32,
|
||||
/// 块 ↔ 标题(16)。
|
||||
pub gap_title: f32,
|
||||
@@ -124,7 +140,7 @@ impl EmptyStateGeometry {
|
||||
Self {
|
||||
block,
|
||||
block_radius: Component::EmptyState.spec().shape.radius_px(block),
|
||||
icon: IconSize::Empty.px(),
|
||||
icon: EMPTY_ICON,
|
||||
gap_title: ui.space(Space::X4),
|
||||
gap_body: ui.space(Space::X2),
|
||||
gap_action: ui.space(Space::X6),
|
||||
|
||||
Reference in new issue
Block a user