Repository navigation
Adopt the filled Aperture logo and Expressive launch motion - #22
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Aperture uses the approved filled shutter mark across launch, the sidebar, Ambient Mode, launcher icons and TV banners. The shared Compose renderer preserves the approved geometry and calculates solid intersections while the shutter unfolds.
Launch, sidebar and poster-wall blades use the active theme’s Inverse Primary, intersections use On Primary, and the play symbol uses Primary. Material TV keeps the approved Aperture Purple palette. Each other theme supplies its own animated Inverse Primary, including Artwork Dynamic, using Google’s public MaterialColors tone-40 API. Launcher assets and exported branding retain the purple identity.
The Material You monochrome layer now uses one white tintable source colour with three alpha levels: play 100%, blades 72% and intersections 32%. Blade fill is masked out beneath the intersections, so their lower opacity remains visible after a launcher applies its theme tint. SVG masters, generated PNG/WebP density assets, and checks are updated.
Launch morphs a circle into a soft square, then into a softly rounded six-sided cookie. The cookie becomes the seed for the six blades, which unfold before the play symbol springs in. The launch, sidebar and Ambient logo spins use the original 650 ms ease-in-out turn, followed by a restrained four-degree settle using the official fast spatial motion token. Shape, scale and opacity use official Material 3 Expressive spatial/effects tokens and respect system animation scaling.
Cinematic Ambient Mode passes the displayed title’s artwork palette into the shared logo renderer: tone-40 blades, tone-20 overlaps and a tone-80 play/wordmark. All three roles transition with the title, with the app palette as the extraction fallback. Symmetrically rounded logo/clock surfaces use a uniform dark tint with restrained artwork colour and 32 dp blur of the actual backdrop. A shared artwork-only GraphicsLayer keeps foreground logos and text sharp. Older Android versions use a stronger tinted fallback when native blur is unavailable.
The TV banner now uses the approved Purple Spectrum direction: a dark-to-purple palette gradient with the sweeping corner shapes, while keeping the logo geometry and Outfit wordmark unchanged. The adaptive banner supplies that colourful background and the padded logo as separate layers, so Google TV can see the palette behind the artwork and all content stays within Android’s visible crop. Flat banners and both adaptive layers are generated at all five densities; onboarding artwork remains full-size.
Validation: Android debug build, unit tests and banner checks pass on commit 74fdf2f: build and tests · updated debug APK.
Website companion: https://github.com/XDanfr/xdan.me/pull/33.