Skip to content

The insanely modular CSS ecosystem. Also a famous plane. Also a famous brewery.

Notifications You must be signed in to change notification settings

Aeronautics/Mustang

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Aeronautics\Mustang

The Insanely Modular CSS Ecosystem. Which is largely unfinished!

  • We keep the aero.as/style service in the cloud. (not really yet)
  • The Library is a set of reusable CSS code. (well, some of it)
  • Our Processor is the core engine of CSS reuse. (somehow slow yet)

CSS means Cascading Style Sheets, and it's a language to style web pages.

The Processor

Mustang libraries are written in the same valid syntax as CSS. They extend CSS using it's core concepts: cascading, selectors and properties. Here is a sample CSSL that reuses the CSS cascade:

a:focus {
    outline: thin dotted;
}

a:active,
a:hover {
    outline: 0;
}

abbr[title] {
    border-bottom: 1px dotted;
}

img {
    border: 0;
}

This is the normalize/borders.cssl library that normalizes borders on several elements. To use this library, you may choose the selectors you want to import:

@import 'normalize/borders.cssl';

img, abbr {
    normalize: borders;
}

This would generate the output ommiting the a rules:

abbr[title] {
    border-bottom: 1px dotted;
}

img {
    border: 0;
}

You may also import all selectors using the -all placeholder:

@import 'normalize/borders.cssl';

-all {
    normalize: borders;
}

Libraries can often reuse selectors as well. Take a look at this sample:

-selector:after {
    content: ".";
    display: block;
    clear: both;
    visibility: hidden;
    line-height: 0;
    height: 0;
}
 
-selector {
    display: inline-block;
}
 
html[xmlns] -selector {
    display: block;
}
 
* html -selector {
    height: 1%;
}

If you're familiar with CSS, you may have recognized this as a clearfix snippet applied to -selector. This is the fix/compat.cssl library that can be used like this:

@import 'fix/compat.cssl';

#foo, #bar {
    -fix: compat;
}

The -selector token is a placeholder for whatever the selectors you apply to this libraries. Most libraries work this way. Here is the output:

#foo:after, #bar:after {
    content: ".";
    display: block;
    clear: both;
    visibility: hidden;
    line-height: 0;
    height: 0;
}
 
#foo, #bar {
    display: inline-block;
}
 
html[xmlns] #foo, html[xmlns] #bar {
    display: block;
}
 
* html #foo, * html #bar {
    height: 1%;
}

You can now reuse the cascade to import selectors and reuse these selectors as well, but there is a final piece of the Processor. Let's see the property reuse:

body {
    color: -param-0;
    background: -param-1;
}

This is the ubuntu-web/text-colors.cssl library, and it accepts two parameters . This library can be used like this:

@import 'ubuntu-web/text-colors.cssl';

-all {
    -ubuntu-web: text-colors #333 #FFF;
}

The two colors there will be replaced as parameters in the library. If you ommit parameters when applying the library, rules for those parameters will be not applied.

About

The insanely modular CSS ecosystem. Also a famous plane. Also a famous brewery.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages