My CSS Wishlist

By  on  

Although CSS is a great formatting tool, the styling language has a long way to go to keep Web Developers satisfied. There are some definite holes in CSS that need to be filled. Until we get what I propose below, JavaScript can help fill some of the holes and so can images, but CSS should eventually incorporate my requests.

Variables

Variables are an absolute necessity in most other languages, yet CSS doesn't have variable capability. At this point, we're stuck with typing '#ffffea1' numerous times in our stylesheet. Being a PHP enthusiast, I think the '$' sign would be perfect for CSS variables.

@vars
{
	$white:#fff;
	$base:#000;
	$back:url(/graphics/background.jpg) top left no-repeat;
	$font:Helvetica;
}

/* and used like */

.my-div      { background:$back; color:$base; font-family:$font; border:1px solid $white; }

Importing Custom Fonts

Fonts are extremely lacking on the web. We're stuck with a core list of fonts and risk our website looking horrendous if we take the chance at using a font not supported/included in our visitors' computers. I propose the following syntax for importing custom fonts into our stylesheet.

@font
{
	family: 'MyFont'
	src:url(fonts/myfont.ext);
}

Resizable Elements

Resizables can now be accomplished using any of the popular JavaScript frameworks, but why not allow for resizable elements in CSS? We do use CSS units (ems, exs, etc.) that allow for scaling websites, but why not trigger resizing on demand? I think resizing should be as easy as:

.my-element
{
	resizable:x; /* or */
	resizable:y; /* or */
	resizable:xy;
}

Multiple Background Images

We all use "wrapper" DIVs and other elements to overlap background images -- why not just allow us to do it all in one CSS statement? Multiple background image specs are in the current CSS3 plans, but that still means we're years away from being able to rely on a browser having this capability.

Minimum and Maximum Font Sizes

We do our best to make our websites flexible and accessible, but there should be a point where we can tell the browser that the website simply can't/shouldn't be viewed with a font larger or smaller than x.

min-font-size:.7em;
max-font-size:6em;

I believe the above items would push CSS into a new stage of maturity and usefulness. What would you like to see in CSS?

Recent Features

Incredible Demos

  • By
    TextboxList for MooTools and jQuery by Guillermo Rauch

    I'll be honest with you: I still haven't figured out if I like my MooTools teammate Guillermo Rauch. He's got a lot stacked up against him. He's from Argentina so I get IM'ed about 10 times a day about how great Lionel...

  • By
    MooTools-Like Element Creation in jQuery

    I really dislike jQuery's element creation syntax. It's basically the same as typing out HTML but within a JavaScript string...ugly! Luckily Basil Goldman has created a jQuery plugin that allows you to create elements using MooTools-like syntax. Standard jQuery Element Creation Looks exactly like writing out...

Discussion

  1. Great wishlist… these features should be implemented at CSS 3.0

  2. nice list. i was wondering, if you setup your webserver to process *.css files as php, can you use variables? i haven’t tried (yet) but I’m pretty confident it will work… I also give a confident vote for all those wishes :P

  3. I’ve seen that Alin. Why not just give CSS the ability to use variables instead of server-side processing?

  4. Very interesting ideas, although we now have @font-face for fonts, but I also miss variables.

    Another thing I have been thinking about is the possibility to define several properties to the same value, as in:

    img{
    height, width: 64px;
    }
    

    instead of:

    img{
    height: 64px;
    width: 64px;
    }
    

    In a large stylesheet, that would save some space.

Wrap your code in <pre class="{language}"></pre> tags, link to a GitHub gist, JSFiddle fiddle, or CodePen pen to embed!