thesis 0.1.1 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (123) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +103 -68
  3. data/app/assets/javascripts/thesis.js +1 -0
  4. data/app/assets/javascripts/thesis/thesis.coffee +250 -0
  5. data/app/assets/javascripts/thesis/utilities.coffee +13 -0
  6. data/app/assets/stylesheets/thesis.sass +4 -0
  7. data/app/assets/stylesheets/thesis/_mixins/_barber-pole.sass +5 -0
  8. data/app/assets/stylesheets/thesis/_mixins/editor.sass +15 -0
  9. data/app/assets/stylesheets/thesis/_thesis.sass +207 -0
  10. data/app/assets/stylesheets/thesis/base/_base.sass +5 -0
  11. data/app/assets/stylesheets/thesis/base/_colors.sass +6 -0
  12. data/app/assets/stylesheets/thesis/base/_fonts.sass +6 -0
  13. data/app/assets/stylesheets/thesis/base/_forms.scss +165 -0
  14. data/app/assets/stylesheets/thesis/base/_keyframes.sass +205 -0
  15. data/app/assets/stylesheets/thesis/base/bourbon/_bourbon-deprecated-upcoming.scss +8 -0
  16. data/app/assets/stylesheets/thesis/base/bourbon/_bourbon.scss +79 -0
  17. data/app/assets/stylesheets/thesis/base/bourbon/addons/_button.scss +374 -0
  18. data/app/assets/stylesheets/thesis/base/bourbon/addons/_clearfix.scss +23 -0
  19. data/app/assets/stylesheets/thesis/base/bourbon/addons/_directional-values.scss +111 -0
  20. data/app/assets/stylesheets/thesis/base/bourbon/addons/_ellipsis.scss +7 -0
  21. data/app/assets/stylesheets/thesis/base/bourbon/addons/_font-family.scss +5 -0
  22. data/app/assets/stylesheets/thesis/base/bourbon/addons/_hide-text.scss +10 -0
  23. data/app/assets/stylesheets/thesis/base/bourbon/addons/_html5-input-types.scss +86 -0
  24. data/app/assets/stylesheets/thesis/base/bourbon/addons/_position.scss +32 -0
  25. data/app/assets/stylesheets/thesis/base/bourbon/addons/_prefixer.scss +45 -0
  26. data/app/assets/stylesheets/thesis/base/bourbon/addons/_retina-image.scss +31 -0
  27. data/app/assets/stylesheets/thesis/base/bourbon/addons/_size.scss +16 -0
  28. data/app/assets/stylesheets/thesis/base/bourbon/addons/_timing-functions.scss +32 -0
  29. data/app/assets/stylesheets/thesis/base/bourbon/addons/_triangle.scss +83 -0
  30. data/app/assets/stylesheets/thesis/base/bourbon/addons/_word-wrap.scss +8 -0
  31. data/app/assets/stylesheets/thesis/base/bourbon/css3/_animation.scss +52 -0
  32. data/app/assets/stylesheets/thesis/base/bourbon/css3/_appearance.scss +3 -0
  33. data/app/assets/stylesheets/thesis/base/bourbon/css3/_backface-visibility.scss +6 -0
  34. data/app/assets/stylesheets/thesis/base/bourbon/css3/_background-image.scss +42 -0
  35. data/app/assets/stylesheets/thesis/base/bourbon/css3/_background.scss +55 -0
  36. data/app/assets/stylesheets/thesis/base/bourbon/css3/_border-image.scss +59 -0
  37. data/app/assets/stylesheets/thesis/base/bourbon/css3/_border-radius.scss +22 -0
  38. data/app/assets/stylesheets/thesis/base/bourbon/css3/_box-sizing.scss +4 -0
  39. data/app/assets/stylesheets/thesis/base/bourbon/css3/_calc.scss +4 -0
  40. data/app/assets/stylesheets/thesis/base/bourbon/css3/_columns.scss +47 -0
  41. data/app/assets/stylesheets/thesis/base/bourbon/css3/_filter.scss +5 -0
  42. data/app/assets/stylesheets/thesis/base/bourbon/css3/_flex-box.scss +321 -0
  43. data/app/assets/stylesheets/thesis/base/bourbon/css3/_font-face.scss +23 -0
  44. data/app/assets/stylesheets/thesis/base/bourbon/css3/_font-feature-settings.scss +10 -0
  45. data/app/assets/stylesheets/thesis/base/bourbon/css3/_hidpi-media-query.scss +10 -0
  46. data/app/assets/stylesheets/thesis/base/bourbon/css3/_hyphens.scss +4 -0
  47. data/app/assets/stylesheets/thesis/base/bourbon/css3/_image-rendering.scss +14 -0
  48. data/app/assets/stylesheets/thesis/base/bourbon/css3/_keyframes.scss +35 -0
  49. data/app/assets/stylesheets/thesis/base/bourbon/css3/_linear-gradient.scss +38 -0
  50. data/app/assets/stylesheets/thesis/base/bourbon/css3/_perspective.scss +8 -0
  51. data/app/assets/stylesheets/thesis/base/bourbon/css3/_placeholder.scss +8 -0
  52. data/app/assets/stylesheets/thesis/base/bourbon/css3/_radial-gradient.scss +39 -0
  53. data/app/assets/stylesheets/thesis/base/bourbon/css3/_transform.scss +15 -0
  54. data/app/assets/stylesheets/thesis/base/bourbon/css3/_transition.scss +77 -0
  55. data/app/assets/stylesheets/thesis/base/bourbon/css3/_user-select.scss +3 -0
  56. data/app/assets/stylesheets/thesis/base/bourbon/functions/_assign.scss +11 -0
  57. data/app/assets/stylesheets/thesis/base/bourbon/functions/_color-lightness.scss +13 -0
  58. data/app/assets/stylesheets/thesis/base/bourbon/functions/_flex-grid.scss +39 -0
  59. data/app/assets/stylesheets/thesis/base/bourbon/functions/_golden-ratio.scss +3 -0
  60. data/app/assets/stylesheets/thesis/base/bourbon/functions/_grid-width.scss +13 -0
  61. data/app/assets/stylesheets/thesis/base/bourbon/functions/_modular-scale.scss +66 -0
  62. data/app/assets/stylesheets/thesis/base/bourbon/functions/_px-to-em.scss +13 -0
  63. data/app/assets/stylesheets/thesis/base/bourbon/functions/_px-to-rem.scss +15 -0
  64. data/app/assets/stylesheets/thesis/base/bourbon/functions/_strip-units.scss +5 -0
  65. data/app/assets/stylesheets/thesis/base/bourbon/functions/_tint-shade.scss +9 -0
  66. data/app/assets/stylesheets/thesis/base/bourbon/functions/_transition-property-name.scss +22 -0
  67. data/app/assets/stylesheets/thesis/base/bourbon/functions/_unpack.scss +17 -0
  68. data/app/assets/stylesheets/thesis/base/bourbon/helpers/_convert-units.scss +15 -0
  69. data/app/assets/stylesheets/thesis/base/bourbon/helpers/_gradient-positions-parser.scss +13 -0
  70. data/app/assets/stylesheets/thesis/base/bourbon/helpers/_is-num.scss +8 -0
  71. data/app/assets/stylesheets/thesis/base/bourbon/helpers/_linear-angle-parser.scss +25 -0
  72. data/app/assets/stylesheets/thesis/base/bourbon/helpers/_linear-gradient-parser.scss +41 -0
  73. data/app/assets/stylesheets/thesis/base/bourbon/helpers/_linear-positions-parser.scss +61 -0
  74. data/app/assets/stylesheets/thesis/base/bourbon/helpers/_linear-side-corner-parser.scss +31 -0
  75. data/app/assets/stylesheets/thesis/base/bourbon/helpers/_radial-arg-parser.scss +69 -0
  76. data/app/assets/stylesheets/thesis/base/bourbon/helpers/_radial-gradient-parser.scss +50 -0
  77. data/app/assets/stylesheets/thesis/base/bourbon/helpers/_radial-positions-parser.scss +18 -0
  78. data/app/assets/stylesheets/thesis/base/bourbon/helpers/_render-gradients.scss +26 -0
  79. data/app/assets/stylesheets/thesis/base/bourbon/helpers/_shape-size-stripper.scss +10 -0
  80. data/app/assets/stylesheets/thesis/base/bourbon/helpers/_str-to-num.scss +50 -0
  81. data/app/assets/stylesheets/thesis/base/bourbon/settings/_asset-pipeline.scss +1 -0
  82. data/app/assets/stylesheets/thesis/base/bourbon/settings/_prefixer.scss +6 -0
  83. data/app/assets/stylesheets/thesis/base/bourbon/settings/_px-to-em.scss +1 -0
  84. data/lib/generators/thesis/install/install_generator.rb +21 -13
  85. data/lib/thesis/controllers/controller_helpers.rb +11 -5
  86. data/lib/thesis/controllers/thesis_controller.rb +16 -13
  87. data/lib/thesis/models/page.rb +29 -22
  88. data/lib/thesis/models/page_content.rb +44 -29
  89. data/lib/thesis/routing/route_constraint.rb +8 -2
  90. data/lib/thesis/routing/routes.rb +2 -3
  91. data/lib/thesis/version.rb +1 -1
  92. data/spec/factories/pages.rb +1 -1
  93. data/spec/spec_helper.rb +2 -2
  94. data/spec/{lib/thesis → thesis}/controllers/thesis_controller_spec.rb +15 -13
  95. data/spec/{lib/thesis → thesis}/models/page_content_spec.rb +4 -4
  96. data/spec/{lib/thesis → thesis}/models/page_spec.rb +0 -0
  97. data/spec/thesis/routing/thesis_routing_spec.rb +23 -0
  98. metadata +137 -56
  99. data/app/assets/javascripts/thesis/thesis.js.coffee +0 -157
  100. data/app/assets/stylesheets/thesis.css +0 -4
  101. data/app/assets/stylesheets/thesis/font-awesome/font-awesome.scss +0 -534
  102. data/app/assets/stylesheets/thesis/font/FontAwesome.otf +0 -0
  103. data/app/assets/stylesheets/thesis/font/fontawesome-webfont.eot +0 -0
  104. data/app/assets/stylesheets/thesis/font/fontawesome-webfont.svg +0 -284
  105. data/app/assets/stylesheets/thesis/font/fontawesome-webfont.ttf +0 -0
  106. data/app/assets/stylesheets/thesis/font/fontawesome-webfont.woff +0 -0
  107. data/app/assets/stylesheets/thesis/jquery-ui/images/animated-overlay.gif +0 -0
  108. data/app/assets/stylesheets/thesis/jquery-ui/images/ui-bg_flat_30_cccccc_40x100.png +0 -0
  109. data/app/assets/stylesheets/thesis/jquery-ui/images/ui-bg_flat_50_5c5c5c_40x100.png +0 -0
  110. data/app/assets/stylesheets/thesis/jquery-ui/images/ui-bg_glass_20_555555_1x400.png +0 -0
  111. data/app/assets/stylesheets/thesis/jquery-ui/images/ui-bg_glass_40_0078a3_1x400.png +0 -0
  112. data/app/assets/stylesheets/thesis/jquery-ui/images/ui-bg_glass_40_ffc73d_1x400.png +0 -0
  113. data/app/assets/stylesheets/thesis/jquery-ui/images/ui-bg_gloss-wave_25_333333_500x100.png +0 -0
  114. data/app/assets/stylesheets/thesis/jquery-ui/images/ui-bg_highlight-soft_80_eeeeee_1x100.png +0 -0
  115. data/app/assets/stylesheets/thesis/jquery-ui/images/ui-bg_inset-soft_25_000000_1x100.png +0 -0
  116. data/app/assets/stylesheets/thesis/jquery-ui/images/ui-bg_inset-soft_30_f58400_1x100.png +0 -0
  117. data/app/assets/stylesheets/thesis/jquery-ui/images/ui-icons_222222_256x240.png +0 -0
  118. data/app/assets/stylesheets/thesis/jquery-ui/images/ui-icons_4b8e0b_256x240.png +0 -0
  119. data/app/assets/stylesheets/thesis/jquery-ui/images/ui-icons_a83300_256x240.png +0 -0
  120. data/app/assets/stylesheets/thesis/jquery-ui/images/ui-icons_cccccc_256x240.png +0 -0
  121. data/app/assets/stylesheets/thesis/jquery-ui/images/ui-icons_ffffff_256x240.png +0 -0
  122. data/app/assets/stylesheets/thesis/jquery-ui/jquery-ui-1.10.2.custom.css +0 -1175
  123. data/app/assets/stylesheets/thesis/thesis.css.scss +0 -65
@@ -0,0 +1,23 @@
1
+ // Modern micro clearfix provides an easy way to contain floats without adding additional markup.
2
+ //
3
+ // Example usage:
4
+ //
5
+ // // Contain all floats within .wrapper
6
+ // .wrapper {
7
+ // @include clearfix;
8
+ // .content,
9
+ // .sidebar {
10
+ // float : left;
11
+ // }
12
+ // }
13
+
14
+ @mixin clearfix {
15
+ &:after {
16
+ content:"";
17
+ display:table;
18
+ clear:both;
19
+ }
20
+ }
21
+
22
+ // Acknowledgements
23
+ // Beat *that* clearfix: [Thierry Koblentz](http://www.css-101.org/articles/clearfix/latest-new-clearfix-so-far.php)
@@ -0,0 +1,111 @@
1
+ // directional-property mixins are shorthands
2
+ // for writing properties like the following
3
+ //
4
+ // @include margin(null 0 10px);
5
+ // ------
6
+ // margin-right: 0;
7
+ // margin-bottom: 10px;
8
+ // margin-left: 0;
9
+ //
10
+ // - or -
11
+ //
12
+ // @include border-style(dotted null);
13
+ // ------
14
+ // border-top-style: dotted;
15
+ // border-bottom-style: dotted;
16
+ //
17
+ // ------
18
+ //
19
+ // Note: You can also use false instead of null
20
+
21
+ @function collapse-directionals($vals) {
22
+ $output: null;
23
+
24
+ $A: nth( $vals, 1 );
25
+ $B: if( length($vals) < 2, $A, nth($vals, 2));
26
+ $C: if( length($vals) < 3, $A, nth($vals, 3));
27
+ $D: if( length($vals) < 2, $A, nth($vals, if( length($vals) < 4, 2, 4) ));
28
+
29
+ @if $A == 0 { $A: 0 }
30
+ @if $B == 0 { $B: 0 }
31
+ @if $C == 0 { $C: 0 }
32
+ @if $D == 0 { $D: 0 }
33
+
34
+ @if $A == $B and $A == $C and $A == $D { $output: $A }
35
+ @else if $A == $C and $B == $D { $output: $A $B }
36
+ @else if $B == $D { $output: $A $B $C }
37
+ @else { $output: $A $B $C $D }
38
+
39
+ @return $output;
40
+ }
41
+
42
+ @function contains-falsy($list) {
43
+ @each $item in $list {
44
+ @if not $item {
45
+ @return true;
46
+ }
47
+ }
48
+
49
+ @return false;
50
+ }
51
+
52
+ @mixin directional-property($pre, $suf, $vals) {
53
+ // Property Names
54
+ $top: $pre + "-top" + if($suf, "-#{$suf}", "");
55
+ $bottom: $pre + "-bottom" + if($suf, "-#{$suf}", "");
56
+ $left: $pre + "-left" + if($suf, "-#{$suf}", "");
57
+ $right: $pre + "-right" + if($suf, "-#{$suf}", "");
58
+ $all: $pre + if($suf, "-#{$suf}", "");
59
+
60
+ $vals: collapse-directionals($vals);
61
+
62
+ @if contains-falsy($vals) {
63
+ @if nth($vals, 1) { #{$top}: nth($vals, 1); }
64
+
65
+ @if length($vals) == 1 {
66
+ @if nth($vals, 1) { #{$right}: nth($vals, 1); }
67
+ } @else {
68
+ @if nth($vals, 2) { #{$right}: nth($vals, 2); }
69
+ }
70
+
71
+ // prop: top/bottom right/left
72
+ @if length($vals) == 2 {
73
+ @if nth($vals, 1) { #{$bottom}: nth($vals, 1); }
74
+ @if nth($vals, 2) { #{$left}: nth($vals, 2); }
75
+
76
+ // prop: top right/left bottom
77
+ } @else if length($vals) == 3 {
78
+ @if nth($vals, 3) { #{$bottom}: nth($vals, 3); }
79
+ @if nth($vals, 2) { #{$left}: nth($vals, 2); }
80
+
81
+ // prop: top right bottom left
82
+ } @else if length($vals) == 4 {
83
+ @if nth($vals, 3) { #{$bottom}: nth($vals, 3); }
84
+ @if nth($vals, 4) { #{$left}: nth($vals, 4); }
85
+ }
86
+
87
+ // prop: top/right/bottom/left
88
+ } @else {
89
+ #{$all}: $vals;
90
+ }
91
+ }
92
+
93
+ @mixin margin($vals...) {
94
+ @include directional-property(margin, false, $vals...);
95
+ }
96
+
97
+ @mixin padding($vals...) {
98
+ @include directional-property(padding, false, $vals...);
99
+ }
100
+
101
+ @mixin border-style($vals...) {
102
+ @include directional-property(border, style, $vals...);
103
+ }
104
+
105
+ @mixin border-color($vals...) {
106
+ @include directional-property(border, color, $vals...);
107
+ }
108
+
109
+ @mixin border-width($vals...) {
110
+ @include directional-property(border, width, $vals...);
111
+ }
@@ -0,0 +1,7 @@
1
+ @mixin ellipsis($width: 100%) {
2
+ display: inline-block;
3
+ max-width: $width;
4
+ overflow: hidden;
5
+ text-overflow: ellipsis;
6
+ white-space: nowrap;
7
+ }
@@ -0,0 +1,5 @@
1
+ $georgia: Georgia, Cambria, "Times New Roman", Times, serif;
2
+ $helvetica: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
3
+ $lucida-grande: "Lucida Grande", Tahoma, Verdana, Arial, sans-serif;
4
+ $monospace: "Bitstream Vera Sans Mono", Consolas, Courier, monospace;
5
+ $verdana: Verdana, Geneva, sans-serif;
@@ -0,0 +1,10 @@
1
+ @mixin hide-text {
2
+ overflow: hidden;
3
+
4
+ &:before {
5
+ content: "";
6
+ display: block;
7
+ width: 0;
8
+ height: 100%;
9
+ }
10
+ }
@@ -0,0 +1,86 @@
1
+ //************************************************************************//
2
+ // Generate a variable ($all-text-inputs) with a list of all html5
3
+ // input types that have a text-based input, excluding textarea.
4
+ // http://diveintohtml5.org/forms.html
5
+ //************************************************************************//
6
+ $inputs-list: 'input[type="email"]',
7
+ 'input[type="number"]',
8
+ 'input[type="password"]',
9
+ 'input[type="search"]',
10
+ 'input[type="tel"]',
11
+ 'input[type="text"]',
12
+ 'input[type="url"]',
13
+
14
+ // Webkit & Gecko may change the display of these in the future
15
+ 'input[type="color"]',
16
+ 'input[type="date"]',
17
+ 'input[type="datetime"]',
18
+ 'input[type="datetime-local"]',
19
+ 'input[type="month"]',
20
+ 'input[type="time"]',
21
+ 'input[type="week"]';
22
+
23
+ // Bare inputs
24
+ //************************************************************************//
25
+ $all-text-inputs: assign-inputs($inputs-list);
26
+
27
+ // Hover Pseudo-class
28
+ //************************************************************************//
29
+ $all-text-inputs-hover: assign-inputs($inputs-list, hover);
30
+
31
+ // Focus Pseudo-class
32
+ //************************************************************************//
33
+ $all-text-inputs-focus: assign-inputs($inputs-list, focus);
34
+
35
+
36
+
37
+ // You must use interpolation on the variable:
38
+ // #{$all-text-inputs}
39
+ // #{$all-text-inputs-hover}
40
+ // #{$all-text-inputs-focus}
41
+
42
+ // Example
43
+ //************************************************************************//
44
+ // #{$all-text-inputs}, textarea {
45
+ // border: 1px solid red;
46
+ // }
47
+
48
+
49
+
50
+ //************************************************************************//
51
+ // Generate a variable ($all-button-inputs) with a list of all html5
52
+ // input types that have a button-based input, excluding button.
53
+ //************************************************************************//
54
+ $inputs-button-list: 'input[type="button"]',
55
+ 'input[type="reset"]',
56
+ 'input[type="submit"]';
57
+
58
+ // Bare inputs
59
+ //************************************************************************//
60
+ $all-button-inputs: assign-inputs($inputs-button-list);
61
+
62
+ // Hover Pseudo-class
63
+ //************************************************************************//
64
+ $all-button-inputs-hover: assign-inputs($inputs-button-list, hover);
65
+
66
+ // Focus Pseudo-class
67
+ //************************************************************************//
68
+ $all-button-inputs-focus: assign-inputs($inputs-button-list, focus);
69
+
70
+ // Active Pseudo-class
71
+ //************************************************************************//
72
+ $all-button-inputs-active: assign-inputs($inputs-button-list, active);
73
+
74
+
75
+
76
+ // You must use interpolation on the variable:
77
+ // #{$all-button-inputs}
78
+ // #{$all-button-inputs-hover}
79
+ // #{$all-button-inputs-focus}
80
+ // #{$all-button-inputs-active}
81
+
82
+ // Example
83
+ //************************************************************************//
84
+ // #{$all-button-inputs}, button {
85
+ // border: 1px solid red;
86
+ // }
@@ -0,0 +1,32 @@
1
+ @mixin position ($position: relative, $coordinates: null null null null) {
2
+
3
+ @if type-of($position) == list {
4
+ $coordinates: $position;
5
+ $position: relative;
6
+ }
7
+
8
+ $coordinates: unpack($coordinates);
9
+
10
+ $top: nth($coordinates, 1);
11
+ $right: nth($coordinates, 2);
12
+ $bottom: nth($coordinates, 3);
13
+ $left: nth($coordinates, 4);
14
+
15
+ position: $position;
16
+
17
+ @if ($top and $top == auto) or (type-of($top) == number) {
18
+ top: $top;
19
+ }
20
+
21
+ @if ($right and $right == auto) or (type-of($right) == number) {
22
+ right: $right;
23
+ }
24
+
25
+ @if ($bottom and $bottom == auto) or (type-of($bottom) == number) {
26
+ bottom: $bottom;
27
+ }
28
+
29
+ @if ($left and $left == auto) or (type-of($left) == number) {
30
+ left: $left;
31
+ }
32
+ }
@@ -0,0 +1,45 @@
1
+ //************************************************************************//
2
+ // Example: @include prefixer(border-radius, $radii, webkit ms spec);
3
+ //************************************************************************//
4
+ // Variables located in /settings/_prefixer.scss
5
+
6
+ @mixin prefixer ($property, $value, $prefixes) {
7
+ @each $prefix in $prefixes {
8
+ @if $prefix == webkit {
9
+ @if $prefix-for-webkit {
10
+ -webkit-#{$property}: $value;
11
+ }
12
+ }
13
+ @else if $prefix == moz {
14
+ @if $prefix-for-mozilla {
15
+ -moz-#{$property}: $value;
16
+ }
17
+ }
18
+ @else if $prefix == ms {
19
+ @if $prefix-for-microsoft {
20
+ -ms-#{$property}: $value;
21
+ }
22
+ }
23
+ @else if $prefix == o {
24
+ @if $prefix-for-opera {
25
+ -o-#{$property}: $value;
26
+ }
27
+ }
28
+ @else if $prefix == spec {
29
+ @if $prefix-for-spec {
30
+ #{$property}: $value;
31
+ }
32
+ }
33
+ @else {
34
+ @warn "Unrecognized prefix: #{$prefix}";
35
+ }
36
+ }
37
+ }
38
+
39
+ @mixin disable-prefix-for-all() {
40
+ $prefix-for-webkit: false !global;
41
+ $prefix-for-mozilla: false !global;
42
+ $prefix-for-microsoft: false !global;
43
+ $prefix-for-opera: false !global;
44
+ $prefix-for-spec: false !global;
45
+ }
@@ -0,0 +1,31 @@
1
+ @mixin retina-image($filename, $background-size, $extension: png, $retina-filename: null, $retina-suffix: _2x, $asset-pipeline: $asset-pipeline) {
2
+ @if $asset-pipeline {
3
+ background-image: image-url("#{$filename}.#{$extension}");
4
+ }
5
+ @else {
6
+ background-image: url("#{$filename}.#{$extension}");
7
+ }
8
+
9
+ @include hidpi {
10
+ @if $asset-pipeline {
11
+ @if $retina-filename {
12
+ background-image: image-url("#{$retina-filename}.#{$extension}");
13
+ }
14
+ @else {
15
+ background-image: image-url("#{$filename}#{$retina-suffix}.#{$extension}");
16
+ }
17
+ }
18
+
19
+ @else {
20
+ @if $retina-filename {
21
+ background-image: url("#{$retina-filename}.#{$extension}");
22
+ }
23
+ @else {
24
+ background-image: url("#{$filename}#{$retina-suffix}.#{$extension}");
25
+ }
26
+ }
27
+
28
+ background-size: $background-size;
29
+
30
+ }
31
+ }
@@ -0,0 +1,16 @@
1
+ @mixin size($size) {
2
+ $height: nth($size, 1);
3
+ $width: $height;
4
+
5
+ @if length($size) > 1 {
6
+ $height: nth($size, 2);
7
+ }
8
+
9
+ @if $height == auto or (type-of($height) == number and not unitless($height)) {
10
+ height: $height;
11
+ }
12
+
13
+ @if $width == auto or (type-of($width) == number and not unitless($width)) {
14
+ width: $width;
15
+ }
16
+ }
@@ -0,0 +1,32 @@
1
+ // CSS cubic-bezier timing functions. Timing functions courtesy of jquery.easie (github.com/jaukia/easie)
2
+ // Timing functions are the same as demo'ed here: http://jqueryui.com/resources/demos/effect/easing.html
3
+
4
+ // EASE IN
5
+ $ease-in-quad: cubic-bezier(0.550, 0.085, 0.680, 0.530);
6
+ $ease-in-cubic: cubic-bezier(0.550, 0.055, 0.675, 0.190);
7
+ $ease-in-quart: cubic-bezier(0.895, 0.030, 0.685, 0.220);
8
+ $ease-in-quint: cubic-bezier(0.755, 0.050, 0.855, 0.060);
9
+ $ease-in-sine: cubic-bezier(0.470, 0.000, 0.745, 0.715);
10
+ $ease-in-expo: cubic-bezier(0.950, 0.050, 0.795, 0.035);
11
+ $ease-in-circ: cubic-bezier(0.600, 0.040, 0.980, 0.335);
12
+ $ease-in-back: cubic-bezier(0.600, -0.280, 0.735, 0.045);
13
+
14
+ // EASE OUT
15
+ $ease-out-quad: cubic-bezier(0.250, 0.460, 0.450, 0.940);
16
+ $ease-out-cubic: cubic-bezier(0.215, 0.610, 0.355, 1.000);
17
+ $ease-out-quart: cubic-bezier(0.165, 0.840, 0.440, 1.000);
18
+ $ease-out-quint: cubic-bezier(0.230, 1.000, 0.320, 1.000);
19
+ $ease-out-sine: cubic-bezier(0.390, 0.575, 0.565, 1.000);
20
+ $ease-out-expo: cubic-bezier(0.190, 1.000, 0.220, 1.000);
21
+ $ease-out-circ: cubic-bezier(0.075, 0.820, 0.165, 1.000);
22
+ $ease-out-back: cubic-bezier(0.175, 0.885, 0.320, 1.275);
23
+
24
+ // EASE IN OUT
25
+ $ease-in-out-quad: cubic-bezier(0.455, 0.030, 0.515, 0.955);
26
+ $ease-in-out-cubic: cubic-bezier(0.645, 0.045, 0.355, 1.000);
27
+ $ease-in-out-quart: cubic-bezier(0.770, 0.000, 0.175, 1.000);
28
+ $ease-in-out-quint: cubic-bezier(0.860, 0.000, 0.070, 1.000);
29
+ $ease-in-out-sine: cubic-bezier(0.445, 0.050, 0.550, 0.950);
30
+ $ease-in-out-expo: cubic-bezier(1.000, 0.000, 0.000, 1.000);
31
+ $ease-in-out-circ: cubic-bezier(0.785, 0.135, 0.150, 0.860);
32
+ $ease-in-out-back: cubic-bezier(0.680, -0.550, 0.265, 1.550);
@@ -0,0 +1,83 @@
1
+ @mixin triangle ($size, $color, $direction) {
2
+ height: 0;
3
+ width: 0;
4
+
5
+ $width: nth($size, 1);
6
+ $height: nth($size, length($size));
7
+
8
+ $foreground-color: nth($color, 1);
9
+ $background-color: if(length($color) == 2, nth($color, 2), transparent);
10
+
11
+ @if ($direction == up) or ($direction == down) or ($direction == right) or ($direction == left) {
12
+
13
+ $width: $width / 2;
14
+ $height: if(length($size) > 1, $height, $height/2);
15
+
16
+ @if $direction == up {
17
+ border-left: $width solid $background-color;
18
+ border-right: $width solid $background-color;
19
+ border-bottom: $height solid $foreground-color;
20
+
21
+ } @else if $direction == right {
22
+ border-top: $width solid $background-color;
23
+ border-bottom: $width solid $background-color;
24
+ border-left: $height solid $foreground-color;
25
+
26
+ } @else if $direction == down {
27
+ border-left: $width solid $background-color;
28
+ border-right: $width solid $background-color;
29
+ border-top: $height solid $foreground-color;
30
+
31
+ } @else if $direction == left {
32
+ border-top: $width solid $background-color;
33
+ border-bottom: $width solid $background-color;
34
+ border-right: $height solid $foreground-color;
35
+ }
36
+ }
37
+
38
+ @else if ($direction == up-right) or ($direction == up-left) {
39
+ border-top: $height solid $foreground-color;
40
+
41
+ @if $direction == up-right {
42
+ border-left: $width solid $background-color;
43
+
44
+ } @else if $direction == up-left {
45
+ border-right: $width solid $background-color;
46
+ }
47
+ }
48
+
49
+ @else if ($direction == down-right) or ($direction == down-left) {
50
+ border-bottom: $height solid $foreground-color;
51
+
52
+ @if $direction == down-right {
53
+ border-left: $width solid $background-color;
54
+
55
+ } @else if $direction == down-left {
56
+ border-right: $width solid $background-color;
57
+ }
58
+ }
59
+
60
+ @else if ($direction == inset-up) {
61
+ border-width: $height $width;
62
+ border-style: solid;
63
+ border-color: $background-color $background-color $foreground-color;
64
+ }
65
+
66
+ @else if ($direction == inset-down) {
67
+ border-width: $height $width;
68
+ border-style: solid;
69
+ border-color: $foreground-color $background-color $background-color;
70
+ }
71
+
72
+ @else if ($direction == inset-right) {
73
+ border-width: $width $height;
74
+ border-style: solid;
75
+ border-color: $background-color $background-color $background-color $foreground-color;
76
+ }
77
+
78
+ @else if ($direction == inset-left) {
79
+ border-width: $width $height;
80
+ border-style: solid;
81
+ border-color: $background-color $foreground-color $background-color $background-color;
82
+ }
83
+ }