Skip to content
Browse files

First pages commit.

  • Loading branch information...
0 parents commit aa15bd8ea0ae4c6a2346c282e321ba674bf964ef Chad Mazzola committed Jan 12, 2012
Showing with 1,435 additions and 0 deletions.
  1. +5 −0 .gitignore
  2. +12 −0 README.md
  3. +2 −0 _config.yml
  4. +21 −0 _layouts/default.html
  5. +31 −0 index.html
  6. +100 −0 stylesheets/application.css
  7. +63 −0 stylesheets/scss/_reset.scss
  8. +60 −0 stylesheets/scss/application.scss
  9. +29 −0 stylesheets/scss/bourbon/_bourbon.scss
  10. +170 −0 stylesheets/scss/bourbon/addons/_button.scss
  11. +4 −0 stylesheets/scss/bourbon/addons/_font-family.scss
  12. +36 −0 stylesheets/scss/bourbon/addons/_html5-input-types.scss
  13. +30 −0 stylesheets/scss/bourbon/addons/_position.scss
  14. +32 −0 stylesheets/scss/bourbon/addons/_timing-functions.scss
  15. +161 −0 stylesheets/scss/bourbon/css3/_animation.scss
  16. +7 −0 stylesheets/scss/bourbon/css3/_appearance.scss
  17. +71 −0 stylesheets/scss/bourbon/css3/_background-image.scss
  18. +15 −0 stylesheets/scss/bourbon/css3/_background-size.scss
  19. +7 −0 stylesheets/scss/bourbon/css3/_border-image.scss
  20. +59 −0 stylesheets/scss/bourbon/css3/_border-radius.scss
  21. +16 −0 stylesheets/scss/bourbon/css3/_box-shadow.scss
  22. +8 −0 stylesheets/scss/bourbon/css3/_box-sizing.scss
  23. +67 −0 stylesheets/scss/bourbon/css3/_columns.scss
  24. +67 −0 stylesheets/scss/bourbon/css3/_flex-box.scss
  25. +10 −0 stylesheets/scss/bourbon/css3/_inline-block.scss
  26. +31 −0 stylesheets/scss/bourbon/css3/_linear-gradient.scss
  27. +22 −0 stylesheets/scss/bourbon/css3/_radial-gradient.scss
  28. +19 −0 stylesheets/scss/bourbon/css3/_transform.scss
  29. +104 −0 stylesheets/scss/bourbon/css3/_transition.scss
  30. +36 −0 stylesheets/scss/bourbon/functions/_deprecated-webkit-gradient.scss
  31. +31 −0 stylesheets/scss/bourbon/functions/_golden-ratio.scss
  32. +13 −0 stylesheets/scss/bourbon/functions/_grid-width.scss
  33. +23 −0 stylesheets/scss/bourbon/functions/_linear-gradient.scss
  34. +15 −0 stylesheets/scss/bourbon/functions/_radial-gradient.scss
  35. +9 −0 stylesheets/scss/bourbon/functions/_tint-shade.scss
  36. +17 −0 stylesheets/scss/bourbon/lib/bourbon.rb
  37. +6 −0 stylesheets/scss/bourbon/lib/bourbon/sass_extensions.rb
  38. +13 −0 stylesheets/scss/bourbon/lib/bourbon/sass_extensions/functions.rb
  39. +13 −0 stylesheets/scss/bourbon/lib/bourbon/sass_extensions/functions/compact.rb
5 .gitignore
@@ -0,0 +1,5 @@
+_site
+*.swp
+*.DS_Store
+.sass-cache/*
+
12 README.md
@@ -0,0 +1,12 @@
+# Beautiful web type
+
+Suggestions for type on the web.
+
+Install Jekyll and then start the server with:
+
+ jekyll --server
+
+Install Sass and Bourbon and watch the directory with:
+
+ sass --watch stylesheets/scss:stylesheets -r ./stylesheets/scss/bourbon/lib/bourbon.rb
+
2 _config.yml
@@ -0,0 +1,2 @@
+auto: true
+
21 _layouts/default.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <meta name="description" content="">
+ <title>{{ page.title }}</title>
+ <link rel="stylesheet" href="stylesheets/application.css" media="screen">
+ <link href='http://fonts.googleapis.com/css?family=Vollkorn:400italic,400,700' rel='stylesheet' type='text/css'>
+ <link href='http://fonts.googleapis.com/css?family=Gravitas+One' rel='stylesheet' type='text/css'>
+ </head>
+
+ <body class="{{ page.keyword }}">
+
+ <section id="container">
+ {{ content }}
+ </section>
+
+ <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
+ </body>
+</html>
+
31 index.html
@@ -0,0 +1,31 @@
+---
+layout: default
+title: Hello, world
+keyword: index
+---
+
+<section class="samples">
+ <section class="sample slogan">
+ <section class="text">
+ <h1>Don&rsquo;t die</h1>
+ <h1>wondering</h1>
+ </section>
+ </section>
+
+ <section class="sample carson-poem">
+ <section class="text">
+ <h1>Catullus 101</h1>
+ <p class="poem">Many the peoples many the oceans I crossed &ndash;<br>
+ I arrive at these poor, brother, burials<br>
+ so I could give you the last gift owed to death<br>
+ and talk (why?) with mute ash.<br>
+ Now that Fortune tore you from me, you<br>
+ oh poor (wrongly) brother (wrongly) taken from me,<br>
+ now still anyway this &ndash; what a distant mood of parents<br>
+ handed down as the sad gift for burials &ndash;<br>
+ accept! soaked with tears of a brother<br>
+ and into forever, brother, farewell and farewell.</p>
+ <p class="byline">Translated by Anne Carson</p>
+ </section>
+ </section>
+</section>
100 stylesheets/application.css
@@ -0,0 +1,100 @@
+/* Global Reset
+------------------------------------------------------------------------------*/
+/* http://meyerweb.com/eric/tools/css/reset/
+ v2.0 | 20110126
+ License: none (public domain)
+*/
+html, body, div, span, applet, object, iframe,
+h1, h2, h3, h4, h5, h6, p, blockquote, pre,
+a, abbr, acronym, address, big, cite, code,
+del, dfn, em, img, ins, kbd, q, s, samp,
+small, strike, strong, sub, sup, tt, var,
+b, u, i, center,
+dl, dt, dd, ol, ul, li,
+fieldset, form, label, legend,
+table, caption, tbody, tfoot, thead, tr, th, td,
+article, aside, canvas, details, embed,
+figure, figcaption, footer, header, hgroup,
+menu, nav, output, ruby, section, summary,
+time, mark, audio, video {
+ margin: 0;
+ padding: 0;
+ border: 0;
+ font-size: 100%;
+ font: inherit;
+ vertical-align: baseline; }
+
+/* HTML5 display-role reset for older browsers */
+article, aside, details, figcaption, figure,
+footer, header, hgroup, menu, nav, section {
+ display: block; }
+
+body {
+ line-height: 1; }
+
+ol, ul {
+ list-style: none; }
+
+blockquote, q {
+ quotes: none; }
+
+blockquote:before, blockquote:after,
+q:before, q:after {
+ content: '';
+ content: none; }
+
+table {
+ border-collapse: collapse;
+ border-spacing: 0; }
+
+/* Clear Floated Elements
+------------------------------------------------------------------------------*/
+.clearfix:after {
+ clear: both;
+ content: ' ';
+ display: block;
+ font-size: 0;
+ line-height: 0;
+ visibility: hidden;
+ width: 0;
+ height: 0; }
+
+body {
+ background: #c8c8c8;
+ font-family: "helvetica neue", helvetica, arial, sans-serif; }
+
+.sample {
+ padding: 150px 0; }
+ .sample.carson-poem {
+ background: #fcfaff; }
+ .sample.carson-poem .text {
+ margin: 0 0 0 150px;
+ width: 500px; }
+ .sample.carson-poem .text h1 {
+ color: #070707;
+ font: 400 16px/16px Vollkorn;
+ margin: 0 0 18px 0; }
+ .sample.carson-poem .text p.poem {
+ color: #272727;
+ font: 400 16px/24px Vollkorn;
+ font-style: italic; }
+ .sample.carson-poem .text p.byline {
+ color: #555;
+ font: 400 12px/24px Vollkorn;
+ font-style: normal;
+ margin: 6px 0 0 0; }
+ .sample.slogan {
+ background: #c00;
+ text-align: center; }
+ .sample.slogan .text {
+ margin: 0 auto;
+ width: 700px; }
+ .sample.slogan h1 {
+ border-bottom: 6px solid #090909;
+ color: #090909;
+ display: inline-block;
+ font: 400 64px/56px "Gravitas One";
+ letter-spacing: -4px;
+ margin: 0 0 20px 0;
+ padding: 0 4px;
+ text-transform: uppercase; }
63 stylesheets/scss/_reset.scss
@@ -0,0 +1,63 @@
+/* Global Reset
+------------------------------------------------------------------------------*/
+/* http://meyerweb.com/eric/tools/css/reset/
+ v2.0 | 20110126
+ License: none (public domain)
+*/
+html, body, div, span, applet, object, iframe,
+h1, h2, h3, h4, h5, h6, p, blockquote, pre,
+a, abbr, acronym, address, big, cite, code,
+del, dfn, em, img, ins, kbd, q, s, samp,
+small, strike, strong, sub, sup, tt, var,
+b, u, i, center,
+dl, dt, dd, ol, ul, li,
+fieldset, form, label, legend,
+table, caption, tbody, tfoot, thead, tr, th, td,
+article, aside, canvas, details, embed,
+figure, figcaption, footer, header, hgroup,
+menu, nav, output, ruby, section, summary,
+time, mark, audio, video {
+ margin: 0;
+ padding: 0;
+ border: 0;
+ font-size: 100%;
+ font: inherit;
+ vertical-align: baseline;
+}
+/* HTML5 display-role reset for older browsers */
+article, aside, details, figcaption, figure,
+footer, header, hgroup, menu, nav, section {
+ display: block;
+}
+body {
+ line-height: 1;
+}
+ol, ul {
+ list-style: none;
+}
+blockquote, q {
+ quotes: none;
+}
+blockquote:before, blockquote:after,
+q:before, q:after {
+ content: '';
+ content: none;
+}
+table {
+ border-collapse: collapse;
+ border-spacing: 0;
+}
+
+/* Clear Floated Elements
+------------------------------------------------------------------------------*/
+.clearfix:after {
+ clear: both;
+ content: ' ';
+ display: block;
+ font-size: 0;
+ line-height: 0;
+ visibility: hidden;
+ width: 0;
+ height: 0;
+}
+
60 stylesheets/scss/application.scss
@@ -0,0 +1,60 @@
+@import 'reset';
+@import 'bourbon/bourbon';
+
+body {
+ background: #c8c8c8;
+ font-family: "helvetica neue", helvetica, arial, sans-serif;
+}
+
+.sample {
+ padding: 150px 0;
+
+ &.carson-poem {
+ background: #fcfaff;
+
+ .text {
+ margin: 0 0 0 150px;
+ width: 500px;
+
+ h1 {
+ color: #070707;
+ font: 400 16px/16px Vollkorn;
+ margin: 0 0 18px 0;
+ }
+
+ p.poem {
+ color: #272727;
+ font: 400 16px/24px Vollkorn;
+ font-style: italic;
+ }
+
+ p.byline {
+ color: #555;
+ font: 400 12px/24px Vollkorn;
+ font-style: normal;
+ margin: 6px 0 0 0;
+ }
+ }
+ }
+
+ &.slogan {
+ background: #c00;
+ text-align: center;
+
+ .text {
+ margin: 0 auto;
+ width: 700px;
+ }
+
+ h1 {
+ border-bottom: 6px solid #090909;
+ color: #090909;
+ display: inline-block;
+ font: 400 64px/56px 'Gravitas One';
+ letter-spacing: -4px;
+ margin: 0 0 20px 0;
+ padding: 0 4px;
+ text-transform: uppercase;
+ }
+ }
+}
29 stylesheets/scss/bourbon/_bourbon.scss
@@ -0,0 +1,29 @@
+// Custom Functions
+@import "functions/deprecated-webkit-gradient";
+@import "functions/golden-ratio";
+@import "functions/grid-width";
+@import "functions/tint-shade";
+
+// CSS3 Mixins
+@import "css3/animation";
+@import "css3/appearance";
+@import "css3/background-image";
+@import "css3/background-size";
+@import "css3/border-image";
+@import "css3/border-radius";
+@import "css3/box-shadow";
+@import "css3/box-sizing";
+@import "css3/columns";
+@import "css3/flex-box";
+@import "css3/inline-block";
+@import "css3/linear-gradient";
+@import "css3/radial-gradient";
+@import "css3/transform";
+@import "css3/transition";
+
+// Addons & other mixins
+@import "addons/button";
+@import "addons/font-family";
+@import "addons/html5-input-types";
+@import "addons/position";
+@import "addons/timing-functions";
170 stylesheets/scss/bourbon/addons/_button.scss
@@ -0,0 +1,170 @@
+@mixin button ($style: simple, $base-color: #4294f0) {
+
+ @if type-of($style) == color {
+ $base-color: $style;
+ $style: simple;
+ }
+
+ @if $style == simple {
+ @include simple($base-color);
+ }
+
+ @else if $style == shiny {
+ @include shiny($base-color);
+ }
+
+ @else if $style == pill {
+ @include pill($base-color);
+ }
+}
+
+@mixin simple ($base-color) {
+ $stop-gradient: adjust-color($base-color, $saturation: 9%, $lightness: -11%);
+ $border: adjust-color($base-color, $saturation: 9%, $lightness: -14%);
+ $color: hsl(0, 0, 100%);
+ $inset-shadow: adjust-color($base-color, $saturation: -8%, $lightness: 15%);
+ $text-shadow: adjust-color($base-color, $saturation: 15%, $lightness: -18%);
+
+ @if lightness($base-color) > 70% {
+ $color: hsl(0, 0, 20%);
+ $text-shadow: adjust-color($base-color, $saturation: 10%, $lightness: 4%);
+ }
+
+ border: 1px solid $border;
+ @include border-radius (3px);
+ @include box-shadow (inset 0 1px 0 0 $inset-shadow);
+ color: $color;
+ display: inline;
+ font-size: 11px;
+ font-weight: bold;
+ @include linear-gradient ($base-color, $stop-gradient);
+ padding: 6px 18px 7px;
+ text-shadow: 0 1px 0 $text-shadow;
+ -webkit-background-clip: padding-box;
+
+ &:hover {
+ $base-color-hover: adjust-color($base-color, $saturation: -4%, $lightness: -5%);
+ $stop-gradient-hover: adjust-color($base-color, $saturation: 8%, $lightness: -14%);
+ $inset-shadow-hover: adjust-color($base-color, $saturation: -7%, $lightness: 5%);
+
+ @include box-shadow (inset 0 1px 0 0 $inset-shadow-hover);
+ cursor: pointer;
+ @include linear-gradient ($base-color-hover, $stop-gradient-hover);
+ }
+
+ &:active {
+ $border-active: adjust-color($base-color, $saturation: 9%, $lightness: -14%);
+ $inset-shadow-active: adjust-color($base-color, $saturation: 7%, $lightness: -17%);
+
+ border: 1px solid $border-active;
+ @include box-shadow (inset 0 0 8px 4px $inset-shadow-active, inset 0 0 8px 4px $inset-shadow-active, 0 1px 1px 0 #eee);
+ }
+}
+
+@mixin shiny($base-color) {
+ $second-stop: adjust-color($base-color, $red: -56, $green: -50, $blue: -33);
+ $third-stop: adjust-color($base-color, $red: -86, $green: -75, $blue: -48);
+ $fourth-stop: adjust-color($base-color, $red: -79, $green: -70, $blue: -46);
+ $border: adjust-color($base-color, $red: -117, $green: -111, $blue: -81);
+ $border-bottom: adjust-color($base-color, $red: -126, $green: -127, $blue: -122);
+ $color: hsl(0, 0, 100%);
+ $inset-shadow: adjust-color($base-color, $red: 37, $green: 29, $blue: 12);
+ $text-shadow: adjust-color($base-color, $red: -140, $green: -141, $blue: -114);
+
+ @if lightness($base-color) > 70% {
+ $color: hsl(0, 0, 20%);
+ $text-shadow: adjust-color($base-color, $saturation: 10%, $lightness: 4%);
+ }
+
+ @include linear-gradient(top, $base-color 0%, $second-stop 50%, $third-stop 50%, $fourth-stop 100%);
+ border: 1px solid $border;
+ border-bottom: 1px solid $border-bottom;
+ @include border-radius(5px);
+ @include box-shadow(inset 0 1px 0 0 $inset-shadow);
+ color: $color;
+ display: inline;
+ font-size: 14px;
+ font-weight: bold;
+ padding: 7px 20px 8px;
+ text-decoration: none;
+ text-align: center;
+ text-shadow: 0 -1px 1px $text-shadow;
+
+ &:hover {
+ $first-stop-hover: adjust-color($base-color, $red: -13, $green: -15, $blue: -18);
+ $second-stop-hover: adjust-color($base-color, $red: -66, $green: -62, $blue: -51);
+ $third-stop-hover: adjust-color($base-color, $red: -93, $green: -85, $blue: -66);
+ $fourth-stop-hover: adjust-color($base-color, $red: -86, $green: -80, $blue: -63);
+
+ @include linear-gradient(top, $first-stop-hover 0%, $second-stop-hover 50%, $third-stop-hover 50%, $fourth-stop-hover 100%);
+ cursor: pointer;
+ }
+
+ &:active {
+ $inset-shadow-active: adjust-color($base-color, $red: -111, $green: -116, $blue: -122);
+
+ @include box-shadow(inset 0 0 20px 0 $inset-shadow-active, 0 1px 0 #fff);
+ }
+}
+
+@mixin pill($base-color) {
+ $stop-gradient: adjust-color($base-color, $hue: 8, $saturation: 14%, $lightness: -10%);
+ $border-top: adjust-color($base-color, $hue: -1, $saturation: -30%, $lightness: -15%);
+ $border-sides: adjust-color($base-color, $hue: 4, $saturation: -21%, $lightness: -21%);
+ $border-bottom: adjust-color($base-color, $hue: 8, $saturation: -11%, $lightness: -26%);
+ $color: hsl(0, 0, 100%);
+ $inset-shadow: adjust-color($base-color, $hue: -1, $saturation: -1%, $lightness: 7%);
+ $text-shadow: adjust-color($base-color, $hue: 5, $saturation: -19%, $lightness: -15%);
+
+ @if lightness($base-color) > 70% {
+ $color: hsl(0, 0, 20%);
+ $text-shadow: adjust-color($base-color, $saturation: 10%, $lightness: 4%);
+ }
+
+ @include linear-gradient ($base-color, $stop-gradient);
+ border: 1px solid $border-top;
+ border-color: $border-top $border-sides $border-bottom;
+ @include border-radius(16px);
+ @include box-shadow(inset 0 1px 0 0 $inset-shadow, 0 1px 2px 0 #b3b3b3);
+ color: $color;
+ display: inline;
+ font-size: 11px;
+ font-weight: normal;
+ line-height: 1;
+ padding: 3px 16px 5px;
+ text-align: center;
+ text-shadow: 0 -1px 1px $text-shadow;
+ -webkit-background-clip: padding-box;
+
+ &:hover {
+ $base-color-hover: adjust-color($base-color, $lightness: -4.5%);
+ $stop-gradient-hover: adjust-color($base-color, $hue: 8, $saturation: -4%, $lightness: -15.5%);
+ $border-top: adjust-color($base-color, $hue: -1, $saturation: -17%, $lightness: -21%);
+ $border-sides: adjust-color($base-color, $hue: 4, $saturation: -2%, $lightness: -27%);
+ $border-bottom: adjust-color($base-color, $hue: 8, $saturation: 13.5%, $lightness: -32%);
+ $inset-shadow-hover: adjust-color($base-color, $saturation: -1%, $lightness: 3%);
+ $text-shadow-hover: adjust-color($base-color, $hue: 5, $saturation: -5%, $lightness: -22%);
+
+ @include linear-gradient ($base-color-hover, $stop-gradient-hover);
+ border: 1px solid $border-top;
+ border-color: $border-top $border-sides $border-bottom;
+ @include box-shadow(inset 0 1px 0 0 $inset-shadow-hover);
+ cursor: pointer;
+ text-shadow: 0 -1px 1px $text-shadow-hover;
+ -webkit-background-clip: padding-box;
+ }
+
+ &:active {
+ $active-color: adjust-color($base-color, $hue: 4, $saturation: -12%, $lightness: -10%);
+ $border-active: adjust-color($base-color, $hue: 6, $saturation: -2.5%, $lightness: -30%);
+ $border-bottom-active: adjust-color($base-color, $hue: 11, $saturation: 6%, $lightness: -31%);
+ $inset-shadow-active: adjust-color($base-color, $hue: 9, $saturation: 2%, $lightness: -21.5%);
+ $text-shadow-active: adjust-color($base-color, $hue: 5, $saturation: -12%, $lightness: -21.5%);
+
+ background: $active-color;
+ border: 1px solid $border-active;
+ border-bottom: 1px solid $border-bottom-active;
+ @include box-shadow(inset 0 0 6px 3px $inset-shadow-active, 0 1px 0 0 #fff);
+ text-shadow: 0 -1px 1px $text-shadow-active;
+ }
+}
4 stylesheets/scss/bourbon/addons/_font-family.scss
@@ -0,0 +1,4 @@
+$georgia: Georgia, Cambria, "Times New Roman", Times, serif;
+$helvetica: "Helvetica Neue", Helvetica, Arial, sans-serif;
+$lucida-grande: "Lucida Grande", Tahoma, Verdana, Arial, sans-serif;
+$verdana: Verdana, Geneva, sans-serif;
36 stylesheets/scss/bourbon/addons/_html5-input-types.scss
@@ -0,0 +1,36 @@
+//************************************************************************//
+// Generate a variable ($all-text-inputs) with a list of all html5
+// input types that have a text-based input, excluding textarea.
+// http://diveintohtml5.org/forms.html
+//************************************************************************//
+$inputs-list: 'input[type="email"]',
+ 'input[type="number"]',
+ 'input[type="password"]',
+ 'input[type="search"]',
+ 'input[type="tel"]',
+ 'input[type="text"]',
+ 'input[type="url"]',
+
+ // Webkit & Gecko may change the display of these in the future
+ 'input[type="color"]',
+ 'input[type="date"]',
+ 'input[type="datetime"]',
+ 'input[type="datetime-local"]',
+ 'input[type="month"]',
+ 'input[type="time"]',
+ 'input[type="week"]';
+
+$unquoted-inputs-list: ();
+
+@each $input-type in $inputs-list {
+ $unquoted-inputs-list: append($unquoted-inputs-list, unquote($input-type), comma);
+}
+
+$all-text-inputs: $unquoted-inputs-list;
+
+// You must use interpolation on the variable:
+// #{$all-text-inputs}
+//************************************************************************//
+// #{$all-text-inputs}, textarea {
+// border: 1px solid red;
+// }
30 stylesheets/scss/bourbon/addons/_position.scss
@@ -0,0 +1,30 @@
+@mixin position ($position: relative, $coordinates: 0 0 0 0) {
+
+ @if type-of($position) == list {
+ $coordinates: $position;
+ $position: relative;
+ }
+
+ $top: nth($coordinates, 1);
+ $right: nth($coordinates, 2);
+ $bottom: nth($coordinates, 3);
+ $left: nth($coordinates, 4);
+
+ position: $position;
+
+ @if not(unitless($top)) {
+ top: $top;
+ }
+
+ @if not(unitless($right)) {
+ right: $right;
+ }
+
+ @if not(unitless($bottom)) {
+ bottom: $bottom;
+ }
+
+ @if not(unitless($left)) {
+ left: $left;
+ }
+}
32 stylesheets/scss/bourbon/addons/_timing-functions.scss
@@ -0,0 +1,32 @@
+// CSS cubic-bezier timing functions. Timing functions courtesy of jquery.easie (github.com/jaukia/easie)
+// Timing functions are the same as demo'ed here: http://jqueryui.com/demos/effect/easing.html
+
+// EASE IN
+$ease-in-quad: cubic-bezier(0.550, 0.085, 0.680, 0.530);
+$ease-in-cubic: cubic-bezier(0.550, 0.055, 0.675, 0.190);
+$ease-in-quart: cubic-bezier(0.895, 0.030, 0.685, 0.220);
+$ease-in-quint: cubic-bezier(0.755, 0.050, 0.855, 0.060);
+$ease-in-sine: cubic-bezier(0.470, 0.000, 0.745, 0.715);
+$ease-in-expo: cubic-bezier(0.950, 0.050, 0.795, 0.035);
+$ease-in-circ: cubic-bezier(0.600, 0.040, 0.980, 0.335);
+$ease-in-back: cubic-bezier(0.600, -0.280, 0.735, 0.045);
+
+// EASE OUT
+$ease-out-quad: cubic-bezier(0.250, 0.460, 0.450, 0.940);
+$ease-out-cubic: cubic-bezier(0.215, 0.610, 0.355, 1.000);
+$ease-out-quart: cubic-bezier(0.165, 0.840, 0.440, 1.000);
+$ease-out-quint: cubic-bezier(0.230, 1.000, 0.320, 1.000);
+$ease-out-sine: cubic-bezier(0.390, 0.575, 0.565, 1.000);
+$ease-out-expo: cubic-bezier(0.190, 1.000, 0.220, 1.000);
+$ease-out-circ: cubic-bezier(0.075, 0.820, 0.165, 1.000);
+$ease-out-back: cubic-bezier(0.175, 0.885, 0.320, 1.275);
+
+// EASE IN OUT
+$ease-in-out-quad: cubic-bezier(0.455, 0.030, 0.515, 0.955);
+$ease-in-out-cubic: cubic-bezier(0.645, 0.045, 0.355, 1.000);
+$ease-in-out-quart: cubic-bezier(0.770, 0.000, 0.175, 1.000);
+$ease-in-out-quint: cubic-bezier(0.860, 0.000, 0.070, 1.000);
+$ease-in-out-sine: cubic-bezier(0.445, 0.050, 0.550, 0.950);
+$ease-in-out-expo: cubic-bezier(1.000, 0.000, 0.000, 1.000);
+$ease-in-out-circ: cubic-bezier(0.785, 0.135, 0.150, 0.860);
+$ease-in-out-back: cubic-bezier(0.680, -0.550, 0.265, 1.550);
161 stylesheets/scss/bourbon/css3/_animation.scss
@@ -0,0 +1,161 @@
+// http://www.w3.org/TR/css3-animations/#the-animation-name-property-
+// Each of these mixins support comma separated lists of values, which allows different transitions for individual properties to be described in a single style rule. Each value in the list corresponds to the value at that same position in the other properties.
+
+@mixin animation-name ($name-1,
+ $name-2: false, $name-3: false,
+ $name-4: false, $name-5: false,
+ $name-6: false, $name-7: false,
+ $name-8: false, $name-9: false)
+ {
+ $full: compact($name-1, $name-2, $name-3, $name-4,
+ $name-5, $name-6, $name-7, $name-8, $name-9);
+
+ -webkit-animation-name: $full;
+ -moz-animation-name: $full;
+ animation-name: $full;
+}
+
+
+@mixin animation-duration ($time-1: 0,
+ $time-2: false, $time-3: false,
+ $time-4: false, $time-5: false,
+ $time-6: false, $time-7: false,
+ $time-8: false, $time-9: false)
+ {
+ $full: compact($time-1, $time-2, $time-3, $time-4,
+ $time-5, $time-6, $time-7, $time-8, $time-9);
+
+ -webkit-animation-duration: $full;
+ -moz-animation-duration: $full;
+ animation-duration: $full;
+}
+
+
+@mixin animation-timing-function ($motion-1: ease,
+// ease | linear | ease-in | ease-out | ease-in-out
+ $motion-2: false, $motion-3: false,
+ $motion-4: false, $motion-5: false,
+ $motion-6: false, $motion-7: false,
+ $motion-8: false, $motion-9: false)
+ {
+ $full: compact($motion-1, $motion-2, $motion-3, $motion-4,
+ $motion-5, $motion-6, $motion-7, $motion-8, $motion-9);
+
+ -webkit-animation-timing-function: $full;
+ -moz-animation-timing-function: $full;
+ animation-timing-function: $full;
+}
+
+
+@mixin animation-iteration-count ($value-1: 1,
+// infinite | <number>
+ $value-2: false, $value-3: false,
+ $value-4: false, $value-5: false,
+ $value-6: false, $value-7: false,
+ $value-8: false, $value-9: false)
+ {
+ $full: compact($value-1, $value-2, $value-3, $value-4,
+ $value-5, $value-6, $value-7, $value-8, $value-9);
+
+ -webkit-animation-iteration-count: $full;
+ -moz-animation-iteration-count: $full;
+ animation-iteration-count: $full;
+}
+
+
+@mixin animation-direction ($direction-1: normal,
+// normal | alternate
+ $direction-2: false, $direction-3: false,
+ $direction-4: false, $direction-5: false,
+ $direction-6: false, $direction-7: false,
+ $direction-8: false, $direction-9: false)
+ {
+ $full: compact($direction-1, $direction-2, $direction-3, $direction-4,
+ $direction-5, $direction-6, $direction-7, $direction-8, $direction-9);
+
+ -webkit-animation-direction: $full;
+ -moz-animation-direction: $full;
+ animation-direction: $full;
+}
+
+
+@mixin animation-play-state ($state-1: running,
+// running | paused
+ $state-2: false, $state-3: false,
+ $state-4: false, $state-5: false,
+ $state-6: false, $state-7: false,
+ $state-8: false, $state-9: false)
+ {
+ $full: compact($state-1, $state-2, $state-3, $state-4,
+ $state-5, $state-6, $state-7, $state-8, $state-9);
+
+ -webkit-animation-play-state: $full;
+ -moz-animation-play-state: $full;
+ animation-play-state: $full;
+}
+
+
+@mixin animation-delay ($time-1: 0,
+ $time-2: false, $time-3: false,
+ $time-4: false, $time-5: false,
+ $time-6: false, $time-7: false,
+ $time-8: false, $time-9: false)
+ {
+ $full: compact($time-1, $time-2, $time-3, $time-4,
+ $time-5, $time-6, $time-7, $time-8, $time-9);
+
+ -webkit-animation-delay: $full;
+ -moz-animation-delay: $full;
+ animation-delay: $full;
+}
+
+
+@mixin animation-fill-mode ($mode-1: none,
+// http://goo.gl/l6ckm
+// none | forwards | backwards | both
+ $mode-2: false, $mode-3: false,
+ $mode-4: false, $mode-5: false,
+ $mode-6: false, $mode-7: false,
+ $mode-8: false, $mode-9: false)
+ {
+ $full: compact($mode-1, $mode-2, $mode-3, $mode-4,
+ $mode-5, $mode-6, $mode-7, $mode-8, $mode-9);
+
+ -webkit-animation-fill-mode: $full;
+ -moz-animation-fill-mode: $full;
+ animation-fill-mode: $full;
+}
+
+
+// Shorthand for a basic animation. Supports multiple parentheses-deliminated values for each variable.
+// Example: @include animation-basic((slideup, fadein), (1.0s, 2.0s), ease-in);
+@mixin animation-basic ($name, $time: 0, $motion: ease) {
+ $length-of-name: length($name);
+ $length-of-time: length($time);
+ $length-of-motion: length($motion);
+
+ @if $length-of-name > 1 {
+ @include animation-name(zip($name));
+ } @else {
+ @include animation-name( $name);
+ }
+
+ @if $length-of-time > 1 {
+ @include animation-duration(zip($time));
+ } @else {
+ @include animation-duration( $time);
+ }
+
+ @if $length-of-motion > 1 {
+ @include animation-timing-function(zip($motion));
+ } @else {
+ @include animation-timing-function( $motion);
+ }
+}
+
+// Official animation shorthand property. Needs more work to actually be useful.
+@mixin animation ($name, $duration, $timing-function, $delay, $iteration-count, $direction) {
+ -webkit-animation: $name $duration $timing-function $delay $iteration-count $direction;
+ -moz-animation: $name $duration $timing-function $delay $iteration-count $direction;
+ animation: $name $duration $timing-function $delay $iteration-count $direction;
+}
7 stylesheets/scss/bourbon/css3/_appearance.scss
@@ -0,0 +1,7 @@
+@mixin appearance ($value) {
+ -webkit-appearance: $value;
+ -moz-appearance: $value;
+ -ms-appearance: $value;
+ -o-appearance: $value;
+ appearance: $value;
+}
71 stylesheets/scss/bourbon/css3/_background-image.scss
@@ -0,0 +1,71 @@
+//************************************************************************//
+// Background-image property for adding multiple background images with
+// gradients, or for stringing multiple gradients together.
+//************************************************************************//
+@import "../functions/linear-gradient";
+@import "../functions/radial-gradient";
+
+@mixin background-image(
+ $image-1 , $image-2: false,
+ $image-3: false, $image-4: false,
+ $image-5: false, $image-6: false,
+ $image-7: false, $image-8: false,
+ $image-9: false, $image-10: false
+) {
+ $images: compact($image-1, $image-2,
+ $image-3, $image-4,
+ $image-5, $image-6,
+ $image-7, $image-8,
+ $image-9, $image-10);
+
+ background-image: add-prefix($images, webkit);
+ background-image: add-prefix($images, moz);
+ background-image: add-prefix($images, ms);
+ background-image: add-prefix($images, o);
+ background-image: add-prefix($images);
+}
+
+
+@function add-prefix($images, $vendor: false) {
+ $images-prefixed: ();
+
+ @for $i from 1 through length($images) {
+ $type: type-of(nth($images, $i)); // Get type of variable - List or String
+
+ // If variable is a list - Gradient
+ @if $type == list {
+ $gradient-type: nth(nth($images, $i), 1); // Get type of gradient (linear || radial)
+ $gradient-args: nth(nth($images, $i), 2); // Get actual gradient (red, blue)
+
+ $gradient: render-gradients($gradient-args, $gradient-type, $vendor);
+ $images-prefixed: append($images-prefixed, $gradient, comma);
+ }
+
+ // If variable is a string - Image
+ @else if $type == string {
+ $images-prefixed: join($images-prefixed, nth($images, $i), comma);
+ }
+ }
+ @return $images-prefixed;
+}
+
+
+@function render-gradients($gradients, $gradient-type, $vendor: false) {
+ $vendor-gradients: false;
+ @if $vendor {
+ $vendor-gradients: -#{$vendor}-#{$gradient-type}-gradient($gradients);
+ }
+
+ @else if $vendor == false {
+ $vendor-gradients: "#{$gradient-type}-gradient(#{$gradients})";
+ $vendor-gradients: unquote($vendor-gradients);
+ }
+ @return $vendor-gradients;
+}
+
+//Examples:
+ //@include background-image(linear-gradient(top, orange, red));
+ //@include background-image(radial-gradient(50% 50%, cover circle, orange, red));
+ //@include background-image(url("/images/a.png"), linear-gradient(orange, red));
+ //@include background-image(url("image.png"), linear-gradient(orange, red), url("image.png"));
+ //@include background-image(linear-gradient(hsla(0, 100%, 100%, 0.25) 0%, hsla(0, 100%, 100%, 0.08) 50%, transparent 50%), linear-gradient(orange, red);
15 stylesheets/scss/bourbon/css3/_background-size.scss
@@ -0,0 +1,15 @@
+@mixin background-size ($length-1,
+ $length-2: false, $length-3: false,
+ $length-4: false, $length-5: false,
+ $length-6: false, $length-7: false,
+ $length-8: false, $length-9: false)
+ {
+ $full: compact($length-1, $length-2, $length-3, $length-4,
+ $length-5, $length-6, $length-7, $length-8, $length-9);
+
+ -webkit-background-size: $full;
+ -moz-background-size: $full;
+ -ms-background-size: $full;
+ -o-background-size: $full;
+ background-size: $full;
+}
7 stylesheets/scss/bourbon/css3/_border-image.scss
@@ -0,0 +1,7 @@
+@mixin border-image ($image) {
+ -webkit-border-image: $image;
+ -moz-border-image: $image;
+ -ms-border-image: $image;
+ -o-border-image: $image;
+ border-image: $image;
+}
59 stylesheets/scss/bourbon/css3/_border-radius.scss
@@ -0,0 +1,59 @@
+@mixin border-radius ($radii) {
+ -webkit-border-radius: $radii;
+ -moz-border-radius: $radii;
+ -ms-border-radius: $radii;
+ -o-border-radius: $radii;
+ border-radius: $radii;
+}
+
+@mixin border-top-left-radius($radii) {
+ -webkit-border-top-left-radius: $radii;
+ -moz-border-top-left-radius: $radii;
+ -ms-border-top-left-radius: $radii;
+ -o-border-top-left-radius: $radii;
+ border-top-left-radius: $radii;
+}
+
+@mixin border-top-right-radius($radii) {
+ -webkit-border-top-right-radius: $radii;
+ -moz-border-top-right-radius: $radii;
+ -ms-border-top-right-radius: $radii;
+ -o-border-top-right-radius: $radii;
+ border-top-right-radius: $radii;
+}
+
+@mixin border-bottom-left-radius($radii) {
+ -webkit-border-bottom-left-radius: $radii;
+ -moz-border-bottom-left-radius: $radii;
+ -ms-border-bottom-left-radius: $radii;
+ -o-border-bottom-left-radius: $radii;
+ border-bottom-left-radius: $radii;
+}
+
+@mixin border-bottom-right-radius($radii) {
+ -webkit-border-bottom-right-radius: $radii;
+ -moz-border-bottom-right-radius: $radii;
+ -ms-border-bottom-right-radius: $radii;
+ -o-border-bottom-right-radius: $radii;
+ border-bottom-right-radius: $radii;
+}
+
+@mixin border-top-radius($radii) {
+ @include border-top-left-radius($radii);
+ @include border-top-right-radius($radii);
+}
+
+@mixin border-right-radius($radii) {
+ @include border-top-right-radius($radii);
+ @include border-bottom-right-radius($radii);
+}
+
+@mixin border-bottom-radius($radii) {
+ @include border-bottom-left-radius($radii);
+ @include border-bottom-right-radius($radii);
+}
+
+@mixin border-left-radius($radii) {
+ @include border-top-left-radius($radii);
+ @include border-bottom-left-radius($radii);
+}
16 stylesheets/scss/bourbon/css3/_box-shadow.scss
@@ -0,0 +1,16 @@
+// Box-Shadow Mixin Requires Sass v3.1.1+
+@mixin box-shadow ($shadow-1,
+ $shadow-2: false, $shadow-3: false,
+ $shadow-4: false, $shadow-5: false,
+ $shadow-6: false, $shadow-7: false,
+ $shadow-8: false, $shadow-9: false)
+ {
+ $full: compact($shadow-1, $shadow-2, $shadow-3, $shadow-4,
+ $shadow-5, $shadow-6, $shadow-7, $shadow-8, $shadow-9);
+
+ -webkit-box-shadow: $full;
+ -moz-box-shadow: $full;
+ -ms-box-shadow: $full;
+ -o-box-shadow: $full;
+ box-shadow: $full;
+}
8 stylesheets/scss/bourbon/css3/_box-sizing.scss
@@ -0,0 +1,8 @@
+@mixin box-sizing ($box) {
+// content-box | border-box | inherit
+ -webkit-box-sizing: $box;
+ -moz-box-sizing: $box;
+ -ms-box-sizing: $box;
+ -o-box-sizing: $box;
+ box-sizing: $box;
+}
67 stylesheets/scss/bourbon/css3/_columns.scss
@@ -0,0 +1,67 @@
+@mixin columns($arg: auto) {
+// <column-count> || <column-width>
+ -webkit-columns: $arg;
+ -moz-columns: $arg;
+ columns: $arg;
+}
+
+@mixin column-count($int: auto) {
+// auto || integer
+ -webkit-column-count: $int;
+ -moz-column-count: $int;
+ column-count: $int;
+}
+
+@mixin column-gap($length: normal) {
+// normal || length
+ -webkit-column-gap: $length;
+ -moz-column-gap: $length;
+ column-gap: $length;
+}
+
+@mixin column-fill($arg: auto) {
+// auto || length
+ -webkit-columns-fill: $arg;
+ -moz-columns-fill: $arg;
+ columns-fill: $arg;
+}
+
+@mixin column-rule($arg) {
+// <border-width> || <border-style> || <color>
+ -webkit-column-rule: $arg;
+ -moz-column-rule: $arg;
+ column-rule: $arg;
+}
+
+@mixin column-rule-color($color) {
+ -webkit-column-rule-color: $color;
+ -moz-column-rule-color: $color;
+ column-rule-color: $color;
+}
+
+@mixin column-rule-style($style: none) {
+// none | hidden | dashed | dotted | double | groove | inset | inset | outset | ridge | solid
+ -webkit-column-rule-style: $style;
+ -moz-column-rule-style: $style;
+ column-rule-style: $style;
+}
+
+@mixin column-rule-width ($width: none) {
+ -webkit-column-rule-width: $width;
+ -moz-column-rule-width: $width;
+ column-rule-width: $width;
+}
+
+@mixin column-span($arg: none) {
+// none || all
+ -webkit-column-span: $arg;
+ -moz-column-span: $arg;
+ column-span: $arg;
+}
+
+@mixin column-width($length: auto) {
+// auto || length
+ -webkit-column-width: $length;
+ -moz-column-width: $length;
+ column-width: $length;
+}
67 stylesheets/scss/bourbon/css3/_flex-box.scss
@@ -0,0 +1,67 @@
+// CSS3 Flexible Box Model and property defaults
+
+// Custom shorthand notation for flexbox
+@mixin box($orient: inline-axis, $pack: start, $align: stretch) {
+ @include display-box;
+ @include box-orient($orient);
+ @include box-pack($pack);
+ @include box-align($align);
+}
+
+@mixin display-box {
+ display: -webkit-box;
+ display: -moz-box;
+ display: box;
+}
+
+@mixin box-orient($orient: inline-axis) {
+// horizontal|vertical|inline-axis|block-axis|inherit
+ -webkit-box-orient: $orient;
+ -moz-box-orient: $orient;
+ box-orient: $orient;
+}
+
+@mixin box-pack($pack: start) {
+// start|end|center|justify
+ -webkit-box-pack: $pack;
+ -moz-box-pack: $pack;
+ box-pack: $pack;
+}
+
+@mixin box-align($align: stretch) {
+// start|end|center|baseline|stretch
+ -webkit-box-align: $align;
+ -moz-box-align: $align;
+ box-align: $align;
+}
+
+@mixin box-direction($direction: normal) {
+// normal|reverse|inherit
+ -webkit-box-direction: $direction;
+ -moz-box-direction: $direction;
+ box-direction: $direction;
+}
+@mixin box-lines($lines: single) {
+// single|multiple
+ -webkit-box-lines: $lines;
+ -moz-box-lines: $lines;
+ box-lines: $lines;
+}
+
+@mixin box-ordinal-group($integer: 1) {
+ -webkit-box-ordinal-group: $integer;
+ -moz-box-ordinal-group: $integer;
+ box-ordinal-group: $integer;
+}
+
+@mixin box-flex($value: 0.0) {
+ -webkit-box-flex: $value;
+ -moz-box-flex: $value;
+ box-flex: $value;
+}
+
+@mixin box-flex-group($integer: 1) {
+ -webkit-box-flex-group: $integer;
+ -moz-box-flex-group: $integer;
+ box-flex-group: $integer;
+}
10 stylesheets/scss/bourbon/css3/_inline-block.scss
@@ -0,0 +1,10 @@
+// Legacy support for inline-block in IE7 (maybe IE6)
+@mixin inline-block {
+ display: -moz-inline-box;
+ -moz-box-orient: vertical;
+ display: inline-block;
+ vertical-align: baseline;
+ zoom: 1;
+ *display: inline;
+ *vertical-align: auto;
+}
31 stylesheets/scss/bourbon/css3/_linear-gradient.scss
@@ -0,0 +1,31 @@
+@mixin linear-gradient($pos, $G1, $G2: false,
+ $G3: false, $G4: false,
+ $G5: false, $G6: false,
+ $G7: false, $G8: false,
+ $G9: false, $G10: false) {
+ // Detect what type of value exists in $pos
+ $pos-type: type-of(nth($pos, 1));
+
+ // If $pos is missing from mixin, reassign vars and add default position
+ @if ($pos-type == color) or (nth($pos, 1) == "transparent") {
+ $G10: $G9; $G9: $G8; $G8: $G7; $G7: $G6; $G6: $G5;
+ $G5: $G4; $G4: $G3; $G3: $G2; $G2: $G1; $G1: $pos;
+ $pos: top; // Default position
+ }
+
+ $full: compact($G1, $G2, $G3, $G4, $G5, $G6, $G7, $G8, $G9, $G10);
+
+ background-color: nth($G1, 1);
+ background-image: deprecated-webkit-gradient(linear, $full); // Safari <= 5.0
+ background-image: -webkit-linear-gradient($pos, $full); // Safari 5.1+, Chrome
+ background-image: -moz-linear-gradient($pos, $full);
+ background-image: -ms-linear-gradient($pos, $full);
+ background-image: -o-linear-gradient($pos, $full);
+ background-image: unquote("linear-gradient(#{$pos}, #{$full})");
+}
+
+
+// Usage: Gradient position is optional, default is top. Position can be a degree. Color stops are optional as well.
+// @include linear-gradient(#1e5799, #2989d8);
+// @include linear-gradient(top, #1e5799 0%, #2989d8 50%);
+// @include linear-gradient(50deg, rgba(10, 10, 10, 0.5) 0%, #2989d8 50%, #207cca 51%, #7db9e8 100%);
22 stylesheets/scss/bourbon/css3/_radial-gradient.scss
@@ -0,0 +1,22 @@
+// Requires Sass 3.1+
+@mixin radial-gradient($pos, $shape-size,
+ $G1, $G2,
+ $G3: false, $G4: false,
+ $G5: false, $G6: false,
+ $G7: false, $G8: false,
+ $G9: false, $G10: false) {
+
+ $full: compact($G1, $G2, $G3, $G4, $G5, $G6, $G7, $G8, $G9, $G10);
+
+ background-color: nth($G1, 1);
+ background-image: deprecated-webkit-gradient(radial, $full); // Safari <= 5.0
+ background-image: -webkit-radial-gradient($pos, $shape-size, $full);
+ background-image: -moz-radial-gradient($pos, $shape-size, $full);
+ background-image: -ms-radial-gradient($pos, $shape-size, $full);
+ background-image: -o-radial-gradient($pos, $shape-size, $full);
+ background-image: unquote("radial-gradient(#{$pos}, #{$shape-size}, #{$full})");
+}
+
+// Usage: Gradient position and shape-size are required. Color stops are optional.
+// @include radial-gradient(50% 50%, circle cover, #1e5799, #efefef);
+// @include radial-gradient(50% 50%, circle cover, #eee 10%, #1e5799 30%, #efefef);
19 stylesheets/scss/bourbon/css3/_transform.scss
@@ -0,0 +1,19 @@
+@mixin transform($property: none) {
+// none | <transform-function>
+ -webkit-transform: $property;
+ -moz-transform: $property;
+ -ms-transform: $property;
+ -o-transform: $property;
+ transform: $property;
+}
+
+@mixin transform-origin($axes: 50%) {
+// x-axis - left | center | right | length | %
+// y-axis - top | center | bottom | length | %
+// z-axis - length
+ -webkit-transform-origin: $axes;
+ -moz-transform-origin: $axes;
+ -ms-transform-origin: $axes;
+ -o-transform-origin: $axes;
+ transform-origin: $axes;
+}
104 stylesheets/scss/bourbon/css3/_transition.scss
@@ -0,0 +1,104 @@
+// Shorthand mixin. Supports multiple parentheses-deliminated values for each variable.
+// Example: @include transition (all, 2.0s, ease-in-out);
+// @include transition ((opacity, width), (1.0s, 2.0s), ease-in, (0, 2s));
+// @include transition ($property:(opacity, width), $delay: (1.5s, 2.5s));
+
+@mixin transition ($property: all, $duration: 0.15s, $timing-function: ease-out, $delay: 0) {
+
+ // Detect # of args passed into each variable
+ $length-of-property: length($property);
+ $length-of-duration: length($duration);
+ $length-of-timing-function: length($timing-function);
+ $length-of-delay: length($delay);
+
+ @if $length-of-property > 1 {
+ @include transition-property(zip($property)); }
+ @else {
+ @include transition-property( $property);
+ }
+
+ @if $length-of-duration > 1 {
+ @include transition-duration(zip($duration)); }
+ @else {
+ @include transition-duration( $duration);
+ }
+
+ @if $length-of-timing-function > 1 {
+ @include transition-timing-function(zip($timing-function)); }
+ @else {
+ @include transition-timing-function( $timing-function);
+ }
+
+ @if $length-of-delay > 1 {
+ @include transition-delay(zip($delay)); }
+ @else {
+ @include transition-delay( $delay);
+ }
+}
+
+
+@mixin transition-property ($prop-1: all,
+ $prop-2: false, $prop-3: false,
+ $prop-4: false, $prop-5: false,
+ $prop-6: false, $prop-7: false,
+ $prop-8: false, $prop-9: false)
+ {
+ $full: compact($prop-1, $prop-2, $prop-3, $prop-4, $prop-5,
+ $prop-6, $prop-7, $prop-8, $prop-9);
+
+ -webkit-transition-property: $full;
+ -moz-transition-property: $full;
+ -ms-transition-property: $full;
+ -o-transition-property: $full;
+ transition-property: $full;
+}
+
+@mixin transition-duration ($time-1: 0,
+ $time-2: false, $time-3: false,
+ $time-4: false, $time-5: false,
+ $time-6: false, $time-7: false,
+ $time-8: false, $time-9: false)
+ {
+ $full: compact($time-1, $time-2, $time-3, $time-4, $time-5,
+ $time-6, $time-7, $time-8, $time-9);
+
+ -webkit-transition-duration: $full;
+ -moz-transition-duration: $full;
+ -ms-transition-duration: $full;
+ -o-transition-duration: $full;
+ transition-duration: $full;
+}
+
+@mixin transition-timing-function ($motion-1: ease,
+ $motion-2: false, $motion-3: false,
+ $motion-4: false, $motion-5: false,
+ $motion-6: false, $motion-7: false,
+ $motion-8: false, $motion-9: false)
+ {
+ $full: compact($motion-1, $motion-2, $motion-3, $motion-4, $motion-5,
+ $motion-6, $motion-7, $motion-8, $motion-9);
+
+// ease | linear | ease-in | ease-out | ease-in-out | cubic-bezier()
+ -webkit-transition-timing-function: $full;
+ -moz-transition-timing-function: $full;
+ -ms-transition-timing-function: $full;
+ -o-transition-timing-function: $full;
+ transition-timing-function: $full;
+}
+
+@mixin transition-delay ($time-1: 0,
+ $time-2: false, $time-3: false,
+ $time-4: false, $time-5: false,
+ $time-6: false, $time-7: false,
+ $time-8: false, $time-9: false)
+ {
+ $full: compact($time-1, $time-2, $time-3, $time-4, $time-5,
+ $time-6, $time-7, $time-8, $time-9);
+
+ -webkit-transition-delay: $full;
+ -moz-transition-delay: $full;
+ -ms-transition-delay: $full;
+ -o-transition-delay: $full;
+ transition-delay: $full;
+}
+
36 stylesheets/scss/bourbon/functions/_deprecated-webkit-gradient.scss
@@ -0,0 +1,36 @@
+// Render Deprecated Webkit Gradient - Linear || Radial
+//************************************************************************//
+@function deprecated-webkit-gradient($type, $full) {
+ $gradient-list: ();
+ $gradient: false;
+ $full-length: length($full);
+ $percentage: false;
+ $gradient-type: $type;
+
+ @for $i from 1 through $full-length {
+ $gradient: nth($full, $i);
+
+ @if length($gradient) == 2 {
+ $color-stop: color-stop(nth($gradient, 2), nth($gradient, 1));
+ $gradient-list: join($gradient-list, $color-stop, comma);
+ }
+ @else {
+ @if $i == $full-length {
+ $percentage: 100%;
+ }
+ @else {
+ $percentage: ($i - 1) * (100 / ($full-length - 1)) + "%";
+ }
+ $color-stop: color-stop(unquote($percentage), $gradient);
+ $gradient-list: join($gradient-list, $color-stop, comma);
+ }
+ }
+
+ @if $type == radial {
+ $gradient: -webkit-gradient(radial, center center, 0, center center, 460, $gradient-list);
+ }
+ @else if $type == linear {
+ $gradient: -webkit-gradient(linear, left top, left bottom, $gradient-list);
+ }
+ @return $gradient;
+}
31 stylesheets/scss/bourbon/functions/_golden-ratio.scss
@@ -0,0 +1,31 @@
+@function golden-ratio($value, $increment) {
+ @if $increment > 0 {
+ @for $i from 1 through $increment {
+ $value: ($value * 1.618);
+ }
+ }
+
+ @if $increment < 0 {
+ $increment: abs($increment);
+ @for $i from 1 through $increment {
+ $value: ($value / 1.618);
+ }
+ }
+
+ @return $value;
+}
+
+// div {
+// Increment Up GR with positive value
+// font-size: golden-ratio(14px, 1); // returns: 22.652px
+//
+// Increment Down GR with negative value
+// font-size: golden-ratio(14px, -1); // returns: 8.653px
+//
+// Can be used with ceil(round up) or floor(round down)
+// font-size: floor( golden-ratio(14px, 1) ); // returns: 22px
+// font-size: ceil( golden-ratio(14px, 1) ); // returns: 23px
+// }
+//
+// modularscale.com
+// goldenratiocalculator.com
13 stylesheets/scss/bourbon/functions/_grid-width.scss
@@ -0,0 +1,13 @@
+@function grid-width($n) {
+ @return $n * $gw-column + ($n - 1) * $gw-gutter;
+}
+
+// The $gw-column and $gw-gutter variables must be defined in your base stylesheet to properly use the grid-width function.
+//
+// $gw-column: 100px; // Column Width
+// $gw-gutter: 40px; // Gutter Width
+//
+// div {
+// width: grid-width(4); // returns 520px;
+// margin-left: $gw-gutter; // returns 40px;
+// }
23 stylesheets/scss/bourbon/functions/_linear-gradient.scss
@@ -0,0 +1,23 @@
+@function linear-gradient($pos: top, $G1: false, $G2: false,
+ $G3: false, $G4: false,
+ $G5: false, $G6: false,
+ $G7: false, $G8: false,
+ $G9: false, $G10: false) {
+
+ // Detect what type of value exists in $pos
+ $pos-type: type-of(nth($pos, 1));
+
+ // If $pos is missing from mixin, reassign vars and add default position
+ @if ($pos-type == color) or (nth($pos, 1) == "transparent") {
+ $G10: $G9; $G9: $G8; $G8: $G7; $G7: $G6; $G6: $G5;
+ $G5: $G4; $G4: $G3; $G3: $G2; $G2: $G1; $G1: $pos;
+ $pos: top; // Default position
+ }
+
+ $type: linear;
+ $gradient: compact($pos, $G1, $G2, $G3, $G4, $G5, $G6, $G7, $G8, $G9, $G10);
+ $type-gradient: append($type, $gradient, comma);
+
+ @return $type-gradient;
+}
+
15 stylesheets/scss/bourbon/functions/_radial-gradient.scss
@@ -0,0 +1,15 @@
+// This function is required and used by the background-image mixin.
+@function radial-gradient($pos, $shape-size,
+ $G1, $G2,
+ $G3: false, $G4: false,
+ $G5: false, $G6: false,
+ $G7: false, $G8: false,
+ $G9: false, $G10: false) {
+
+ $type: radial;
+ $gradient: compact($pos, $shape-size, $G1, $G2, $G3, $G4, $G5, $G6, $G7, $G8, $G9, $G10);
+ $type-gradient: append($type, $gradient, comma);
+
+ @return $type-gradient;
+}
+
9 stylesheets/scss/bourbon/functions/_tint-shade.scss
@@ -0,0 +1,9 @@
+// Add percentage of white to a color
+@function tint($color, $percent){
+ @return mix(white, $color, $percent);
+}
+
+// Add percentage of black to a color
+@function shade($color, $percent){
+ @return mix(black, $color, $percent);
+}
17 stylesheets/scss/bourbon/lib/bourbon.rb
@@ -0,0 +1,17 @@
+module Bourbon
+ if defined?(Rails)
+ class Engine < ::Rails::Engine
+ require 'bourbon/engine'
+ end
+
+ module Rails
+ class Railtie < ::Rails::Railtie
+ rake_tasks do
+ load "tasks/install.rake"
+ end
+ end
+ end
+ end
+end
+
+require File.join(File.dirname(__FILE__), "/bourbon/sass_extensions")
6 stylesheets/scss/bourbon/lib/bourbon/sass_extensions.rb
@@ -0,0 +1,6 @@
+module Bourbon::SassExtensions
+end
+
+require "sass"
+
+require File.join(File.dirname(__FILE__), "/sass_extensions/functions")
13 stylesheets/scss/bourbon/lib/bourbon/sass_extensions/functions.rb
@@ -0,0 +1,13 @@
+module Bourbon::SassExtensions::Functions
+end
+
+require File.join(File.dirname(__FILE__), "/functions/compact")
+
+module Sass::Script::Functions
+ include Bourbon::SassExtensions::Functions::Compact
+end
+
+# Wierd that this has to be re-included to pick up sub-modules. Ruby bug?
+class Sass::Script::Functions::EvaluationContext
+ include Sass::Script::Functions
+end
13 stylesheets/scss/bourbon/lib/bourbon/sass_extensions/functions/compact.rb
@@ -0,0 +1,13 @@
+# Compact function pulled from compass
+module Bourbon::SassExtensions::Functions::Compact
+
+ def compact(*args)
+ sep = :comma
+ if args.size == 1 && args.first.is_a?(Sass::Script::List)
+ args = args.first.value
+ sep = args.first.separator
+ end
+ Sass::Script::List.new(args.reject{|a| !a.to_bool}, sep)
+ end
+
+end

0 comments on commit aa15bd8

Please sign in to comment.
Something went wrong with that request. Please try again.