Windows 11 Taskbar Styler
1.10
m417z
explorer.exe
Customize the taskbar with themes contributed by others or create your own
Details
1,059,953 users
Windows 11 Start Menu Styler
1.7
m417z
StartMenuExperienceHost.exe, SearchHost.exe, SearchApp.exe
Customize the Start menu with themes contributed by others or create your own
Details
962,993 users
Windows 11 Notification Center Styler
1.7
m417z
ShellExperienceHost.exe, ShellHost.exe
Customize the Notification Center and Action Center with themes contributed by others or create your own
Details
596,162 users
Taskbar Dock Animation
1.9.2
Ph0en1x-dev
explorer.exe
Animates taskbar icons on mouse hover like in macOS
Details
488,150 users
Taskbar height and icon size
1.3.10
m417z
explorer.exe
Control the taskbar height and icon size, improve icon quality (Windows 11 only)
Details
333,137 users
Windows 11 File Explorer Styler
1.7
m417z
explorer.exe
Customize the File Explorer with themes contributed by others or create your own
Details
328,060 users
Better file sizes in Explorer details
1.6
m417z
All but conhost.exe, Plex*.exe, backgroundTaskHost.exe, LockApp.exe, SearchHost.exe, ShellExperienceHost.exe, StartMenuExperienceHost.exe, msedgewebview2.exe, windhawk.exe, windhawk-ui.exe, *\UI\VSCodium.exe
Enhances file size display in Explorer details with folder sizes, human-readable units (MB/GB), and optional IEC notation (KiB/MiB)
Details
232,561 users
Taskbar Volume Control
1.3.1
m417z
explorer.exe, ShellExperienceHost.exe, SndVol.exe
Control the system volume by scrolling over the taskbar or anywhere with modifier keys
Details
170,576 users
Translucent Windows
1.8.2
Undisputed00x
All processes
Enables native translucent effects in Windows 11
Details
174,239 users
Taskbar Clock Customization
1.8.1
m417z
explorer.exe
Custom date/time format, news feed, weather, performance metrics (upload/download speed, CPU, RAM, GPU, battery), media player info, custom fonts and colors, and more
Details
119,923 users
Taskbar auto-hide when maximized
1.2.6
m417z
explorer.exe
Makes the taskbar auto-hide only when a window is maximized or intersects the taskbar
Details
113,816 users
Windows Animations
1.3.7
ReDrag
All but TextInputHost.exe, ShellExperienceHost.exe, StartMenuExperienceHost.exe, SearchHost.exe, dwm.exe, mmc.exe, git.exe, git-remote-https.exe, AudioCaptureService.exe, AIVisualPIPESvr.exe, GimateServiceHelper.exe, NVIDIA Web Helper.exe
Smooth minimize, restore, close, switch animations for windows.
Details
98,277 users
Taskbar tray system icon tweaks
1.3.1
m417z
explorer.exe
Allows hiding system icons: volume, network, battery, microphone, location/GPS, Studio Effects, Recall, language bar, bell (always or when there are no new notifications), and the "Show desktop" button (hide or set width)
Details
83,415 users
Invisible Window Borders
1.0.0
Bo0ii
All but devenv.exe
Makes window borders invisible while keeping rounded corners
Details
91,656 users
MacOS Minimize Animation
3.1.7
Abdullah Masood
All processes
Smooth macOS-style genie minimize and restore (open) animations for every window.
Details
85,805 users
Slick Window Arrangement
1.0.2
m417z
All processes
Make window arrangement more slick and pleasant with a sliding animation and snapping
Details
74,294 users
Dark mode context menus
1.4.2
Mgg Sk
All processes
Enables dark mode for all win32 menus.
Details
80,172 users
Resource Redirect
1.3
m417z
All processes
Define alternative files for loading various resources (e.g. icons in imageres.dll) for simple theming without having to modify system files
Details
78,153 users
Windows 11 Settings Styler
1.1
m417z
SystemSettings.exe
Customize the Windows Settings app with themes contributed by others or create your own
Details
71,077 users
Middle click to close on the taskbar
1.0.9
m417z
explorer.exe
Close programs with a middle click on the taskbar instead of creating a new instance
Details
61,033 users
Classic context menu on Windows 11
1.0.2
m417z
explorer.exe
Always show the classic context menu without having to select "Show More Options" or hold Shift
Details
50,992 users
Taskbar tray icon spacing and grid
1.4
m417z
explorer.exe
Reduce or increase the spacing between tray icons on the taskbar, optionally have a grid of tray icons (Windows 11 only)
Details
47,157 users
Taskbar Volume Control Per-App
1.1.4
m417z
explorer.exe
Control the per-app volume by scrolling over taskbar buttons
Details
46,421 users
Dynamic Island for Windows
1.3.1
Himanshu
windhawk.exe
A living, breathing pill overlay inspired by iPhone's Dynamic Island. Reacts to media, downloads, clipboard, battery, and more.
Details
50,081 users
Modernize Folder Picker Dialog
1.0.0
aubymori
All processes
Replaces the classic "Browse For Folder" dialog
Details
37,466 users
Taskbar Labels for Windows 11
1.5.1
m417z
explorer.exe
Customize text labels and combining for running programs on the taskbar (Windows 11 only)
Details
37,355 users
Taskbar auto-hide speed
1.1
m417z
explorer.exe
Customize the taskbar auto-hide animation speed and frame rate to make it feel less sluggish and janky
Details
41,338 users
UXTheme hook
1.4
rounk-ctrl
winlogon.exe, explorer.exe, systemsettings.exe, logonui.exe, rundll32.exe
Allows you to apply custom themes
Details
38,061 users
Taskbar Dock Animation Plus
2.0.1
incconutwo
explorer.exe
Animates taskbar icons on mouse hover like in macOS (updated fork with support for all taskbar positions and multi-monitor fixes)
Details
36,755 users
Taskbar Auto-Hide Instant Show
2.2
Bo0ii
explorer.exe
Removes the delay before the taskbar appears with custom animation types (none, slide, elastic, bounce, fade, slide+fade, overshoot)
Details
32,711 users
Windows 11 Start Menu Styler
windows-11-start-menu-styler
1.7
m417z
StartMenuExperienceHost.exe, SearchHost.exe, SearchApp.exe
Customize the Start menu with themes contributed by others or create your own

Windows 11 Start Menu Styler

Customize the Start menu with themes contributed by others or create your own.

Also check out the Windows 11 Taskbar Styler, Windows 11 Notification Center Styler mods.

Themes

Themes are collections of styles. The following themes are integrated into the mod and can be selected in the settings:

TranslucentStartMenu
TranslucentStartMenu

NoRecommendedSection
NoRecommendedSection

SideBySide
SideBySide

SideBySide2
SideBySide2

SideBySideMinimal
SideBySideMinimal

Down
Aero
Down Aero

Windows10
Windows10

Windows11_Metro10
Windows11_Metro10

Fluent2Inspired
Fluent2Inspired

RosePine
RosePine

Windows11_Metro10Minimal
Windows11_Metro10Minimal

Everblush
Everblush

SunValley
SunValley

SunValley
(Legacy)
SunValley (Legacy)

UniMenu
UniMenu

LegacyFluent
LegacyFluent

OnlySearch
OnlySearch

WindowGlass
WindowGlass

Fluid
Fluid

Oversimplified&Accentuated
Oversimplified&Accentuated

LiquidGlass
LiquidGlass

LiquidGlass
(Legacy)
LiquidGlass (Legacy)

Windows10X
Windows10X

TintedGlass
TintedGlass

LayerMicaUI
LayerMicaUI

Borderless
Borderless

Command
Center
Command Center

FullScreen
FullScreen

FrostyGlass
FrostyGlass

More themes can be found in the Themes section of The Windows 11 Start menu styling guide. Contributions of new themes are welcome!

Advanced styling

Aside from themes, the settings have two sections: control styles and resource variables. Control styles allow to override styles, such as size and color, for the target elements. Resource variables allow to override predefined variables. For a more detailed explanation and examples, refer to the sections below.

The Start menu's XAML resources can help find out which elements and resource variables can be customized. To the best of my knowledge, there are no public tools that are able to decode the resource files of recent Windows versions, but here are XAML resources which were obtained via other means for your convenience: StartResources.xbf.

The UWPSpy tool can be used to inspect the Start menu control elements in real time, and experiment with various styles.

For a collection of commonly requested Start menu styling customizations, check out The Windows 11 Start menu styling guide.

Control styles

Each entry has a target control and a list of styles.

The target control is written as Class or Class#Name, i.e. the target control class name (the tag name in XAML resource files), such as StartMenu.StartInnerFrame or Rectangle, optionally followed by # and the target control's name (x:Name attribute in XAML resource files). The target control can also include:

  • Child control index, for example: Class#Name[2] will only match the relevant control that's also the second child among all of its parent's child controls.
  • Control properties, for example: Class#Name[Property1=Value1][Property2=Value2].
  • Parent controls, separated by >, for example: ParentClass#ParentName > Class#Name.
  • * between two > separators to match any number of intermediate parent controls, for example: ParentClass > * > Class#Name matches Class#Name when ParentClass is any of its ancestors (with zero or more controls in between). * must be in the middle of the target (not the leftmost or rightmost part), and consecutive * are not allowed.
  • :root as the leftmost target part to require that the next part has no parent, i.e., it's a root element. For example: :root > Class#Name matches Class#Name only when it has no parent control. :root must be followed by a non-* target part.
  • Visual state group name, for example: Class#Name@VisualStateGroupName. It can be specified for the target control or for a parent control, but can be specified only once per target. The visual state group can be used in styles as specified below.

Several target controls can be specified for the same styles by separating them with commas, for example: ParentClass > Class#Name1, ParentClass > Class#Name2.

Note: The target is evaluated only once. If, for example, the index or the properties of a control change, the target conditions aren't evaluated again.

Each style is written as Style=Value, for example: Height=5. The := syntax can be used to use XAML syntax, for example: Fill:=<SolidColorBrush Color="Red"/>. Specifying an empty value with the XAML syntax will clear the property value, for example: Fill:=. In addition, a visual state can be specified as following: Style@VisualState=Value, in which case the style will only apply when the visual state group specified in the target matches the specified visual state.

For the XAML syntax, in addition to the built-in taskbar objects, the mod provides a built-in blur brush via the WindhawkBlur object, which supports the BlurAmount, TintColor, TintOpacity, TintLuminosityOpacity, TintSaturation, NoiseOpacity, NoiseDensity, and FallbackColor properties. For example: Fill:=<WindhawkBlur BlurAmount="10" TintColor="#80FF00FF"/>. Theme resources are also supported for TintColor and FallbackColor, for example: Fill:=<WindhawkBlur BlurAmount="18" TintColor="{ThemeResource SystemAccentColorDark1}" TintOpacity="0.5"/>. The FallbackColor is used in place of the blur effect when battery saver is on or when transparency effects are disabled in the system settings.

Targets and styles starting with two slashes (//) are ignored. This can be useful for temporarily disabling a target or style.

Style variables

Beyond literal values, XAML values, and style constants, styles can reference live property values via style variables. A capture rule of the form Property=>VarName observes a control's property and publishes its value as VarName; other styles then substitute it with {{VarName}}. Whenever the captured value changes or the variable becomes undefined, every dependent style is recomputed and reapplied.

Capture rules cannot be combined with := or with the per-rule @VisualState qualifier.

For example, these two styles on the same target keep it square, with the height tracking the width:

ActualWidth=>width1
Height={{width1}}

A capture rule may match several controls at once. A style reading {{VarName}} gets the value from whichever capturing control is closest to it in the control tree, i.e. the one it shares the deepest common parent with. The variable only becomes undefined once the last capturing control is gone.

A substitution can appear anywhere in a value, including alongside literal text:

Margin=0,{{x1}},0,{{x2 + 10}}

Inside {{ ... }}, the supported expression syntax is:

  • Numbers (e.g. 42, 3.14).
  • Backtick-delimited string literals (e.g. `Auto`, `*`), where a doubled backtick encodes one literal backtick. Backtick is used rather than a quote so literals don't clash with YAML or XAML quoting.
  • Variable references (a previously captured VarName).
  • Arithmetic +, -, *, / with standard precedence, and unary +, -.
  • Comparisons <, <=, ==, >=, >, !=, evaluating to 1 or 0. The relational operators require numbers; == and != compare two numbers or two strings by value and treat a number-versus-string mismatch as unequal.
  • The conditional cond ? a : b: a when cond is non-zero, otherwise b. The condition must be numeric, but each branch may be a number or a string, e.g. {{width > 0 ? `*` : `Auto`}} selects a GridLength keyword.
  • min(a, b) and max(a, b).
  • Parentheses for grouping, and nesting such as {{min(a, b + 1) * 2}}.

Arithmetic, the unary sign, the relational comparisons, and min / max require numeric operands. A string can only be produced by a literal or a string-typed variable, compared with == / !=, and selected by the conditional.

Brace pairs match innermost-first, so {{{x}}} is parsed as a literal {, the substitution {{x}}, and a literal }, producing {<value-of-x>}.

A bare substitution {{VarName}} (with no operators) inserts the variable's captured value verbatim. This works only for primitive captured types (numeric, boolean, string); other types (brushes, thicknesses, etc.) are unsupported, and substituting one skips the style, as does a bare reference to an undefined variable.

Inside an expression, an undefined variable instead evaluates to the empty string, letting a style supply its own default via the conditional, e.g. {{width == `` ? 80 : width}} yields 80 until width is captured. The numeric operators above then fail on such a variable, skipping the style rather than treating it as 0.

Resource variables

Some variables, such as size and padding for various controls, colors, and brushes, are defined as resource variables. You can override existing resources or define new theme-aware resources.

Overriding existing resources

Use key=value to override an existing resource.

Defining theme-aware resources

Use Key@Dark=value and Key@Light=value to define new resources with different values for dark and light themes. These can then be referenced in styles using {ThemeResource key}.

For example, to define a custom accent color that automatically adjusts based on the system theme:

AutoAccent@Dark={ThemeResource SystemAccentColorDark1}
AutoAccent@Light={ThemeResource SystemAccentColorLight2}

Then use it in a style:

Background:=<SolidColorBrush Color="{ThemeResource AutoAccent}" />

The value will automatically update when the system accent color changes.

Using XAML syntax

The := syntax can be used to set a XAML value as a resource, for example: MyBrush:=<SolidColorBrush Color="Red"/>. This can be combined with theme variants: MyBrush@Dark:=<SolidColorBrush Color="#FF202020"/>. Specifying an empty value with the XAML syntax will clear the resource value, for example: MyBrush:=.

Style constants

Style constants allow defining a value once and referencing it in multiple styles. Each entry contains a name and value, separated by =, for example:

mainColor=#fafad2

The constant can then be used in style definitions by prepending $, for example:

Fill=$mainColor
Background:=<AcrylicBrush TintColor="$mainColor" TintOpacity="0.3" />

Some themes use style constants to allow easy customization. Refer to the theme page for details on which constants are available.

Search WebView styles

While the Start menu uses WinUI for its user interface, most of the search content (all but the top search bar) is a WebView element. To style the search WebView, CSS targets and styles can be used. For example, to set a red background, the target body and the style background: red !important can be used.

Search WebView custom JavaScript code

Custom JavaScript code can be injected into the search content WebView. One use case example is loading the DOM Inspector script to inspect the search content elements:

Screenshot

The following JavaScript code can be used to load a bundled version of DOM Inspector:

const s=document.createElement('script');s.setAttribute('src','https://m417z.github.io/DOM-inspector/acid-dom/bundled.js');document.head.appendChild(s);

To reset all side-effects of the injected scripts, clear the custom code in the mod settings and then terminate the search host process. It will be relaunched automatically by Windows.

Implementation notes

The VisualTreeWatcher implementation is based on the ExplorerTAP code from the TranslucentTB project.

The WindhawkBlur brush object implementation is based on XamlBlurBrush from the TranslucentTB project.