Commit Graph

719 Commits

Author SHA1 Message Date
chinboy ca55fc175c fix(Build): centralize generated artifact exclusions 2026-08-16 11:08:01 +08:00
chinboy b586d905ec refactor(Build): flatten infrastructure layout 2026-08-16 11:08:01 +08:00
chinboy 5f5848dd01 refactor(Build): finalize infrastructure directory layout 2026-08-16 11:05:11 +08:00
chinboy b11be513e2 build(Localization): infer language contracts and trim manifest metadata 2026-08-16 10:51:25 +08:00
chinboy bd5633bab2 feat(Gallery): enhance metadata layout and introduce responsive media breakpoints 2026-08-16 10:51:25 +08:00
chinboy bceea040fa docs(Build): define build infrastructure layout 2026-08-16 10:51:25 +08:00
chinboy b3f34cbe61 fix(Window): prevent native title bar flash on Wayland startup 2026-08-15 15:40:28 +08:00
chinboy e80be2d802 feat(AOT): add compile-time registration for trimmed apps 2026-08-13 23:05:43 +08:00
chinboy 9dc3d80324 docs(Mobile): integrate mobile documentation navigation 2026-08-11 11:25:12 +08:00
chinboy 8f0d42b602 docs(Mobile): define isolated mobile LLMS output 2026-08-11 11:25:12 +08:00
chinboy 1e7fedb456 docs(Android): add mobile platform documentation boundaries 2026-08-11 11:25:12 +08:00
chinboy 9917774993 docs(iOS): split platform guide and validation evidence 2026-08-11 11:25:12 +08:00
chinboy 55a8a7f1d9 docs(iOS): move platform guide into canonical directory 2026-08-11 11:25:11 +08:00
chinboy 447359a8ee docs(Mobile): define mobile Gallery ownership 2026-08-11 11:25:11 +08:00
chinboy 97ee62fc84 docs(Mobile): add mobile control capability inventory 2026-08-11 11:25:11 +08:00
chinboy 6e81c13225 docs(Mobile): define mobile package and adapter boundaries 2026-08-11 11:25:11 +08:00
chinboy 957e7de590 docs(Mobile): add mobile runtime system architecture 2026-08-11 11:25:11 +08:00
chinboy 79a1ad5343 docs(Mobile): define mobile documentation authoring rules 2026-08-11 11:25:11 +08:00
chinboy 6fdbbcaef3 refactor(SearchEdit): rename IsSearching to IsOperating for clarity 2026-08-11 10:33:00 +08:00
chinboy 16150957de refactor(SearchEdit)!: unify search request semantics 2026-08-11 10:03:33 +08:00
chinboy 1d50b45555 docs(Mobile): define mobile documentation architecture 2026-08-11 08:44:17 +08:00
chinboy 1ff73e9385 docs(Mobile): define mobile controls architecture 2026-08-11 08:11:53 +08:00
chinboy a6fc404ba6 docs(Typography): add font package authoring guide
新增 `docs/guides/typography/`,补上字体包的操作路径。此前 `architecture/systems/typography/`
只描述字体子系统的架构与契约,要新做一个包得自己去读 `AtomUI.Fonts.AlibabaSans` 和
`AtomUI.Fonts.AlibabaPuHuiTi` 的源码反推步骤。按文档分类规范,"怎么完成任务"属于 Guide。

教程从"注册和生效是两件事"开篇,而非从建项目开始。注册链路与生效链路互不相干,只在 Avalonia
解析 `FontFamily` 字符串时汇合,因此只注册 `FontCollection` 不会改变任何界面外观 —— 这是做字体
包最费时间的坑,放在写代码之前说。其余章节依次为建项目、确认字族名、`FontCollection`、两个注册
扩展、`WithDefaultFontFamily` 激活、验证排查、分发许可与交付清单。

两处内容经实测修正,未照现有两个包的表象推断:

- `fc-scan` 输出为一行逗号分隔,且只有第一项可用。实扫 PuHuiTi 得
  `Alibaba PuHuiTi 3.0,阿里巴巴普惠体 3.0,Alibaba PuHuiTi 3.0 55 Regular,...`,本地化名与子族
  全名写进代码均不生效。同一命令解释了字重归组:AlibabaSans 六个面首项均为 `Alibaba Sans`。
  文中给出真实输出而非文字描述。
- `FontManager.Current.SystemFonts` 全仓库无调用点,该排查片段已对 Avalonia 12.1.1 单独编译
  验证后收录。

记录三处读现有包看不出的行为,均经源码核对:

- 主题配置显式声明 `FontFamily` Token 时 `WithDefaultFontFamily` 完全失效。
  `ThemeManager.AddDefaultFont` 在该 key 已存在时提前返回,是有意的优先级设计,但表现为"调用已
  执行而界面未变",故列入排查清单。
- 字符串格式错误抛异常,字族缺失只静默回退,两种失败模式的可观测性不同。
- `AtomUI.Controls` 引用 `AtomUI.Fonts.AlibabaSans` 但不调用 `AddFontCollection`。引用只保证资源
  随构建产出,注册是应用的责任,库不应代应用决定。

`AlibabaSans` 的注册扩展位于全局命名空间,按历史遗留记录而非范例,并指出可观察后果:Desktop
Gallery 无 `using` 即可调用,Browser Gallery 为另一个包必须显式 `using`。新包应带命名空间。

另标注两个现存包均未附字体许可文件 —— 将字体编译进程序集即构成再分发。此处仅在文档中点明,未
改动包内容,补充许可属授权决定而非文档变更。

同步接入 Guide 导航,并从 typography 架构 overview 与 font-packages 建立反向链接。
2026-08-10 16:53:18 +08:00
chinboy 4391e14155 docs(Typography): define font subsystem architecture
新增 `docs/architecture/systems/typography/`,记录字体子系统的当前架构。此前字体只有
`docs/modules/fonts/overview.md` 一页概览,跨模块的契约、派生算法和边界没有正式所有者。

字体跨 `AtomUI.Core`、两个 `AtomUI.Fonts.*` 包、`AtomUI.Controls` 和消费控件,按文档分类规范
属于 `architecture/systems/`。核心结论是它由两条互不相干的轴组成:字体资源注册进 Avalonia
`FontManager`,与主题编译字号行高 Token,两者只在解析 `FontFamily` 字符串时汇合,没有任何代码
把它们对账。

按职责拆成六篇:overview 定位与两轴架构;font-packages 讲 `FontCollection` 与注册入口;
font-family-resolution 讲回退链、覆盖路径与注入时序;tokens-and-derivation 讲 23 个 Token 的
分级与 `e^(i/5)` 阶梯算法;consumption 讲 AXAML 与 C# 消费面和相对行高换算;verification 讲
AOT、兼容性、验证要求与已知不一致。

记录三处已确认的实现问题,均经源码核对:

- Compact 算法不压缩字号。`CalculateFontMapTokenValues` 以 `FontSize` 而非 `FontSizeSM` 为基数,
  且第 1 档强制等于基数使重算幂等,因此 Compact 与 Default 的字体 Token 完全相同。上游 antd
  compact 取 `fontSizeSM`,`FontSize = 14` 时应得 12 而非 14。共享派生函数里还留着上游那句
  `// Smaller size font-size as base` 注释,位置已使其不再成立。
- 默认字体族首项 `fonts:AlibabaSans` 是前向引用。`AtomUI.Core` 不依赖字体包,`AtomUI.Controls`
  的项目引用也不含 `AddFontCollection`;未注册时 Avalonia 静默回退,全程无诊断信号。
- 相对行高到绝对行高的换算在五个控件中各写一遍,无共享 helper,且必须同时监听行高与字号两个
  属性才不会在字号变化后失配。

同步在 `docs/overview.md`、Architecture 与 systems 导航、主题系统导航和 Fonts 模块接入入口。
2026-08-10 14:25:44 +08:00
chinboy 9f6ec36645 docs: rename directory entry files to overview.md
统一文档目录的入口文件名为 `overview.md`,取代原先的 `index.md`。单 Control 目录本来就用
`overview.md`,此前只有目录级入口用 `index.md`,两套命名并存;现在全库一致。

改名覆盖 42 个入口文件:`docs/` 根、一级分类目录、Architecture 分组与跨模块系统目录、Module
目录、Control 平台与分类目录、Guide 与 Reference 子目录。`docs/AI/generated/index.md` 是手工
维护的导航页,一并改名。

生成产物 `docs/AI/generated/llms/**/index-cn.md` 保持原名,它属于 LLMs Generator 的输出契约。

同步更新 28 个正式文档与 `AGENTS.md` 中的入站链接,以及两处目录树示意图。改名后全部相对链接
可解析,LLMs Generator `verify` 通过(78 控件 / 159 文件),单 Control 四件套文件名契约未变。

新增 `docs/engineering/contributing/documentation-structure-guidelines.md` 承载入口命名、文档
拆分标准、事实所有权和链接规范。此前该规则只写在带日期的设计过程记录里,不适合作为长期来源。
`docs/superpowers/specs/2026-08-10-documentation-information-architecture-design.md` 保留原文
并加取代说明,其余结论继续有效。
2026-08-10 14:24:36 +08:00
chinboy cafec81a6f docs: organize AI outputs and prune redundant module pages 2026-08-10 11:05:37 +08:00
chinboy 5c950d22d6 docs: repair documentation references after reorganization 2026-08-10 10:04:59 +08:00
chinboy 3f5cc5b56f docs: standardize navigation releases and generated output 2026-08-10 09:57:22 +08:00
chinboy 0bc3447ebb docs: reorganize module engineering and Gallery domains 2026-08-10 09:32:07 +08:00
chinboy bc482f94d1 docs(Controls): reorganize shared infrastructure documentation 2026-08-10 09:12:36 +08:00
chinboy a43ea82e4b docs(Localization): separate system module and reference docs 2026-08-10 09:02:52 +08:00
chinboy 83ff8e94ed docs(Theme): separate architecture guides and reference 2026-08-10 08:59:22 +08:00
chinboy ff9590d805 docs(Architecture): establish global documentation navigation 2026-08-10 08:54:54 +08:00
chinboy 1ae1479a48 docs(Architecture): define repository documentation taxonomy 2026-08-10 08:48:09 +08:00
chinboy 3ab7df2ba0 docs(Core): define Semantic Part architecture and generator contract 2026-08-10 08:28:42 +08:00
chinboy 12ba9b92ef chore(Release): add build and packaging for AtomUI language packs 2026-08-09 13:05:32 +08:00
chinboy e022023802 chore(Release): update Avalonia to 12.1.1 and increment AtomUI version to 6.1.3 2026-08-08 23:50:14 +08:00
chinboy 85ac813fc4 refactor(Localization): update namespace for localization build tasks and adjust target states in XLIFF files 2026-08-08 17:33:08 +08:00
chinboy ef7464d11d docs(Localization): translate generator design to Chinese 2026-08-08 13:25:51 +08:00
chinboy dff4d37665 docs(Localization): define generator-first build design 2026-08-08 13:23:19 +08:00
chinboy f501cee604 refactor(Localization): simplify language pack authoring 2026-08-08 12:23:29 +08:00
chinboy fee5ef72b8 docs(Localization): define deferred language pack validation 2026-08-08 10:39:04 +08:00
chinboy ee680c3546 refactor(Localization): rename LocalizationRuntime to LocalizationHost and update related references 2026-08-08 09:32:14 +08:00
chinboy 46e3156d6d gallery(Localization): add pt-BR resources and responsive demos 2026-08-08 00:05:25 +08:00
chinboy cf127d7793 build(Localization): support language pack project references 2026-08-07 17:58:52 +08:00
chinboy 03866a7d88 feat(Localization): finalize pt-BR control translations 2026-08-07 16:36:25 +08:00
chinboy 93fba1053c feat(Localization): add pt-BR control translation drafts 2026-08-07 16:26:24 +08:00
chinboy 17be2f4b9a fix(Localization): support intentional empty translations 2026-08-07 16:19:53 +08:00
chinboy bd59e44b1b feat(Localization): scaffold official pt-BR language packages 2026-08-07 15:43:46 +08:00
chinboy 39513bc134 docs(Localization): define modular pt-BR language pack architecture 2026-08-07 13:55:55 +08:00