
UI components optimized for E Ink® displays — Material Design 3 styling, monochrome color/typography, disabled ripples, accessibility and low‑refresh performance tweaks for readable, energy‑efficient interfaces.
A UI component library optimized for E Ink® displays on Android, built on top of Jetpack Compose Material 3 guidelines and classes. Our goal is to provide a consistent, predictable set of components that respects Material Design while addressing the specifics of E Ink® displays.
We intentionally rely on Material Design (Material 3) classes and patterns. This is by design and a good practice. It keeps us aligned with the Android ecosystem while adapting behavior and styling to E Ink®.
E Ink® displays differ from standard LCD/OLED:
MMD minimizes flicker, reduces unnecessary animations, and simplifies color and typography to make the UI readable and energy‑efficient.
MaterialTheme and compatibility with M3 components.eInkTypography and eInkColorScheme (monochromatic).dependencies {
implementation("com.mudita:MMD:${version}")
}Enable the MMD theme in your Compose tree. By default, it applies an E Ink®‑friendly color scheme and typography and disables ripple effects globally.
import com.mudita.mmd.components.buttons.ButtonMMD
import com.mudita.mmd.components.text.TextMMD
import com.mudita.mmd.ThemeMMD
@Composable
fun App() {
ThemeMMD {
ButtonMMD(onClick = { /* ... */ }) {
TextMMD("Hello E Ink®")
}
}
}MMD works well with both Material 3 components and MMD‑provided components. Use our components where they bring E Ink® optimizations; otherwise, standard M3 components will remain consistent via theming.
import com.mudita.mmd.components.buttons.ButtonMMD
import com.mudita.mmd.components.text.TextMMD
@Composable
fun Screen() {
ButtonMMD(onClick = { /* ... */ }) {
TextMMD(text = "Action")
}
}Component names may vary by module and version. Explore
com.mudita.mmd.components.*in your IDE for the full list and API.
ThemeMMD.Full documentation is available here: 📘 Open Documentation
Apache License 2.0.
Copyright 2025 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
A UI component library optimized for E Ink® displays on Android, built on top of Jetpack Compose Material 3 guidelines and classes. Our goal is to provide a consistent, predictable set of components that respects Material Design while addressing the specifics of E Ink® displays.
We intentionally rely on Material Design (Material 3) classes and patterns. This is by design and a good practice. It keeps us aligned with the Android ecosystem while adapting behavior and styling to E Ink®.
E Ink® displays differ from standard LCD/OLED:
MMD minimizes flicker, reduces unnecessary animations, and simplifies color and typography to make the UI readable and energy‑efficient.
MaterialTheme and compatibility with M3 components.eInkTypography and eInkColorScheme (monochromatic).dependencies {
implementation("com.mudita:MMD:${version}")
}Enable the MMD theme in your Compose tree. By default, it applies an E Ink®‑friendly color scheme and typography and disables ripple effects globally.
import com.mudita.mmd.components.buttons.ButtonMMD
import com.mudita.mmd.components.text.TextMMD
import com.mudita.mmd.ThemeMMD
@Composable
fun App() {
ThemeMMD {
ButtonMMD(onClick = { /* ... */ }) {
TextMMD("Hello E Ink®")
}
}
}MMD works well with both Material 3 components and MMD‑provided components. Use our components where they bring E Ink® optimizations; otherwise, standard M3 components will remain consistent via theming.
import com.mudita.mmd.components.buttons.ButtonMMD
import com.mudita.mmd.components.text.TextMMD
@Composable
fun Screen() {
ButtonMMD(onClick = { /* ... */ }) {
TextMMD(text = "Action")
}
}Component names may vary by module and version. Explore
com.mudita.mmd.components.*in your IDE for the full list and API.
ThemeMMD.Full documentation is available here: 📘 Open Documentation
Apache License 2.0.
Copyright 2025 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.