27 Nov 2011
Less Pain - More Gain
“Speed Up Tumblr Theme Editing By Storing Your CSS in The Cloud”

Trying to edit your Tumblr theme’s HTML was annoying enough previously but, since the latest update to the interface, it’s even more of a pain in the arse than ever. Now you have to have two tabs open and make at least three clicks back and forth between the “CUSTOMISE” section and their annoying HTML editing screen, every time you want to make the slightest change.

Here’s a way in which you can set things up, so you can edit your theme’s CSS locally and then have the changes automagically applied to your Tumblr blog:

Assumptions:

  • You’re using a custom theme.
  • You have a Dropbox account.
  • You’re using a Mac. [Actually, the OS isn’t important, but the instructions & screenshots assume a Mac, so if using sommit else, you’ll have to adapt accordingly]
  • You know what the fuck I’m talking about.

1: Login to Tumblr and, in the DASHBOARD, click on the name of your blog:

tumblrdropboxcss

2: Then click on CUSTOMISE APPEARANCE in the sidebar.

tumblrdropboxcss02

3: Now click EDIT HTML in the lefthand panel which opens:

tumblrdropboxcss03

4: When the HTML window opens, cut everything between this line…​

tumblrdropboxcss04

and this one [inclusive]…​

tumblrdropboxcss05

The line numbers shown here are what I see, using a customised theme based off the default. If you’ve added extra stuff into the header, or are customising another theme, you’ll likely have different line numbers, but the “style” tags should be the same.

5: Now switch your attention away from your browser and fire up your favourite Text Editor. In my case, TextMate. Create a new document and paste in all the code you cut previously.

6: Delete the first and last lines of the pasted code. ie. the beginning and end “style” tags:

Delete these two lines

tumblrdropboxcss06
tumblrdropboxcss07

7: Now save your new file to your Dropbox’s public folder, not forgetting to give it the “.css” extension:

tumblrdropboxcss08

8: Now login to your Dropbox account on the dropbox.com website and navigate to your Public folder and the CSS file you just created [I’m assuming here that your local Dropbox folder on your computer has by now sync’d with Dropbox in ‘the cloud’, which usually happens pretty instantaneously]:

tumblrdropboxcss09
tumblrdropboxcss10

9: When you’ve located your CSS file in your online Dropbox Public folder, click the disclosure triangle to the right of the filename and select COPY PUBLIC LINK from the popup menu:

tumblrdropboxcss11

10: When the link popup window appears click COPY TO CLIPBOARD. Your link will obviously be different from mine:

tumblrdropboxcss12

11: OK. We’re done with Dropbox now, so head back on over to Tumblr and the EDIT HTML window again. If you correctly followed the instructions above, your theme’s HTML code should now look something like this [The highlighted line showing where all that CSS code was previously cut out]:

tumblrdropboxcss13

12: Now, instead of having the CSS code in the actual template itself, where going to import it directly from Dropbox. Into the highlighted area above, put the following, replacing my dropbox CSS URL with your own:

tumblrdropboxcss14

13: Now click on APPEARANCE, then SAVE, then CLOSE, to commit your changes:

tumblrdropboxcss15
tumblrdropboxcss16

14: Visit your blog in your browser and make sure that everything looks OK. If there’s no formatting at all, then your external stylesheet is probably not being loaded. Looks like you’ve not followed these instructions exactly and I’m afraid you’ll have to start over again.

tumblrdropboxcss17

However, even if the external stylesheet is loading properly, you will probably find that there are a few visual glitches still to iron out. In my case this was most noticeable in that my page background defaulted to white and the sidebar got a bit messed up:

tumblrdropboxcss18

The reason for this is that a lot of themes [including the Default one that I’ve customised] use special “Tumblr Variables” within the template and CSS, to allow users to change things like background colour, fonts, etc. via the web interface. These Tumblr variable codes look like this:

They look like this in the theme HTML

tumblrdropboxcss19

And like this in the CSS

tumblrdropboxcss20

These codes are not valid CSS, so when you extract the CSS from within your Tumblr theme to an external CSS stylesheet, they’re going to break and your template will just display defaults in their place.

In order to fix things, you’re going to have to do a Find/Replace on your new external CSS file, looking for these Tumblr variables and replacing them with ‘proper’ CSS definitions

Here are the variables defined in my theme, which I’m going to have to ‘hardwire’ into the stylesheet:

tumblrdropboxcss21

15: Open up your CSS file and do the necessary Find/Replaces. For example:

tumblrdropboxcss22
tumblrdropboxcss23

…​etc. etc.

16: I also found a few other bits of conditional code in my CSS, as well. For example to display the correct “Follow” image, depending on what language you’ve set your blog to display in:

tumblrdropboxcss24

Replace that with a single declaration for the appropriate language:

tumblrdropboxcss25

17: There was also some conditional code which would either set "`display:none`" or "`display:block`" on the "Ask me Anything" or "Submit Story" sidebar items, depending on whether or not they were enabled. I just hardwired them to “display:block” as, if they’re not enabled, they won’t display anyway, so why make a conditional rule? [unless I’m missing something here?].

Before

tumblrdropboxcss25a

After

tumblrdropboxcss26

After doing all of the above, I’d got rid of all the broken conditional code from the CSS and was left with a nice clean stylesheet. I did give it the once over, just to make sure and spotted a few double “;;” which needed cleaning up. Then, finally, I ran the whole thing through the W3C’s CSS validator, just to make sure nothing else had sneaked through.

Eventually, after all that cleaning up, I’ve ended up with my site displaying as it did before, but now with the CSS loaded externally from Dropbox:

tumblrdropboxcss27

So, what was the point of all that hard work? --you ask

Well, now whenever I want to edit my Tumblr blog’s theme, I can just open the local copy of my CSS file and work on that, with my favourite text editor, instead of having to wrestle with Tumblr’s fuckwitted editing interface. Because the local file is saved in my Dropbox folder, any changes I make to it are automatically sync’d to the version saved on my Dropbox in the cloud, which is then imported by Tumblr into my custom theme. So, in other words, tweaking my Tumblr theme is now as easy as; editing a local file, hitting CMD+S, waiting a second [for Dropbox to sync] and then refreshing my browser window.

Pretty damned cool, eh?

Meta

TAGS: tumblrcustomisecustomisationcssthemecustomdropboxcloud

ORIGINAL PUBLICATION DATE: 27 Nov 2011

AUTHOR: stíobhart matulevicz

LAST MODIFIED: 25 Apr 2020  — REASON: "extract asciidoc preamble into separate file and include it"

Back to Top