Skip to content

Commit f3101e2

Browse files
committed
feat(ui): match neon launcher design with responsive logo
1 parent 3f419d7 commit f3101e2

14 files changed

Lines changed: 852 additions & 264 deletions

File tree

β€ŽREADME.mdβ€Ž

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,10 +92,12 @@ SyntaxLauncher stores only the selected offline nickname, Minecraft version/chan
9292

9393
## Visual identity
9494

95-
The desktop home uses an optimized cinematic JPEG derived from the approved concept: a neon-blue voxel block/arrow against Minecraft night scenery, subdued behind actual Compose text. The 128px app icon is never enlarged as hero artwork. App-wide `Surface` semantics ensure readable text on dark cards. The settings panel has a visible scrollbar and the initial window size adapts to the available desktop work area.
95+
The desktop home follows the approved neon-blue concept with a detailed voxel valley, a separate transparent block/arrow foreground, ink-blue panels, cyan outline icons and a prominent gradient Play action. A subtle shadow and cyan halo lift the mark from the scenery; its measured responsive layout preserves the original proportions, keeps the full arrow visible and reserves space away from the heading/profile in compact windows. The 128px app icon is never enlarged as hero artwork. All labels and controls are native Compose. The setup panel has a visible scrollbar; narrow windows stack the hero/Play and setup panel into a scrollable page. The initial window size adapts to the desktop work area, with a 400 Γ— 400 minimum. [Artwork assets and prompts](launcher-desktop/src/main/resources/branding/README.md) document the generated layers.
9696

9797
The SyntaxLauncher product mark is a navy/cobalt/cyan voxel grass-and-dirt block with an upward orbital arrow. The launcher uses a matching dark-blue Compose UI with a bright blue Play accent, quiet secondary surfaces and semantic error colors.
9898

99+
Deterministic desktop render tests cover the ready home, nickname validation/disabled Play, quick instance selection, narrow/short windows and 150% scaling. A live-resize regression checks 27 hero size/density combinations at 100%, 150% and 200%, including both directions across breakpoints, and rejects cropped, distorted or overlapping logo/text bounds. Run `./gradlew :launcher-desktop:test`; generated QA images are under `launcher-desktop/build/reports/ui/`. These tests use mocked metadata and temporary profiles; they do not start Minecraft or access real accounts.
100+
99101
The optimized transparent icon is stored in `launcher-desktop/src/main/resources/branding/syntaxlauncher-icon.png` and is used in the window chrome, launcher header and Linux application package. The authoritative [color palette and UI rules](docs/DESIGN.md#syntaxlauncher-blue-identity-october-2026) cover future features.
100102

101103
## v0.1 test builds

β€Ždocs/DESIGN.mdβ€Ž

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -159,28 +159,28 @@ The approved mark is a voxel dirt/grass block with a navy/cobalt/cyan top and an
159159

160160
| UI role | Token |
161161
| --- | --- |
162-
| Background | `#0A101C` |
163-
| Surface | `#131F31` |
164-
| Surface variant | `#203149` |
165-
| Primary / Play | `#48BEF5` |
166-
| Primary container | `#163C61` |
162+
| Background | `#030F20` |
163+
| Surface | `#08192E` |
164+
| Surface variant | `#10243B` |
165+
| Primary / Play | `#00D5FF` |
166+
| Primary container | `#06355A` |
167167
| Secondary | `#91B5DB` |
168-
| Cyan detail | `#79DDF7` |
169-
| Main text | `#F0F6FF` |
170-
| Muted text | `#ACBFD6` |
171-
| Outline | `#49617D` |
168+
| Cyan detail | `#00D5FF` |
169+
| Main text | `#F3F7FF` |
170+
| Muted text | `#B3CBEA` |
171+
| Outline | `#284967` |
172172

173-
The hero gradient is `#102B50 β†’ #0C203C β†’ #0A1528`. Reserve vivid neon for the icon and small interactive accents. Do not reintroduce green/teal prototype UI colors or recolor semantic warnings and errors blue. Use the central `SyntaxTheme.kt` tokens instead of scattering color literals.
173+
Panels use restrained `#0C2444 β†’ #08192E` depth, with `#135582` outlines. The enabled Play button uses `#34D7F5 β†’ #009EF4`; its disabled state uses a quiet solid field color. Reserve vivid neon for the icon and small interactive accents. Do not reintroduce green/teal prototype UI colors or recolor semantic warnings and errors blue. Use the central `SyntaxTheme.kt` tokens instead of scattering color literals.
174174

175175
### Desktop hero and responsive shell (October 2026)
176176

177-
- The hero uses a compact, local, darkened JPEG derived from the approved high-detail launcher concept (voxel block, orbital arrow and Minecraft night scenery). It deliberately has no pre-rendered labels or UI controls. Avoid upscaling a tiny 128px app icon into hero artwork; that produced visibly blurry results. The source screenshot is not rendered as a UI screenshot. All controls remain native Compose.
177+
- The hero uses a local cinematic voxel valley JPEG plus a separate transparent PNG of the blue block/orbit/arrow. Both were generated with the built-in imagegen tool from the approved reference; see [asset provenance and prompts](../launcher-desktop/src/main/resources/branding/README.md). The landscape deliberately has no logo, pre-rendered labels or UI controls. Avoid upscaling a tiny 128px app icon into hero artwork; that produced visibly blurry results. The source screenshot is not rendered as a UI screenshot. All controls remain native Compose.
178178
- Preserve a left-to-right dark scrim. Text and the Minecraft version must stay readable independent of background artwork.
179-
- Use the bright logo and a cyan secondary line in the heading as the focal detail. Do not replicate glow throughout all controls.
179+
- Position the foreground mark independently with `ContentScale.Fit` and derive its aspect ratio from the asset. Measure the heading/profile first and reserve disjoint rectangles: text on the left and logo on the right above 640 dp of hero width; below that width, put the logo below the heading and beside the profile. Fit both dimensions to the available space on every measurement, so resizing never crops its arrow, distorts the mark or places it underneath text. Compact, short heroes reduce the title and omit the secondary tagline to preserve the logo and profile. A soft static navy radial shadow and faint cyan halo distinguish it from the landscape without a rectangular backing, runtime blur or continuous animation. Use the bright mark and cyan secondary heading as the focal details; do not replicate glow throughout all controls.
180180
- Use an application-wide Material `Surface` for proper light text over the dark theme. Do not depend on default `Text` content colors after drawing raw backgrounds.
181181
- The main window chooses an initial size constrained by the desktop work area. The instance panel is vertically scrollable, with a visible scrollbar; crucial controls should be visible without scrolling on typical full-HD screens.
182-
- A compact hero typography variant avoids text collisions when the user resizes the window. Never make unsupported future features appear as active navigation.
183-
- The optimized resource JPEG is loaded locally via painterResource without network access, runtime blur, repeated animation or dynamic downloads.
182+
- Compact hero typography avoids text collisions. Below 760 dp of content width, stack the hero/Play and setup panel with a visible page scrollbar; otherwise keep Play visible and scroll the setup panel independently. Very short windows scroll the page as well. The minimum native window is 400 Γ— 400. Never make unsupported future features appear as active navigation.
183+
- Optimized JPEG/PNG resources load locally via painterResource without network access, runtime blur, repeated animation or dynamic downloads. Shared vector icons, 18 dp panel radii, 9 dp field radii and typography live in `SyntaxTheme.kt` / `SyntaxComponents.kt`. Account setup details belong behind the Player information action, keeping the normal launch screen concise.
184184

185185
## 8. Typography
186186

β€Ždocs/ROADMAP.mdβ€Ž

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -142,17 +142,22 @@ Goal: launch a selected vanilla Minecraft version using an offline account and a
142142

143143
## v0.1 UI
144144

145-
- [ ] 🚧 IN PROGRESS β€” replaced weak procedural hero/background and low-resolution enlarged app icon with approved concept-derived cinematic imagery, real Home/Instances header interaction and refined high-contrast Play treatment. Requires CI and visual screenshot acceptance.
145+
- [x] Make the launcher logo respond to the measured hero/text space and original asset aspect ratio: reserve separate text/logo areas, reflow below the heading in narrow heroes, and verify 27 resize/density cases without cropping, distortion or text collisions (19 October 2026).
146146

147-
- [ ] 🚧 IN PROGRESS β€” premium navy voxel landscape, subdued hero scrims, prominently staged blue logo, corrected light-on-dark content colors and improved Play hierarchy; screen resizing and scrollable instance panel implemented. CI/desktop visual acceptance pending.
147+
- [x] Match the supplied neon concept with a detailed voxel landscape, independently fitted transparent block/arrow, subtle separation shadow/halo, ink-blue panels, shared cyan vector icons, compact controls and correctly disabled Play styling. Local `test build` and Compose render review passed on 19 October 2026.
148+
- [x] Add deterministic headless home rendering/interaction checks for 1440Γ—810, 1024Γ—640, 440Γ—740, 400Γ—400 and 150% scaling; validate nickname/Play state and access to settings by scrolling. Native keyboard/focus and other-platform acceptance remain separate open gates.
148149

149-
- [ ] 🚧 IN PROGRESS β€” approved blue voxel/arrow mark integrated into desktop header and window; navy/cobalt/cyan Compose theme and Linux package icon configured. Cross-platform CI and manual UI visual review are pending.
150+
- [ ] 🚧 IN PROGRESS β€” reference-based cinematic scenery and independent transparent mark, Home/Instances interactions and high-contrast Play treatment now pass local build/tests and headless render review. Native desktop, keyboard/focus and cross-platform visual acceptance remain open.
151+
152+
- [ ] 🚧 IN PROGRESS β€” voxel valley, readable scrims and independently fitted blue foreground mark implemented; short/narrow layouts and 150% scaling pass deterministic render checks. Native OS/DPI acceptance remains pending.
153+
154+
- [ ] 🚧 IN PROGRESS β€” blue voxel/arrow mark integrated into desktop header/window; updated ink-blue/cyan theme and existing Linux package icon configured. Local compilation passes; package/native visual acceptance of this revision remains pending.
150155

151156
- [ ] 🚧 IN PROGRESS β€” v0.1 Compose home redesigned around a high-contrast atmospheric hero, prominent contextual Play CTA, compact profile/version/RAM settings, branded header, semantic status and progressive error details; full platform CI and manual UX/accessibility review pending.
152-
- [ ] 🚧 IN PROGRESS β€” shared dark color roles, restrained mint accent, consistent 14–26 dp radii, typographic hierarchy and lighter surface grouping added; resizing, focus and DPI evaluation still pending.
157+
- [ ] 🚧 IN PROGRESS β€” shared ink-blue/cyan roles, 18 dp panels, 9 dp controls, typography and vector components implemented; deterministic resizing/150% rendering passes. Native focus/accessibility and platform DPI evaluation still pending.
153158

154159
- [ ] 🚧 IN PROGRESS β€” offline nickname field validates username and feeds `OfflineAccount.create()` for the real Play pipeline; persistence/full UI verification remains pending.
155-
- [ ] 🚧 IN PROGRESS β€” Minecraft version selector and release/snapshot filters are driven by the official Mojang catalog, with selected metadata verified asynchronously; full Compose execution is pending.
160+
- [ ] 🚧 IN PROGRESS β€” Minecraft version selector and release/snapshot filters are driven by the official Mojang catalog, with selected metadata verified asynchronously; fixture-based Compose rendering passes, native live-catalog acceptance remains pending.
156161
- [ ] 🚧 IN PROGRESS β€” RAM slider feeds `LaunchOptions(maximumMemoryMiB)` on Play; persistence/full UI verification remains pending.
157162
- [ ] 🚧 IN PROGRESS β€” real `Play Minecraft` action now runs prepared metadata β†’ verified game downloads/assets/natives β†’ managed Java β†’ `LaunchPlanBuilder` β†’ `MinecraftProcessManager`; live vanilla launch acceptance is pending.
158163
- [ ] 🚧 IN PROGRESS β€” `MinecraftLaunchCoordinator` exposes preparation phases, per-file progress and completion counts through `StateFlow`; Compose displays status and progress and offers cancellation.
@@ -239,6 +244,8 @@ Goal: separate user installations into isolated, manageable Minecraft instances
239244

240245
## v0.2 UI
241246

247+
- [x] Add a home instance dropdown using the existing guarded selection path for Legacy Vanilla and UUID profiles; a deterministic Compose interaction test verifies profile/version/RAM display without opening the manager.
248+
242249
- [ ] 🚧 IN PROGRESS β€” instance selector/manager added to Compose home without changing primary Play CTA.
243250
- [ ] 🚧 IN PROGRESS β€” create, rename, clone, explicit legacy import, dedicated per-instance settings editor and confirm delete/restore actions; cross-platform and UX acceptance pending.
244251
- [ ] 🚧 IN PROGRESS β€” corrupt/missing saved instances are explicitly reported and cannot silently redirect Play to Legacy Vanilla.

0 commit comments

Comments
Β (0)