- Tone: the "darker" option is labelled "AMOLED" in all 7 locales — it is
the true-black AMOLED palette. The persisted value stays "darker", so no
settings migration.
- File icons: the Plain/Multi option is gone and the per-category glyphs +
colors are always on. Removed the iconColors setting (type, default,
signal, setter, options row, strings) and the plain branch in
file-icons.ts. A stale "iconColors" key in settings.json is carried
harmlessly and dropped on the next save.
Co-Authored-By: Claude <noreply@anthropic.com>
First step of splitting the UI into two skin trees. All 12 services plus
platform.ts, format.ts, file-icons.ts, icons.ts and app.config.ts move to
ui/src/app/core/ — the layer both skins will share.
This is a pure move: git records all 17 as renames, and no file content
changed beyond import paths. The premise holds because `git diff
main...feat/7css-skin` touches none of these files — the service layer was
already skin-agnostic, so there is nothing to untangle, only to relocate.
Components now reach it through a new `@core/*` tsconfig alias rather than a
relative path. That is deliberate and load-bearing for the next stage: skin
components are about to move under app/skins/<skin>/ at varying depths, and
an alias keeps every one of these 67 imports correct wherever its file ends
up. `@shared/*` (the bun-side src/shared) already set the precedent.
Intra-core imports needed no edits at all — every ./sibling reference among
the moved files points at another moved file.
Verified: tsc clean, `bun run build:ui` clean (AOT resolves every import and
template symbol), and the running window's opaque interior is pixel-identical
to a pre-refactor capture.
Note on that comparison: the Aero frame and title bar do NOT compare equal
between launches, and that is not a regression — .window.glass::before runs
at opacity .6, so the chrome composites over whatever desktop is behind the
window and shifts by a uniform ~8% brightness. The check therefore diffs the
opaque interior (inset 30px sides, 80px top), where anything this refactor
could break would show.
Co-Authored-By: Claude <noreply@anthropic.com>