Skip to content

Commit 6bcce1a

Browse files
authored
library: Optimize SuperDropdown x3 (#25)
* update: [SuperDropdown] Update popup shadow and content padding.
1 parent 6b646f1 commit 6bcce1a

File tree

2 files changed

+10
-14
lines changed

2 files changed

+10
-14
lines changed

miuix/src/commonMain/kotlin/top/yukonga/miuix/kmp/extra/SuperDropdown.kt

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,7 @@ fun SuperDropdown(
191191
var offsetXPx by remember { mutableStateOf(0) }
192192
var offsetYPx by remember { mutableStateOf(0) }
193193
val textMeasurer = rememberTextMeasurer()
194-
val textStyle = remember { TextStyle(fontWeight = FontWeight.Medium, fontSize = 17.sp) }
194+
val textStyle = remember { TextStyle(fontWeight = FontWeight.Medium, fontSize = 16.sp) }
195195
val textWidthDp = remember(items) { items.maxOfOrNull { with(density) { textMeasurer.measure(text = it, style = textStyle).size.width.toDp() } } }
196196
val getWindowSize = rememberUpdatedState(getWindowSize())
197197
val windowHeightPx by rememberUpdatedState(getWindowSize.value.height)
@@ -207,6 +207,9 @@ fun SuperDropdown(
207207
val dropdownMaxHeight by rememberUpdatedState(with(density) {
208208
(windowHeightPx - statusBarPx - navigationBarPx - captionBarPx ).toDp()
209209
})
210+
val dropdownElevation by rememberUpdatedState(with(density) {
211+
11.dp.toPx()
212+
})
210213
val insideWidthPx by rememberUpdatedState(with(density) { insideMargin.width.toPx() }.roundToInt())
211214
val insideHeightPx by rememberUpdatedState(with(density) { insideMargin.height.toPx() }.roundToInt())
212215
val displayCutoutLeftSize = rememberUpdatedState(with(density) {
@@ -257,10 +260,10 @@ fun SuperDropdown(
257260
.heightIn(50.dp, dropdownMaxHeight)
258261
.align(AbsoluteAlignment.TopLeft)
259262
.graphicsLayer(
260-
shadowElevation = 40f,
263+
shadowElevation = dropdownElevation,
261264
shape = SmoothRoundedCornerShape(16.dp),
262-
ambientShadowColor = Color.Black.copy(alpha = 0.2f),
263-
spotShadowColor = Color.Black.copy(alpha = 0.6f)
265+
ambientShadowColor = Color.Black.copy(alpha = 0.3f),
266+
spotShadowColor = Color.Black.copy(alpha = 0.3f)
264267
)
265268
.clip(SmoothRoundedCornerShape(16.dp))
266269
.background(MiuixTheme.colorScheme.surface)
@@ -307,15 +310,8 @@ fun DropdownImpl(
307310
onSelectedIndexChange: (Int) -> Unit,
308311
textWidthDp: Dp?
309312
) {
310-
val additionalTopPadding: Dp
311-
val additionalBottomPadding: Dp
312-
if (optionSize == 1) {
313-
additionalTopPadding = 16.dp
314-
additionalBottomPadding = 16.dp
315-
} else {
316-
additionalTopPadding = if (index == 0) 22.5f.dp else 14.5f.dp
317-
additionalBottomPadding = if (index == optionSize - 1) 22.5f.dp else 14.5f.dp
318-
}
313+
val additionalTopPadding = if (index == 0) 20f.dp else 12f.dp
314+
val additionalBottomPadding = if (index == optionSize - 1) 20f.dp else 12f.dp
319315
val textColor = if (isSelected) {
320316
MiuixTheme.colorScheme.onTertiaryContainer
321317
} else {

miuix/src/commonMain/kotlin/top/yukonga/miuix/kmp/theme/MiuixColor.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -251,6 +251,6 @@ fun darkColorScheme() = MiuixColor(
251251
onSurfaceContainerHigh = Color(0xFF6C6C6C),
252252
surfaceContainerHighest = Color(0xFF2D2D2D),
253253
onSurfaceContainerHighest = Color(0xFFE9E9E9),
254-
windowDimming = Color.Black.copy(alpha = 0.3f),
254+
windowDimming = Color.Black.copy(alpha = 0.6f),
255255
selectedTint = Color(0xCC393939)
256256
)

0 commit comments

Comments
 (0)