Add Blob taskbar - #617
Open
Deen-0x wants to merge 55 commits into
Open
Conversation
Deen-0x
marked this pull request as draft
July 28, 2026 06:09
Open README file
Added detailed README for Blob theme including installation instructions and Windhawk mod settings.
Updated theme selection and manual installation instructions for clarity.
Removed old border and animation settings, added blob shape properties.
Removed unnecessary line break in README.
Removed details section for Taskbar Windows Settings.
Updated the taskbar settings description for clarity.
Updated various style properties in README for Blob theme.
Updated alignment and margin styles for the weather widget.
Updated styles and targets for various UI elements in the Blob theme, including alignment, margins, and rendering transformations.
Removed section on recommended Windhawk mods from README.
Removed redundant description about the Blob Taskbar design.
add styleConstant to control taskbar content offset
m417z
pushed a commit
to ramensoftware/windhawk-mods
that referenced
this pull request
Aug 3, 2026
## Taskbar Blob Shape Add Taskbar Blob Shape mod which replaces the rounded-rectangle indicator behind Windows 11 taskbar buttons with a parametric "blob" — a tab-like shape whose top edge is flat and wide, with concave flares at the top corners so each button reads as a tab merging into the desktop above it. ## Attribution - Originally based on [Taskbar Elastic WinUI Pill](#4685) & the yet released **Taskbar Elastic Border** by @Lockframe ## Use case - See Taskbar Styling [PR #617](ramensoftware/windows-11-taskbar-styling-guide#617). <img width="310" height="36" alt="blob" src="https://github.com/user-attachments/assets/4c6b8e14-3976-40db-b454-08e795b18aaf" /> <img width="1920" height="36" alt="lhSj7xL9B2" src="https://github.com/user-attachments/assets/53f8023e-1342-4d1c-bdb4-3708b0f1e618" /> ## Features - **Parametric shape** — top corner radius (the concave flares; also sets how far the shape extends up and outward), bottom corner radius, custom width/height (`auto` matches the button's background element), and margin offsets. - **Color** — custom hex fill with multi-color gradient support and separate `light | dark` values, per-theme opacity multipliers, and automatic fallback to the system accent color when no custom color is set. - Works across multiple monitors and taskbars. ## Implementation notes - Hooks `TaskListButton::UpdateVisualStates` (Taskbar.View.dll) to observe running indicator state changes; activation is a pure per-button opacity toggle. - Each button gets its own `Path` element, hosted in the taskbar's `RootGrid` (above the task list's clipping region so the flare tips render fully) and glued to its button with a one-time composition `ExpressionAnimation` on the button's visual offset chain — the shape tracks reordering, reflow, and taskbar animations on the render thread with no per-frame UI-thread work. - Full button lifecycle tracking: an `Unloaded` handler per button hides its shape and invalidates the binding when the button leaves the tree (window moved to another monitor, app closed, container recycled), and reused containers re-resolve their hosting grid, re-parent the shape if needed, and rebind — shapes never outlive or detach from their buttons. - The native `BackgroundElement` is suppressed via its hand-off visual's `IsVisible` flag rather than a local `Opacity` value, so visual-state transition storyboards (which outrank local values in XAML property precedence) can't bring it back on top of the shape. - Late layout is handled with a `SizeChanged` subscription per button — no timers, no polling. - Unloading detaches all event handlers, stops the composition animations, removes the injected elements, and restores the native indicators. ## Tested on - Windows 11 25H2 (OS Build 26200.8894), single and dual monitor - Reordering pinned items, launching pinned apps, minimize/restore, dragging windows between monitors in both directions (including button removal and container reuse), overflow-free and mixed light/dark themes, enable/disable cycles ## Mod authorship This mod was created by: Claude
match hover color to blob's
…comments Rectangle#RunningIndicator assigned Fill and Stroke twice, with the second pair referencing $buttonFill and $buttonBorderColor - neither is declared in styleConstants, and the duplicate Fill overrode $multiWinIndicatorColor. Both leftovers removed. Also dropped Opacity@NoRunningIndicator, which names a state from RunningIndicatorStates and so never matched under the @CommonStates group declared on that target (and was redundant against Visibility = 1). - Drop Transitions := <TransitionCollection/>; BackgroundTransition := $noTransition is what actually suppresses the hover flash when "Animation effects" is on. - Reset the overflow flyout button padding, which was inheriting the asymmetric $taskbarTopOffset / $taskbarBottomOffset meant for the taskbar edges. - Extract $progressPausedColor (was an inline brush repeated three times) and $flyoutButtonMinWidth. - Use := for the weather widget Padding, matching every comparable line. - Shorten the overflow flyout selectors to the OverflowFlyoutListRepeater form already used by the sibling rules; drop @CommonStates from two targets that declare no state-scoped styles. - Rewrite the inline comments to explain the spacing math, the z-order stack and the elements repurposed from their native roles. Comments avoid ": " so they stay plain YAML scalars. No visual change intended.
Added expandable section for Widget Board Settings with image.
Added styling section with illustration for styleConstants.
Deen-0x
marked this pull request as ready for review
August 6, 2026 21:15
Deen-0x
marked this pull request as draft
August 7, 2026 15:13
Extend CommonStates to System, weather widget and system tray buttons.
Deen-0x
marked this pull request as ready for review
August 8, 2026 10:39
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Blob Taskbar utilizes Taskbar Blob Shape mod to replace the rounded-rectangle indicator behind Windows taskbar buttons with a parametric "blob" — a tab-like shape whose top edge is flat and wide, with concave flares at the top corners so each button reads as a tab merging into the taskbar stroke above it. The look is inspired from the tab strips in File Explorer and Google Chrome, where the active tab visually connects to the content below it rather than floating as a separate pill.