gumby_on_rails 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (95) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/Rakefile +34 -0
  4. data/app/assets/javascripts/gumby/libs/extensions/gumby.comments.js +152 -0
  5. data/app/assets/javascripts/gumby/libs/extensions/gumby.fittext.js +126 -0
  6. data/app/assets/javascripts/gumby/libs/extensions/gumby.images.js +202 -0
  7. data/app/assets/javascripts/gumby/libs/extensions/gumby.inview.js +219 -0
  8. data/app/assets/javascripts/gumby/libs/extensions/gumby.parallax.js +106 -0
  9. data/app/assets/javascripts/gumby/libs/extensions/gumby.shuffle.js +198 -0
  10. data/app/assets/javascripts/gumby/libs/gumby.init.js +47 -0
  11. data/app/assets/javascripts/gumby/libs/gumby.js +258 -0
  12. data/app/assets/javascripts/gumby/libs/gumby.min.js +1 -0
  13. data/app/assets/javascripts/gumby/libs/jquery-1.10.1.min.js +6 -0
  14. data/app/assets/javascripts/gumby/libs/jquery-1.10.1.min.map +1 -0
  15. data/app/assets/javascripts/gumby/libs/jquery-2.0.2.min.js +6 -0
  16. data/app/assets/javascripts/gumby/libs/jquery-2.0.2.min.map +1 -0
  17. data/app/assets/javascripts/gumby/libs/jquery.mobile.custom.min.js +3 -0
  18. data/app/assets/javascripts/gumby/libs/modernizr-2.6.2.min.js +4 -0
  19. data/app/assets/javascripts/gumby/libs/ui/gumby.checkbox.js +101 -0
  20. data/app/assets/javascripts/gumby/libs/ui/gumby.fixed.js +240 -0
  21. data/app/assets/javascripts/gumby/libs/ui/gumby.navbar.js +115 -0
  22. data/app/assets/javascripts/gumby/libs/ui/gumby.radiobtn.js +90 -0
  23. data/app/assets/javascripts/gumby/libs/ui/gumby.retina.js +81 -0
  24. data/app/assets/javascripts/gumby/libs/ui/gumby.skiplink.js +157 -0
  25. data/app/assets/javascripts/gumby/libs/ui/gumby.tabs.js +80 -0
  26. data/app/assets/javascripts/gumby/libs/ui/gumby.toggleswitch.js +264 -0
  27. data/app/assets/javascripts/gumby/libs/ui/jquery.validation.js +142 -0
  28. data/app/assets/javascripts/gumby/main.js +23 -0
  29. data/app/assets/javascripts/gumby/plugins.js +4 -0
  30. data/app/assets/javascripts/gumby.all.js +19 -0
  31. data/app/assets/javascripts/gumby.js +13 -0
  32. data/app/assets/stylesheets/gumby/_base.scss +49 -0
  33. data/app/assets/stylesheets/gumby/_custom.scss +1 -0
  34. data/app/assets/stylesheets/gumby/_fonts.scss +28 -0
  35. data/app/assets/stylesheets/gumby/_grid.scss +339 -0
  36. data/app/assets/stylesheets/gumby/_parallax.scss +11 -0
  37. data/app/assets/stylesheets/gumby/_shame.scss +36 -0
  38. data/app/assets/stylesheets/gumby/_typography.scss +272 -0
  39. data/app/assets/stylesheets/gumby/extensions/modular-scale/lib/modular-scale.rb +128 -0
  40. data/app/assets/stylesheets/gumby/extensions/modular-scale/stylesheets/_modular-scale.scss +310 -0
  41. data/app/assets/stylesheets/gumby/extensions/sassy-math/lib/sassy-math.rb +159 -0
  42. data/app/assets/stylesheets/gumby/extensions/sassy-math/stylesheets/_math.scss +310 -0
  43. data/app/assets/stylesheets/gumby/functions/_all.scss +25 -0
  44. data/app/assets/stylesheets/gumby/functions/_breakpoints.scss +11 -0
  45. data/app/assets/stylesheets/gumby/functions/_button-size.scss +44 -0
  46. data/app/assets/stylesheets/gumby/functions/_clearfix.scss +25 -0
  47. data/app/assets/stylesheets/gumby/functions/_em.scss +11 -0
  48. data/app/assets/stylesheets/gumby/functions/_even.scss +10 -0
  49. data/app/assets/stylesheets/gumby/functions/_fade.scss +20 -0
  50. data/app/assets/stylesheets/gumby/functions/_fancytiles.scss +29 -0
  51. data/app/assets/stylesheets/gumby/functions/_fixed.scss +21 -0
  52. data/app/assets/stylesheets/gumby/functions/_forms.scss +18 -0
  53. data/app/assets/stylesheets/gumby/functions/_grid-calc.scss +82 -0
  54. data/app/assets/stylesheets/gumby/functions/_height-calc.scss +6 -0
  55. data/app/assets/stylesheets/gumby/functions/_icons.scss +35 -0
  56. data/app/assets/stylesheets/gumby/functions/_line-and-height.scss +7 -0
  57. data/app/assets/stylesheets/gumby/functions/_palette.scss +76 -0
  58. data/app/assets/stylesheets/gumby/functions/_responsivity.scss +34 -0
  59. data/app/assets/stylesheets/gumby/functions/_semantic-grid.scss +170 -0
  60. data/app/assets/stylesheets/gumby/functions/_shapes.scss +22 -0
  61. data/app/assets/stylesheets/gumby/functions/_strip-units.scss +5 -0
  62. data/app/assets/stylesheets/gumby/functions/_tooltips.scss +98 -0
  63. data/app/assets/stylesheets/gumby/functions/_typography.scss +15 -0
  64. data/app/assets/stylesheets/gumby/functions/_visibility.scss +17 -0
  65. data/app/assets/stylesheets/gumby/gumby.scss +39 -0
  66. data/app/assets/stylesheets/gumby/ui/_all.scss +11 -0
  67. data/app/assets/stylesheets/gumby/ui/_buttons.scss +154 -0
  68. data/app/assets/stylesheets/gumby/ui/_forms.scss +392 -0
  69. data/app/assets/stylesheets/gumby/ui/_icons.scss +23 -0
  70. data/app/assets/stylesheets/gumby/ui/_images.scss +23 -0
  71. data/app/assets/stylesheets/gumby/ui/_labels.scss +87 -0
  72. data/app/assets/stylesheets/gumby/ui/_navbar.scss +440 -0
  73. data/app/assets/stylesheets/gumby/ui/_tables.scss +89 -0
  74. data/app/assets/stylesheets/gumby/ui/_tabs.scss +156 -0
  75. data/app/assets/stylesheets/gumby/ui/_toggles.scss +73 -0
  76. data/app/assets/stylesheets/gumby/ui/_tooltips.scss +12 -0
  77. data/app/assets/stylesheets/gumby/ui/_video.scss +24 -0
  78. data/app/assets/stylesheets/gumby/var/_lists.scss +20 -0
  79. data/app/assets/stylesheets/gumby/var/_settings.scss +169 -0
  80. data/app/assets/stylesheets/gumby/var/icons/_entypo-icon-list.scss +286 -0
  81. data/app/assets/stylesheets/gumby/var/icons/_entypo.scss +294 -0
  82. data/app/assets/stylesheets/gumby.all.css.scss +20 -0
  83. data/app/assets/stylesheets/gumby.css.scss +37 -0
  84. data/app/controllers/gumby/application_controller.rb +4 -0
  85. data/app/helpers/gumby/application_helper.rb +4 -0
  86. data/app/views/layouts/gumby/application.html.erb +14 -0
  87. data/config/routes.rb +2 -0
  88. data/lib/gumby/engine.rb +10 -0
  89. data/lib/gumby/version.rb +3 -0
  90. data/lib/gumby.rb +4 -0
  91. data/lib/tasks/gumby_tasks.rake +20 -0
  92. data/public/fonts/gumby/icons/entypo.eot +0 -0
  93. data/public/fonts/gumby/icons/entypo.ttf +0 -0
  94. data/public/fonts/gumby/icons/entypo.woff +0 -0
  95. metadata +235 -0
@@ -0,0 +1,76 @@
1
+ // Color Pallete
2
+
3
+ @function getColor($key, $state: false, $list: $ui-coloring) {
4
+ @each $color in $list {
5
+ @if $key == nth($color, 1) and $state == default {
6
+ @return nth($color, 2);
7
+ }
8
+ @else if $key == nth($color, 1) and $state == hover {
9
+ @return nth($color, 3);
10
+ }
11
+ @else if $key == nth($color, 1) {
12
+ @return nth($color, 1);
13
+ }
14
+ }
15
+ @return false;
16
+ }
17
+
18
+ @mixin palette($shade, $palette-text-color:false) {
19
+ @if $shade == getColor($shade) {
20
+ @if $palette-text-color != false {
21
+ color: $palette-text-color;
22
+ }
23
+ @else {
24
+ color: lighten(getColor($shade, default), 80%);
25
+ }
26
+ background: getColor($shade, default);
27
+ border: 1px solid getColor($shade, default);
28
+ &:hover {
29
+ background: getColor($shade, hover);
30
+ border: 1px solid darken(getColor($shade, hover), 3%);
31
+ }
32
+ &:active {
33
+ background: darken(getColor($shade, default), 10%);
34
+ border: 1px solid darken(getColor($shade, default), 10%);
35
+ }
36
+
37
+ @if $shade == default {
38
+ @if $palette-text-color != false {
39
+ color: $palette-text-color;
40
+ }
41
+ @else {
42
+ color: darken(getColor($shade, default), 61.5%);
43
+ }
44
+ border: 1px solid getColor($shade, default);
45
+ &:hover {
46
+ border: 1px solid darken(getColor($shade, hover), 5%);
47
+ }
48
+ }
49
+ @if $shade == warning {
50
+ @if $palette-text-color != false {
51
+ color: $palette-text-color;
52
+ }
53
+ @else {
54
+ color: darken(getColor($shade, hover), 40%);
55
+ }
56
+ }
57
+ }
58
+ @else {
59
+ @if $palette-text-color != false {
60
+ color: $palette-text-color;
61
+ }
62
+ @else {
63
+ color: lighten($shade, 80%);
64
+ }
65
+ background: $shade;
66
+ border: 1px solid $shade;
67
+ &:hover {
68
+ background: lighten($shade, 30%);
69
+ border: 1px solid lighten($shade, 27%);
70
+ }
71
+ &:active {
72
+ background: darken($shade, 10%);
73
+ border: 1px solid darken($shade, 10%);
74
+ }
75
+ }
76
+ }
@@ -0,0 +1,34 @@
1
+ // Responsive Mixins
2
+
3
+ @mixin respond($media) {
4
+ @if $media == portrait-phones {
5
+ @media only screen and (max-width: $min-device-width) { @content; }
6
+ }
7
+ @else if $media == landscape-phones {
8
+ @media only screen and (min-width: breakpoint($min-device-width)) and (max-width: breakpoint($tablet-device-width)) { @content; }
9
+ }
10
+ @else if $media == all-phones {
11
+ @media only screen and (max-width: breakpoint($tablet-device-width)) { @content; }
12
+ }
13
+ @else if $media == portrait-tablets {
14
+ @media only screen and (max-width: $tablet-device-width) { @content; }
15
+ }
16
+ @else if $media == tablets {
17
+ @media only screen and (min-width: $tablet-device-width) and (max-width: $document-width - 1) { @content; }
18
+ }
19
+ @else if $media == desktop {
20
+ @media only screen and (min-width: $tablet-device-width) { @content; }
21
+ }
22
+ @else if $media == document-width {
23
+ @media only screen and (max-width: $document-width + 20) { @content; }
24
+ }
25
+ @else if $media == large-screens {
26
+ @media only screen and (min-width: $max-device-width) { @content; }
27
+ }
28
+ @else if $media == print {
29
+ @media print { @content; }
30
+ }
31
+ @else {
32
+ @media only screen and ('#{$media}') { @content; }
33
+ }
34
+ }
@@ -0,0 +1,170 @@
1
+
2
+
3
+ // Gumby Semantic Grid Mixin //
4
+
5
+
6
+ // Mixin for rows
7
+
8
+ @mixin row($nested: false) {
9
+ @if $nested == nested {
10
+ @include nestedRow();
11
+ }
12
+ @else {
13
+ width: 100%;
14
+ max-width: $row-max-width + 40px;
15
+ min-width: $min-device-width;
16
+ margin: 0 auto;
17
+ padding-left: 20px;
18
+ padding-right: 20px;
19
+ @extend %clearfix;
20
+ }
21
+ > *:first-child {
22
+ margin-left: 0;
23
+ }
24
+ @include respond(all-phones) {
25
+ width: auto;
26
+ min-width: 0;
27
+ margin-left: 0;
28
+ margin-right: 0;
29
+ }
30
+ }
31
+
32
+ // Mixin for rows that are nested within columns
33
+
34
+ @mixin nestedRow() {
35
+ width: auto;
36
+ min-width: 0;
37
+ max-width: none;
38
+ padding-left: 0;
39
+ padding-right: 0;
40
+ @extend %clearfix;
41
+ }
42
+
43
+
44
+ @mixin column($columns:$columns, $alignment: false, $behavior: false, $hybrid: false) {
45
+ @extend %columnconfig;
46
+ @if $alignment == center {
47
+ float: none;
48
+ margin-left: auto !important;
49
+ margin-right: auto !important;
50
+ width: columns($columns, $hybrid);
51
+ @include respond(all-phones) {
52
+ float: left;
53
+ margin-left: 0;
54
+ width: 100%;
55
+ }
56
+ }
57
+ @else if $behavior == collapse {
58
+ @extend %collapse;
59
+ width: columns($columns, $hybrid);
60
+ @include respond(all-phones) {
61
+ float: left;
62
+ width: 100%;
63
+ }
64
+ }
65
+ @else {
66
+ width: columns($columns, $hybrid);
67
+ @include respond(all-phones) {
68
+ float: left;
69
+ margin-left: 0;
70
+ width: 100%;
71
+ }
72
+ }
73
+ }
74
+
75
+ @mixin hybrid($columns:$columns, $alignment: false, $behavior: false) {
76
+ @include column($columns, $alignment, $behavior, true);
77
+ }
78
+
79
+ @mixin push($columns, $hybrid-grid: false) {
80
+ @if $hybrid-grid == hybrid {
81
+ margin-left: push_x($columns, false, true);
82
+ &:first-child {
83
+ margin-left: push_x($columns, true, true);
84
+ }
85
+ @include respond(all-phones) {
86
+ margin-left: 0;
87
+ &:first-child {
88
+ margin-left: 0;
89
+ }
90
+ }
91
+ }
92
+ @else {
93
+ margin-left: push_x($columns);
94
+ &:first-child {
95
+ margin-left: push_x($columns, true);
96
+ }
97
+ @include respond(all-phones) {
98
+ margin-left: 0;
99
+ &:first-child {
100
+ margin-left: 0;
101
+ }
102
+ }
103
+ }
104
+ }
105
+
106
+ @mixin pull($direction: false, $columns: 0, $width: 0, $hybrid-grid: false) {
107
+ @if $direction == left {
108
+ @extend %pull-left;
109
+ @if ($columns > 0 and $width > 0) {
110
+ @if ($hybrid-grid == hybrid) {
111
+ margin-left: pull_x($columns, $width, true);
112
+ &:first-child {
113
+ margin-left: 0;
114
+ }
115
+ }
116
+ @else {
117
+ margin-left: pull_x($columns, $width);
118
+ &:first-child {
119
+ margin-left: 0;
120
+ }
121
+ }
122
+ }
123
+ }
124
+ @elseif $direction == none {
125
+ @extend %pull-none;
126
+ }
127
+ @else {
128
+ @extend %pull-right;
129
+ }
130
+ }
131
+
132
+
133
+ // Placeholders for the Semantic Grid
134
+
135
+ %container {
136
+ padding: 0 $gutter-in-px + px;
137
+ @include respond(all-phones) {
138
+ min-width: 0;
139
+ margin-left: 0;
140
+ margin-right: 0;
141
+ }
142
+ }
143
+
144
+ // Clearfix placeholder
145
+ %clearfix { @include clearfix(); }
146
+
147
+ // Clearfix placeholder for mobile
148
+ %mobilefix { @include mobilefix(); }
149
+
150
+ // Row placeholders
151
+ %row { @include row(); }
152
+ %nestedrow { @include row(); }
153
+
154
+ // Column Configuration placeholder
155
+ %columnconfig {
156
+ margin-left: $gutter;
157
+ float: $default-float;
158
+ min-height: 1px;
159
+ position: relative;
160
+ @include box-sizing(border-box);
161
+ }
162
+
163
+ %pull-right { float: right; }
164
+ %pull-left { float: left; }
165
+ %pull-none { float: none; }
166
+
167
+ // Collapse Gutters
168
+ %collapse {
169
+ margin-left: 0;
170
+ }
@@ -0,0 +1,22 @@
1
+ // Shapes
2
+
3
+ @mixin shape($shape: square, $shape-radius: false) {
4
+ @if $shape == oval {
5
+ @include border-radius(1000px);
6
+ }
7
+ @else if $shape == circle {
8
+ @include border-radius(1000px);
9
+ }
10
+ @else if $shape == pill-left {
11
+ @include border-radius(500px 0 0 500px);
12
+ }
13
+ @else if $shape == pill-right {
14
+ @include border-radius(0 500px 500px 0);
15
+ }
16
+ @else if $shape-radius != false {
17
+ @include border-radius($shape-radius);
18
+ }
19
+ @else {
20
+ @include border-radius(0);
21
+ }
22
+ }
@@ -0,0 +1,5 @@
1
+
2
+ // Strip out units to do math functions.
3
+ @function strip-units($number) {
4
+ @return $number / ($number * 0 + 1);
5
+ }
@@ -0,0 +1,98 @@
1
+ // CSS Tooltips
2
+
3
+ @mixin tooltip($tt-min-width, $tt-bgcolor, $tt-position, $tt-align) {
4
+ position: relative;
5
+
6
+ &:after {
7
+ display: block;
8
+ background: $tt-bgcolor;
9
+ border: 1px solid $tt-bgcolor;
10
+ border-bottom: 0;
11
+ @include border-radius(3px);
12
+ padding: em(8) em(12);
13
+ width: auto;
14
+ min-width: $tt-min-width;
15
+ max-width: 500px;
16
+ position: absolute;
17
+ @if $tt-position == "bottom" {
18
+ @if $tt-align == "right" { right: 0 } @else { left: 0; }
19
+ top: 101%;
20
+ margin-top: 8px;
21
+ } @else if $tt-position == "top" {
22
+ @if $tt-align == "right" { right: 0 } @else { left: 0; }
23
+ bottom: 101%;
24
+ margin-bottom: 8px;
25
+ } @else if $tt-position == "left" {
26
+ right: 101%;
27
+ top: -35%;
28
+ margin-right: 8px;
29
+ } @else if $tt-position == "right" {
30
+ left: 101%;
31
+ top: -35%;
32
+ margin-left: 8px;
33
+ }
34
+
35
+ @if $tt-align == "right" {
36
+ text-align: right;
37
+ } @else if $tt-align == "left" {
38
+ text-align: left;
39
+ }
40
+
41
+ color: #fff;
42
+ content: attr(data-tooltip);
43
+ line-height: 1.5;
44
+ font-size: $norm;
45
+ font-weight: normal;
46
+ font-style: normal;
47
+
48
+ @include transition(opacity 0.1s ease);
49
+ @include opacity(0);
50
+ pointer-events: none;
51
+
52
+ @if $tt-pretty != "no" {
53
+ @include background-image(linear-gradient($tt-position, lighten($tt-bgcolor, 12.5%), $tt-bgcolor));
54
+ @include box-shadow(0 0 5px 0 rgba($tt-bgcolor,.25));
55
+ }
56
+ }
57
+
58
+ &:before {
59
+ content: " ";
60
+ width: 0;
61
+ height: 0;
62
+ position: absolute;
63
+ @if $tt-position == "bottom" {
64
+ top: 101%;
65
+ @if $tt-align == "right" { right: 8px } @else { left: 8px; }
66
+ border-bottom: 9px solid $tt-bgcolor !important;
67
+ border-left: 9px solid transparent;
68
+ border-right: 9px solid transparent;
69
+ } @else if $tt-position == "top" {
70
+ bottom: 101%;
71
+ @if $tt-align == "right" { right: 8px } @else { left: 8px; }
72
+ border-top: 9px solid $tt-bgcolor !important;
73
+ border-left: 9px solid transparent;
74
+ border-right: 9px solid transparent;
75
+ } @else if $tt-position == "left" {
76
+ top: 3px;
77
+ right: 101%;
78
+ border-left: 9px solid $tt-bgcolor !important;
79
+ border-top: 9px solid transparent;
80
+ border-bottom: 9px solid transparent;
81
+ } @else if $tt-position == "right" {
82
+ top: 3px;
83
+ left: 101%;
84
+ border-right: 9px solid $tt-bgcolor !important;
85
+ border-top: 9px solid transparent;
86
+ border-bottom: 9px solid transparent;
87
+ }
88
+ @include transition(opacity 0.1s ease);
89
+ @include opacity(0);
90
+ pointer-events: none;
91
+ }
92
+
93
+ &:hover:after,
94
+ &:hover:before {
95
+ @include transition(opacity 0.1s ease);
96
+ @include opacity(1);
97
+ }
98
+ }
@@ -0,0 +1,15 @@
1
+ // Typography mixins
2
+
3
+ // Fonts in rems with px fallback
4
+
5
+ @mixin font-size($size, $is-important: false) {
6
+ $size: if(unitless($size), $size, $size / 1px);
7
+
8
+ @if $is-important {
9
+ font-size: $size + px !important;
10
+ font-size: ($size / strip-units($base-font-size)) + rem !important;
11
+ } @else {
12
+ font-size: $size + px;
13
+ font-size: ($size / strip-units($base-font-size)) + rem;
14
+ }
15
+ }
@@ -0,0 +1,17 @@
1
+ // Visibility Mixins
2
+
3
+ // Mixin for hidden
4
+
5
+ @mixin hidden($media) {
6
+ @include respond($media) {
7
+ display: none !important;
8
+ }
9
+ }
10
+
11
+ // Mixin for visible
12
+
13
+ @mixin visible($media) {
14
+ @include respond($media) {
15
+ display: inherit !important;
16
+ }
17
+ }
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Gumby Framework
3
+ * ---------------
4
+ *
5
+ * Follow @gumbycss on twitter and spread the love.
6
+ * We worked super hard on making this awesome and released it to the web.
7
+ * All we ask is you leave this intact. #gumbyisawesome
8
+ *
9
+ * Gumby Framework
10
+ * http://gumbyframework.com
11
+ *
12
+ * Built with love by your friends @digitalsurgeons
13
+ * http://www.digitalsurgeons.com
14
+ *
15
+ * Free to use under the MIT license.
16
+ * http://www.opensource.org/licenses/mit-license.php
17
+ */
18
+
19
+ @charset "UTF-8";
20
+
21
+ @import "modular-scale";
22
+
23
+ @import "var/settings";
24
+ @import "var/lists";
25
+ @import "var/icons/entypo";
26
+
27
+ @import "compass";
28
+ @import "compass/reset";
29
+
30
+ @import "functions/all";
31
+
32
+ @import "base";
33
+ @import "fonts";
34
+ @import "typography";
35
+ @import "grid";
36
+ @import "ui/all";
37
+ @import "shame";
38
+
39
+ @import "custom";
@@ -0,0 +1,11 @@
1
+ @import "navbar";
2
+ @import "buttons";
3
+ @import "icons";
4
+ @import "forms";
5
+ @import "labels";
6
+ @import "tabs";
7
+ @import "images";
8
+ @import "video";
9
+ @import "toggles";
10
+ @import "tables";
11
+ @import "tooltips";
@@ -0,0 +1,154 @@
1
+ /* Buttons */
2
+
3
+ // Buttons
4
+ @import "../functions/button-size";
5
+
6
+ // Button structure
7
+ .btn, .skiplink {
8
+ display: inline-block;
9
+ width: auto;
10
+ background: $default-color;
11
+ -webkit-appearance: none;
12
+ font-family: $font-family;
13
+ font-weight: $button-font-weight;
14
+ padding: 0 !important;
15
+ text-align: center;
16
+ .pretty & { @extend .pretty.btn; }
17
+ .metro & { @extend .metro.btn; }
18
+
19
+ > a, input, button {
20
+ display: block;
21
+ padding: 0 $default-button-padding;
22
+ color: $white;
23
+ height: 100%;
24
+ }
25
+
26
+ input, button {
27
+ background: none;
28
+ border: none;
29
+ width: 100%;
30
+ font-size: 100%;
31
+ cursor: pointer;
32
+ font-weight: $type-font-weight;
33
+ @include appearance(none);
34
+ }
35
+ }
36
+
37
+ // Button Shapes & Sizes
38
+ .btn, .skiplink {
39
+ &.xlarge {
40
+ @include button-size(xlarge);
41
+ }
42
+ &.large {
43
+ @include button-size(large);
44
+ }
45
+ &.medium {
46
+ @include button-size(medium);
47
+ a {
48
+ padding: 0 ms(1);
49
+ }
50
+ }
51
+ &.small {
52
+ @include button-size(small);
53
+ a {
54
+ padding: 0 ms(-1);
55
+ }
56
+ }
57
+
58
+ &.oval {
59
+ @include shape(oval);
60
+ }
61
+
62
+ &.pill-left {
63
+ @include shape(pill-left);
64
+ }
65
+
66
+ &.pill-right {
67
+ @include shape(pill-right);
68
+ }
69
+ }
70
+
71
+ // Button Colors & Styles
72
+ .btn, .skiplink {
73
+ @each $shade in $ui-coloring {
74
+ &.#{nth($shade, 1)} {
75
+ background: nth($shade, 2);
76
+ border: 1px solid nth($shade, 2);
77
+ &:hover {
78
+ background: lighten(nth($shade, 2), 10%);
79
+ }
80
+ &:active {
81
+ background: darken(nth($shade, 2), 10%);
82
+ }
83
+ @if nth($shade, 1) == default {
84
+ color: darken(nth($shade, 2), 61.5%);
85
+ border: 1px solid nth($shade, 2);
86
+ &:hover {
87
+ border: 1px solid darken(nth($shade, 2), 5%);
88
+ }
89
+ a, input, button {
90
+ color: darken(nth($shade, 2), 61.5%);
91
+ }
92
+ }
93
+ @if nth($shade, 1) == warning {
94
+ color: darken(nth($shade, 2), 40%);
95
+ a, input, button {
96
+ color: darken(nth($shade, 2), 40%);
97
+ }
98
+ }
99
+ }
100
+ }
101
+ }
102
+
103
+ .btn.metro,
104
+ .skiplink.metro,
105
+ .btn.pretty.squared,
106
+ .pretty .btn.squared {
107
+ @include border-radius(0);
108
+ }
109
+
110
+ .btn.pretty,
111
+ .skiplink.pretty,
112
+ .btn.metro.rounded,
113
+ .metro .btn.rounded {
114
+ @include border-radius($button-radius);
115
+ }
116
+
117
+
118
+ // Buttons with Gradients
119
+ .btn, .skiplink {
120
+ &.pretty {
121
+ @each $grade in $ui-coloring {
122
+ &.#{nth($grade, 1)} {
123
+ @include background-image(linear-gradient(lighten(nth($grade, 2), 20%), saturate(nth($grade, 2), 5%)));
124
+ @include box-shadow(inset 0 0 3px lighten(nth($grade, 2), 45%));
125
+ border: 1px solid darken(nth($grade, 2), 15%);
126
+ &:hover {
127
+ @include background-image(linear-gradient(lighten(nth($grade, 3), 15%), saturate(nth($grade, 3), 5%)));
128
+ @include box-shadow(inset 0 0 3px lighten(nth($grade, 3), 40%));
129
+ border: 1px solid darken(nth($grade, 3), 15%);
130
+ }
131
+ &:active {
132
+ @include background-image(linear-gradient(saturate(nth($grade, 2), 5%), lighten(nth($grade, 2), 20%)));
133
+ @include box-shadow(inset 0 0 3px lighten(nth($grade, 2), 50%));
134
+ }
135
+ @if nth($grade, 1) == default {
136
+ a, input, button {
137
+ text-shadow: 0 1px 1px lighten(nth($grade, 2), 20%);
138
+ }
139
+ }
140
+ @elseif nth($grade, 1) == warning {
141
+ color: darken(nth($grade, 2), 40%);
142
+ a, input, button {
143
+ text-shadow: 0 1px 1px lighten(nth($grade, 2), 20%);
144
+ }
145
+ }
146
+ @else {
147
+ a, input, button {
148
+ text-shadow: 0 1px 1px darken(nth($grade, 2), 20%);
149
+ }
150
+ }
151
+ }
152
+ }
153
+ }
154
+ }