Skip to content

feat(ui): adopt Material 3 Expressive foundation - #150

Merged
Steadyx merged 14 commits into
mainfrom
feat/material3-expressive
Sep 5, 2026
Merged

feat(ui): adopt Material 3 Expressive foundation#150
Steadyx merged 14 commits into
mainfrom
feat/material3-expressive

Conversation

@Steadyx

@Steadyx Steadyx commented Sep 3, 2026

Copy link
Copy Markdown
Owner

Summary

  • adopt the pinned native Material 3 Expressive theme, typography, shape, and motion foundation
  • isolate Reader, RSVP, and Bionic behind a focused-reading theme boundary that retains stable reading motion and geometry
  • redesign Settings with segmented rows and expressive shared surfaces
  • redesign Library with adaptive navigation, flexible app bars, a prominent import flow, and refreshed Saved and Momentum surfaces
  • document the implemented scope, dependency graph, risks, and remaining qualification work
  • update Coil to 3.6.1 and keep the intentionally pinned AGP update notice visible as informational

Commit structure

  1. document the migration plan
  2. add the expressive Settings pilot
  3. adopt the native Expressive theme and dependency foundation
  4. redesign Library and Settings with related instrumentation coverage
  5. refresh the pinned Compose alpha BOM
  6. classify the AGP update notice as informational while retaining AGP 9.3.2 compatibility
  7. update Coil to 3.6.1

Validation

  • qualityGate passed
  • debug instrumentation APK assembly passed
  • release app bundle passed
  • lint reported 0 errors, 0 warnings, and 1 informational AGP update hint
  • 701 unit tests reported across 119 suites, with 0 failures, 0 errors, and 0 skipped
  • Coil Compose resolves to 3.6.1
  • pre-push qualityCheck passed
  • diff whitespace check passed
  • no lint baseline or broad detector suppression was added

Toolchain compatibility

  • AGP remains at 9.3.2 because Android Studio 2026.1.2 officially supports AGP through 9.3
  • the AndroidGradlePluginVersion notice remains visible as informational rather than being promoted by warningsAsErrors
  • all other lint warnings remain errors

Risks and remaining validation

  • the pinned Compose and Material alpha graph changes the app-wide UI foundation
  • connected instrumentation tests were compiled and packaged but not run on an emulator or device
  • visual checks for compact landscape, wide layouts, large text, RTL, TalkBack, tutorial cutouts, and representative colour themes remain outstanding
  • Reader, RSVP, and Bionic route-level runtime smoke tests remain outstanding

This PR is intentionally a draft until the connected-device and visual qualification above is complete.

Integrate note exports and the JDK/dependency updates. Adapt the export sheet to the pinned Expressive bottom-sheet API and complete the scaffold test fixture.
@Steadyx

Steadyx commented Sep 4, 2026

Copy link
Copy Markdown
Owner Author

Integrated approved note-export PR #151 through main into this feature branch in merge commit 4f8b9d3. PR #150 remains a draft and has not been merged into main.

Integration preserves the Expressive scaffold, theme/BOM pins, navigation and tab restoration while adding all/source/single-note PDF and Markdown export. Resolved Coil to 3.6.2, retained AGP 9.4.0, migrated the export sheet to the pinned alpha bottom-sheet state API, and supplied the new export callback in the scaffold test fixture.

Validation:

  • Full local qualityGate passed under native ARM64 JDK 17; lint reports no issues and all 707 JVM tests pass.
  • Forced Android test compilation and APK builds passed with build/configuration caches disabled.
  • Direct adb instrumentation executed 13 focused tests: 11 passed, 2 failed. Export sheet, PDF renderer, export service, Saved editor/menu coverage and the portrait scaffold case pass. The five Saved methods also passed an isolated direct rerun.
  • The final live export-sheet screenshot was inspected and is readable without clipping.
  • Normal commit/push hooks and git diff --check passed.

Remaining draft-branch follow-up: compactLandscapeKeepsImportActionsAccessibleAndBooksScrollable fails its scroll-position assertion, and collapsedWideRailUsesIconOnlyPrimaryAction finds two displayed/clickable Import File nodes. Both were reproduced independently on a wide emulator viewport. These tests exercise scaffold/BooksContent/theme code unchanged by this merge; they have not been hidden, weakened, or claimed green. Reader/RSVP code and unrelated local documents were untouched.

@Steadyx
Steadyx marked this pull request as ready for review September 5, 2026 10:02
@Steadyx
Steadyx merged commit fe58dba into main Sep 5, 2026
1 check passed
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.

1 participant