# material-design

Published articles for material-design.

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

## Customizing Angular Aria Tabs Quickly with Google Antigravity CLI

DevFeed: [Customizing Angular Aria Tabs Quickly with Google Antigravity CLI](<https://devfeed.tech/articles/customizing-angular-aria-tabs-quickly-with-google-antigravity-cli-18910.md>)

Original publisher: [Read original article](<https://blog.angular.dev/customizing-angular-aria-tabs-quickly-with-google-antigravity-cli-39ff8e0271a4?source=rss----447683c3d9a3---4>)

Author: Angular

Published: 2026-09-02T01:50:59Z

Content type: tutorial

Language: en

Sources: [Angular](<https://devfeed.tech/sources/angular.md>)

Topics: [Angular](<https://devfeed.tech/topics/angular.md>), [Accessibility](<https://devfeed.tech/topics/accessibility.md>), [google-antigravity](<https://devfeed.tech/topics/google-antigravity.md>), [CSS](<https://devfeed.tech/topics/css.md>), [User interface design](<https://devfeed.tech/topics/ui-design.md>)

Tags: [accessibility](<https://devfeed.tech/tags/accessibility.md>), [angular](<https://devfeed.tech/tags/angular.md>), [antigravity](<https://devfeed.tech/tags/antigravity.md>), [css](<https://devfeed.tech/tags/css.md>), [material-design](<https://devfeed.tech/tags/material-design.md>), [ui](<https://devfeed.tech/tags/ui.md>)

### AI overview

This tutorial tests how far Angular Aria tabs can be customized while preserving accessibility. It uses Google Antigravity's coding agent and a /goal command to transform a basic tab interface into a neumorphic design, then addresses contrast problems identified by Lighthouse. After a correction, the application reaches a 100 accessibility score.

### Source excerpt

The Angular team has called Angular Aria a set of customizable, fully accessible UI patterns. This is a strong claim, but in practice, how possible is it to heavily customize the components while maintaining accessibility features such as keyboard navigation and focus management? In this post, we're going to use Google Antigravity to put that claim to the test by updating a tab UI from generic styles to a neumorphism-based design. Motivation In the angular.dev documentation, the team has examples with a set of basic, Material Design-based, and retro styles meant to show developers what's possible with these new accessibility patterns. Here's the challenge: take the tabs basic styles example further by implementing the following neumorphism-inspired design. Here's a look at the UI before any changes: Angular Aria tabs component with basic styles applied The Lighthouse accessibility report shows a 100 score before making any changes: Accessibility score for the tabs based on the original styles Neumorphic designs are typically criticized for their poor accessibility. This experiment is designed to push the coding agent with complex CSS styles while stress-testing the customizability of Angular Aria tabs. Additionally, I'll ask the agent to update any accessibility issues that come up. Making the changes The styles for this UI are well organized, but require a lot of changes to achieve something like a neumorphic design. Instead of writing them by hand, Google Antigravity's coding agent can make the changes. Here's the prompt: /goal update the tabbed UI to be neumorphic style. The example UI is @example-ui.jpeg and the styles are in @src/app/app.css A few things to note here: This example used a reference image for inspiration (@example-ui.jpeg) to inform the designs. This example also uses the /goal command in Google Antigravity instructs the agent to work a task to completion without asking the user for immediate input. The Result Here's the resulting UI based on the

## How to Build, Theme, and Audit Material Design 3 UIs with AI Agents

DevFeed: [How to Build, Theme, and Audit Material Design 3 UIs with AI Agents](<https://devfeed.tech/articles/how-to-build-theme-and-audit-material-design-3-uis-with-ai-agents-25171.md>)

Original publisher: [Read original article](<https://www.ivanmorgillo.com/2026/06/02/how-to-build-theme-audit-material-design-3-claude-code/>)

Author: Ivan Morgillo

Published: 2026-06-02T17:00:00Z

Content type: tutorial

Language: en

Sources: [Ivan Morgillo](<https://devfeed.tech/sources/ivan-morgillo.md>)

Topics: [Material Design](<https://devfeed.tech/topics/material-design.md>), [Agent Skill](<https://devfeed.tech/topics/agent-skill.md>), [Compose](<https://devfeed.tech/topics/compose.md>), [AI Agent](<https://devfeed.tech/topics/ai-agent.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Accessibility](<https://devfeed.tech/topics/accessibility.md>), [Flutter](<https://devfeed.tech/topics/flutter.md>)

Tags: [accessibility](<https://devfeed.tech/tags/accessibility.md>), [agent-skill](<https://devfeed.tech/tags/agent-skill.md>), [ai-agents](<https://devfeed.tech/tags/ai-agents.md>), [audit](<https://devfeed.tech/tags/audit.md>), [compose](<https://devfeed.tech/tags/compose.md>), [css](<https://devfeed.tech/tags/css.md>), [flutter](<https://devfeed.tech/tags/flutter.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [material-design](<https://devfeed.tech/tags/material-design.md>)

### AI overview

A practical guide to an MIT-licensed agent skill for building and auditing Material Design 3 interfaces. It covers component generation, seed-color theme creation for light and dark modes, responsive app shells, accessibility checks, and support for Compose, Flutter, CSS, and JSON outputs.

### Source excerpt

A practical guide to material-3-skill -- components, theme generation, the 10-category MD3 audit, and the real Compose bugs it catches in production code.

## Jetpack Compose Material 3 unifies theme data in LocalMaterialTheme

DevFeed: [Jetpack Compose Material 3 unifies theme data in LocalMaterialTheme](<https://devfeed.tech/articles/localmaterialtheme-from-prop-hell-to-theme-nirvana-material3-25984.md>)

Original publisher: [Read original article](<https://proandroiddev.com/localmaterialtheme-from-prop-hell-to-theme-nirvana-material3-38b3c01ab7d4?source=rss-711ab22c5c77------2>)

Author: Nav Singh

Published: 2026-03-12T19:38:30Z

Content type: tutorial

Language: en

Sources: [Stories by Nav Singh 🇨🇦 on Medium](<https://devfeed.tech/sources/stories-by-nav-singh-on-medium.md>)

Topics: [Jetpack Compose](<https://devfeed.tech/topics/jetpack-compose.md>), [Design system](<https://devfeed.tech/topics/design-system.md>)

Tags: [android-app-development](<https://devfeed.tech/tags/android-app-development.md>), [androiddev](<https://devfeed.tech/tags/androiddev.md>), [design-systems](<https://devfeed.tech/tags/design-systems.md>), [jetpack-compose](<https://devfeed.tech/tags/jetpack-compose.md>), [material-design](<https://devfeed.tech/tags/material-design.md>), [material3](<https://devfeed.tech/tags/material3.md>)

### AI overview

Jetpack Compose Material 3 1.5.0-alpha15 changes MaterialTheme to use one LocalMaterialTheme CompositionLocal for color, typography, shapes, and motion. The article explains how this can simplify theme management and allow custom modifier nodes to read theme data outside composable scopes.

### Source excerpt

Image generated using Perplexity Jetpack Compose Material 3 1.5.0-alpha15 introduces a subtle but powerful refactor MaterialTheme now uses a single LocalMaterialTheme CompositionLocal instead of separate locals for color, typography, shapes, and motion. While this simplifies internal theme management, its real value emerges when building custom design systems and theme-aware Modifier libraries. The Refactor: Cleaner Under the Hood Previously, MaterialTheme relied on multiple CompositionLocals: Source:https://android-review.googlesource.com/c/platform/frameworks/support/+/3949000/16/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/MaterialTheme.kt Now: Everything flows through one unified source: Source:https://android-review.googlesource.com/c/platform/frameworks/support/+/3949000/16/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/MaterialTheme.ktThis reduces allocations and simplifies the theme provider.⭐ Where It Shines: Design Systems & Custom Modifiers ⭐ The game-changer is CompositionLocalConsumerModifierNode support. Custom Modifiers that handle drawing/layout outside @Composable scopes can now read theme data directly:object BrandGradientOverlayElement : ModifierNodeElement<BrandGradientOverlayNode>() { override fun create(): BrandGradientOverlayNode = BrandGradientOverlayNode() override fun update(node: BrandGradientOverlayNode) { // No-Op } override fun InspectorInfo.inspectableProperties() { name = "brandGradientOverlay" } override fun equals(other: Any?): Boolean = (this === other) override fun hashCode(): Int = javaClass.hashCode() } class BrandGradientOverlayNode : Modifier.Node(), DrawModifierNode, CompositionLocalConsumerModifierNode { override fun ContentDrawScope.draw() { // Read color scheme to access colors val colorScheme = currentValueOf(MaterialTheme.LocalMaterialTheme).colorScheme val gradient = Brush.linearGradient( listOf( colorScheme.primary, colorScheme.secondary) ) drawContent() d

## Exploring Material 3 for Compose: Large Top App Bar

DevFeed: [Exploring Material 3 for Compose: Large Top App Bar](<https://devfeed.tech/articles/exploring-material-3-for-compose-large-top-app-bar-25186.md>)

Original publisher: [Read original article](<https://joebirch.co/android/exploring-material-3-for-compose-large-top-app-bar/>)

Author: hitherejoe

Published: 2025-08-04T14:59:31Z

Content type: tutorial

Language: en

Sources: [Joe Birch](<https://devfeed.tech/sources/joe-birch.md>)

Topics: [Compose](<https://devfeed.tech/topics/compose.md>), [navigation](<https://devfeed.tech/topics/navigation.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-app-development](<https://devfeed.tech/tags/android-app-development.md>), [android-apps](<https://devfeed.tech/tags/android-apps.md>), [android-development](<https://devfeed.tech/tags/android-development.md>), [androiddev](<https://devfeed.tech/tags/androiddev.md>), [app-development](<https://devfeed.tech/tags/app-development.md>), [compose](<https://devfeed.tech/tags/compose.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [implement](<https://devfeed.tech/tags/implement.md>), [jetpack-compose](<https://devfeed.tech/tags/jetpack-compose.md>), [jetpackcompose](<https://devfeed.tech/tags/jetpackcompose.md>), [material-design](<https://devfeed.tech/tags/material-design.md>), [mobile-app-development](<https://devfeed.tech/tags/mobile-app-development.md>), [navigation](<https://devfeed.tech/tags/navigation.md>), [screen](<https://devfeed.tech/tags/screen.md>), [state](<https://devfeed.tech/tags/state.md>), [visibility](<https://devfeed.tech/tags/visibility.md>)

### AI overview

This tutorial explains how to use and customize Material 3's LargeTopAppBar composable in Compose. It covers the app bar's expanded and collapsed states and the scroll behaviors that control its transitions.

### Source excerpt

In the last post, we took a look into the new Loading Indicator in the Material 3 expressive package. As we continue to dive into different parts of Material 3 we'll discover more components that we can plug into our apps. Up next we have the LargeTopAppBar - this composable brings dynamic, scroll-responsive navigation to... Continue reading ->

## Now in Android #117 -- Google I/O 2025 Part I

DevFeed: [Now in Android #117 -- Google I/O 2025 Part I](<https://devfeed.tech/articles/now-in-android-117-google-i-o-2025-part-i-22671.md>)

Original publisher: [Read original article](<https://medium.com/androiddevelopers/now-in-android-117-google-i-o-2025-part-i-fd20a09a2299?source=rss----95b274b437c2---4>)

Author: Daniel Galpin

Published: 2025-06-05T17:28:56Z

Content type: article

Language: en

Sources: [Android Developers - Medium](<https://devfeed.tech/sources/android-developers-medium.md>)

Topics: [Android](<https://devfeed.tech/topics/android.md>), [Material Design](<https://devfeed.tech/topics/material-design.md>), [Development](<https://devfeed.tech/topics/development.md>), [Google](<https://devfeed.tech/topics/google.md>), [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [Android XR](<https://devfeed.tech/topics/android-xr.md>), [Large Screen](<https://devfeed.tech/topics/large-screen.md>), [User experience (UX)](<https://devfeed.tech/topics/ux.md>)

Tags: [2025](<https://devfeed.tech/tags/2025.md>), [adaptive](<https://devfeed.tech/tags/adaptive.md>), [ai](<https://devfeed.tech/tags/ai.md>), [android](<https://devfeed.tech/tags/android.md>), [android-16](<https://devfeed.tech/tags/android-16.md>), [android-xr](<https://devfeed.tech/tags/android-xr.md>), [design-patterns](<https://devfeed.tech/tags/design-patterns.md>), [development](<https://devfeed.tech/tags/development.md>), [featured](<https://devfeed.tech/tags/featured.md>), [gemini](<https://devfeed.tech/tags/gemini.md>), [google](<https://devfeed.tech/tags/google.md>), [google-i-o](<https://devfeed.tech/tags/google-i-o.md>), [google-io-2025](<https://devfeed.tech/tags/google-io-2025.md>), [material-design](<https://devfeed.tech/tags/material-design.md>), [now-in-android](<https://devfeed.tech/tags/now-in-android.md>), [ux](<https://devfeed.tech/tags/ux.md>)

### AI overview

This first part of a special Google I/O 2025 edition of Now in Android surveys updates across Material Design, Android form factors, adaptive app development, Android XR, on-device and cloud-based AI, and Android 16. It highlights Material 3 Expressive, including new motion physics, typography, shapes, colors, and component configuration capabilities.

### Source excerpt

Now in Android #117 -- Google I/O 2025 Part IDesign, Watches, Cars, Tablets, Adaptive Apps, Android XR, Gemini, and Android 16 Welcome to part one of a special two-part Google I/O 2025 edition of Now in Android. This first post will cover a bunch of changes related to the latest evolution of Material Design, watches, cars, tablets, laptops, and connected displays, the latest in adaptive app development, XR development, how to take advantage of on-device and cloud based AI, and Android 16. https://medium.com/media/f4779f9096112bf2cfff21aec7eeb199/hrefhttps://medium.com/media/d23b17afda66e01541bb4c84ecea4974/href Most of the content of this post is available in the form of a video or podcast, so feel free to watch or listen rather than read on. (Or do all three to help you remember! There won't be a quiz.) The Android Show: I/O Edition -- what Android devs need to know! 🤖 We began the I/O season with a special edition of The Android Show, where we introduced the latest evolution of Material Design, Material 3 Expressive. https://medium.com/media/815112dc9a5b3a849cced5343837f4e6/href The Android Show: I/O Edition - what Android devs need to know! https://medium.com/media/906cc031e2cbb814b2a4964db156a2cc/href Material 3 Expressive adds a new motion physics system, new type styles for variable and static fonts, an expanded shape library with morphing animations, and an expanded range of colors. Fifteen new or updated components now feature more configuration capabilities, shape options, emphasized text, and other expressive updates. The Material team has a post where you can read all about it, including design tactics. M3 Expressive: Engaging UX Design At I/O Build next-level UX with Material 3 Expressive covered how to use the new expressive design patterns; breaking down the research, explaining new guidelines, and including new design files + code. https://medium.com/media/4ce31edc8b396f71acc6192d1ac6160f/href The first beta of the Q3 Android 16 update contains much of

## A Visual Guide to TopAppBar Variants in Jetpack Compose

DevFeed: [A Visual Guide to TopAppBar Variants in Jetpack Compose](<https://devfeed.tech/articles/a-visual-guide-to-topappbar-variants-in-jetpack-compose-24857.md>)

Original publisher: [Read original article](<https://alexzh.com/visual-guide-to-topappbar-variants-in-jetpack-compose/>)

Author: Alex Zhukovich

Published: 2025-02-14T01:16:00Z

Content type: tutorial

Language: en

Sources: [Alex Zhuk - Android development and testing](<https://devfeed.tech/sources/alex-zhuk-android-development-and-testing.md>)

Topics: [Jetpack Compose](<https://devfeed.tech/topics/jetpack-compose.md>), [Material Design](<https://devfeed.tech/topics/material-design.md>), [Development](<https://devfeed.tech/topics/development.md>), [Library](<https://devfeed.tech/topics/library.md>)

Tags: [components](<https://devfeed.tech/tags/components.md>), [design](<https://devfeed.tech/tags/design.md>), [development](<https://devfeed.tech/tags/development.md>), [display](<https://devfeed.tech/tags/display.md>), [guide](<https://devfeed.tech/tags/guide.md>), [jetpack-compose](<https://devfeed.tech/tags/jetpack-compose.md>), [material-design](<https://devfeed.tech/tags/material-design.md>), [standard](<https://devfeed.tech/tags/standard.md>), [typography](<https://devfeed.tech/tags/typography.md>)

### AI overview

This article explains the predefined TopAppBar variants in the Material 3 library for Jetpack Compose. It compares their default typography and heights and describes options for centered titles, expandable layouts, subtitles, navigation icons, and actions.

### Source excerpt

Material 3 offers a variety of pre-built TopAppBar components to streamline your development and ensure consistency with Material Design guidelines. This article explores different TopAppBar variations, including those with centered titles, expandable layouts, and support for subtitles.

## How to add platform-specific icons to a Compose Multiplatform project

DevFeed: [How to add platform-specific icons to a Compose Multiplatform project](<https://devfeed.tech/articles/how-to-add-platform-specific-icons-to-a-compose-multiplatform-project-24847.md>)

Original publisher: [Read original article](<https://alexzh.com/how-to-add-platform-specific-icons-to-a-compose-multiplatform-project/>)

Author: Alex Zhukovich

Published: 2024-12-05T22:40:46Z

Content type: tutorial

Language: en

Sources: [Alex Zhuk - Android development and testing](<https://devfeed.tech/sources/alex-zhuk-android-development-and-testing.md>)

Topics: [compose-multiplatform](<https://devfeed.tech/topics/compose-multiplatform.md>), [multiplatform](<https://devfeed.tech/topics/multiplatform.md>), [Kotlin Multiplatform](<https://devfeed.tech/topics/kotlin-multiplatform.md>), [Compose](<https://devfeed.tech/topics/compose.md>), [Android](<https://devfeed.tech/topics/android.md>), [iOS](<https://devfeed.tech/topics/ios.md>), [Web](<https://devfeed.tech/topics/web.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [code](<https://devfeed.tech/tags/code.md>), [compose](<https://devfeed.tech/tags/compose.md>), [compose-multiplatform](<https://devfeed.tech/tags/compose-multiplatform.md>), [desktop](<https://devfeed.tech/tags/desktop.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [ios](<https://devfeed.tech/tags/ios.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [material-design](<https://devfeed.tech/tags/material-design.md>), [multiplatform](<https://devfeed.tech/tags/multiplatform.md>), [navigation](<https://devfeed.tech/tags/navigation.md>), [platform](<https://devfeed.tech/tags/platform.md>), [web](<https://devfeed.tech/tags/web.md>)

### AI overview

A tutorial on adding platform-specific icons to a Compose Multiplatform project for Android, iOS, Web, and Desktop. It uses Material icons, SVG resources, and Kotlin Multiplatform expect/actual implementations to provide reusable platform-specific icon objects.

### Source excerpt

Explore how to add a platform-specific icons to a Compose Multiplatform project. This article guides you through using different icons for Android, iOS, Desktop and Web platforms.

## Custom Sliders in Jetpack Compose

DevFeed: [Custom Sliders in Jetpack Compose](<https://devfeed.tech/articles/custom-sliders-in-jetpack-compose-25773.md>)

Original publisher: [Read original article](<https://www.sinasamaki.com/custom-material-3-sliders-in-jetpack-compose/>)

Author: sinasamaki

Published: 2024-09-26T21:56:18Z

Content type: tutorial

Language: en

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

Topics: [Jetpack Compose](<https://devfeed.tech/topics/jetpack-compose.md>), [Material Design](<https://devfeed.tech/topics/material-design.md>), [ui](<https://devfeed.tech/topics/ui.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [article](<https://devfeed.tech/tags/article.md>), [code](<https://devfeed.tech/tags/code.md>), [jetpack-compose](<https://devfeed.tech/tags/jetpack-compose.md>), [material-design](<https://devfeed.tech/tags/material-design.md>), [modifiers](<https://devfeed.tech/tags/modifiers.md>), [render](<https://devfeed.tech/tags/render.md>), [ui](<https://devfeed.tech/tags/ui.md>)

### AI overview

A tutorial on customizing Material 3 sliders in Jetpack Compose. It explains how to create custom thumbs and tracks, calculate the active fraction across arbitrary ranges, and build a reusable slider with snapping points and formatted thumb text.

### Source excerpt

Create unique and delightful sliders for your app

## Material Design 3 for Compose version 1.3

DevFeed: [Material Design 3 for Compose version 1.3](<https://devfeed.tech/articles/material-design-3-for-compose-version-1-3-29279.md>)

Original publisher: [Read original article](<https://material.io/blog/material-3-compose-1-3>)

Published: 2024-09-10T13:00:00Z

Content type: release

Language: en

Sources: [Material.io - Material Design](<https://devfeed.tech/sources/material-io-material-design.md>)

Topics: [Compose](<https://devfeed.tech/topics/compose.md>), [Material Design](<https://devfeed.tech/topics/material-design.md>), [version](<https://devfeed.tech/topics/version.md>)

Tags: [compose](<https://devfeed.tech/tags/compose.md>), [exploring](<https://devfeed.tech/tags/exploring.md>), [material-design](<https://devfeed.tech/tags/material-design.md>), [material-design-3](<https://devfeed.tech/tags/material-design-3.md>), [release](<https://devfeed.tech/tags/release.md>), [version](<https://devfeed.tech/tags/version.md>)

### AI overview

An article exploring the 1.3 release of Material Design 3 for Compose.

### Source excerpt

Exploring the 1.3 release of Material Design 3 for Compose

## Material Design Components for Android 1.11.0 and 1.12.0

DevFeed: [Material Design Components for Android 1.11.0 and 1.12.0](<https://devfeed.tech/articles/material-design-components-for-android-1-11-0-and-1-12-0-29225.md>)

Original publisher: [Read original article](<https://material.io/blog/android-stable-release-1-12-0>)

Published: 2024-05-08T13:00:00Z

Content type: release

Language: en

Sources: [Material.io - Material Design](<https://devfeed.tech/sources/material-io-material-design.md>)

Topics: [Material Design](<https://devfeed.tech/topics/material-design.md>), [Android](<https://devfeed.tech/topics/android.md>), [color](<https://devfeed.tech/topics/color.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [color](<https://devfeed.tech/tags/color.md>), [components](<https://devfeed.tech/tags/components.md>), [material-design](<https://devfeed.tech/tags/material-design.md>)

### AI overview

A release update for Material Design Components for Android versions 1.11.0 and 1.12.0, covering new color options and carousel refinements.

### Source excerpt

New color options and carousel refinements

## Why Your App Should Have Both Dark And Light Themes

DevFeed: [Why Your App Should Have Both Dark And Light Themes](<https://devfeed.tech/articles/why-your-app-should-have-both-dark-and-light-themes-38476.md>)

Original publisher: [Read original article](<https://eevis.codes/blog/2024-03-07/why-your-app-should-have-both-dark-and-light-themes/>)

Author: Eevis Panula

Published: 2024-03-07T04:11:46.439000Z

Content type: tutorial

Language: en

Sources: [Eevis Blog](<https://devfeed.tech/sources/eevis-blog.md>)

Topics: [Accessibility](<https://devfeed.tech/topics/accessibility.md>), [Dark Mode](<https://devfeed.tech/topics/dark-mode.md>), [Android](<https://devfeed.tech/topics/android.md>), [Jetpack Compose](<https://devfeed.tech/topics/jetpack-compose.md>), [XML](<https://devfeed.tech/topics/xml.md>), [Material Design](<https://devfeed.tech/topics/material-design.md>), [Flutter](<https://devfeed.tech/topics/flutter.md>)

Tags: [accessibility](<https://devfeed.tech/tags/accessibility.md>), [android](<https://devfeed.tech/tags/android.md>), [android-development](<https://devfeed.tech/tags/android-development.md>), [dark-mode](<https://devfeed.tech/tags/dark-mode.md>), [flutter](<https://devfeed.tech/tags/flutter.md>), [jetpack-compose](<https://devfeed.tech/tags/jetpack-compose.md>), [material-design](<https://devfeed.tech/tags/material-design.md>), [xml](<https://devfeed.tech/tags/xml.md>)

### AI overview

This article explains why apps should support both dark and light themes for accessibility. It discusses how different visual conditions and preferences can make either theme more suitable, then outlines Android support for system theme switching and references implementation guidance for XML themes, Jetpack Compose, Material Design 3, and Flutter.

### Source excerpt

You might have heard that your app should have a dark theme available. Some say it's because of preference, but it's actually also an accessibility thing. This blog post itself doesn't have the code to enable dark and light themes for the user. Instead, it explains why having both of them is essential and provides further reading on the topic -- yes, with links to some code and instructions as well. Accessibility of Dark and Light Themes Many people use everything they can in a dark theme. After all, staring at screens for a long time might be easier if the user interface uses darker colors. Using a dark theme instead of a light one also saves some battery. However, many people choose to use the dark theme because it is more accessible for them. For example, some vision issues might cause discomfort because of light or even wash out the rest of the person's vision. A white (or similar) background behind the text can cause these issues. Another reason is that dark themes often have better contrast (if they're designed properly). Now, if the dark theme is so great, why not just have the dark theme for the app and forget about the light theme? While dark theme is more accessible for many, some people benefit from light theme. For example, people with astigmatism may find light theme more accessible, and people with dyslexia might prefer light mode for readability. For reference, see, for example, this article: Dark mode: How accessible design raises the bar - Layth Sihan Luckily, defining light and dark themes in modern Android development is straightforward. Let's discuss the technical considerations of light and dark themes next. Technical Considerations Starting from Android 10 (SDK 29), there is a system setting for switching between dark and light modes. If you define your themes correctly, your app will respect that system-wide setting by default. To define a dark theme for your app using themes from XML files, follow the instructions in Android documentation: Imp

## Refining Compose API for design systems

DevFeed: [Refining Compose API for design systems](<https://devfeed.tech/articles/refining-compose-api-for-design-systems-22602.md>)

Original publisher: [Read original article](<https://medium.com/bumble-tech/refining-compose-api-for-design-systems-d652e2c2eac3?source=rss----6353b5325b1a---4>)

Author: Yury

Published: 2024-02-21T11:10:51Z

Content type: article

Language: en

Sources: [Bumble Tech](<https://devfeed.tech/sources/bumble-tech.md>)

Topics: [Design system](<https://devfeed.tech/topics/design-system.md>), [Jetpack Compose](<https://devfeed.tech/topics/jetpack-compose.md>), [User Interfaces](<https://devfeed.tech/topics/user-interfaces.md>), [API](<https://devfeed.tech/topics/api.md>), [Material Design](<https://devfeed.tech/topics/material-design.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [api](<https://devfeed.tech/tags/api.md>), [compose](<https://devfeed.tech/tags/compose.md>), [design-systems](<https://devfeed.tech/tags/design-systems.md>), [jetpack-compose](<https://devfeed.tech/tags/jetpack-compose.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [material-design](<https://devfeed.tech/tags/material-design.md>), [user-interfaces](<https://devfeed.tech/tags/user-interfaces.md>)

### AI overview

This article explains how to design custom Jetpack Compose components for internal design systems. It compares restrictive APIs, which enforce predefined usage but limit extensibility, with relaxed Slot APIs that accept lambda-generated content and support more flexible component variants.

### Source excerpt

Jetpack Compose both makes it easier and promotes usage of an internal design system by creating custom Compose components. But how should we build these components? In this article, we will take a look at possible implementations of a design component, explore their API verbosity and extensibility, and how we can find a balance between these characteristics to make Compose components both easy to use, enforce design system guidelines and extendable on demand. Let's get started! Design System and Compose A design system is a comprehensive set of guidelines, components, and rules that help to build cohesive and consistent user interfaces. The most common design system for Android developers is Material Design 3 which is available for Compose too. Custom design systems might be built on top of existing systems like Material Design or can be created from scratch. Compose provides all the tools that are required for this process. Design System NavigationBar Let's take a look at NavigationBar. A usual NavigationBar that we can see almost in every app. The design system in this case defines the following properties: Margin between the component borders and the content. Margin between the left/middle/right content. Preferred style of the left/right icons. Text style of the title. Restrictive API Compose implementation of NavigationBar is pretty straightforward. @Composable fun NavigationBar( title: String, modifier: Modifier = Modifier, leftButton: IconButton? = null, rightButton: IconButton? = null, ) { Row(modifier) { ... } } @Immutable data class IconButton( val icon: Painter, val onClick: () -> Unit, ) An API that allows only particular use of NavigationBar is a restrictive API. Such API ensures that developers will be able to use the component only in the predefined way, leaving no space for possible mistakes and inconsistency. Great at first sight, but has a major restriction -- missing extensibility. As soon as we continue making our apps bigger, we will eventually f

## Material Design 3 for Compose 1.2

DevFeed: [Material Design 3 for Compose 1.2](<https://devfeed.tech/articles/material-design-3-for-compose-1-2-29278.md>)

Original publisher: [Read original article](<https://material.io/blog/material-3-compose-1-2>)

Published: 2024-02-07T13:00:00Z

Content type: release

Language: en

Sources: [Material.io - Material Design](<https://devfeed.tech/sources/material-io-material-design.md>)

Topics: [Compose](<https://devfeed.tech/topics/compose.md>), [Material Design](<https://devfeed.tech/topics/material-design.md>)

Tags: [compose](<https://devfeed.tech/tags/compose.md>), [design](<https://devfeed.tech/tags/design.md>), [material-design](<https://devfeed.tech/tags/material-design.md>), [material-design-3](<https://devfeed.tech/tags/material-design-3.md>), [release](<https://devfeed.tech/tags/release.md>)

### AI overview

This article explores the 1.2 release of Material Design 3 for Compose.

### Source excerpt

Exploring the 1.2 release of Material Design 3 for Compose

## Meet Homepage - Your HomeLab Services Dashboard

DevFeed: [Meet Homepage - Your HomeLab Services Dashboard](<https://devfeed.tech/articles/meet-homepage-your-homelab-services-dashboard-10571.md>)

Original publisher: [Read original article](<https://technotim.com/posts/homepage-dashboard/>)

Author: Techno Tim

Published: 2024-01-15T13:00:00Z

Content type: tutorial

Language: en

Sources: [Techno Tim](<https://devfeed.tech/sources/techno-tim.md>)

Topics: [Docker](<https://devfeed.tech/topics/docker.md>), [Docker Compose](<https://devfeed.tech/topics/docker-compose.md>), [API](<https://devfeed.tech/topics/api.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>), [Tailwind CSS](<https://devfeed.tech/topics/tailwind.md>), [Material Design](<https://devfeed.tech/topics/material-design.md>), [Kubernetes](<https://devfeed.tech/topics/kubernetes.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [compose](<https://devfeed.tech/tags/compose.md>), [configuration](<https://devfeed.tech/tags/configuration.md>), [container](<https://devfeed.tech/tags/container.md>), [css](<https://devfeed.tech/tags/css.md>), [dark-mode](<https://devfeed.tech/tags/dark-mode.md>), [design](<https://devfeed.tech/tags/design.md>), [docker](<https://devfeed.tech/tags/docker.md>), [homelab](<https://devfeed.tech/tags/homelab.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [install](<https://devfeed.tech/tags/install.md>), [kubernetes](<https://devfeed.tech/tags/kubernetes.md>), [material-design](<https://devfeed.tech/tags/material-design.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [self-hosted](<https://devfeed.tech/tags/self-hosted.md>), [services](<https://devfeed.tech/tags/services.md>), [tailwind](<https://devfeed.tech/tags/tailwind.md>), [tailwind-css](<https://devfeed.tech/tags/tailwind-css.md>), [yaml](<https://devfeed.tech/tags/yaml.md>)

### AI overview

A tutorial on setting up Homepage, an open-source HomeLab services dashboard, with Docker and Docker Compose. It covers configuration files, health checks, customization, icons, dark mode, and service links, with notes on Kubernetes compatibility.

### Source excerpt

Meet Homepage, your new HomeLab services dashboard homepage! Homepage is an open source, highly customizable homepage (or startpage) dashboard that runs on Docker and is integrated with over 100 API services. It's easy to set up, looks good by default, and helps you keep track of everything you are running in your HomeLab and more. Today we'll set up Homepage and get it running in Docker in...

## Introducing Firebase and Android Basics with Compose course

DevFeed: [Introducing Firebase and Android Basics with Compose course](<https://devfeed.tech/articles/introducing-firebase-and-android-basics-with-compose-course-16522.md>)

Original publisher: [Read original article](<https://firebase.blog/posts/2023/06/android-jetpack-basics>)

Author: Marina Coelho

Published: 2023-06-02T00:00:00Z

Content type: release

Language: en

Sources: [Firebase Blog](<https://devfeed.tech/sources/firebase-blog.md>)

Topics: [Firebase](<https://devfeed.tech/topics/firebase.md>), [Jetpack Compose](<https://devfeed.tech/topics/jetpack-compose.md>), [Android](<https://devfeed.tech/topics/android.md>), [android-development](<https://devfeed.tech/topics/android-development.md>), [Firestore](<https://devfeed.tech/topics/firestore.md>), [Authentication](<https://devfeed.tech/topics/authentication.md>), [Material Design](<https://devfeed.tech/topics/material-design.md>), [Monitoring](<https://devfeed.tech/topics/monitoring.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-apps](<https://devfeed.tech/tags/android-apps.md>), [android-development](<https://devfeed.tech/tags/android-development.md>), [authentication](<https://devfeed.tech/tags/authentication.md>), [beginner](<https://devfeed.tech/tags/beginner.md>), [compose](<https://devfeed.tech/tags/compose.md>), [firebase](<https://devfeed.tech/tags/firebase.md>), [firestore](<https://devfeed.tech/tags/firestore.md>), [jetpack](<https://devfeed.tech/tags/jetpack.md>), [jetpack-compose](<https://devfeed.tech/tags/jetpack-compose.md>), [launch](<https://devfeed.tech/tags/launch.md>), [material-design](<https://devfeed.tech/tags/material-design.md>), [monitoring](<https://devfeed.tech/tags/monitoring.md>)

### AI overview

Firebase and the Android team announce the Firebase and Android Basics with Compose course, which teaches learners to build native Android apps with Jetpack Compose and Firebase services. The course covers UI design, recommended architecture, authentication, data storage, remote configuration, and performance monitoring.

### Source excerpt

We teamed up with the Android team to build the Firebase and Android Basics with Compose course!

## Material Design Components for Android 1.9.0

DevFeed: [Material Design Components for Android 1.9.0](<https://devfeed.tech/articles/material-design-components-for-android-1-9-0-29233.md>)

Original publisher: [Read original article](<https://material.io/blog/android-stable-release-1-9-0>)

Published: 2023-05-17T13:00:00Z

Content type: release

Language: en

Sources: [Material.io - Material Design](<https://devfeed.tech/sources/material-io-material-design.md>)

Topics: [Material Design](<https://devfeed.tech/topics/material-design.md>), [Android](<https://devfeed.tech/topics/android.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [components](<https://devfeed.tech/tags/components.md>), [material-design](<https://devfeed.tech/tags/material-design.md>)

### AI overview

A release article titled "Material Design Components for Android 1.9.0" highlighting new ways to navigate and interact with applications.

### Source excerpt

New ways to navigate in and interact with your applications

## Material Design 3 for Compose gets new components and features

DevFeed: [Material Design 3 for Compose gets new components and features](<https://devfeed.tech/articles/material-design-3-for-compose-gets-new-components-and-features-29277.md>)

Original publisher: [Read original article](<https://material.io/blog/material-3-compose-1-1>)

Published: 2023-05-10T13:00:00Z

Content type: release

Language: en

Sources: [Material.io - Material Design](<https://devfeed.tech/sources/material-io-material-design.md>)

Topics: [Compose](<https://devfeed.tech/topics/compose.md>), [Material Design](<https://devfeed.tech/topics/material-design.md>)

Tags: [components](<https://devfeed.tech/tags/components.md>), [compose](<https://devfeed.tech/tags/compose.md>), [features](<https://devfeed.tech/tags/features.md>), [material-design](<https://devfeed.tech/tags/material-design.md>), [material-design-3](<https://devfeed.tech/tags/material-design-3.md>), [release](<https://devfeed.tech/tags/release.md>)

### AI overview

This article explores the 1.1 release of Material Design 3 for Compose, including new components and features.

### Source excerpt

Exploring the 1.1 release of Material Design 3 for Compose

## Material Design at I/O '23

DevFeed: [Material Design at I/O '23](<https://devfeed.tech/articles/material-design-at-i-o-23-29295.md>)

Original publisher: [Read original article](<https://material.io/blog/material-google-io23>)

Published: 2023-05-01T10:00:00Z

Content type: release

Language: en

Sources: [Material.io - Material Design](<https://devfeed.tech/sources/material-io-material-design.md>)

Topics: [Material Design](<https://devfeed.tech/topics/material-design.md>), [Google](<https://devfeed.tech/topics/google.md>)

Tags: [conference](<https://devfeed.tech/tags/conference.md>), [design](<https://devfeed.tech/tags/design.md>), [google](<https://devfeed.tech/tags/google.md>), [material-design](<https://devfeed.tech/tags/material-design.md>)

### AI overview

The article covers Material Design at Google I/O 2023, including Material 3 updates and related online content from Google's annual developer conference.

### Source excerpt

Get the latest Material 3 updates and online content at Google's annual developer conference

## Material Design Components for Android 1.8.0

DevFeed: [Material Design Components for Android 1.8.0](<https://devfeed.tech/articles/material-design-components-for-android-1-8-0-29232.md>)

Original publisher: [Read original article](<https://material.io/blog/android-stable-release-1-8-0>)

Published: 2023-02-02T13:00:00Z

Content type: release

Language: en

Sources: [Material.io - Material Design](<https://devfeed.tech/sources/material-io-material-design.md>)

Topics: [Material Design](<https://devfeed.tech/topics/material-design.md>), [Android](<https://devfeed.tech/topics/android.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [applications](<https://devfeed.tech/tags/applications.md>), [components](<https://devfeed.tech/tags/components.md>), [material-design](<https://devfeed.tech/tags/material-design.md>)

### AI overview

Material Design Components for Android 1.8.0 introduces new ways to navigate in and interact with applications.

### Source excerpt

New ways to navigate in and interact with your applications

## Jetpack Compose OTP input field

DevFeed: [Jetpack Compose OTP input field](<https://devfeed.tech/articles/jetpack-compose-otp-input-field-25853.md>)

Original publisher: [Read original article](<https://proandroiddev.com/jetpack-compose-otp-input-field-bcfa22c85e5f?source=rss-8aced922ece------2>)

Author: Ban Markovic

Published: 2022-12-19T14:51:05Z

Content type: tutorial

Language: en

Sources: [Stories by Ban Markovic on Medium](<https://devfeed.tech/sources/stories-by-ban-markovic-on-medium.md>)

Topics: [Jetpack Compose](<https://devfeed.tech/topics/jetpack-compose.md>), [Compose](<https://devfeed.tech/topics/compose.md>), [Android](<https://devfeed.tech/topics/android.md>), [android-development](<https://devfeed.tech/topics/android-development.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>), [ui](<https://devfeed.tech/topics/ui.md>), [Code](<https://devfeed.tech/topics/code.md>), [Development](<https://devfeed.tech/topics/development.md>), [Authentication](<https://devfeed.tech/topics/authentication.md>), [implementation](<https://devfeed.tech/topics/implementation.md>), [Material Design](<https://devfeed.tech/topics/material-design.md>), [passwords](<https://devfeed.tech/topics/passwords.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-app-development](<https://devfeed.tech/tags/android-app-development.md>), [android-development](<https://devfeed.tech/tags/android-development.md>), [androiddev](<https://devfeed.tech/tags/androiddev.md>), [authentication](<https://devfeed.tech/tags/authentication.md>), [code](<https://devfeed.tech/tags/code.md>), [component](<https://devfeed.tech/tags/component.md>), [compose](<https://devfeed.tech/tags/compose.md>), [compose-ui](<https://devfeed.tech/tags/compose-ui.md>), [development](<https://devfeed.tech/tags/development.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [jetpack-compose](<https://devfeed.tech/tags/jetpack-compose.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [material-design](<https://devfeed.tech/tags/material-design.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [mobile-apps](<https://devfeed.tech/tags/mobile-apps.md>), [otp](<https://devfeed.tech/tags/otp.md>), [password](<https://devfeed.tech/tags/password.md>), [ui](<https://devfeed.tech/tags/ui.md>)

### AI overview

A tutorial on building a customizable one-time password input field for Android with Jetpack Compose and BasicTextField. It explains why BasicTextField can be preferable to Material TextField for customization, configures a numeric password keyboard, and limits input to six digits.

### Source excerpt

One-time password (OTP), also called dynamic password, one-time PIN, and one-time authorization code (OTAC), is password that is only valid for one login session. Most commonly, it is received in a format of 4 or 6 digit code, through SMS, and it used for implementation of two-factor authentication. Implementing OTP support inside our mobile apps requires us to build a custom UI input field, which should be strictly customized for handling the received OTP code. Motivation Since Jetpack Compose is a new UI toolkit for Android development, I wanted to write an article regarding how we can make our own custom OTP input field using BasicTextField. Custom OTP input Creating input fields with Compose UI is quite simple. There is already an existing Material component called TextField, that we can use. It has a lot of built-in functionalities because it follows Material design principles. That also comes with some drawbacks, for example, if we wanted to customize our input field, we would have struggled to do so with TextField, because it isn't as flexible. That's why we need another component that is a bit lower-level compared to TextField, but it enables us to customize it the way that suits us the best. I'm talking about BasicTextField. Implementation Firstly, lets implement a simple BasicTextField that enables it to open a keyboard with only numbers. We can do that by setting up the keybaordOptions parameter with keyboardType set to NumberPassword. If you've wondered why we use NumberPassword and not just Number, it is because the keyboard that is opened for the Number keyboard type contains dot, comma and dash characters, and we don't need anything other than digits inside our OTP input field. Next step we need to do is to implement more restrictions inside our input field. In case we know that our OTP must be a 6 digit code, our input field should be able to receive max 6 digits, and not allow user to input more than that. To accomplish max characters restriction, w

## The Best of Material in 2022

DevFeed: [The Best of Material in 2022](<https://devfeed.tech/articles/the-best-of-material-in-2022-29285.md>)

Original publisher: [Read original article](<https://material.io/blog/material-design-2022-roundup>)

Published: 2022-12-15T13:00:00Z

Content type: article

Language: en

Sources: [Material.io - Material Design](<https://devfeed.tech/sources/material-io-material-design.md>)

Topics: [Material Design](<https://devfeed.tech/topics/material-design.md>)

Tags: [material-design](<https://devfeed.tech/tags/material-design.md>)

### AI overview

A roundup of some of Material Design's top moments from 2022.

### Source excerpt

Some of Material Design's top moments from the past year

## Material Design at Android Developer Summit 2022

DevFeed: [Material Design at Android Developer Summit 2022](<https://devfeed.tech/articles/material-design-at-android-developer-summit-2022-29283.md>)

Original publisher: [Read original article](<https://material.io/blog/material-ads-2022>)

Published: 2022-10-24T10:00:00Z

Content type: news

Language: en

Sources: [Material.io - Material Design](<https://devfeed.tech/sources/material-io-material-design.md>)

Topics: [Material Design](<https://devfeed.tech/topics/material-design.md>), [Android](<https://devfeed.tech/topics/android.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [code](<https://devfeed.tech/tags/code.md>), [design](<https://devfeed.tech/tags/design.md>), [developer](<https://devfeed.tech/tags/developer.md>), [material-design](<https://devfeed.tech/tags/material-design.md>), [summit](<https://devfeed.tech/tags/summit.md>), [tools](<https://devfeed.tech/tags/tools.md>)

### AI overview

An overview of new Material Design developments presented at Android Developer Summit 2022, covering design, code, and tools.

### Source excerpt

Design, code, and tools: everything new in Material at this year's ADS

## Material Design 3 for Compose is now stable

DevFeed: [Material Design 3 for Compose is now stable](<https://devfeed.tech/articles/material-design-3-for-compose-is-now-stable-29280.md>)

Original publisher: [Read original article](<https://material.io/blog/material-3-compose-stable>)

Published: 2022-10-24T08:00:00Z

Content type: release

Language: en

Sources: [Material.io - Material Design](<https://devfeed.tech/sources/material-io-material-design.md>)

Topics: [Compose](<https://devfeed.tech/topics/compose.md>), [Material Design](<https://devfeed.tech/topics/material-design.md>)

Tags: [compose](<https://devfeed.tech/tags/compose.md>), [material-design](<https://devfeed.tech/tags/material-design.md>), [material-design-3](<https://devfeed.tech/tags/material-design-3.md>), [release](<https://devfeed.tech/tags/release.md>), [stable](<https://devfeed.tech/tags/stable.md>)

### AI overview

The article announces the first stable release of Material Design 3 for Compose.

### Source excerpt

Exploring the first stable release of Material Design 3 for Compose

## MDC-Android Stable release 1.7.0

DevFeed: [MDC-Android Stable release 1.7.0](<https://devfeed.tech/articles/mdc-android-stable-release-1-7-0-29231.md>)

Original publisher: [Read original article](<https://material.io/blog/android-stable-release-1-7-0>)

Published: 2022-10-20T10:00:00Z

Content type: release

Language: en

Sources: [Material.io - Material Design](<https://devfeed.tech/sources/material-io-material-design.md>)

Topics: [Material Design](<https://devfeed.tech/topics/material-design.md>), [Android](<https://devfeed.tech/topics/android.md>)

Tags: [a11y](<https://devfeed.tech/tags/a11y.md>), [android](<https://devfeed.tech/tags/android.md>), [design](<https://devfeed.tech/tags/design.md>), [material-design](<https://devfeed.tech/tags/material-design.md>), [material-design-3](<https://devfeed.tech/tags/material-design-3.md>), [release](<https://devfeed.tech/tags/release.md>), [stable](<https://devfeed.tech/tags/stable.md>)

### AI overview

MDC-Android Stable release 1.7.0 includes Material Design 3 shape guidance and improved accessibility.

### Source excerpt

with Material Design 3 shape guidance and improved a11y

[Next page](<https://devfeed.tech/tags/material-design.md?cursor=WyIyMDIyLTEwLTIwVDEwOjAwOjAwKzAwOjAwIiwgIjM3MDBmOTA3LWViZjgtNGY5Yy1hY2IyLTNiMWJkNDAzM2JmYiJd>)