Prismal AGSL v1.0.0
Prismal AGSL 1.0.0
Liquid glass components, progress bar rendering, and specular improvements.
Highlights
- New:
PrismalHorizontalSelector- iOS-style camera-mode picker with a fixed liquid-glass droplet, scrolling labels, spring snap, and configurable chromatic aberration - Progress bar track simplified - track background uses backdrop blur + alpha tint instead of edge refraction
- Bottom tab specular control -
PrismalGlassBottomTabsaccepts aspecularparameter - Nested glass sampling -
LocalPrismalParentGlassLayerfor components that sample a parent glass layer (slider, toggle) - Expanded specular styles - additional presets and playground specular-style picker support
Installation
implementation("com.github.styropyr0:PrismalAGSL:Prismal:1.0.0")Added
PrismalHorizontalSelector
Horizontal selector with a centered liquid-glass capsule and scrolling items underneath.
- Text overload - synchronous
TextMeasurersizing for string labels - Composable overload - arbitrary item content with one-time width measurement
- Fixed droplet with lens refraction, specular, depth shadow, and spring snap on release
- Focus animation - centered item scales up and fades in; side items shrink and dim
chromaticAberration- droplet RGB dispersion in[0, 1](default0.2= 20%)adaptiveLuminance/luminance- optional backdrop-driven frost and blur tuningboldWhenFocused- text overload bolds the centered label (defaulttrue)
PrismalHorizontalSelector(
labels = listOf("VIDEO", "PHOTO", "PORTRAIT"),
selectedIndex = selectedIndex,
onSelected = { selectedIndex = it },
backdrop = backdrop,
textStyle = MaterialTheme.typography.labelMedium,
textColor = MaterialTheme.colorScheme.onSurface,
chromaticAberration = 0.2f,
modifier = Modifier.fillMaxWidth(),
)LocalPrismalParentGlassLayer
Composition local for passing a parent PrismalGlassLayer into nested glass components so sliders and toggles can sample grouped glass surfaces correctly.
Changed
PrismalGlassProgressBar
- Track background is now blur + alpha overlay only - refraction removed (no meaningful visual gain at 8dp track height)
- New parameters:
blurRadius- backdrop blur radius (default4.dp)trackAlpha- tint overlay alpha (default0.2light /0.36dark)trackTint- base neutral tint color (default#787880)
- Vibrancy disabled on the track for a cleaner frosted appearance
PrismalGlassBottomTabs
- Added
specularparameter for custom specular highlights on the selection droplet
PrismalGlassSlider / PrismalGlassToggle
- Read parent glass layer via
LocalPrismalParentGlassLayerfor improved backdrop sampling inside grouped glass containers
Specular
- Extended
PrismalSpecularStylepresets - Specular modifier outline generation fix for non-uniform shapes
Backdrop sampling
- Glass layer modifier updates for more reliable coordinate sampling across window layers
Demo app (:app, not published)
The catalog playground received several updates alongside this release:
- Horizontal selector demo on the Browse tab
- iOS-style glass dropdown with morphing open/close animation
- Alert dialogs and bottom sheet glass surfaces
- Custom wallpaper picker with persistence across app restarts
- Search bar animation and brightness control in Settings
- Specular style picker in Settings
- Updated tab icons and grouped UI polish
./gradlew :app:installDebugMigration from 0.0.1
| 0.0.1 | 1.0.0 |
|---|---|
| No horizontal selector | Use PrismalHorizontalSelector for camera-mode / segmented pickers |
| Progress bar used refraction on track | Same API; track is blur-only by default. Optional trackAlpha / blurRadius for tuning |
| Bottom tabs: fixed specular | Pass specular = { PrismalSpecular.Default } or custom |
| Nested slider/toggle in glass groups | Automatic when parent provides LocalPrismalParentGlassLayer |