**The API is not finalized, and breaking changes can be expected**
### Content:
Compose for Web allows you to build reactive user interfaces for the web in Kotlin, using the concepts and APIs of Jetpack Compose to express the state, behavior, and logic of your application.
Compose for Web provides multiple ways of declaring user interfaces in Kotlin code, allowing you to have full control over your website layout with a declarative DOM API.
## Tutorials:
[Getting Started With Compose for Web](Getting_Started/README.md) - create and configure a simple project
@ -11,4 +14,99 @@
[Style DSL](Style_Dsl/README.md) - about styling the composable components in web
[Using test-utils](Using_Test_Utils/README.md) - how to use test-utils for DOM DSL unit testing
[Using test-utils](Using_Test_Utils/README.md) - about unit testing for @Composable components based on HTML DOM
## Examples:
- Compose For Web [landing page](https://compose-web.ui.pages.jetbrains.team/). Also have a look at [source code](https://github.com/JetBrains/compose-jb/tree/master/examples/web-landing)
- Compose For Web and React integration - [source code](https://github.com/JetBrains/compose-jb/tree/master/examples/web-with-react)
- Bird game - [source code](https://github.com/JetBrains/compose-jb/tree/master/examples/web-compose-bird)
- TODO app. (MPP: android, desktop, web) - [source code](https://github.com/JetBrains/compose-jb/tree/master/examples/todoapp-lite)
It provides a collection of Composable components (based on compose.web.core) which try to conform to the API and behaviour of some widgets from Jetpack Compose UI:
`Column`, `Row`, etc.
## Important notes
#### Kotlin MPP gradle plugin needs to be applied
``` kotlin
plugins {
kotlin("multiplatform")
id("org.jetbrains.compose")
}
```
Compose for Web can be used only with kotlin multiplatform plugin applied. Otherwise, Compose plugin won't be configured properly.