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,13 @@
1
+ /*
2
+ Kube. CSS & JS Framework
3
+ Version 6.5.2
4
+ Updated: February 2, 2017
5
+
6
+ http://imperavi.com/kube/
7
+
8
+ Copyright (c) 2009-2017, Imperavi LLC.
9
+ License: MIT
10
+ */
11
+ @import "kube/variables";
12
+ @import "kube/mixins";
13
+ @import "kube/components";
@@ -0,0 +1,25 @@
1
+ // Core
2
+ @import "components/reset";
3
+ @import "components/colors";
4
+ @import "components/typography";
5
+ @import "components/grid";
6
+ @import "components/tables";
7
+ @import "components/forms";
8
+ @import "components/buttons";
9
+ @import "components/labels";
10
+ @import "components/breadcrumbs";
11
+ @import "components/pagination";
12
+ @import "components/icons";
13
+ @import "components/positioning";
14
+ @import "components/sizing";
15
+ @import "components/utils";
16
+ @import "components/print";
17
+
18
+ // Plugins
19
+ @import "components/animation";
20
+ @import "components/dropdown";
21
+ @import "components/messages";
22
+ @import "components/modal";
23
+ @import "components/offcanvas";
24
+ @import "components/tabs";
25
+
@@ -0,0 +1,8 @@
1
+ @import "mixins/breakpoints";
2
+ @import "mixins/fonts";
3
+ @import "mixins/flex";
4
+ @import "mixins/grid";
5
+ @import "mixins/buttons";
6
+ @import "mixins/labels";
7
+ @import "mixins/gradients";
8
+ @import "mixins/utils";
@@ -0,0 +1,178 @@
1
+ // *** CSS Custom Properties available at runtime via Javascript ***
2
+
3
+ :root {
4
+ // WIDTH
5
+ --w-small: 480px;
6
+ --w-medium: 600px;
7
+ --w-big: 740px;
8
+ --w-large: 840px;
9
+
10
+ // Z-INDEX
11
+ --z-over-content: 100;
12
+ --z-over-control: 200;
13
+ --z-over-page: 300;
14
+ --z-over-screen: 400;
15
+ --z-over-all: 500;
16
+
17
+ // FONT FAMILY
18
+ --text-font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif;
19
+ --monospace-font-family: Consolas, Monaco, 'Courier New', monospace;
20
+ --headings-font-family: var(--text-font-family);
21
+ --buttons-font-family: var(--text-font-family);
22
+ --input-font-family: var(--text-font-family);
23
+
24
+ // COLORS
25
+ // Text
26
+ --color-text: #313439;
27
+ --color-headings: #0d0d0e;
28
+ // Links
29
+ --color-link: #3794de;
30
+ --color-link-hover: #f03c69;
31
+ // Button
32
+ --color-button-primary: #1c86f2;
33
+ --color-button-primary-disabled: #64adf6;
34
+ --color-button-primary-hover: #64adf6;
35
+ --color-button-primary-text: #fff;
36
+ --color-button-primary-text-disabled: #64adf6;
37
+ --color-button-secondary: #313439;
38
+ --color-button-secondary-disabled: #000;
39
+ --color-button-secondary-hover: #545a62;
40
+ --color-button-secondary-text: #fff;
41
+ --color-button-secondary-text-disabled: #787f8b;
42
+ // States
43
+ --color-error: #f03c69;
44
+ --color-success: #35beb1;
45
+ --color-warning: #f7ba45;
46
+ --color-focus: #1c86f2;
47
+ // Extra
48
+ --color-inverted: #fff;
49
+ --color-highlight: #edf2ff;
50
+ // Grayscale
51
+ --color-black: #0d0d0e;
52
+ --color-darkgray: #313439;
53
+ --color-midgray: #676b72;
54
+ --color-gray: #bdbdbd;
55
+ --color-lightgray: #d4d4d4;
56
+ --color-silver: #e0e1e1;
57
+ --color-aluminum: #f8f8f8;
58
+
59
+ // TEXT
60
+ // Font Size
61
+ --font-size: 16px;
62
+ --font-size-smaller: var(--font-size) - 4px;
63
+ --font-size-small: var(--font-size) - 2px;
64
+ --font-size-big: var(--font-size) + 2px;
65
+ --font-size-large: var(--font-size) + 4px;
66
+ // Baseline
67
+ --base-line: 24px;
68
+ --base-line-smaller: 20px;
69
+ --base-line-small: 20px;
70
+ --base-line-big: 28px;
71
+ --base-line-large: 32px;
72
+ // Margin
73
+ --text-margin-bottom: var(--font-size);
74
+
75
+ // HEADINGS
76
+ // Font Size
77
+ // By default: 60, 48, 36, 24, 21, 18, 16
78
+ --heading-font-size-title: 60px;
79
+ --heading-font-size-1: 48px;
80
+ --heading-font-size-2: 36px;
81
+ --heading-font-size-3: 24px;
82
+ --heading-font-size-4: 21px;
83
+ --heading-font-size-5: 18px;
84
+ --heading-font-size-6: 16px;
85
+ // Baseline
86
+ --heading-base-line-title: 64px;
87
+ --heading-base-line-1: 52px;
88
+ --heading-base-line-2: 40px;
89
+ --heading-base-line-3: 32px;
90
+ --heading-base-line-4: 32px;
91
+ --heading-base-line-5: 28px;
92
+ --heading-base-line-6: 24px;
93
+ // Margin
94
+ --heading-margin-bottom: var(--font-size);
95
+
96
+ // TABLES
97
+ // Font Size
98
+ --table-font-size: var(--font-size) - 1px;
99
+ // Baseline
100
+ --table-base-line: 24px;
101
+ // Padding
102
+ --table-padding-tb: 1rem;
103
+ --table-padding-rl: 1rem;
104
+ // Border
105
+ --table-border: 1px solid rgba(0, 0, 0, .05);
106
+ // Striped
107
+ --table-background-striped: var(--color-aluminum);
108
+
109
+ // BUTTONS
110
+ // Font Size
111
+ --button-font-size: 15px;
112
+ --button-font-size-smaller: var(--button-font-size) - 4px;
113
+ --button-font-size-small: var(--button-font-size) - 2px;
114
+ --button-font-size-big: var(--button-font-size) + 2px;
115
+ --button-font-size-large: var(--button-font-size) + 4px;
116
+ // Baseline
117
+ --button-base-line: 20px;
118
+ // Height
119
+ --button-height: 40px;
120
+ --button-height-small: 36px;
121
+ --button-height-big: 48px;
122
+ --button-height-large: 56px;
123
+ // Padding
124
+ --button-padding-tb: 8px;
125
+ --button-padding-rl: 20px;
126
+ --button-padding-small-tb: 6px;
127
+ --button-padding-small-rl: 20px;
128
+ --button-padding-big-tb: 13px;
129
+ --button-padding-big-rl: 24px;
130
+ --button-padding-large-tb: 20px;
131
+ --button-padding-large-rl: 36px;
132
+ // Weight
133
+ --button-font-weight: 500;
134
+ // Radius
135
+ --button-border-radius: 3px;
136
+
137
+ // INPUTS
138
+ // Font Size
139
+ --input-font-size: 15px;
140
+ --input-font-size-smaller: var(--input-font-size) - 4px;
141
+ --input-font-size-small: var(--input-font-size) - 2px;
142
+ --input-font-size-big: var(--input-font-size) + 2px;
143
+ --input-font-size-large: var(--input-font-size) + 4px;
144
+ // Baseline
145
+ --textarea-base-line: var(--base-line);
146
+ // Height
147
+ --input-height: 40px;
148
+ --input-height-small: 36px;
149
+ --input-height-big: 48px;
150
+ --input-height-large: 56px;
151
+ // Padding
152
+ --input-padding-rl: 12px;
153
+ --input-padding-small-rl: 12px;
154
+ --input-padding-big-rl: 12px;
155
+ --input-padding-large-rl: 12px;
156
+ --input-textarea-padding-tb: 8px;
157
+ // States
158
+ --input-border-width: 1px;
159
+ --input-border-color: var(--color-lightgray);
160
+ --input-background-color: #fff;
161
+ --input-box-shadow: none;
162
+ --input-focus-background-color: #fff;
163
+ --input-focus-border-color: var(--color-focus);
164
+ --input-focus-box-shadow: 0 0 1px var(--color-focus) inset;
165
+ --input-error-background-color: var(--color-error);
166
+ --input-error-border-color: var(--color-error);
167
+ --input-error-focus-box-shadow: 0 0 1px var(--color-error) inset;
168
+ --input-success-background-color: var(--color-success);
169
+ --input-success-border-color: var(--color-success);
170
+ --input-success-focus-box-shadow: 0 0 1px var(--color-success) inset;
171
+ --input-disabled-opacity: .6;
172
+ --input-disabled-color: rgba(0, 0, 0, .5);
173
+ // Radius
174
+ --input-border-radius: 3px;
175
+
176
+ // OVERLAY
177
+ --overlay-background-color: rgba(#fff, .95);
178
+ }
@@ -0,0 +1,10 @@
1
+ // *** SASS variables used only at compile-time ***
2
+
3
+ // BREAKPOINTS
4
+ $sm: 768px !default;
5
+ $md: 1024px !default;
6
+ $lg: 1200px !default;
7
+
8
+ // GRID
9
+ $grid-columns: 12 !default;
10
+ $grid-gutter: 2% !default;
@@ -0,0 +1,14 @@
1
+ /*
2
+ Kube. CSS & JS Framework
3
+ Version 6.5.2
4
+ Updated: February 2, 2017
5
+
6
+ http://imperavi.com/kube/
7
+
8
+ Copyright (c) 2009-2017, Imperavi LLC.
9
+ License: MIT
10
+ */
11
+ @import "kube/properties";
12
+ @import "kube/variables";
13
+ @import "kube/mixins";
14
+ @import "kube/components";
@@ -0,0 +1,95 @@
1
+ @keyframes slideUp {
2
+ to { height: 0; padding-top: 0; padding-bottom: 0; }
3
+ }
4
+ @keyframes slideDown {
5
+ from { height: 0; padding-top: 0; padding-bottom: 0; }
6
+ }
7
+ @keyframes fadeIn {
8
+ from { opacity: 0; }
9
+ to { opacity: 1; }
10
+ }
11
+ @keyframes fadeOut {
12
+ from { opacity: 1; }
13
+ to { opacity: 0; }
14
+ }
15
+ @keyframes flipIn {
16
+ from { opacity: 0; transform: scaleY(0); }
17
+ to { opacity: 1; transform: scaleY(1); }
18
+ }
19
+ @keyframes flipOut {
20
+ from { opacity: 1; transform: scaleY(1); }
21
+ to { opacity: 0; transform: scaleY(0); }
22
+ }
23
+ @keyframes zoomIn {
24
+ from { opacity: 0; transform: scale3d(.3, .3, .3); }
25
+ 50% { opacity: 1; }
26
+ }
27
+ @keyframes zoomOut {
28
+ from { opacity: 1; }
29
+ 50% { opacity: 0; transform: scale3d(.3, .3, .3); }
30
+ to { opacity: 0; }
31
+ }
32
+ @keyframes slideInRight {
33
+ from { transform: translate3d(100%, 0, 0); visibility: visible; }
34
+ to { transform: translate3d(0, 0, 0); }
35
+ }
36
+ @keyframes slideInLeft {
37
+ from { transform: translate3d(-100%, 0, 0); visibility: visible; }
38
+ to { transform: translate3d(0, 0, 0); }
39
+ }
40
+ @keyframes slideInDown {
41
+ from { transform: translate3d(0, -100%, 0); visibility: visible; }
42
+ to { transform: translate3d(0, 0, 0); }
43
+ }
44
+ @keyframes slideOutLeft {
45
+ from { transform: translate3d(0, 0, 0); }
46
+ to { visibility: hidden; transform: translate3d(-100%, 0, 0); }
47
+ }
48
+ @keyframes slideOutRight {
49
+ from { transform: translate3d(0, 0, 0); }
50
+ to { visibility: hidden; transform: translate3d(100%, 0, 0); }
51
+ }
52
+ @keyframes slideOutUp {
53
+ from { transform: translate3d(0, 0, 0); }
54
+ to { visibility: hidden; transform: translate3d(0, -100%, 0); }
55
+ }
56
+ @keyframes rotate {
57
+ from { transform: rotate(0deg); }
58
+ to { transform: rotate(360deg); }
59
+ }
60
+ @keyframes pulse {
61
+ from { transform: scale3d(1, 1, 1); }
62
+ 50% { transform: scale3d(1.03, 1.03, 1.03); }
63
+ to { transform: scale3d(1, 1, 1); }
64
+ }
65
+ @keyframes shake {
66
+ 15% { transform: translateX(0.5rem); }
67
+ 30% { transform: translateX(-0.4rem); }
68
+ 45% { transform: translateX(0.3rem); }
69
+ 60% { transform: translateX(-0.2rem); }
70
+ 75% { transform: translateX(0.1rem); }
71
+ 90% { transform: translateX(0); }
72
+ }
73
+
74
+ .fadeIn { animation: fadeIn 250ms; }
75
+ .fadeOut { animation: fadeOut 250ms; }
76
+
77
+ .zoomIn { animation: zoomIn 200ms; }
78
+ .zoomOut { animation: zoomOut 500ms; }
79
+
80
+ .slideInRight { animation: slideInRight 500ms; }
81
+ .slideInLeft { animation: slideInLeft 500ms; }
82
+ .slideInDown { animation: slideInDown 500ms; }
83
+ .slideOutLeft { animation: slideOutLeft 500ms; }
84
+ .slideOutRight { animation: slideOutRight 500ms; }
85
+ .slideOutUp { animation: slideOutUp 500ms; }
86
+
87
+ .slideUp { overflow: hidden; animation: slideUp 200ms ease-in-out; }
88
+ .slideDown { overflow: hidden; animation: slideDown 80ms ease-in-out; }
89
+
90
+ .flipIn { animation: flipIn 250ms cubic-bezier(0.5, -0.5, 0.5, 1.5) }
91
+ .flipOut { animation: flipOut 500ms cubic-bezier(0.5, -0.5, 0.5, 1.5) }
92
+
93
+ .rotate { animation: rotate 500ms; }
94
+ .pulse { animation: pulse 250ms 2; }
95
+ .shake { animation: shake 500ms; }
@@ -0,0 +1,37 @@
1
+ .breadcrumbs {
2
+ font-size: calc(var(--font-size-small));
3
+ margin-bottom: var(--base-line);
4
+ & ul {
5
+ @include flex;
6
+ @include flex-items-middle;
7
+ }
8
+ &.push-center ul {
9
+ @include flex-items-center;
10
+ }
11
+ & span,
12
+ & a {
13
+ font-style: normal;
14
+ padding: 0 10px;
15
+ display: inline-block;
16
+ white-space: nowrap;
17
+ }
18
+ & li {
19
+ &:after {
20
+ display: inline-block;
21
+ content: '/';
22
+ color: rgba(0, 0, 0, .3);
23
+ }
24
+ &:last-child:after {
25
+ display: none;
26
+ }
27
+ &:first-child span,
28
+ &:first-child a {
29
+ padding-left: 0;
30
+ }
31
+ &.active a {
32
+ color: var(--color-text);
33
+ text-decoration: none;
34
+ cursor: text;
35
+ }
36
+ }
37
+ }
@@ -0,0 +1,166 @@
1
+ button,
2
+ .button {
3
+ font-family: var(--text-font-family);
4
+ font-size: var(--button-font-size);
5
+ color: var(--color-button-primary-text);
6
+ background-color: var(--color-button-primary);
7
+ border-radius: var(--button-border-radius);
8
+ min-height: var(--button-height);
9
+ padding: var(--button-padding-tb) var(--button-padding-rl);
10
+ font-weight: var(--button-font-weight);
11
+ text-decoration: none;
12
+ cursor: pointer;
13
+ display: inline-block;
14
+ line-height: var(--button-base-line);
15
+ border: 1px solid transparent;
16
+ vertical-align: middle;
17
+ -webkit-appearance: none;
18
+ & i {
19
+ position: relative;
20
+ top: 1px;
21
+ margin: 0 2px;
22
+ }
23
+ }
24
+ input[type="submit"] {
25
+ width: auto;
26
+ }
27
+ button:hover,
28
+ .button:hover {
29
+ outline: none;
30
+ text-decoration: none;
31
+ color: var(--color-button-primary-text);
32
+ background-color: var(--color-button-primary-hover);
33
+ }
34
+
35
+ // Disabled
36
+ .button:disabled,
37
+ .button.disabled {
38
+ cursor: default;
39
+ font-style: normal;
40
+ color: var(--color-button-primary-text-disabled);
41
+ background-color: var(--color-button-primary-disabled);
42
+ }
43
+
44
+ // Size
45
+ .button.small {
46
+ font-size: calc(var(--button-font-size-small));
47
+ min-height: var(--button-height-small);
48
+ padding: var(--button-padding-small-tb) var(--button-padding-small-rl);
49
+ border-radius: var(--button-border-radius);
50
+ }
51
+ .button.big {
52
+ font-size: calc(var(--button-font-size-big));
53
+ min-height: var(--button-height-big);
54
+ padding: var(--button-padding-big-tb) var(--button-padding-big-rl);
55
+ border-radius: var(--button-border-radius);
56
+ }
57
+ .button.large {
58
+ font-size: calc(var(--button-font-size-large));
59
+ min-height: var(--button-height-large);
60
+ padding: var(--button-padding-large-tb) var(--button-padding-large-rl);
61
+ border-radius: var(--button-border-radius);
62
+ }
63
+
64
+ // Outline
65
+ .button.outline {
66
+ background: none;
67
+ border-width: 2px;
68
+ border-color: var(--color-button-primary);
69
+ color: var(--color-button-primary);
70
+ &:hover {
71
+ background: none;
72
+ color: var(--color-button-primary-hover);
73
+ border-color: var(--color-button-primary-hover);
74
+ }
75
+ &:disabled,
76
+ &.disabled {
77
+ background: none;
78
+ color: var(--color-button-primary-text-disabled);
79
+ border-color: var(--color-button-primary-disabled);
80
+ }
81
+ }
82
+
83
+ // White
84
+ .button.inverted {
85
+ color: var(--color-button-secondary-text);
86
+ background-color: var(--color-inverted);
87
+ &:disabled,
88
+ &.disabled {
89
+ color: var(--color-button-secondary-text-disabled);
90
+ background-color: var(--color-button-secondary-disabled);
91
+ }
92
+ &.outline {
93
+ background: none;
94
+ color: var(--color-inverted);
95
+ border-color: var(--color-inverted);
96
+ &:hover {
97
+ color: var(--color-button-secondary-hover);
98
+ border-color: var(--color-button-secondary-hover);
99
+ }
100
+ &:disabled,
101
+ &.disabled {
102
+ background: none;
103
+ color: var(--color-button-secondary-text-disabled);
104
+ border-color: var(--color-button-secondary-disabled);
105
+ }
106
+ }
107
+ &:hover {
108
+ opacity: .7;
109
+ }
110
+ }
111
+
112
+ // Round
113
+ .button.round {
114
+ border-radius: var(--button-height-large);
115
+ }
116
+
117
+ // Raised
118
+ .button.raised {
119
+ box-shadow: 0 1px 3px rgba(0, 0, 0, .3);
120
+ }
121
+
122
+ // Upper
123
+ .button.upper {
124
+ text-transform: uppercase;
125
+ letter-spacing: .04em;
126
+ font-size: calc(var(--button-font-size-small));
127
+ &.small {
128
+ font-size: calc(var(--button-font-size-smaller));
129
+ }
130
+ &.big {
131
+ font-size: calc(var(--button-font-size-small));
132
+ }
133
+ &.large {
134
+ font-size: var(--button-font-size);
135
+ }
136
+ }
137
+
138
+ // Secondary
139
+ .button.secondary {
140
+ color: var(--color-button-secondary-text);
141
+ background-color: var(--color-button-secondary);
142
+ &:hover {
143
+ color: var(--color-button-secondary-text);
144
+ background-color: var(--color-button-secondary-hover);
145
+ }
146
+ &:disabled,
147
+ &.disabled {
148
+ color: var(--color-button-secondary-text-disabled);
149
+ background-color: var(--color-button-secondary-disabled);
150
+ }
151
+ &.outline {
152
+ background: none;
153
+ color: var(--color-button-secondary);
154
+ border-color: var(--color-button-secondary);
155
+ &:hover {
156
+ color: var(--color-button-secondary-hover);
157
+ border-color: var(--color-button-secondary-hover);
158
+ }
159
+ &:disabled,
160
+ &.disabled {
161
+ background: none;
162
+ color: var(--color-button-secondary-text-disabled);
163
+ border-color: var(--color-button-secondary-disabled);
164
+ }
165
+ }
166
+ }