Skip to content

feat(ui): redesign launcher as a deconstructed construction drawing - #232

Open
muyuzhong wants to merge 2 commits into
mainfrom
feat/ui-deconstruct
Open

muyuzhong wants to merge 2 commits into
mainfrom
feat/ui-deconstruct

Conversation

@muyuzhong

@muyuzhong muyuzhong commented Oct 24, 2026 •

Copy link
Copy Markdown

描述

把启动器界面重画成一张「还没收拾干净的施工图」:网格、轴号、裁切角、尺寸线都露在外面;超大标题里有一个字被「丢掉」只剩轮廓(DropOut 本来就是神经网络里的 dropout);窗口互相压着、微微歪斜;有些文字表面上是一串 base64,复制下来解码才读得到。粒子背景和侧边栏那一版整个换掉了。

设计说明在 packages/ui/design/DECONSTRUCT.md。

更改类型

  • 新功能(添加功能的非破坏性更改)
  • UI/UX 改进
  • 配置更改
  • 测试添加或更新
  • 文档更新

LLM 生成代码声明

  • 此 PR 包含 LLM 生成的代码,我提供质量担保
  • 此 PR 包含 LLM 生成的代码,我不提供质量担保
  • 此 PR 不包含 LLM 生成的代码

更改内容

界面

  • 新外壳:顶栏标签导航 + 自绘窗口按钮、施工网格和标尺、底部状态栏(像压成一行的 F3)。
  • 首页:丢一个字的超大标题、▶▶▶ Launch 主操作、互相压着的 INSTANCE.CFG / READINESS.SYS 窗口、两个小部件(DROPOUT 神经元、DAYLIGHT 游戏时钟)、抖色天空。
  • 实例、助手、设置页换了页头(空心大号章节数字)和窗口样式;shadcn 基础组件直接改了样式,向导、编辑器、弹窗也跟着换了语言。
  • 彩蛋:↑↑↓↓←→←→BA 解构模式、F3 调试信息、竖排密文和几块 [B.64]。
  • 字体本地打包(Inter、Inter Tight、JetBrains Mono、Departure Mono),不走 CDN。

尺寸规则(照官方启动器)

  • 界面全部是固定像素,只跟系统显示缩放(125% / 150%,devicePixelRatio)走,不随窗口大小缩放,也不锁比例。
  • 窗口变大时多出来的地方给施工网格(格子固定,窗口越大格子越多)、天空和留白,标题、按钮、导航不变大。
  • 放不下的内容在自己那一栏里滚动,不缩小字。

配置

  • tauri.conf.json:decorations: false(自绘标题栏),最小窗口保持 905×575。
  • capabilities/default.json:加了拖动、最小化、最大化、关闭窗口四个权限。
  • .changes/ui-deconstruct-redesign.md:dropout 和 @dropout/ui 各一条 patch:feat。

截图

真机 Tauri 窗口(Linux / KDE Wayland,100% 缩放),演示数据(测试夹具),不含真实账号。

默认窗口 1024×768(浅色 / 深色)

首页 浅色 1024×768 首页 深色 1024×768

实例 / 助手 / 设置(1024×768)

实例页 助手页 设置页

测试

  • pnpm biome ci、pnpm -C packages/ui test:unit、pnpm -C packages/ui build 通过。
  • pnpm -C packages/ui test:ui:186 个全过(配置编辑器截图有一次截图超时,单独重跑 12/12 通过)。
  • 新增测试「界面不随窗口缩放」:905×575、1024×768、1280×720、1920×1080、2560×1440 下首页标题、启动按钮、导航的字号和尺寸完全一样,左右两栏不重叠,没有横向滚动。
  • 截图基线重画了 Linux 的 80 张;macOS 的旧基线没动。
  • deviceScaleFactor: 1.5 截图:界面整体放大 1.5 倍,排版不变。
  • cargo check -p dropout 通过。
  • 真机 Tauri 窗口(Linux / KDE Wayland):拉成 1600×600 不会被吸回 4:3;要 800×500 会被挡在最小 905×575;最大化铺满 2560×1440,最大化按钮换成还原图标。

没验证的

  • 只在 Linux(KDE Wayland)上看过真机窗口,Windows / macOS 没测;用鼠标拖动标题栏没试(窗口尺寸是用 KWin 脚本改的)。
  • 浏览页卡片、实例编辑弹窗、导入 / 转换向导只换了基础组件和颜色,没有逐屏打磨。

🤖 Generated with Claude Code

Replace the particle sidebar layout with a construction-drawing shell:
an exposed construction grid with generated axis labels, a frameless
window with a custom title bar, oversized titles with a dropped glyph,
overlapping system windows, a dithered sky and hidden base64 easter
eggs. The shadcn primitives are restyled so wizards and dialogs follow.

The interface uses fixed CSS pixels like the official Minecraft
launcher: it follows only the system display scale, never the window
size. Extra window space goes to the grid, the sky and whitespace;
content that does not fit scrolls inside its own column. The minimum
window stays at 905x575 and the window ratio is not locked.

Bundle Inter, Inter Tight, JetBrains Mono and Departure Mono locally,
refresh the Linux UI snapshot baselines, and add a test that keeps the
home title, launch button and navigation the same size across five
window sizes.

Reviewed-by: Claude Opus 5.5
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@sourcery-ai

sourcery-ai Bot commented Oct 24, 2026

Copy link
Copy Markdown
Contributor

Sorry @muyuzhong, your pull request is larger than the review limit of 150,000 diff characters

@github-actions

github-actions Bot commented Oct 24, 2026 •

Copy link
Copy Markdown
Contributor

📦 Semifold release plan

Plan calculated through commit d5971e4.

Changesets introduced by this pull request: ui-deconstruct-redesign

2 changesets · 3 packages

Package Current Next Bump Reason
@dropout/docs 0.1.0-rc.2 0.1.0-rc.3 patch changeset
@dropout/ui 0.1.0-rc.2 0.1.0-rc.3 patch changeset
dropout 0.2.0-rc.2 0.2.0-rc.3 patch changeset

This comment updates automatically as the pull request changes.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants