Evaluation branch: a full Aero skin, including frameless windows with our own title bar, switchable against the existing modern look. The app already had a four-axis runtime skinning mechanism and zero component stylesheets, so the skin is one new setting plus one stylesheet section rather than a parallel UI. The key move is cascade order: 7.css is imported into a `skin` layer ABOVE Tailwind's `utilities`, so its bare element rules outrank the ~1900 inline utility classes already in the templates. Template changes are limited to additive, skin-inert hooks (ARIA roles, `has-scrollbar`, `w7-toolbar`, `w7-btn`). - styles.css: explicit layer order, `7.css/dist/7.scoped.css` via `layer(skin)`, a token bridge re-pointing the existing semantic tokens at Win7 values (no new tokens, so `@theme inline` is untouched), a hand-authored dark Win7 palette, and neutralizers that `revert-layer` 7.css's dialog-button metrics back to the utility layer. Neutralizers must live inside `skin`, not `skinfix` — `revert-layer` only reaches `utilities` from one layer up. - Frameless chrome: `chromeOptions(skin)` is now the single place either skin's frame is decided. `titleBarStyle: "hidden"` on every platform, which is also the only way to drop the macOS traffic lights. New `title-bar` component mounted by all three window roots. - Window controls over RPC (minimize/toggle-maximize/close/is-maximized), served per window kind so the X reuses each one's existing close path — editors still get their dirty prompt. electrobun has no maximize event, so the state is derived from `resize`; double-click-to-maximize is implemented here too. - Font: Noto Sans vendored (OFL-1.1) under ui/src/fonts, since Segoe UI is absent off Windows and not redistributable. Verified: backend `tsc --noEmit` clean, `bun run build:ui` clean (486 kB initial, under the 500 kB budget), app launches with the skin active and no console errors. The rendered result has not been eyeballed — screen capture and accessibility are both denied to the shell on this machine. Co-Authored-By: Claude <noreply@anthropic.com>
32 lines
737 B
JSON
32 lines
737 B
JSON
{
|
|
"name": "ui",
|
|
"version": "0.0.0",
|
|
"scripts": {
|
|
"ng": "ng",
|
|
"start": "ng serve",
|
|
"build": "ng build"
|
|
},
|
|
"private": true,
|
|
"packageManager": "bun@1.3.13",
|
|
"dependencies": {
|
|
"7.css": "^0.21.1",
|
|
"@angular/common": "^22.0.0",
|
|
"@angular/compiler": "^22.0.0",
|
|
"@angular/core": "^22.0.0",
|
|
"@angular/platform-browser": "^22.0.0",
|
|
"@ng-icons/core": "^34.0.0",
|
|
"@ng-icons/mynaui": "^34.0.0",
|
|
"rxjs": "~7.8.0",
|
|
"tslib": "^2.3.0"
|
|
},
|
|
"devDependencies": {
|
|
"@angular/build": "^22.0.6",
|
|
"@angular/cli": "^22.0.6",
|
|
"@angular/compiler-cli": "^22.0.0",
|
|
"@tailwindcss/postcss": "^4.0.0",
|
|
"postcss": "^8.5.0",
|
|
"tailwindcss": "^4.0.0",
|
|
"typescript": "~6.0.2"
|
|
}
|
|
}
|