Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jeremyruppel/sass4as
Syntactically Awesome Stylesheets for ActionScript 3
https://github.com/jeremyruppel/sass4as
Last synced: 26 days ago
JSON representation
Syntactically Awesome Stylesheets for ActionScript 3
- Host: GitHub
- URL: https://github.com/jeremyruppel/sass4as
- Owner: jeremyruppel
- License: mit
- Created: 2010-08-23T21:40:06.000Z (about 14 years ago)
- Default Branch: master
- Last Pushed: 2010-08-25T18:40:53.000Z (about 14 years ago)
- Last Synced: 2024-08-04T05:02:47.250Z (3 months ago)
- Language: ActionScript
- Homepage:
- Size: 8.83 MB
- Stars: 4
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-actionscript-sorted - sass4as - Syntactically Awesome Stylesheets for ActionScript 3 (File Formats / CSS)
README
# Sass4as
Syntactially Awesome Stylesheets for ActionScript 3, a scaled-back [Sass](http://sass-lang.com) parser for AS3.
Using CSS to externally define styles in Flash applications is a **good practice**. But in projects that have designs and clients that change and increase in complexity frequently, they become very hard to maintain and update and quickly turn into style soup.
## Enter Sass
[Sass](http://sass-lang.com) rocks. Hard. It's a new way of writing CSS, letting you use variables, selector inheritance, mixins, and helper methods to super-charge your stylesheets, all while generally reducing filesize and increasing readability.
The Sass4as project is a parser for Sass documents that converts them to native Flash StyleSheet objects. Similar to how Flash's HTML parser does not support every facet of CSS, like descendant selectors, Sass4as does not support every facet of Sass, like descendant selectors.
The goal is to support every single awesome thing Sass does that makes sense in Flash.
## How to use the SassParser
Given the stylesheet below...
/* css/site.sass */
$bold: Helvetica Neue LT Std 85 Heavy
$blue: #001bf8
base
font-family: $bold
color: $blue
header
@extend base
font-size: 24pt
body
@extend base
font-size: 14pt... loaded into a variable called sass:String.
import com.jeremyruppel.sass4as.parser.SassParser;
var parser : SassParser = new SassParser( );
var styleSheet : StyleSheet = parser.parseSass( sass );
trace( styleSheet.styleNames ); // => base, header, body
trace( styleSheet.getStyle( 'body' ).fontFamily ) // => Helvetica Neue LT Std 85 HeavyAnd there you go. Apply that sucker to your TextFields and get to work.
The default SassParser implementation also retains style definitions, so you can combine multiple stylesheets into one StyleSheet instance. *Think of the benefits for localization!*
## The Basics of Sass4as
**No curly braces**
Sass is an indentation-based language, so selector declarations do not need to be bound by curly braces
**No semicolons**For the same reason, attribute declarations do not need to end with semicolons
**No tabs**
To set a standard for indentation, selectors are declared at the start of a line and attributes are declared by inserting exactly two spaces.
**No .class or #id selectors**
Taking advantage of Flash's loose HTML parser, styles should be declared by implicit class. Meaning:
Bad:
.highlight
color: #ff00ff
TextGood:
highlight
color: #ff00ff
Text
The use of implicit style classes greatly enhances readability in your markup.The [Sass4as TextMate Bundle](http://github.com/jeremyruppel/sass4as-tmbundle) has syntax highlighting and a few useful commands to help out while editing .sass documents.
## Variables
In sass documents, you can declare variables and reference them later in your document.
$black: $121212
$font: Helvetica Neue
header
color: $black
font-family: $font
font-size: 24pt
body
color: $black
font-family: $font
font-size: 14pt**Note: A variable must be declared ahead of any reference to it in the document**
## Selector Inheritance
In sass documents, you can easily extend classes with the `@extend` directive. Attributes are assigned in order, so you can overwrite them if you wish.
font-base
color: #121212
font-family: Helvetica Neue
font-size: 12pt
display: inline
header
@extend font-base
font-size: 24pt
body
@extend font-base**Note: A class must be declared ahead of any reference to it in the document**
You can also declare the star "*" selector and all subsequent classes will inherit from it automatically.
*
display: inline
font-family: Helvetica Neue
header
font-size: 24pt
body
font-size: 12pt## Mixins
**Mixins are not yet supported by the Sass4as parser, but they're in the works**
## Helper Methods
**Helper methods are not yet supported by the Sass4as parser, but they're in the works**
## Other Notes
Block-style comments are not yet supported. Single-line comments work, though.