[guide] how to make a steam skin(2)

101
[Guide] How to make a steam skin Contents: 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)

Upload: jmcmatrixs

Post on 21-Apr-2015

3.201 views

Category:

Documents


6 download

DESCRIPTION

* 100% Credit tohttp://forums.steampowered.com/forums/member.php?u=751099 *Some notes about the guide:- 101 pages long. Main reasons why are: copy pasted the code for easy recognition (it might be hard at times to find what needs to be changed, so this really helps); lazy microsoft word formating- tl;dr version included, but, let's face it, that's not the real guide- make sure you have bookmarks menu open in your pdf viewer for ease of browsing/reading the document- it's mainly all about changing the colors/font, while keeping the original steam skin features the same- most files, other than steam.styles and gameoverlay.styles won't be found in your steam installation directory. They are cached in some .gcf file (I forgot which, lol). In any case, you can either download the default files provided above or download some random user made skin and copy those files. Then make the changes provided in the guide. OR you can find some gcf extractor to get access to those files...General notes:- I only focused on programming, as in, altering the code. The icons can be found in graphics folder and changed with any image editor- Be wise and define each and every color in steam.styles. This way it's going to be very easy to change/find it later etc- if you have at least a bit of knowledge about html/php/c++/css, making your own skin should be real easy (the whole inconvenience is caused by notepad, imo)- running steam in offline mode will make you see the changes you've made faster, as steam itself restarts faster in this mode- Rider theme skin can be found in this thread: http://forums.steampowered.com/forums/showthread.php?t=2119920If something's unclear and if you have any questions, you can ask.It might not be the best guide, but it's the 1st ever? Somebody had to do it :P

TRANSCRIPT

Page 1: [Guide] How to Make a Steam Skin(2)

[Guide] How to make a steam skin

Contents:

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)

Page 2: [Guide] How to Make a Steam Skin(2)

P a g e | 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, you’ll be able to make a skin

with: most colors changed, font of your choice, image(s) of your choice.

Page 3: [Guide] How to Make a Steam Skin(2)

P a g e | 3

2. Getting started FAQ

Q: What do I need to get started?

A: First, I’d 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 you’re planning of using it in your skin later. If you

would like to keep the original steam logo, then just pick the colors.

Q: It’s 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 you’re done, or if you like the original texture, skip to

either advanced faq or to section 6.

Page 4: [Guide] How to Make a Steam Skin(2)

P a g e | 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. Let’s 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"

That’s 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, it’s pretty easy to define your own. Let’s look at the given parameters of one of the steam’s 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, it’s important not to have 2 variables with the same name,

regardless if they have different values.

Page 5: [Guide] How to Make a Steam Skin(2)

P a g e | 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, 2

nd – green, 3

rd – 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, there’s no restrictions. It’s wise to keep transparency at 255 most

of the time.

Q: Okay, let’s 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"

Page 6: [Guide] How to Make a Steam Skin(2)

P a g e | 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"

a few things to take a notice of: - a comment always starts with two slashes, after that write anything you want,

for example: //my comment.

- a comment is going to be ignored when steam reads the steam.styles file, it’s

only purpose is to make bookmarks.

- you can make as many comments as you want.

- colors (any kind of variables, their definitions and/or text, anything and

everything) will be ignored after //.

- it’s wise to define every color in steam.styles file, so that, if you don’t like

something, you could easily find it and tweak it to your liking.

Q: Okay, done. What’s the next step?

A: You start applying your colors.

Q: Okay ... That’s 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? That’s what you are going to be doing here.

That’s 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 don’t 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.

Page 7: [Guide] How to Make a Steam Skin(2)

P a g e | 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 – there’s no other way to see the changes). 7. In case you’ve 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):

After writing this (color “red” is already defined by default):

Text=red

Page 8: [Guide] How to Make a Steam Skin(2)

P a g e | 8

And saving the steam.styles file, we get this result:

Some colors appear to be changed already, from light gray to red.

That’s 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.

Page 9: [Guide] How to Make a Steam Skin(2)

P a g e | 9

4. Steam developer mode

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 won’t give examples of how it fails, I’ll 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, let’s pretend that you want to change the view friends button (it’s colors or whatever):

Page 10: [Guide] How to Make a Steam Skin(2)

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 it’s contents should’ve 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 it’s contents.

Let’s discuss what’s on the left first:

That’s 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 don’t 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, you’ll 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, it’ll automatically

open the file (in our current case either the steamrootdialog.layout

or steam.styles). Unfortunately, it will not open the file, located in

Page 11: [Guide] How to Make a Steam Skin(2)

P a g e | 11

your skin folder, instead, it will open the original (default one),

which comes with steam install.

In other words, you’ll have to open the corresponding files yourself

as these are not the ones which you want to be changing, or think that

you’ll be changing.

There’s still some use for it, though. Let’s pretend that you forgot

which color you used here:

Press F6 and click on it. If done correctly:

Then look at the contents of VGUI editor:

It’s 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.

4.1. Making a batch file

This will make running steam in developers mode, very easy. Just do the following:

1. Open notepad. 2. Find out where the file steam.exe is located (we will need the full

link). Copy the full link. In my case it’s:

D:\programos\steam\steam.exe

Page 12: [Guide] How to Make a Steam Skin(2)

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 there’s going to be a new tab, called

console:

8. That’s 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 don’t 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.

Page 13: [Guide] How to Make a Steam Skin(2)

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 it’s not visible, press F8, to make it appear):

Nothing special, until you press more button:

Page 14: [Guide] How to Make a Steam Skin(2)

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.

Let’s 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):

Page 15: [Guide] How to Make a Steam Skin(2)

P a g e | 15

So as you slide it to the sides, the RGB values change, and so does the

color.

This way, we can easily define our colors.

Page 16: [Guide] How to Make a Steam Skin(2)

P a g e | 16

6. Making of Rider theme skin

- 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 it’s 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 I’m

talking about:

I’ll 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.

Page 17: [Guide] How to Make a Steam Skin(2)

P a g e | 17

I’ll replace piston.tga file with the render above (maintaining the

same height/width as the original steam logo).

2. Next I’ll be making a texture, to fit with the above render. The file is

called clienttexture2.tga. I’ll be making a replacement for it.

Anyway, since it’s done:

We can now finally start making the skin.

3. Let’s start by choosing the colors for text and overall look of the

client (steam.styles).

Here are the colors that I’ve 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.

Page 18: [Guide] How to Make a Steam Skin(2)

P a g e | 18

Now I’ll 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

That’s about it, let’s see the results:

And:

Page 19: [Guide] How to Make a Steam Skin(2)

P a g e | 19

4. To change the font, just find this line: basefont="Arial"

and change it with your preferred font. For example, you want to use

Tahoma font, then you write this: basefont=”Tahoma”

Restart steam to see the results (after saving steam.styles file).

Page 20: [Guide] How to Make a Steam Skin(2)

P a g e | 20

5. Next, I’d like to change the colors of pop up menu (you’ll understand

what I’m 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"

After that, I apply them:

MenuBG1=menucolor //gradient colors MenuBG2=menucolor ButtonBorderDisabled=menuborder ButtonBorderDisabled2=menuborder //cornering pixels Focus=menuselected

Done. Let’s see what we’ve got:

6. Now if you take a look at the skin, we’ve changed quite a lot of stuff. Unfortunately, to fully change everything, this will take A LOT more

time. So let’s fix a few things in this step instead of making further

adjustments.

First, I’ll 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:

Page 21: [Guide] How to Make a Steam Skin(2)

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 don’t need,

but I’ll 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 )"

And the result:

As you can see, the render is perfectly visible now.

Page 22: [Guide] How to Make a Steam Skin(2)

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 you’d 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

Page 23: [Guide] How to Make a Steam Skin(2)

P a g e | 23

}

Final result after these changes:

7. If we click on grid view, we’ll see that there’s one thing left unchanged:

Let’s 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 }

As for the slider, look for this:

Page 24: [Guide] How to Make a Steam Skin(2)

P a g e | 24

zoomslider { inset="0 -1 0 0" textcolor=text } zoomslider:hover { inset="0 -1 0 0" textcolor=text }

Result:

(the text might not look bright enough, but that’s not the point, now

that you know how to change the color)

8. Now let’s 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

Page 25: [Guide] How to Make a Steam Skin(2)

P a g e | 25

} NavLabel2:hover { textcolor="white" font-style="outerglow,uppercase" font-outerglow-color="TextGlowHover" font-outerglow-offset=1 font-outerglow-filtersize=3 } NavLabel2:selected { textcolor="white" }

I’ll be leaving the white color alone, I’ll 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:

Page 26: [Guide] How to Make a Steam Skin(2)

P a g e | 26

When highlighted:

9. Now let’s make the account text more visible, add a glow even.

We’ll need a new color for the glow, so I’ll define it: txtglow="198 0 53 255"

Now look for this:

URLLabelSimple { textcolor="labelfocus" bgcolor="none" font-family=basefont font-size=14 font-weight=400 font-style=regular } URLLabelSimple [$OSX] { textcolor="labelfocus" bgcolor="none" font-family=basefont font-size=13 font-weight=400 font-style=regular } URLLabelSimple:Hover { font-style=underline textcolor="WHITE" }

I’ll change it into this:

URLLabelSimple { textcolor="labelfocus" bgcolor="none"

Page 27: [Guide] How to Make a Steam Skin(2)

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:

Page 28: [Guide] How to Make a Steam Skin(2)

P a g e | 28

10. This time let’s change the button colors.

I’ll define a few colors again:

btndark="130 0 75 255" btnlight="188 0 110 255"

To do this, find and open gamespage_details_subheader.layout file

(resource/layout folder).

Since there’s a lot of code, I’ll just post the changes I’ve 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 )"

Page 29: [Guide] How to Make a Steam Skin(2)

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 )" } }

Now just do the same for the rest of the buttons:

DetailsLaunchButton { 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_play )" } 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 )" } } DetailsLaunchButton:Hover {

Page 30: [Guide] How to Make a Steam Skin(2)

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 )"

Page 31: [Guide] How to Make a Steam Skin(2)

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 {

Page 32: [Guide] How to Make a Steam Skin(2)

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:

Page 33: [Guide] How to Make a Steam Skin(2)

P a g e | 33

Hover:

Some notes regarding this:

- We’ve changed the colors of just a few buttons, not all

- I didn’t 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 don’t

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.

I’ll 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 I’ve 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 )"

Page 34: [Guide] How to Make a Steam Skin(2)

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 )"

Page 35: [Guide] How to Make a Steam Skin(2)

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 )" } }

Page 36: [Guide] How to Make a Steam Skin(2)

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

Page 37: [Guide] How to Make a Steam Skin(2)

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

Page 38: [Guide] How to Make a Steam Skin(2)

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 )" } }

Let’s look at the results and discuss:

- I mentioned that the buttons have more states, meaning, I needed more colors, that’s why I defined one more earlier

- If you’re gonna use a different color for each state, it’ll get very

confusing - If you understand a lot about steam skinning, by now, you’ll

notice that there’s one button state which I haven’t touched. It’s

the disabled state. This one’s what I’m talkin’ about:

The buttons displayed are in disabled state.

12. Moving on, there’s one button left unchanged in the settings tab. This one:

Page 39: [Guide] How to Make a Steam Skin(2)

P a g e | 39

It’s referred to as ComboBox in the steam.styles file.

I’ll 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 )"

Page 40: [Guide] How to Make a Steam Skin(2)

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 )"

Page 41: [Guide] How to Make a Steam Skin(2)

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 )" } }

Page 42: [Guide] How to Make a Steam Skin(2)

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:

Page 43: [Guide] How to Make a Steam Skin(2)

P a g e | 43

13. Time to change buttons like this one:

To do that, we’ll have to open lots of different files. Let’s 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

Page 44: [Guide] How to Make a Steam Skin(2)

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 didn’t 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

Page 45: [Guide] How to Make a Steam Skin(2)

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 )" } }

Now, open gamespage_details_screenshots_list.layout:

Page 46: [Guide] How to Make a Steam Skin(2)

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 )" } } }

Page 47: [Guide] How to Make a Steam Skin(2)

P a g e | 47

Result:

Hover:

14. Let’s finish changing the detailed view of our game library.

First, I’ll define lots of colors:

detailtxt1="255 0 255 255" detailtxt2="194 0 0 255" detailtxt3="255 167 220 255" detailtxt1trans="255 0 255 160" detailtxt2trans="194 0 0 160" detailtxt3trans="255 167 220 160" detailbg1="127 0 110 130" detailbg2="160 0 139 130"

As you can see detailtxt and detailtxttrans colors are the same, but

have different transparency.

Anyway, let’s apply them (in steam.styles):

GameDetailsBlueTransparent=detailtxt1trans GameDetailsGreenTransparent=detailtxt2trans GameDetailsRedTransparent=detailtxt3trans GameDetailsBlue=detailtxt1 GameDetailsGreen=detailtxt2 GameDetailsRed=detailtxt3

As for applying the remaining 2 colors, we’re gonna have to open

other files.

Let’s start with gamespage_details_gametitleheader.layout:

Page 48: [Guide] How to Make a Steam Skin(2)

P a g e | 48

CDetailsGameTitleHeaderPanel { bgcolor=detailbg1

}

Next, open gamespage_details_subheader.layout: CDetailsGameSubHeaderPanel { bgcolor=detailbg2 }

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 {

Page 49: [Guide] How to Make a Steam Skin(2)

P a g e | 49

bgcolor=detailbg1

}

Finally, open gamespage_details_welcome.layout:

nonsteamdetails { bgcolor=detailbg2

}

Results:

Page 50: [Guide] How to Make a Steam Skin(2)

P a g e | 50

15. Time for the finishing touches, regarding the detailed view.

First, let’s 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 )" } }

Page 51: [Guide] How to Make a Steam Skin(2)

P a g e | 51

And here we go:

Let’s add a few features, I’m 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 }

Now the news section looks way better:

Page 52: [Guide] How to Make a Steam Skin(2)

P a g e | 52

Hover Colors:

Selected text:

Page 53: [Guide] How to Make a Steam Skin(2)

P a g e | 53

Now, let’s change the game list on the left. Mainly the highlight

colors and mod/not installed game colors. Let’s do it:

I’ll define 2 more colors:

gameunin1="150 46 33 255" gameunin2="220 46 33 255"

Look for this in steam.styles:

"GameItem_Uninstalled" { textcolor=gameunin1 selectedtextcolor=gameunin2 } "GameItem_Uninstalled:hover" { textcolor=gameunin2 selectedtextcolor=gameunin2 } "GameItem_Installed" { textcolor="text" selectedtextcolor="white" } "GameItem_Installed:hover" { textcolor="white" selectedtextcolor="white" } "GameItem_Shortcut" { textcolor=gameunin1 selectedtextcolor=gameunin2 } "GameItem_Shortcut:hover" { textcolor=gameunin2 selectedtextcolor=gameunin2 } "GameItem_Mod" { textcolor=gameunin1 selectedtextcolor=gameunin2 } "GameItem_Mod:hover" { textcolor=gameunin2 selectedtextcolor=gameunin2 } "GameItem_Updating" {

Page 54: [Guide] How to Make a Steam Skin(2)

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 }

I used only 2 colors. The result:

Page 55: [Guide] How to Make a Steam Skin(2)

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 )" } }

Now open steam.styles and look for this: "Csteamrootdialog ListPanelSectionCollapser" { inset = "0 1 0 1" bgcolor=none render_bg

Page 56: [Guide] How to Make a Steam Skin(2)

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. Let’s change the scrollbar next. I’ll define new colors:

scrolldark="150 39 91 255" scrolllight="196 51 118 255"

Now in steam.styles look for this:

ScrollBarButton.up { bgcolor=none inset="-1 2 0 0" image="graphics/icon_up_default" 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.up:hover { bgcolor=none inset="-1 2 0 0" image="graphics/icon_up_hover" render_bg

Page 57: [Guide] How to Make a Steam Skin(2)

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

Page 58: [Guide] How to Make a Steam Skin(2)

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 } }

Page 59: [Guide] How to Make a Steam Skin(2)

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 )"

Page 60: [Guide] How to Make a Steam Skin(2)

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)" } }

Page 61: [Guide] How to Make a Steam Skin(2)

P a g e | 61

I’ve changed buttonborderdisabled color already, so I left it.

Result:

17. Now, let’s change the button colors in grid view.

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 )"

Page 62: [Guide] How to Make a Steam Skin(2)

P a g e | 62

} }

Result:

18. Now, let’s fix this problem in games list view:

Open steam.styles and look for this:

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 )" } }

Done:

19. We can also change the background color of all the game views. Let’s start with detailed view. I defined new color for this:

Page 63: [Guide] How to Make a Steam Skin(2)

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:

Page 64: [Guide] How to Make a Steam Skin(2)

P a g e | 64

Next, open gamespage_grid.layout:

WrapPanel { inset="1 0 0 2" bgcolor="none" render { //gradient to obscure content at top of scrolling region 1="gradient( x0+1, y0, x1-1, y0 + 16, dialogbg, none )" //gradient to obscure content at bottom of scrolling region 2="gradient( x0+1, y1 - 16, x1-1, y1-2, none, dialogbg )" // 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 )" } render_bg { // background gradient 0="gradient( x0+1, y0, x1-1, y1-2, darkerdialog, darkerdialog )" 1="gradient( x0+1, y0, x1-1, y0 + 31, darkerdialog, darkerdialog )" // 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 - 1, x1 - 2, y0, ButtonBorderDisabled )" //top 5="fill( x0 + 2, y1 - 2, x1 - 2, y1 - 1, ButtonBorderDisabled )" //btm } }

Result:

Page 65: [Guide] How to Make a Steam Skin(2)

P a g e | 65

Finally, open steam.styles: "CGamesListPanel" { font-family=basefont bgcolor="none" font-size=15 font-weight=400 textcolor="Text" selectedtextcolor="textselected" selectedbgcolor="Focus" shadowtextcolor="TextDisabled" inset="0 -1 1 1" render_bg { // background gradient 0="gradient( x0+1, y0+1, x1-1, y0 + 432, darkerdialog, darkerdialog )" 1="fill( x0+1, y0+ 432, x1-1, y1 - 1, darkerdialog )" 2="gradient( x0+1, y0+1, x1-1, y0 + 31, darkerdialog, darkerdialog )" // lines around 3="fill( x0, y0, x0 + 1, y1 - 2, ButtonBorderDisabled )" //left 4="fill( x1 - 1, y0, x1, y1 - 2, ButtonBorderDisabled)" //right 5="fill( x0 + 2, y0 - 1, x1 - 2, y0, ButtonBorderDisabled )" //top 6="fill( x0 + 2, y1 - 1, x1 - 2, y1, ButtonBorderDisabled )" //btm // single pixel fills in the corners 7="fill( x0 + 2, y0 + 1, x0 + 3, 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 66: [Guide] How to Make a Steam Skin(2)

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. Let’s 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

Page 67: [Guide] How to Make a Steam Skin(2)

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 )" } }

This is the result and what I was talking about:

(chose dark color again)

21. We’re done with the library views. Now, let’s work on

friendslist.

First, I’d 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:

Page 68: [Guide] How to Make a Steam Skin(2)

P a g e | 68

Now, this step is going to be tricky. We’re 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 (I’ll include the other code to show you how

to do this correctly):

SectionedListPanelCollapser:selected:hover { image="graphics/icon_expand_over" }

Page 69: [Guide] How to Make a Steam Skin(2)

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:

Page 70: [Guide] How to Make a Steam Skin(2)

P a g e | 70

22. Now, let’s make a few adjustments to friend/group chat.

Open steam.styles and look for this:

ListPanel { bgcolor=none font-family=basefont font-size=14 font-weight=400 textcolor="text2" selectedtextcolor="TextSelected" selectedbgcolor="Focus" shadowtextcolor="TextDisabled" // the color of disabled line items inset="0 -1 1 1" render { } render_bg { // background gradient 0="gradient( x0 + 1, y0 + 1, x1 - 1, y1 - 1, chatpurple, chatpurple)" 1="gradient( x0 + 1, y0 + 1, x1 - 1, y0 + 31, chatpurple, chatpurple )" // lines around 19="fill( x0 + 2, y0, x1 - 2, y0 + 1, ButtonBorderDisabled )" //top 2="fill( x0 + 2, y1 - 1, x1 - 2, y1, ButtonBorderDisabled )" // bottom 3="fill( x0, y0 + 2, x0 + 1, y1 - 2, ButtonBorderDisabled )" // left 4="fill( x1 - 1, y0 + 2, x1, y1 - 2, ButtonBorderDisabled )" // right // single pixel fills in the corners 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 )" } }

Mind you, the above chat border is missing, but I added it with the underlined code line.

Result:

Page 71: [Guide] How to Make a Steam Skin(2)

P a g e | 71

Next, let’s change the offline/online/ingame colors.

I’ll be defining 3 colors again and assigning them like this (steam.styles):

// Friends List colors Friends.InGameColor friendingame Friends.OnlineColor friendonline Friends.OfflineColor friendoffline

Now, what’s 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. Time to change the downloads menu.

First, assign a defined color like this:

Highlight5=ultrapink1 // blue

Then, find this in steam.styles:

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

Page 72: [Guide] How to Make a Steam Skin(2)

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 it’s own share of buttons, so

let’s change them.

Page 73: [Guide] How to Make a Steam Skin(2)

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

Page 74: [Guide] How to Make a Steam Skin(2)

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 {

Page 75: [Guide] How to Make a Steam Skin(2)

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 )" } } }

Now open appdownloadpanel.layout:

DetailsLaunchButton { 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_play )" } 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 )"

Page 76: [Guide] How to Make a Steam Skin(2)

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

Page 77: [Guide] How to Make a Steam Skin(2)

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 )" }

Page 78: [Guide] How to Make a Steam Skin(2)

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"

Page 79: [Guide] How to Make a Steam Skin(2)

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 )"

Page 80: [Guide] How to Make a Steam Skin(2)

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:

Page 81: [Guide] How to Make a Steam Skin(2)

P a g e | 81

I haven’t changed anything about the disabled state of one button.

Anyways, now I’d like to remove those black backgrounds

completely. Open the same file (appdownloadpanel.layout): panelBgColorActive { bgcolor= none }

Next, open downloadsummarypanel.layout:

CDownloadSummaryPanel { bgcolor=none inset="0 0 0 0" }

Result so far:

Now, let’s make that text more readable. Open

downloadsummarypanel.layout again: bigtextlabel { font-family=basefont font-size=18 font-style="uppercase" textcolor=ultrapink2 }

Next, let’s change the download graph (the remaining black background). I’ll define a new color for that:

downloadbg="91 0 39 255"

Open appdownloadpanel.layout:

Page 82: [Guide] How to Make a Steam Skin(2)

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:

Page 83: [Guide] How to Make a Steam Skin(2)

P a g e | 83

All that’s left is to change slim progressbar. One of it’s colors

anyway. Open appdownloadpanel.layout again:

SlimProgressBar { render_bg { 0="fill( x0, y0, x1, y1, btnlight )" }

Unfortunately, this doesn’t change the same progressbar below, so let’s change it as well. Open uistatuspanel.layout:

SlimProgressBar { render_bg { 0="fill( x0, y0, x1, y1, btnlight )" }

Final result:

24. Now let’s 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 } }

Page 84: [Guide] How to Make a Steam Skin(2)

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. Next, let’s change the screenshots menu.

Open screenshotmanager.layout:

Page 85: [Guide] How to Make a Steam Skin(2)

P a g e | 85

ThumbnailSelected { bgcolor=txtpinkbright render { // lines around 1="fill( x0 + 9, y0 + 2, x0 + 10, y1 + 1, ultrapink1 )" //left 2="fill( x1 + 9, y0 + 2, x1 + 10, y1 + 1, ultrapink1 )" //right 3="fill( x0 + 9, y0 + 2, x1 + 10, y0 + 3, ultrapink1 )" //top 4="fill( x0 + 9, y1 + 1, x1 + 10, y1 + 2, ultrapink1 )" //btm } } 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:

Page 86: [Guide] How to Make a Steam Skin(2)

P a g e | 86

26. This time, let’s change the notification.

Open steam.styles and look for this:

Notifications.PanelPosition "BottomRight" // Can be "BottomRight", "BottomLeft", "TopRight", "TopLeft" Notifications.PanelPosition "TopRight" [$OSX] // the dock is on the bottom for OSX, so instead pop top right like other apps do Notifications.SlideDirection "Vertical" // Can be "Vertical", "Horizontal", "None" and controls slide effect Notifications.FadeInTime "0.45" // Controls the time it takes to slide/fade into view Notifications.FadeOutTime "0.45" // Controls the time it takes to slide/fade out of view Notifications.DisplayTime "6.0" // Controls the length of time at steady state after fade in and before fade out Notifications.StackSize "3" // Controls how many panels we will stack before background queuing

You can change it freely, the options are written in the comments.

I’ll make such changes:

Notifications.PanelPosition "BottomLeft" Notifications.SlideDirection "Horizontal" Notifications.DisplayTime "9.0"

Now, it’s time to change the notification itself. I’ll add a frame and

make it transparent. First, let’s define 2 transparent colors:

noticepurple1="91 0 79 200" noticepurple2="61 0 53 180"

Next, in steam.styles:

Page 87: [Guide] How to Make a Steam Skin(2)

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:

Unfortunately, it will only be transparent ingame:

27. What’s left to change, are ingame menu colors and a few minor fixes. Let’s change the ingame menu first.

Define 2 more colors for said menu: ingamepurple1="76 0 66 255" ingamepurple2="53 0 45 255"

Next, open gameoverlay.styles:

Page 88: [Guide] How to Make a Steam Skin(2)

P a g e | 88

Notifications.PanelPosition "BottomLeft"

detailsbox { render_bg { 0="gradient( x0, y0, x1, y1, ingamepurple1, ingamepurple2 )" } }

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

Page 89: [Guide] How to Make a Steam Skin(2)

P a g e | 89

ButtonBorderDisabled=menuborder ButtonBorderDisabled2=menuborder //cornering pixels ButtonBorderActive=ultrapink1 ButtonBorderFocus=ultrapink1

After that, find this in steam.styles and change it as well:

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 )" } } CheckButtonList:scrollbar { 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 {

Page 90: [Guide] How to Make a Steam Skin(2)

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" {

Page 91: [Guide] How to Make a Steam Skin(2)

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 )" }

The results of these changes:

Page 92: [Guide] How to Make a Steam Skin(2)

P a g e | 92

29. Finally, let’s 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:

Page 93: [Guide] How to Make a Steam Skin(2)

P a g e | 93

Another misc fix, to change the background color of these buttons:

Either assign your preferred colors like this (in steam.styles):

Focus=menuselected // background color of any selected menu or list item Focus2=menuselected2

Or look for this piece of code in uinavigatorpanel.layout:

ViewDetailButton:selected { bgcolor="none" render_bg={} image="graphics/icon_button_detail_down" render_bg { // background 0="gradient( x0 + 1, y0 + 1, x1 - 1, y1 - 1, focus2, focus )" // 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 }

ViewGridButton:selected { bgcolor="none" render_bg={} image="graphics/icon_button_grid_down" render_bg { // background 0="gradient( x0 + 1, y0 + 1, x1 - 1, y1 - 1, focus2, focus )" // 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 }

ViewListButton:selected { bgcolor="none" render_bg={} image="graphics/icon_button_list_down" render_bg { // background 0="gradient( x0 + 1, y0 + 1, x1 - 1, y1 - 1, focus2, focus )"

Page 94: [Guide] How to Make a Steam Skin(2)

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, there’s technically nothing left to change. Except for the various icons, but this concludes all the coding.

Page 95: [Guide] How to Make a Steam Skin(2)

P a g e | 95

7. Using already made skin, to make

your own AKA TL;DR This is exactly how I learned making my own skin, it’s by randomly

modifying the already made ones.

This section is going to be like a TL;DR version of the guide.

Let’s make this quick then, if you open steam.styles located in Rider

theme skin directory, you’ll come across this:

//spalvos txtpink="211 91 151 255" //text color txtpinkbright="239 103 171 255" //text color txtpinkdark="183 78 131 255" //text color txtbackground="188 0 100 255" //selected text background color dialogpink1="73 5 64 255" //menu color 1 dialogpink2="114 8 104 255" //menu color 2 dialoghighlight="145 11 134 255" // ??? ultrapink1="255 117 227 255" // notification and various borders ultrapink2="255 114 189 255" // notification and various borders ultrapink3="219 0 116 255"// notification and various borders menucolor="96 0 85 255" //popup menu color menuborder="137 63 122 255" //popup menu color menuselected="133 0 115 255" //popup menu color menuselected2="150 0 130 255" //popup menu color txtglow="183 130 173 255" //glow color btndark="100 0 45 255" //button color btnlight="158 0 80 255" //button color btnactive="183 113 169 255" //button color detailtxt1="255 0 255 255" //detailsview text color detailtxt2="204 114 186 255" //detailsview text color detailtxt3="255 167 220 255"//detailsview text color detailtxt1trans="255 0 255 160"//detailsview text color detailtxt2trans="204 114 186 160"//detailsview text color detailtxt3trans="255 167 220 160"//detailsview text color detailbg1="135 0 108 120" //detailsview background detailbg2="153 56 133 120" // detailsview background gameunin1="198 117 188 255" //detailsview game color gameunin2="234 138 221 255" //detailsview game color gamelistbg="145 0 121 255" //detailsview game color scrolldark="150 39 91 255" //scrollbar color scrolllight="196 51 118 255" //scrollbar color darkerdialog="45 3 40 255" // ??? friendpanelfill="45 0 39 200"// friendlist background chatpurple="38 0 31 255" // chat background friendonline="255 0 225 255" // self explanatory friendoffline="175 0 158 255" // self explanatory friendingame="255 155 220 255"// self explanatory friendshighlight="145 0 125 120" // self explanatory downloadbg="91 44 85 255" // downloads menu color downloadbg2="20 20 20 100" // downloads menu color darkpurple1="154 0 128 255" // ??? darkpurple2="119 0 85 255" // ??? noticepurple1="91 0 79 200" // notification color noticepurple2="61 0 53 180" // notification color

Page 96: [Guide] How to Make a Steam Skin(2)

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 I’ve 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”

You’ll change the color of most of the text if you assign it like this:

Txtpink= Mycolor123

And so on.

Now you might be wondering ... What’s the catch?

It’s 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:

- It’s 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 something’s wrong and your color doesn’t appear the way it should

(unlikely, but you’ll never know), then copy the RGBT values, instead of the color/variable name. Like this:

Txtpink=”25 26 54 255”

The result will stay same.

Page 97: [Guide] How to Make a Steam Skin(2)

P a g e | 97

8. Tips and tricks

Just one simple trick. If you put a picture into the friendlist, it’ll probably look lame, like this:

(no, this is not photoshop or whatever).

Page 98: [Guide] How to Make a Steam Skin(2)

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:

2. Reduce the opacity from 255 to 30-50 and press ok:

3. Result:

Page 99: [Guide] How to Make a Steam Skin(2)

P a g e | 99

Page 100: [Guide] How to Make a Steam Skin(2)

P a g e | 100

9. Known bugs/errors

When changing piston.tga with your preferred image, you’ll 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:

Page 101: [Guide] How to Make a Steam Skin(2)

P a g e | 101