How to Zoom the Steam Client

Are you trying to use the Steam Client but find that the text and controls are too small to read and use easily?  Are you dumbfounded why there are no settings or keyboard shortcuts to make everything bigger?  If so, then today is your lucky day…

Before

The above screenshot is what the default skin looks like when you use the Steam Client on a 1920×1080 display.  If you have your face mashed up against the screen then you can read the text no problems.  If, however, you are seated back a bit from the screen, or have a high-resolution screen, or just don’t have eagle-eyed vision, then the text can be really, really hard to read.

There is no setting in the Steam Client that lets you simply make everything bigger.  The community has been asking for one for years, and years, and years but Valve doesn’t seem to care that much.  They ‘recently’ let you, kinda, sorta, make some things bigger in the Library, but that’s of limited value to most people who spend far more of their time exploring their Discovery Queue (or using other parts of the Steam Client).

If you’ve got a couple of minutes of time you can apply a zoom to the body of the interface that turns the above into this:

After

A much better use of space — and much easier to read.

Everything (except the chrome) can be scaled or zoomed up by as much as you like.

On Linux you merely have to issue five commands on the command line to zoom everything a bit larger.  This is all it takes on Ubuntu 18.04 (Windows/MacOS instructions at the end of this post):

cd ~/.local/share/Steam/
mkdir -p skins/bigger/resource/styles
cp resource/styles/steam.styles skins/bigger/resource/styles/
cd skins/bigger/resource/
echo ':root { zoom: 1.5; }' > webkit.css

I chose to name the new skin “bigger” — change it to whatever you like.  A zoom of 1.5 (150%) is what I, personally, prefer — also change it to whatever you like.

In the Steam Client…

  1. Steam » Settings » Interface
  2. change the skin from the default to the “bigger” one
  3. click OK and restart the Steam Client

That’s it.  You’re done.

Enjoy!

PS: If you’re anything like me, and spend most of your Steam Client time exploring your Discovery Queue, then you may want to consider improving that experience further by adding a bit more style to the webkit.css file. Mine looks like this:

:root {
  zoom: 1.5;
}

.breadcrumbs, #application_root, .store_tooltip, 
.queue_reason_description, .queue_btn_ignore_menu, 
.mature_content_notice, .queue_controls_description {
  display: none !important;
}

#store_controls {
  position: fixed !important;
  top: 0px;
  right: 0px;
}

#store_nav_area {
  top: 0px !important;
}

div#store_header, div#store_header .content {
  height: 40px !important;
}

.html5_video_overlay {
  zoom: 0.666;
}

The extra styling gets rid of annoying stuff that long-time users simply don’t need, and it sticks the wishlist in the top-right corner.  I like it.  You may like it too.

Note that the way Valve have coded their video volume slider means that it gets more and more flakey the higher your zoom level.  The only way to make it function normally is to restore it to a normal (effective) zoom of 1.0 — thus .html5_video_overlay has its zoom set to 0.666.  The :root zoom of 1.5 multiplied by 0.666 gets us back to 1.0.  If your chosen :root zoom is giving you problems with the volume slider, set the .html5_video_overlay zoom to:  1 / :root zoom.  Alternatively, control video volume using your keyboard and the system volume.

PPS:  Although the above instructions are for Linux, because the Steam Client’s directory structure is the same on all platforms, you can easily do the same thing on Windows and MacOS.  You just need to make a few directories, copy the default steam.styles file into one of them, and create a webkit.css file in another.  Edit the latter with whatever text editor you prefer.

  • In Windows:
    • The path to the Steam directory should be:
      • \Program Files\Steam\
    • Create all missing directories up to and including:
      • \Program Files\Steam\skins\bigger\resource\styles\
    • Into that last directory, copy the default Steam styles file from:
      • \Program Files\Steam\resource\styles\steam.styles
    • And create the text file for your custom CSS:
      •   \Program Files\Steam\skins\bigger\resource\webkit.css
  • In MacOS:
    • The path to the Steam directory should be:
      • ~/Library/Application Support/Steam/
    • Create all missing directories up to and including:
      • ~/Library/Application Support/Steam/skins/bigger/resource/styles/
    • Into that last directory, copy the default Steam styles file from:
      • ~/Library/Application Support/Steam/resource/styles/steam.styles
    • And create the text file for your custom CSS:
      • ~/Library/Application Support/Steam/skins/bigger/resource/webkit.css

27 thoughts on “How to Zoom the Steam Client

  1. Thanks bro, I’am only having an issue with my wishlist, I have 54 itens in there and as I scroll down the page everything starts to.. how I can say.. like disappear ?

  2. SilverLightPony, it’s been many, many years… Still waiting for Valve to fix their broken client. /sigh

  3. I didn’t try in Ubuntu 18.04, so idk if the literal steps in this webpage work. But the following steps are for Ubuntu 20.04:

    mkdir -p ~/.steam/steam/skins/bigger/resource/styles
    cp ~/.steam/steam/resource/styles/steam.styles ~/.steam/steam/skins/bigger/resource/styles/steam.styles
    echo ‘:root { zoom: 1.5; }’ > ~/.steam/steam/skins/bigger/resource/webkit.css

    Greetings.

  4. Style, the commands you listed are functionally the same as the ones I gave. I just broke them up into shorter ones so that WordPress wouldn’t line-wrap them and they would be easy to ready and copy. 🙂 I haven’t made the move to 20.04 yet, but good to know nothing on that front has changed. Cheers.

  5. @Tim: Yes and no.
    Yes: The commands are the same as you say (in fact, I extracted them from you), and yes, you broke them to make them shorter.
    No: The folders (and hence, paths) are not the same; in short: from “~/.local/share/Steam/” to “~/.steam/steam/”. At least in my case.
    I could have just point it out, but I guess, it’s easier and clearer if I just write the whole commands, so you anyone can just copy and paste.
    Greetings.

  6. Style, on my 18.04 system ~/.steam/steam is a symlink to ~/.local/share/Steam/. So both end up at the same place (~/.local/share/Steam/). Is it different on your 20.04?

  7. @Tim: In my system, there’s no “Steam” folder, so no ~/.local/share/Steam/ path.
    I have to add, just in case, that I installed Steam app from Ubuntu repository, not from Steam webpage. So idk if that makes some difference.

  8. Style, that’s interesting. The Steam website directs me to download steam_latest.deb from repo.steampowered.com. One would think that would be the same thing as gets installed by issuing the command sudo apt-get install steam-installer in the terminal. If you don’t have ~/.local/share/Steam/ then could it be that you installed Steam without sudo? If so, then you may have installed steam for single-user use only, and not for multi-user use, which would explain the absence of something in ~/local/share/. I’ve written and use software that launches and interacts with the Steam client — and prefer to do that as a different user with restricted privileges — so I always install Steam with sudo. Can’t remember the last time I installed it any other way. 😉

  9. @Tim: Installed with sudo. Well, actually I installed it from Software Center “Discover” (I’m using Kubuntu). But, it obviously asked for my password to install. Would that make a difference?
    Plus, I want to add that I’m the only user in my system. I guess it shouldn’t ‘matter’ in the subject, but I’m still saying it, just in case.

  10. Try using only this in your new custom webkit.css …works great to make the video much bigger on the game pages. few hours of noodling with studying the elements on the steam pages and experimenting with the css…..Enjoy…Nick

    —–webkit.css snip start——-
    #game_highlights {
    width: 1600px;
    /* This sets the width of the entire highlights section,
    video and image on the right */
    }

    #game_highlights .leftcol {
    width: 1276px;
    /* This set the width of the left side column that holds the video
    The video will scale up to fit.
    leftcol.width + rightcol.width needs to be less than game_highlights.width */
    }

    #game_highlights .rightcol {
    width: 324px;
    /* This sets the width of the right side column that holds the image
    and user feedback info. The width of this in the sample page
    that I worked from was 324 pixels = 324px, reference page “Roki” */
    }

    —–snip end——-

  11. Nick, personally I don’t “Autoplay videos” when exploring my Discovery Queue. Since 99.99% of the games are not to my liking, 99.99% of the videos are of no interest either, so there’s no point me playing them, wasting bandwidth and decreasing the responsiveness of Steam in the process. If something looks interesting I prefer to play the video full screen. So, the game_highlights changes are not something I want to make to my setup, but perhaps something others will be interested in. Thanks for sharing!

  12. Having the zoom is great, but as mentioned by the first commenter here, the wishlist breaks. If you have a large number of items, as you scroll down, it starts removing visible items starting from the top of the window. Any idea on a fix for that?

  13. Ryan, I don’t have anywhere near 54 items on my wishlist, so I can’t reproduce that symptom. My wishlist scrolls normally. So, sorry, no idea.

  14. There is no “bigger” one only default. Valve is disgustingly lazy.

  15. Jak, I agree. Valve seem to have plenty of time to add useless crap to Steam, but not fix a fundamentally important issue that has annoyed thousands of users for years — a sure sign that their values are not aligned with those of their customers, and they should lift their game.

  16. Unfortunately, this had no effect. I see the new skin, and was able to change to it in the interface, but everything is the same size as before.

  17. Thank’s for the guide. I’m in no way a programmer but following your istructions I succesfully enhanced Steam. I also used Nick’s code to have bigger videos. I’m having problems with the wishlist that simply disappear when scrolling down past a certain number of games. It seems to me that the problem may be caused by the limited size of the wishlist container and it’s overflow property set to hidden. Could you take a look and help me solve this issue? A simple solution would be to not apply the zoom in the wishlist page, which for me would be perfectly fine, but I don’t know how to do it.

  18. David, the CSS works on the current version of the Steam client. If it’s not working for you then the chances are that you’ve just made a small typo in the code. It’s easy to do and results in CSS being deemed invalid and ignored.

  19. I kept experimenting and came up with a fix for the disappearing wishlist issue.
    Just add this:
    .wishlist_row {
    zoom: 0.833 !important;
    }
    The principle is the same Tim used to solve the video volume slider and since I’m using a 1.2 zoom I need to multiply by 0.833 to go back to 1.
    My solution isn’t too elegant since it leaves a void between the last entry in the wishlist and the bottom of the page but it’s currently working for my 126 games long wishlist.

  20. Sam, although I don’t have enough items on my wishlist to replicate the issue, I have just spent a fruitless half-hour or so trying to just disable the zoom for the whole page. This was my approach:

    :root[href*=”wishlist”] {
    zoom: 1.0 !important;
    }

    The idea was to use an attribute selector, perform a wildcard match on the word “wishlist” as it appears in the URI, and then set the zoom back to 1.0. It does not work, but someone might be able to get it work with some more effort.

    I note that you’ve just basically solved the problem — congrats! Hopefully Ryan and the others will notice your solution. Do you mind if I make a mention of that in the article itself?

  21. Sam, I’ve looked into that page some more and, what can I say, wow… Valve have implemented it in the most bizarre way. Scroll events fire off some Javascript that pre-emptively loads and unloads game entries (rows) from a scrolling window so that only a fixed amount are loaded at any one time. The positions of those entries are calculated dynamically and specified in pixels.

    Any high-schooler that graduated in the last decade or so would just load the lot in a sequential list. Perhaps lazy-load them if performance was a concern. It is truly baffling…

  22. I don’t mind at all that you include my solution in your article.
    Here is the final version which correctly displays the whole wishlist without leaving the void at the end:

    #wishlist_ctn {
    zoom: 0.833 !important;
    }

    For anyone using this just remember to change the zoom value depending on the zoom value you used with the :root selector.

  23. Sam, I appreciate you finding the fix for the wishlist issue, I was having that issue as well. I ended up going back to the default skin, as there are numerous wonky things that happen in the library interface as well and I didn’t want to deal with it. Right clicking on a game in the left sidebar would pop up a menu down and to the right of where it was right clicked, and the menu would be buggy if it was near the bottom of the screen. There was also some strangeness with interacting with collections, that I can’t remember the details of. Maybe someone more code-savvy can hack those into shape, but for now, I’ve forgone zoom and just gone with Nick’s larger videos on store pages code. Sigh.

  24. Ryan, because Valve have so heavily used pixels for dimensions, and manipulated layout and controls with Javascript, there is no way that CSS alone can be used by users to scale ‘everything’ in the Steam Client and retain full functionality at the same time. It’s just not technically possible. The best that anyone can hope for is to just scale the bits that matter to them, the best they can, and hope that Valve fire the web designers/developers they currently have on payroll, or at least migrate the client to a different browser base that supports native scaling (like pretty-much every modern web browser on the planet).

  25. Thank you for this. I had to use the directory that Style used above, as I didn’t have ~/.local/share/Steam/ in Pop Os, either.

  26. Mel, I’m glad you worked it out. Hopefully you’ll end up with an interface that’s easier to read with a minimal amount of side-effects.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s