(Guide) How To Make A Steam Skin
(Guide) How To Make A Steam Skin
1. Introduction (page 2) 2. Getting started FAQ (page 3) 3. Advanced FAQ (page 4) 4. Steam developer mode (page 9) 4.1. Making a batch file (page 11) 5. Use of paint.net (page 13) 6. Making of Rider theme skin (page 16) 7. Using already made skin, to make your own AKA TL;DR (page 95) 8. Tips and tricks (page 97) 9. Known bugs/errors (page 100)
P age |2
1.
Introduction
This guide was made to teach you, how to make steam skins. It might not teach you how to fully edit absolutely every aspect of the skin, but it will help you get started and, at the end, youll be able to make a skin with: most colors changed, font of your choice, image(s) of your choice.
P age |3
2.
Q: What do I need to get started? A: First, Id like to recommend either making a backup of the files which you are going to change (most likely steam.styles) or creating your own folder in steam/skins directory, named myskin, for example. After that, copy the resource and graphics folders into myskin. Then open steam and in the settings tab, select interface, then your skin (myskin). Restart steam. After all that, you need to either choose colors, preferably 2-3, max, or choose a picture which has those 2-3 dominant colors. Choose the picture only if youre planning of using it in your skin later. If you would like to keep the original steam logo, then just pick the colors. Q: Its done, now what? A: You will probably want to make a texture, fitting for your steam skin. I am talking about clienttexture2.tga, found in steam graphics folder. After youre done, or if you like the original texture, skip to either advanced faq or to section 6.
P age |4
3.
Advanced FAQ
Q: So I chose the colors/picture and came here. Now what? A: Good, now you need to define those colors. In RGB. (If you chose a picture, then that picture, of yours, surely has 2-3 dominant colors. Pick them). Q: How do I do that? How do I define those colors. A: First, steam has, some of them, defined already. Lets take a look at steam.styles file (open it with notepad):
steam.styles { colors { // colors section can include colors in "R G B A" form, or references to already defined colors; // it can also include just general settings controls can pull from for extra customization black="0 0 0 255" almostBlack="23 22 20 255" white="255 255 0 255" grey="158 153 149 255" none="0 0 0 0" yellow="255 255 0 255" offwhite="166 164 159 255"
Thats a piece of code located at the very top of the steam.styles file. You, of course, have noticed that by now. As you can see, its pretty easy to define your own. Lets look at the given parameters of one of the steams defined colors:
almostBlack="23 22 20 255"
let me define what is what: almostBlack variable with a name of your choice. Few examples of not recommended variable names: red*^, color!5, sadasd* etc. Some examples of good variable names: color5, mycolor, my256, dog17 etc. Also, its important not to have 2 variables with the same name, regardless if they have different values.
P age |5
=23 22 20 255 the definition of a variable. In this case, the RGB and transparency values Take a look at this and compare the two definitions: =R G B T
The first number defines the value of red color, 2nd green, 3rd blue, t transparency.
All of the colors must have 4 numbers defining them and they must be separated by a single space. No exceptions. Furthermore, the first 3 numbers define the color itself, while the last number defines the colors transparency. Each of the 4 numbers must not exceed a maximum value of 255 and the lowest value of 0. Other than that, theres no restrictions. Its wise to keep transparency at 255 most of the time. Q: Okay, lets say I understand that. Now what? A: Make a comment (yes, a comment) and, right after, define your colors. It would be wise to make this comment just below the defined colors. The code should look like this, if done properly:
steam.styles { colors { // colors section can include colors in "R G B A" form, or references to already defined colors; // it can also include just general settings controls can pull from for extra customization black="0 0 0 255" almostBlack="23 22 20 255" white="255 255 0 255" grey="158 153 149 255" none="0 0 0 0" yellow="255 255 0 255" offwhite="166 164 159 255" dullgreen="216 222 211 255" maize="203 191 87 255" red="255 51 51 255" darkblue="0 85 128 255" blue="0 133 199 255"
P age |6
darkred="128 0 0 255" darkpurple="64 0 64 255" //my colors (this is a comment) pureyellow="255 255 0 255" pureblue="0 0 255 255" puregreen="0 255 0 255" darkyellow="220 220 0 255" darkeryellow="190 190 0 255" darkestyellow="160 160 0 255" darkerblue="0 0 150 255"
Q: Okay, done. Whats the next step? A: You start applying your colors. Q: Okay ... Thats it? A: Yes. Remember, I mentioned, how to define variables and gave you an example? What do you think, would happen if you would change the definitions of other variables, which, makers of original steam skin, have already defined? Thats what you are going to be doing here. Thats called making your own skin. You will apply your own colors (write your own variable names on top of steam original ones past =). Q: I dont understand a single thing you just said. Please, explain better. A: The following example, with images, will make you understand everything easily: Do the following: 1. Open steam.styles with notepad. 2. Hold ctrl and press F. This should now bring up the find menu.
P age |7
3. Paste the following into the bar: Text="209 207 205 255" 4. After the = write your own colors name, which you have defined, for example: Text=mycolor1 5. Save the file. 6. If done properly and you have the skin selected, then restart steam to see the changes (yes theres no other way to see the changes). 7. In case youve missed something (this is a crucial part so I will explain more): This is how the default steam skin looks (you know by heart right now, but you need to see the changes):
P age |8
Some colors appear to be changed already, from light gray to red. Thats all it takes. Q: Anything else? By the way, how would I know where and what should I change? A: Usually, I start working on the texture (clienttexture2.tga in graphics folder) before I start defining the colors in steam.styles file. As for the second question, you either need to use the steam developers mode (see next section) or follow the steps of my guide at section 6.
P age |9
4.
The only use of steam developer mode, is to find out which file holds a variable which you want to change, and in most cases, which variable it is. Unfortunately, it is not capable of telling you everything, but it certainly helps you get started. I wont give examples of how it fails, Ill just show you how to use it. So, assuming you are running steam in dev mode, press F6. This window should, then, appear:
Pressing F6 again, will make it go away. To make use of it, lets pretend that you want to change the view friends button (its colors or whatever):
P a g e | 10
Now, what you do next, is simply click on that button. If the VGUI editor (that window which appears when you press F6) was present (visible) during this, then its contents shouldve changed and should look like this (regardless of the skin which you are using):
P.S. Clicking back on VGUI editor window will not change its contents.
Thats the list of the variables. Only the first 2 matter, though. As in, only if you change the first two, will the color/etc of the view friends button change. So what you do, is ignore the rest and dont change them. On the right:
The files, which contain the variable. Meaning, if you type view_friends in the find bar, while having those files open, youll be able to find it in there. In other words, the variables view_friends and view_friends:hover are located in steamrootdialog.layout file. If you click on one of them in the VGUI editor, itll automatically open the file (in our current case either the steamrootdialog.layout or steam.styles). Unfortunately, it will not open the file, located in
P a g e | 11
your skin folder, instead, it will open the original (default one), which comes with steam install. In other words, youll have to open the corresponding files yourself as these are not the ones which you want to be changing, or think that youll be changing. Theres still some use for it, though. Lets pretend that you forgot which color you used here:
Its safe to say that the color used there is defined as detailbg1. Unfortunately, this is all the use of the dev mode. Helps, but not nearly enough.
P a g e | 12
3. Now, simply write this: start yourdirectory dev In my case: start D:\programos\steam\steam.exe dev 4. Save the file as txt. 5. Change the ending of the file to .bat. Name it steam_dev_mode or whatever else. 6. To test it, first, turn off steam, then double click the .bat file. 7. If done correctly, everything about your steam user interface will remain the same, except theres going to be a new tab, called console:
8. Thats it. You can continue skinning/playing games, etc. Nothing will change except that you can now use F6 to bring up the VGUI editor. If you dont like it for some reason, then you can turn off steam and run it from a regular shortcut. Everything will be back to what it once was, without the console and without the functionality of F6 button.
P a g e | 13
5.
Use of paint.net
Paint.net is a freeware image editing program. More info about it (download links etc) can be found here: http://www.getpaint.net/. This program allows you to pick colors very easily and write the RGB values, needed in steam.styles. Simply run it and look at the colors window (if its not visible, press F8, to make it appear):
P a g e | 14
Now, what you see on the upper left corner is black color (no ****, eh?) and on the right, all the needed RGB numbers written for you. Transparency is also written on the lowest right corner. Lets pretend that you need 3 shades of purple color. Dark, medium, bright. Name your variables/colors in steam.styles first: Darkpurple= Mediumpurple= Brightpurple= Next, get the values by using the program:
As we can see, R=87, G=0, B=127, T=255. So the first color/variable can already be defined: Darkpurple=87 0 127 255 I suggest choosing the remaining ones, not by clicking on that colourful circle, but sliding this one (in our case, to the right):
P a g e | 15
So as you slide it to the sides, the RGB values change, and so does the color.
P a g e | 16
6.
-
Text in light blue is the name of the file where the change should take place, in other words, where the variable should be looked for/defined in etc Text in orange is the variable which you must find in said file Text in bold marks the changes which were/are made
1. At first its wise to decide on which colors you want to use on your skin. You will need RGB values of those colors. Use this website to get them: http://www.tayloredmktg.com/rgb/ Or just google instead. Or use paint.net. I pick my colors as I choose a proper render. This is what Im talking about:
Ill surely use pink and purple colors. P.S. If you like the original steam logo and just care about changing the colors/font, skip to step 3.
P a g e | 17
Ill replace piston.tga file with the render above (maintaining the same height/width as the original steam logo). 2. Next Ill be making a texture, to fit with the above render. The file is called clienttexture2.tga. Ill be making a replacement for it. Anyway, since its done:
We can now finally start making the skin. 3. Lets start by choosing the colors for text and overall look of the client (steam.styles). Here are the colors that Ive chosen so far:
txtpink="196 84 140 255" txtpinkbright="229 103 170 255" txtpinkdark="168 72 120 255" txtbackground="188 0 100 255" dialogpink1="73 5 64 255" dialogpink2="114 8 104 255" ultrapink1="255 0 135 255" ultrapink2="255 114 189 255"
txtpink colors will be the ones for text, while dialogpink for the client. Txtpink will be regular txt colors, txtpinkbright color of highlighted text, txtpinkdark color of disabled text, txtbackground background color of selected text, dialogpink1/2 colors of the client. About Ultrapink1/2 colors: I will change white color into one of these. I chose ultrapink2, cuz it looked better. Thing is, writing white=ultrapink2 will not work. Instead, we must put the same numbers (RGB and transparency) there. White color is used for highlighted text.
P a g e | 18
Now Ill apply them, like this (notice that white color will no longer be white):
white="255 114 189 255" Text=txtpink Text2=txtpink TextDisabled=txtpinkdark TextHover=txtpinkbright TextSelected=txtpinkbright TextentrySelected=white // color of any selected text TextSelectedBG=txtbackground Label=text Label2=text LabelDisabled=textdisabled LabelFocus=txtpinkbright DialogBG=dialogpink1 PropertySheetBG=dialogpink2
And:
P a g e | 19
and change it with your preferred font. For example, you want to use Tahoma font, then you write this:
basefont=Tahoma
P a g e | 20
5. Next, Id like to change the colors of pop up menu (youll understand what Im talking about from the screenshot). To do that, I come up with new colors and define them again:
menucolor="96 0 85 255" menuborder="188 0 103 255" menuselected="133 0 115 255"
6. Now if you take a look at the skin, weve changed quite a lot of stuff. Unfortunately, to fully change everything, this will take A LOT more time. So lets fix a few things in this step instead of making further adjustments. First, Ill remove a part of that annoying bar, which, sort of, blocks my render. The thing is, that we have to open a different file to do that. Look for uinavigatorpanel.layout file in resource/layout directory. Open it with notepad. Search for grouper. The code looks like this:
P a g e | 21
grouper { bgcolor=none render_bg { // background fill 0="fill( x0 + 1, y0 + 1, x0 + 276, y1 - 1, dialogbg )" 1="fill( x0 + 279, y0 + 1, x1 - 1, y1 - 1, dialogbg )" // single pixel fills in the corners 5="fill( x0 + 1, y0 + 1, x0 + 2, y0 + 2, ClientBG )" 6="fill( x1 - 2, y0 + 1, x1 - 1, y0 + 2, ClientBG )" 7="fill( x0 + 1, y1 - 2, x0 + 2, y1 - 1, ClientBG )" 8="fill( x1 - 2, y1 - 2, x1 - 1, y1 - 1, ClientBG )" 9="fill( x0, y0 + 1, x0 + 1, y0 + 2, ClientBG )" 10="fill( x1 - 1, y0 + 1, x1, y0 + 2, ClientBG )" 11="fill( x0, y1 - 2, x0 + 1, y1 - 1, ClientBG )" 12="fill( x1 - 1, y1 - 2, x1, y1 - 1, ClientBG )" 13="fill( x0 + 1, y0, x0 + 2, y0 + 1, ClientBG )" 14="fill( x1 - 2, y0, x1 - 1, y0 + 1, ClientBG )" 15="fill( x0 + 1, y1 - 1, x0 + 2, y1, ClientBG )" 16="fill( x1 - 2, y1 - 1, x1 - 1, y1, ClientBG )"
Anyway, I could just delete the part of the code, which I dont need, but Ill add comments instead, like this:
grouper { bgcolor=none render_bg { // background fill 0="fill( x0 + 1, y0 + 1, x0 + 276, y1 - 1, dialogbg )" //1="fill( x0 + 279, y0 + 1, x1 - 1, y1 - 1, dialogbg )" // single pixel fills in the corners //5="fill( x0 + 1, y0 + 1, x0 + 2, y0 + 2, ClientBG )" //6="fill( x1 - 2, y0 + 1, x1 - 1, y0 + 2, ClientBG )" //7="fill( x0 + 1, y1 - 2, x0 + 2, y1 - 1, ClientBG )" //8="fill( x1 - 2, y1 - 2, x1 - 1, y1 - 1, ClientBG )" //9="fill( x0, y0 + 1, x0 + 1, y0 + 2, ClientBG )" //10="fill( x1 - 1, y0 + 1, x1, y0 + 2, ClientBG )" //11="fill( x0, y1 - 2, x0 + 1, y1 - 1, ClientBG )" //12="fill( x1 - 1, y1 - 2, x1, y1 - 1, ClientBG )" //13="fill( x0 + 1, y0, x0 + 2, y0 + 1, ClientBG )" //14="fill( x1 - 2, y0, x1 - 1, y0 + 1, ClientBG )" //15="fill( x0 + 1, y1 - 1, x0 + 2, y1, ClientBG )" //16="fill( x1 - 2, y1 - 1, x1 - 1, y1, ClientBG )"
P a g e | 22
Now I want the text above to be brighter as well as the search and view. Open steam.styles again. So, for text above, I do this:
"MenuBar MenuButton:frameFocus" { textcolor=text }
I prefer it to be as bright as the rest of the text. If youd like your own color, define and use it instead. For the search text, open uinavigatorpanel.layout again. Look for this, and change it:
LibrarySearch:empty { font-style=italic textcolor=text
I prefer it to be as bright as other text, again. Finally, for the view, open uinavigatorpanel.layout and look for this piece of code:
NavLabelView [!$OSX] { font-family=basefont font-size=14 font-weight=400 textcolor=text font-style=uppercase padding-left=0 } NavLabelView [$OSX] { font-family=basefont font-size=13 font-weight=400 textcolor=text font-style=uppercase padding-left=0
P a g e | 23
7. If we click on grid view, well see that theres one thing left unchanged:
Lets fix that zoom and slider. Open uinavigatorpanel.layout again. Look for this:
NavLabelZoom [!$OSX] { font-family=basefont font-size=14 font-weight=400 textcolor=text font-style=uppercase padding-right=5 } NavLabelZoom [$OSX] { font-family=basefont font-size=13 font-weight=400 textcolor=text font-style=uppercase padding-right=5 }
P a g e | 24
Result:
(the text might not look bright enough, but thats not the point, now that you know how to change the color) 8. Now lets fix the all games button. Open uinavigatorpanel.layout again and look for this:
NavLabel2 [!$OSX] { font-family=basefont font-size=14 font-weight=400 textcolor="TextentrySelected" font-style="outerglow,uppercase" font-outerglow-color="TextGlowHover" font-outerglow-offset=1 font-outerglow-filtersize=3 } NavLabel2 [$OSX] { font-family=basefont font-size=13 font-weight=400 textcolor="TextentrySelected" font-style="outerglow,uppercase" font-outerglow-color="TextGlowHover" font-outerglow-offset=1 font-outerglow-filtersize=3
P a g e | 25
Ill be leaving the white color alone, Ill just delete the glow and make the text less bright:
NavLabel2 [!$OSX] { font-family=basefont font-size=14 font-weight=400 textcolor=text font-style="uppercase" } NavLabel2 [$OSX] { font-family=basefont font-size=13 font-weight=400 textcolor=text font-style="uppercase" } NavLabel2:hover { textcolor="white" font-style="uppercase" } NavLabel2:selected { textcolor="white" }
The result:
P a g e | 26
When highlighted:
9. Now lets make the account text more visible, add a glow even. Well need a new color for the glow, so Ill define it:
txtglow="198 0 53 255"
P a g e | 27
font-style="outerglow,uppercase" font-outerglow-color=txtglow font-outerglow-offset=1 font-outerglow-filtersize=2 font-family=basefont font-size=16 font-weight=600 } URLLabelSimple [$OSX] { textcolor="labelfocus" bgcolor="none" font-family=basefont font-style="outerglow,uppercase" font-outerglow-color=txtglow font-outerglow-offset=1 font-outerglow-filtersize=2 font-family=basefont font-size=16 font-weight=600 } URLLabelSimple:Hover { font-style="outerglow,uppercase,underline" font-outerglow-color=txtglow font-outerglow-offset=3 font-outerglow-filtersize=3 font-family=basefont font-size=16 font-weight=600 }
Result:
Hover:
P a g e | 28
10.
To do this, find and open gamespage_details_subheader.layout file (resource/layout folder). Since theres a lot of code, Ill just post the changes Ive made (in bold):
DetailsButton { inset="-3 0 0 0" font-family=basefont font-size=16 font-weight=400 textcolor="Text" font-style=uppercase bgcolor=none render_bg { // background fill 0="gradient( x0 + 1, y0 + 1, x1 - 1, y1 - 1, btndark, btndark )" 1="fill( x0 + 2, y0, x1 - 2, y0 + 1, text )" // top 2="fill( x0 + 2, y1 - 1, x1 - 2, y1, text )" // bottom 3="fill( x0, y0 + 2, x0 + 1, y1 - 2, text )" // left 4="fill( x1 - 1, y0 + 2, x1, y1 - 2, text )" // right 5="fill( x0 + 1, y0 + 1, x0 + 2, y0 + 2, text )" 6="fill( x1 - 2, y0 + 1, x1 - 1, y0 + 2, text )" 7="fill( x0 + 1, y1 - 2, x0 + 2, y1 - 1, text )" 8="fill( x1 - 2, y1 - 2, x1 - 1, y1 - 1, text )" 9="fill( x0, y0 + 1, x0 + 1, y0 + 2, text )" 10="fill( x1 - 1, y0 + 1, x1, y0 + 2, text )" 11="fill( x0, y1 - 2, x0 + 1, y1 - 1, text )" 12="fill( x1 - 1, y1 - 2, x1, y1 - 1, text )" 13="fill( x0 + 1, y0, x0 + 2, y0 + 1, text )" 14="fill( x1 - 2, y0, x1 - 1, y0 + 1, text )" 15="fill( x0 + 1, y1 - 1, x0 + 2, y1, text )" 16="fill( x1 - 2, y1 - 1, x1 - 1, y1, text )" } } DetailsButton:hover { textcolor="TextHover" bgcolor=none render_bg { // background fill 0="gradient( x0 + 1, y0 + 1, x1 - 1, y1 - 1, btnlight, btnlight )"
P a g e | 29
// lines around 1="fill( x0 + 2, y0, x1 - 2, y0 + 1, TextHover )" // top 2="fill( x0 + 2, y1 - 1, x1 - 2, y1, TextHover )" // bottom 3="fill( x0, y0 + 2, x0 + 1, y1 - 2, TextHover )" // left 4="fill( x1 - 1, y0 + 2, x1, y1 - 2, TextHover )" // right 5="fill( x0 + 1, y0 + 1, x0 + 2, y0 + 2, TextHover )" 6="fill( x1 - 2, y0 + 1, x1 - 1, y0 + 2, TextHover )" 7="fill( x0 + 1, y1 - 2, x0 + 2, y1 - 1, TextHover )" 8="fill( x1 - 2, y1 - 2, x1 - 1, y1 - 1, TextHover )" 9="fill( x0, y0 + 1, x0 + 1, y0 + 2, TextHover )" 10="fill( x1 - 1, y0 + 1, x1, y0 + 2, TextHover )" 11="fill( x0, y1 - 2, x0 + 1, y1 - 1, TextHover )" 12="fill( x1 - 1, y1 - 2, x1, y1 - 1, TextHover )" 13="fill( x0 + 1, y0, x0 + 2, y0 + 1, TextHover )" 14="fill( x1 - 2, y0, x1 - 1, y0 + 1, TextHover )" 15="fill( x0 + 1, y1 - 1, x0 + 2, y1, TextHover )" 16="fill( x1 - 2, y1 - 1, x1 - 1, y1, TextHover )" } }
P a g e | 30
inset="23 0 0 0" font-family=basefont font-size=16 font-weight=400 textcolor="TextHover" font-style=uppercase bgcolor=none render { 1="image( x0 + 6, y0 + 4, x1, y1, graphics/icon_play_hover )" } render_bg { // background fill 0="gradient( x0 + 1, y0 + 1, x1 - 1, y1 - 1, btnlight, btnlight )" // lines around 1="fill( x0 + 2, y0, x1 - 2, y0 + 1, TextHover )" // top 2="fill( x0 + 2, y1 - 1, x1 - 2, y1, TextHover )" // bottom 3="fill( x0, y0 + 2, x0 + 1, y1 - 2, TextHover )" // left 4="fill( x1 - 1, y0 + 2, x1, y1 - 2, TextHover )" // right 5="fill( x0 + 1, y0 + 1, x0 + 2, y0 + 2, TextHover )" 6="fill( x1 - 2, y0 + 1, x1 - 1, y0 + 2, TextHover )" 7="fill( x0 + 1, y1 - 2, x0 + 2, y1 - 1, TextHover )" 8="fill( x1 - 2, y1 - 2, x1 - 1, y1 - 1, TextHover )" 9="fill( x0, y0 + 1, x0 + 1, y0 + 2, TextHover )" 10="fill( x1 - 1, y0 + 1, x1, y0 + 2, TextHover )" 11="fill( x0, y1 - 2, x0 + 1, y1 - 1, TextHover )" 12="fill( x1 - 1, y1 - 2, x1, y1 - 1, TextHover )" 13="fill( x0 + 1, y0, x0 + 2, y0 + 1, TextHover )" 14="fill( x1 - 2, y0, x1 - 1, y0 + 1, TextHover )" 15="fill( x0 + 1, y1 - 1, x0 + 2, y1, TextHover )" 16="fill( x1 - 2, y1 - 1, x1 - 1, y1, TextHover )" } } DetailsInstallButton { inset="23 0 0 0" font-family=basefont font-size=16 font-weight=400 textcolor="Text" font-style=uppercase bgcolor=none render { 1="image( x0 + 6, y0 + 3, x1, y1, graphics/icon_install)" } render_bg { // background fill 0="gradient( x0 + 1, y0 + 1, x1 - 1, y1 - 1, btndark, btndark )" // lines around 1="fill( x0 + 2, y0, x1 - 2, y0 + 1, text )" // top 2="fill( x0 + 2, y1 - 1, x1 - 2, y1, text )" // bottom 3="fill( x0, y0 + 2, x0 + 1, y1 - 2, text )" // left 4="fill( x1 - 1, y0 + 2, x1, y1 - 2, text )" // right 5="fill( x0 + 1, y0 + 1, x0 + 2, y0 + 2, text )" 6="fill( x1 - 2, y0 + 1, x1 - 1, y0 + 2, text )" 7="fill( x0 + 1, y1 - 2, x0 + 2, y1 - 1, text )" 8="fill( x1 - 2, y1 - 2, x1 - 1, y1 - 1, text )"
P a g e | 31
9="fill( x0, y0 + 1, x0 + 1, y0 + 2, text )" 10="fill( x1 - 1, y0 + 1, x1, y0 + 2, text )" 11="fill( x0, y1 - 2, x0 + 1, y1 - 1, text )" 12="fill( x1 - 1, y1 - 2, x1, y1 - 1, text )" 13="fill( x0 + 1, y0, x0 + 2, y0 + 1, text )" 14="fill( x1 - 2, y0, x1 - 1, y0 + 1, text )" 15="fill( x0 + 1, y1 - 1, x0 + 2, y1, text )" 16="fill( x1 - 2, y1 - 1, x1 - 1, y1, text )" } } DetailsInstallButton:hover { inset="23 0 0 0" font-family=basefont font-size=16 font-weight=400 textcolor="TextHover" font-style=uppercase bgcolor=none render { 1="image( x0 + 6, y0 + 3, x1, y1, graphics/icon_install_hover )" } render_bg { // background fill 0="gradient( x0 + 1, y0 + 1, x1 - 1, y1 - 1, btnlight, btnlight )" // lines around 1="fill( x0 + 2, y0, x1 - 2, y0 + 1, TextHover )" // top 2="fill( x0 + 2, y1 - 1, x1 - 2, y1, TextHover )" // bottom 3="fill( x0, y0 + 2, x0 + 1, y1 - 2, TextHover )" // left 4="fill( x1 - 1, y0 + 2, x1, y1 - 2, TextHover )" // right 5="fill( x0 + 1, y0 + 1, x0 + 2, y0 + 2, TextHover )" 6="fill( x1 - 2, y0 + 1, x1 - 1, y0 + 2, TextHover )" 7="fill( x0 + 1, y1 - 2, x0 + 2, y1 - 1, TextHover )" 8="fill( x1 - 2, y1 - 2, x1 - 1, y1 - 1, TextHover )" 9="fill( x0, y0 + 1, x0 + 1, y0 + 2, TextHover )" 10="fill( x1 - 1, y0 + 1, x1, y0 + 2, TextHover )" 11="fill( x0, y1 - 2, x0 + 1, y1 - 1, TextHover )" 12="fill( x1 - 1, y1 - 2, x1, y1 - 1, TextHover )" 13="fill( x0 + 1, y0, x0 + 2, y0 + 1, TextHover )" 14="fill( x1 - 2, y0, x1 - 1, y0 + 1, TextHover )" 15="fill( x0 + 1, y1 - 1, x0 + 2, y1, TextHover )" 16="fill( x1 - 2, y1 - 1, x1 - 1, y1, TextHover )" } } DetailsBuyButton { inset="23 0 0 0" font-family=basefont font-size=16 font-weight=400 textcolor="Text" font-style=uppercase bgcolor=none render { 1="image( x0 + 6, y0 + 3, x1, y1, graphics/icon_buy )" } render_bg {
P a g e | 32
// background fill 0="gradient( x0 + 1, y0 + 1, x1 - 1, y1 - 1, btndark, btndark )" 1="fill( x0 + 2, y0, x1 - 2, y0 + 1, text )" // top 2="fill( x0 + 2, y1 - 1, x1 - 2, y1, text )" // bottom 3="fill( x0, y0 + 2, x0 + 1, y1 - 2, text )" // left 4="fill( x1 - 1, y0 + 2, x1, y1 - 2, text )" // right 5="fill( x0 + 1, y0 + 1, x0 + 2, y0 + 2, text )" 6="fill( x1 - 2, y0 + 1, x1 - 1, y0 + 2, text )" 7="fill( x0 + 1, y1 - 2, x0 + 2, y1 - 1, text )" 8="fill( x1 - 2, y1 - 2, x1 - 1, y1 - 1, text )" 9="fill( x0, y0 + 1, x0 + 1, y0 + 2, text )" 10="fill( x1 - 1, y0 + 1, x1, y0 + 2, text )" 11="fill( x0, y1 - 2, x0 + 1, y1 - 1, text )" 12="fill( x1 - 1, y1 - 2, x1, y1 - 1, text )" 13="fill( x0 + 1, y0, x0 + 2, y0 + 1, text )" 14="fill( x1 - 2, y0, x1 - 1, y0 + 1, text )" 15="fill( x0 + 1, y1 - 1, x0 + 2, y1, text )" 16="fill( x1 - 2, y1 - 1, x1 - 1, y1, text )" } } DetailsBuyButton:hover { inset="23 0 0 0" font-family=basefont font-size=16 font-weight=400 textcolor="TextHover" font-style=uppercase bgcolor=none render { 1="image( x0 + 6, y0 + 3, x1, y1, graphics/icon_buy_hover )" } render_bg { // background fill 0="gradient( x0 + 1, y0 + 1, x1 - 1, y1 - 1, btnlight, btnlight )" // lines around 1="fill( x0 + 2, y0, x1 - 2, y0 + 1, texthover )" // top 2="fill( x0 + 2, y1 - 1, x1 - 2, y1, texthover )" // bottom 3="fill( x0, y0 + 2, x0 + 1, y1 - 2, texthover )" // left 4="fill( x1 - 1, y0 + 2, x1, y1 - 2, texthover )" // right 5="fill( x0 + 1, y0 + 1, x0 + 2, y0 + 2, texthover )" 6="fill( x1 - 2, y0 + 1, x1 - 1, y0 + 2, texthover )" 7="fill( x0 + 1, y1 - 2, x0 + 2, y1 - 1, texthover )" 8="fill( x1 - 2, y1 - 2, x1 - 1, y1 - 1, texthover )" 9="fill( x0, y0 + 1, x0 + 1, y0 + 2, texthover )" 10="fill( x1 - 1, y0 + 1, x1, y0 + 2, texthover )" 11="fill( x0, y1 - 2, x0 + 1, y1 - 1, texthover )" 12="fill( x1 - 1, y1 - 2, x1, y1 - 1, texthover )" 13="fill( x0 + 1, y0, x0 + 2, y0 + 1, texthover )" 14="fill( x1 - 2, y0, x1 - 1, y0 + 1, texthover )" 15="fill( x0 + 1, y1 - 1, x0 + 2, y1, texthover )" 16="fill( x1 - 2, y1 - 1, x1 - 1, y1, texthover )" } }
Result:
P a g e | 33
Hover:
Some notes regarding this: - Weve changed the colors of just a few buttons, not all - I didnt want gradient colors, so I simply chose to use one color, you can define more colors and use them in the gradient - Button borders have the same color as the text within, if you dont like that, define your own colors and use them instead 11. Time to change more buttons. This time, ones which are found in the settings tab. Ill define an extra color since these buttons do have more states:
btnactive="211 0 0 255"
This time, open steam.styles file again. Look for this (the principle will remain the same and I will only display the changes that Ive made due to too much code):
Button { font-family=basefont font-size=13 font-weight=400 textcolor="Text" font-style=uppercase bgcolor=none render_bg { // background fill 0="gradient( x0 + 1, y0 + 1, x1 - 1, y1 - 1, btndark, btndark )" // lines around 1="fill( x0 + 2, y0, x1 - 2, y0 + 1, text )" // top 2="fill( x0 + 2, y1 - 1, x1 - 2, y1, text )" // bottom 3="fill( x0, y0 + 2, x0 + 1, y1 - 2, text )" // left 4="fill( x1 - 1, y0 + 2, x1, y1 - 2, text )" // right // single pixel fills in the corners 5="fill( x0 + 1, y0 + 1, x0 + 2, y0 + 2, text )" 6="fill( x1 - 2, y0 + 1, x1 - 1, y0 + 2, text )"
P a g e | 34
7="fill( x0 + 1, y1 - 2, x0 + 2, y1 - 1, text )" 8="fill( x1 - 2, y1 - 2, x1 - 1, y1 - 1, text )" 9="fill( x0, y0 + 1, x0 + 1, y0 + 2, text )" 10="fill( x1 - 1, y0 + 1, x1, y0 + 2, text )" 11="fill( x0, y1 - 2, x0 + 1, y1 - 1, text )" 12="fill( x1 - 1, y1 - 2, x1, y1 - 1, text )" 13="fill( x0 + 1, y0, x0 + 2, y0 + 1, text )" 14="fill( x1 - 2, y0, x1 - 1, y0 + 1, text )" 15="fill( x0 + 1, y1 - 1, x0 + 2, y1, text )" 16="fill( x1 - 2, y1 - 1, x1 - 1, y1, text )" } } "Page Button" { render_bg { // background fill 0="gradient( x0 + 1, y0 + 1, x1 - 1, y1 - 1, btndark, btndark )" // lines around 1="fill( x0 + 2, y0, x1 - 2, y0 + 1, text )" // top 2="fill( x0 + 2, y1 - 1, x1 - 2, y1, text )" // bottom 3="fill( x0, y0 + 2, x0 + 1, y1 - 2, text )" // left 4="fill( x1 - 1, y0 + 2, x1, y1 - 2, text )" // right // single pixel fills in the corners 5="fill( x0 + 1, y0 + 1, x0 + 2, y0 + 2, text )" 6="fill( x1 - 2, y0 + 1, x1 - 1, y0 + 2, text )" 7="fill( x0 + 1, y1 - 2, x0 + 2, y1 - 1, text )" 8="fill( x1 - 2, y1 - 2, x1 - 1, y1 - 1, text )" 9="fill( x0, y0 + 1, x0 + 1, y0 + 2, text )" 10="fill( x1 - 1, y0 + 1, x1, y0 + 2, text )" 11="fill( x0, y1 - 2, x0 + 1, y1 - 1, text )" 12="fill( x1 - 1, y1 - 2, x1, y1 - 1, text )" 13="fill( x0 + 1, y0, x0 + 2, y0 + 1, text )" 14="fill( x1 - 2, y0, x1 - 1, y0 + 1, text )" 15="fill( x0 + 1, y1 - 1, x0 + 2, y1, text )" 16="fill( x1 - 2, y1 - 1, x1 - 1, y1, text )" } } Button:hover { textcolor="TextHover" render_bg { // background fill // background fill 0="gradient( x0 + 1, y0 + 1, x1 - 1, y1 - 1, btnlight, btnlight )" // lines around 1="fill( x0 + 2, y0, x1 - 2, y0 + 1, texthover )" // top 2="fill( x0 + 2, y1 - 1, x1 - 2, y1, texthover )" // bottom 3="fill( x0, y0 + 2, x0 + 1, y1 - 2, texthover )" // left 4="fill( x1 - 1, y0 + 2, x1, y1 - 2, texthover )" // right // single pixel fills in the corners 5="fill( x0 + 1, y0 + 1, x0 + 2, y0 + 2, texthover )" 6="fill( x1 - 2, y0 + 1, x1 - 1, y0 + 2, texthover )" 7="fill( x0 + 1, y1 - 2, x0 + 2, y1 - 1, texthover )" 8="fill( x1 - 2, y1 - 2, x1 - 1, y1 - 1, texthover )" 9="fill( x0, y0 + 1, x0 + 1, y0 + 2, texthover )" 10="fill( x1 - 1, y0 + 1, x1, y0 + 2, texthover )" 11="fill( x0, y1 - 2, x0 + 1, y1 - 1, texthover )" 12="fill( x1 - 1, y1 - 2, x1, y1 - 1, texthover )" 13="fill( x0 + 1, y0, x0 + 2, y0 + 1, texthover )"
P a g e | 35
14="fill( x1 - 2, y0, x1 - 1, y0 + 1, texthover )" 15="fill( x0 + 1, y1 - 1, x0 + 2, y1, texthover )" 16="fill( x1 - 2, y1 - 1, x1 - 1, y1, texthover )" } } "Page Button:hover" { textcolor="TextHover" render_bg { // background fill 0="gradient( x0 + 1, y0 + 1, x1 - 1, y1 - 1, btnlight, btnlight )" // lines around 1="fill( x0 + 2, y0, x1 - 2, y0 + 1, texthover )" // top 2="fill( x0 + 2, y1 - 1, x1 - 2, y1, texthover )" // bottom 3="fill( x0, y0 + 2, x0 + 1, y1 - 2, texthover )" // left 4="fill( x1 - 1, y0 + 2, x1, y1 - 2, texthover )" // right // single pixel fills in the corners 5="fill( x0 + 1, y0 + 1, x0 + 2, y0 + 2, texthover )" 6="fill( x1 - 2, y0 + 1, x1 - 1, y0 + 2, texthover )" 7="fill( x0 + 1, y1 - 2, x0 + 2, y1 - 1, texthover )" 8="fill( x1 - 2, y1 - 2, x1 - 1, y1 - 1, texthover )" 9="fill( x0, y0 + 1, x0 + 1, y0 + 2, texthover )" 10="fill( x1 - 1, y0 + 1, x1, y0 + 2, texthover )" 11="fill( x0, y1 - 2, x0 + 1, y1 - 1, texthover )" 12="fill( x1 - 1, y1 - 2, x1, y1 - 1, texthover )" 13="fill( x0 + 1, y0, x0 + 2, y0 + 1, texthover )" 14="fill( x1 - 2, y0, x1 - 1, y0 + 1, texthover )" 15="fill( x0 + 1, y1 - 1, x0 + 2, y1, texthover )" 16="fill( x1 - 2, y1 - 1, x1 - 1, y1, texthover )" } } Button:focus { textcolor="TextHover" render_bg { 0="gradient( x0 + 1, y0 + 1, x1 - 1, y1 - 1, btnactive, propertysheetbg )" // lines around 1="fill( x0 + 2, y0, x1 - 2, y0 + 1, texthover )" // top 2="fill( x0 + 2, y1 - 1, x1 - 2, y1, texthover )" // bottom 3="fill( x0, y0 + 2, x0 + 1, y1 - 2, texthover )" // left 4="fill( x1 - 1, y0 + 2, x1, y1 - 2, texthover )" // right // single pixel fills in the corners 5="fill( x0 + 1, y0 + 1, x0 + 2, y0 + 2, texthover )" 6="fill( x1 - 2, y0 + 1, x1 - 1, y0 + 2, texthover )" 7="fill( x0 + 1, y1 - 2, x0 + 2, y1 - 1, texthover )" 8="fill( x1 - 2, y1 - 2, x1 - 1, y1 - 1, texthover )" 9="fill( x0, y0 + 1, x0 + 1, y0 + 2, texthover )" 10="fill( x1 - 1, y0 + 1, x1, y0 + 2, texthover )" 11="fill( x0, y1 - 2, x0 + 1, y1 - 1, texthover )" 12="fill( x1 - 1, y1 - 2, x1, y1 - 1, texthover )" 13="fill( x0 + 1, y0, x0 + 2, y0 + 1, texthover )" 14="fill( x1 - 2, y0, x1 - 1, y0 + 1, texthover )" 15="fill( x0 + 1, y1 - 1, x0 + 2, y1, texthover )" 16="fill( x1 - 2, y1 - 1, x1 - 1, y1, texthover )" } }
P a g e | 36
"Page Button:focus" { textcolor="TextHover" render_bg { 0="gradient( x0 + 1, y0 + 1, x1 - 1, y1 - 1, btnactive, propertysheetbg )" // lines around 1="fill( x0 + 2, y0, x1 - 2, y0 + 1, TextHover)" // top 2="fill( x0 + 2, y1 - 1, x1 - 2, y1, TextHover)" // bottom 3="fill( x0, y0 + 2, x0 + 1, y1 - 2, TextHover)" // left 4="fill( x1 - 1, y0 + 2, x1, y1 - 2, TextHover)" // right // single pixel fills in the corners 5="fill( x0 + 1, y0 + 1, x0 + 2, y0 + 2, TextHover)" 6="fill( x1 - 2, y0 + 1, x1 - 1, y0 + 2, TextHover)" 7="fill( x0 + 1, y1 - 2, x0 + 2, y1 - 1, TextHover)" 8="fill( x1 - 2, y1 - 2, x1 - 1, y1 - 1, TextHover)" 9="fill( x0, y0 + 1, x0 + 1, y0 + 2, TextHover)" 10="fill( x1 - 1, y0 + 1, x1, y0 + 2, TextHover)" 11="fill( x0, y1 - 2, x0 + 1, y1 - 1, TextHover)" 12="fill( x1 - 1, y1 - 2, x1, y1 - 1, TextHover)" 13="fill( x0 + 1, y0, x0 + 2, y0 + 1, TextHover)" 14="fill( x1 - 2, y0, x1 - 1, y0 + 1, TextHover)" 15="fill( x0 + 1, y1 - 1, x0 + 2, y1, TextHover)" 16="fill( x1 - 2, y1 - 1, x1 - 1, y1, TextHover)" } } Button:active // this is the left-mouse-currently-pressed state { textcolor="TextHover" render_bg { // background fill 0="gradient( x0 + 1, y0 + 1, x1 - 1, y1 - 1, DialogBG, propertysheetbg )" // lines around 1="fill( x0 + 2, y0, x1 - 2, y0 + 1, TextHover )" // top 2="fill( x0 + 2, y1 - 1, x1 - 2, y1, TextHover )" // bottom 3="fill( x0, y0 + 2, x0 + 1, y1 - 2, TextHover )" // left 4="fill( x1 - 1, y0 + 2, x1, y1 - 2, TextHover )" // right // single pixel fills in the corners 5="fill( x0 + 1, y0 + 1, x0 + 2, y0 + 2, TextHover )" 6="fill( x1 - 2, y0 + 1, x1 - 1, y0 + 2, TextHover )" 7="fill( x0 + 1, y1 - 2, x0 + 2, y1 - 1, TextHover )" 8="fill( x1 - 2, y1 - 2, x1 - 1, y1 - 1, TextHover )" 9="fill( x0, y0 + 1, x0 + 1, y0 + 2, TextHover )" 10="fill( x1 - 1, y0 + 1, x1, y0 + 2, TextHover )" 11="fill( x0, y1 - 2, x0 + 1, y1 - 1, TextHover )" 12="fill( x1 - 1, y1 - 2, x1, y1 - 1, TextHover )" 13="fill( x0 + 1, y0, x0 + 2, y0 + 1, TextHover )" 14="fill( x1 - 2, y0, x1 - 1, y0 + 1, TextHover )" 15="fill( x0 + 1, y1 - 1, x0 + 2, y1, TextHover )" 16="fill( x1 - 2, y1 - 1, x1 - 1, y1, TextHover )" } } "Page Button:active" { textcolor="TextHover" render_bg { // background fill
P a g e | 37
0="gradient( x0 + 1, y0 + 1, x1 - 1, y1 - 1, DialogBG, propertysheetbg )" // lines around 1="fill( x0 + 2, y0, x1 - 2, y0 + 1, TextHover )" // top 2="fill( x0 + 2, y1 - 1, x1 - 2, y1, TextHover )" // bottom 3="fill( x0, y0 + 2, x0 + 1, y1 - 2, TextHover )" // left 4="fill( x1 - 1, y0 + 2, x1, y1 - 2, TextHover )" // right // single pixel fills in the corners 5="fill( x0 + 1, y0 + 1, x0 + 2, y0 + 2, TextHover )" 6="fill( x1 - 2, y0 + 1, x1 - 1, y0 + 2, TextHover )" 7="fill( x0 + 1, y1 - 2, x0 + 2, y1 - 1, TextHover )" 8="fill( x1 - 2, y1 - 2, x1 - 1, y1 - 1, TextHover )" 9="fill( x0, y0 + 1, x0 + 1, y0 + 2, TextHover )" 10="fill( x1 - 1, y0 + 1, x1, y0 + 2, TextHover )" 11="fill( x0, y1 - 2, x0 + 1, y1 - 1, TextHover )" 12="fill( x1 - 1, y1 - 2, x1, y1 - 1, TextHover )" 13="fill( x0 + 1, y0, x0 + 2, y0 + 1, TextHover )" 14="fill( x1 - 2, y0, x1 - 1, y0 + 1, TextHover )" 15="fill( x0 + 1, y1 - 1, x0 + 2, y1, TextHover )" 16="fill( x1 - 2, y1 - 1, x1 - 1, y1, TextHover )" } } Button:selected { textcolor="TextHover" render_bg { // background fill 0="gradient( x0 + 1, y0 + 1, x1 - 1, y1 - 1, btnactive, propertysheetbg )" // lines around 1="fill( x0 + 2, y0, x1 - 2, y0 + 1, TextHover )" // top 2="fill( x0 + 2, y1 - 1, x1 - 2, y1, TextHover )" // bottom 3="fill( x0, y0 + 2, x0 + 1, y1 - 2, TextHover )" // left 4="fill( x1 - 1, y0 + 2, x1, y1 - 2, TextHover )" // right // single pixel fills in the corners 5="fill( x0 + 1, y0 + 1, x0 + 2, y0 + 2, TextHover )" 6="fill( x1 - 2, y0 + 1, x1 - 1, y0 + 2, TextHover )" 7="fill( x0 + 1, y1 - 2, x0 + 2, y1 - 1, TextHover )" 8="fill( x1 - 2, y1 - 2, x1 - 1, y1 - 1, TextHover )" 9="fill( x0, y0 + 1, x0 + 1, y0 + 2, TextHover )" 10="fill( x1 - 1, y0 + 1, x1, y0 + 2, TextHover )" 11="fill( x0, y1 - 2, x0 + 1, y1 - 1, TextHover )" 12="fill( x1 - 1, y1 - 2, x1, y1 - 1, TextHover )" 13="fill( x0 + 1, y0, x0 + 2, y0 + 1, TextHover )" 14="fill( x1 - 2, y0, x1 - 1, y0 + 1, TextHover )" 15="fill( x0 + 1, y1 - 1, x0 + 2, y1, TextHover )" 16="fill( x1 - 2, y1 - 1, x1 - 1, y1, TextHover )" } } "Page Button:selected" { textcolor="TextHover" render_bg { // background fill 0="gradient( x0 + 1, y0 + 1, x1 - 1, y1 - 1, btnactive, propertysheetbg )" // lines around 1="fill( x0 + 2, y0, x1 - 2, y0 + 1, TextHover )" // top 2="fill( x0 + 2, y1 - 1, x1 - 2, y1, TextHover )" // bottom 3="fill( x0, y0 + 2, x0 + 1, y1 - 2, TextHover )" // left 4="fill( x1 - 1, y0 + 2, x1, y1 - 2, TextHover )" // right
P a g e | 38
// single pixel fills in the corners 5="fill( x0 + 1, y0 + 1, x0 + 2, y0 + 2, TextHover )" 6="fill( x1 - 2, y0 + 1, x1 - 1, y0 + 2, TextHover )" 7="fill( x0 + 1, y1 - 2, x0 + 2, y1 - 1, TextHover )" 8="fill( x1 - 2, y1 - 2, x1 - 1, y1 - 1, TextHover )" 9="fill( x0, y0 + 1, x0 + 1, y0 + 2, TextHover )" 10="fill( x1 - 1, y0 + 1, x1, y0 + 2, TextHover )" 11="fill( x0, y1 - 2, x0 + 1, y1 - 1, TextHover )" 12="fill( x1 - 1, y1 - 2, x1, y1 - 1, TextHover )" 13="fill( x0 + 1, y0, x0 + 2, y0 + 1, TextHover )" 14="fill( x1 - 2, y0, x1 - 1, y0 + 1, TextHover )" 15="fill( x0 + 1, y1 - 1, x0 + 2, y1, TextHover )" 16="fill( x1 - 2, y1 - 1, x1 - 1, y1, TextHover )" } }
- I mentioned that the buttons have more states, meaning, I needed more colors, thats why I defined one more earlier - If youre gonna use a different color for each state, itll get very confusing - If you understand a lot about steam skinning, by now, youll notice that theres one button state which I havent touched. Its the disabled state. This ones what Im talkin about:
The buttons displayed are in disabled state. 12. Moving on, theres one button left unchanged in the settings tab. This one:
P a g e | 39
Its referred to as ComboBox in the steam.styles file. Ill just make the changes and display them:
ComboBox { inset="3 0 0 0" textcolor="Text" font-family=basefont font-size="14" selectedtextcolor="TextEntrySelected" selectedbgcolor="TextSelectedBG" render_bg { // background fill 0="gradient( x0 + 1, y0 + 1, x1 - 1, y1 - 1, btndark, btndark )" // lines around 1="fill( x0 + 2, y0, x1 - 2, y0 + 1, text )" // top 2="fill( x0 + 2, y1 - 1, x1 - 2, y1, text )" // bottom 3="fill( x0, y0 + 2, x0 + 1, y1 - 2, text )" // left 4="fill( x1 - 1, y0 + 2, x1, y1 - 2, text )" // right // single pixel fills in the corners 5="fill( x0 + 1, y0 + 1, x0 + 2, y0 + 2, text )" 6="fill( x1 - 2, y0 + 1, x1 - 1, y0 + 2, text )" 7="fill( x0 + 1, y1 - 2, x0 + 2, y1 - 1, text )" 8="fill( x1 - 2, y1 - 2, x1 - 1, y1 - 1, text )" 9="fill( x0, y0 + 1, x0 + 1, y0 + 2, text )" 10="fill( x1 - 1, y0 + 1, x1, y0 + 2, text )" 11="fill( x0, y1 - 2, x0 + 1, y1 - 1, text )" 12="fill( x1 - 1, y1 - 2, x1, y1 - 1, text )" 13="fill( x0 + 1, y0, x0 + 2, y0 + 1, text )" 14="fill( x1 - 2, y0, x1 - 1, y0 + 1, text )" 15="fill( x0 + 1, y1 - 1, x0 + 2, y1, text )" 16="fill( x1 - 2, y1 - 1, x1 - 1, y1, text )" } } ComboBox:hover { textcolor="Texthover" selectedbgcolor="none" selectedtextcolor="TextHover" render_bg { // background fill 0="gradient( x0 + 1, y0 + 1, x1 - 1, y1 - 1, btnlight, btnlight )" // lines around 1="fill( x0 + 2, y0, x1 - 2, y0 + 1, texthover )" // top 2="fill( x0 + 2, y1 - 1, x1 - 2, y1, texthover )" // bottom 3="fill( x0, y0 + 2, x0 + 1, y1 - 2, texthover )" // left 4="fill( x1 - 1, y0 + 2, x1, y1 - 2, texthover )" // right // single pixel fills in the corners 5="fill( x0 + 1, y0 + 1, x0 + 2, y0 + 2, texthover )" 6="fill( x1 - 2, y0 + 1, x1 - 1, y0 + 2, texthover )" 7="fill( x0 + 1, y1 - 2, x0 + 2, y1 - 1, texthover )" 8="fill( x1 - 2, y1 - 2, x1 - 1, y1 - 1, texthover )" 9="fill( x0, y0 + 1, x0 + 1, y0 + 2, texthover )" 10="fill( x1 - 1, y0 + 1, x1, y0 + 2, texthover )"
P a g e | 40
11="fill( x0, y1 - 2, x0 + 1, y1 - 1, texthover )" 12="fill( x1 - 1, y1 - 2, x1, y1 - 1, texthover )" 13="fill( x0 + 1, y0, x0 + 2, y0 + 1, texthover )" 14="fill( x1 - 2, y0, x1 - 1, y0 + 1, texthover )" 15="fill( x0 + 1, y1 - 1, x0 + 2, y1, texthover )" 16="fill( x1 - 2, y1 - 1, x1 - 1, y1, texthover )" } } ComboBox:focus { textcolor="Texthover" selectedbgcolor="none" selectedtextcolor="TextHover" render_bg { // background fill 0="gradient( x0 + 1, y0 + 1, x1 - 1, y1 - 1, btnactive, propertysheetbg )" // lines around 1="fill( x0 + 2, y0, x1 - 2, y0 + 1, texthover )" // top 2="fill( x0 + 2, y1 - 1, x1 - 2, y1, texthover )" // bottom 3="fill( x0, y0 + 2, x0 + 1, y1 - 2, texthover )" // left 4="fill( x1 - 1, y0 + 2, x1, y1 - 2, texthover )" // right // single pixel fills in the corners 5="fill( x0 + 1, y0 + 1, x0 + 2, y0 + 2, texthover )" 6="fill( x1 - 2, y0 + 1, x1 - 1, y0 + 2, texthover )" 7="fill( x0 + 1, y1 - 2, x0 + 2, y1 - 1, texthover )" 8="fill( x1 - 2, y1 - 2, x1 - 1, y1 - 1, texthover )" 9="fill( x0, y0 + 1, x0 + 1, y0 + 2, texthover )" 10="fill( x1 - 1, y0 + 1, x1, y0 + 2, texthover )" 11="fill( x0, y1 - 2, x0 + 1, y1 - 1, texthover )" 12="fill( x1 - 1, y1 - 2, x1, y1 - 1, texthover )" 13="fill( x0 + 1, y0, x0 + 2, y0 + 1, texthover )" 14="fill( x1 - 2, y0, x1 - 1, y0 + 1, texthover )" 15="fill( x0 + 1, y1 - 1, x0 + 2, y1, texthover )" 16="fill( x1 - 2, y1 - 1, x1 - 1, y1, texthover )" } } ComboBox:focus:hover { textcolor="Texthover" selectedbgcolor="none" selectedtextcolor="TextHover" render_bg { // background fill 0="gradient( x0 + 1, y0 + 1, x1 - 1, y1 - 1, btnactive, propertysheetbg )" // lines around 1="fill( x0 + 2, y0, x1 - 2, y0 + 1, texthover )" // top 2="fill( x0 + 2, y1 - 1, x1 - 2, y1, texthover )" // bottom 3="fill( x0, y0 + 2, x0 + 1, y1 - 2, texthover )" // left 4="fill( x1 - 1, y0 + 2, x1, y1 - 2, texthover )" // right // single pixel fills in the corners 5="fill( x0 + 1, y0 + 1, x0 + 2, y0 + 2, texthover )" 6="fill( x1 - 2, y0 + 1, x1 - 1, y0 + 2, texthover )" 7="fill( x0 + 1, y1 - 2, x0 + 2, y1 - 1, texthover )" 8="fill( x1 - 2, y1 - 2, x1 - 1, y1 - 1, texthover )" 9="fill( x0, y0 + 1, x0 + 1, y0 + 2, texthover )" 10="fill( x1 - 1, y0 + 1, x1, y0 + 2, texthover )" 11="fill( x0, y1 - 2, x0 + 1, y1 - 1, texthover )" 12="fill( x1 - 1, y1 - 2, x1, y1 - 1, texthover )" 13="fill( x0 + 1, y0, x0 + 2, y0 + 1, texthover )"
P a g e | 41
14="fill( x1 - 2, y0, x1 - 1, y0 + 1, texthover )" 15="fill( x0 + 1, y1 - 1, x0 + 2, y1, texthover )" 16="fill( x1 - 2, y1 - 1, x1 - 1, y1, texthover )" } } "Page ComboBox" { render_bg { // background fill 0="gradient( x0 + 1, y0 + 1, x1 - 1, y1 - 1, btndark, btndark )" // lines around 1="fill( x0 + 2, y0, x1 - 2, y0 + 1, text )" // top 2="fill( x0 + 2, y1 - 1, x1 - 2, y1, text )" // bottom 3="fill( x0, y0 + 2, x0 + 1, y1 - 2, text )" // left 4="fill( x1 - 1, y0 + 2, x1, y1 - 2, text )" // right // single pixel fills in the corners 5="fill( x0 + 1, y0 + 1, x0 + 2, y0 + 2, text )" 6="fill( x1 - 2, y0 + 1, x1 - 1, y0 + 2, text )" 7="fill( x0 + 1, y1 - 2, x0 + 2, y1 - 1, text )" 8="fill( x1 - 2, y1 - 2, x1 - 1, y1 - 1, text )" 9="fill( x0, y0 + 1, x0 + 1, y0 + 2, text )" 10="fill( x1 - 1, y0 + 1, x1, y0 + 2, text )" 11="fill( x0, y1 - 2, x0 + 1, y1 - 1, text )" 12="fill( x1 - 1, y1 - 2, x1, y1 - 1, text )" 13="fill( x0 + 1, y0, x0 + 2, y0 + 1, text )" 14="fill( x1 - 2, y0, x1 - 1, y0 + 1, text )" 15="fill( x0 + 1, y1 - 1, x0 + 2, y1, text )" 16="fill( x1 - 2, y1 - 1, x1 - 1, y1, text )" } } "Page ComboBox:focus" { textcolor="Texthover" selectedtextcolor="TextHover" render_bg { // background fill 0="gradient( x0 + 1, y0 + 1, x1 - 1, y1 - 1, btnactive, propertysheetbg )" // lines around 1="fill( x0 + 2, y0, x1 - 2, y0 + 1, texthover )" // top 2="fill( x0 + 2, y1 - 1, x1 - 2, y1, texthover )" // bottom 3="fill( x0, y0 + 2, x0 + 1, y1 - 2, texthover )" // left 4="fill( x1 - 1, y0 + 2, x1, y1 - 2, texthover )" // right // single pixel fills in the corners 5="fill( x0 + 1, y0 + 1, x0 + 2, y0 + 2, texthover )" 6="fill( x1 - 2, y0 + 1, x1 - 1, y0 + 2, texthover )" 7="fill( x0 + 1, y1 - 2, x0 + 2, y1 - 1, texthover )" 8="fill( x1 - 2, y1 - 2, x1 - 1, y1 - 1, texthover )" 9="fill( x0, y0 + 1, x0 + 1, y0 + 2, texthover )" 10="fill( x1 - 1, y0 + 1, x1, y0 + 2, texthover )" 11="fill( x0, y1 - 2, x0 + 1, y1 - 1, texthover )" 12="fill( x1 - 1, y1 - 2, x1, y1 - 1, texthover )" 13="fill( x0 + 1, y0, x0 + 2, y0 + 1, texthover )" 14="fill( x1 - 2, y0, x1 - 1, y0 + 1, texthover )" 15="fill( x0 + 1, y1 - 1, x0 + 2, y1, texthover )" 16="fill( x1 - 2, y1 - 1, x1 - 1, y1, texthover )" } }
P a g e | 42
"Page ComboBox:hover" { textcolor="Texthover" selectedtextcolor="TextHover" render_bg { // background fill 0="gradient( x0 + 1, y0 + 1, x1 - 1, y1 - 1, btnlight, btnlight )" // lines around 1="fill( x0 + 2, y0, x1 - 2, y0 + 1, texthover )" // top 2="fill( x0 + 2, y1 - 1, x1 - 2, y1, texthover )" // bottom 3="fill( x0, y0 + 2, x0 + 1, y1 - 2, texthover )" // left 4="fill( x1 - 1, y0 + 2, x1, y1 - 2, texthover )" // right // single pixel fills in the corners 5="fill( x0 + 1, y0 + 1, x0 + 2, y0 + 2, texthover )" 6="fill( x1 - 2, y0 + 1, x1 - 1, y0 + 2, texthover )" 7="fill( x0 + 1, y1 - 2, x0 + 2, y1 - 1, texthover )" 8="fill( x1 - 2, y1 - 2, x1 - 1, y1 - 1, texthover )" 9="fill( x0, y0 + 1, x0 + 1, y0 + 2, texthover )" 10="fill( x1 - 1, y0 + 1, x1, y0 + 2, texthover )" 11="fill( x0, y1 - 2, x0 + 1, y1 - 1, texthover )" 12="fill( x1 - 1, y1 - 2, x1, y1 - 1, texthover )" 13="fill( x0 + 1, y0, x0 + 2, y0 + 1, texthover )" 14="fill( x1 - 2, y0, x1 - 1, y0 + 1, texthover )" 15="fill( x0 + 1, y1 - 1, x0 + 2, y1, texthover )" 16="fill( x1 - 2, y1 - 1, x1 - 1, y1, texthover )" } } "Page ComboBox:focus:hover" { textcolor="Texthover" selectedtextcolor="TextHover" render_bg { // background fill 0="gradient( x0 + 1, y0 + 1, x1 - 1, y1 - 1, btnactive, propertysheetbg )" // lines around 1="fill( x0 + 2, y0, x1 - 2, y0 + 1, texthover )" // top 2="fill( x0 + 2, y1 - 1, x1 - 2, y1, texthover )" // bottom 3="fill( x0, y0 + 2, x0 + 1, y1 - 2, texthover )" // left 4="fill( x1 - 1, y0 + 2, x1, y1 - 2, texthover )" // right // single pixel fills in the corners 5="fill( x0 + 1, y0 + 1, x0 + 2, y0 + 2, texthover )" 6="fill( x1 - 2, y0 + 1, x1 - 1, y0 + 2, texthover )" 7="fill( x0 + 1, y1 - 2, x0 + 2, y1 - 1, texthover )" 8="fill( x1 - 2, y1 - 2, x1 - 1, y1 - 1, texthover )" 9="fill( x0, y0 + 1, x0 + 1, y0 + 2, texthover )" 10="fill( x1 - 1, y0 + 1, x1, y0 + 2, texthover )" 11="fill( x0, y1 - 2, x0 + 1, y1 - 1, texthover )" 12="fill( x1 - 1, y1 - 2, x1, y1 - 1, texthover )" 13="fill( x0 + 1, y0, x0 + 2, y0 + 1, texthover )" 14="fill( x1 - 2, y0, x1 - 1, y0 + 1, texthover )" 15="fill( x0 + 1, y1 - 1, x0 + 2, y1, texthover )" 16="fill( x1 - 2, y1 - 1, x1 - 1, y1, texthover )" } }
Result:
P a g e | 43
13.
To do that, well have to open lots of different files. Lets start with opening gamespage_details_achievements_locked.layout We change the code like this:
achievementlabelmore { inset="-3 0 0 0" font-size=18 textcolor="Text" font-family=basefont render_bg { // background fill 0="gradient( x0 + 1, y0 + 2, x1 - 4, y1 - 1, dialogbg, propertysheetbg )" // lines around 1="fill( x0 + 2, y0 + 1, x1 - 5, y0 + 2, text )" // top 2="fill( x0 + 2, y1 - 1, x1 - 5, y1, text )" // bottom
P a g e | 44
3="fill( x0 + 0, y0 + 3, x0 + 1, y1 - 2, text )" // left 4="fill( x1 - 4, y0 + 3, x1 - 3, y1 - 2, text )" // right // single pixel fills in the corners 5="fill( x0 + 1, y0 + 2, x0 + 2, y0 + 3, text )" 6="fill( x1 - 5, y0 + 2, x1 - 4, y0 + 3, text )" 7="fill( x0 + 1, y1 - 2, x0 + 2, y1 - 1, text )" 8="fill( x1 - 5, y1 - 2, x1 - 4, y1 - 1, text )" 11="fill( x0, y0 + 2, x0 + 1, y0 + 3, text )" 12="fill( x1 - 4, y0 + 2, x1 - 3, y0 + 3, text )" 13="fill( x0, y1 - 2, x0 + 1, y1 - 1, text )" 14="fill( x1 - 4, y1 - 2, x1 - 3, y1 - 1, text )" 15="fill( x0 + 1, y0 + 1, x0 + 2, y0 + 2, text )" 16="fill( x1 - 5, y0 + 1, x1 - 4, y0 + 2, text )" 17="fill( x0 + 1, y1 - 1, x0 + 2, y1, text )" 18="fill( x1 - 5, y1 - 1, x1 - 4, y1, text )" } } achievementlabelmore:hover { inset="-3 0 0 0" font-size=18 textcolor="TextHover" font-family=basefont render_bg { // background fill 0="gradient( x0 + 1, y0 + 2, x1 - 4, y1 - 1, btnactive, propertysheetbg )" // lines around 1="fill( x0 + 2, y0 + 1, x1 - 5, y0 + 2, texthover )" // top 2="fill( x0 + 2, y1 - 1, x1 - 5, y1, texthover )" // bottom 3="fill( x0 + 0, y0 + 3, x0 + 1, y1 - 2, texthover )" // left 4="fill( x1 - 4, y0 + 3, x1 - 3, y1 - 2, texthover )" // right // single pixel fills in the corners 5="fill( x0 + 1, y0 + 2, x0 + 2, y0 + 3, texthover )" 6="fill( x1 - 5, y0 + 2, x1 - 4, y0 + 3, texthover )" 7="fill( x0 + 1, y1 - 2, x0 + 2, y1 - 1, texthover )" 8="fill( x1 - 5, y1 - 2, x1 - 4, y1 - 1, texthover )" 11="fill( x0, y0 + 2, x0 + 1, y0 + 3, texthover )" 12="fill( x1 - 4, y0 + 2, x1 - 3, y0 + 3, texthover )" 13="fill( x0, y1 - 2, x0 + 1, y1 - 1, texthover )" 14="fill( x1 - 4, y1 - 2, x1 - 3, y1 - 1, texthover )" 15="fill( x0 + 1, y0 + 1, x0 + 2, y0 + 2, texthover )" 16="fill( x1 - 5, y0 + 1, x1 - 4, y0 + 2, texthover )" 17="fill( x0 + 1, y1 - 1, x0 + 2, y1, texthover )" 18="fill( x1 - 5, y1 - 1, x1 - 4, y1, texthover )" } }
Pay attention to the underlined line, I didnt only change the color there. Next, open gamespage_details_friends_list.layout and do the same:
friendlabelmore { inset="-3 0 0 0" font-size=18
P a g e | 45
textcolor="Text" font-family=basefont render_bg { // background fill 0="gradient( x0 + 1, y0 + 2, x1 - 4, y1 - 1, dialogbg, propertysheetbg )" // lines around 1="fill( x0 + 2, y0 + 1, x1 - 5, y0 + 2, text )" // top 2="fill( x0 + 2, y1 - 1, x1 - 5, y1, text )" // bottom 3="fill( x0 + 0, y0 + 3, x0 + 1, y1 - 2, text )" // left 4="fill( x1 - 4, y0 + 3, x1 - 3, y1 - 2, text )" // right // single pixel fills in the corners 5="fill( x0 + 1, y0 + 2, x0 + 2, y0 + 3, text )" 6="fill( x1 - 5, y0 + 2, x1 - 4, y0 + 3, text )" 7="fill( x0 + 1, y1 - 2, x0 + 2, y1 - 1, text )" 8="fill( x1 - 5, y1 - 2, x1 - 4, y1 - 1, text )" 11="fill( x0, y0 + 2, x0 + 1, y0 + 3, text )" 12="fill( x1 - 4, y0 + 2, x1 - 3, y0 + 3, text )" 13="fill( x0, y1 - 2, x0 + 1, y1 - 1, text )" 14="fill( x1 - 4, y1 - 2, x1 - 3, y1 - 1, text )" 15="fill( x0 + 1, y0 + 1, x0 + 2, y0 + 2, text )" 16="fill( x1 - 5, y0 + 1, x1 - 4, y0 + 2, text )" 17="fill( x0 + 1, y1 - 1, x0 + 2, y1, text )" 18="fill( x1 - 5, y1 - 1, x1 - 4, y1, text )" } } friendlabelmore:hover { inset="-3 0 0 0" font-size=18 textcolor="TextHover" font-family=basefont render_bg { // background fill 0="gradient( x0 + 1, y0 + 2, x1 - 4, y1 - 1, btnactive, propertysheetbg )" // lines around 1="fill( x0 + 2, y0 + 1, x1 - 5, y0 + 2, texthover )" // top 2="fill( x0 + 2, y1 - 1, x1 - 5, y1, texthover )" // bottom 3="fill( x0 + 0, y0 + 3, x0 + 1, y1 - 2, texthover )" // left 4="fill( x1 - 4, y0 + 3, x1 - 3, y1 - 2, texthover )" // right // single pixel fills in the corners 5="fill( x0 + 1, y0 + 2, x0 + 2, y0 + 3, texthover )" 6="fill( x1 - 5, y0 + 2, x1 - 4, y0 + 3, texthover )" 7="fill( x0 + 1, y1 - 2, x0 + 2, y1 - 1, texthover )" 8="fill( x1 - 5, y1 - 2, x1 - 4, y1 - 1, texthover )" 11="fill( x0, y0 + 2, x0 + 1, y0 + 3, texthover )" 12="fill( x1 - 4, y0 + 2, x1 - 3, y0 + 3, texthover )" 13="fill( x0, y1 - 2, x0 + 1, y1 - 1, texthover )" 14="fill( x1 - 4, y1 - 2, x1 - 3, y1 - 1, texthover )" 15="fill( x0 + 1, y0 + 1, x0 + 2, y0 + 2, texthover )" 16="fill( x1 - 5, y0 + 1, x1 - 4, y0 + 2, texthover )" 17="fill( x0 + 1, y1 - 1, x0 + 2, y1, texthover )" 18="fill( x1 - 5, y1 - 1, x1 - 4, y1, texthover )" } }
P a g e | 46
screenshotslabelmore { inset="-3 0 0 0" font-size=18 textcolor="Text" font-family=basefont render_bg { // background fill 0="gradient( x0 + 1, y0 + 2, x1 - 4, y1 - 1, dialogbg, propertysheetbg )" // lines around 1="fill( x0 + 2, y0 + 1, x1 - 5, y0 + 2, text )" // top 2="fill( x0 + 2, y1 - 1, x1 - 5, y1, text )" // bottom 3="fill( x0 + 0, y0 + 3, x0 + 1, y1 - 2, text )" // left 4="fill( x1 - 4, y0 + 3, x1 - 3, y1 - 2, text )" // right // single pixel fills in the corners 5="fill( x0 + 1, y0 + 2, x0 + 2, y0 + 3, text )" 6="fill( x1 - 5, y0 + 2, x1 - 4, y0 + 3, text )" 7="fill( x0 + 1, y1 - 2, x0 + 2, y1 - 1, text )" 8="fill( x1 - 5, y1 - 2, x1 - 4, y1 - 1, text )" 11="fill( x0, y0 + 2, x0 + 1, y0 + 3, text )" 12="fill( x1 - 4, y0 + 2, x1 - 3, y0 + 3, text )" 13="fill( x0, y1 - 2, x0 + 1, y1 - 1, text )" 14="fill( x1 - 4, y1 - 2, x1 - 3, y1 - 1, text )" 15="fill( x0 + 1, y0 + 1, x0 + 2, y0 + 2, text )" 16="fill( x1 - 5, y0 + 1, x1 - 4, y0 + 2, text )" 17="fill( x0 + 1, y1 - 1, x0 + 2, y1, text )" 18="fill( x1 - 5, y1 - 1, x1 - 4, y1, text )" } } screenshotslabelmore:hover { inset="-3 0 0 0" font-size=18 textcolor="TextHover" font-family=basefont render_bg { // background fill 0="gradient( x0 + 1, y0 + 2, x1 - 4, y1 - 1, btnactive, propertysheetbg )" // lines around 1="fill( x0 + 2, y0 + 1, x1 - 5, y0 + 2, texthover )" // top 2="fill( x0 + 2, y1 - 1, x1 - 5, y1, texthover )" // bottom 3="fill( x0 + 0, y0 + 3, x0 + 1, y1 - 2, texthover )" // left 4="fill( x1 - 4, y0 + 3, x1 - 3, y1 - 2, texthover )" // right // single pixel fills in the corners 5="fill( x0 + 1, y0 + 2, x0 + 2, y0 + 3, texthover )" 6="fill( x1 - 5, y0 + 2, x1 - 4, y0 + 3, texthover )" 7="fill( x0 + 1, y1 - 2, x0 + 2, y1 - 1, texthover )" 8="fill( x1 - 5, y1 - 2, x1 - 4, y1 - 1, texthover )" 11="fill( x0, y0 + 2, x0 + 1, y0 + 3, texthover )" 12="fill( x1 - 4, y0 + 2, x1 - 3, y0 + 3, texthover )" 13="fill( x0, y1 - 2, x0 + 1, y1 - 1, texthover )" 14="fill( x1 - 4, y1 - 2, x1 - 3, y1 - 1, texthover )" 15="fill( x0 + 1, y0 + 1, x0 + 2, y0 + 2, texthover )" 16="fill( x1 - 5, y0 + 1, x1 - 4, y0 + 2, texthover )" 17="fill( x0 + 1, y1 - 1, x0 + 2, y1, texthover )" 18="fill( x1 - 5, y1 - 1, x1 - 4, y1, texthover )" } } }
P a g e | 47
Result:
Hover:
14.
As you can see detailtxt and detailtxttrans colors are the same, but have different transparency. Anyway, lets apply them (in steam.styles):
GameDetailsBlueTransparent=detailtxt1trans GameDetailsGreenTransparent=detailtxt2trans GameDetailsRedTransparent=detailtxt3trans GameDetailsBlue=detailtxt1 GameDetailsGreen=detailtxt2 GameDetailsRed=detailtxt3
As for applying the remaining 2 colors, were gonna have to open other files. Lets start with gamespage_details_gametitleheader.layout:
P a g e | 48
CDetailsGameTitleHeaderPanel { bgcolor=detailbg1 }
Next, gamespage_details_friends.layout:
friendsdetails { bgcolor=detailbg1 }
Next, gamespage_details_achievements.layout:
achievementsdetails { bgcolor=detailbg2 }
Next, gamespage_details_news.layout:
newsdetails { bgcolor=detailbg1 }
Next, gamespage_details_screenshots.layout:
screenshotsdetails { bgcolor=detailbg2 }
Next, gamespage_details_nonsteam.layout:
nonsteamdetails {
P a g e | 49
bgcolor=detailbg1 }
Results:
P a g e | 50
15.
First, lets change the border colors of the achievement bar. Open gamespage_details_achievements_most_recent.layout:
progressbackground { bgcolor=none render_bg { // lines around 1="fill( x0 + 2, y0, x1 - 2, y0 + 1, ultrapink1 )" // top 2="fill( x0 + 2, y1 - 1, x1 - 2, y1, ultrapink1 )" // bottom 3="fill( x0, y0 + 2, x0 + 1, y1 - 2, ultrapink1 )" // left 4="fill( x1 - 1, y0 + 2, x1, y1 - 2, ultrapink1 )" // right // single pixel fills in the corners 5="fill( x0 + 1, y0 + 1, x0 + 2, y0 + 2, ultrapink1 )" 6="fill( x1 - 2, y0 + 1, x1 - 1, y0 + 2, ultrapink1 )" 7="fill( x0 + 1, y1 - 2, x0 + 2, y1 - 1, ultrapink1 )" 8="fill( x1 - 2, y1 - 2, x1 - 1, y1 - 1, ultrapink1 )" 9="fill( x0, y0 + 1, x0 + 1, y0 + 2, ButtonFace2 )" 10="fill( x1 - 1, y0 + 1, x1, y0 + 2, ButtonFace2 )" 11="fill( x0, y1 - 2, x0 + 1, y1 - 1, ButtonFace2 )" 12="fill( x1 - 1, y1 - 2, x1, y1 - 1, ButtonFace2 )" 13="fill( x0 + 1, y0, x0 + 2, y0 + 1, ButtonFace2 )" 14="fill( x1 - 2, y0, x1 - 1, y0 + 1, ButtonFace2 )" 15="fill( x0 + 1, y1 - 1, x0 + 2, y1, ButtonFace2 )" 16="fill( x1 - 2, y1 - 1, x1 - 1, y1, ButtonFace2 )" } }
P a g e | 51
Lets add a few features, Im mainly talking about the news section. Open gamespage_details_news_item.layout:
newsitem_body { textcolor="Label" selectedtextcolor=txtpinkbright render_bg {} font-size=15 font-family=basefont } "newsitem_body url" { textcolor=txtpinkdark font-size=15 font-style="underline" selectedtextcolor=txtpinkbright } "newsitem_body url:hover" { font-size=15 font-style=underline textcolor=ultrapink2 selectedtextcolor=txtpinkbright } "newsitem_body bold" { font-weight=1000 textcolor="Label" selectedtextcolor=txtpinkbright } more_link { font-size=15 font-style="underline" font-weight=400 font-family=basefont textcolor=menuborder selectedtextcolor=txtpinkbright } more_link:hover { font-style="underline" textcolor=ultrapink1 }
P a g e | 52
Hover Colors:
Selected text:
P a g e | 53
Now, lets change the game list on the left. Mainly the highlight colors and mod/not installed game colors. Lets do it: Ill define 2 more colors:
gameunin1="150 46 33 255" gameunin2="220 46 33 255"
P a g e | 54
textcolor=gameunin1 selectedtextcolor=gameunin2 } "GameItem_Updating:hover" { textcolor=gameunin2 selectedtextcolor=gameunin2 } "GameItem_Updating:selected" { textcolor=gameunin2 selectedtextcolor=gameunin2 } "GameItem_Decrypting" { textcolor=gameunin1 selectedtextcolor=gameunin2 } "GameItem_Decrypting:hover" { textcolor=gameunin2 selectedtextcolor=gameunin2 } "GameItem_Decrypting:selected" { textcolor=gameunin2 selectedtextcolor=gameunin2 } "GameItem_Syncing" { textcolor=gameunin1 selectedtextcolor=gameunin2 } "GameItem_Syncing:hover" { textcolor=gameunin2 selectedtextcolor=gameunin2 } "GameItem_Syncing:selected" { textcolor=gameunin2 selectedtextcolor=gameunin2 }
P a g e | 55
Next, open steamrootdialog_gamespage_details.layout: (I defined a new color, gamelistbg. You can, too, or use an already defined one)
ListPanelSectionHeader { inset="2 0 0 0" textcolor=label font-style="uppercase" render_bg { 0="gradient_horizontal( x0 - 1, y0, x0 + 250, y1 - 1, gamelistbg, none )" } }
P a g e | 56
{ 1="fill( x0 , y0, x1, y1 - 1, gamelistbg )" } } "CGamesPage_Mini ListPanelSectionCollapser" { inset = "0 1 0 1" bgcolor=none render_bg { 1="fill( x0 , y0, x1, y1 - 1, gamelistbg )" } }
Result:
16.
P a g e | 57
{ // background fill 0="fill( x0 + 2, y0 + 3, x1 - 4, y1 + 2, scrolllight )" // lines around 1="fill( x0 + 3, y0 + 2, x1 - 5, y0 + 3, scrolllight )" // top 2="fill( x0 + 3, y1 + 2, x1 - 5, y1 + 3, scrolllight )" // bottom } } ScrollBarButton.up:active { inset="-1 2 0 0" image="graphics/icon_up_hover" render_bg { // background fill 0="fill( x0 + 2, y0 + 3, x1 - 4, y1 + 2, scrolllight )" // lines around 1="fill( x0 + 3, y0 + 2, x1 - 5, y0 + 3, scrolllight )" // top 2="fill( x0 + 3, y1 + 2, x1 - 5, y1 + 3, scrolllight )" // bottom } } ScrollBarButton.up:disabled { inset="-1 2 0 0" image="graphics/icon_up_disabled" render_bg { // background fill 0="fill( x0 + 2, y0 + 3, x1 - 4, y1 + 2, scrolldark )" // lines around 1="fill( x0 + 3, y0 + 2, x1 - 5, y0 + 3, scrolldark )" // top 2="fill( x0 + 3, y1 + 2, x1 - 5, y1 + 3, scrolldark )" // bottom } } ScrollBarButton.down { bgcolor=none inset="-2 0 0 0" image="graphics/icon_down_default" render_bg { // background fill 0="fill( x0 + 2, y0 - 1, x1 - 4, y1 - 3, scrolldark )" // lines around 1="fill( x0 + 3, y0 - 2, x1 - 5, y0 - 1, scrolldark )" // top 2="fill( x0 + 3, y1 - 3, x1 - 5, y1 - 2, scrolldark )" // bottom } } ScrollBarButton.down:hover { inset="-2 0 0 0" image="graphics/icon_down_hover" render_bg { // background fill 0="fill( x0 + 2, y0 - 1, x1 - 4, y1 - 3, scrolllight )" // lines around 1="fill( x0 + 3, y0 - 2, x1 - 5, y0 - 1, scrolllight )" // top
P a g e | 58
2="fill( x0 + 3, y1 - 3, x1 - 5, y1 - 2, scrolllight )" // bottom } } ScrollBarButton.down:active { inset="-2 0 0 0" image="graphics/icon_down_hover" render_bg { // background fill 0="fill( x0 + 2, y0 - 1, x1 - 4, y1 - 3, scrolllight )" // lines around 1="fill( x0 + 3, y0 - 2, x1 - 5, y0 - 1, scrolllight )" // top 2="fill( x0 + 3, y1 - 3, x1 - 5, y1 - 2, scrolllight )" // bottom } } ScrollBarButton.down:disabled { inset="-2 0 0 0" image="graphics/icon_down_hover" render_bg { // background fill 0="fill( x0 + 2, y0 - 1, x1 - 4, y1 - 3, scrolldark )" // lines around 1="fill( x0 + 3, y0 - 2, x1 - 5, y0 - 1, scrolldark )" // top 2="fill( x0 + 3, y1 - 3, x1 - 5, y1 - 2, scrolldark )" // bottom } } ScrollBarButton.left { bgcolor=none inset="1 3 0 0" image="graphics/icon_left_default" render_bg { // center fill 0="fill( x0 + 2, y0 + 5, x1, y1 - 3, scrolldark )" // lines around 1="fill( x0 + 3, y0 + 4, x1 - 1, y0 + 5, scrolldark )" // top 2="fill( x0 + 3, y1 - 3, x1 - 1, y1 - 2, scrolldark )" // bottom } } ScrollBarButton.left:hover { image="graphics/icon_left_hover" inset="1 3 0 0" render_bg { // center fill 0="fill( x0 + 2, y0 + 5, x1, y1 - 3, scrolllight )" // lines around 1="fill( x0 + 3, y0 + 4, x1 - 1, y0 + 5, scrolllight )" // top 2="fill( x0 + 3, y1 - 3, x1 - 1, y1 - 2, scrolllight )" // bottom } }
P a g e | 59
ScrollBarButton.right { bgcolor=none image="graphics/icon_right_default" inset="0 2 0 0" render_bg { // center fill 0="fill( x0, y0 + 5, x1, y1 - 3, scrolldark )" // lines around 1="fill( x0 + 1, y0 + 4, x1 - 2, y0 + 5, scrolldark )" // top 2="fill( x0 + 1, y1 - 3, x1 - 2, y1 - 2, scrolldark )" // bottom } } ScrollBarButton.right:hover { image="graphics/icon_right_hover" inset="0 2 0 0" render_bg { // center fill 0="fill( x0, y0 + 5, x1, y1 - 3, scrolllight )" // lines around 1="fill( x0 + 1, y0 + 4, x1 - 2, y0 + 5, scrolllight )" // top 2="fill( x0 + 1, y1 - 3, x1 - 2, y1 - 2, scrolllight )" // bottom } } ScrollBarHandle //vertical scrollbar thumb { bgcolor=none image="graphics/icon_scroll_handle" render_bg { // center fill 0="fill( x0 + 2, y0 + 6, x1 - 4, y1 - 5, scrolldark )" // lines around 1="fill( x0 + 3, y0 + 5, x1 - 5, y0 + 6, scrolldark )" // top 2="fill( x0 + 3, y1 - 5, x1 - 5, y1 - 4, scrolldark )" // bottom } } "ScrollBarHandle:hover" { image="graphics/icon_scroll_handle_over" render_bg { // center fill 0="fill( x0 + 2, y0 + 6, x1 - 4, y1 - 5, scrolllight )" // lines around 1="fill( x0 + 3, y0 + 5, x1 - 5, y0 + 6, scrolllight )" // top 2="fill( x0 + 3, y1 - 5, x1 - 5, y1 - 4, scrolllight )" // bottom } } "ScrollBarHandle:active" { image="graphics/icon_scroll_handle_over" render_bg { // center fill 0="fill( x0 + 2, y0 + 6, x1 - 4, y1 - 5, scrolllight )"
P a g e | 60
// lines around 1="fill( x0 + 3, y0 + 5, x1 - 5, y0 + 6, scrolllight )" // top 2="fill( x0 + 3, y1 - 5, x1 - 5, y1 - 4, scrolllight )" // bottom } }
"SliderHoriz" //horizontal scrollbar thumb { image="graphics/icon_scroll_handle_horiz" render { // center fill 1="fill( x0 + 2, y0 + 6, x1 - 1, y1 - 3, scrolldark )" // lines around 1="fill( x0 + 3, y0 + 5, x1 - 2, y0 + 6, scrolldark )" // top 2="fill( x0 + 3, y1 - 3, x1 - 2, y1 - 2, scrolldark )" // bottom } } "SliderHoriz:hover" { image="graphics/icon_scroll_handle_over_horiz" render { // center fill 0="fill( x0 + 2, y0 + 6, x1 - 1, y1 - 3, scrolllight )" // lines around 1="fill( x0 + 3, y0 + 5, x1 - 2, y0 + 6, scrolllight )" // top 2="fill( x0 + 3, y1 - 3, x1 - 2, y1 - 2, scrolllight )" // bottom } } "SliderHoriz:active" { image="graphics/icon_scroll_handle_over_horiz" render { // center fill 0="fill( x0 + 2, y0 + 6, x1 - 1, y1 - 3, scrolllight )" // lines around 1="fill( x0 + 3, y0 + 5, x1 - 2, y0 + 6, scrolllight )" // top 2="fill( x0 + 3, y1 - 3, x1 - 2, y1 - 2, scrolllight )" // bottom } } ScrollBarSlider // gutter { bgcolor="none" render_bg { //lines around 1="fill( x0 + 3, y0 + 5, x1 - 5, y0 + 6, buttonborderdisabled )" // top //background fill 2="gradient( x0 + 2, y0 + 6, x1 - 4, y0 + 200, buttonborderdisabled, none)" } }
P a g e | 61
17.
Open gamespage_grid_chrome.layout:
ChromeBorderItem { render { // bgfill 0="gradient( x0 + 12 , y1 - 47, x1 - 18, y1 - 20, btnlight, btndark )" // lines around 1="fill( x0 + 13, y0 + 2, x1 - 19, y0 + 3, ultrapink2 )" // top 2="fill( x0 + 13, y1 - 20, x1 - 19, y1 - 19, ultrapink2 )" // bottom 3="fill( x1 - 18 , y1 - 46, x1 - 17, y1 - 21, ultrapink2 )" //right 4="fill( x0 + 11, y1 - 46, x0 + 12, y1 - 21, ultrapink2 )" //left 5="fill( x0 + 12, y0 + 3, x0 + 13, y0 + 4, ultrapink2 )" 6="fill( x1 - 19, y0 + 3, x1 - 18, y0 + 4, ultrapink2 )" 7="fill( x0 + 12, y1 - 21, x0 + 13, y1 - 20, ultrapink2 )" 8="fill( x1 - 19, y1 - 21, x1 - 18, y1 - 20, ultrapink2 )" 9="fill( x0 + 11, y0 + 3, x0 + 12, y0 + 4, ButtonFace2)" 10="fill( x1 - 18 , y0 + 3, x1 - 17, y0 + 4, ButtonFace2 )" 11="fill( x0 + 11, y1 - 21, x0 + 12, y1 - 20, ButtonFace2 )" 12="fill( x1 - 19, y1 - 20, x1 - 18, y1 - 19, ButtonFace2 )" 13="fill( x0 + 12, y0 + 2, x0 + 13, y0 + 3, ButtonFace2 )" 14="fill( x1 - 19, y0 + 2, x1 - 18, y0 + 3, ButtonFace2 )" 15="fill( x0 + 12, y1 - 20, x0 + 13, y1 - 19, ButtonFace2 )" 16="fill( x1 - 18, y1 - 21, x1 - 17, y1 - 20, ButtonFace2 )"
P a g e | 62
} }
Result:
18.
Done:
19. We can also change the background color of all the game views. Lets start with detailed view. I defined new color for this:
P a g e | 63
darkerdialog="45 3 40 255"
Open steamrootdialog_gamespage_details.layout:
CGamesPage_Details { bgcolor="none" inset="0 0 0 1" render { // lines around, to fix a bug 0="fill( x0 + 3, y0, x1 - 2, y0+1, ButtonBorderDisabled )" // top //gradient to obscure content at top of scrolling region 1="gradient( x0+2, y0 + 1, x1-1, y0 + 16, dialogbg, none )" //gradient to obscure content at bottom of scrolling region 2="gradient( x0+2, y1 - 16, x1-1, y1-1, none, dialogbg )" // single pixel fills in the corners 5="fill( x0 + 2, y0 + 1, x0 + 3, y0 + 2, ButtonBorderDisabled )" 6="fill( x1 - 2, y0 + 1, x1 - 1, y0 + 2, ButtonBorderDisabled )" 7="fill( x0 + 2, y1 - 2, x0 + 3, y1 - 1, ButtonBorderDisabled )" 8="fill( x1 - 2, y1 - 2, x1 - 1, y1 - 1, ButtonBorderDisabled )" } render_bg { 0="gradient( x0+2, y0+2, x1-1, y1 - 1, darkerdialog, darkerdialog )" 1="gradient( x0 +2, y0+2, x1-1, y0 + 20, darkerdialog, darkerdialog )" } }
Result:
P a g e | 64
Result:
P a g e | 65
P a g e | 66
} }
Result:
P.S. The color I chose for the background, is rather dark, so the changes might not be very visible in the screenshots. 20. Lets change the DLC/CDkey viewing panel (screenshot below).
Open steam.styles:
"Page ListPanel" { font-family=basefont font-size=14 font-weight=400 textcolor="Text2" selectedtextcolor="TextSelected" selectedbgcolor="Focus" inset="0 -1 1 1" bgcolor=none render_bg { // background fill 0="gradient( x0 + 1, y0 + 1, x1 - 1, y0 + 80, darkerdialog, darkerdialog )" 1="fill( x0 + 1, y0 + 80, x1 - 1, y1 - 1, darkerdialog )" 2="gradient( x0 + 1, y0 + 1, x1 - 1, y0 + 30, darkerdialog, darkerdialog )" // lines around 3="fill( x0 + 2, y0, x1 - 2, y0 + 1, ButtonBorderDisabled )" // top 4="fill( x0 + 2, y1 - 1, x1 - 2, y1, ButtonBorderDisabled )" // bottom 5="fill( x0, y0 + 2, x0 + 1, y1 - 2, ButtonBorderDisabled )" // left 6="fill( x1 - 1, y0 + 2, x1, y1 - 2, ButtonBorderDisabled )" // right // single pixel fills in the corners
P a g e | 67
7="fill( x0 + 1, y0 + 1, x0 + 2, y0 + 2, ButtonBorderDisabled )" 8="fill( x1 - 2, y0 + 1, x1 - 1, y0 + 2, ButtonBorderDisabled )" 9="fill( x0 + 1, y1 - 2, x0 + 2, y1 - 1, ButtonBorderDisabled )" 10="fill( x1 - 2, y1 - 2, x1 - 1, y1 - 1, ButtonBorderDisabled )" } }
(chose dark color again) 21. Were done with the library views. Now, lets work on friendslist. First, Id like to remove this background:
Open steam.styles:
CFriendsListSectionHeader { bgcolor=none font-family=basefont font-size=14 font-size=13 [$OSX] font-weight=400 textcolor="texthover" inset="0 2 0 0" render_bg { 0="gradient_horizontal( x0-21, y0+1, x0+230, y1+1, none, none )" } }
Done:
P a g e | 68
Now, this step is going to be tricky. Were gonna add a custom image and background color to our friendslist. First, find a piece of code that looks like this (steam.styles):
"CFriendsDialog SectionedListPanelInterior" { bgcolor=none font-family=basefont font-size=14 font-weight=400 textcolor="Text" selectedtextcolor="TextSelected" selectedbgcolor="Focus" shadowtextcolor="TextDisabled" // the color of disabled line items render { //gradient to obscure content at top of scrolling region 0="fill( x0+2, y0, x1, y0 + 2, dialogbg )" 1="gradient( x0+2, y0+2, x1, y0 + 12, dialogbg, none )" //gradient to obscure content at bottom of scrolling region 2="gradient( x0+1, y1 - 18, x1, y1-3, none, almostblack )" 3="fill( x0+1, y1 - 4, x1, y1-1, almostblack )" } render_bg { // background gradient 0="gradient( x0, y0, x1, y0 + 149, dialogbg, AlmostBlack )" 1="fill( x0, y0 + 149, x1, y1 + 1, AlmostBlack )" } }
And delete it whole. Select everything and press delete. Next, find SectionedListPanelCollapser:selected:hover or Slider. Between them add this (Ill include the other code to show you how to do this correctly):
SectionedListPanelCollapser:selected:hover { image="graphics/icon_expand_over" }
P a g e | 69
SectionedListPanelInterior { bgcolor=friendpanelfill render { 0="image( x0, y0, x1, y1, graphics/rider )" } } Slider { font-family=basefont font-size=10 font-weight=400 textcolor="label" font-style=uppercase }
friendpanelfill background color of friendslist; image rider.tga is located in graphics folder and will appear in the friends list. Result:
P a g e | 70
22.
Mind you, the above chat border is missing, but I added it with the underlined code line. Result:
P a g e | 71
Next, lets change the offline/online/ingame colors. Ill be defining 3 colors again and assigning them like this (steam.styles):
// Friends List colors Friends.InGameColor Friends.OnlineColor Friends.OfflineColor friendingame friendonline friendoffline
Now, whats left is to change the friends highlight color (when you hover the cursor over one of your steam friends). Define the color and assign it like this:
Focus3=friendshighlight // background color of highlighted friends
23.
P a g e | 72
5="fill( x0 + 1, y0 + 1, x0 + 2, y0 + 2, menuborder )" 6="fill( x1 - 2, y0 + 1, x1 - 1, y0 + 2, menuborder )" 7="fill( x0 + 1, y1 - 2, x0 + 2, y1 - 1, menuborder )" 8="fill( x1 - 2, y1 - 2, x1 - 1, y1 - 1, menuborder )" 9="fill( x0, y0 + 1, x0 + 1, y0 + 2, menuborder )" 10="fill( x1 - 1, y0 + 1, x1, y0 + 2, menuborder )" 11="fill( x0, y1 - 2, x0 + 1, y1 - 1, menuborder )" 12="fill( x1 - 1, y1 - 2, x1, y1 - 1, menuborder )" 13="fill( x0 + 1, y0, x0 + 2, y0 + 1, menuborder )" 14="fill( x1 - 2, y0, x1 - 1, y0 + 1, menuborder )" 15="fill( x0 + 1, y1 - 1, x0 + 2, y1, menuborder )" 16="fill( x1 - 2, y1 - 1, x1 - 1, y1, menuborder )" } } "Page ProgressBar" { textcolor="Highlight5" bgcolor="none" render { // lines around 1="fill( x0 + 2, y0, x1 - 2, y0 + 1, menuborder )" // top 2="fill( x0 + 2, y1 - 1, x1 - 2, y1, menuborder )" // bottom 3="fill( x0, y0 + 2, x0 + 1, y1 - 2, menuborder )" // left 4="fill( x1 - 1, y0 + 2, x1, y1 - 2, menuborder )" // right // single pixel fills in the corners 5="fill( x0 + 1, y0 + 1, x0 + 2, y0 + 2, menuborder )" 6="fill( x1 - 2, y0 + 1, x1 - 1, y0 + 2, menuborder )" 7="fill( x0 + 1, y1 - 2, x0 + 2, y1 - 1, menuborder )" 8="fill( x1 - 2, y1 - 2, x1 - 1, y1 - 1, menuborder )" 9="fill( x0, y0 + 1, x0 + 1, y0 + 2, menuborder )" 10="fill( x1 - 1, y0 + 1, x1, y0 + 2, menuborder )" 11="fill( x0, y1 - 2, x0 + 1, y1 - 1, menuborder )" 12="fill( x1 - 1, y1 - 2, x1, y1 - 1, menuborder )" 13="fill( x0 + 1, y0, x0 + 2, y0 + 1, menuborder )" 14="fill( x1 - 2, y0, x1 - 1, y0 + 1, menuborder )" 15="fill( x0 + 1, y1 - 1, x0 + 2, y1, menuborder )" 16="fill( x1 - 2, y1 - 1, x1 - 1, y1, menuborder )" } }
Result:
It looks like the downloads menu has its own share of buttons, so lets change them.
P a g e | 73
Open downloadsummarypanel.layout:
PauseButton { inset="23 0 0 0" font-family=basefont font-size=16 font-weight=400 textcolor="Text" font-style=uppercase bgcolor=none render { 1="image( x0 + 6, y0 + 4, x1, y1, graphics/icon_pause )" } render_bg { // background fill 0="gradient( x0 + 1, y0 + 1, x1 - 1, y1 - 1, btndark, btndark )" // lines around 1="fill( x0 + 2, y0, x1 - 2, y0 + 1, text )" // top 2="fill( x0 + 2, y1 - 1, x1 - 2, y1, text )" // bottom 3="fill( x0, y0 + 2, x0 + 1, y1 - 2, text )" // left 4="fill( x1 - 1, y0 + 2, x1, y1 - 2, text )" // right 5="fill( x0 + 1, y0 + 1, x0 + 2, y0 + 2, text )" 6="fill( x1 - 2, y0 + 1, x1 - 1, y0 + 2, text )" 7="fill( x0 + 1, y1 - 2, x0 + 2, y1 - 1, text )" 8="fill( x1 - 2, y1 - 2, x1 - 1, y1 - 1, text )" 9="fill( x0, y0 + 1, x0 + 1, y0 + 2, text )" 10="fill( x1 - 1, y0 + 1, x1, y0 + 2, text )" 11="fill( x0, y1 - 2, x0 + 1, y1 - 1, text )" 12="fill( x1 - 1, y1 - 2, x1, y1 - 1, text )" 13="fill( x0 + 1, y0, x0 + 2, y0 + 1, text )" 14="fill( x1 - 2, y0, x1 - 1, y0 + 1, text )" 15="fill( x0 + 1, y1 - 1, x0 + 2, y1, text )" 16="fill( x1 - 2, y1 - 1, x1 - 1, y1, text )" } } PauseButton:Hover { inset="23 0 0 0" font-family=basefont font-size=16 font-weight=400 textcolor="TextHover" font-style=uppercase bgcolor=none render { 1="image( x0 + 6, y0 + 4, x1, y1, graphics/icon_pause_hover )" } render_bg { // background fill 0="gradient( x0 + 1, y0 + 1, x1 - 1, y1 - 1, btnlight, btnlight )" // lines around 1="fill( x0 + 2, y0, x1 - 2, y0 + 1, TextHover )" // top 2="fill( x0 + 2, y1 - 1, x1 - 2, y1, TextHover )" // bottom 3="fill( x0, y0 + 2, x0 + 1, y1 - 2, TextHover )" // left 4="fill( x1 - 1, y0 + 2, x1, y1 - 2, TextHover )" // right
P a g e | 74
5="fill( x0 + 1, y0 + 1, x0 + 2, y0 + 2, TextHover )" 6="fill( x1 - 2, y0 + 1, x1 - 1, y0 + 2, TextHover )" 7="fill( x0 + 1, y1 - 2, x0 + 2, y1 - 1, TextHover )" 8="fill( x1 - 2, y1 - 2, x1 - 1, y1 - 1, TextHover )" 9="fill( x0, y0 + 1, x0 + 1, y0 + 2, TextHover )" 10="fill( x1 - 1, y0 + 1, x1, y0 + 2, TextHover )" 11="fill( x0, y1 - 2, x0 + 1, y1 - 1, TextHover )" 12="fill( x1 - 1, y1 - 2, x1, y1 - 1, TextHover )" 13="fill( x0 + 1, y0, x0 + 2, y0 + 1, TextHover )" 14="fill( x1 - 2, y0, x1 - 1, y0 + 1, TextHover )" 15="fill( x0 + 1, y1 - 1, x0 + 2, y1, TextHover )" 16="fill( x1 - 2, y1 - 1, x1 - 1, y1, TextHover )" } } ResumeButton { inset="23 0 0 0" font-family=basefont font-size=16 font-weight=400 textcolor="Text" font-style=uppercase bgcolor=none render { 1="image( x0 + 6, y0 + 4, x1, y1, graphics/icon_install )" } render_bg { // background fill 0="gradient( x0 + 1, y0 + 1, x1 - 1, y1 - 1, btndark, btndark )" // lines around 1="fill( x0 + 2, y0, x1 - 2, y0 + 1, text )" // top 2="fill( x0 + 2, y1 - 1, x1 - 2, y1, text )" // bottom 3="fill( x0, y0 + 2, x0 + 1, y1 - 2, text )" // left 4="fill( x1 - 1, y0 + 2, x1, y1 - 2, text )" // right 5="fill( x0 + 1, y0 + 1, x0 + 2, y0 + 2, text )" 6="fill( x1 - 2, y0 + 1, x1 - 1, y0 + 2, text )" 7="fill( x0 + 1, y1 - 2, x0 + 2, y1 - 1, text )" 8="fill( x1 - 2, y1 - 2, x1 - 1, y1 - 1, text )" 9="fill( x0, y0 + 1, x0 + 1, y0 + 2, text )" 10="fill( x1 - 1, y0 + 1, x1, y0 + 2, text )" 11="fill( x0, y1 - 2, x0 + 1, y1 - 1, text )" 12="fill( x1 - 1, y1 - 2, x1, y1 - 1, text )" 13="fill( x0 + 1, y0, x0 + 2, y0 + 1, text )" 14="fill( x1 - 2, y0, x1 - 1, y0 + 1, text )" 15="fill( x0 + 1, y1 - 1, x0 + 2, y1, text )" 16="fill( x1 - 2, y1 - 1, x1 - 1, y1, text )" } } ResumeButton:Hover { inset="23 0 0 0" font-family=basefont font-size=16 font-weight=400 textcolor="TextHover" font-style=uppercase bgcolor=none render {
P a g e | 75
1="image( x0 + 6, y0 + 4, x1, y1, graphics/icon_install_hover )" } render_bg { // background fill 0="gradient( x0 + 1, y0 + 1, x1 - 1, y1 - 1, btnlight, btnlight )" // lines around 1="fill( x0 + 2, y0, x1 - 2, y0 + 1, Texthover )" // top 2="fill( x0 + 2, y1 - 1, x1 - 2, y1, Texthover )" // bottom 3="fill( x0, y0 + 2, x0 + 1, y1 - 2, Texthover )" // left 4="fill( x1 - 1, y0 + 2, x1, y1 - 2, Texthover )" // right 5="fill( x0 + 1, y0 + 1, x0 + 2, y0 + 2, Texthover )" 6="fill( x1 - 2, y0 + 1, x1 - 1, y0 + 2, Texthover )" 7="fill( x0 + 1, y1 - 2, x0 + 2, y1 - 1, Texthover )" 8="fill( x1 - 2, y1 - 2, x1 - 1, y1 - 1, Texthover )" 9="fill( x0, y0 + 1, x0 + 1, y0 + 2, Texthover )" 10="fill( x1 - 1, y0 + 1, x1, y0 + 2, Texthover )" 11="fill( x0, y1 - 2, x0 + 1, y1 - 1, Texthover )" 12="fill( x1 - 1, y1 - 2, x1, y1 - 1, Texthover )" 13="fill( x0 + 1, y0, x0 + 2, y0 + 1, Texthover )" 14="fill( x1 - 2, y0, x1 - 1, y0 + 1, Texthover )" 15="fill( x0 + 1, y1 - 1, x0 + 2, y1, Texthover )" 16="fill( x1 - 2, y1 - 1, x1 - 1, y1, Texthover )" } } }
P a g e | 76
15="fill( x0 + 1, y1 - 1, x0 + 2, y1, text )" 16="fill( x1 - 2, y1 - 1, x1 - 1, y1, text )" } } DetailsLaunchButton:Hover { inset="23 0 0 0" font-family=basefont font-size=16 font-weight=400 textcolor="TextHover" font-style=uppercase bgcolor=none render { 0="image( x0 + 6, y0 + 4, x1, y1, graphics/icon_play_hover )" } render_bg { // background fill 0="gradient( x0 + 1, y0 + 1, x1 - 1, y1 - 1, btnlight, btnlight )" 1="fill( x0 + 2, y0, x1 - 2, y0 + 1, texthover )" // top 2="fill( x0 + 2, y1 - 1, x1 - 2, y1, texthover )" // bottom 3="fill( x0, y0 + 2, x0 + 1, y1 - 2, texthover )" // left 4="fill( x1 - 1, y0 + 2, x1, y1 - 2, texthover )" // right 5="fill( x0 + 1, y0 + 1, x0 + 2, y0 + 2, texthover )" 6="fill( x1 - 2, y0 + 1, x1 - 1, y0 + 2, texthover )" 7="fill( x0 + 1, y1 - 2, x0 + 2, y1 - 1, texthover )" 8="fill( x1 - 2, y1 - 2, x1 - 1, y1 - 1, texthover )" 9="fill( x0, y0 + 1, x0 + 1, y0 + 2, texthover )" 10="fill( x1 - 1, y0 + 1, x1, y0 + 2, texthover )" 11="fill( x0, y1 - 2, x0 + 1, y1 - 1, texthover )" 12="fill( x1 - 1, y1 - 2, x1, y1 - 1, texthover )" 13="fill( x0 + 1, y0, x0 + 2, y0 + 1, texthover )" 14="fill( x1 - 2, y0, x1 - 1, y0 + 1, texthover )" 15="fill( x0 + 1, y1 - 1, x0 + 2, y1, texthover )" 16="fill( x1 - 2, y1 - 1, x1 - 1, y1, texthover )" } } DetailsLaunchButton:Disabled { inset="23 0 0 0" font-family=basefont font-size=16 font-weight=400 textcolor="LabelDisabled" font-style=uppercase bgcolor=none render { 1="image( x0 + 6, y0 + 4, x1, y1, graphics/icon_play )" } render_bg { // background fill 0="fill( x0 + 1, y0 + 1, x1 - 1, y1 - 1, buttonfacedisabled )" // lines around 1="fill( x0 + 2, y0, x1 - 2, y0 + 1, ButtonBorderDisabled )" // top 2="fill( x0 + 2, y1 - 1, x1 - 2, y1, ButtonBorderDisabled )" // bottom
P a g e | 77
3="fill( x0, y0 + 2, x0 + 1, y1 - 2, ButtonBorderDisabled )" // left 4="fill( x1 - 1, y0 + 2, x1, y1 - 2, ButtonBorderDisabled )" // right 5="fill( x0 + 1, y0 + 1, x0 + 2, y0 + 2, ButtonBorderDisabled )" 6="fill( x1 - 2, y0 + 1, x1 - 1, y0 + 2, ButtonBorderDisabled )" 7="fill( x0 + 1, y1 - 2, x0 + 2, y1 - 1, ButtonBorderDisabled )" 8="fill( x1 - 2, y1 - 2, x1 - 1, y1 - 1, ButtonBorderDisabled )" 11="fill( x0, y0 + 1, x0 + 1, y0 + 2, ButtonBorderDisabled2 )" 12="fill( x1 - 1, y0 + 1, x1, y0 + 2, ButtonBorderDisabled2 )" 13="fill( x0, y1 - 2, x0 + 1, y1 - 1, ButtonBorderDisabled2 )" 14="fill( x1 - 1, y1 - 2, x1, y1 - 1, ButtonBorderDisabled2 )" 15="fill( x0 + 1, y0, x0 + 2, y0 + 1, ButtonBorderDisabled2 )" 16="fill( x1 - 2, y0, x1 - 1, y0 + 1, ButtonBorderDisabled2 )" 17="fill( x0 + 1, y1 - 1, x0 + 2, y1, ButtonBorderDisabled2 )" 18="fill( x1 - 2, y1 - 1, x1 - 1, y1, ButtonBorderDisabled2 )" } } SmPauseButton { inset="30 0 0 0" font-family=basefont font-size=16 font-weight=400 textcolor="Text" font-style=uppercase bgcolor=none render_bg { 0="gradient( x0 + 1, y0 + 1, x1 - 1, y1 - 1, btndark, btndark)" // lines around 1="fill( x0 + 2, y0, x1 - 2, y0 + 1, text )" // top 2="fill( x0 + 2, y1 - 1, x1 - 2, y1, text )" // bottom 3="fill( x0, y0 + 2, x0 + 1, y1 - 2, text )" // left 4="fill( x1 - 1, y0 + 2, x1, y1 - 2, text )" // right 5="fill( x0 + 1, y0 + 1, x0 + 2, y0 + 2, text )" 6="fill( x1 - 2, y0 + 1, x1 - 1, y0 + 2, text )" 7="fill( x0 + 1, y1 - 2, x0 + 2, y1 - 1, text )" 8="fill( x1 - 2, y1 - 2, x1 - 1, y1 - 1, text )" 9="fill( x0, y0 + 1, x0 + 1, y0 + 2, text )" 10="fill( x1 - 1, y0 + 1, x1, y0 + 2, text )" 11="fill( x0, y1 - 2, x0 + 1, y1 - 1, text )" 12="fill( x1 - 1, y1 - 2, x1, y1 - 1, text )" 13="fill( x0 + 1, y0, x0 + 2, y0 + 1, text )" 14="fill( x1 - 2, y0, x1 - 1, y0 + 1, text )" 15="fill( x0 + 1, y1 - 1, x0 + 2, y1, text )" 16="fill( x1 - 2, y1 - 1, x1 - 1, y1, text )" } render { 1="image( x0 + 6, y0 + 4, x1, y1, graphics/icon_pause )" } } SmPauseButton:Hover { inset="30 0 0 0" font-family=basefont font-size=16 font-weight=400 textcolor="TextHover" font-style=uppercase bgcolor=none render { 1="image( x0 + 6, y0 + 4, x1, y1, graphics/icon_pause_hover )" }
P a g e | 78
render_bg { // background fill 0="gradient( x0 + 1, y0 + 1, x1 - 1, y1 - 1, btnlight, btnlight )" // lines around 1="fill( x0 + 2, y0, x1 - 2, y0 + 1, texthover )" // top 2="fill( x0 + 2, y1 - 1, x1 - 2, y1, texthover )" // bottom 3="fill( x0, y0 + 2, x0 + 1, y1 - 2, texthover )" // left 4="fill( x1 - 1, y0 + 2, x1, y1 - 2, texthover )" // right 5="fill( x0 + 1, y0 + 1, x0 + 2, y0 + 2, texthover )" 6="fill( x1 - 2, y0 + 1, x1 - 1, y0 + 2, texthover )" 7="fill( x0 + 1, y1 - 2, x0 + 2, y1 - 1, texthover )" 8="fill( x1 - 2, y1 - 2, x1 - 1, y1 - 1, texthover )" 9="fill( x0, y0 + 1, x0 + 1, y0 + 2, texthover )" 10="fill( x1 - 1, y0 + 1, x1, y0 + 2, texthover )" 11="fill( x0, y1 - 2, x0 + 1, y1 - 1, texthover )" 12="fill( x1 - 1, y1 - 2, x1, y1 - 1, texthover )" 13="fill( x0 + 1, y0, x0 + 2, y0 + 1, texthover )" 14="fill( x1 - 2, y0, x1 - 1, y0 + 1, texthover )" 15="fill( x0 + 1, y1 - 1, x0 + 2, y1, texthover )" 16="fill( x1 - 2, y1 - 1, x1 - 1, y1, texthover )" } } SmResumeButton { inset="30 0 0 0" font-family=basefont font-size=16 font-weight=400 textcolor="Text" font-style=uppercase bgcolor=none render_bg { 0="gradient( x0 + 1, y0 + 1, x1 - 1, y1 - 1, btndark, btndark )" // lines around 1="fill( x0 + 2, y0, x1 - 2, y0 + 1, text )" // top 2="fill( x0 + 2, y1 - 1, x1 - 2, y1, text )" // bottom 3="fill( x0, y0 + 2, x0 + 1, y1 - 2, text )" // left 4="fill( x1 - 1, y0 + 2, x1, y1 - 2, text )" // right 5="fill( x0 + 1, y0 + 1, x0 + 2, y0 + 2, text )" 6="fill( x1 - 2, y0 + 1, x1 - 1, y0 + 2, text )" 7="fill( x0 + 1, y1 - 2, x0 + 2, y1 - 1, text )" 8="fill( x1 - 2, y1 - 2, x1 - 1, y1 - 1, text )" 9="fill( x0, y0 + 1, x0 + 1, y0 + 2, text )" 10="fill( x1 - 1, y0 + 1, x1, y0 + 2, text )" 11="fill( x0, y1 - 2, x0 + 1, y1 - 1, text )" 12="fill( x1 - 1, y1 - 2, x1, y1 - 1, text )" 13="fill( x0 + 1, y0, x0 + 2, y0 + 1, text )" 14="fill( x1 - 2, y0, x1 - 1, y0 + 1, text )" 15="fill( x0 + 1, y1 - 1, x0 + 2, y1, text )" 16="fill( x1 - 2, y1 - 1, x1 - 1, y1, text )" } render { 1="image( x0 + 6, y0 + 4, x1, y1, graphics/icon_install )" } } SmResumeButton:Hover { inset="30 0 0 0"
P a g e | 79
font-family=basefont font-size=16 font-weight=400 textcolor="TextHover" font-style=uppercase bgcolor=none render { 1="image( x0 + 6, y0 + 4, x1, y1, graphics/icon_install_hover )" } render_bg { // background fill 0="gradient( x0 + 1, y0 + 1, x1 - 1, y1 - 1, btnlight, btnlight )" // lines around 1="fill( x0 + 2, y0, x1 - 2, y0 + 1, texthover )" // top 2="fill( x0 + 2, y1 - 1, x1 - 2, y1, texthover )" // bottom 3="fill( x0, y0 + 2, x0 + 1, y1 - 2, texthover )" // left 4="fill( x1 - 1, y0 + 2, x1, y1 - 2, texthover )" // right 5="fill( x0 + 1, y0 + 1, x0 + 2, y0 + 2, texthover )" 6="fill( x1 - 2, y0 + 1, x1 - 1, y0 + 2, texthover )" 7="fill( x0 + 1, y1 - 2, x0 + 2, y1 - 1, texthover )" 8="fill( x1 - 2, y1 - 2, x1 - 1, y1 - 1, texthover )" 9="fill( x0, y0 + 1, x0 + 1, y0 + 2, texthover )" 10="fill( x1 - 1, y0 + 1, x1, y0 + 2, texthover )" 11="fill( x0, y1 - 2, x0 + 1, y1 - 1, texthover )" 12="fill( x1 - 1, y1 - 2, x1, y1 - 1, texthover )" 13="fill( x0 + 1, y0, x0 + 2, y0 + 1, texthover )" 14="fill( x1 - 2, y0, x1 - 1, y0 + 1, texthover )" 15="fill( x0 + 1, y1 - 1, x0 + 2, y1, texthover )" 16="fill( x1 - 2, y1 - 1, x1 - 1, y1, texthover )" } } SmRemoveButton { inset="30 0 0 0" font-family=basefont font-size=16 font-weight=400 textcolor="Text" font-style=uppercase bgcolor=none render_bg { 0="gradient( x0 + 1, y0 + 1, x1 - 1, y1 - 1, btndark, btndark )" // lines around 1="fill( x0 + 2, y0, x1 - 2, y0 + 1, text )" // top 2="fill( x0 + 2, y1 - 1, x1 - 2, y1, text )" // bottom 3="fill( x0, y0 + 2, x0 + 1, y1 - 2, text )" // left 4="fill( x1 - 1, y0 + 2, x1, y1 - 2, text )" // right 5="fill( x0 + 1, y0 + 1, x0 + 2, y0 + 2, text )" 6="fill( x1 - 2, y0 + 1, x1 - 1, y0 + 2, text )" 7="fill( x0 + 1, y1 - 2, x0 + 2, y1 - 1, text )" 8="fill( x1 - 2, y1 - 2, x1 - 1, y1 - 1, text )" 9="fill( x0, y0 + 1, x0 + 1, y0 + 2, text )" 10="fill( x1 - 1, y0 + 1, x1, y0 + 2, text )" 11="fill( x0, y1 - 2, x0 + 1, y1 - 1, text )" 12="fill( x1 - 1, y1 - 2, x1, y1 - 1, text )" 13="fill( x0 + 1, y0, x0 + 2, y0 + 1, text )" 14="fill( x1 - 2, y0, x1 - 1, y0 + 1, text )" 15="fill( x0 + 1, y1 - 1, x0 + 2, y1, text )" 16="fill( x1 - 2, y1 - 1, x1 - 1, y1, text )"
P a g e | 80
} render { 1="image( x0 + 6, y0 + 4, x1, y1, graphics/icon_close )" } } SmRemoveButton:Hover { inset="30 0 0 0" font-family=basefont font-size=16 font-weight=400 textcolor="TextHover" font-style=uppercase bgcolor=none render { 1="image( x0 + 6, y0 + 4, x1, y1, graphics/icon_close_hover )" } render_bg { // background fill 0="gradient( x0 + 1, y0 + 1, x1 - 1, y1 - 1, btnlight, btnlight )" // lines around 1="fill( x0 + 2, y0, x1 - 2, y0 + 1, texthover )" // top 2="fill( x0 + 2, y1 - 1, x1 - 2, y1, texthover )" // bottom 3="fill( x0, y0 + 2, x0 + 1, y1 - 2, texthover )" // left 4="fill( x1 - 1, y0 + 2, x1, y1 - 2, texthover )" // right 5="fill( x0 + 1, y0 + 1, x0 + 2, y0 + 2, texthover )" 6="fill( x1 - 2, y0 + 1, x1 - 1, y0 + 2, texthover )" 7="fill( x0 + 1, y1 - 2, x0 + 2, y1 - 1, texthover )" 8="fill( x1 - 2, y1 - 2, x1 - 1, y1 - 1, texthover )" 9="fill( x0, y0 + 1, x0 + 1, y0 + 2, texthover )" 10="fill( x1 - 1, y0 + 1, x1, y0 + 2, texthover )" 11="fill( x0, y1 - 2, x0 + 1, y1 - 1, texthover )" 12="fill( x1 - 1, y1 - 2, x1, y1 - 1, texthover )" 13="fill( x0 + 1, y0, x0 + 2, y0 + 1, texthover )" 14="fill( x1 - 2, y0, x1 - 1, y0 + 1, texthover )" 15="fill( x0 + 1, y1 - 1, x0 + 2, y1, texthover )" 16="fill( x1 - 2, y1 - 1, x1 - 1, y1, texthover )" } }
Result so far:
P a g e | 81
I havent changed anything about the disabled state of one button. Anyways, now Id like to remove those black backgrounds completely. Open the same file (appdownloadpanel.layout):
panelBgColorActive { bgcolor= }
none
Result so far:
Now, lets make that text more readable. Open downloadsummarypanel.layout again:
bigtextlabel { font-family=basefont font-size=18 font-style="uppercase" textcolor=ultrapink2 }
Next, lets change the download graph (the remaining black background). Ill define a new color for that:
downloadbg="91 0 39 255"
Open appdownloadpanel.layout:
P a g e | 82
infoGraphic { bgcolor "none" textcolor white inset="0 3 3 3" render_bg { // background fill 0="fill( x0, y0 + 2, x1 - 1, y1 - 1, downloadbg )" // lines around 1="fill( x0, y0 + 1, x1 - 2, y0 + 2, none )" // top 2="fill( x0 + 1, y1 - 1, x1 - 1, y1, none )" // bottom 3="fill( x0 - 1, y0 + 2, x0, y1 - 2, none )" // left 4="fill( x1 - 1, y0 + 1, x1, y1 - 1, none )" // right // single pixel fills in the corners 5="fill( x0 - 1, y0 + 1, x0, y0 + 2, none )" 6="fill( x1 - 2, y0 + 1, x1 - 1, y0 + 2, none )" 7="fill( x0, y1 - 2, x0 + 1, y1 - 1, none )" 8="fill( x1 - 2, y1 - 2, x1 - 1, y1 - 1, none )" } } test { textcolor ultrapink1 font-family "Arial" font-size="14" font-style="uppercase" padding-left "10" padding-right "20" render_bg { 0="fill ( x0, y0 + 1, x1 , y1, downloadbg2 )" // lines around 1="fill( x1, y0, x1 + 2, y1, none )" 2="fill( x0, y1, x1, y1 + 2, none )" // corner 3="fill( x1, y1 , x1 + 1, y1 + 1, none )" } }
Result so far:
P a g e | 83
All thats left is to change slim progressbar. One of its colors anyway. Open appdownloadpanel.layout again:
SlimProgressBar { render_bg { 0="fill( x0, y0, x1, y1, btnlight )" }
Unfortunately, this doesnt change the same progressbar below, so lets change it as well. Open uistatuspanel.layout:
SlimProgressBar { render_bg { 0="fill( x0, y0, x1, y1, btnlight )" }
Final result:
24. Now lets change the frame colors, of menu windows. To do that, open steam.styles and look for this:
Frame { bgcolor="DialogBG" render { 0="gradient_horizontal( x0, y1 - 1, x1 + 1, y1, dialogbg, ultrapink1 )" //bottom 1="gradient( x1 - 1, y0, x1, y1, darkpurple1, ultrapink1 )" //right 2="gradient_horizontal( x0, y0, x1, y0 + 1, darkpurple2, darkpurple1 )" //top 3="gradient( x0, y0, x0 + 1, y1, darkpurple2, dialogbg )" //left } }
P a g e | 84
Frame:FrameFocus { bgcolor="DialogBG" render { 0="gradient_horizontal( x0, y1 - 1, x1 + 1, y1, dialogbg, ultrapink1 )" //bottom 1="gradient( x1 - 1, y0, x1, y1, darkpurple1, ultrapink1 )" //right 2="gradient_horizontal( x0, y0, x1, y0 + 1, darkpurple2, darkpurple1 )" //top 3="gradient( x0, y0, x0 + 1, y1, darkpurple2, dialogbg )" //left } }
Result:
25.
Open screenshotmanager.layout:
P a g e | 85
ThumbnailSelected { bgcolor=txtpinkbright render { // lines around 1="fill( x0 + 9, y0 + 2, x0 + 10, y1 + 1, ultrapink1 )" 2="fill( x1 + 9, y0 + 2, x1 + 10, y1 + 1, ultrapink1 )" 3="fill( x0 + 9, y0 + 2, x1 + 10, y0 + 3, ultrapink1 )" 4="fill( x0 + 9, y1 + 1, x1 + 10, y1 + 2, ultrapink1 )" } } publishcaption { textcolor=ultrapink2 font-size=17 inset=2 font-style="italic" } publishcaptionprompt { textcolor=ultrapink1 } WrapPanel { inset="10 2 10 2" bgcolor="none" render_bg { // background gradient 0="gradient( x0+1, y0+1, x1-1, y1-2, chatpurple, chatpurple )" 1="gradient( x0+1, y0+1, x1-1, y0 + 31, chatpurple, chatpurple )" // lines around 2="fill( x0, y0 + 1, x0 + 1, y1 - 3, ButtonBorderDisabled )" //left 3="fill( x1 - 1, y0 + 1, x1, y1 - 3, ButtonBorderDisabled )" //right 4="fill( x0 + 2, y0, x1 - 2, y0+1, ButtonBorderDisabled )" //top 5="fill( x0 + 2, y1 - 2, x1 - 2, y1 - 1, ButtonBorderDisabled )" //btm // single pixel fills in the corners 6="fill( x0 + 1, y0, x0 + 2, y0 + 1, ButtonBorderDisabled )" //UL 7="fill( x1 - 2, y0, x1 - 1, y0 + 1, ButtonBorderDisabled )" //UR 8="fill( x0 + 1, y1 - 3, x0 + 2, y1 - 2, ButtonBorderDisabled )" 9="fill( x1 - 2, y1 - 3, x1 - 1, y1 - 2, ButtonBorderDisabled )" } } ScreenshotLoadingThrobber { minimum-width=100 minimum-height=75 bgcolor=btnlight }
Result:
P a g e | 86
26.
You can change it freely, the options are written in the comments. Ill make such changes:
Notifications.PanelPosition "BottomLeft" Notifications.SlideDirection "Horizontal" Notifications.DisplayTime "9.0"
Now, its time to change the notification itself. Ill add a frame and make it transparent. First, lets define 2 transparent colors:
noticepurple1="91 0 79 200" noticepurple2="61 0 53 180"
Next, in steam.styles:
P a g e | 87
Notification { font-family=basefont font-size=15 font-weight=400 bgcolor=none render_bg { 0="gradient( x0+1, y0, x1-1, y0+80, noticepurple1, noticepurple2 )" 0="gradient_horizontal( x0 + 1, y1 - 1, x1 -1, y1, ultrapink1, ultrapink1 )" // bottom 1="gradient( x1 - 1, y0 + 1, x1, y1 - 1, ultrapink2, ultrapink1 )" // right 2="gradient_horizontal( x0 + 1, y0, x1 - 1, y0 + 1, ultrapink2, ultrapink2 )" // top 3="gradient( x0, y0 + 1, x0 + 1, y1 - 1, ultrapink2, ultrapink1 )" // left // single pixel fills in the corners 4="fill( x0 + 1, y0 + 1, x0 + 2, y0 + 2, clientbg )" 5="fill( x1 - 2, y0 + 1, x1 - 1, y0 + 2, clientbg )" 6="fill( x0 + 1, y1 - 2, x0 + 2, y1 - 1, clientbg )" 7="fill( x1 - 2, y1 - 2, x1 - 1, y1 - 1, clientbg )" } render {} corner_rounding=1 }
Result:
27. Whats left to change, are ingame menu colors and a few minor fixes. Lets change the ingame menu first. Define 2 more colors for said menu:
ingamepurple1="76 0 66 255" ingamepurple2="53 0 45 255"
P a g e | 88
Notifications.PanelPosition
detailsbox {
"BottomLeft"
Result:
28. Now, for the finishing touches, change all these colors, with your preferred ones:
ButtonFace=dialogpink2 ButtonFace2=dialogpink2 // for use in main client list panel column header, some button states ButtonFace3=dialogpink2 // button cornering pixels ButtonFaceDisabled="none" ButtonFaceHover=dialoghighlight /// hover! ButtonFaceActive=dialoghighlight // not sure what this state is... ButtonFaceFocus=dialoghighlight // keyboard focus ButtonFaceActiveFocus=dialoghighlight // this is the default choice ButtonBorder=ultrapink3 ButtonBorderPage=ultrapink3
P a g e | 89
//gradient to obscure content at bottom of scrolling region 1="gradient( x0, y1 - 9, x1+1, y1-1, none, dialogbg )" } render_bg {
P a g e | 90
// background fill 0="gradient( x0 + 1, y0 + 1, x1 - 1, y0 +80, darkerdialog, darkerdialog )" 1="fill( x0 + 1, y0 + 80, x1 - 1, y1 - 1, darkerdialog )" 2="gradient( x0 + 1, y0 + 1, x1 - 1, y0 + 30, darkerdialog, darkerdialog )" // lines around 3="fill( x0 + 2, y0, x1 - 2, y0 + 1, ButtonBorderDisabled )" // top 4="fill( x0 + 2, y1 - 1, x1 - 2, y1, ButtonBorderDisabled )" // bottom 5="fill( x0, y0 + 2, x0 + 1, y1 - 2, ButtonBorderDisabled )" // left 6="fill( x1 - 1, y0 + 2, x1, y1 - 2, ButtonBorderDisabled )" // right // single pixel fills in the corners 7="fill( x0 + 1, y0 + 1, x0 + 2, y0 + 2, ButtonBorderDisabled )" 8="fill( x1 - 2, y0 + 1, x1 - 1, y0 + 2, ButtonBorderDisabled )" 9="fill( x0 + 1, y1 - 2, x0 + 2, y1 - 1, ButtonBorderDisabled )" 10="fill( x1 - 2, y1 - 2, x1 - 1, y1 - 1, ButtonBorderDisabled )" 11="fill( x0, y0 + 1, x0 + 1, y0 + 2, ButtonBorderDisabled2 )" 12="fill( x1 - 1, y0 + 1, x1, y0 + 2, ButtonBorderDisabled2 )" 13="fill( x0, y1 - 2, x0 + 1, y1 - 1, ButtonBorderDisabled2 )" 14="fill( x1 - 1, y1 - 2, x1, y1 - 1, ButtonBorderDisabled2 )" 15="fill( x0 + 1, y0, x0 + 2, y0 + 1, ButtonBorderDisabled2 )" 16="fill( x1 - 2, y0, x1 - 1, y0 + 1, ButtonBorderDisabled2 )" 17="fill( x0 + 1, y1 - 1, x0 + 2, y1, ButtonBorderDisabled2 )" 18="fill( x1 - 2, y1 - 1, x1 - 1, y1, ButtonBorderDisabled2 )" } } "Page CheckButtonList" { inset="1 1 1 1" textcolor="text2" bgcolor=none render_bg { // background fill 0="gradient( x0 + 1, y0 + 1, x1 - 1, y0 +80, darkerdialog, darkerdialog )" 1="fill( x0 + 1, y0 + 80, x1 - 1, y1 - 1, darkerdialog)" 2="gradient( x0 + 1, y0 + 1, x1 - 1, y0 + 30, darkerdialog, darkerdialog )" // lines around 3="fill( x0 + 2, y0, x1 - 2, y0 + 1, ButtonBorderDisabled )" // top 4="fill( x0 + 2, y1 - 1, x1 - 2, y1, ButtonBorderDisabled )" // bottom 5="fill( x0, y0 + 2, x0 + 1, y1 - 2, ButtonBorderDisabled )" // left 6="fill( x1 - 1, y0 + 2, x1, y1 - 2, ButtonBorderDisabled )" // right // single pixel fills in the corners 7="fill( x0 + 1, y0 + 1, x0 + 2, y0 + 2, ButtonBorderDisabled )" 8="fill( x1 - 2, y0 + 1, x1 - 1, y0 + 2, ButtonBorderDisabled )" 9="fill( x0 + 1, y1 - 2, x0 + 2, y1 - 1, ButtonBorderDisabled )" 10="fill( x1 - 2, y1 - 2, x1 - 1, y1 - 1, ButtonBorderDisabled )" 11="fill( x0, y0 + 1, x0 + 1, y0 + 2, ButtonBorderDisabled2 )" 12="fill( x1 - 1, y0 + 1, x1, y0 + 2, ButtonBorderDisabled2 )" 13="fill( x0, y1 - 2, x0 + 1, y1 - 1, ButtonBorderDisabled2 )" 14="fill( x1 - 1, y1 - 2, x1, y1 - 1, ButtonBorderDisabled2 )" 15="fill( x0 + 1, y0, x0 + 2, y0 + 1, ButtonBorderDisabled2 )" 16="fill( x1 - 2, y0, x1 - 1, y0 + 1, ButtonBorderDisabled2 )" 17="fill( x0 + 1, y1 - 1, x0 + 2, y1, ButtonBorderDisabled2 )" 18="fill( x1 - 2, y1 - 1, x1 - 1, y1, ButtonBorderDisabled2 )" } } "Page CheckButtonList:scrollbar" {
P a g e | 91
inset="1 1 1 1" textcolor="text2" bgcolor=none render { //gradient to obscure content at top of scrolling region 0="gradient( x0+1, y0, x1+1, y0 + 6, dialogbg, none )"
//gradient to obscure content at bottom of scrolling region 1="gradient( x0, y1 - 9, x1+1, y1-1, none, dialogbg )" } render_bg { // background fill 0="gradient( x0 + 1, y0 + 1, x1 - 1, y0 +80, darkerdialog, darkerdialog )" 1="fill( x0 + 1, y0 + 80, x1 - 1, y1 - 1, darkerdialog )" 2="gradient( x0 + 1, y0 + 1, x1 - 1, y0 + 30, darkerdialog, darkerdialog )" // lines around 3="fill( x0 + 2, y0, x1 - 2, y0 + 1, ButtonBorderDisabled )" // top 4="fill( x0 + 2, y1 - 1, x1 - 2, y1, ButtonBorderDisabled )" // bottom 5="fill( x0, y0 + 2, x0 + 1, y1 - 2, ButtonBorderDisabled )" // left 6="fill( x1 - 1, y0 + 2, x1, y1 - 2, ButtonBorderDisabled )" // right // single pixel fills in the corners 7="fill( x0 + 1, y0 + 1, x0 + 2, y0 + 2, ButtonBorderDisabled )" 8="fill( x1 - 2, y0 + 1, x1 - 1, y0 + 2, ButtonBorderDisabled )" 9="fill( x0 + 1, y1 - 2, x0 + 2, y1 - 1, ButtonBorderDisabled )" 10="fill( x1 - 2, y1 - 2, x1 - 1, y1 - 1, ButtonBorderDisabled )" 11="fill( x0, y0 + 1, x0 + 1, y0 + 2, ButtonBorderDisabled2 )" 12="fill( x1 - 1, y0 + 1, x1, y0 + 2, ButtonBorderDisabled2 )" 13="fill( x0, y1 - 2, x0 + 1, y1 - 1, ButtonBorderDisabled2 )" 14="fill( x1 - 1, y1 - 2, x1, y1 - 1, ButtonBorderDisabled2 )" 15="fill( x0 + 1, y0, x0 + 2, y0 + 1, ButtonBorderDisabled2 )" 16="fill( x1 - 2, y0, x1 - 1, y0 + 1, ButtonBorderDisabled2 )" 17="fill( x0 + 1, y1 - 1, x0 + 2, y1, ButtonBorderDisabled2 )" 18="fill( x1 - 2, y1 - 1, x1 - 1, y1, ButtonBorderDisabled2 )" }
P a g e | 92
29. Finally, lets change one more glow on those menu buttons (screenshot below). Open uinavigatorpanel.layout:
CUINavButton:hover { textcolor="Text" font-style="outerglow,uppercase" font-outerglow-color=txtglow font-outerglow-offset=2 font-outerglow-filtersize=35 } CUINavButton:selected { textcolor="white" bgcolor=none font-style="outerglow,uppercase" font-outerglow-color=txtglow font-outerglow-offset=3 font-outerglow-filtersize=55 }
Result:
P a g e | 93
P a g e | 94
// lines around 1="fill( x0 + 1, y0, x1 - 1, y0 + 1, focus2 )" // top 2="fill( x0 + 1, y1 - 1, x1 - 1, y1, focus )" // bottom 3="gradient( x0, y0 + 1, x0 + 1, y1 - 1, focus2, focus )" // left 4="gradient( x1 - 1, y0 + 1, x1, y1 - 1, focus2, focus )" // right }
Instead of focus/focus2, write your own color names (variables). 30. Now, theres technically nothing left to change. Except for the various icons, but this concludes all the coding.
P a g e | 95
P a g e | 96
ingamepurple1="76 0 66 255" // self explanatory ingamepurple2="53 0 45 255" // self explanatory groupertrans="127 0 110 150" // self explanatory
Those are all the colors which Ive used. With the way I assigned them in every file, all you have to do is make same amount of your own colors, and assign them on top of these. For example, you have defined a new color:
Mycolor123=25 26 54 255
Youll change the color of most of the text if you assign it like this:
Txtpink= Mycolor123
And so on. Now you might be wondering ... Whats the catch? Its that you no longer need to search for some files in layout folder or whatever. All you basicly need to do is change the content of a single file steam.styles. Unfortunately: - Its going to be tricky, but faster than following the whole guide - Not likely going to work with any other user made skins, except with this one (Rider theme) If somethings wrong and your color doesnt appear the way it should (unlikely, but youll never know), then copy the RGBT values, instead of the color/variable name. Like this:
Txtpink=25 26 54 255
P a g e | 97
8.
Just one simple trick. If you put a picture into the friendlist, itll probably look lame, like this:
P a g e | 98
To make it, so that your friends/groups would be visible, you have to reduce transparency of this image. You can do that with paint.net: 1. Open the image in paint.net and press properties:
3. Result:
P a g e | 99
P a g e | 100
9.
Known bugs/errors
When changing piston.tga with your preferred image, youll surely come across this error:
The trick here is to reduce the contrast of said image. There is no designed amount by how much you should reduce it, though. You can do this with paint.net: 1. Open the said image in paint.net. 2. Go to Adjustments->Brightness/Contrast 3. I reduced it by 39 this time:
4. Result:
P a g e | 101