CSSBattle

Info

Here, we list some tips and tricks for CSS code-golfing that can help you get better scores. These tips are curated from numerous sources, many of which are generously shared by some of our awesome CSSBattle-ers: Alex Zaworski, Ilya Streltsyn, Praveen, Stas Lashmanov, Jon Uleis and many more 🙏!

DISCLAIMER: The strategies listed here are not meant to be used in real projects. They mostly help you in CSSBattle code-golfing (expect for few which can be used elsewhere). In real world you'll probably use a minifier to make your files smaller.

Want to add a tip you discovered? Mail us.

Tips & Tricks

White-space removal

The most basic strategy for code-golfing — remove unnecessary spaces, tabs, newlines, etc. These characters are not necessary for the code to work functionally. This is one of the things that minifiers do to your code too.

Loading...
Loading...

Omit the last semi-colon

Semi-colon for the last CSS declaration in a declaration block can be omitted.

Loading...
Loading...

Omit the closing tags

In most cases, you can omit the closing tag of an element. This works because the Browser closes them for you, to make the HTML valid. Though, be cautious as in some cases seemingly unclosed sibling tags can become parent-child of each other.

Loading...
Loading...

Remove Double Quotes

You can remove the quotes from HTML attributes and replace the white-spaces before numbers with a +/-. Though, some re-ordering might be required to make things work. This is a very good example of exploiting how parsers understand your code. In the following example, we reorder things such that + marks the beginning of border-width and # marks the start of border-color.

Loading...
Loading...

Shorten selectors with made-up attributes

You can assign made-up attribute to any element to target it specifically in your selectors. Here is an example where you want to select the 3rd <P> tag.

Loading...
Loading...

position:fixed beats position:absolute, mostly

In most cases, you might want to absolutely position an element with respect to the window/viewport instead of another element. In such position: fixed can save you a good 3 characters! Neat, right?!

Loading...
Loading...

Play with the units

Experimenting with different units can save you a character or two, and give you that extra edge. For eg. 100px is better written as 25vw for CSSBattle's 400px target width. And guess what, Alex Zaworski also has created a wonderful open-source tool to help you with just this, called unit-golf!

Loading...
Loading...

You don't always need to add an HTML element to style!

By default, you have the html and body elements to style in your code!

Loading...
Loading...

Omit the 'px' unit

For many properties, you can omit the px unit and just write the numeric value.

Loading...
Loading...

<body> has some ancient super-attributes!

There are old deprecated attributes available on body tag to give background and text color. These can prove deadly in battles!

Loading...
Loading...

We'll keep adding more mind-blowing tips here. Check back for more!