kentucky 0.5.2 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
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
@@ -1,8 +1,7 @@
1
1
  // ------------------------------------------------------------------- //
2
- // Muted
2
+ // Strip Units from a value
3
3
  // ------------------------------------------------------------------- //
4
4
 
5
- %muted{
6
- opacity: .5;
7
- filter: alpha(opacity=50);
5
+ @function strip-units($value){
6
+ @return $value / ($value * 0 + 1)
8
7
  }
@@ -0,0 +1,12 @@
1
+ // ------------------------------------------------------------------- //
2
+ // Tint & Shade (from Bourbon)
3
+ // ------------------------------------------------------------------- //
4
+
5
+ @function tint($color, $percent){
6
+ @return mix(white, $color, $percent);
7
+ }
8
+
9
+ // Add percentage of black to a color
10
+ @function shade($color, $percent){
11
+ @return mix(black, $color, $percent);
12
+ }
@@ -0,0 +1,114 @@
1
+ // ------------------------------------------------------------------- //
2
+ // Grid Settings
3
+ // ------------------------------------------------------------------- //
4
+
5
+ $max-width: 960px !default;
6
+ $grid-columns: 12 !default;
7
+ $grid-gutter: 15px !default;
8
+ $column: $max-width / $grid-columns !default;
9
+
10
+ // ------------------------------------------------------------------- //
11
+ // Set Container
12
+ // ------------------------------------------------------------------- //
13
+
14
+ @mixin outer-container {
15
+ max-width: $max-width;
16
+ width: 100%;
17
+ margin: 0 auto;
18
+ }
19
+
20
+ // ------------------------------------------------------------------- //
21
+ // Set Rows
22
+ // ------------------------------------------------------------------- //
23
+
24
+ @mixin row($items){
25
+ display: block;
26
+ @include clearfix;
27
+
28
+ & > *{
29
+ padding: 0 $grid-gutter;
30
+ }
31
+
32
+ & > *:nth-child(#{$items}n+1){
33
+ padding-left: 0;
34
+ padding-right: ($grid-gutter * 2);
35
+ }
36
+ & > *:nth-child(#{$items}n+2){
37
+ padding-left: 0;
38
+ }
39
+
40
+ & > *:nth-child(#{$items}n-1){
41
+ padding-right: 0;
42
+ }
43
+ & > *:nth-child(#{$items}n){
44
+ padding-left: ($grid-gutter * 2);
45
+ padding-right: 0;
46
+ }
47
+ }
48
+
49
+ // ------------------------------------------------------------------- //
50
+ // Set Widths
51
+ // ------------------------------------------------------------------- //
52
+
53
+ @mixin span-columns($col-size, $flow: left) {
54
+
55
+ $col-width: percentage($col-size / $grid-columns);
56
+
57
+ @if $col-size > $grid-columns {
58
+ @warn "Column size should not be greater than max-columns (#{$grid-columns}).";
59
+ }
60
+
61
+ @else {
62
+ float: left;
63
+ width: $col-width;
64
+ padding: 0 $grid-gutter;
65
+
66
+ @if $flow == "right"{
67
+ float: right;
68
+ }
69
+
70
+ @else if $flow == "center" {
71
+ float: none;
72
+ margin: 0 auto;
73
+ }
74
+ }
75
+ }
76
+
77
+ // ------------------------------------------------------------------- //
78
+ // Shift
79
+ // ------------------------------------------------------------------- //
80
+
81
+ @mixin shift($col-shift) {
82
+ $shift: percentage($col-shift / 12);
83
+
84
+ @if $col-shift > 12 {
85
+ @warn "Should not shift greater than max-columns (12).";
86
+ }
87
+
88
+ @else {
89
+ margin-left: $shift;
90
+ }
91
+ }
92
+
93
+ // ------------------------------------------------------------------- //
94
+ // Hug
95
+ // ------------------------------------------------------------------- //
96
+
97
+ @mixin hug($direction){
98
+
99
+ @if $direction == "left" {
100
+ padding-left: 0;
101
+ }
102
+
103
+ @else if $direction == "right" {
104
+ padding-right: 0;
105
+ }
106
+
107
+ @else if $direction == "both" {
108
+ padding: 0;
109
+ }
110
+
111
+ @else {
112
+ @warn "Hug requires 'left', 'right', or 'both'. Please choose a valid direction.";
113
+ }
114
+ }
@@ -0,0 +1,8 @@
1
+ // ------------------------------------------------------------------- //
2
+ // For chunky looking fonts (FF/Webkit)
3
+ // ------------------------------------------------------------------- //
4
+
5
+ %antialised{
6
+ -webkit-font-smoothing: antialiased;
7
+ -moz-osx-font-smoothing: grayscale;
8
+ }
@@ -0,0 +1,32 @@
1
+ // ------------------------------------------------------------------- //
2
+ // Border Mixin
3
+ //
4
+ // For use in instances where multiple border-widths are required
5
+ // ------------------------------------------------------------------- //
6
+
7
+ @mixin border($border-width, $border-style: solid, $border-color: black) {
8
+ // if too many widths, throw error
9
+ @if (length($border-width) > 4) {
10
+ @warn "Border-width accepts a maximum of 4 width parameters; #{length($border-width)} found.";
11
+ }
12
+
13
+ // New border width list
14
+ $new-width: ();
15
+
16
+ // Populate it
17
+ @for $i from 1 through length($border-width) {
18
+
19
+ // If border is unitless, append unit
20
+ @if unitless(nth($border-width, $i)) {
21
+ $new-width: append($new-width, nth($border-width, $i) + px);
22
+ }
23
+
24
+ // Otherwise, keep as is
25
+ @else {
26
+ $new-width: append($new-width, nth($border-width, $i));
27
+ }
28
+ }
29
+
30
+ border: $border-style $border-color;
31
+ border-width: $new-width;
32
+ }
@@ -0,0 +1,14 @@
1
+ // ------------------------------------------------------------------- //
2
+ // Clearfix
3
+ //
4
+ // Source:
5
+ // css-101.org/articles/clearfix/latest-new-clearfix-so-far.php
6
+ // ------------------------------------------------------------------- //
7
+
8
+ @mixin clearfix{
9
+ &:after {
10
+ content:"";
11
+ display:table;
12
+ clear:both;
13
+ }
14
+ }
@@ -1,12 +1,11 @@
1
1
  // ------------------------------------------------------------------- //
2
- // Font Size / Line Height
2
+ // Quickly generate rem font-size w/ px fallback and line-height
3
3
  // ------------------------------------------------------------------- //
4
4
 
5
5
  @mixin font-size($font-size, $line-height: true){
6
- font-size: $font-size;
7
- font-size: ($font-size / $base-font-size) * 1rem;
8
-
9
- @if $line-height == true{
6
+ font-size: remify($font-size);
7
+
8
+ @if $line-height == true {
10
9
  line-height: ceil($font-size / $base-line-height) * ($base-line-height / $font-size);
11
10
  }
12
11
  }
@@ -0,0 +1,11 @@
1
+ // ------------------------------------------------------------------- //
2
+ // Quickly target H# - H#
3
+ // ------------------------------------------------------------------- //
4
+
5
+ @mixin headings($from: 1, $to: 6){
6
+ @for $i from $from through $to{
7
+ h#{$i}{
8
+ @content
9
+ }
10
+ }
11
+ }
@@ -0,0 +1,9 @@
1
+ // ------------------------------------------------------------------- //
2
+ // Image Replacement - Hide Text
3
+ // ------------------------------------------------------------------- //
4
+
5
+ @mixin hide-text{
6
+ color: transparent;
7
+ font: 0/0 a;
8
+ text-shadow: none;
9
+ }
@@ -0,0 +1,30 @@
1
+ // ------------------------------------------------------------------- //
2
+ // All-encompasing HTML5 Input Types
3
+ //
4
+ // From Bourbon.io
5
+ // ------------------------------------------------------------------- //
6
+
7
+ $inputs-list:
8
+ 'input[type="email"]',
9
+ 'input[type="number"]',
10
+ 'input[type="password"]',
11
+ 'input[type="search"]',
12
+ 'input[type="tel"]',
13
+ 'input[type="text"]',
14
+ 'input[type="url"]',
15
+
16
+ // Webkit / Gecko specific
17
+ 'input[type="color"]',
18
+ 'input[type="date"]',
19
+ 'input[type="datetime"]',
20
+ 'input[type="datetime-local"]',
21
+ 'input[type="month"]',
22
+ 'input[type="time"]',
23
+ 'input[type="week"]';
24
+
25
+ $unquoted-inputs-list: ();
26
+ @each $input-type in $inputs-list{
27
+ $unquoted-inputs-list: append($unquoted-inputs-list, unquote($input-type), comma) !global;
28
+ }
29
+
30
+ $all-text-inputs: $unquoted-inputs-list;
@@ -0,0 +1,42 @@
1
+ // ------------------------------------------------------------------- //
2
+ // Gradient Mixin from Bourbon
3
+ // ------------------------------------------------------------------- //
4
+
5
+ @mixin linear-gradient($pos, $G1, $G2: null,
6
+ $G3: null, $G4: null,
7
+ $G5: null, $G6: null,
8
+ $G7: null, $G8: null,
9
+ $G9: null, $G10: null,
10
+ $fallback: null) {
11
+ // Detect what type of value exists in $pos
12
+ $pos-type: type-of(nth($pos, 1));
13
+ $pos-spec: null;
14
+ $pos-degree: null;
15
+
16
+ // If $pos is missing from mixin, reassign vars and add default position
17
+ @if ($pos-type == color) or (nth($pos, 1) == "transparent") {
18
+ $G10: $G9; $G9: $G8; $G8: $G7; $G7: $G6; $G6: $G5;
19
+ $G5: $G4; $G4: $G3; $G3: $G2; $G2: $G1; $G1: $pos;
20
+ $pos: null;
21
+ }
22
+
23
+ @if $pos {
24
+ $positions: _linear-positions-parser($pos);
25
+ $pos-degree: nth($positions, 1);
26
+ $pos-spec: nth($positions, 2);
27
+ }
28
+
29
+ $full: $G1, $G2, $G3, $G4, $G5, $G6, $G7, $G8, $G9, $G10;
30
+
31
+ // Set $G1 as the default fallback color
32
+ $fallback-color: nth($G1, 1);
33
+
34
+ // If $fallback is a color use that color as the fallback color
35
+ @if (type-of($fallback) == color) or ($fallback == "transparent") {
36
+ $fallback-color: $fallback;
37
+ }
38
+
39
+ background-color: $fallback-color;
40
+ background-image: -webkit-linear-gradient($pos-degree $full); // Safari 5.1+, Chrome
41
+ background-image: unquote("linear-gradient(#{$pos-spec}#{$full})");
42
+ }
@@ -0,0 +1,15 @@
1
+ // ------------------------------------------------------------------- //
2
+ // Muted
3
+ // ------------------------------------------------------------------- //
4
+
5
+ @mixin muted($mute-amt){
6
+
7
+ @if $mute-amt > 1{
8
+ @warn "Mute amount should be in decimal format (.1, .2, .etc)";
9
+ }
10
+
11
+ @else {
12
+ opacity: $mute-amt;
13
+ filter: alpha(opacity=($mute-amt * 100));
14
+ }
15
+ }
@@ -0,0 +1,42 @@
1
+ // ------------------------------------------------------------------- //
2
+ // Basic Positioning (Type + T/L/B/R Values)
3
+ //
4
+ // @include position(absolute, 10px 0 0 10px);
5
+ // ------------------------------------------------------------------- //
6
+
7
+ @mixin position($pos-type: relative, $pos-vals: 0 0 0 0) {
8
+
9
+ // If no position type designated, default to "relative"
10
+ @if type-of($pos-type) == list{
11
+ $pos-vals: $pos-type;
12
+ $pos-type: relative;
13
+ }
14
+
15
+ // Separate values into top, right, bottom, left
16
+ $top: nth($pos-vals, 1);
17
+ $right: nth($pos-vals, 2);
18
+ $bottom: nth($pos-vals, 3);
19
+ $left: nth($pos-vals, 4);
20
+
21
+ // Return position
22
+ position: $pos-type;
23
+
24
+ // Return values
25
+ // If value is a number and has a unit type, print value
26
+ // otherwise ignore
27
+ @if (type-of($top) == number and not unitless($top)){
28
+ top: $top;
29
+ }
30
+
31
+ @if (type-of($right) == number and not unitless($right)){
32
+ right: $right;
33
+ }
34
+
35
+ @if (type-of($bottom) == number and not unitless($bottom)){
36
+ bottom: $bottom;
37
+ }
38
+
39
+ @if (type-of($left) == number and not unitless($left)){
40
+ left: $left;
41
+ }
42
+ }
@@ -0,0 +1,34 @@
1
+ // ------------------------------------------------------------------- //
2
+ // Browser prefixing
3
+ //
4
+ // @include prefixer(border-radius, 5px, webkit ms spec);
5
+ // ------------------------------------------------------------------- //
6
+
7
+ $prefix-webkit: true !default;
8
+ $prefix-mozilla: true !default;
9
+ $prefix-ms: true !default;
10
+ $prefix-opera: true !default;
11
+ $prefix-spec: true !default;
12
+
13
+ @mixin prefixer($propery, $value, $prefixes){
14
+ @each $prefix in $prefixes{
15
+ @if $prefix == webkit{
16
+ -webkit-#{property}: $value;
17
+ }
18
+ @else if $prefix == moz{
19
+ -moz-#{property}: $value;
20
+ }
21
+ @else if $prefix == ms{
22
+ -ms-#{property}: $value;
23
+ }
24
+ @else if $prefix == o{
25
+ -o-#{property}: $value;
26
+ }
27
+ @else if $prefix == spec{
28
+ #{property}: $value;
29
+ }
30
+ @else{
31
+ @warn "Unrecognized prefix: #{$prefix}";
32
+ }
33
+ }
34
+ }
@@ -0,0 +1,24 @@
1
+ // ------------------------------------------------------------------- //
2
+ // Radial Gradient
3
+ // ------------------------------------------------------------------- //
4
+
5
+ @function radial-gradient($G1, $G2,
6
+ $G3: null, $G4: null,
7
+ $G5: null, $G6: null,
8
+ $G7: null, $G8: null,
9
+ $G9: null, $G10: null,
10
+ $pos: null,
11
+ $shape-size: null) {
12
+
13
+ $data: _radial-arg-parser($G1, $G2, $pos, $shape-size);
14
+ $G1: nth($data, 1);
15
+ $G2: nth($data, 2);
16
+ $pos: nth($data, 3);
17
+ $shape-size: nth($data, 4);
18
+
19
+ $type: radial;
20
+ $gradient: $G1, $G2, $G3, $G4, $G5, $G6, $G7, $G8, $G9, $G10;
21
+
22
+ $type-gradient: $type, $shape-size $pos, $gradient;
23
+ @return $type-gradient;
24
+ }