kube 6.5.2.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 (48) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +3 -0
  3. data/CHANGELOG.md +31 -0
  4. data/Gemfile +2 -0
  5. data/README.md +158 -0
  6. data/app/assets/javascripts/kube.js +2201 -0
  7. data/app/assets/stylesheets/kube.scss +13 -0
  8. data/app/assets/stylesheets/kube/_components.scss +25 -0
  9. data/app/assets/stylesheets/kube/_mixins.scss +8 -0
  10. data/app/assets/stylesheets/kube/_properties.scss +178 -0
  11. data/app/assets/stylesheets/kube/_variables.scss +10 -0
  12. data/app/assets/stylesheets/kube/all.scss +14 -0
  13. data/app/assets/stylesheets/kube/components/_animation.scss +95 -0
  14. data/app/assets/stylesheets/kube/components/_breadcrumbs.scss +37 -0
  15. data/app/assets/stylesheets/kube/components/_buttons.scss +166 -0
  16. data/app/assets/stylesheets/kube/components/_colors.scss +28 -0
  17. data/app/assets/stylesheets/kube/components/_dropdown.scss +51 -0
  18. data/app/assets/stylesheets/kube/components/_forms.scss +259 -0
  19. data/app/assets/stylesheets/kube/components/_grid.scss +68 -0
  20. data/app/assets/stylesheets/kube/components/_icons.scss +51 -0
  21. data/app/assets/stylesheets/kube/components/_labels.scss +116 -0
  22. data/app/assets/stylesheets/kube/components/_messages.scss +49 -0
  23. data/app/assets/stylesheets/kube/components/_modal.scss +55 -0
  24. data/app/assets/stylesheets/kube/components/_offcanvas.scss +26 -0
  25. data/app/assets/stylesheets/kube/components/_pagination.scss +91 -0
  26. data/app/assets/stylesheets/kube/components/_positioning.scss +77 -0
  27. data/app/assets/stylesheets/kube/components/_print.scss +41 -0
  28. data/app/assets/stylesheets/kube/components/_reset.scss +48 -0
  29. data/app/assets/stylesheets/kube/components/_sizing.scss +107 -0
  30. data/app/assets/stylesheets/kube/components/_tables.scss +77 -0
  31. data/app/assets/stylesheets/kube/components/_tabs.scss +43 -0
  32. data/app/assets/stylesheets/kube/components/_typography.scss +325 -0
  33. data/app/assets/stylesheets/kube/components/_utils.scss +139 -0
  34. data/app/assets/stylesheets/kube/mixins/_breakpoints.scss +27 -0
  35. data/app/assets/stylesheets/kube/mixins/_buttons.scss +29 -0
  36. data/app/assets/stylesheets/kube/mixins/_flex.scss +97 -0
  37. data/app/assets/stylesheets/kube/mixins/_fonts.scss +27 -0
  38. data/app/assets/stylesheets/kube/mixins/_gradients.scss +28 -0
  39. data/app/assets/stylesheets/kube/mixins/_grid.scss +54 -0
  40. data/app/assets/stylesheets/kube/mixins/_labels.scss +10 -0
  41. data/app/assets/stylesheets/kube/mixins/_utils.scss +60 -0
  42. data/kube.gemspec +23 -0
  43. data/lib/generators/kube/install/install_generator.rb +13 -0
  44. data/lib/generators/kube/install/templates/kube_properties.scss +178 -0
  45. data/lib/kube.rb +5 -0
  46. data/lib/kube/engine.rb +6 -0
  47. data/lib/kube/version.rb +11 -0
  48. metadata +110 -0
@@ -0,0 +1,139 @@
1
+ // Group
2
+ .group {
3
+ @include clearfix;
4
+ }
5
+
6
+ // Flex
7
+ .flex {
8
+ @include flex;
9
+ }
10
+ @include breakpoint(sm) {
11
+ .flex-column-sm {
12
+ @include flex-items-column;
13
+ }
14
+ .flex-w100-sm {
15
+ @include flex-item-width(100%);
16
+ }
17
+ }
18
+
19
+ // Visibility
20
+ .invisible {
21
+ visibility: hidden;
22
+ }
23
+ .visible {
24
+ visibility: visible;
25
+ }
26
+
27
+ // Display
28
+ .display-block {
29
+ display: block;
30
+ }
31
+ .hide {
32
+ display: none !important;
33
+ }
34
+ @include breakpoint(sm) {
35
+ .hide-sm {
36
+ display: none !important;
37
+ }
38
+ }
39
+ @include breakpoint($min: $sm) {
40
+ .show-sm {
41
+ display: none !important;
42
+ }
43
+ }
44
+
45
+ // Print
46
+ @media print {
47
+ .hide-print {
48
+ display: none !important;
49
+ }
50
+ .show-print {
51
+ display: block !important;
52
+ }
53
+ }
54
+
55
+ // NoScroll
56
+ .no-scroll {
57
+ overflow: hidden;
58
+ position: fixed;
59
+ top: 0;
60
+ left: 0;
61
+ width: 100%;
62
+ height: 100% !important;
63
+ }
64
+
65
+ // ScrollbarMeasure
66
+ .scrollbar-measure {
67
+ position: absolute;
68
+ top: -9999px;
69
+ width: 50px;
70
+ height: 50px;
71
+ overflow: scroll;
72
+ }
73
+
74
+ // Responsive embedded objects
75
+ .video-container {
76
+ height: 0;
77
+ padding-bottom: 56.25%; // ratio 16:9
78
+ position: relative;
79
+ margin-bottom: calc(var(--text-margin-bottom));
80
+ & iframe,
81
+ & object,
82
+ & embed {
83
+ position: absolute;
84
+ top: 0;
85
+ left: 0;
86
+ width: 100% !important;
87
+ height: 100% !important;
88
+ }
89
+ }
90
+
91
+ // Close
92
+ .close {
93
+ display: inline-block;
94
+ min-height: 16px;
95
+ min-width: 16px;
96
+ line-height: 16px;
97
+ vertical-align: middle;
98
+ text-align: center;
99
+ font-size: 12px;
100
+ opacity: .6;
101
+ &:hover {
102
+ opacity: 1;
103
+ }
104
+ &.small {
105
+ font-size: 8px;
106
+ }
107
+ &.big {
108
+ font-size: 18px;
109
+ }
110
+ &.white {
111
+ color: #fff;
112
+ }
113
+ }
114
+
115
+ // Caret
116
+ .caret {
117
+ display: inline-block;
118
+ }
119
+ .button {
120
+ & .caret {
121
+ margin-right: -8px;
122
+ }
123
+ }
124
+
125
+ // Overlay
126
+ .overlay {
127
+ position: fixed;
128
+ z-index: var(--z-over-control);
129
+ top: 0;
130
+ left: 0;
131
+ right: 0;
132
+ bottom: 0;
133
+ background-color: var(--overlay-background-color);
134
+ & > .close {
135
+ position: fixed;
136
+ top: 1rem;
137
+ right: 1rem;
138
+ }
139
+ }
@@ -0,0 +1,27 @@
1
+ @mixin breakpoint($min: 0, $max: 0) {
2
+ $type: type-of($min);
3
+
4
+ @if $type == string
5
+ {
6
+ @if $min == sm
7
+ {
8
+ @media (max-width: $sm) { @content; }
9
+ }
10
+ @else if $min == md
11
+ {
12
+ @media (min-width: $sm) and (max-width: $md) { @content; }
13
+ }
14
+ @else if $min == lg
15
+ {
16
+ @media (min-width: $lg) { @content; }
17
+ }
18
+ }
19
+ @else if $type == number
20
+ {
21
+ $query: "all" !default;
22
+ @if $min != 0 and $max != 0 { $query: "(min-width: #{$min}) and (max-width: #{$max})"; }
23
+ @else if $min != 0 and $max == 0 { $query: "(min-width: #{$min})"; }
24
+ @else if $min == 0 and $max != 0 { $query: "(max-width: #{$max})"; }
25
+ @media #{$query} { @content; }
26
+ }
27
+ }
@@ -0,0 +1,29 @@
1
+ @mixin button($color-text, $color-back)
2
+ {
3
+ color: $color-text;
4
+ background-color: $color-back;
5
+ &:hover {
6
+ color: $color-text;
7
+ background-color: lighten($color-back, 20%);
8
+ }
9
+ &:disabled,
10
+ &.disabled {
11
+ color: rgba($color-text, .7);
12
+ background-color: rgba($color-back, .7);
13
+ }
14
+ &.outline {
15
+ background: none;
16
+ color: $color-back;
17
+ border-color: $color-back;
18
+ &:hover {
19
+ color: rgba($color-back, .6);
20
+ border-color: rgba($color-back, .5);
21
+ }
22
+ &:disabled,
23
+ &.disabled {
24
+ background: none;
25
+ color: rgba($color-back, .7);
26
+ border-color: rgba($color-back, .5);
27
+ }
28
+ }
29
+ }
@@ -0,0 +1,97 @@
1
+ // display
2
+ @mixin flex {
3
+ display: flex;
4
+ }
5
+
6
+ // basis
7
+ @mixin flex-basis($width) {
8
+ flex-basis: $width;
9
+ }
10
+
11
+ // items wrap
12
+ @mixin flex-items-wrap {
13
+ flex-wrap: wrap;
14
+ }
15
+
16
+ // items nowrap
17
+ @mixin flex-items-nowrap {
18
+ flex-wrap: nowrap;
19
+ }
20
+
21
+ // items row
22
+ @mixin flex-items-row {
23
+ flex-direction: row;
24
+ }
25
+
26
+ // items columns
27
+ @mixin flex-items-column {
28
+ flex-direction: column;
29
+ }
30
+
31
+ // items left
32
+ @mixin flex-items-left {
33
+ justify-content: flex-start;
34
+ }
35
+
36
+ // items right
37
+ @mixin flex-items-right {
38
+ justify-content: flex-end;
39
+ }
40
+
41
+ // items center
42
+ @mixin flex-items-center {
43
+ justify-content: center;
44
+ }
45
+
46
+ // items between
47
+ @mixin flex-items-space-between {
48
+ justify-content: space-between;
49
+ }
50
+
51
+ // items around
52
+ @mixin flex-items-space-around {
53
+ justify-content: space-around;
54
+ }
55
+
56
+ // items vertical top
57
+ @mixin flex-items-top {
58
+ align-items: flex-start;
59
+ }
60
+
61
+ // items vertical middle
62
+ @mixin flex-items-middle {
63
+ align-items: center;
64
+ }
65
+
66
+ // items vertical bottom
67
+ @mixin flex-items-bottom {
68
+ align-items: flex-end;
69
+ }
70
+
71
+ // item grow
72
+ @mixin flex-item-grow($grow: 0) {
73
+ flex-grow: $grow;
74
+ }
75
+
76
+ // item auto
77
+ @mixin flex-item-auto {
78
+ flex: auto;
79
+ }
80
+
81
+ // item one
82
+ @mixin flex-item-one {
83
+ flex: 1;
84
+ }
85
+
86
+ // item shrink
87
+ @mixin flex-item-shrink($num: 0) {
88
+ flex-shrink: $num;
89
+ }
90
+
91
+ // item width
92
+ @mixin flex-item-width($width) {
93
+ flex: 0 0 $width;
94
+ @include breakpoint(sm) {
95
+ flex: 0 0 100% !important;
96
+ }
97
+ }
@@ -0,0 +1,27 @@
1
+ // Text
2
+ @mixin text-font($font) {
3
+ body {
4
+ font-family: #{$font};
5
+ }
6
+ }
7
+
8
+ // Headings
9
+ @mixin headings-font($font) {
10
+ h1.title, h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
11
+ font-family: #{$font};
12
+ }
13
+ }
14
+
15
+ // Buttons
16
+ @mixin buttons-font($font) {
17
+ button, .button {
18
+ font-family: #{$font};
19
+ }
20
+ }
21
+
22
+ // Inputs
23
+ @mixin inputs-font($font) {
24
+ input, textarea, select {
25
+ font-family: #{$font};
26
+ }
27
+ }
@@ -0,0 +1,28 @@
1
+ // vertical
2
+ @mixin gradient-vertical($start: #555, $end: #333) {
3
+ background-color: $start;
4
+ background-image: linear-gradient(to bottom, $start 0%, $end 100%);
5
+ }
6
+
7
+ // vertical to opacity
8
+ @mixin gradient-vertical-to-opacity($color, $opacity: 0) {
9
+ $rgba: rgba(red($color), green($color), blue($color), $opacity);
10
+ background: linear-gradient(to bottom, $color 0%, $rgba 100%);
11
+ }
12
+
13
+ // horizontal
14
+ @mixin gradient-horizontal($start: #555, $end: #333) {
15
+ background-color: $start;
16
+ background: linear-gradient(to right, $start 0%, $end 100%);
17
+ }
18
+
19
+ // horizontal to opacity
20
+ @mixin gradient-horizontal-to-opacity($color: #555, $opacity: 0) {
21
+ $rgba: rgba(red($color), green($color), blue($color), $opacity);
22
+ background: linear-gradient(to right, $color 0%, $rgba 100%);
23
+ }
24
+
25
+ // radial
26
+ @mixin gradient-radial($inner: #555, $outer: #333) {
27
+ background-image: radial-gradient(circle, $inner, $outer);
28
+ }
@@ -0,0 +1,54 @@
1
+ // Make Row
2
+ @mixin grid-row {
3
+ @include flex;
4
+ @include flex-items-row;
5
+ @include flex-items-wrap;
6
+ @include breakpoint(sm) {
7
+ @include flex-items-column;
8
+ @include flex-items-nowrap;
9
+ }
10
+ }
11
+
12
+ // Generate Columns
13
+ @mixin generate-grid-columns {
14
+ @for $i from 1 through $grid-columns {
15
+ .col-#{$i} {
16
+ width: 100% / $grid-columns * $i;
17
+ }
18
+ .offset-#{$i} {
19
+ $width: 100% / $grid-columns * $i;
20
+ margin-left: $width;
21
+ }
22
+ }
23
+ .gutters {
24
+ @for $i from 1 through $grid-columns {
25
+ & > .col-#{$i} {
26
+ $width: 100% / $grid-columns * $i;
27
+ width: calc(#{$width} - #{$grid-gutter});
28
+ }
29
+ & > .offset-#{$i} {
30
+ $width: 100% / $grid-columns * $i;
31
+ margin-left: calc(#{$width} + #{$grid-gutter}) !important;
32
+ }
33
+ }
34
+ }
35
+ }
36
+
37
+ // Grid Media Columns
38
+ @mixin grid-media-columns($num) {
39
+ -webkit-column-count: $num;
40
+ -moz-column-count: $num;
41
+ column-count: $num;
42
+ -webkit-column-gap: var(--grid-gutter);
43
+ -moz-column-gap: var(--grid-gutter);
44
+ column-gap: var(--grid-gutter);
45
+ & > div {
46
+ display: inline-block;
47
+ width: 100%;
48
+ }
49
+ @include breakpoint(sm) {
50
+ -webkit-column-count: 1;
51
+ -moz-column-count: 1;
52
+ column-count: 1;
53
+ }
54
+ }
@@ -0,0 +1,10 @@
1
+ @mixin label($text, $back) {
2
+ background: $back;
3
+ color: $text;
4
+ &.tag,
5
+ &.outline {
6
+ background: none;
7
+ border-color: $back;
8
+ color: $back;
9
+ }
10
+ }
@@ -0,0 +1,60 @@
1
+ // Clearfix
2
+ @mixin clearfix {
3
+ &:after {
4
+ content: '';
5
+ display: table;
6
+ clear: both;
7
+ }
8
+ }
9
+
10
+ // Transition
11
+ @mixin transition($transition: all linear .2s) {
12
+ -moz-transition: $transition;
13
+ transition: $transition;
14
+ }
15
+
16
+ // transform
17
+ @mixin transform($transforms) {
18
+ -moz-transform: $transforms;
19
+ -ms-transform: $transforms;
20
+ -webkit-transform: $transforms;
21
+ transform: $transforms;
22
+ }
23
+
24
+ // blur
25
+ @mixin blur($radius) {
26
+ -webkit-filter: blur($radius);
27
+ -moz-filter: blur($radius);
28
+ -ms-filter: blur($radius);
29
+ filter: blur($radius);
30
+ }
31
+
32
+ // striped
33
+ @mixin striped($color: rgba(255, 255, 255, .2), $angle: 45deg) {
34
+ background-image: -webkit-linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);
35
+ background-image: -o-linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);
36
+ background-image: linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);
37
+ }
38
+
39
+ // animation
40
+ @mixin animation($animation) {
41
+ -webkit-animation: $animation;
42
+ -moz-animation: $animation;
43
+ animation: $animation;
44
+ }
45
+
46
+ // Retina Images
47
+ @mixin retina-background-image($file, $type, $width: auto, $height: auto) {
48
+ background-repeat: no-repeat;
49
+ background-image: url($file + '.' + $type);
50
+ @media
51
+ only screen and (-webkit-min-device-pixel-ratio: 2),
52
+ only screen and (min--moz-device-pixel-ratio: 2),
53
+ only screen and (-o-min-device-pixel-ratio: 2/1),
54
+ only screen and (min-device-pixel-ratio: 2),
55
+ only screen and (min-resolution: 192dpi),
56
+ only screen and (min-resolution: 2dppx) {
57
+ background-image: url($file + '-2x.' + $type);
58
+ background-size: $width $height;
59
+ }
60
+ }