TopbarPlus v3.3.1 | Construct topbar icons with ease; customise them with themes, dropdowns, captions, labels and more

I’ve noticed that the theme resets on mouse enter for already selected icons, which can interrupt the visual flow. Could we get a feature to disable this reset on hover for selected icons? This would help maintain a consistent appearance for active icons.

Thanks for the great work!

Video:

my setting:

-- imported Icon module

Icon.modifyBaseTheme({
	{ "Widget", "BorderSize", 0 },
	{ "IconSpotGradient", "Enabled", false },
	{
		"IconButton",
		"BackgroundColor3",
		Color3.fromRGB(245, 245, 245),
		"Selected",
	},
	{
		"IconButton",
		"BackgroundTransparency",
		0.1,
		"Selected",
	},
	{
		"IconImage",
		"ImageColor3",
		Color3.fromRGB(57, 60, 65),
		"Selected",
	},
	{
		"IconButton",
		"BackgroundColor3",
		Color3.fromRGB(0, 0, 0),
		"Deselected",
	},
	{
		"IconButton",
		"BackgroundTransparency",
		0.3,
		"Deselected",
	},
	{
		"IconImage",
		"Size",
		UDim2.fromScale(0.615, 0.615),
		"Deselected",
	},
	{
		"IconImage",
		"ImageColor3",
		Color3.fromRGB(255, 255, 255),
		"Deselected",
	},
})

local function playButtonSelectedTween(iconButton, iconImage)
	TweenService:Create(iconButton, buttonSelectedTweenInfo, {
		BackgroundColor3 = Color3.fromRGB(245, 245, 245),
		BackgroundTransparency = 0.1,
	}):Play()
	TweenService:Create(iconImage, buttonUnselectedTweenInfo, {
		ImageColor3 = Color3.fromRGB(57, 60, 65),
		Size = UDim2.fromScale(0.72, 0.72),
	}):Play()
end

local function playButtonUnselectedTween(imageButton, iconImage)
	TweenService:Create(imageButton, buttonUnselectedTweenInfo, {
		BackgroundColor3 = Color3.fromRGB(0, 0, 0),
		BackgroundTransparency = 0.3,
	}):Play()
	TweenService:Create(iconImage, buttonUnselectedTweenInfo, {
		ImageColor3 = Color3.fromRGB(255, 255, 255),
		Size = UDim2.fromScale(0.615, 0.615),
	}):Play()
end

local function handleToggled(icon, isSelected)
	local iconButton = icon.widget:FindFirstChild("IconButton", true)
	local iconImage = icon.widget:FindFirstChild("IconImage", true)

	if isSelected then
		playButtonSelectedTween(iconButton, iconImage)
	else
		playButtonUnselectedTween(iconButton, iconImage)
	end
end

-- icon sets up here