Stefan Oltmann
12/19/2025, 1:24 PMdev.kilua:kilua-jetpack dependency, but for example I don't find the Box class.Robert Jaros
12/19/2025, 1:49 PMStefan Oltmann
12/19/2025, 1:50 PMdev.kilua.compose.foundation.layout.Box
Maybe a Gradle/IDEA issue.Stefan Oltmann
12/19/2025, 1:53 PMimport dev.kilua.Application
import dev.kilua.CoreModule
import dev.kilua.Hot
import dev.kilua.JetpackModule
import dev.kilua.compose.foundation.layout.Box
import dev.kilua.compose.root
import dev.kilua.compose.ui.Alignment
import dev.kilua.compose.ui.Modifier
import dev.kilua.compose.ui.background
import dev.kilua.compose.ui.fillMaxSize
import dev.kilua.form.text.Text
import dev.kilua.html.Color
import dev.kilua.startApplication
class App : Application() {
override fun start() {
root("root") {
Box(
contentAlignment = Alignment.Center,
modifier = Modifier
.fillMaxSize()
.background(Color.Aqua)
) {
Text("Hello")
}
}
}
}
fun main() {
startApplication(
::App,
bundlerHot(),
JetpackModule,
CoreModule
)
}
fun bundlerHot(): Hot? {
return js("import.meta.webpackHot").unsafeCast<Hot?>()
}Robert Jaros
12/19/2025, 1:58 PMStefan Oltmann
12/19/2025, 1:58 PMStefan Oltmann
12/19/2025, 1:58 PMRobert Jaros
12/19/2025, 1:59 PMBox(
contentAlignment = Alignment.Center,
modifier = Modifier
.fillMaxSize()
.background(Color.Aqua)
) {
span {
+"Hello"
}
}Robert Jaros
12/19/2025, 2:00 PMRobert Jaros
12/19/2025, 2:01 PMStefan Oltmann
12/19/2025, 2:01 PMRobert Jaros
12/19/2025, 2:01 PMText and composable text is text input controlStefan Oltmann
12/19/2025, 2:02 PMBox(
contentAlignment = Alignment.Center,
modifier = Modifier
.background(Color.Aqua)
.fillMaxSize()
) {
span {
textNode("Hello")
}
}
That works, but why is fillMaxSize() not effective?Stefan Oltmann
12/19/2025, 2:02 PMStefan Oltmann
12/19/2025, 2:03 PMRobert Jaros
12/19/2025, 2:04 PMStefan Oltmann
12/19/2025, 2:04 PMdev.kilua.compose.foundation.layout.Text that does span { textNode("Hello") behind the scenes?Robert Jaros
12/19/2025, 2:05 PMStefan Oltmann
12/19/2025, 2:06 PMWhat do you mean "not effective" ?I somehow expected this to fill the whole screen.
root("root") {
Box(
contentAlignment = Alignment.Center,
modifier = Modifier
.background(Color.Aqua)
.fillMaxSize()
) {
span {
textNode("Hello")
}
}
}
Also, I wonder where the padding comes from.Stefan Oltmann
12/19/2025, 2:06 PMRobert Jaros
12/19/2025, 2:07 PMStefan Oltmann
12/19/2025, 2:08 PMStefan Oltmann
12/19/2025, 2:09 PMRobert Jaros
12/19/2025, 2:10 PMdiv {
width(100.vw)
height(100.vh)
Box(
contentAlignment = Alignment.Center,
modifier = Modifier
.fillMaxSize()
.background(Color.Aqua)
) {
span {
+"Hello"
}
}
}
to make fillMaxSize do what you wantStefan Oltmann
12/19/2025, 2:10 PM<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Portfolio</title>
<base href="/">
<script src="main.bundle.js"></script>
</head>
<body>
<div id="root"></div>
</body>
</html>Robert Jaros
12/19/2025, 2:11 PMRobert Jaros
12/19/2025, 2:12 PMRobert Jaros
12/19/2025, 2:14 PMStefan Oltmann
12/19/2025, 2:14 PMRobert Jaros
12/19/2025, 2:14 PMRobert Jaros
12/19/2025, 2:15 PMStefan Oltmann
12/19/2025, 2:15 PMbody {
margin: 0;
}
just to fix this strange browser defaultStefan Oltmann
12/19/2025, 3:20 PMimport androidx.compose.runtime.Composable
import dev.kilua.compose.foundation.layout.Box
import dev.kilua.compose.foundation.layout.Column
import dev.kilua.compose.foundation.layout.Row
import dev.kilua.compose.ui.Alignment
import dev.kilua.compose.ui.Modifier
import dev.kilua.compose.ui.background
import dev.kilua.compose.ui.fillMaxSize
import dev.kilua.compose.ui.fillMaxWidth
import dev.kilua.compose.ui.height
import dev.kilua.core.IComponent
import dev.kilua.html.Color
import dev.kilua.html.div
import dev.kilua.html.em
import dev.kilua.html.span
import dev.kilua.html.textNode
import dev.kilua.html.vh
import dev.kilua.html.vw
@Composable
fun IComponent.MainView() {
Column {
div {
width(100.vw)
height(100.vh)
Box(
modifier = Modifier.fillMaxSize()
) {
Row(
modifier = Modifier
.align(Alignment.TopCenter)
.height(48.em)
.fillMaxWidth()
.background(color = Color.Red)
) {
span {
textNode("topbar")
}
}
Column(
horizontalAlignment = Alignment.CenterHorizontally,
modifier = Modifier
.align(Alignment.Center)
.fillMaxSize()
.background(color = Color.Blue)
) {
span {
textNode("text in middle")
}
}
}
}
span {
textNode("Shown when scroll down")
}
}
}Robert Jaros
12/19/2025, 3:42 PMRobert Jaros
12/19/2025, 3:43 PMStefan Oltmann
12/19/2025, 3:44 PMStefan Oltmann
12/19/2025, 3:45 PMRobert Jaros
12/19/2025, 3:47 PMStefan Oltmann
12/19/2025, 3:47 PMStefan Oltmann
12/19/2025, 3:47 PMStefan Oltmann
12/19/2025, 3:48 PMcreating this wrapper div (with 100vh and 100vw) is definitely not something you would like to use on a webpage, even though it lets you use jetpack vertical alignmentOkay. Thanks for the hint.
Robert Jaros
12/19/2025, 3:52 PMStefan Oltmann
12/19/2025, 3:53 PM