So, I am an 80% self-taught Roblox scripter and I wanted to make a DarkMode for my GUI. So I started scripting and it KINDA worked.

local DARKON = false
--DarkMode
		if DARKON == false then
			darkMode.MouseButton1Click:Connect(function()
				for i = 0, 1, .1 do
				playButton.TextColor3 = Color3.new(i,i,i)
				creditsButton.TextColor3 = Color3.new(i,i,i)
				updateLogButton.TextColor3 = Color3.new(i,i,i)
				title.TextColor3 = Color3.new(i,i,i)
				darkMode.TextColor3 = Color3.new(i,i,i)
				wait(.01)
				end
				for i = 1, 0, -.1 do
				greyFrame.BackgroundColor3 = Color3.new(i,i,i)
				mainFrame.BackgroundColor3 = Color3.new(i,i,i)
				wait(.01)
				end
				DARKON = true
				print("DARKON TRUE")
				script.Parent.DarkMode.Text = "Light Mode"
			end)
		end
		
		if DARKON == true then
			darkMode.MouseButton1Click:Connect(function()
				for i = 1, 0, -.1 do
				playButton.TextColor3 = Color3.new(i,i,i)
				creditsButton.TextColor3 = Color3.new(i,i,i)
				updateLogButton.TextColor3 = Color3.new(i,i,i)
				title.TextColor3 = Color3.new(i,i,i)
				darkMode.TextColor3 = Color3.new(i,i,i)
				wait(.01)
				end
				for i = 0, 1, .1 do
				greyFrame.BackgroundColor3 = Color3.new(i,i,i)
				mainFrame.BackgroundColor3 = Color3.new(i,i,i)
				wait(.01)
				end
				DARKON = false
				print("DARKON FALSE")
				script.Parent.DarkMode.Text = "Dark Mode"
			end)
		end

So i have the variable DARKON and if that one is false then the colors have to change to black. If the DARKON variabler is false then the colors have to change back to white, and that doesn't work. The colors change from white to black clean, but when I want them to change back to white they dont do that. Instead they go white in 0.01 sec and go black again. So its again black to white...

Changing the for i = 1, 0, -.1 do to for i = 0, 1, .1 do doesn't work either.

I don't get it... HELP

Variables

local playButton = script.Parent.PlayButton
local creditsButton = script.Parent.CreditsButton
local updateLogButton = script.Parent.UpdateLog
local mainFrame = script.Parent
local greyFrame = script.Parent.GreyFrame
local title = script.Parent.Title
local darkMode = script.Parent.DarkMode