kentucky 0.5.2 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/app/assets/stylesheets/kentucky/_debug.scss +70 -74
  4. data/app/assets/stylesheets/kentucky/_kentucky.scss +47 -16
  5. data/app/assets/stylesheets/kentucky/_project-settings.scss +80 -41
  6. data/app/assets/stylesheets/kentucky/base/_forms.scss +65 -0
  7. data/app/assets/stylesheets/kentucky/base/_normalize.scss +33 -7
  8. data/app/assets/stylesheets/kentucky/base/_typography.scss +38 -29
  9. data/app/assets/stylesheets/kentucky/functions/_gradient-functions.scss +214 -0
  10. data/app/assets/stylesheets/kentucky/functions/_remify.scss +39 -0
  11. data/app/assets/stylesheets/kentucky/{extends/_mute.scss → functions/_strip-units.scss} +3 -4
  12. data/app/assets/stylesheets/kentucky/functions/_tint-shade.scss +12 -0
  13. data/app/assets/stylesheets/kentucky/grid/_grid.scss +114 -0
  14. data/app/assets/stylesheets/kentucky/{extends → helpers}/_alignment.scss +0 -0
  15. data/app/assets/stylesheets/kentucky/helpers/_anti-aliased.scss +8 -0
  16. data/app/assets/stylesheets/kentucky/helpers/_border.scss +32 -0
  17. data/app/assets/stylesheets/kentucky/{extends → helpers}/_breadcrumbs.scss +0 -0
  18. data/app/assets/stylesheets/kentucky/{extends → helpers}/_capslock.scss +0 -0
  19. data/app/assets/stylesheets/kentucky/helpers/_clearfix.scss +14 -0
  20. data/app/assets/stylesheets/kentucky/{mixins → helpers}/_font-size.scss +4 -5
  21. data/app/assets/stylesheets/kentucky/{extends → helpers}/_go.scss +0 -0
  22. data/app/assets/stylesheets/kentucky/helpers/_headings.scss +11 -0
  23. data/app/assets/stylesheets/kentucky/helpers/_hide-text.scss +9 -0
  24. data/app/assets/stylesheets/kentucky/helpers/_html5-input-types.scss +30 -0
  25. data/app/assets/stylesheets/kentucky/helpers/_linear-gradient.scss +42 -0
  26. data/app/assets/stylesheets/kentucky/helpers/_mute.scss +15 -0
  27. data/app/assets/stylesheets/kentucky/helpers/_position.scss +42 -0
  28. data/app/assets/stylesheets/kentucky/helpers/_prefixer.scss +34 -0
  29. data/app/assets/stylesheets/kentucky/helpers/_radial-gradient.scss +24 -0
  30. data/app/assets/stylesheets/kentucky/{extends → helpers}/_show-hide.scss +0 -0
  31. data/app/assets/stylesheets/kentucky/helpers/_size.scss +44 -0
  32. data/app/assets/stylesheets/kentucky/helpers/_strip-unit.scss +7 -0
  33. data/app/assets/stylesheets/kentucky/helpers/_transitions.scss +34 -0
  34. data/app/assets/stylesheets/kentucky/helpers/_triangle.scss +49 -0
  35. data/app/assets/stylesheets/kentucky/helpers/_truncate.scss +19 -0
  36. data/kentucky.gemspec +3 -3
  37. data/lib/kentucky/version.rb +1 -1
  38. data/readme.md +14 -36
  39. metadata +34 -19
  40. data/Kentucky.sublime-workspace +0 -556
  41. data/app/assets/stylesheets/kentucky/mixins/_borders.scss +0 -10
  42. data/app/assets/stylesheets/kentucky/mixins/_headings.scss +0 -23
  43. data/app/assets/stylesheets/kentucky/mixins/_sprite.scss +0 -9
  44. data/app/assets/stylesheets/kentucky/mixins/_truncate.scss +0 -14
  45. data/app/assets/stylesheets/style.scss +0 -12
@@ -19,6 +19,18 @@ time, mark, audio, video{
19
19
  padding: 0;
20
20
  }
21
21
 
22
+ // ------------------------------------------------------------------- //
23
+ // Border-Box
24
+ // ------------------------------------------------------------------- //
25
+
26
+ *,
27
+ *:before,
28
+ *:after {
29
+ -webkit-box-sizing: border-box;
30
+ -moz-box-sizing: border-box;
31
+ box-sizing: border-box;
32
+ }
33
+
22
34
  // ------------------------------------------------------------------- //
23
35
  // Display Definitions
24
36
  // ------------------------------------------------------------------- //
@@ -92,18 +104,22 @@ abbr[title]{
92
104
  border-bottom: 1px dotted;
93
105
  }
94
106
 
107
+ address{
108
+ @extend %vertical-rhythm;
109
+ }
110
+
95
111
  strong{
96
112
  font-weight: bold;
97
113
  }
98
114
 
99
115
  hr{
100
- @include prefixer(box-sizing, content-box, moz spec);
101
116
  height: 0;
102
117
  }
103
118
 
104
119
  code,
105
120
  pre{
106
- font-family: $monospace; // "Bitstream Vera Sans Mono", Consolas, Courier, monospace;
121
+ @extend %vertical-rhythm;
122
+ font-family: "Bitstream Vera Sans Mono", Consolas, Courier, monospace;
107
123
  font-size: 1em;
108
124
  }
109
125
 
@@ -111,6 +127,10 @@ pre{
111
127
  white-space: pre-wrap;
112
128
  }
113
129
 
130
+ p{
131
+ @extend %vertical-rhythm;
132
+ }
133
+
114
134
  small{
115
135
  font-size: 75%;
116
136
  }
@@ -152,8 +172,8 @@ select,
152
172
  textarea{
153
173
  margin: 0;
154
174
  font-family: $base-font-family;
155
- font-size: 100%;
156
- line-height: 1;
175
+ font-size: $base-font-size;
176
+ line-height: $base-line-height;
157
177
  }
158
178
 
159
179
  button,
@@ -165,7 +185,7 @@ button,
165
185
  html input[type="button"],
166
186
  input[type="reset"],
167
187
  input[type="submit"]{
168
- @include prefixer(appearance, button, webkit);
188
+ appearance: button;
169
189
  cursor: pointer;
170
190
  }
171
191
 
@@ -182,7 +202,6 @@ input[type="radio"]{
182
202
 
183
203
  input[type="search"] {
184
204
  -webkit-appearance: textfield;
185
- @include prefixer(appearance, content-box, moz webkit spec);
186
205
  }
187
206
 
188
207
  input[type="search"]::-webkit-search-cancel-button,
@@ -208,7 +227,8 @@ textarea{
208
227
  ul,
209
228
  ol,
210
229
  dl{
211
- margin-left: 1rem;
230
+ @extend %vertical-rhythm;
231
+ padding: 0;
212
232
  }
213
233
 
214
234
  li > ul,
@@ -222,6 +242,12 @@ li > ol{
222
242
  // ------------------------------------------------------------------- //
223
243
 
224
244
  table{
245
+ @extend %vertical-rhythm;
225
246
  border-collapse: collapse;
226
247
  border-spacing: 0;
248
+
249
+ th,
250
+ td{
251
+ padding: $base-line-height / 2;
252
+ }
227
253
  }
@@ -1,24 +1,40 @@
1
+ // ------------------------------------------------------------------- //
2
+ // Setup
3
+ // ------------------------------------------------------------------- //
4
+
5
+ $base-space: $base-line-height;
6
+ $base-ratio: $base-line-height / $base-font-size;
7
+
8
+ %vertical-rhythm{
9
+ margin-bottom: $base-space;
10
+ margin-bottom: $base-ratio + rem;
11
+ }
12
+
1
13
  // ------------------------------------------------------------------- //
2
14
  // Base Typographic Rules
3
15
  // ------------------------------------------------------------------- //
4
16
 
5
- html{
6
- font: #{($base-font-size/16px)*1em} / #{$base-line-height} $base-font-family;
17
+ body{
18
+ color: $base-font-color;
19
+ font: #{$base-font-size} / #{$base-line-height} $base-font-family;
20
+ -webkit-font-smoothing: antialiased;
7
21
  }
8
22
 
9
23
  // ------------------------------------------------------------------- //
10
24
  // Headings
11
- //
25
+ //
12
26
  // The goal here is to define headings and establish practical
13
27
  // font-sizing from the get go.
14
28
  //
15
29
  // Also includes a "double-stranded hierarchy" allowing you to use HTML
16
- // heading elements or the alternate extend included (based on the
30
+ // heading elements or the alternate extend included (based on the
17
31
  // military alphabet).
18
32
  // ------------------------------------------------------------------- //
19
33
 
20
34
  h1, h2, h3, h4, h5, h6{
35
+ @extend %vertical-rhythm;
21
36
  font-family: $brand-font-family;
37
+ font-weight: normal;
22
38
  }
23
39
 
24
40
  h1,
@@ -58,6 +74,8 @@ h6,
58
74
  // ------------------------------------------------------------------- //
59
75
 
60
76
  %hgroup{
77
+ @extend %vertical-rhythm;
78
+
61
79
  @include headings(1,6){
62
80
  margin-bottom: 0;
63
81
  }
@@ -67,48 +85,39 @@ h6,
67
85
  // Extra Large / Small Extends
68
86
  // ------------------------------------------------------------------- //
69
87
 
70
- %giga{
71
- @include font-size($giga-size);
88
+ %micro{
89
+ @include font-size($micro-size);
72
90
  }
73
91
 
74
- %mega{
75
- @include font-size($mega-size);
92
+ %milli{
93
+ @include font-size($milli-size);
76
94
  }
77
95
 
78
96
  %kilo{
79
97
  @include font-size($kilo-size);
80
98
  }
81
99
 
82
- %milli{
83
- @include font-size($milli-size);
100
+ %mega{
101
+ @include font-size($mega-size);
84
102
  }
85
103
 
86
- %micro{
87
- @include font-size($micro-size);
104
+ %giga{
105
+ @include font-size($giga-size);
88
106
  }
89
107
 
108
+
90
109
  // ------------------------------------------------------------------- //
91
110
  // Links
92
111
  // ------------------------------------------------------------------- //
93
112
 
94
113
  a{
95
- color: $link-color;
114
+ color: $base-link-color;
96
115
  text-decoration: none;
97
- }
98
-
99
- // ------------------------------------------------------------------- //
100
- // Single-direction Margins
101
- // ------------------------------------------------------------------- //
102
-
103
- h1, h2, h3, h4, h5, h6,
104
- ul, ol, dl,
105
- p,
106
- pre, table, fieldset{
107
- margin-bottom: ($base-font-size / $base-line-height); // IE8 Fallback
108
- margin-bottom: 1rem;
109
- }
116
+ @include transition(color .3s linear);
110
117
 
111
- hr{
112
- margin: ($base-font-size / $base-line-height) 0;
113
- margin: 1rem 0;
118
+ &:hover,
119
+ &:active,
120
+ &:focus{
121
+ color: $hover-link-color;
122
+ }
114
123
  }
@@ -0,0 +1,214 @@
1
+ // ------------------------------------------------------------------- //
2
+ // Bourbon Gradient Mixins Req. Functions
3
+ //
4
+ // https://github.com/thoughtbot/bourbon/tree/master/app/assets/stylesheets/helpers
5
+ // ------------------------------------------------------------------- //
6
+
7
+ // Position Parser
8
+ @function _gradient-positions-parser($gradient-type, $gradient-positions) {
9
+ @if $gradient-positions
10
+ and ($gradient-type == linear)
11
+ and (type-of($gradient-positions) != color) {
12
+ $gradient-positions: _linear-positions-parser($gradient-positions);
13
+ }
14
+ @else if $gradient-positions
15
+ and ($gradient-type == radial)
16
+ and (type-of($gradient-positions) != color) {
17
+ $gradient-positions: _radial-positions-parser($gradient-positions);
18
+ }
19
+ @return $gradient-positions;
20
+ }
21
+
22
+ // Linear Position Parser
23
+ @function _linear-positions-parser($pos) {
24
+ $type: type-of(nth($pos, 1));
25
+ $spec: null;
26
+ $degree: null;
27
+ $side: null;
28
+ $corner: null;
29
+ $length: length($pos);
30
+ // Parse Side and corner positions
31
+ @if ($length > 1) {
32
+ @if nth($pos, 1) == "to" { // Newer syntax
33
+ $side: nth($pos, 2);
34
+
35
+ @if $length == 2 { // eg. to top
36
+ // Swap for backwards compatability
37
+ $degree: _position-flipper(nth($pos, 2));
38
+ }
39
+ @else if $length == 3 { // eg. to top left
40
+ $corner: nth($pos, 3);
41
+ }
42
+ }
43
+ @else if $length == 2 { // Older syntax ("top left")
44
+ $side: _position-flipper(nth($pos, 1));
45
+ $corner: _position-flipper(nth($pos, 2));
46
+ }
47
+
48
+ @if ("#{$side} #{$corner}" == "left top") or ("#{$side} #{$corner}" == "top left") {
49
+ $degree: _position-flipper(#{$side}) _position-flipper(#{$corner});
50
+ }
51
+ @else if ("#{$side} #{$corner}" == "right top") or ("#{$side} #{$corner}" == "top right") {
52
+ $degree: _position-flipper(#{$side}) _position-flipper(#{$corner});
53
+ }
54
+ @else if ("#{$side} #{$corner}" == "right bottom") or ("#{$side} #{$corner}" == "bottom right") {
55
+ $degree: _position-flipper(#{$side}) _position-flipper(#{$corner});
56
+ }
57
+ @else if ("#{$side} #{$corner}" == "left bottom") or ("#{$side} #{$corner}" == "bottom left") {
58
+ $degree: _position-flipper(#{$side}) _position-flipper(#{$corner});
59
+ }
60
+ $spec: to $side $corner;
61
+ }
62
+ @else if $length == 1 {
63
+ // Swap for backwards compatability
64
+ @if $type == string {
65
+ $degree: $pos;
66
+ $spec: to _position-flipper($pos);
67
+ }
68
+ @else {
69
+ $degree: -270 - $pos; //rotate the gradient opposite from spec
70
+ $spec: $pos;
71
+ }
72
+ }
73
+ $degree: unquote($degree + ",");
74
+ $spec: unquote($spec + ",");
75
+ @return $degree $spec;
76
+ }
77
+
78
+ @function _position-flipper($pos) {
79
+ @return if($pos == left, right, null)
80
+ if($pos == right, left, null)
81
+ if($pos == top, bottom, null)
82
+ if($pos == bottom, top, null);
83
+ }
84
+
85
+ // Radial Argument Parser
86
+ @function _radial-arg-parser($G1, $G2, $pos, $shape-size) {
87
+ @each $value in $G1, $G2 {
88
+ $first-val: nth($value, 1);
89
+ $pos-type: type-of($first-val);
90
+ $spec-at-index: null;
91
+
92
+ // Determine if spec was passed to mixin
93
+ @if type-of($value) == list {
94
+ $spec-at-index: if(index($value, at), index($value, at), false);
95
+ }
96
+ @if $spec-at-index {
97
+ @if $spec-at-index > 1 {
98
+ @for $i from 1 through ($spec-at-index - 1) {
99
+ $shape-size: $shape-size nth($value, $i);
100
+ }
101
+ @for $i from ($spec-at-index + 1) through length($value) {
102
+ $pos: $pos nth($value, $i);
103
+ }
104
+ }
105
+ @else if $spec-at-index == 1 {
106
+ @for $i from ($spec-at-index + 1) through length($value) {
107
+ $pos: $pos nth($value, $i);
108
+ }
109
+ }
110
+ $G1: null;
111
+ }
112
+
113
+ // If not spec calculate correct values
114
+ @else {
115
+ @if ($pos-type != color) or ($first-val != "transparent") {
116
+ @if ($pos-type == number)
117
+ or ($first-val == "center")
118
+ or ($first-val == "top")
119
+ or ($first-val == "right")
120
+ or ($first-val == "bottom")
121
+ or ($first-val == "left") {
122
+
123
+ $pos: $value;
124
+
125
+ @if $pos == $G1 {
126
+ $G1: null;
127
+ }
128
+ }
129
+
130
+ @else if
131
+ ($first-val == "ellipse")
132
+ or ($first-val == "circle")
133
+ or ($first-val == "closest-side")
134
+ or ($first-val == "closest-corner")
135
+ or ($first-val == "farthest-side")
136
+ or ($first-val == "farthest-corner")
137
+ or ($first-val == "contain")
138
+ or ($first-val == "cover") {
139
+
140
+ $shape-size: $value;
141
+
142
+ @if $value == $G1 {
143
+ $G1: null;
144
+ }
145
+
146
+ @else if $value == $G2 {
147
+ $G2: null;
148
+ }
149
+ }
150
+ }
151
+ }
152
+ }
153
+ @return $G1, $G2, $pos, $shape-size;
154
+ }
155
+
156
+ // Radial Position Parser
157
+ @function _radial-positions-parser($gradient-pos) {
158
+ $shape-size: nth($gradient-pos, 1);
159
+ $pos: nth($gradient-pos, 2);
160
+ $shape-size-spec: _shape-size-stripper($shape-size);
161
+
162
+ $pre-spec: unquote(if($pos, "#{$pos}, ", null))
163
+ unquote(if($shape-size, "#{$shape-size},", null));
164
+ $pos-spec: if($pos, "at #{$pos}", null);
165
+
166
+ $spec: "#{$shape-size-spec} #{$pos-spec}";
167
+
168
+ // Add comma
169
+ @if ($spec != ' ') {
170
+ $spec: "#{$spec},"
171
+ }
172
+
173
+ @return $pre-spec $spec;
174
+ }
175
+
176
+ // Render Gradients
177
+ // Used for linear and radial gradients within background-image or border-image properties
178
+
179
+ @function _render-gradients($gradient-positions, $gradients, $gradient-type, $vendor: false) {
180
+ $pre-spec: null;
181
+ $spec: null;
182
+ $vendor-gradients: null;
183
+ @if $gradient-type == linear {
184
+ @if $gradient-positions {
185
+ $pre-spec: nth($gradient-positions, 1);
186
+ $spec: nth($gradient-positions, 2);
187
+ }
188
+ }
189
+ @else if $gradient-type == radial {
190
+ $pre-spec: nth($gradient-positions, 1);
191
+ $spec: nth($gradient-positions, 2);
192
+ }
193
+
194
+ @if $vendor {
195
+ $vendor-gradients: -#{$vendor}-#{$gradient-type}-gradient(#{$pre-spec} $gradients);
196
+ }
197
+ @else if $vendor == false {
198
+ $vendor-gradients: "#{$gradient-type}-gradient(#{$spec} #{$gradients})";
199
+ $vendor-gradients: unquote($vendor-gradients);
200
+ }
201
+ @return $vendor-gradients;
202
+ }
203
+
204
+ // Shape Size Stripper
205
+ @function _shape-size-stripper($shape-size) {
206
+ $shape-size-spec: null;
207
+ @each $value in $shape-size {
208
+ @if ($value == "cover") or ($value == "contain") {
209
+ $value: null;
210
+ }
211
+ $shape-size-spec: "#{$shape-size-spec} #{$value}";
212
+ }
213
+ @return $shape-size-spec;
214
+ }
@@ -0,0 +1,39 @@
1
+ // ------------------------------------------------------------------- //
2
+ // Convert Pixel to REM
3
+ //
4
+ // Credit: https://github.com/mariusz/remify
5
+ // ------------------------------------------------------------------- //
6
+
7
+ @function remify($px){
8
+ $base-rem-size: $base-font-size / 1rem;
9
+
10
+ // If value is 0, return 0
11
+ @if $px == 0 {
12
+ @return 0;
13
+ }
14
+
15
+ @if type-of(px) == "number" {
16
+
17
+ @return $px / $base-rem-size;
18
+
19
+ } @else {
20
+
21
+ $rems: ();
22
+
23
+ @each $value in $px{
24
+
25
+ @if $value == 0{
26
+ $rems: append($rems, $value);
27
+ } @else {
28
+ $rems: append($rems, ($value / $base-rem-size));
29
+ }
30
+ }
31
+
32
+ @return $rems;
33
+ }
34
+ }
35
+
36
+ @mixin rem($property, $values){
37
+ #{$property}: $values;
38
+ #{$property}: remify($values);
39
+ }