Studio Dark Theme

I don’t know if anyone told you yet, but as far as the toolbox white bleeding through click the button that says “none” on the bottom and it SHOULD vanish.

Yes. Unless they plan to add in script editor theme presets, yes it is bad.

It’s reasonable to assume that there are users don’t save their editor colors elsewhere. It’s also reasonable to assume that there are users that have spent hours fine-tuning their colors. If I were one of these users, I would not be very happy if studio just forgot my theme. Any change where information can be lost requires a warning at a minimum.

I think what EchoReaper’s saying is that you can switch back to light mode and your old script editor colors will be there. The alternative would be only one script editor color scheme regardless of your studio being in light or dark mode, which I can see would be even more annoying for people who want to switch frequently between the two and prefer different color editor schemes for both modes.

But also I’m just typing this on my phone and haven’t switched on dark mode yet so take this with a grain of salt

2 Likes

There’s nothing wrong with that, having only one script editor theme for both studio themes would be much worse if you wanted to have a separate script editor theme for each studio theme. If you want to have the same one across both themes, just copy the values, switch the theme and enter them again.

1 Like

anon80475429 mentioned a way to fix the top bar of the Studio window looking awful if your Windows 10 personalization settings are still default. The following are their instructions.


For some reason, in Windows 10 they changed the title bar to, by default, not take on the colour assigned from the personalization settings - hence why the personalization settings also changed.

These instructions will only apply to Windows 10!
To get a dark studio title bar, it’s extremely easy

  1. Go to Windows Settings - not control panel

  2. Find colours under home
    image

  3. Select black/grey and tick “Show accent colour on the following surfaces” > Title Bars and Start, Taskbar and action center

  4. Here is the finished result in studio (just remember it will be for all programs so programs like Notepad also get the accent colour)


    image

NOTE: Very frustratingly this also has an annoying side effect because Windows 10 will only apply the accent colour to the currently focused Window (e.g. if you clicked on Discord on another screen) it will cause studio title bar to revert back to white.
image

There is a hackish solution for Windows 10 to force it to stay the accent color, but that’s a long story and requires modifying Windows 10 files (but results in hugely better results if you see mine). Here’s mine with a dark theme applied to everything.

4 Likes

The problem here is that they can’t just scrap a feature because one person asks for it to change. Myself, and clearly others based on responses to you, like the way it is now. I would have hated if it carried my theme over to dark theme, and greatly prefer the way it is now.

If you want to have the ability to make preset script editor colors, then that’s something completely seperate from dark theme and belongs in a #platform-feedback:studio-features thread.

Just to clear up some confusion here: Yes, Studio does save the script color themes per UI Theme.
If you’re on Windows, you can actually see this data stored in the Registry Editor (regedit.exe)

HKEY_CURRENT_USER\Software\Roblox\RobloxStudio\DarkEditorColors
HKEY_CURRENT_USER\Software\Roblox\RobloxStudio\LightEditorColors

image

I can understand why some people might have been caught off guard by this. Perhaps the Studio team could make it copy over the LightEditorColors to the DarkEditorColors if the editorBackgroundColor is using a dark color?

I wouldn’t call it bad programming because it’s working as intended.
I think it was more of an oversight that modified scripting themes weren’t considered.

6 Likes

Please, no. I really like the default dark editor theme and would like to use it, while keeping my light theme color scheme the dark one it is now.

It’s not too much work to change the dark theme color scheme, and isn’t worth the work from the studio team to get a feature in that doesn’t even give any new ability. It’s really just a quality of life feature that isn’t even quality of life for everyone, and in turn would just take away the dark theme default editor colors from those of us who like them, but use a dark background in our light theme background.

5 Likes

So happy that studio finally has a dark theme, but the icons look… off… I’d say they look too light. Not too surprising, as they were created with the light theme in mind, would just be a nice bonus to change them based on theme too.

1 Like

the eye icon for toggling UI seems to be too big with the dark theme

dark
Capture

light
Capture

2 Likes

Hi All,

Just noticed the + sign to quickly add items in the Explorer panel does not work with Dark theme when you have a VehicleSeat. It works with other objects.

1 Like

That’s in the plan but not now! :slight_smile:

3 Likes

Hey I’ve noticed that the theme reverts to light every time Roblox updates (or at least for me). Is there a way to fix that?

1 Like

I have not experienced this issue, even after Roblox Client and Studio updated a few times since switching to dark theme. But I know something like this will get annoying pretty quick so hopefully you get it resolved soon! :slight_smile:

Is the API still being released? It’s been a while since this was announced.

6 Likes

Hey everybody,

We finally released the API for accessing Studio theme information! See the Building Studio Widgets article for some examples of how to use this API.

7 Likes

It would be amazing to have a diagram that shows an example widget with the enumerators listed on the side, and arrows pointing to the color where it is used in the example. This would make it really easy to produce theme-sensitive widgets without needing to work off of the module that Roblox provides.

Right now there’s only this list as far as I can see, and while the names are somewhat self-descriptive, it’d be nice to have something more than just this list so we’re sure we’re mapping elements to the right enumerator:
https://www.robloxdev.com/api-reference/enum/StudioStyleGuideColor

Anyone can use this in the meantime btw (click to expand)

7 Likes

Adding onto this, and I know this thread is pretty old now, I’ve created a pretty useful script for detecting the GuideColor and Modifier Enums between themes.

Basically what the script does is take in Color3 values which correspond to a studio UI element when applied to different themes (I use an eyedropper tool to get these values, preferably RGB)

local Studio = settings().Studio
local ThemeColorData = {}
local savedThemeData = {}
local amountLoadedThemes = 0
local guideColorEnums = Enum.StudioStyleGuideColor:GetEnumItems()
local modifierColorEnums = Enum.StudioStyleGuideModifier:GetEnumItems()
local themeChange
_G.ThemeColorData = ThemeColorData

local DEFAULT_THEME_NAME = "Default"
local AMOUNT_THEMES = 2 --Themes may be added or removed and I was told that 'UI Theme' Enum would be removed

function ThemeColorData:FindMatchingGuideAndModifier()
	warn("Please load themes first")
end

function ThemeColorData:FindAndPrintMatchingGuideAndModifier()
	warn("Please load themes first")
end

warn("Please load each theme")
warn("Waiting...")

function checkTheme()
	warn("Reading data, please wait...")
	local theme = Studio.Theme
	if theme.Name == DEFAULT_THEME_NAME then return end
	if savedThemeData[theme.Name] == nil then
		savedThemeData[theme.Name] = {}
		local data = savedThemeData[theme.Name]
		for _, guide in pairs(guideColorEnums) do
			data[guide] = {}
			for _, modifier in pairs(modifierColorEnums) do
				data[guide][modifier] = Studio.Theme:GetColor(guide,modifier)
			end
		end
	end
	amountLoadedThemes = amountLoadedThemes + 1
	warn(amountLoadedThemes.." of "..AMOUNT_THEMES.." themes loaded")
	if amountLoadedThemes == AMOUNT_THEMES then
		themeChange:Disconnect()
	end
end

checkTheme()
themeChange = Studio.ThemeChanged:Connect(function()
	checkTheme()
end)
repeat wait() until amountLoadedThemes == AMOUNT_THEMES
warn("You may now run the functions")

--Overwrite old functions
function ThemeColorData:FindMatchingGuideAndModifier(...)
	local colorParameters = {...}
	local matches = {}
	
	for _, guide in pairs(guideColorEnums) do
		for _, modifier in pairs(modifierColorEnums) do
			local compatableThemes = {}
			for themeName, _ in pairs(savedThemeData) do
				local pairColor = savedThemeData[themeName][guide][modifier]
				for _, savedColor in pairs(colorParameters) do
					if savedColor == pairColor then
						table.insert(compatableThemes,themeName)
					end
				end
			end
			if #colorParameters == #compatableThemes then
				table.insert(matches,{Modifier = modifier, Guide = guide, CompatableThemes = compatableThemes})
			end
		end
	end
	if #matches > 0 then return matches end
	warn("No compatable colours themes found")
end

function ThemeColorData:FindAndPrintMatchingGuideAndModifier(...)
	local matches = ThemeColorData:FindMatchingGuideAndModifier(...)
	for _, colorData in pairs(matches) do
		for i, themeName in pairs(colorData.CompatableThemes) do
			if i == 1 then --Idk why but this fixes '\n (x2)' print
				print("\nCompatable theme: "..themeName)
			else
				print("Compatable theme: "..themeName)
			end
		end
		print("   Guide: ".. tostring(colorData.Guide))
		print("   Modifier: "..tostring(colorData.Modifier))
	end
end

How to use:

  • Paste above script into command bar
  • use one of the functions the script provides, I will use ‘FindAndPrintMatchingGuideAndModifier’ in my example below
_G.ThemeColorData:FindAndPrintMatchingGuideAndModifier(
Color3.fromRGB(238,238,238), --Light theme element color
Color3.fromRGB(34,34,34)) --Dark theme element color

Output:

Compatable theme: Light
Compatable theme: Dark
   Guide: Enum.StudioStyleGuideColor.Mid
   Modifier: Enum.StudioStyleGuideModifier.Default

Compatable theme: Light
Compatable theme: Dark
   Guide: Enum.StudioStyleGuideColor.Mid
   Modifier: Enum.StudioStyleGuideModifier.Selected

Compatable theme: Light
Compatable theme: Dark
   Guide: Enum.StudioStyleGuideColor.Mid
   Modifier: Enum.StudioStyleGuideModifier.Pressed

Compatable theme: Light
Compatable theme: Dark
   Guide: Enum.StudioStyleGuideColor.Mid
   Modifier: Enum.StudioStyleGuideModifier.Disabled

Sorry if the code format is messed up, when I pasted my code it messed up, I’m pretty sure I fixed most of it.

3 Likes