mirror of
https://github.com/simplex-chat/simplex-chat.git
synced 2026-07-17 00:01:53 +00:00
Section + Theme: lighten LIGHT canvas to 0.97; revert custom hover overlay
User feedback: the off-white canvas at 0.95 (#F2F2F2) read as too dark. Two coordinated changes: - canvasColorForCurrentTheme LIGHT branch: 0.95f → 0.97f. Canvas now #F7F7F7 (3% darker than white, was 5%). Still distinct from pure white card but lighter. - Drop the custom sectionItemHover Modifier helper (and its hoverable + InteractionSource + background machinery). The reason for the custom hover was that the default Material 0.04-alpha ripple hover (#F5F5F5 on white card) blended with the old #F2F2F2 canvas. With the lighter canvas at #F7F7F7 the default hover #F5F5F5 is now visibly darker than canvas (2 units delta) — visible enough at Material default without our custom override. Removed unused MutableInteractionSource and collectIsHoveredAsState imports. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.7
parent
f75bbf9059
commit
0c6ec43a8d
+1
-1
@@ -607,7 +607,7 @@ fun canvasColorForCurrentTheme(): Color {
|
||||
val theme = CurrentColors.value
|
||||
val c = theme.colors
|
||||
return when (theme.base) {
|
||||
DefaultTheme.LIGHT -> c.background.mixWith(c.onBackground, 0.95f)
|
||||
DefaultTheme.LIGHT -> c.background.mixWith(c.onBackground, 0.97f)
|
||||
DefaultTheme.SIMPLEX -> c.background.darker(0.4f)
|
||||
else -> c.background
|
||||
}
|
||||
|
||||
-22
@@ -1,6 +1,4 @@
|
||||
import androidx.compose.foundation.*
|
||||
import androidx.compose.foundation.interaction.MutableInteractionSource
|
||||
import androidx.compose.foundation.interaction.collectIsHoveredAsState
|
||||
import androidx.compose.foundation.layout.*
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
import androidx.compose.material.*
|
||||
@@ -35,23 +33,6 @@ val CARD_ITEM_PADDING = CARD_PADDING - 1.dp
|
||||
// standalone usage (alerts, pickers, custom contexts) unaffected.
|
||||
private val LocalInSectionCard = staticCompositionLocalOf { false }
|
||||
|
||||
// Modern hover overlay for section card items (replaces deprecated RippleTheme
|
||||
// override). Adds its own hover-state background so the hovered row is visible
|
||||
// against the off-white LIGHT canvas (where the default 0.04-alpha ripple hover
|
||||
// blends in). Click ripple is still provided by Modifier.clickable's own
|
||||
// indication — this only handles the persistent hover overlay.
|
||||
// `enabled = false` suppresses hover for disabled items.
|
||||
// `clickable = false` suppresses hover for rows whose action is an inline
|
||||
// control (switch, dropdown) rather than navigating the whole row — those
|
||||
// rows aren't "interactive as a whole", so hover feedback is misleading.
|
||||
@Composable
|
||||
private fun Modifier.sectionItemHover(enabled: Boolean = true, clickable: Boolean = true): Modifier {
|
||||
if (!enabled || !clickable || !LocalInSectionCard.current) return this
|
||||
val interactionSource = remember { MutableInteractionSource() }
|
||||
val isHovered by interactionSource.collectIsHoveredAsState()
|
||||
val hoverColor = if (isHovered) MaterialTheme.colors.onBackground.copy(alpha = 0.05f) else Color.Transparent
|
||||
return this.hoverable(interactionSource).background(hoverColor)
|
||||
}
|
||||
|
||||
@Composable
|
||||
private fun Modifier.sectionItemDivider(): Modifier {
|
||||
@@ -204,7 +185,6 @@ fun SectionItemView(
|
||||
val modifier = Modifier
|
||||
.fillMaxWidth()
|
||||
.sizeIn(minHeight = minHeight)
|
||||
.sectionItemHover(enabled = !disabled, clickable = click != null)
|
||||
.sectionItemDivider()
|
||||
Row(
|
||||
if (click == null || disabled) modifier.padding(padding) else modifier.clickable(onClick = click).padding(padding),
|
||||
@@ -245,7 +225,6 @@ fun SectionItemViewLongClickable(
|
||||
val modifier = Modifier
|
||||
.fillMaxWidth()
|
||||
.sizeIn(minHeight = minHeight)
|
||||
.sectionItemHover(enabled = !disabled)
|
||||
.sectionItemDivider()
|
||||
Row(
|
||||
if (disabled) {
|
||||
@@ -271,7 +250,6 @@ fun SectionItemViewSpaceBetween(
|
||||
val modifier = Modifier
|
||||
.fillMaxWidth()
|
||||
.sizeIn(minHeight = minHeight)
|
||||
.sectionItemHover(enabled = !disabled, clickable = click != null)
|
||||
.sectionItemDivider()
|
||||
Row(
|
||||
if (click == null || disabled) modifier.padding(padding).padding(vertical = DEFAULT_MIN_SECTION_ITEM_PADDING_VERTICAL) else modifier
|
||||
|
||||
Reference in New Issue
Block a user