fix(android): translucent glass DARK controller so backdrop shows through
The controller body/face were opaque, so the synthwave backdrop only peeked out above/below the controller. Make the DARK palette surfaces translucent (body/face/inlay) and drop the opaque shadow platform + the gradient's forced 0.95 alpha, so the backdrop reads through the controller as glass. CLASSIC palette stays solid. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
993f30456f
commit
68cd1c120a
@ -83,15 +83,16 @@ val ClassicPalette = NESPalette(
|
|||||||
inlayBg = Color(0xFF080808), inlayBorder = Color(0xFF999999),
|
inlayBg = Color(0xFF080808), inlayBorder = Color(0xFF999999),
|
||||||
)
|
)
|
||||||
|
|
||||||
// Glassmorphism-black (OS design): #0A0A0A surfaces, subtle white-alpha borders,
|
// Glassmorphism-black (OS design): translucent dark surfaces so the backdrop
|
||||||
// translucent-white buttons. Accents come from each button's ring.
|
// shows through the controller, subtle white-alpha borders, translucent-white
|
||||||
|
// buttons. Accents come from each button's ring.
|
||||||
val DarkPalette = NESPalette(
|
val DarkPalette = NESPalette(
|
||||||
body = Color(0xFF0D0D0F), face = Color(0xFF0A0A0A), ridge = Color(0x14FFFFFF),
|
body = Color(0xA6121216), face = Color(0x8C0E0E12), ridge = Color(0x14FFFFFF),
|
||||||
label = Color(0xFF9A9A9A), labelMuted = Color(0xFF777777),
|
label = Color(0xFF9A9A9A), labelMuted = Color(0xFF777777),
|
||||||
dpad = Color(0xFF202024), dpadHi = Color(0xFF33333A),
|
dpad = Color(0xFF202024), dpadHi = Color(0xFF33333A),
|
||||||
btn = Color(0x14FFFFFF), btnPress = Color(0x0AFFFFFF),
|
btn = Color(0x14FFFFFF), btnPress = Color(0x0AFFFFFF),
|
||||||
capsule = Color(0x12FFFFFF), capsulePress = Color(0x08FFFFFF),
|
capsule = Color(0x12FFFFFF), capsulePress = Color(0x08FFFFFF),
|
||||||
inlayBg = Color(0xFF0A0A0A), inlayBorder = Color(0x1FFFFFFF),
|
inlayBg = Color(0x990A0A0A), inlayBorder = Color(0x1FFFFFFF),
|
||||||
)
|
)
|
||||||
|
|
||||||
fun paletteFor(style: ControllerStyle) = if (style == ControllerStyle.CLASSIC) ClassicPalette else DarkPalette
|
fun paletteFor(style: ControllerStyle) = if (style == ControllerStyle.CLASSIC) ClassicPalette else DarkPalette
|
||||||
@ -119,15 +120,6 @@ fun NESController(
|
|||||||
.padding(horizontal = 40.dp, vertical = 24.dp),
|
.padding(horizontal = 40.dp, vertical = 24.dp),
|
||||||
contentAlignment = Alignment.Center,
|
contentAlignment = Alignment.Center,
|
||||||
) {
|
) {
|
||||||
// Shadow platform
|
|
||||||
Box(
|
|
||||||
modifier = Modifier
|
|
||||||
.fillMaxWidth(0.86f)
|
|
||||||
.aspectRatio(2.3f)
|
|
||||||
.padding(top = 6.dp)
|
|
||||||
.clip(RoundedCornerShape(18.dp))
|
|
||||||
.background(Color(0xFF000000)),
|
|
||||||
)
|
|
||||||
// Controller body
|
// Controller body
|
||||||
Box(
|
Box(
|
||||||
Modifier
|
Modifier
|
||||||
@ -136,7 +128,7 @@ fun NESController(
|
|||||||
.shadow(32.dp, RoundedCornerShape(16.dp), ambientColor = Color(0xFF000000), spotColor = Color(0xFF000000))
|
.shadow(32.dp, RoundedCornerShape(16.dp), ambientColor = Color(0xFF000000), spotColor = Color(0xFF000000))
|
||||||
.clip(RoundedCornerShape(16.dp))
|
.clip(RoundedCornerShape(16.dp))
|
||||||
.background(
|
.background(
|
||||||
Brush.verticalGradient(listOf(c.body, c.body.copy(alpha = 0.95f)))
|
Brush.verticalGradient(listOf(c.body, c.body))
|
||||||
)
|
)
|
||||||
.border(1.dp, Color.White.copy(alpha = if (isClassic) 0.08f else 0.04f), RoundedCornerShape(16.dp)),
|
.border(1.dp, Color.White.copy(alpha = if (isClassic) 0.08f else 0.04f), RoundedCornerShape(16.dp)),
|
||||||
) {
|
) {
|
||||||
|
|||||||
@ -61,7 +61,7 @@ fun NESPortraitController(
|
|||||||
.fillMaxSize()
|
.fillMaxSize()
|
||||||
.shadow(28.dp, RoundedCornerShape(20.dp), ambientColor = Color.Black, spotColor = Color.Black)
|
.shadow(28.dp, RoundedCornerShape(20.dp), ambientColor = Color.Black, spotColor = Color.Black)
|
||||||
.clip(RoundedCornerShape(20.dp))
|
.clip(RoundedCornerShape(20.dp))
|
||||||
.background(Brush.verticalGradient(listOf(c.body, c.body.copy(alpha = 0.95f))))
|
.background(Brush.verticalGradient(listOf(c.body, c.body)))
|
||||||
.border(1.dp, Color.White.copy(alpha = if (isClassic) 0.08f else 0.04f), RoundedCornerShape(20.dp)),
|
.border(1.dp, Color.White.copy(alpha = if (isClassic) 0.08f else 0.04f), RoundedCornerShape(20.dp)),
|
||||||
) {
|
) {
|
||||||
// Top highlight
|
// Top highlight
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user