# dialog

Published articles for dialog.

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

## A Dialog Can Now Be a Native Desktop Window

DevFeed: [A Dialog Can Now Be a Native Desktop Window](<https://devfeed.tech/articles/a-dialog-can-now-be-a-native-desktop-window-19288.md>)

Original publisher: [Read original article](<https://www.codenameone.com/blog/dialogs-in-native-windows/>)

Author: Shai Almog

Published: 2026-09-05T00:00:00Z

Content type: release

Language: en

Sources: [CodeName One](<https://devfeed.tech/sources/codename-one.md>)

Topics: [dialog](<https://devfeed.tech/topics/dialog.md>), [Accessibility](<https://devfeed.tech/topics/accessibility.md>), [Operating system](<https://devfeed.tech/topics/operating-system.md>), [macOS](<https://devfeed.tech/topics/macos.md>)

Tags: [accessibility](<https://devfeed.tech/tags/accessibility.md>), [bug](<https://devfeed.tech/tags/bug.md>), [can](<https://devfeed.tech/tags/can.md>), [code](<https://devfeed.tech/tags/code.md>), [component](<https://devfeed.tech/tags/component.md>), [desktop](<https://devfeed.tech/tags/desktop.md>), [dialog](<https://devfeed.tech/tags/dialog.md>), [keyboard](<https://devfeed.tech/tags/keyboard.md>), [macos](<https://devfeed.tech/tags/macos.md>), [native](<https://devfeed.tech/tags/native.md>), [release](<https://devfeed.tech/tags/release.md>)

### AI overview

Codename One adds an option for dialogs to open as native modal desktop windows while retaining lightweight in-window dialogs. The release also fixes top-level window ownership and updates focus, input routing, repainting, popup behavior, and accessibility handling across separate windows.

### Source excerpt

Codename One dialogs can stay inside a secondary window or become native modal windows, while sheets, popups, overlays, tooltips, HTML, and accessibility now resolve the correct top level.

## Blocked aria-hidden: The Warning is Right, and Every Fix You've Found is Wrong

DevFeed: [Blocked aria-hidden: The Warning is Right, and Every Fix You've Found is Wrong](<https://devfeed.tech/articles/blocked-aria-hidden-the-warning-is-right-and-every-fix-you-ve-found-is-wrong-4257.md>)

Original publisher: [Read original article](<https://css-tricks.com/blocked-aria-hidden-fix/>)

Author: Durgesh Rajubhai Pawar

Published: 2026-08-12T13:43:56Z

Content type: tutorial

Language: en

Sources: [CSS-Tricks](<https://devfeed.tech/sources/css-tricks.md>)

Topics: [Web Development](<https://devfeed.tech/topics/web-development.md>)

Tags: [accessibility](<https://devfeed.tech/tags/accessibility.md>), [aria](<https://devfeed.tech/tags/aria.md>), [articles](<https://devfeed.tech/tags/articles.md>), [browser](<https://devfeed.tech/tags/browser.md>), [bug](<https://devfeed.tech/tags/bug.md>), [dialog](<https://devfeed.tech/tags/dialog.md>)

### AI overview

A tutorial on correctly resolving blocked `aria-hidden` warnings when closing dialogs: move focus out of the region before making it hidden or inert.

### Source excerpt

The warning is correct. And the recommended fixes you've probably seen are wrong. Here's what you can do instead to properly fix the issue. Blocked aria-hidden: The Warning is Right, and Every Fix You've Found is Wrong originally handwritten and published with love on CSS-Tricks. You should really get the newsletter as well.

## Using and Styling the Dialog Element

DevFeed: [Using and Styling the Dialog Element](<https://devfeed.tech/articles/using-and-styling-the-dialog-element-4265.md>)

Original publisher: [Read original article](<https://css-tricks.com/using-and-styling-the-dialog-element/>)

Author: Geoff Graham

Published: 2026-08-07T14:06:43Z

Content type: tutorial

Language: en

Sources: [CSS-Tricks](<https://devfeed.tech/sources/css-tricks.md>)

Topics: [dialog](<https://devfeed.tech/topics/dialog.md>), [HTML](<https://devfeed.tech/topics/html.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [Web Development](<https://devfeed.tech/topics/web-development.md>)

Tags: [architecture](<https://devfeed.tech/tags/architecture.md>), [articles](<https://devfeed.tech/tags/articles.md>), [articles-guides](<https://devfeed.tech/tags/articles-guides.md>), [dialog](<https://devfeed.tech/tags/dialog.md>), [guides](<https://devfeed.tech/tags/guides.md>), [html](<https://devfeed.tech/tags/html.md>), [html-elements](<https://devfeed.tech/tags/html-elements.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [web](<https://devfeed.tech/tags/web.md>)

### AI overview

A practical guide to using the native HTML <dialog> element, covering basic markup, opening dialogs with JavaScript, modal behavior, backdrops, focus, closing methods, declarative HTML approaches, and experimental invoker commands.

### Source excerpt

There's a lot of nuance to the <dialog> element, a seemingly little piece of web architecture. I've got some notes from digging into it. Using and Styling the Dialog Element originally handwritten and published with love on CSS-Tricks. You should really get the newsletter as well.

## Give your site the Cmd+K menu users expect

DevFeed: [Give your site the Cmd+K menu users expect](<https://devfeed.tech/articles/give-your-site-the-cmd-k-menu-users-expect-9025.md>)

Original publisher: [Read original article](<https://markodenic.tech/give-your-site-the-cmdk-menu-users-expect/>)

Author: Marko

Published: 2026-08-01T10:15:27Z

Content type: tutorial

Language: en

Sources: [Marko Denic Tech](<https://devfeed.tech/sources/marko-denic-tech.md>)

Topics: [dialog](<https://devfeed.tech/topics/dialog.md>), [Code](<https://devfeed.tech/topics/code.md>), [coding](<https://devfeed.tech/topics/coding.md>), [browser](<https://devfeed.tech/topics/browser.md>), [Chrome](<https://devfeed.tech/topics/chrome.md>), [Firefox](<https://devfeed.tech/topics/firefox.md>)

Tags: [blog-for-developers](<https://devfeed.tech/tags/blog-for-developers.md>), [browser](<https://devfeed.tech/tags/browser.md>), [build-faster](<https://devfeed.tech/tags/build-faster.md>), [chrome](<https://devfeed.tech/tags/chrome.md>), [code](<https://devfeed.tech/tags/code.md>), [code-productivity](<https://devfeed.tech/tags/code-productivity.md>), [code-smarter](<https://devfeed.tech/tags/code-smarter.md>), [coding](<https://devfeed.tech/tags/coding.md>), [content-monetization](<https://devfeed.tech/tags/content-monetization.md>), [css](<https://devfeed.tech/tags/css.md>), [css-animation](<https://devfeed.tech/tags/css-animation.md>), [css-performance](<https://devfeed.tech/tags/css-performance.md>), [developer-growth](<https://devfeed.tech/tags/developer-growth.md>), [developer-resources](<https://devfeed.tech/tags/developer-resources.md>), [dialog](<https://devfeed.tech/tags/dialog.md>), [email-newsletter-for-coders](<https://devfeed.tech/tags/email-newsletter-for-coders.md>), [firefox](<https://devfeed.tech/tags/firefox.md>), [front-end-development](<https://devfeed.tech/tags/front-end-development.md>), [github](<https://devfeed.tech/tags/github.md>), [github-profile-automation](<https://devfeed.tech/tags/github-profile-automation.md>), [html](<https://devfeed.tech/tags/html.md>), [html-tips](<https://devfeed.tech/tags/html-tips.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [javascript-tricks](<https://devfeed.tech/tags/javascript-tricks.md>), [learn-to-code](<https://devfeed.tech/tags/learn-to-code.md>), [responsive-design-tips](<https://devfeed.tech/tags/responsive-design-tips.md>), [ui](<https://devfeed.tech/tags/ui.md>), [web-dev-newsletter](<https://devfeed.tech/tags/web-dev-newsletter.md>), [web-development](<https://devfeed.tech/tags/web-development.md>), [web-development-tips](<https://devfeed.tech/tags/web-development-tips.md>), [weekly-dev-tips](<https://devfeed.tech/tags/weekly-dev-tips.md>), [workflow-optimization](<https://devfeed.tech/tags/workflow-optimization.md>)

### AI overview

This tutorial explains how to build a dependency-free Cmd+K command palette for a multi-page website using the dialog element, a keydown listener, and a text filter. It covers keyboard handling across Mac and Windows, browser-specific behavior, modal focus and scrolling, and use cases such as admin panels and documentation sites.

### Source excerpt

Linear and GitHub both have it. Build the same command palette with the dialog element, one keydown listener, and a filter. No libraries.

## Seamless PWA origin migration: Change domains without losing users

DevFeed: [Seamless PWA origin migration: Change domains without losing users](<https://devfeed.tech/articles/seamless-pwa-origin-migration-change-domains-without-losing-users-4143.md>)

Original publisher: [Read original article](<https://developer.chrome.com/blog/seamless-pwa-origin-migration?hl=en>)

Author: Dibyajyoti Pal LinkedIn Dan Murphy X LinkedIn Marijn Kruisselbrink LinkedIn

Published: 2026-06-03T07:00:00Z

Content type: article

Language: en

Sources: [developer.chrome.com: Blog](<https://devfeed.tech/sources/developer-chrome-com-blog.md>)

Topics: [PWA](<https://devfeed.tech/topics/pwa.md>), [migration](<https://devfeed.tech/topics/migration.md>), [Chrome](<https://devfeed.tech/topics/chrome.md>), [Security](<https://devfeed.tech/topics/security.md>), [User Experience](<https://devfeed.tech/topics/user-experience.md>), [Web](<https://devfeed.tech/topics/web.md>), [Web app](<https://devfeed.tech/topics/webapp.md>)

Tags: [chrome](<https://devfeed.tech/tags/chrome.md>), [dialog](<https://devfeed.tech/tags/dialog.md>), [feature](<https://devfeed.tech/tags/feature.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [manifest](<https://devfeed.tech/tags/manifest.md>), [migration](<https://devfeed.tech/tags/migration.md>), [security](<https://devfeed.tech/tags/security.md>), [update](<https://devfeed.tech/tags/update.md>), [user-experience](<https://devfeed.tech/tags/user-experience.md>), [web](<https://devfeed.tech/tags/web.md>), [web-apps](<https://devfeed.tech/tags/web-apps.md>)

### AI overview

Chrome 150 introduces PWA Origin Migration, allowing installed Progressive Web Apps to transition to a new same-site origin while keeping users informed through an update dialog. The article explains the old and destination manifest requirements, the migration handshake, rollout behavior, and update considerations.

### Source excerpt

From Chrome 150 you can seamlessly transition a PWA to a new same-site origin.

## 2026.6: Pick a card, any card

DevFeed: [2026.6: Pick a card, any card](<https://devfeed.tech/articles/2026-6-pick-a-card-any-card-16684.md>)

Original publisher: [Read original article](<https://www.home-assistant.io/blog/2026/06/03/release-20266/>)

Author: Franck Nijhof

Published: 2026-06-03T00:00:00Z

Content type: release

Language: en

Sources: [Home Assistant](<https://devfeed.tech/sources/home-assistant.md>)

Topics: [Home Assistant](<https://devfeed.tech/topics/home-assistant.md>), [dashboards](<https://devfeed.tech/topics/dashboards.md>), [Automation](<https://devfeed.tech/topics/automation.md>), [dialog](<https://devfeed.tech/topics/dialog.md>), [Matter](<https://devfeed.tech/topics/matter.md>)

Tags: [2026](<https://devfeed.tech/tags/2026.md>), [apps](<https://devfeed.tech/tags/apps.md>), [automation](<https://devfeed.tech/tags/automation.md>), [core](<https://devfeed.tech/tags/core.md>), [custom-dashboard](<https://devfeed.tech/tags/custom-dashboard.md>), [dialog](<https://devfeed.tech/tags/dialog.md>), [features](<https://devfeed.tech/tags/features.md>), [integrations](<https://devfeed.tech/tags/integrations.md>), [matter](<https://devfeed.tech/tags/matter.md>), [release](<https://devfeed.tech/tags/release.md>), [release-notes](<https://devfeed.tech/tags/release-notes.md>)

### AI overview

Home Assistant 2026.6 introduces a new card picker that recommends dashboard cards based on the device or entity users want to display, with live previews using their data. The release also adds zone triggers and conditions, live condition-test indicators, target counts, step notes, new tile card features, improved smart-lock support, a friendlier Apps page, and additional community integrations.

### Source excerpt

Home Assistant 2026.6! 🎉 I'm going to put my hand up right away: ✋ I am not a dashboard person. Not because I don't like them; I love seeing what you all build. But designing a beautiful one is a kind of visual creativity I just don't have. That's a big part of why I love the built-in Home dashboard so much, it does the designing for me. But when I do build a custom dashboard, I usually stare at that "add a card" dialog for way too long, picking cards almost at random just to see if they look good with the data I have. So you can imagine my excitement for my personal favorite of this release: the new card picker. Instead of asking "which card type do I want?", it now asks "which thing in your home do you want to show?", and then suggests cards that actually make sense for it, with live previews using your own data. For someone like me, that's not just easier; it's genuinely inspiring. It nudges me towards combinations I would not have thought of on my own. 💡 This fits into a bigger direction I keep getting more excited about: Home Assistant getting better at starting from the thing you want to do, instead of asking you to first learn the building blocks. The same idea is what makes purpose-specific triggers and conditions in Home Assistant Labs feel so right, and this release brings them a big step closer to graduating out of Labs with brand new zone triggers and conditions. 📍 A close second favorite for me this release is everything happening around that in the automation editor: live test indicators on your conditions, target counts on every device, area, floor, and label, and proper notes you can attach to any step. Individually they are small quality-of-life touches; together, they make building automations feel a whole lot more transparent. ✨ And there is plenty more to love in this release: new tile card features, Z-Wave smart locks catching up with their Matter siblings, a friendlier Apps page, and another big batch of new integrations from our community. 🚀 E

## QuickQWERTY 1.2.3

DevFeed: [QuickQWERTY 1.2.3](<https://devfeed.tech/articles/quickqwerty-1-2-3-37663.md>)

Original publisher: [Read original article](<https://susam.net/code/news/quickqwerty/1.2.3.html>)

Published: 2026-05-03T00:00:00Z

Content type: release

Language: en

Sources: [Susam Pal](<https://devfeed.tech/sources/susam-pal.md>)

Topics: [browser](<https://devfeed.tech/topics/browser.md>), [bug](<https://devfeed.tech/topics/bug.md>), [dialog](<https://devfeed.tech/topics/dialog.md>), [Code](<https://devfeed.tech/topics/code.md>), [GitHub](<https://devfeed.tech/topics/github.md>)

Tags: [browser](<https://devfeed.tech/tags/browser.md>), [bug](<https://devfeed.tech/tags/bug.md>), [bug-fixes](<https://devfeed.tech/tags/bug-fixes.md>), [code](<https://devfeed.tech/tags/code.md>), [dialog](<https://devfeed.tech/tags/dialog.md>), [github](<https://devfeed.tech/tags/github.md>), [release](<https://devfeed.tech/tags/release.md>), [update](<https://devfeed.tech/tags/update.md>), [web](<https://devfeed.tech/tags/web.md>), [website](<https://devfeed.tech/tags/website.md>)

### AI overview

QuickQWERTY 1.2.3 is a release of the browser-based touch typing tutor. It fixes an incorrectly updated licence link and removes an unnecessary dialog that appeared when selecting the already active number-key split.

### Source excerpt

QuickQWERTY 1.2.3 is now available. QuickQWERTY is a web-based touch typing tutor for QWERTY keyboards that runs directly in the browser. This release includes two small bug fixes. In the previous release, QuickQWERTY source code management moved from GitHub to Codeberg. During that update, the licence link in the footer was updated incorrectly. The broken licence link has now been fixed. Further, there was a minor bug that caused a redundant dialog box to appear while switching between 6-7 split and 5-6 split. Units 16 to 20 contain two links labeled '6-7 split' and '5-6 split' which allow you to select how you want to split the number keys between left and right hands. Clicking either of those links brings up a dialog that explains what the two splits mean and prompts you to confirm in order to make the switch. Say, the '6-7 split' was already the chosen split. Clicking the '6-7 split' label triggered the dialog box unnecessarily. A dialog was unnecessary in that case since if you were already on the '6-7 split', clicking the '6-7 split' label resulted in no switch. This unnecessary dialog has now been eliminated. To try out QuickQWERTY, please visit quickqwerty.html. The source code of QuickQWERTY is available under the terms of the MIT licence at codeberg.org/susam/quickqwerty. Read on website | #web | #programming

## Building a Google Maps Style Bottom Sheet with Jetpack Compose

DevFeed: [Building a Google Maps Style Bottom Sheet with Jetpack Compose](<https://devfeed.tech/articles/building-a-google-maps-style-bottom-sheet-with-jetpack-compose-25920.md>)

Original publisher: [Read original article](<https://proandroiddev.com/building-a-google-maps-style-bottom-sheet-with-jetpack-compose-eccc1f3cf578?source=rss-9bb203a4ab2e------2>)

Author: Jaewoong Eum

Published: 2026-02-15T07:34:23Z

Content type: tutorial

Language: en

Sources: [Stories by Jaewoong Eum on Medium](<https://devfeed.tech/sources/stories-by-jaewoong-eum-on-medium.md>)

Topics: [Jetpack Compose](<https://devfeed.tech/topics/jetpack-compose.md>), [Android](<https://devfeed.tech/topics/android.md>), [ui](<https://devfeed.tech/topics/ui.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [bottomsheet](<https://devfeed.tech/tags/bottomsheet.md>), [compose-multiplatform](<https://devfeed.tech/tags/compose-multiplatform.md>), [dialog](<https://devfeed.tech/tags/dialog.md>), [draggable](<https://devfeed.tech/tags/draggable.md>), [jetpack-compose](<https://devfeed.tech/tags/jetpack-compose.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>), [state](<https://devfeed.tech/tags/state.md>), [ui](<https://devfeed.tech/tags/ui.md>)

### AI overview

This tutorial explains how to build a Google Maps-style bottom sheet with Jetpack Compose using FlexibleBottomSheet. It covers three expansion states, non-modal interaction, state-dependent content, programmatic transitions, nested scrolling, and dynamic content sizing.

### Source excerpt

Google Maps popularized a bottom sheet pattern that most Android developers recognize immediately: a small panel peeking from the bottom of the screen, expandable to a mid height for quick details, and draggable to full screen for comprehensive information. The user interacts with the map behind the sheet at all times. This pattern looks simple on the surface, but implementing it correctly requires solving several problems: multi state anchoring, non modal interaction, dynamic content adaptation, and nested scroll coordination. Jetpack Compose's standard ModalBottomSheet only supports two states (expanded and hidden) and blocks background interaction with a scrim, making it unsuitable for this use case. In this article, you'll explore how to build a Google Maps style bottom sheet using FlexibleBottomSheet, covering how to configure three expansion states with custom height ratios, how to enable non modal mode so users can interact with the content behind the sheet, how to adapt your UI dynamically based on the sheet's current state, how to control state transitions programmatically, how to handle nested scrolling inside the sheet, and how to wrap content dynamically for variable height sheets. Why ModalBottomSheet falls short Consider the standard Material 3 bottom sheet: https://medium.com/media/8a38f40dd78c91260a666308710000ce/href This gives you two states: expanded and hidden. The sheet covers the background with a scrim, blocking all interaction behind it. For a confirmation dialog or action menu, this is fine. But for a Google Maps style experience, you need: Three visible states: A peek height showing a summary, a mid height for details, and a full height for comprehensive content. No scrim: The map behind the sheet must remain fully interactive. Dynamic content: The content should adapt based on the current expansion state. Nested scrolling: Scrollable content inside the fully expanded sheet should scroll naturally, and dragging down from the top of the scro

## Interop 2026: Continuing to improve the web for developers

DevFeed: [Interop 2026: Continuing to improve the web for developers](<https://devfeed.tech/articles/interop-2026-continuing-to-improve-the-web-for-developers-4170.md>)

Original publisher: [Read original article](<https://web.dev/blog/interop-2026?hl=en>)

Author: Rachel Andrew GitHub LinkedIn Mastodon Bluesky Homepage

Published: 2026-02-12T08:00:00Z

Content type: article

Language: en

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

Topics: [Web platform](<https://devfeed.tech/topics/web-platform.md>), [interoperability](<https://devfeed.tech/topics/interoperability.md>), [web-standards](<https://devfeed.tech/topics/web-standards.md>), [CSS](<https://devfeed.tech/topics/css.md>), [dialog](<https://devfeed.tech/topics/dialog.md>), [view transitions](<https://devfeed.tech/topics/view-transitions.md>), [browsers](<https://devfeed.tech/topics/browsers.md>), [dashboards](<https://devfeed.tech/topics/dashboards.md>)

Tags: [browsers](<https://devfeed.tech/tags/browsers.md>), [css](<https://devfeed.tech/tags/css.md>), [developers](<https://devfeed.tech/tags/developers.md>), [dialog](<https://devfeed.tech/tags/dialog.md>), [interop](<https://devfeed.tech/tags/interop.md>), [interoperability](<https://devfeed.tech/tags/interoperability.md>), [view-transitions](<https://devfeed.tech/tags/view-transitions.md>), [web](<https://devfeed.tech/tags/web.md>), [web-platform](<https://devfeed.tech/tags/web-platform.md>)

### AI overview

Interop 2026 is an effort by browser-engine contributors to improve web-platform interoperability. It focuses on high-priority issues for web developers and users, including anchor positioning, container style queries, dialogs and popovers, scroll-driven animations, and view transitions.

### Source excerpt

Learn about the features included in Interop 2026.

## and popover: Baseline layered UI patterns

DevFeed: [and popover: Baseline layered UI patterns](<https://devfeed.tech/articles/and-popover-baseline-layered-ui-patterns-4156.md>)

Original publisher: [Read original article](<https://web.dev/articles/baseline-in-action-dialog-popover?hl=en>)

Author: David A Herron Homepage

Published: 2025-11-25T08:00:00Z

Content type: article

Language: en

Sources: [web.dev: Articles](<https://devfeed.tech/sources/web-dev-articles.md>)

Topics: [dialog](<https://devfeed.tech/topics/dialog.md>), [aria](<https://devfeed.tech/topics/aria.md>), [browsers](<https://devfeed.tech/topics/browsers.md>), [Web](<https://devfeed.tech/topics/web.md>), [web applications](<https://devfeed.tech/topics/web-applications.md>), [modern web development](<https://devfeed.tech/topics/modern-web-development.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>)

Tags: [aria](<https://devfeed.tech/tags/aria.md>), [article](<https://devfeed.tech/tags/article.md>), [browsers](<https://devfeed.tech/tags/browsers.md>), [dialog](<https://devfeed.tech/tags/dialog.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [modal](<https://devfeed.tech/tags/modal.md>), [ui](<https://devfeed.tech/tags/ui.md>), [user-experience](<https://devfeed.tech/tags/user-experience.md>), [user-interface](<https://devfeed.tech/tags/user-interface.md>), [web-applications](<https://devfeed.tech/tags/web-applications.md>)

### AI overview

This article explains how to build modal and popover UI patterns with features built into modern web browsers. It demonstrates a sign-up modal that appears when a user tries to save an image to a favorites list without being logged in, and discusses the accessibility behavior required for modal dialogs.

### Source excerpt

Learn how to build UI patterns for modal windows and prompts using the and popover web features.

## Appending Text to Obsidian via Shortcuts

DevFeed: [Appending Text to Obsidian via Shortcuts](<https://devfeed.tech/articles/appending-text-to-obsidan-via-shortcuts-39464.md>)

Original publisher: [Read original article](<https://akrabat.com/appending-text-to-obsidan-via-shortcuts/>)

Author: Rob

Published: 2025-10-14T10:00:00Z

Content type: tutorial

Language: en

Sources: [Rob Allen](<https://devfeed.tech/sources/rob-allen.md>)

Topics: [Obsidian](<https://devfeed.tech/topics/obsidian-md.md>), [context](<https://devfeed.tech/topics/context.md>)

Tags: [apple](<https://devfeed.tech/tags/apple.md>), [automate](<https://devfeed.tech/tags/automate.md>), [dialog](<https://devfeed.tech/tags/dialog.md>), [keyboard](<https://devfeed.tech/tags/keyboard.md>), [mac](<https://devfeed.tech/tags/mac.md>), [obsidian](<https://devfeed.tech/tags/obsidian.md>), [schema](<https://devfeed.tech/tags/schema.md>), [shortcuts](<https://devfeed.tech/tags/shortcuts.md>)

### AI overview

This tutorial explains how to use Apple Shortcuts and Obsidian's obsidian:// URI schema to append text to the current Obsidian daily note. The shortcut prompts for text, adds the current time as a heading, URL-encodes the content, and opens the URI with the append parameter.

### Source excerpt

Sometimes it's helpful to add some text to my current Obsidian daily note without having to switch to Obsidian, find the daily note and then type my text. To do this, we can use the magic of Obsidian's obsidian:// URI schema and automate the text capture in Apple Shortcuts, with an assigned keyboard shortcut to activate it. This is the Shortcut: There's a number of steps in the Shortcut. Firstly we Ask For some text... continue reading.

## Vanilla JavaScript support for Tailwind Plus

DevFeed: [Vanilla JavaScript support for Tailwind Plus](<https://devfeed.tech/articles/vanilla-javascript-support-for-tailwind-plus-3505.md>)

Original publisher: [Read original article](<https://tailwindcss.com/blog/vanilla-js-support-for-tailwind-plus>)

Published: 2025-07-25T14:30:00Z

Content type: release

Language: en

Sources: [Tailwind CSS Blog](<https://devfeed.tech/sources/tailwind-css-blog.md>)

Topics: [Tailwind CSS](<https://devfeed.tech/topics/tailwind.md>), [Vanilla JavaScript](<https://devfeed.tech/topics/vanilla-js.md>), [ui](<https://devfeed.tech/topics/ui.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [HTML](<https://devfeed.tech/topics/html.md>), [aria](<https://devfeed.tech/topics/aria.md>), [dialog](<https://devfeed.tech/topics/dialog.md>), [cross-platform](<https://devfeed.tech/topics/cross-platform.md>), [Web platform](<https://devfeed.tech/topics/web-platform.md>)

Tags: [aria](<https://devfeed.tech/tags/aria.md>), [component](<https://devfeed.tech/tags/component.md>), [cross-platform](<https://devfeed.tech/tags/cross-platform.md>), [dialog](<https://devfeed.tech/tags/dialog.md>), [framework](<https://devfeed.tech/tags/framework.md>), [html](<https://devfeed.tech/tags/html.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [tailwind](<https://devfeed.tech/tags/tailwind.md>), [ui](<https://devfeed.tech/tags/ui.md>)

### AI overview

Tailwind Plus now provides fully functional, accessible, and interactive UI blocks for projects that do not use React or Vue. Its new Elements library offers headless custom elements for building interactive interfaces with HTML, utility classes, or custom CSS.

### Source excerpt

Every UI block in Tailwind Plus is now fully functional, accessible, and interactive, even if you don't use a framework like React or Vue.

## Headless UI v2.1: Simplified transition API and improved multi-dialog support

DevFeed: [Headless UI v2.1: Simplified transition API and improved multi-dialog support](<https://devfeed.tech/articles/headless-ui-v2-1-simplified-transition-api-and-improved-multi-dialog-support-3457.md>)

Original publisher: [Read original article](<https://tailwindcss.com/blog/2024-06-21-headless-ui-v2-1>)

Published: 2024-06-21T15:00:00Z

Content type: release

Language: en

Sources: [Tailwind CSS Blog](<https://devfeed.tech/sources/tailwind-css-blog.md>)

Topics: [React](<https://devfeed.tech/topics/react.md>), [dialog](<https://devfeed.tech/topics/dialog.md>), [React UI animations](<https://devfeed.tech/topics/react-ui-animations.md>)

Tags: [compatibility](<https://devfeed.tech/tags/compatibility.md>), [components](<https://devfeed.tech/tags/components.md>), [dialog](<https://devfeed.tech/tags/dialog.md>), [documentation](<https://devfeed.tech/tags/documentation.md>), [install](<https://devfeed.tech/tags/install.md>), [react](<https://devfeed.tech/tags/react.md>)

### AI overview

Headless UI v2.1 for React simplifies transition APIs with a new prop and data attributes for transition stages. It also supports rendering multiple sibling dialogs, with the most recently opened dialog closing on Escape or outside clicks.

### Source excerpt

We just released Headless UI v2.1 for React, which dramatically simplifies our transition APIs and adds support for rendering multiple dialogs as siblings. We've made transitions way easier in v2.1 by adding a new prop to all of the built-in components you might want to transition, and adding data attributes for each transition stage so you can add transition styles by just throwing some classes on the target element: There are four data attributes you can use to target the different stages of...

## Custom Dialog Animation in Jetpack Compose

DevFeed: [Custom Dialog Animation in Jetpack Compose](<https://devfeed.tech/articles/custom-dialog-animation-in-jetpack-compose-25772.md>)

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

Author: sinasamaki

Published: 2023-10-17T04:42:08Z

Content type: tutorial

Language: en

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

Topics: [Jetpack Compose](<https://devfeed.tech/topics/jetpack-compose.md>), [dialog](<https://devfeed.tech/topics/dialog.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [animation](<https://devfeed.tech/tags/animation.md>), [article](<https://devfeed.tech/tags/article.md>), [code](<https://devfeed.tech/tags/code.md>), [compose](<https://devfeed.tech/tags/compose.md>), [compose-animation](<https://devfeed.tech/tags/compose-animation.md>), [dialog](<https://devfeed.tech/tags/dialog.md>), [jetpack-compose](<https://devfeed.tech/tags/jetpack-compose.md>)

### AI overview

A tutorial on creating custom dialog animations in Jetpack Compose. It explains how to build a dialog, remove the default window animation and scrim, and use custom animation logic, including AnimatedVisibility, to control showing and dismissing the dialog.

### Source excerpt

Create custom dialog animations using Jetpack Compose animation composables such as AnimatedVisibility

## Zed Plans to Open Source Its Code Through Collaborative Coding Channels

DevFeed: [Zed Plans to Open Source Its Code Through Collaborative Coding Channels](<https://devfeed.tech/articles/building-a-platform-that-open-sources-itself-13522.md>)

Original publisher: [Read original article](<https://zed.dev/blog/open-sourcing-zed-on-zed>)

Author: Nathan Sobo

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

Content type: article

Language: en

Sources: [Zed Industries - Blog](<https://devfeed.tech/sources/zed-industries-blog.md>)

Topics: [Open Source](<https://devfeed.tech/topics/open-source.md>), [dialog](<https://devfeed.tech/topics/dialog.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [chat](<https://devfeed.tech/tags/chat.md>), [contribute](<https://devfeed.tech/tags/contribute.md>), [dialog](<https://devfeed.tech/tags/dialog.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [workflows](<https://devfeed.tech/tags/workflows.md>)

### AI overview

Zed's remote team describes a plan to open source Zed through the Zed platform. The initial phase involves public coding channels for watching, listening to, and discussing development, followed by persistent code annotations and async contributions.

### Source excerpt

Our plan for open-sourcing Zed on Zed, starting with synchronous conversations in the #zed channel.

## Dialogs in Jetpack Compose: Types and Usage

DevFeed: [Dialogs in Jetpack Compose: Types and Usage](<https://devfeed.tech/articles/every-single-type-of-dialog-in-jetpack-compose-and-how-to-use-them-28451.md>)

Original publisher: [Read original article](<https://composables.com/blog/dialogs>)

Author: Alex Styl

Published: 2023-04-27T00:00:00Z

Content type: tutorial

Language: en

Sources: [Composables - Concise, no-fluff video tutorials for Android developers](<https://devfeed.tech/sources/composables-concise-no-fluff-video-tutorials-for-android-developers.md>)

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

Tags: [dialog](<https://devfeed.tech/tags/dialog.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [jetpack-compose](<https://devfeed.tech/tags/jetpack-compose.md>), [tutorial](<https://devfeed.tech/tags/tutorial.md>), [ui](<https://devfeed.tech/tags/ui.md>)

### AI overview

A tutorial on dialogs in Jetpack Compose, covering how dialogs differ from AlertDialogs, the available dialog variants, visibility state, custom layouts, shapes, and colors.

### Source excerpt

Dialogs, AlertDialogs and DIYDialogs.

## How to Fix Keyboard Issues Introduced in the Latest Jetpack Compose (1.4.0)

DevFeed: [How to Fix Keyboard Issues Introduced in the Latest Jetpack Compose (1.4.0)](<https://devfeed.tech/articles/how-to-fix-keyboard-issues-introduced-in-the-latest-jetpack-compose-1-4-0-25521.md>)

Original publisher: [Read original article](<https://patrykkosieradzki.com/how-to-fix-keyboard-issues-introduced-in-the-latest-jetpack-compose-1-4-0>)

Published: 2023-03-31T00:00:00Z

Content type: tutorial

Language: en

Sources: [Patryk Kosieradzki](<https://devfeed.tech/sources/patryk-kosieradzki.md>)

Topics: [Jetpack Compose](<https://devfeed.tech/topics/jetpack-compose.md>), [bug](<https://devfeed.tech/topics/bug.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [bug](<https://devfeed.tech/tags/bug.md>), [code](<https://devfeed.tech/tags/code.md>), [compose](<https://devfeed.tech/tags/compose.md>), [dialog](<https://devfeed.tech/tags/dialog.md>), [jetpack-compose](<https://devfeed.tech/tags/jetpack-compose.md>), [keyboard](<https://devfeed.tech/tags/keyboard.md>), [regression](<https://devfeed.tech/tags/regression.md>)

### AI overview

A troubleshooting tutorial about a keyboard regression in Jetpack Compose 1.4.0. The article demonstrates that the keyboard does not appear for text fields in DialogFragments containing ComposeView, investigates the problem through the Google Issue Tracker, and discusses the relevant code setup and fix.

### Source excerpt

Non-working keyboard in the latest version of Jetpack Compose - another case of keyboard issues in Compose.

## Headless UI v1.6, Tailwind UI team management, Tailwind Play improvements, and more

DevFeed: [Headless UI v1.6, Tailwind UI team management, Tailwind Play improvements, and more](<https://devfeed.tech/articles/headless-ui-v1-6-tailwind-ui-team-management-tailwind-play-improvements-and-more-3447.md>)

Original publisher: [Read original article](<https://tailwindcss.com/blog/2022-05-23-headless-ui-v1-6-tailwind-ui-team-management>)

Published: 2022-05-27T15:00:00Z

Content type: release

Language: en

Sources: [Tailwind CSS Blog](<https://devfeed.tech/sources/tailwind-css-blog.md>)

Topics: [Tailwind CSS](<https://devfeed.tech/topics/tailwind.md>), [React](<https://devfeed.tech/topics/react.md>), [Vue.js](<https://devfeed.tech/topics/vue.md>), [dialog](<https://devfeed.tech/topics/dialog.md>), [Remix](<https://devfeed.tech/topics/remix.md>)

Tags: [css](<https://devfeed.tech/tags/css.md>), [dialog](<https://devfeed.tech/tags/dialog.md>), [react](<https://devfeed.tech/tags/react.md>), [release-notes](<https://devfeed.tech/tags/release-notes.md>), [remix](<https://devfeed.tech/tags/remix.md>), [tailwind](<https://devfeed.tech/tags/tailwind.md>), [ui](<https://devfeed.tech/tags/ui.md>), [update](<https://devfeed.tech/tags/update.md>), [v1](<https://devfeed.tech/tags/v1.md>), [vue](<https://devfeed.tech/tags/vue.md>)

### AI overview

The article announces Headless UI v1.6 and describes new features for React and Vue components, including multiple selection, clearing combobox values, hidden inputs for form submission, object serialization, and improvements to dialog scrolling and outside-click behavior.

### Source excerpt

It's been a while since I've written about what we've been working on so I have a lot to share! Too much honestly -- so put your swim suit on, sit back in your lounge chair, and prepare to soak up some vitamin CSS.

## Making reusable composables using Generics

DevFeed: [Making reusable composables using Generics](<https://devfeed.tech/articles/making-reusable-composables-using-generics-22651.md>)

Original publisher: [Read original article](<https://www.valueof.io/blog/compose-composable-function-generics>)

Author: James Shvarts

Published: 2022-04-29T20:02:08Z

Content type: tutorial

Language: en

Sources: [Android Blog - Mobile Dev Notes](<https://devfeed.tech/sources/android-blog-mobile-dev-notes.md>)

Topics: [generics](<https://devfeed.tech/topics/generics.md>), [Compose](<https://devfeed.tech/topics/compose.md>), [Java](<https://devfeed.tech/topics/java.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>)

Tags: [component](<https://devfeed.tech/tags/component.md>), [compose](<https://devfeed.tech/tags/compose.md>), [dialog](<https://devfeed.tech/tags/dialog.md>), [generics](<https://devfeed.tech/tags/generics.md>), [java](<https://devfeed.tech/tags/java.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [viewmodel](<https://devfeed.tech/tags/viewmodel.md>)

### AI overview

This tutorial shows how to use Java Generics with Jetpack Compose to build reusable composable components that support different model objects. It demonstrates a shared delete-confirmation dialog, call sites, optional properties, and state handling in a ViewModel.

### Source excerpt

Using Java Generics to create reusable shared components in Compose

## Getting started with Orca screen reader on Gnome desktop environment on Ubuntu 20.04 LTS

DevFeed: [Getting started with Orca screen reader on Gnome desktop environment on Ubuntu 20.04 LTS](<https://devfeed.tech/articles/getting-started-with-orca-screen-reader-on-gnome-desktop-environment-on-ubuntu-20-04-lts-9388.md>)

Original publisher: [Read original article](<https://a11yproject.com/posts/getting-started-with-orca/>)

Author: Joseph Mawa

Published: 2021-09-03T00:00:00Z

Content type: tutorial

Language: en

Sources: [The A11Y Project](<https://devfeed.tech/sources/the-a11y-project.md>)

Topics: [Ubuntu](<https://devfeed.tech/topics/ubuntu.md>), [Linux](<https://devfeed.tech/topics/linux.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>), [Terminal](<https://devfeed.tech/topics/terminal.md>), [GUI](<https://devfeed.tech/topics/gui.md>), [dialog](<https://devfeed.tech/topics/dialog.md>)

Tags: [article](<https://devfeed.tech/tags/article.md>), [desktop](<https://devfeed.tech/tags/desktop.md>), [dialog](<https://devfeed.tech/tags/dialog.md>), [distribution](<https://devfeed.tech/tags/distribution.md>), [documentation](<https://devfeed.tech/tags/documentation.md>), [feature](<https://devfeed.tech/tags/feature.md>), [free](<https://devfeed.tech/tags/free.md>), [getting-started](<https://devfeed.tech/tags/getting-started.md>), [laptop](<https://devfeed.tech/tags/laptop.md>), [launch](<https://devfeed.tech/tags/launch.md>), [learn](<https://devfeed.tech/tags/learn.md>), [learning](<https://devfeed.tech/tags/learning.md>), [linux](<https://devfeed.tech/tags/linux.md>), [lts](<https://devfeed.tech/tags/lts.md>), [open](<https://devfeed.tech/tags/open.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [terminal](<https://devfeed.tech/tags/terminal.md>), [third-party](<https://devfeed.tech/tags/third-party.md>), [ubuntu](<https://devfeed.tech/tags/ubuntu.md>)

### AI overview

This tutorial introduces the Orca screen reader on the GNOME desktop environment in Ubuntu 20.04 LTS. It explains several ways to launch Orca, discusses accessibility of applications, describes its desktop and laptop keyboard layouts and modifier keys, and introduces Learn Mode for discovering commands and documentation.

### Source excerpt

Introduction to Orca Orca is a free, open-source screen reader developed under the GNOME project. Several Linux distributions have it installed by default. This article will introduce you to the basics of Orca on Gnome desktop environment on Ubuntu version 20.04 LTS. There might be some slight variations if you are using a different desktop environment or using GNOME on a different Linux distribution. You need to consult the manual for your Linux distribution or desktop environment. Launching Orca There are three ways you can launch Orca on Ubuntu 20.04 LTS. Below are the descriptions of these three methods. Use the keyboard shortcut Super + Alt + S. Type orca on a terminal window and then press the Return key. Alternatively, you can type orca in the Run dialog and press the Return key. You can use the key combination Alt + F2 to open the Run dialog and the ESC key to close it. If you launch Orca using the Run dialog, you can close it by typing the command pkill orca or killall orca on the terminal or in the the Run dialog and then pressing the Return key. Open the Settings dialog and then select Universal access. You can then toggle the screen reader on or off. After launching Orca, it will immediately announce the title of the topmost open application window if it is accessible to Orca. Though most applications that come pre-installed with the Gnome desktop environment are accessible, some third-party applications installed by you may not be accessible to Orca. The Orca Modifier keys The modifier key used by Orca depends on the keyboard layout. Orca has two keyboard layouts, namely: Desktop keyboard layout Laptop keyboard layout The Desktop keyboard layout is the default keyboard layout. Its Modifier key is the key combination Insert + KP_Insert. KP_Insert is the same as KP_0. If it is your first time using Orca, most likely you are in the Desktop keyboard layout. The modifier key for the Laptop layout is CapsLock . You can change the keyboard layout from the pref

## 30 updates: recent features and fixes in Figma

DevFeed: [30 updates: recent features and fixes in Figma](<https://devfeed.tech/articles/30-updates-recent-features-and-fixes-in-figma-9463.md>)

Original publisher: [Read original article](<https://www.figma.com/blog/30-updates-recent-features-and-fixes-in-figma/>)

Author: Emily Brody

Published: 2021-07-28T00:00:00Z

Content type: article

Language: en

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

Topics: [Figma](<https://devfeed.tech/topics/figma.md>), [User experience (UX)](<https://devfeed.tech/topics/ux.md>), [API](<https://devfeed.tech/topics/api.md>), [browser](<https://devfeed.tech/topics/browser.md>), [math](<https://devfeed.tech/topics/math.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [browser](<https://devfeed.tech/tags/browser.md>), [can](<https://devfeed.tech/tags/can.md>), [connectors](<https://devfeed.tech/tags/connectors.md>), [customization](<https://devfeed.tech/tags/customization.md>), [design](<https://devfeed.tech/tags/design.md>), [desktop](<https://devfeed.tech/tags/desktop.md>), [dialog](<https://devfeed.tech/tags/dialog.md>), [features](<https://devfeed.tech/tags/features.md>), [figma](<https://devfeed.tech/tags/figma.md>), [fonts](<https://devfeed.tech/tags/fonts.md>), [global](<https://devfeed.tech/tags/global.md>), [math](<https://devfeed.tech/tags/math.md>), [plugin](<https://devfeed.tech/tags/plugin.md>), [tool](<https://devfeed.tech/tags/tool.md>), [typography](<https://devfeed.tech/tags/typography.md>), [updates](<https://devfeed.tech/tags/updates.md>), [ux](<https://devfeed.tech/tags/ux.md>), [ux-improvements](<https://devfeed.tech/tags/ux-improvements.md>), [workflow](<https://devfeed.tech/tags/workflow.md>)

### AI overview

Figma's roundup describes 30 recent updates and fixes intended to improve design workflows. The supplied text covers a redesigned stroke panel, mixed-value math operations, browser-based PNG copying, faster image cropping and adjustments, export and Plugin API changes, remembered pen and pencil settings, synced preferences, fill behavior, dialog controls, missing-font handling, and improved FigJam sticky-note text copying.

### Source excerpt

Last month, we launched 30 updates on everything from typography fixes to UX improvements, all to enhance your workflow in Figma.

## Zen and the art of not quantifying risk

DevFeed: [Zen and the art of not quantifying risk](<https://devfeed.tech/articles/zen-and-the-art-of-not-quantifying-risk-37136.md>)

Original publisher: [Read original article](<https://shostack.org/blog/zen-and-the-art-of-not-quantifying-risk/>)

Author: Adam

Published: 2021-07-27T00:00:00Z

Content type: opinion

Language: en

Sources: [Shostack & Friends Blog](<https://devfeed.tech/sources/shostack-friends-blog.md>)

Topics: [risk-management](<https://devfeed.tech/topics/risk-management.md>), [Security](<https://devfeed.tech/topics/security.md>), [Architecture & Design](<https://devfeed.tech/topics/architecture-design.md>), [Development](<https://devfeed.tech/topics/development.md>), [API](<https://devfeed.tech/topics/api.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [development](<https://devfeed.tech/tags/development.md>), [dialog](<https://devfeed.tech/tags/dialog.md>), [meetings](<https://devfeed.tech/tags/meetings.md>), [risk](<https://devfeed.tech/tags/risk.md>), [risk-management](<https://devfeed.tech/tags/risk-management.md>), [security](<https://devfeed.tech/tags/security.md>)

### AI overview

The article argues that threat modeling should not focus on producing precise risk numbers. Instead, security teams should work with development and operations on prioritization, using simpler relative sizing when appropriate. This approach can reduce conflict and help address easily fixed lower-priority issues alongside larger changes.

### Source excerpt

Many people want their threat modeling work to produce risk numbers, and in this post you'll learn why that's a mistake.

## Jetpack Compose: Twitter UI

DevFeed: [Jetpack Compose: Twitter UI](<https://devfeed.tech/articles/jetpack-compose-twitter-ui-23104.md>)

Original publisher: [Read original article](<https://medium.com/android-news/jetpack-compose-twitter-ui-96f76577143a?source=rss----8fca399d4de---4>)

Author: Ahmed Rizwan

Published: 2020-04-25T23:46:18Z

Content type: tutorial

Language: en

Sources: [Android & Tech News -- Medium](<https://devfeed.tech/sources/android-tech-news-medium.md>)

Topics: [Jetpack Compose](<https://devfeed.tech/topics/jetpack-compose.md>), [Compose](<https://devfeed.tech/topics/compose.md>), [ui](<https://devfeed.tech/topics/ui.md>), [App](<https://devfeed.tech/topics/app.md>), [navigation](<https://devfeed.tech/topics/navigation.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-app-development](<https://devfeed.tech/tags/android-app-development.md>), [app](<https://devfeed.tech/tags/app.md>), [compose](<https://devfeed.tech/tags/compose.md>), [cross-platform](<https://devfeed.tech/tags/cross-platform.md>), [dialog](<https://devfeed.tech/tags/dialog.md>), [jetpack](<https://devfeed.tech/tags/jetpack.md>), [jetpack-compose](<https://devfeed.tech/tags/jetpack-compose.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [layout](<https://devfeed.tech/tags/layout.md>), [navigation](<https://devfeed.tech/tags/navigation.md>), [navigation-drawer](<https://devfeed.tech/tags/navigation-drawer.md>), [state](<https://devfeed.tech/tags/state.md>), [themes](<https://devfeed.tech/tags/themes.md>), [ui](<https://devfeed.tech/tags/ui.md>)

### AI overview

The article documents a test of Jetpack Compose through a simple Twitter UI clone. It describes the app's three screens, state model, navigation, layouts, scrolling approach, and light, dark, and darker themes.

### Source excerpt

I decided to test out Jetpack Compose by making a simple Twitter UI clone after I came across this tweet by Mariano Zorrilla: Mariano Zorrilla 💙 on Twitter Wait... did I just copied Twitter using #Flutter and share it over @CodePen?! 🥰 Such an amazing tool! Took me 1 day of work and 1500 lines of code. Link: https://t.co/zI90oTPYDd cc @timsneath @redbrogdon @ZoeyFan723 @kevmoo @MartinAguinis @nlycskn @Nash0x7E2 https://t.co/OqzBNWET0y He used Flutter (which is an amazing tool btw for building cross platform apps) -- with just one day of work, 1500 lines of code. That's beyond impressive (specially the fact that Flutter can be hosted on CodePen as well). So with similar constraints, I wanted to try out Jetpack Compose. I followed the CodePen example (as closely as I could) and this is the result: Complete source code: ahmedrizwan/JetpackComposeTwitter The App There are three screens in this app Home ScreenProfile ScreenCompose ScreenApp State Before we get to the screens -- take a look at app state model, which will be used for navigation and theming. I also added some helpers for navigating to individual screens & for checking theme. Models There are two models -- both data classes. The Tweet model is annotated with @Model as we update this model from our composed functions to update view state. User stays the same, hence it's not annotated. Home Screen Home screen is a Scaffold -- with drawer, bottom app bar, fab and content components. The scaffoldState is for managing the navigation drawer state. Initially the drawer is closed. Content The content consists of a custom top bar & list of tweets. I used VerticalScroller (with column inside) for the list instead of an AdapterList, as for some reason it wasn't as smooth when scrolling (this will change as Jetpack Compose matures). Ideally we would opt for AdapterList instead -- but for now, I'm using the scroller. Top Bar As it's a custom top bar -- I used a Surface with some elevation. Inside it's a simple row with three i

## Better permissions on Android

DevFeed: [Better permissions on Android](<https://devfeed.tech/articles/better-permissions-on-android-28375.md>)

Original publisher: [Read original article](<https://siddroid.com/post/post-android-rationale-permission-dialogs-2020/>)

Author: Siddhesh Patil

Published: 2020-03-08T14:41:21Z

Content type: tutorial

Language: en

Sources: [Sid Patil - Android Engineer and Kotlin Advocate](<https://devfeed.tech/sources/sid-patil-android-engineer-and-kotlin-advocate.md>)

Topics: [Android](<https://devfeed.tech/topics/android.md>), [Authorization](<https://devfeed.tech/topics/authorization.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [App](<https://devfeed.tech/topics/app.md>), [Code](<https://devfeed.tech/topics/code.md>), [dialog](<https://devfeed.tech/topics/dialog.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-permission-tutorial](<https://devfeed.tech/tags/android-permission-tutorial.md>), [android-permission-using-kotlin](<https://devfeed.tech/tags/android-permission-using-kotlin.md>), [android-permissions](<https://devfeed.tech/tags/android-permissions.md>), [best-practices](<https://devfeed.tech/tags/best-practices.md>), [dialog](<https://devfeed.tech/tags/dialog.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [manifest](<https://devfeed.tech/tags/manifest.md>), [permission-rationale-dialog-on-android](<https://devfeed.tech/tags/permission-rationale-dialog-on-android.md>), [permissions](<https://devfeed.tech/tags/permissions.md>), [runtime-permissions-on-android](<https://devfeed.tech/tags/runtime-permissions-on-android.md>), [user-deny-permission-android](<https://devfeed.tech/tags/user-deny-permission-android.md>)

### AI overview

A Kotlin Android tutorial explains how to handle denied permissions by using shouldShowRequestPermissionRationale to display a rationale dialog before requesting permission again. The example uses READ_CONTACTS and covers manifest declaration, permission checks, dialog display, and result handling.

### Source excerpt

Gracefully handle permission denial on Android permission dialogs and leverage permission rational dialogs to enhance the user experience of your application.

[Next page](<https://devfeed.tech/tags/dialog.md?cursor=WyIyMDIwLTAzLTA4VDE0OjQxOjIxKzAwOjAwIiwgIjQyODYyZWMzLTc2N2YtNGYyNS1hMzRjLTJhOGJjM2NiYTFiOCJd>)