v0.1.0-alpha01 · APACHE 2.0

Compose, rich text, every device.

ComposeRichEditor 是面向 Compose Multiplatform 的跨平台富文本组件库。一套 API,即可在 Android / iOS / Desktop / Web 上获得一致、流畅、可深度定制的富文本编辑体验。

4
Platforms
3
Modules
Customizable
0.1
Public Alpha

真实写作而设计,
不止于富文本。

从基础格式到块级结构,从智能粘贴到表情与表格,ComposeRichEditor 把 一份完整的富文本编辑体验带进 Compose Multiplatform。

/ 001

Inline styles

基于 BasicTextField 与 AnnotatedString,内置加粗、斜体、下划线、上下标、文字与背景颜色、字号等行内样式。

/ 002

Hyperlinks & selection

支持超链接插入与样式,选中区域感知链接行为,适配桌面与移动端选择交互。

/ 003

Custom emoji

自定义表情插入与渲染,构建品牌化或业务专属的表情面板。

/ 004

Block editor

块级编辑器,支持文本块、表格、块导航与共享的浮动工具栏。

/ 005

Smart paste

智能识别纯文本、Markdown、HTML 与富 JSON 的粘贴内容并保持结构。

/ 006

Undo, redo & serialization

完整撤销/重做,以及将富文本内容以 JSON 序列化与恢复,便于本地存储与跨设备同步。

/ 007

Paragraph model

段落对齐与段落模型双向同步,排版行为与 Compose Text 体系保持一致。

/ 008

平台无关,原生体验

针对 Android / iOS / Desktop / Web 各自的 IME、剪贴板、上下文菜单与键盘行为做了平台专有实现,commonMain 不会触及平台 API。

清晰分层的模块化
结构。

核心、组件、块级与示例,职责清晰,可按需引入,也可基于源码集成。

三个发布模块共同构成组件能力,另含一组跨平台示例应用,覆盖 Android、iOS、Desktop 与 Web。

查看 Maven Central
01

richtext-core

io.github.taocent:compose-richtext-core

Alpha
02

richtext

io.github.taocent:compose-richtext

Alpha
03

blockrichtext

io.github.taocent:compose-block-richtext

Experimental
04

androidApp · desktopApp · webApp · iosApp

各平台的示例与集成参考

Sample

一份代码,四种体验

每个平台都享有与之相称的实现细节:Android 上的 IME 选区与剪贴板,iOS 上专门处理的 CJK 输入,Desktop 的键盘选择,以及 Web 的渐进式构建。

Android

主要移动端目标。IME、选区、工具栏与剪贴板行为经过充分测试。

Supported

iOS

使用平台专有的 IME 合成处理,保证中日韩输入的稳定与连贯。

Supported

Desktop

完整支持键盘选区、工具栏交互与桌面级富文本编辑体验。

Supported

Web

构建目标已就绪,浏览器输入与剪贴板行为正在持续完善。

Experimental

几行代码,即刻开始。

标准富文本编辑器与块级编辑器分别提供了简洁的入口。alpha 阶段,API 仍可能微调。

Maven Central 已发布 0.1.0-alpha01

build.gradle.kts 中加入依赖即可使用。 本地开发也可以直接以 project(":…") 形式集成模块。

Latest Release
v0.1.0-alpha01
2026-06-10 · Apache-2.0
build.gradle.kts Kotlin DSL
// ① 引入依赖
dependencies {
  implementation("io.github.taocent:compose-richtext-core:0.1.0-alpha01")
  implementation("io.github.taocent:compose-richtext:0.1.0-alpha01")
  implementation("io.github.taocent:compose-block-richtext:0.1.0-alpha01")
}

// ② 标准富文本编辑器
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import com.taocent.simple.compose.component.richtext.RichTextEditor
import com.taocent.simple.compose.component.richtext.rememberRichTextState

@Composable
fun EditorScreen() {
    val state = rememberRichTextState()
    RichTextEditor(
        state    = state,
        modifier = Modifier.fillMaxSize(),
        placeholder = "Start writing…"
    )
}