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