[PR #7724] [MERGED] feat: implement keyboard triggering on buttons and add focus state #8068

Closed
opened 2026-03-23 23:22:27 +00:00 by mirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/AppFlowy-IO/AppFlowy/pull/7724
Author: @richardshiue
Created: 4/11/2025
Status: Merged
Merged: 4/11/2025
Merged by: @richardshiue

Base: feat/custom-promptHead: feat/keyboard-button-nav


📝 Commits (2)

  • 1443f9d feat: implement keyboard triggering on buttons and add focus state
  • d9ac3d7 chore: pass isFocused to builders

📊 Changes

9 files changed (+113 additions, -37 deletions)

View changed files

📝 frontend/appflowy_flutter/packages/appflowy_ui/lib/src/component/button/base_button/base_button.dart (+96 -20)
📝 frontend/appflowy_flutter/packages/appflowy_ui/lib/src/component/button/filled_button/filled_button.dart (+1 -1)
📝 frontend/appflowy_flutter/packages/appflowy_ui/lib/src/component/button/filled_button/filled_text_button.dart (+1 -1)
📝 frontend/appflowy_flutter/packages/appflowy_ui/lib/src/component/button/ghost_button/ghost_button.dart (+1 -1)
📝 frontend/appflowy_flutter/packages/appflowy_ui/lib/src/component/button/ghost_button/ghost_icon_text_button.dart (+1 -1)
📝 frontend/appflowy_flutter/packages/appflowy_ui/lib/src/component/button/ghost_button/ghost_text_button.dart (+1 -1)
📝 frontend/appflowy_flutter/packages/appflowy_ui/lib/src/component/button/outlined_button/outlined_button.dart (+4 -4)
📝 frontend/appflowy_flutter/packages/appflowy_ui/lib/src/component/button/outlined_button/outlined_icon_text_button.dart (+4 -4)
📝 frontend/appflowy_flutter/packages/appflowy_ui/lib/src/component/button/outlined_button/outlined_text_button.dart (+4 -4)

📄 Description

  1. For keyboard triggering, handle Flutter's convention which listens for LogicalKeyboardKey.escape and LogicalKeyboardKeyl.space to trigger the ActivateIntent. Simply handle the intent in an Actions widget.
  2. For focus state, use theme-border-thick with 50% opacity.

https://github.com/user-attachments/assets/a3df8673-07fd-4315-b699-8e580538c928

Feature Preview


PR Checklist

  • My code adheres to AppFlowy's Conventions
  • I've listed at least one issue that this PR fixes in the description above.
  • I've added a test(s) to validate changes in this PR, or this PR only contains semantic changes.
  • All existing tests are passing.

Summary by Sourcery

Enhance base button component with keyboard interaction and focus state support

New Features:

  • Add keyboard triggering support for buttons using Actions and ActivateIntent
  • Implement visual focus state for buttons with a configurable border highlight

Enhancements:

  • Improve button interaction by adding focus management
  • Refactor button widget to support more accessible interactions

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/AppFlowy-IO/AppFlowy/pull/7724 **Author:** [@richardshiue](https://github.com/richardshiue) **Created:** 4/11/2025 **Status:** ✅ Merged **Merged:** 4/11/2025 **Merged by:** [@richardshiue](https://github.com/richardshiue) **Base:** `feat/custom-prompt` ← **Head:** `feat/keyboard-button-nav` --- ### 📝 Commits (2) - [`1443f9d`](https://github.com/AppFlowy-IO/AppFlowy/commit/1443f9d620ce787ab7ad5ec34d11384e78bd3756) feat: implement keyboard triggering on buttons and add focus state - [`d9ac3d7`](https://github.com/AppFlowy-IO/AppFlowy/commit/d9ac3d739f3c37b68c151ea6dce4b9710aa0fc94) chore: pass isFocused to builders ### 📊 Changes **9 files changed** (+113 additions, -37 deletions) <details> <summary>View changed files</summary> 📝 `frontend/appflowy_flutter/packages/appflowy_ui/lib/src/component/button/base_button/base_button.dart` (+96 -20) 📝 `frontend/appflowy_flutter/packages/appflowy_ui/lib/src/component/button/filled_button/filled_button.dart` (+1 -1) 📝 `frontend/appflowy_flutter/packages/appflowy_ui/lib/src/component/button/filled_button/filled_text_button.dart` (+1 -1) 📝 `frontend/appflowy_flutter/packages/appflowy_ui/lib/src/component/button/ghost_button/ghost_button.dart` (+1 -1) 📝 `frontend/appflowy_flutter/packages/appflowy_ui/lib/src/component/button/ghost_button/ghost_icon_text_button.dart` (+1 -1) 📝 `frontend/appflowy_flutter/packages/appflowy_ui/lib/src/component/button/ghost_button/ghost_text_button.dart` (+1 -1) 📝 `frontend/appflowy_flutter/packages/appflowy_ui/lib/src/component/button/outlined_button/outlined_button.dart` (+4 -4) 📝 `frontend/appflowy_flutter/packages/appflowy_ui/lib/src/component/button/outlined_button/outlined_icon_text_button.dart` (+4 -4) 📝 `frontend/appflowy_flutter/packages/appflowy_ui/lib/src/component/button/outlined_button/outlined_text_button.dart` (+4 -4) </details> ### 📄 Description 1. For keyboard triggering, handle Flutter's convention which listens for `LogicalKeyboardKey.escape` and `LogicalKeyboardKeyl.space` to trigger the `ActivateIntent`. Simply handle the intent in an `Actions` widget. 2. For focus state, use `theme-border-thick` with 50% opacity. https://github.com/user-attachments/assets/a3df8673-07fd-4315-b699-8e580538c928 ### Feature Preview <!--- List at least one issue here that this PR addresses. If it fixes the issue, please use the [fixes](https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/using-keywords-in-issues-and-pull-requests) keyword to close the issue. For example: fixes https://github.com/AppFlowy-IO/AppFlowy/pull/2106 --> --- <!--- Before you mark this PR ready for review, run through this checklist! --> #### PR Checklist - [x] My code adheres to [AppFlowy's Conventions](https://docs.appflowy.io/docs/documentation/software-contributions/conventions) - [x] I've listed at least one issue that this PR fixes in the description above. - [x] I've added a test(s) to validate changes in this PR, or this PR only contains semantic changes. - [x] All existing tests are passing. ## Summary by Sourcery Enhance base button component with keyboard interaction and focus state support New Features: - Add keyboard triggering support for buttons using Actions and ActivateIntent - Implement visual focus state for buttons with a configurable border highlight Enhancements: - Improve button interaction by adding focus management - Refactor button widget to support more accessible interactions --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
mirror 2026-03-23 23:22:27 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
AppFlowy-IO/AppFlowy#8068
No description provided.