|
|
|
package org.jetbrains.compose.demo.widgets.ui.screens
|
|
|
|
|
|
|
|
import androidx.compose.foundation.background
|
|
|
|
import androidx.compose.foundation.clickable
|
|
|
|
import androidx.compose.foundation.layout.Column
|
|
|
|
import androidx.compose.foundation.layout.Row
|
|
|
|
import androidx.compose.foundation.layout.padding
|
|
|
|
import androidx.compose.foundation.shape.RoundedCornerShape
|
|
|
|
import androidx.compose.material.*
|
|
|
|
import androidx.compose.material.icons.Icons
|
|
|
|
import androidx.compose.material.icons.filled.FavoriteBorder
|
|
|
|
import androidx.compose.runtime.Composable
|
|
|
|
import androidx.compose.ui.Modifier
|
|
|
|
import androidx.compose.ui.draw.clip
|
|
|
|
import androidx.compose.ui.graphics.Brush
|
|
|
|
import androidx.compose.ui.graphics.Color
|
|
|
|
import androidx.compose.ui.platform.testTag
|
|
|
|
import androidx.compose.ui.unit.dp
|
|
|
|
import org.jetbrains.compose.demo.widgets.theme.purple
|
|
|
|
import org.jetbrains.compose.demo.widgets.theme.purple200
|
|
|
|
import org.jetbrains.compose.demo.widgets.theme.typography
|
|
|
|
import org.jetbrains.compose.demo.widgets.ui.WidgetsType
|
|
|
|
|
|
|
|
@Composable
|
|
|
|
fun Buttons() {
|
|
|
|
Column(Modifier.testTag(WidgetsType.BUTTONS.testTag)) {
|
|
|
|
Button(onClick = {}, modifier = Modifier.padding(8.dp)) {
|
|
|
|
Text(text = "Main Button")
|
|
|
|
}
|
|
|
|
TextButton(onClick = {}, modifier = Modifier.padding(8.dp)) {
|
|
|
|
Text(text = "Text Button")
|
|
|
|
}
|
|
|
|
TextButton(onClick = {}, modifier = Modifier.padding(8.dp), enabled = false) {
|
|
|
|
Text(text = "Text Disabled")
|
|
|
|
}
|
|
|
|
Button(onClick = {}, modifier = Modifier.padding(8.dp), enabled = false) {
|
|
|
|
Text(text = "Disabled")
|
|
|
|
}
|
|
|
|
Button(
|
|
|
|
onClick = {},
|
|
|
|
modifier = Modifier.padding(8.dp),
|
|
|
|
elevation = ButtonDefaults.elevation()
|
|
|
|
) {
|
|
|
|
Text(text = "Flat")
|
|
|
|
}
|
|
|
|
Button(
|
|
|
|
onClick = {},
|
|
|
|
modifier = Modifier.padding(8.dp),
|
|
|
|
shape = RoundedCornerShape(12.dp)
|
|
|
|
) {
|
|
|
|
Text(text = "Rounded")
|
|
|
|
}
|
|
|
|
OutlinedButton(onClick = {}, modifier = Modifier.padding(8.dp)) {
|
|
|
|
Text(text = "Outline")
|
|
|
|
}
|
|
|
|
Button(onClick = {}, modifier = Modifier.padding(8.dp)) {
|
|
|
|
Row {
|
|
|
|
Icon(Icons.Default.FavoriteBorder, contentDescription = null, modifier = Modifier.padding(end = 4.dp))
|
|
|
|
Text(text = "Icon Button")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
Button(onClick = {}, modifier = Modifier.padding(8.dp)) {
|
|
|
|
Text(text = "Icon Button")
|
|
|
|
Icon(Icons.Default.FavoriteBorder, contentDescription = null, modifier = Modifier.padding(start = 4.dp))
|
|
|
|
}
|
|
|
|
//custom background buttons
|
|
|
|
val outlineButtonColor = ButtonDefaults.outlinedButtonColors(
|
|
|
|
contentColor = purple200,
|
|
|
|
)
|
|
|
|
val mainButtonColor = ButtonDefaults.buttonColors(
|
|
|
|
backgroundColor = purple,
|
|
|
|
contentColor = MaterialTheme.colors.surface
|
|
|
|
)
|
|
|
|
OutlinedButton(
|
|
|
|
colors = outlineButtonColor,
|
|
|
|
onClick = {},
|
|
|
|
modifier = Modifier.padding(8.dp)
|
|
|
|
) {
|
|
|
|
Text(text = "Outline colors")
|
|
|
|
}
|
|
|
|
Button(colors = mainButtonColor, onClick = {}, modifier = Modifier.padding(8.dp)) {
|
|
|
|
Text(text = "Custom colors")
|
|
|
|
}
|
|
|
|
|
|
|
|
val horizontalGradient = Brush.horizontalGradient(
|
|
|
|
colors = listOf(MaterialTheme.colors.primary, MaterialTheme.colors.primaryVariant),
|
|
|
|
0f,
|
|
|
|
250f
|
|
|
|
)
|
|
|
|
val verticalGradient = Brush.verticalGradient(
|
|
|
|
colors = listOf(MaterialTheme.colors.primary, MaterialTheme.colors.primaryVariant),
|
|
|
|
startY = 0f,
|
|
|
|
endY = 100f
|
|
|
|
)
|
|
|
|
Text(
|
|
|
|
text = "Horizontal gradient",
|
|
|
|
style = typography.body2.copy(color = Color.White),
|
|
|
|
modifier = Modifier.padding(12.dp).clickable(onClick = {})
|
|
|
|
.clip(RoundedCornerShape(4.dp))
|
|
|
|
.background(brush = horizontalGradient).padding(12.dp)
|
|
|
|
)
|
|
|
|
Text(
|
|
|
|
text = "Vertical gradient",
|
|
|
|
style = typography.body1.copy(color = Color.White),
|
|
|
|
modifier = Modifier.padding(12.dp).clickable(onClick = {})
|
|
|
|
.clip(RoundedCornerShape(4.dp))
|
|
|
|
.background(brush = verticalGradient).padding(12.dp)
|
|
|
|
)
|
|
|
|
}
|
|
|
|
}
|