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,28 @@
1
+ // Text Colors
2
+ .black { color: var(--color-black); }
3
+ .inverted { color: var(--color-inverted); }
4
+ .error { color: var(--color-error); }
5
+ .success { color: var(--color-success); }
6
+ .warning { color: var(--color-warning); }
7
+ .focus { color: var(--color-focus); }
8
+ .aluminum { color: var(--color-aluminum); }
9
+ .silver { color: var(--color-silver); }
10
+ .lightgray { color: var(--color-lightgray); }
11
+ .gray { color: var(--color-gray); }
12
+ .midgray { color: var(--color-midgray); }
13
+ .darkgray { color: var(--color-darkgray); }
14
+
15
+ // Background Colors
16
+ .bg-black { background-color: var(--color-black); }
17
+ .bg-inverted { background-color: var(--color-inverted); }
18
+ .bg-error { background-color: var(--color-error); }
19
+ .bg-success { background-color: var(--color-success); }
20
+ .bg-warning { background-color: var(--color-warning); }
21
+ .bg-focus { background-color: var(--color-focus); }
22
+ .bg-aluminum { background-color: var(--color-aluminum); }
23
+ .bg-silver { background-color: var(--color-silver); }
24
+ .bg-lightgray { background-color: var(--color-lightgray); }
25
+ .bg-gray { background-color: var(--color-gray); }
26
+ .bg-midgray { background-color: var(--color-midgray); }
27
+ .bg-darkgray { background-color: var(--color-darkgray); }
28
+ .bg-highlight { background-color: var(--color-highlight); }
@@ -0,0 +1,51 @@
1
+ .dropdown {
2
+ position: absolute;
3
+ z-index: var(--z-over-content);
4
+ top: 0;
5
+ right: 0;
6
+ width: 280px;
7
+ color: #000;
8
+ font-size: calc(var(--font-size) - 1px);
9
+ background: #fff;
10
+ box-shadow: 0 10px 25px rgba(0, 0, 0, .15);
11
+ border-radius: 3px;
12
+ max-height: 300px;
13
+ margin: 0;
14
+ padding: 0;
15
+ overflow: hidden;
16
+ &.dropdown-mobile {
17
+ position: fixed;
18
+ top: 0;
19
+ left: 0;
20
+ right: 0;
21
+ bottom: 0;
22
+ width: 100%;
23
+ max-height: none;
24
+ border: none;
25
+ }
26
+ & .close {
27
+ margin: 20px auto;
28
+ }
29
+ &.open {
30
+ overflow: auto;
31
+ }
32
+ & ul {
33
+ list-style: none;
34
+ margin: 0;
35
+ & li {
36
+ border-bottom: 1px solid rgba(0, 0, 0, .07);
37
+ &:last-child {
38
+ border-bottom: none;
39
+ }
40
+ }
41
+ & a {
42
+ display: block;
43
+ padding: 12px;
44
+ text-decoration: none;
45
+ color: #000;
46
+ &:hover {
47
+ background: rgba(0, 0, 0, .05);
48
+ }
49
+ }
50
+ }
51
+ }
@@ -0,0 +1,259 @@
1
+ // Fieldset
2
+ fieldset {
3
+ font-family: inherit;
4
+ border: 1px solid rgba(0, 0, 0, .1);
5
+ padding: 2rem;
6
+ margin-bottom: 2rem;
7
+ margin-top: 2rem;
8
+ }
9
+ legend {
10
+ font-weight: bold;
11
+ font-size: calc(var(--font-size-smaller));
12
+ text-transform: uppercase;
13
+ padding: 0 1rem;
14
+ margin-left: -1rem;
15
+ top: 2px;
16
+ position: relative;
17
+ line-height: 0;
18
+ }
19
+ input,
20
+ textarea,
21
+ select {
22
+ display: block;
23
+ width: 100%;
24
+ font-family: inherit;
25
+ font-size: var(--input-font-size);
26
+ height: var(--input-height);
27
+ outline: none;
28
+ vertical-align: middle;
29
+ background-color: var(--input-background-color);
30
+ border: var(--input-border-width) solid var(--input-border-color);
31
+ border-radius: var(--input-border-radius);
32
+ box-shadow: var(--input-box-shadow);
33
+ padding: 0 var(--input-padding-rl);
34
+ }
35
+
36
+ // Sizing
37
+ input.small,
38
+ textarea.small,
39
+ select.small {
40
+ height: var(--input-height-small);
41
+ font-size: calc(var(--input-font-size-small));
42
+ padding: 0 var(--input-padding-small-rl);
43
+ border-radius: var(--input-border-radius);
44
+ }
45
+ input.big,
46
+ textarea.big,
47
+ select.big {
48
+ height: var(--input-height-big);
49
+ font-size: calc(var(--input-font-size-big));
50
+ padding: 0 var(--input-padding-big-rl);
51
+ border-radius: var(--input-border-radius);
52
+ }
53
+ // States
54
+ input,
55
+ textarea,
56
+ select {
57
+ &:focus {
58
+ outline: none;
59
+ background-color: var(--input-focus-background-color);
60
+ border-color: var(--input-focus-border-color);
61
+ box-shadow: var(--input-focus-box-shadow);
62
+ }
63
+ &.error {
64
+ background-color: var(--input-error-background-color);
65
+ border: var(--input-border-width) solid var(--input-error-border-color);
66
+ &:focus {
67
+ border-color: var(--input-error-border-color);
68
+ box-shadow: var(--input-error-focus-box-shadow);
69
+ }
70
+ }
71
+ &.success {
72
+ background-color: var(--input-success-background-color);
73
+ border: var(--input-border-width) solid var(--input-success-border-color);
74
+ &:focus {
75
+ border-color: var(--input-success-border-color);
76
+ box-shadow: var(--input-success-focus-box-shadow);
77
+ }
78
+ }
79
+ &:disabled,
80
+ &.disabled {
81
+ resize: none;
82
+ opacity: var(--input-disabled-opacity);
83
+ cursor: default;
84
+ font-style: italic;
85
+ color: var(--input-disabled-color);
86
+ }
87
+ }
88
+ select {
89
+ -webkit-appearance: none;
90
+ background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="9" height="12" viewBox="0 0 9 12"><path fill="#5e6c75" d="M0.722,4.823L-0.01,4.1,4.134-.01,4.866,0.716Zm7.555,0L9.01,4.1,4.866-.01l-0.732.726ZM0.722,7.177L-0.01,7.9,4.134,12.01l0.732-.726Zm7.555,0L9.01,7.9,4.866,12.01l-0.732-.726Z"/></svg>');
91
+ background-repeat: no-repeat;
92
+ background-position: right 1rem center;
93
+ }
94
+ select[multiple] {
95
+ background-image: none;
96
+ height: auto;
97
+ padding: .5rem .75rem;
98
+ }
99
+ textarea {
100
+ height: auto;
101
+ padding: var(--input-textarea-padding-tb) var(--input-padding-rl);
102
+ line-height: var(--textarea-base-line);
103
+ vertical-align: top;
104
+ }
105
+ input[type="file"] {
106
+ width: auto;
107
+ border: none;
108
+ padding: 0;
109
+ height: auto;
110
+ background: none;
111
+ box-shadow: none;
112
+ display: inline-block;
113
+ }
114
+ input[type="search"],
115
+ input.search {
116
+ background-repeat: no-repeat;
117
+ background-position: 8px 53%;
118
+ background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path fill="#000" fill-opacity="0.4" d="M14.891,14.39l-0.5.5a0.355,0.355,0,0,1-.5,0L9.526,10.529a5.3,5.3,0,1,1,2.106-4.212,5.268,5.268,0,0,1-1.1,3.21l4.362,4.362A0.354,0.354,0,0,1,14.891,14.39ZM6.316,2.418a3.9,3.9,0,1,0,3.9,3.9A3.9,3.9,0,0,0,6.316,2.418Z"/></svg>');
119
+ padding-left: 32px;
120
+ }
121
+ input[type="radio"],
122
+ input[type="checkbox"] {
123
+ display: inline-block;
124
+ width: auto;
125
+ height: auto;
126
+ padding: 0;
127
+ }
128
+ label {
129
+ display: block;
130
+ color: var(--color-darkgray);
131
+ margin-bottom: 4px;
132
+ font-size: calc(var(--font-size) - 1px);
133
+ &.checkbox,
134
+ & .desc,
135
+ & .success,
136
+ & .error {
137
+ text-transform: none;
138
+ font-weight: normal;
139
+ }
140
+ &.checkbox {
141
+ font-size: var(--font-size);
142
+ line-height: var(--base-line);
143
+ cursor: pointer;
144
+ color: inherit;
145
+ & input {
146
+ margin-top: 0;
147
+ }
148
+ }
149
+ }
150
+ .form-checkboxes {
151
+ & label.checkbox {
152
+ display: inline-block;
153
+ margin-right: 16px;
154
+ }
155
+ }
156
+ .req {
157
+ position: relative;
158
+ top: 1px;
159
+ font-weight: bold;
160
+ color: var(--color-error);
161
+ font-size: 110%;
162
+ }
163
+ .desc {
164
+ color: var(--color-gray);
165
+ font-size: calc(var(--font-size-smaller));
166
+ line-height: var(--base-line-smaller);
167
+ }
168
+ span.desc {
169
+ margin-left: 4px;
170
+ }
171
+ div.desc {
172
+ margin-top: 4px;
173
+ margin-bottom: -8px;
174
+ }
175
+ .form-buttons {
176
+ & button,
177
+ & .button {
178
+ margin-right: 8px;
179
+ }
180
+ }
181
+ form,
182
+ .form-item {
183
+ margin-bottom: 2rem;
184
+ }
185
+ .form {
186
+ & > .form-item:last-child {
187
+ margin-bottom: 0;
188
+ }
189
+ & .row:last-child {
190
+ & .form-item {
191
+ margin-bottom: 0;
192
+ }
193
+ }
194
+ & span.success,
195
+ & span.error {
196
+ font-size: calc(var(--font-size-smaller));
197
+ line-height: var(--base-line-smaller);
198
+ margin-left: 4px;
199
+ }
200
+ }
201
+ .form-inline {
202
+ & input,
203
+ & textarea,
204
+ & select {
205
+ display: inline-block;
206
+ width: auto;
207
+ }
208
+ }
209
+
210
+ // Append & Prepend
211
+ .append,
212
+ .prepend {
213
+ @include flex;
214
+ & input {
215
+ @include flex-item-one;
216
+ }
217
+ & .button,
218
+ & span {
219
+ @include flex-item-shrink;
220
+ }
221
+ & span {
222
+ @include flex;
223
+ @include flex-items-column;
224
+ @include flex-items-center;
225
+ font-weight: normal;
226
+ border: var(--input-border-width) solid var(--input-border-color);
227
+ background-color: var(--color-aluminum);
228
+ padding: 0 .875rem;
229
+ color: rgba(0, 0, 0, .5);
230
+ font-size: calc(var(--font-size-smaller));
231
+ white-space: nowrap;
232
+ }
233
+ }
234
+ .prepend {
235
+ & input {
236
+ border-radius: 0 var(--input-border-radius) var(--input-border-radius) 0;
237
+ }
238
+ & .button {
239
+ margin-right: -1px;
240
+ border-radius: var(--input-border-radius) 0 0 var(--input-border-radius) !important;
241
+ }
242
+ & span {
243
+ border-right: none;
244
+ border-radius: var(--input-border-radius) 0 0 var(--input-border-radius);
245
+ }
246
+ }
247
+ .append {
248
+ & input {
249
+ border-radius: var(--input-border-radius) 0 0 var(--input-border-radius);
250
+ }
251
+ & .button {
252
+ margin-left: -1px;
253
+ border-radius: 0 var(--input-border-radius) var(--input-border-radius) 0 !important;
254
+ }
255
+ & span {
256
+ border-left: none;
257
+ border-radius: 0 var(--input-border-radius) var(--input-border-radius) 0;
258
+ }
259
+ }
@@ -0,0 +1,68 @@
1
+ // Grid Row
2
+ .row {
3
+ @include grid-row;
4
+
5
+ // Gutters
6
+ &.gutters,
7
+ &.gutters > .row {
8
+ margin-left: -$grid-gutter;
9
+ @include breakpoint(sm) {
10
+ margin-left: 0;
11
+ }
12
+ & > .col {
13
+ margin-left: $grid-gutter;
14
+ @include breakpoint(sm) {
15
+ margin-left: 0;
16
+ }
17
+ }
18
+ }
19
+ &.around {
20
+ @include flex-items-space-around;
21
+ }
22
+ &.between {
23
+ @include flex-items-space-between;
24
+ }
25
+ &.auto {
26
+ & .col {
27
+ @include flex-item-grow(1);
28
+ }
29
+ }
30
+ }
31
+
32
+ // Grid Columns
33
+ @include generate-grid-columns;
34
+
35
+ // Offset
36
+ [class^='offset-'],
37
+ [class*=' offset-'] {
38
+ @include breakpoint(sm) {
39
+ margin-left: 0;
40
+ }
41
+ }
42
+
43
+ // Ordering
44
+ .first {
45
+ order: -1;
46
+ }
47
+ .last {
48
+ order: 1;
49
+ }
50
+ @include breakpoint(sm) {
51
+ .row {
52
+ & .col {
53
+ margin-left: 0;
54
+ width: 100%;
55
+ }
56
+ &.gutters {
57
+ & .col {
58
+ margin-bottom: calc(var(--text-margin-bottom));
59
+ }
60
+ }
61
+ }
62
+ .first-sm {
63
+ order: -1;
64
+ }
65
+ .last-sm {
66
+ order: 1;
67
+ }
68
+ }
@@ -0,0 +1,51 @@
1
+ @font-face {
2
+ font-family: 'Kube';
3
+ src: url("data:application/x-font-ttf;charset=utf-8;base64,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") format('truetype');
4
+ font-weight: normal;
5
+ font-style: normal;
6
+ }
7
+
8
+ [class^="kube-"], [class*=" kube-"], .close, .caret {
9
+ /* use !important to prevent issues with browser extensions that change fonts */
10
+ font-family: 'Kube' !important;
11
+ speak: none;
12
+ font-style: normal;
13
+ font-weight: normal;
14
+ font-variant: normal;
15
+ text-transform: none;
16
+ line-height: 1;
17
+
18
+ /* Better Font Rendering =========== */
19
+ -webkit-font-smoothing: antialiased;
20
+ -moz-osx-font-smoothing: grayscale;
21
+ }
22
+
23
+ .kube-calendar:before {
24
+ content: "\e900";
25
+ }
26
+ .caret.down:before,
27
+ .kube-caret-down:before {
28
+ content: "\e901";
29
+ }
30
+ .caret.left:before,
31
+ .kube-caret-left:before {
32
+ content: "\e902";
33
+ }
34
+ .caret.right:before,
35
+ .kube-caret-right:before {
36
+ content: "\e903";
37
+ }
38
+ .caret.up:before,
39
+ .kube-caret-up:before {
40
+ content: "\e904";
41
+ }
42
+ .close:before,
43
+ .kube-close:before {
44
+ content: "\e905";
45
+ }
46
+ .kube-menu:before {
47
+ content: "\e906";
48
+ }
49
+ .kube-search:before {
50
+ content: "\e907";
51
+ }