shipyard-framework 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (56) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +10 -0
  3. data/.rspec +2 -0
  4. data/CODE_OF_CONDUCT.md +74 -0
  5. data/Gemfile +3 -0
  6. data/LICENSE.txt +21 -0
  7. data/README.md +52 -0
  8. data/Rakefile +6 -0
  9. data/app/views/shipyard/_alerts.slim +3 -0
  10. data/assets/icons/arrows/arrow-down.svg +3 -0
  11. data/assets/icons/gear.svg +3 -0
  12. data/assets/icons/plus.svg +3 -0
  13. data/assets/icons/x.svg +4 -0
  14. data/assets/javascripts/shipyard/alert.es6 +19 -0
  15. data/assets/javascripts/shipyard/core.es6 +3 -0
  16. data/assets/javascripts/shipyard/icon.es6 +50 -0
  17. data/assets/javascripts/shipyard.es6 +6 -0
  18. data/assets/stylesheets/_shipyard.sass +3 -0
  19. data/assets/stylesheets/shipyard/_components.sass +5 -0
  20. data/assets/stylesheets/shipyard/_core.sass +12 -0
  21. data/assets/stylesheets/shipyard/_utilities.sass +5 -0
  22. data/assets/stylesheets/shipyard/components/_alerts.sass +64 -0
  23. data/assets/stylesheets/shipyard/components/_boxes.sass +37 -0
  24. data/assets/stylesheets/shipyard/components/_buttons.sass +107 -0
  25. data/assets/stylesheets/shipyard/components/_empty.sass +15 -0
  26. data/assets/stylesheets/shipyard/components/_forms.sass +128 -0
  27. data/assets/stylesheets/shipyard/components/_icons.sass +54 -0
  28. data/assets/stylesheets/shipyard/components/_modals.sass +29 -0
  29. data/assets/stylesheets/shipyard/functions/_color.sass +9 -0
  30. data/assets/stylesheets/shipyard/mixins/_box-model.sass +6 -0
  31. data/assets/stylesheets/shipyard/mixins/_components.sass +82 -0
  32. data/assets/stylesheets/shipyard/mixins/_positioning.sass +12 -0
  33. data/assets/stylesheets/shipyard/mixins/_prefixed.sass +19 -0
  34. data/assets/stylesheets/shipyard/mixins/_responsive.sass +112 -0
  35. data/assets/stylesheets/shipyard/mixins/_selectors.sass +11 -0
  36. data/assets/stylesheets/shipyard/utilities/_animations.sass +11 -0
  37. data/assets/stylesheets/shipyard/utilities/_grid.sass +75 -0
  38. data/assets/stylesheets/shipyard/utilities/_positioning.sass +17 -0
  39. data/assets/stylesheets/shipyard/utilities/_reset.sass +11 -0
  40. data/assets/stylesheets/shipyard/utilities/_type.sass +161 -0
  41. data/assets/stylesheets/shipyard/variables/_color_utilities.sass +68 -0
  42. data/assets/stylesheets/shipyard/variables/_colors.scss +11 -0
  43. data/assets/stylesheets/shipyard/variables/_grid.scss +2 -0
  44. data/assets/stylesheets/shipyard/variables/_misc.scss +11 -0
  45. data/assets/stylesheets/shipyard/variables/_typography.scss +29 -0
  46. data/lib/shipyard/icons.rb +89 -0
  47. data/lib/shipyard/rails/alert_helper.rb +45 -0
  48. data/lib/shipyard/rails/button_helper.rb +37 -0
  49. data/lib/shipyard/rails/engine.rb +11 -0
  50. data/lib/shipyard/rails/icon_helper.rb +50 -0
  51. data/lib/shipyard/rails/layout_helpers.rb +34 -0
  52. data/lib/shipyard/rails/railtie.rb +24 -0
  53. data/lib/shipyard/version.rb +3 -0
  54. data/lib/shipyard.rb +65 -0
  55. data/shipyard.gemspec +27 -0
  56. metadata +181 -0
@@ -0,0 +1,54 @@
1
+ svg, path, circle, polyline
2
+ transition: fill 300ms ease, stroke 300ms ease, opacity 300ms ease
3
+
4
+ +component('icon')
5
+ fill: $gray
6
+ display: inline-block
7
+ transition: fill 300ms ease, stroke 300ms ease, opacity 300ms ease
8
+ overflow: visible
9
+ transform-origin: center center
10
+
11
+ // Icons w/ Strokes
12
+ &-outline
13
+ stroke: $gray
14
+ &, &-inverse
15
+ fill: transparent
16
+ stroke-width: 2px
17
+ stroke-linecap: round
18
+ stroke-linejoin: round
19
+ &-inverse
20
+ stroke: #fff !important
21
+
22
+ &-arrow-down
23
+ @extend .icon-outline
24
+ +width-height(10px, 6px)
25
+
26
+ &-plus
27
+ @extend .icon-outline
28
+ +width-height(6px, 6px)
29
+
30
+ // Icon: Sizes
31
+ $sizes: (xs: 8px, sm: 16px, md: 24px, lg: 32px, xl: 44px)
32
+ +all-media-sizes
33
+ @each $size, $value in $sizes
34
+ &-#{$size}
35
+ +width-height($value, $value)
36
+
37
+ &-btn
38
+ position: relative
39
+ display: inline-block
40
+ border: 2px solid $gray
41
+ border-radius: 50%
42
+ text-align: center
43
+ transition: border-color 300ms ease
44
+ @each $size, $value in (xs: 16px, sm: 24px, md: 32px, lg: 40px, xl: 48px)
45
+ &-#{$size}
46
+ +width-height($value, $value)
47
+ a:hover &
48
+ border-color: darken($gray, 12%)
49
+
50
+ &-inverse
51
+ border-color: #fff !important
52
+
53
+ &-inverse
54
+ fill: #fff
@@ -0,0 +1,29 @@
1
+ +component('modal')
2
+ width: 100%
3
+ max-width: 800px
4
+ padding: 10px
5
+
6
+ &-container
7
+ position: fixed
8
+ top: 0
9
+ right: 0
10
+ bottom: 0
11
+ left: 0
12
+ background: rgba($gray-darkest,.9)
13
+ z-index: 200
14
+
15
+ &-content
16
+ background: #fff
17
+ border-radius: 5px 5px 0 0
18
+ +respond-to(padding, (x0: 20px, x2: 30px))
19
+
20
+ &-title
21
+ margin: 0 0 10px
22
+
23
+ &-description
24
+ margin: 0
25
+
26
+ &-ctas
27
+ background: $gray-lightest
28
+ border-radius: 0 0 5px 5px
29
+ +respond-to(padding, (x0: 10px 15px, x1: 15px, x2: 15px 25px))
@@ -0,0 +1,9 @@
1
+ @function color($name, $shade: null)
2
+ $color: map-get($colors, $name)
3
+ @if $color
4
+ @if $shade
5
+ @return map-get(map-get($colors, $name), $shade)
6
+ @else
7
+ @return map-get(map-get($colors, $name), base)
8
+ @else
9
+ @warn "Sorry, but the color `#{$name}` hasn't been defined in the $colors variable."
@@ -0,0 +1,6 @@
1
+ @mixin width-height($width, $height: null)
2
+ width: $width
3
+ height: if($height, $height, $width)
4
+
5
+ @mixin border-radius($radius: $border-radius)
6
+ border-radius: $radius
@@ -0,0 +1,82 @@
1
+ // Used to define the base component class (e.g. "alert") and save it for use later.
2
+ @mixin component($name)
3
+ $component: $name !global
4
+ .#{$name}
5
+ @content
6
+
7
+ @mixin sub-component($name)
8
+ $sub-component: "#{$component}-#{$name}" !global
9
+ &-#{$name}
10
+ @content
11
+
12
+ @mixin extend($modifier: null)
13
+ @if $modifier
14
+ @extend .#{$component}-#{$modifier}
15
+ @else
16
+ @extend .#{$component}
17
+
18
+ @mixin z-index($value: null)
19
+ @if $value
20
+ z-index: $value
21
+ @else if $component && map-get($z-index, $component)
22
+ z-index: map-get($z-index, $component)
23
+
24
+ // Uses the base component class defined earlier (e.g. "alert").
25
+ //
26
+ // Notes:
27
+ // - This mixin only works in tandem with the +component mixin, which must be used first.
28
+ // - Makes defining styles for states more readable (see example below):
29
+ //
30
+ // Example Usage:
31
+ //
32
+ // +component('alert')
33
+ // &-title
34
+ // +when('success')
35
+ // color: green
36
+ // +when('error')
37
+ // color: red
38
+ // +when('warning')
39
+ // color: yellow
40
+ // +when('info, default')
41
+ // color: gray
42
+ // +when('celebrate', $not: 'success')
43
+ // color: purple
44
+ //
45
+ // The above code outputs to:
46
+ //
47
+ // .alert-success .alert-title { color: green }
48
+ // .alert-error .alert-title { color: red }
49
+ // .alert-warning .alert-title { color: yellow }
50
+ // .alert-info .alert-title,
51
+ // .alert-default .alert-title { color: gray }
52
+ // .alert-celebrate:not(.alert-success) .alert-title { color: purple }
53
+ //
54
+ @mixin when($classes: null, $state: null, $not: null, $and: null)
55
+ +handle-states($component, $classes, $state, $not, $and)
56
+ @content
57
+
58
+ @mixin when-sub-state($class)
59
+ +prepend-to-root(".#{$component}-#{$class}")
60
+ @content
61
+
62
+ @mixin sub-state($classes: null, $state: null, $not: null, $and: null)
63
+ +handle-states($sub-component, $classes, $state, $not, $and)
64
+ @content
65
+
66
+ @mixin handle-states($component-name, $classes: null, $state: null, $not: null, $and: null)
67
+ @if $classes
68
+ $classes: selector-append(".#{$component-name}-", $classes)
69
+ @if $state
70
+ $classes: selector-append(".#{$component-name}", ":#{$state}")
71
+ @if $not
72
+ $not: selector-append(".#{$component-name}-", $not)
73
+ $classes: selector-append($classes, ":not(#{$not})")
74
+ @if $and
75
+ $and: selector-append(".#{$component-name}-", $and)
76
+ $classes: selector-append($classes, $and)
77
+ @at-root #{selector-nest($classes, &)}
78
+ @content
79
+
80
+ @mixin and($class)
81
+ @at-root #{selector-append(".#{$component}-#{$class}", &)}
82
+ @content
@@ -0,0 +1,12 @@
1
+ @mixin center($vertical: false, $horizontal: false)
2
+ position: absolute
3
+ @if $vertical
4
+ top: 50%
5
+ transform: translatey(-50%)
6
+ @else if $horizontal
7
+ left: 50%
8
+ transform: translatex(-50%)
9
+ @else
10
+ top: 50%
11
+ left: 50%
12
+ transform: translate(-50%, -50%)
@@ -0,0 +1,19 @@
1
+ @mixin rotate($deg)
2
+ -ms-transform: rotate($deg)
3
+ -moz-transform: rotate($deg)
4
+ -webkit-transform: rotate($deg)
5
+ transform: rotate($deg)
6
+
7
+ @mixin backdrop-filter($content)
8
+ backdrop-filter: $content
9
+ -webkit-backdrop-filter: $content
10
+
11
+ @mixin placeholder
12
+ &:-moz-placeholder
13
+ @content
14
+ &:-ms-input-placeholder
15
+ @content
16
+ &::-moz-placeholder
17
+ @content
18
+ &::-webkit-input-placeholder
19
+ @content
@@ -0,0 +1,112 @@
1
+ // --------------------------------------------------
2
+ // Responsive Mixins (Utilities)
3
+ // --------------------------------------------------
4
+ // Usage:
5
+ // +media(max-width $mobile-max) -> styles any screens *smaller* then $mobile-max
6
+ // +media(min-width $tablet-min) -> styles any screens *larger* then $tablet-min
7
+ // +media(max-width $tablet-max) -> styles any screens *smaller* then $tablet-max
8
+ // +media(min-width $desktop-min) -> styles any screens *larger* then $desktop-min
9
+ // +media(min-width 500px) -> styles any screens *larger* then 500px
10
+ // +media(max-width 500px) -> styles any screens *smaller* then 500px
11
+ // +media(min-height 500px) -> styles any screens *taller* then 500px
12
+ // +media(max-height 500px) -> styles any screens *shorter* then 500px
13
+ // +media(min-width $tablet-min max-width $tablet-max) -> styles any screens *between* $tablet-min and $tablet-max
14
+ // +media(min-width 500px max-width 1000px) -> styles any screens *between* 500px and 1000px wide
15
+ // +media(min-height 500px max-height 1000px) -> styles any screens *between* 500px and 1000px tall
16
+ @mixin media($args)
17
+ @if length($args) > 6
18
+ @media screen and (#{nth($args, 1)}: nth($args, 2)) and (#{nth($args, 3)}: nth($args, 4)), screen and (#{nth($args, 5)}: nth($args, 6)) and (#{nth($args, 7)}: nth($args, 8))
19
+ @content
20
+ @else if length($args) > 4
21
+ @media screen and (#{nth($args, 1)}: nth($args, 2)), screen and (#{nth($args, 3)}: nth($args, 4)) and (#{nth($args, 5)}: nth($args, 6))
22
+ @content
23
+ @else if length($args) > 2
24
+ @media screen and (#{nth($args, 1)}: nth($args, 2)) and (#{nth($args, 3)}: nth($args, 4))
25
+ @content
26
+ @else
27
+ @media screen and (#{nth($args, 1)}: nth($args, 2))
28
+ @content
29
+
30
+ @mixin all-media-sizes
31
+ @content
32
+ +media-sizes
33
+ @content
34
+
35
+ @mixin media-sizes
36
+ @each $breakpoint, $min-width in $breakpoints
37
+ &-#{$breakpoint}
38
+ +media(min-width $min-width)
39
+ @content
40
+
41
+ @mixin breakpoint-x0
42
+ +media(max-width map-get($breakpoints, x1) - 1)
43
+ @content
44
+
45
+ @mixin breakpoint-x1
46
+ +media(min-width map-get($breakpoints, x1))
47
+ @content
48
+
49
+ @mixin breakpoint-x2
50
+ +media(min-width map-get($breakpoints, x2))
51
+ @content
52
+
53
+ @mixin breakpoint-x3
54
+ +media(min-width map-get($breakpoints, x3))
55
+ @content
56
+
57
+ @mixin breakpoint-x4
58
+ +media(min-width map-get($breakpoints, x4))
59
+ @content
60
+
61
+ @mixin responsive-padding($properties: null, $divisor: 2)
62
+ transition: padding 500ms ease
63
+ @if $properties
64
+ @each $property in $properties
65
+ padding-#{$property}: map-get($margins, x0) / $divisor
66
+ +breakpoint-x1
67
+ @each $property in $properties
68
+ padding-#{$property}: map-get($margins, x1) / $divisor
69
+ +breakpoint-x2
70
+ @each $property in $properties
71
+ padding-#{$property}: map-get($margins, x2) / $divisor
72
+ @else
73
+ +respond-to(padding, (x0: map-get($margins, x0), x1: map-get($margins, x1), x2: map-get($margins, x2)))
74
+
75
+ @mixin responsive-margin($properties, $divisor: 2)
76
+ transition: margin 500ms ease
77
+ @each $property in $properties
78
+ margin-#{$property}: map-get($margins, x0) / $divisor
79
+ +breakpoint-x1
80
+ @each $property in $properties
81
+ margin-#{$property}: map-get($margins, x1) / $divisor
82
+ +breakpoint-x2
83
+ @each $property in $properties
84
+ margin-#{$property}: map-get($margins, x2) / $divisor
85
+
86
+ @mixin respond-to($property, $breakpoints)
87
+ @if map-has-key($breakpoints, x0)
88
+ #{$property}: map-get($breakpoints, x0)
89
+ @if map-has-key($breakpoints, x1)
90
+ +breakpoint-x1
91
+ #{$property}: map-get($breakpoints, x1)
92
+ @if map-has-key($breakpoints, x2)
93
+ +breakpoint-x2
94
+ #{$property}: map-get($breakpoints, x2)
95
+ @if map-has-key($breakpoints, x3)
96
+ +breakpoint-x3
97
+ #{$property}: map-get($breakpoints, x3)
98
+
99
+ @mixin responsive-left
100
+ +respond-to(left, (x0: map-get($margins, x0), x1: map-get($margins, x1), x2: map-get($margins, x2)))
101
+
102
+ @mixin responsive-right
103
+ +respond-to(right, (x0: map-get($margins, x0), x1: map-get($margins, x1), x2: map-get($margins, x2)))
104
+
105
+ @mixin responsive-padding-left
106
+ +respond-to(padding-left, (x0: map-get($margins, x0), x1: map-get($margins, x1), x2: map-get($margins, x2)))
107
+
108
+ @mixin responsive-padding-right
109
+ +respond-to(padding-right, (x0: map-get($margins, x0), x1: map-get($margins, x1), x2: map-get($margins, x2)))
110
+
111
+ @function merge-and-add($map1, $map2)
112
+ @return (x0: map-get($map1, x0) + map-get($map2, x0), x1: map-get($map1, x1) + map-get($map2, x1), x2: map-get($map1, x2) + map-get($map2, x2))
@@ -0,0 +1,11 @@
1
+ @mixin root($selector)
2
+ @at-root #{selector-nest($selector, &)}
3
+ @content
4
+
5
+ @mixin prepend-to-root($selector)
6
+ @at-root #{selector-append($selector, &)}
7
+ @content
8
+
9
+ @mixin append-to-root($selector)
10
+ @at-root #{selector-append(&, $selector)}
11
+ @content
@@ -0,0 +1,11 @@
1
+ @keyframes shake
2
+ 0%, 100%
3
+ transform: translateX(0) translateY(0)
4
+ 12.5%
5
+ transform: translateX(-12px) translateY(0)
6
+ 37.5%
7
+ transform: translateX(10px) translateY(0)
8
+ 62.5%
9
+ transform: translateX(-7px) translateY(0)
10
+ 87.5%
11
+ transform: translateX(3px) translateY(0)
@@ -0,0 +1,75 @@
1
+ $widths: (auto, 5, 10, 15, 20, 25, 30, 33, 35, 40, 45, 50, 55, 60, 65, 66, 70, 75, 80, 85, 90, 95, 100)
2
+
3
+ @mixin clearfix
4
+ &::after
5
+ clear: both
6
+ content: ""
7
+ display: table
8
+
9
+ @mixin column-style($property, $width)
10
+ @if $width == auto
11
+ #{$property}: auto
12
+ @else if $width == 66
13
+ #{$property}: 66.6666666666%
14
+ @else if $width == 33
15
+ #{$property}: 33.3333333333%
16
+ @else
17
+ #{$property}: percentage($width / 100)
18
+
19
+ @mixin column-sizes
20
+ @each $width in $widths
21
+ &-#{$width}
22
+ +column-style(width, $width)
23
+ &-offset-#{$width}
24
+ +column-style(margin-left, $width)
25
+
26
+ .container
27
+ +clearfix
28
+ margin: 0 auto
29
+ max-width: 1440px
30
+ position: relative
31
+ +responsive-padding(left right, $divisor: 1)
32
+
33
+ .content
34
+ @extend .container
35
+ +responsive-padding(top bottom, $divisor: 1)
36
+
37
+ .col
38
+ display: block
39
+ float: left
40
+ position: relative
41
+ +responsive-padding(left right)
42
+
43
+ &-container
44
+ +clearfix
45
+ +responsive-margin(left right, $divisor: -2)
46
+
47
+ &-center
48
+ float: none
49
+ margin: 0 auto
50
+
51
+ +all-media-sizes
52
+ +column-sizes
53
+
54
+ +component('flex')
55
+ display: flex
56
+ +all-media-sizes
57
+ &-col
58
+ flex-direction: column
59
+ &-col-reverse
60
+ flex-direction: column-reverse
61
+
62
+ .float
63
+ +all-media-sizes
64
+ @each $value in (none, left, right)
65
+ &-#{$value}
66
+ float: $value
67
+
68
+ .display
69
+ +all-media-sizes
70
+ @each $value in (block, inline, inline-block, none)
71
+ &-#{$value}
72
+ display: $value
73
+
74
+ .clearfix
75
+ +clearfix
@@ -0,0 +1,17 @@
1
+ .align
2
+ +all-media-sizes
3
+ @each $value in (center, left, right)
4
+ &-#{$value}
5
+ text-align: $value
6
+
7
+ .center
8
+ +all-media-sizes
9
+ +center
10
+
11
+ .v-center
12
+ +all-media-sizes
13
+ +center($vertical: true)
14
+
15
+ .h-center
16
+ +all-media-sizes
17
+ +center($horizontal: true)
@@ -0,0 +1,11 @@
1
+ *,
2
+ *::before,
3
+ *::after
4
+ margin: 0
5
+ padding: 0
6
+ box-sizing: border-box
7
+ .env-test &
8
+ animation-delay: 0s !important
9
+ animation-duration: 0s !important
10
+ transition-duration: 0s !important
11
+ transition-delay: 0s !important
@@ -0,0 +1,161 @@
1
+ body
2
+ background: $gray-lightest
3
+ color: $gray-dark
4
+ -webkit-font-smoothing: antialiased
5
+ -moz-osx-font-smoothing: grayscale
6
+
7
+ a, .link
8
+ cursor: pointer
9
+ text-decoration: none
10
+ color: $blue
11
+ transition: color 300ms ease, background-color 300ms ease, border-color 300ms ease, box-shadow 300ms ease
12
+ &:hover
13
+ color: darken($blue, 10%)
14
+ text-decoration: underline
15
+ .legacy-content &
16
+ text-decoration: none
17
+
18
+ hr
19
+ height: 0
20
+ border: 0 solid $border-color-light
21
+ border-width: 2px 0 0
22
+ +respond-to(margin, (x0: 20px 0, x1: 30px 0))
23
+ &.dark
24
+ border-color: $border-color
25
+ &.lightest
26
+ border-color: $border-color-lightest
27
+ &.thin
28
+ border-width: 1px 0 0
29
+
30
+ .medium
31
+ font-weight: $medium
32
+
33
+ strong, .strong, .bold
34
+ font-weight: $bold
35
+
36
+ ul, ol
37
+ list-style: none
38
+
39
+ .list
40
+ list-style: circle
41
+ &, &-disc
42
+ color: $gray-light
43
+ margin: 20px 0 0 18px
44
+ &-disc
45
+ list-style: disc
46
+ .legacy-content &
47
+ list-style: none
48
+ li
49
+ margin: 10px 0
50
+ .legacy-content &
51
+ color: $text-color
52
+
53
+ img
54
+ display: block
55
+
56
+ button
57
+ background: none
58
+ border: none
59
+ cursor: pointer
60
+
61
+ .code
62
+ color: desaturate(darken($purple, 15%), 25%)
63
+ background: darken($gray-lightest, 3%)
64
+ border: 1px solid darken($gray-lighter, 5%)
65
+ border-radius: 3px
66
+ padding: 2px 4px
67
+ margin: 0 2px
68
+
69
+ .em
70
+ color: $teal
71
+
72
+ .p
73
+ margin: 15px 0
74
+
75
+ +component('bullet')
76
+ margin: 0 5px
77
+ color: lighten($text-color-lightest, 20%)
78
+ &-inverse
79
+ +extend
80
+ color: rgba(#fff,.4)
81
+
82
+ h1, .h1
83
+ +respond-to(font-size, (x0: 20px, x1: 24px))
84
+ h2, .h2
85
+ font-size: 18px
86
+
87
+ h1, h2, h3, h4, h5, h6
88
+ @extend .strong
89
+
90
+ .h-primary
91
+ margin-bottom: 0
92
+ +respond-to(font-size, (x0: 24px, x1: 28px))
93
+ .h-secondary
94
+ color: $text-color-lighter
95
+ font-weight: $normal
96
+ margin: 5px 0 30px
97
+ +respond-to(font-size, (x0: 16px, x1: 18px))
98
+ .h-margin
99
+ margin: 0 0 30px
100
+
101
+ .white-space-nowrap
102
+ white-space: nowrap
103
+
104
+ .italic
105
+ font-style: italic
106
+
107
+ .align
108
+ +all-media-sizes
109
+ @each $value in (center, left, right)
110
+ &-#{$value}
111
+ text-align: $value
112
+
113
+ .margin
114
+ @each $direction in (top, right, bottom, left)
115
+ &-#{$direction}
116
+ +all-media-sizes
117
+ @each $size, $value in (xxs: 5px, xs: 10px, sm: 15px, md: 20px, lg: 30px, xl: 40px, xxl: 50px)
118
+ &-#{$size}
119
+ margin-#{$direction}: $value
120
+
121
+ .text
122
+ &-shadow
123
+ text-shadow: 0 1px 0 rgba(#000,.08)
124
+
125
+ &-overflow
126
+ +all-media-sizes
127
+ &-ellipsis
128
+ white-space: nowrap
129
+ text-overflow: ellipsis
130
+ overflow: hidden
131
+
132
+ +all-media-sizes
133
+ &-clip
134
+ white-space: normal
135
+ text-overflow: clip
136
+ overflow: visible
137
+
138
+ // Font Colors
139
+ &-light
140
+ color: $text-color-light
141
+ &-lighter
142
+ color: $text-color-lighter
143
+ &-lightest
144
+ color: $text-color-lightest
145
+ &-inverse
146
+ &-light
147
+ color: rgba(#fff,.8)
148
+ &-lighter
149
+ color: rgba(#fff,.7)
150
+ &-lightest
151
+ color: rgba(#fff,.6)
152
+
153
+ // Font Sizes
154
+ @each $size, $value in $font-sizes
155
+ &-#{$size}
156
+ font-size: $value
157
+
158
+ .rotate-45
159
+ transform: rotate(45deg)
160
+ .rotate-90
161
+ transform: rotate(90deg)
@@ -0,0 +1,68 @@
1
+ // Gray
2
+ $gray: color(gray)
3
+ $gray-light: color(gray, light)
4
+ $gray-lighter: color(gray, lighter)
5
+ $gray-lightest: color(gray, lightest)
6
+ $gray-dark: color(gray, dark)
7
+ $gray-darkest: color(gray, darkest)
8
+
9
+ // Green
10
+ $green: color(green)
11
+ $green-light: color(green, light)
12
+ $green-lightest: color(green, lightest)
13
+ $green-dark: color(green, dark)
14
+ $green-darkest: color(green, darkest)
15
+
16
+ // Blue
17
+ $blue: color(blue)
18
+ $blue-light: color(blue, light)
19
+ $blue-lightest: color(blue, lightest)
20
+ $blue-dark: color(blue, dark)
21
+ $blue-darkest: color(blue, darkest)
22
+
23
+ // Teal
24
+ $teal: color(teal)
25
+ $teal-light: color(teal, light)
26
+ $teal-lightest: color(teal, lightest)
27
+ $teal-dark: color(teal, dark)
28
+ $teal-darkest: color(teal, darkest)
29
+
30
+ // Red
31
+ $red: color(red)
32
+ $red-light: color(red, light)
33
+ $red-lightest: color(red, lightest)
34
+ $red-dark: color(red, dark)
35
+ $red-darkest: color(red, darkest)
36
+
37
+ // Yellow
38
+ $yellow: color(yellow)
39
+ $yellow-light: color(yellow, light)
40
+ $yellow-lightest: color(yellow, lightest)
41
+ $yellow-dark: color(yellow, dark)
42
+ $yellow-darker: color(yellow, darker)
43
+ $yellow-darkest: color(yellow, darkest)
44
+
45
+ // Orange
46
+ $orange: color(orange)
47
+ $orange-light: color(orange, light)
48
+ $orange-lightest: color(orange, lightest)
49
+ $orange-dark: color(orange, dark)
50
+ $orange-darkest: color(orange, darkest)
51
+
52
+ // Coral
53
+ $coral: color(coral)
54
+ $coral-light: color(coral, light)
55
+ $coral-lighter: color(coral, lighter)
56
+ $coral-lightest: color(coral, lightest)
57
+ $coral-dark: color(coral, dark)
58
+ $coral-darker: color(coral, darker)
59
+ $coral-darkest: color(coral, darkest)
60
+
61
+ // Purple
62
+ $purple: color(purple)
63
+ $purple-light: color(purple, light)
64
+ $purple-lighter: color(purple, lighter)
65
+ $purple-lightest: color(purple, lightest)
66
+ $purple-dark: color(purple, dark)
67
+ $purple-darker: color(purple, darker)
68
+ $purple-darkest: color(purple, darkest)