标签页图标只声明 favicon.ico。它带 16/32/48/64 四个尺寸、是照着小尺寸调过 的;而这套素材里 .ico 是深底浅图、PNG 那一组是白底黑图,两个都声明的话浏览器 会按显示密度在两者间挑,同一个标签页会换样子。 素材里的 favicon.svg 没有采用:里面是一张 512px 的 PNG 用 base64 塞在 <image> 里,不是矢量,比 favicon.png 还大 3.4KB。
设计基调定为:层次靠底色和一像素描边而不是投影,一屏最多两层容器,间距给足。 tokens.css 顶部写了这三条规则,后面的组件都是它们的推论。 入站列表把两套写法合并成一张表:老式顶层端口字段(mixed-port 这些)和 listeners 数组。 只画 listeners 的话,一台只用 mixed-port 的机器打开会是空板,而那个端口正在跑—— 这等于对用户撒谎。合并逻辑在 shared/inbounds.ts,带 10 个测试。 后端顺带能提供打包后的静态文件了,一个进程就能跑起来。