Skip to content

Commit

Permalink
Increase ripple contrast
Browse files Browse the repository at this point in the history
  • Loading branch information
Rawa committed Mar 11, 2024
1 parent bed06a1 commit 83ebef7
Showing 1 changed file with 30 additions and 1 deletion.
Original file line number Diff line number Diff line change
@@ -1,12 +1,17 @@
package net.mullvad.mullvadvpn.lib.theme

import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material.ripple.LocalRippleTheme
import androidx.compose.material.ripple.RippleAlpha
import androidx.compose.material.ripple.RippleTheme
import androidx.compose.material3.LocalContentColor
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Shapes
import androidx.compose.material3.Typography
import androidx.compose.material3.darkColorScheme
import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.runtime.Immutable
import androidx.compose.runtime.remember
import androidx.compose.runtime.staticCompositionLocalOf
import androidx.compose.ui.graphics.Color
Expand Down Expand Up @@ -97,6 +102,21 @@ val Shapes =
val Dimens: Dimensions
@Composable get() = LocalAppDimens.current

private object StateTokens {
const val DraggedStateLayerOpacity = 0.16f // 0.16f (Material default)
const val FocusStateLayerOpacity = 0.24f // 0.12f (Material default)
const val HoverStateLayerOpacity = 0.08f // 0.08f (Material default)
const val PressedStateLayerOpacity = 0.12f // 0.12f (Material default)
}

private val rippleAlpha =
RippleAlpha(
pressedAlpha = StateTokens.PressedStateLayerOpacity,
focusedAlpha = StateTokens.FocusStateLayerOpacity,
draggedAlpha = StateTokens.DraggedStateLayerOpacity,
hoveredAlpha = StateTokens.HoverStateLayerOpacity
)

@Composable
fun ProvideDimens(dimensions: Dimensions, content: @Composable () -> Unit) {
val dimensionSet = remember { dimensions }
Expand All @@ -117,7 +137,16 @@ fun AppTheme(content: @Composable () -> Unit) {
colorScheme = colors,
shapes = Shapes,
typography = typography,
content = content
content = {
CompositionLocalProvider(LocalRippleTheme provides MullvadRippleTheme) { content() }
}
)
}
}

@Immutable
object MullvadRippleTheme : RippleTheme {
@Composable override fun defaultColor() = LocalContentColor.current

@Composable override fun rippleAlpha() = rippleAlpha
}

0 comments on commit 83ebef7

Please sign in to comment.