# compose-for-web

Published articles for compose-for-web.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Compose Multiplatform 1.12.0 Released

DevFeed: [Compose Multiplatform 1.12.0 Released](<https://devfeed.tech/articles/compose-multiplatform-1-12-0-released-8788.md>)

Original publisher: [Read original article](<https://blog.jetbrains.com/kotlin/2026/08/compose-multiplatform-1-12-0/>)

Author: Elvira Mustafina

Published: 2026-08-26T13:28:41Z

Content type: release

Language: en

Sources: [Kotlin : A concise multiplatform language developed by JetBrains | The JetBrains Blog](<https://devfeed.tech/sources/kotlin-a-concise-multiplatform-language-developed-by-jetbrains-the-jetbrains-blog.md>)

Topics: [multiplatform](<https://devfeed.tech/topics/multiplatform.md>), [compose-hot-reload](<https://devfeed.tech/topics/compose-hot-reload.md>), [MCP Server](<https://devfeed.tech/topics/mcp-server.md>), [Model Context Protocol](<https://devfeed.tech/topics/model-context-protocol.md>), [releases](<https://devfeed.tech/topics/releases.md>), [Web](<https://devfeed.tech/topics/web.md>), [compose-for-desktop](<https://devfeed.tech/topics/compose-for-desktop.md>), [Font](<https://devfeed.tech/topics/font.md>)

Tags: [compose-for-desktop](<https://devfeed.tech/tags/compose-for-desktop.md>), [compose-for-web](<https://devfeed.tech/tags/compose-for-web.md>), [compose-hot-reload](<https://devfeed.tech/tags/compose-hot-reload.md>), [compose-multiplatform](<https://devfeed.tech/tags/compose-multiplatform.md>), [fonts](<https://devfeed.tech/tags/fonts.md>), [mcp](<https://devfeed.tech/tags/mcp.md>), [mcp-server](<https://devfeed.tech/tags/mcp-server.md>), [model-context-protocol](<https://devfeed.tech/tags/model-context-protocol.md>), [multiplatform](<https://devfeed.tech/tags/multiplatform.md>), [releases](<https://devfeed.tech/tags/releases.md>), [ui](<https://devfeed.tech/tags/ui.md>), [web](<https://devfeed.tech/tags/web.md>)

### AI overview

Compose Multiplatform 1.12.0 introduces an experimental MCP server for Compose Hot Reload, enabling AI coding agents to reload applications, inspect rendered UI and semantic trees, simulate interactions, and read logs. The release also adds automatic web font fallback and a more flexible desktop window and dialog API.

### Source excerpt

Compose Multiplatform 1.12.0 is out! This version brings new tooling for AI assistants, improvements to web resource management, and finer control over desktop window states. Here are the highlights of this release: For a complete overview of the changes, check out What's new in Compose Multiplatform 1.12.0 or the release notes on GitHub. Get Started [...]

## jetc.dev Newsletter Issue #326

DevFeed: [jetc.dev Newsletter Issue #326](<https://devfeed.tech/articles/jetc-dev-newsletter-issue-326-22958.md>)

Original publisher: [Read original article](<https://jetc.dev/issues/326.html>)

Author: CommonsWare

Published: 2026-08-11T14:00:00Z

Content type: article

Language: en

Sources: [jetc.dev | Issues](<https://devfeed.tech/sources/jetc-dev-issues.md>)

Topics: [Compose](<https://devfeed.tech/topics/compose.md>), [compose-multiplatform](<https://devfeed.tech/topics/compose-multiplatform.md>), [Android](<https://devfeed.tech/topics/android.md>), [compose-for-web](<https://devfeed.tech/topics/compose-for-web.md>), [debug](<https://devfeed.tech/topics/debug.md>), [Design system](<https://devfeed.tech/topics/design-system.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [AI-assisted coding](<https://devfeed.tech/topics/ai-assisted-coding.md>)

Tags: [coding-agents](<https://devfeed.tech/tags/coding-agents.md>), [compose](<https://devfeed.tech/tags/compose.md>), [compose-for-desktop](<https://devfeed.tech/tags/compose-for-desktop.md>), [compose-for-web](<https://devfeed.tech/tags/compose-for-web.md>), [debugger](<https://devfeed.tech/tags/debugger.md>), [design-system](<https://devfeed.tech/tags/design-system.md>), [jetpack-compose](<https://devfeed.tech/tags/jetpack-compose.md>), [testing](<https://devfeed.tech/tags/testing.md>)

### AI overview

Newsletter Issue #326 covers recent Compose developments, including Places UI Kit discussions, stability considerations, design-system testing, Compose Desktop and Web test bridges, and an Android debugger aimed at coding agents. It also highlights community projects and releases around Compose Multiplatform.

### Source excerpt

Why we sometimes still need to think about stability! Compose Desktop/Web test bridge! Android debugger for coding agents! And... Places, everyone?!?

## Listening for element events with Compose for Web - Gustavo Fão Valvassori

DevFeed: [Listening for element events with Compose for Web - Gustavo Fão Valvassori](<https://devfeed.tech/articles/listening-for-element-events-with-compose-for-web-gustavo-fao-valvassori-38178.md>)

Original publisher: [Read original article](<https://touchlab.co/compose-html-events>)

Published: 2024-01-26T00:00:00Z

Content type: tutorial

Language: en

Sources: [Touchlab | Enterprise Mobile Innovation & Development](<https://devfeed.tech/sources/touchlab-enterprise-mobile-innovation-development.md>)

Topics: [compose-for-web](<https://devfeed.tech/topics/compose-for-web.md>), [Web](<https://devfeed.tech/topics/web.md>), [draggable](<https://devfeed.tech/topics/draggable.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>)

Tags: [browser](<https://devfeed.tech/tags/browser.md>), [compose-for-web](<https://devfeed.tech/tags/compose-for-web.md>), [compose-multiplatform](<https://devfeed.tech/tags/compose-multiplatform.md>), [css](<https://devfeed.tech/tags/css.md>), [draggable](<https://devfeed.tech/tags/draggable.md>), [event](<https://devfeed.tech/tags/event.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-js](<https://devfeed.tech/tags/kotlin-js.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>)

### AI overview

This tutorial explains how to handle HTML element events in Compose for Web. It covers common event listeners, updating composable state from clicks and input changes, and using side effects to implement more complex behavior such as a draggable window.

### Source excerpt

In a declarative world, events are the main way to interact with the elements, and most components have a way to listen for them.

## Using CSS libraries with Compose for Web - Gustavo Fão Valvassori

DevFeed: [Using CSS libraries with Compose for Web - Gustavo Fão Valvassori](<https://devfeed.tech/articles/using-css-libraries-with-compose-for-web-gustavo-fao-valvassori-38180.md>)

Original publisher: [Read original article](<https://touchlab.co/compose-html-style-libraries>)

Published: 2023-12-22T00:00:00Z

Content type: tutorial

Language: en

Sources: [Touchlab | Enterprise Mobile Innovation & Development](<https://devfeed.tech/sources/touchlab-enterprise-mobile-innovation-development.md>)

Topics: [Compose](<https://devfeed.tech/topics/compose.md>), [compose-for-web](<https://devfeed.tech/topics/compose-for-web.md>), [CSS](<https://devfeed.tech/topics/css.md>), [Webpack](<https://devfeed.tech/topics/webpack.md>), [Gradle](<https://devfeed.tech/topics/gradle.md>)

Tags: [cdn](<https://devfeed.tech/tags/cdn.md>), [compose](<https://devfeed.tech/tags/compose.md>), [compose-for-web](<https://devfeed.tech/tags/compose-for-web.md>), [compose-multiplatform](<https://devfeed.tech/tags/compose-multiplatform.md>), [css](<https://devfeed.tech/tags/css.md>), [gotchas](<https://devfeed.tech/tags/gotchas.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [kotlin-js](<https://devfeed.tech/tags/kotlin-js.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>), [npm](<https://devfeed.tech/tags/npm.md>), [third-party](<https://devfeed.tech/tags/third-party.md>), [tips](<https://devfeed.tech/tags/tips.md>)

### AI overview

A tutorial on importing and using third-party CSS styles in Compose for Web. It explains three approaches: loading styles from a CDN, adding CSS files to project resources, and managing styles with NPM. It also introduces enabling CSS and SCSS support in Webpack through Gradle configuration.

### Source excerpt

Using third-party styles have a few gotchas. Here are some tips and tricks to help you out.

## Styling your components on Compose Web - Gustavo Fão Valvassori

DevFeed: [Styling your components on Compose Web - Gustavo Fão Valvassori](<https://devfeed.tech/articles/styling-your-components-on-compose-web-gustavo-fao-valvassori-38221.md>)

Original publisher: [Read original article](<https://touchlab.co/html-compose-styles>)

Published: 2023-12-15T00:00:00Z

Content type: tutorial

Language: en

Sources: [Touchlab | Enterprise Mobile Innovation & Development](<https://devfeed.tech/sources/touchlab-enterprise-mobile-innovation-development.md>)

Topics: [compose-for-web](<https://devfeed.tech/topics/compose-for-web.md>), [Compose](<https://devfeed.tech/topics/compose.md>), [CSS](<https://devfeed.tech/topics/css.md>), [ui](<https://devfeed.tech/topics/ui.md>), [web applications](<https://devfeed.tech/topics/web-applications.md>)

Tags: [components](<https://devfeed.tech/tags/components.md>), [compose](<https://devfeed.tech/tags/compose.md>), [compose-for-web](<https://devfeed.tech/tags/compose-for-web.md>), [compose-multiplatform](<https://devfeed.tech/tags/compose-multiplatform.md>), [css](<https://devfeed.tech/tags/css.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [kotlin-js](<https://devfeed.tech/tags/kotlin-js.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>), [ui](<https://devfeed.tech/tags/ui.md>)

### AI overview

This tutorial explains how to style Compose for Web components with CSS. It covers inline styles, reusable stylesheets, custom CSS properties, and element type selectors.

### Source excerpt

Styling your UI is a very important part of any application. This article will explore how to style our Compose Web components.

## Getting Started with Compose for Web

DevFeed: [Getting Started with Compose for Web](<https://devfeed.tech/articles/getting-started-with-compose-for-web-24711.md>)

Original publisher: [Read original article](<https://dev.to/touchlab/getting-started-with-compose-for-web-455n>)

Author: Gustavo Fão Valvassori

Published: 2023-12-01T21:34:32Z

Content type: tutorial

Language: en

Sources: [Touchlab](<https://devfeed.tech/sources/touchlab.md>)

Topics: [compose-for-web](<https://devfeed.tech/topics/compose-for-web.md>), [Compose](<https://devfeed.tech/topics/compose.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [multiplatform](<https://devfeed.tech/topics/multiplatform.md>), [IntelliJ IDEA](<https://devfeed.tech/topics/intellij-idea.md>), [Gradle](<https://devfeed.tech/topics/gradle.md>), [HTML](<https://devfeed.tech/topics/html.md>), [Canvas](<https://devfeed.tech/topics/canvas.md>)

Tags: [canvas](<https://devfeed.tech/tags/canvas.md>), [coding](<https://devfeed.tech/tags/coding.md>), [community](<https://devfeed.tech/tags/community.md>), [compose](<https://devfeed.tech/tags/compose.md>), [compose-for-web](<https://devfeed.tech/tags/compose-for-web.md>), [development](<https://devfeed.tech/tags/development.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [getting-started](<https://devfeed.tech/tags/getting-started.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [html](<https://devfeed.tech/tags/html.md>), [idea](<https://devfeed.tech/tags/idea.md>), [inclusive](<https://devfeed.tech/tags/inclusive.md>), [introduction](<https://devfeed.tech/tags/introduction.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [multiplatform](<https://devfeed.tech/tags/multiplatform.md>), [software](<https://devfeed.tech/tags/software.md>), [ui](<https://devfeed.tech/tags/ui.md>), [webdev](<https://devfeed.tech/tags/webdev.md>)

### AI overview

A beginner tutorial on building web applications with Compose for Web and Kotlin. It introduces the JS + HTML and Wasm + Canvas runtimes, explains their components and experimental status, and outlines project setup using IntelliJ IDEA, Kotlin Multiplatform, Compose, JavaScript source sets, dependencies, and an HTML entry page.

### Source excerpt

If you are a Kotlin developer like me, you are probably very excited about Jetpack Compose. It's a modern UI toolkit for developing apps, and with the great work from JetBrains, it's becoming a really interesting solution. As a mobile developer, I've never gone in the weeds on how to properly develop sites with HTML, CSS, and JS. My closest experience was with React Native back in 2018. But now, with Compose, using a Kotlin DSL, I feel comfortable on doing this. Compose Runtime and Component Library Before creating a project and start coding, it's important to have a small introduction to Compose runtimes. As of now, Compose has two different runtimes on the web: JS + HTML Wasm + Canvas They both use the Compose Runtime underneath, but they use different components. Long story short: The HTML version will have HTML composable components (like H1, P, Span, Input, Div, etc.) The Canvas version will have similar components as the Android version as it uses SKIA to draw on the Canvas. Both of them are experimental. Note that choosing how you want to build your application will impact on possible code-sharing with native if this is what you want. For this series of posts, I'll use the HTML version and I will be able to explore more the web components. Creating the project Now that we know what runtime/components we want to use, we need to create a project. My first idea was to use the KMP project wizard, but unfortunately, the Web target is not available as an option for now. As a workaround, I had to create a new clean project using IntelliJ IDEA and add the dependencies manually. Using a clean template you will reduce the amount of code that needs to be removed/updated to make the project work. But if you prefer to use any other IDE/Template, feel free to do so and share your experience with us later :) With that, the configuration is completed with a few extra lines: Change the Kotlin plugin from JVM to MULTIPLATFORM Add the Compose plugin Declare JS source-sets Impor

## Getting Started with Compose for Web - Gustavo Fão Valvassori

DevFeed: [Getting Started with Compose for Web - Gustavo Fão Valvassori](<https://devfeed.tech/articles/getting-started-with-compose-for-web-gustavo-fao-valvassori-38179.md>)

Original publisher: [Read original article](<https://touchlab.co/compose-html-getting-started>)

Published: 2023-12-01T00:00:00Z

Content type: tutorial

Language: en

Sources: [Touchlab | Enterprise Mobile Innovation & Development](<https://devfeed.tech/sources/touchlab-enterprise-mobile-innovation-development.md>)

Topics: [compose-for-web](<https://devfeed.tech/topics/compose-for-web.md>), [compose-multiplatform](<https://devfeed.tech/topics/compose-multiplatform.md>), [multiplatform](<https://devfeed.tech/topics/multiplatform.md>), [HTML](<https://devfeed.tech/topics/html.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Gradle](<https://devfeed.tech/topics/gradle.md>), [IntelliJ IDEA](<https://devfeed.tech/topics/intellij-idea.md>)

Tags: [compose-for-web](<https://devfeed.tech/tags/compose-for-web.md>), [compose-multiplatform](<https://devfeed.tech/tags/compose-multiplatform.md>), [cross-platform](<https://devfeed.tech/tags/cross-platform.md>), [getting-started](<https://devfeed.tech/tags/getting-started.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [html](<https://devfeed.tech/tags/html.md>), [intellij-idea](<https://devfeed.tech/tags/intellij-idea.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-js](<https://devfeed.tech/tags/kotlin-js.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>)

### AI overview

This tutorial explains how to get started with Compose for Web using its HTML runtime. It introduces the available web runtimes, discusses their implications for code sharing, and describes creating and configuring a Kotlin Multiplatform project with Compose dependencies and an HTML entry point.

### Source excerpt

Compose multiplatform is a promising alternative for building cross-platform UIs. In this article, we'll see how to get started with Compose for Web using the HTML version.

## Compose for Web (WASM) - What and Why?

DevFeed: [Compose for Web (WASM) - What and Why?](<https://devfeed.tech/articles/compose-for-web-wasm-what-and-why-25124.md>)

Original publisher: [Read original article](<https://handstandsam.com/2023/09/05/compose-for-web-wasm/>)

Author: Sam Edwards

Published: 2023-09-06T02:43:11Z

Content type: opinion

Language: en

Sources: [Handstand Sam](<https://devfeed.tech/sources/handstand-sam.md>)

Topics: [compose-for-web](<https://devfeed.tech/topics/compose-for-web.md>), [wasm](<https://devfeed.tech/topics/wasm.md>), [Kotlin Multiplatform](<https://devfeed.tech/topics/kotlin-multiplatform.md>), [Web](<https://devfeed.tech/topics/web.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [Angular](<https://devfeed.tech/topics/angular.md>), [Node.js](<https://devfeed.tech/topics/node-js.md>)

Tags: [angular](<https://devfeed.tech/tags/angular.md>), [compose-for-web](<https://devfeed.tech/tags/compose-for-web.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>), [node-js](<https://devfeed.tech/tags/node-js.md>), [updates](<https://devfeed.tech/tags/updates.md>), [wasm](<https://devfeed.tech/tags/wasm.md>), [web](<https://devfeed.tech/tags/web.md>)

### AI overview

An overview of Compose for Web (WASM) in Kotlin Multiplatform, comparing it with Kotlin/JS and Compose HTML. The article discusses browser UI use cases, Kotlin/JS bundle-size tradeoffs, and the potential value of sharing complex business logic across platforms.

### Source excerpt

As a former web-developer myself, I still gravitate back to browser-based UIs. They are so easy to access from anywhere, and are globally available. It's hard to argue the utility of the amazing web platform. Compose for Web (WASM) is the latest technology in Kotlin Multiplatform and I'm pretty bullish about it. In this post [...]

## Using Compose Across Platforms - Júlia Jakubcová

DevFeed: [Using Compose Across Platforms - Júlia Jakubcová](<https://devfeed.tech/articles/using-compose-across-platforms-julia-jakubcova-38344.md>)

Original publisher: [Read original article](<https://touchlab.co/using-compose-across-platforms>)

Published: 2022-12-09T15:22:11Z

Content type: tutorial

Language: en

Sources: [Touchlab | Enterprise Mobile Innovation & Development](<https://devfeed.tech/sources/touchlab-enterprise-mobile-innovation-development.md>)

Topics: [Compose](<https://devfeed.tech/topics/compose.md>), [Android](<https://devfeed.tech/topics/android.md>), [iOS](<https://devfeed.tech/topics/ios.md>), [compose-for-web](<https://devfeed.tech/topics/compose-for-web.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [compose](<https://devfeed.tech/tags/compose.md>), [compose-for-web](<https://devfeed.tech/tags/compose-for-web.md>), [compose-multiplatform](<https://devfeed.tech/tags/compose-multiplatform.md>), [interoperability](<https://devfeed.tech/tags/interoperability.md>), [ios](<https://devfeed.tech/tags/ios.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [ui](<https://devfeed.tech/tags/ui.md>)

### AI overview

This article compares using Compose across Android, iOS, Desktop, and Web. It explains how much UI code can be shared, when platform-specific implementations are needed, and how platform components and limitations differ.

### Source excerpt

Let's look at the differences you'll encounter when using Compose for different platforms. I have spent more time with some (Android) than the others, but I have experienced how it has progressed from its early states to the current versions. The initial frustration quickly turned into enjoyment. Here are answers to some basic questions you might have such as: How hard is it to set up, use and debug, what is unique for each platform? And what else can Compose be used for?

## When Compose remember cannot forget

DevFeed: [When Compose remember cannot forget](<https://devfeed.tech/articles/when-compose-remember-cannot-forget-38653.md>)

Original publisher: [Read original article](<https://krossovochkin.com/posts/2022_07_23_when_compose_remember_cannot_forget/>)

Published: 2022-07-23T00:00:00Z

Content type: tutorial

Language: en

Sources: [Vasya Drobushkov](<https://devfeed.tech/sources/vasya-drobushkov.md>)

Topics: [Compose](<https://devfeed.tech/topics/compose.md>), [compose-for-web](<https://devfeed.tech/topics/compose-for-web.md>), [ui](<https://devfeed.tech/topics/ui.md>), [color](<https://devfeed.tech/topics/color.md>)

Tags: [change](<https://devfeed.tech/tags/change.md>), [compose](<https://devfeed.tech/tags/compose.md>), [compose-for-web](<https://devfeed.tech/tags/compose-for-web.md>), [recomposition](<https://devfeed.tech/tags/recomposition.md>), [state](<https://devfeed.tech/tags/state.md>), [ui](<https://devfeed.tech/tags/ui.md>), [update](<https://devfeed.tech/tags/update.md>)

### AI overview

This tutorial explains why a Compose composable continued displaying an old value after recomposition in a Compose for Web color utility app. The issue occurred because remember preserves values across recompositions; supplying the changing color value as a key caused the remembered value to update.

### Source excerpt

Чытаць на беларускай мове Introduction When developing color-utils app using Compose for Web I faced an issue that remember didn't want to forget the state. It was quite annoying experience as it felt stupid: composable function is recomposed with the new value provided but remember still kept old value. As usual, there is no magic there and the answer is quite simple therefore this article won't be that long. Compose is all about state. In the app I had two levels of state: