diff --git a/src/renderer/src/assets/main.css b/src/renderer/src/assets/main.css index c5450cdd7..c1bc72aaa 100644 --- a/src/renderer/src/assets/main.css +++ b/src/renderer/src/assets/main.css @@ -1426,6 +1426,29 @@ opacity: 0.42; } +/* Why: while a card drag previews the board, pulse the toolbar trigger with the + same ring the drawer uses so it reads as another way to open the board. */ +@keyframes workspace-board-trigger-preview-pulse { + 0% { + box-shadow: 0 0 0 0 color-mix(in srgb, var(--sidebar-ring) 55%, transparent); + } + + 70%, + 100% { + box-shadow: 0 0 0 5px color-mix(in srgb, var(--sidebar-ring) 0%, transparent); + } +} + +[data-workspace-board-trigger][data-workspace-board-preview='true'] { + animation: workspace-board-trigger-preview-pulse 1.4s ease-out infinite; +} + +@media (prefers-reduced-motion: reduce) { + [data-workspace-board-trigger][data-workspace-board-preview='true'] { + animation: none; + } +} + @keyframes workspace-kanban-sheet-in { from { clip-path: inset(0 100% 0 0); diff --git a/src/renderer/src/components/sidebar/SidebarToolbar.tsx b/src/renderer/src/components/sidebar/SidebarToolbar.tsx index fff9177bc..9ea74af8d 100644 --- a/src/renderer/src/components/sidebar/SidebarToolbar.tsx +++ b/src/renderer/src/components/sidebar/SidebarToolbar.tsx @@ -13,11 +13,13 @@ const WORKSPACE_BOARD_MOVED_HINT_DURATION_MS = 12000 type SidebarToolbarProps = { workspaceBoardOpen: boolean + workspaceBoardDragPreviewOpen?: boolean onWorkspaceBoardToggle: () => void } const SidebarToolbar = React.memo(function SidebarToolbar({ workspaceBoardOpen, + workspaceBoardDragPreviewOpen = false, onWorkspaceBoardToggle }: SidebarToolbarProps) { const [workspaceBoardMovedHintOpen, setWorkspaceBoardMovedHintOpen] = React.useState(false) @@ -69,7 +71,11 @@ const SidebarToolbar = React.memo(function SidebarToolbar({