mirror of
https://github.com/BetterAndroid/FlexiUI.git
synced 2025-09-08 19:44:25 +08:00
feat: add shadow size in AreaBox and some tweaks
This commit is contained in:
@@ -41,9 +41,11 @@ import androidx.compose.runtime.compositionLocalOf
|
|||||||
import androidx.compose.ui.Alignment
|
import androidx.compose.ui.Alignment
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.draw.clip
|
import androidx.compose.ui.draw.clip
|
||||||
|
import androidx.compose.ui.draw.shadow
|
||||||
import androidx.compose.ui.graphics.Color
|
import androidx.compose.ui.graphics.Color
|
||||||
import androidx.compose.ui.graphics.Shape
|
import androidx.compose.ui.graphics.Shape
|
||||||
import androidx.compose.ui.unit.Dp
|
import androidx.compose.ui.unit.Dp
|
||||||
|
import androidx.compose.ui.unit.dp
|
||||||
import com.highcapable.flexiui.DefaultShapes
|
import com.highcapable.flexiui.DefaultShapes
|
||||||
import com.highcapable.flexiui.LocalColors
|
import com.highcapable.flexiui.LocalColors
|
||||||
import com.highcapable.flexiui.LocalShapes
|
import com.highcapable.flexiui.LocalShapes
|
||||||
@@ -59,7 +61,8 @@ data class AreaBoxStyle(
|
|||||||
val bottomPadding: Dp,
|
val bottomPadding: Dp,
|
||||||
val endPadding: Dp,
|
val endPadding: Dp,
|
||||||
val shape: Shape,
|
val shape: Shape,
|
||||||
val border: BorderStroke
|
val border: BorderStroke,
|
||||||
|
val shadowSize: Dp
|
||||||
)
|
)
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
@@ -76,7 +79,7 @@ fun AreaBox(
|
|||||||
LocalAreaBoxShape provides style.shape
|
LocalAreaBoxShape provides style.shape
|
||||||
) {
|
) {
|
||||||
Box(
|
Box(
|
||||||
modifier = modifier.box(style, color),
|
modifier = Modifier.box(style, color, modifier),
|
||||||
contentAlignment = contentAlignment,
|
contentAlignment = contentAlignment,
|
||||||
propagateMinConstraints = propagateMinConstraints,
|
propagateMinConstraints = propagateMinConstraints,
|
||||||
content = content
|
content = content
|
||||||
@@ -98,7 +101,7 @@ fun AreaRow(
|
|||||||
LocalAreaBoxShape provides style.shape
|
LocalAreaBoxShape provides style.shape
|
||||||
) {
|
) {
|
||||||
Row(
|
Row(
|
||||||
modifier = modifier.box(style, color),
|
modifier = Modifier.box(style, color, modifier),
|
||||||
horizontalArrangement = horizontalArrangement,
|
horizontalArrangement = horizontalArrangement,
|
||||||
verticalAlignment = verticalAlignment,
|
verticalAlignment = verticalAlignment,
|
||||||
content = content
|
content = content
|
||||||
@@ -120,7 +123,7 @@ fun AreaColumn(
|
|||||||
LocalAreaBoxShape provides style.shape
|
LocalAreaBoxShape provides style.shape
|
||||||
) {
|
) {
|
||||||
Column(
|
Column(
|
||||||
modifier = modifier.box(style, color),
|
modifier = Modifier.box(style, color, modifier),
|
||||||
verticalArrangement = verticalArrangement,
|
verticalArrangement = verticalArrangement,
|
||||||
horizontalAlignment = horizontalAlignment,
|
horizontalAlignment = horizontalAlignment,
|
||||||
content = content
|
content = content
|
||||||
@@ -128,16 +131,21 @@ fun AreaColumn(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun Modifier.box(style: AreaBoxStyle, color: Color) =
|
private fun Modifier.box(
|
||||||
clip(style.shape)
|
style: AreaBoxStyle,
|
||||||
.background(color, style.shape)
|
color: Color,
|
||||||
.borderOrNot(style.border, style.shape)
|
modifier: Modifier,
|
||||||
.padding(
|
) = shadow(style.shadowSize, style.shape)
|
||||||
top = style.topPadding.orElse() ?: style.padding,
|
.clip(style.shape)
|
||||||
start = style.startPadding.orElse() ?: style.padding,
|
.background(color, style.shape)
|
||||||
bottom = style.bottomPadding.orElse() ?: style.padding,
|
.borderOrNot(style.border, style.shape)
|
||||||
end = style.endPadding.orElse() ?: style.padding
|
.then(modifier)
|
||||||
)
|
.padding(
|
||||||
|
top = style.topPadding.orElse() ?: style.padding,
|
||||||
|
start = style.startPadding.orElse() ?: style.padding,
|
||||||
|
bottom = style.bottomPadding.orElse() ?: style.padding,
|
||||||
|
end = style.endPadding.orElse() ?: style.padding
|
||||||
|
)
|
||||||
|
|
||||||
object AreaBox {
|
object AreaBox {
|
||||||
val color: Color
|
val color: Color
|
||||||
@@ -165,7 +173,8 @@ private fun defaultAreaBoxStyle() = AreaBoxStyle(
|
|||||||
bottomPadding = Dp.Unspecified,
|
bottomPadding = Dp.Unspecified,
|
||||||
endPadding = Dp.Unspecified,
|
endPadding = Dp.Unspecified,
|
||||||
shape = LocalShapes.current.primary,
|
shape = LocalShapes.current.primary,
|
||||||
border = defaultAreaBoxBorder()
|
border = defaultAreaBoxBorder(),
|
||||||
|
shadowSize = DefaultAreaBoxShadowSize
|
||||||
)
|
)
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
@@ -174,4 +183,6 @@ private fun defaultAreaBoxColor() = LocalColors.current.foregroundPrimary
|
|||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
@ReadOnlyComposable
|
@ReadOnlyComposable
|
||||||
private fun defaultAreaBoxBorder() = BorderStroke(LocalSizes.current.borderSizeTertiary, LocalColors.current.textPrimary)
|
private fun defaultAreaBoxBorder() = BorderStroke(LocalSizes.current.borderSizeTertiary, LocalColors.current.textPrimary)
|
||||||
|
|
||||||
|
private val DefaultAreaBoxShadowSize = 0.dp
|
Reference in New Issue
Block a user