/Classy

Expressive, flexible, and powerful stylesheets for UIView and friends.

Primary LanguageObjective-CMIT LicenseMIT

#Classy Build Status Coverage Status

NOTICE: Classy is no longer actively maintained see: Looking for contributors

Not CSS. Instead of trying to force UIKit to fit CSS syntax, properties, conventions and constructs. Classy is a stylesheet system built from the ground up to work in harmony with UIKit. It borrows the best ideas from CSS and introduces new syntax, conventions and constructs where appropriate.

Plays nice with Interface Builder and views created in code.

For detailed usage docs visit classy.as

##Supports UIAppearance Classy supports all UIAppearance properties and methods and much more. But instead of being limited to +appearanceWhenContainedIn: and +appearance, Classy gives you much greater control over which views are styled and with what values.

##Example Stylesheets

Classy features a very flexible, nestable syntax. Classy makes { } : ; all optional so you can choose a style that suits you. It also saves you from worrying about small syntax mistakes like accidentally forgetting to end a line with a ;

You can use { } : ; to delimit your stylesheets

@import "other_stylesheet.cas";

$mainColor = #e1e1e1;

// Supports your custom UIView subclasses
MYCustomView {
  background-color: $mainColor;
  title-insets: 5, 10, 5, 10;
  > UIProgressView.tinted {
    progress-tint-color: rgb(200, 155, 110, 0.6);
    track-tint-color: yellow;
  }
}

/*
 * Supports Single or Multi-line comments
 */
^UIButton.warning, UIView.warning ^UIButton {
  title-color[state:highlighted]: #e3e3e3;
}

OR you can use whitespace to delimit your sytlesheets

@import "other_stylesheet.cas"

$mainColor = #e1e1e1

// Supports your custom UIView subclasses
MYCustomView 
  background-color $mainColor
  title-insets 5, 10, 5, 10
  > UIProgressView.tinted 
    progress-tint-color rgb(200, 155, 110, 0.6)
    track-tint-color yellow

/*
 * Supports Single or Multi-line comments
 */
^UIButton.warning, UIView.warning ^UIButton 
  title-color[state:highlighted] #e3e3e3

Live Reload

Live reload can dramatically speed up your development time, with live reload enabled you can instantenously see your stylesheet changes. Without having to rebuild and navigate back to the same spot within your app.

For more details about these features and more visit classy.as

Inspiration