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.
- checksums.yaml +7 -0
- data/.gitignore +3 -0
- data/CHANGELOG.md +31 -0
- data/Gemfile +2 -0
- data/README.md +158 -0
- data/app/assets/javascripts/kube.js +2201 -0
- data/app/assets/stylesheets/kube.scss +13 -0
- data/app/assets/stylesheets/kube/_components.scss +25 -0
- data/app/assets/stylesheets/kube/_mixins.scss +8 -0
- data/app/assets/stylesheets/kube/_properties.scss +178 -0
- data/app/assets/stylesheets/kube/_variables.scss +10 -0
- data/app/assets/stylesheets/kube/all.scss +14 -0
- data/app/assets/stylesheets/kube/components/_animation.scss +95 -0
- data/app/assets/stylesheets/kube/components/_breadcrumbs.scss +37 -0
- data/app/assets/stylesheets/kube/components/_buttons.scss +166 -0
- data/app/assets/stylesheets/kube/components/_colors.scss +28 -0
- data/app/assets/stylesheets/kube/components/_dropdown.scss +51 -0
- data/app/assets/stylesheets/kube/components/_forms.scss +259 -0
- data/app/assets/stylesheets/kube/components/_grid.scss +68 -0
- data/app/assets/stylesheets/kube/components/_icons.scss +51 -0
- data/app/assets/stylesheets/kube/components/_labels.scss +116 -0
- data/app/assets/stylesheets/kube/components/_messages.scss +49 -0
- data/app/assets/stylesheets/kube/components/_modal.scss +55 -0
- data/app/assets/stylesheets/kube/components/_offcanvas.scss +26 -0
- data/app/assets/stylesheets/kube/components/_pagination.scss +91 -0
- data/app/assets/stylesheets/kube/components/_positioning.scss +77 -0
- data/app/assets/stylesheets/kube/components/_print.scss +41 -0
- data/app/assets/stylesheets/kube/components/_reset.scss +48 -0
- data/app/assets/stylesheets/kube/components/_sizing.scss +107 -0
- data/app/assets/stylesheets/kube/components/_tables.scss +77 -0
- data/app/assets/stylesheets/kube/components/_tabs.scss +43 -0
- data/app/assets/stylesheets/kube/components/_typography.scss +325 -0
- data/app/assets/stylesheets/kube/components/_utils.scss +139 -0
- data/app/assets/stylesheets/kube/mixins/_breakpoints.scss +27 -0
- data/app/assets/stylesheets/kube/mixins/_buttons.scss +29 -0
- data/app/assets/stylesheets/kube/mixins/_flex.scss +97 -0
- data/app/assets/stylesheets/kube/mixins/_fonts.scss +27 -0
- data/app/assets/stylesheets/kube/mixins/_gradients.scss +28 -0
- data/app/assets/stylesheets/kube/mixins/_grid.scss +54 -0
- data/app/assets/stylesheets/kube/mixins/_labels.scss +10 -0
- data/app/assets/stylesheets/kube/mixins/_utils.scss +60 -0
- data/kube.gemspec +23 -0
- data/lib/generators/kube/install/install_generator.rb +13 -0
- data/lib/generators/kube/install/templates/kube_properties.scss +178 -0
- data/lib/kube.rb +5 -0
- data/lib/kube/engine.rb +6 -0
- data/lib/kube/version.rb +11 -0
- 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,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
|
+
}
|