hux 0.0.0 → 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (73) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +8 -0
  3. data/.hound.yml +5 -0
  4. data/.ruby-version +1 -0
  5. data/.scss-lint.yml +249 -0
  6. data/CHANGELOG.md +4 -0
  7. data/CODE_OF_CONDUCT.md +6 -0
  8. data/Gemfile +3 -0
  9. data/Gulpfile.js +34 -0
  10. data/LICENSE.md +21 -0
  11. data/README.md +1 -0
  12. data/RELEASING.md +21 -0
  13. data/Rakefile +8 -0
  14. data/bin/hux +5 -0
  15. data/circle.yml +7 -0
  16. data/contrib/index.html +1 -0
  17. data/contrib/styles.scss +19 -0
  18. data/core/_base.scss +9 -0
  19. data/core/_generic.scss +152 -0
  20. data/core/_helpers.scss +349 -0
  21. data/core/_minireset.scss +92 -0
  22. data/core/components/_all.scss +15 -0
  23. data/core/components/_breadcrumb.scss +116 -0
  24. data/core/components/_card.scss +77 -0
  25. data/core/components/_dropdown.scss +84 -0
  26. data/core/components/_level.scss +119 -0
  27. data/core/components/_media.scss +64 -0
  28. data/core/components/_menu.scss +72 -0
  29. data/core/components/_message.scss +118 -0
  30. data/core/components/_modal.scss +132 -0
  31. data/core/components/_nav.scss +173 -0
  32. data/core/components/_navbar.scss +441 -0
  33. data/core/components/_pagination.scss +188 -0
  34. data/core/components/_panel.scss +135 -0
  35. data/core/components/_tabs.scss +206 -0
  36. data/core/elements/_all.scss +14 -0
  37. data/core/elements/_box.scss +30 -0
  38. data/core/elements/_button.scss +290 -0
  39. data/core/elements/_container.scss +44 -0
  40. data/core/elements/_content.scss +224 -0
  41. data/core/elements/_form.scss +935 -0
  42. data/core/elements/_icon.scss +28 -0
  43. data/core/elements/_image.scss +56 -0
  44. data/core/elements/_notification.scss +53 -0
  45. data/core/elements/_other.scss +48 -0
  46. data/core/elements/_progress.scss +56 -0
  47. data/core/elements/_table.scss +148 -0
  48. data/core/elements/_tag.scss +132 -0
  49. data/core/elements/_title.scss +81 -0
  50. data/core/grid/_all.scss +2 -0
  51. data/core/grid/_columns.scss +577 -0
  52. data/core/grid/_tiles.scss +53 -0
  53. data/core/layout/_all.scss +3 -0
  54. data/core/layout/_footer.scss +6 -0
  55. data/core/layout/_hero.scss +257 -0
  56. data/core/layout/_section.scss +19 -0
  57. data/core/utilities/_all.scss +6 -0
  58. data/core/utilities/_animations.scss +9 -0
  59. data/core/utilities/_controls.scss +51 -0
  60. data/core/utilities/_derived-variables.scss +81 -0
  61. data/core/utilities/_functions.scss +46 -0
  62. data/core/utilities/_initial-variables.scss +68 -0
  63. data/core/utilities/_mixins.scss +301 -0
  64. data/core/utilities/_variables.scss +153 -0
  65. data/hux.gemspec +31 -0
  66. data/lib/hux/generator.rb +80 -0
  67. data/lib/hux/version.rb +3 -0
  68. data/lib/hux.rb +1 -1
  69. data/package.json +33 -0
  70. data/spec/bitters_spec.rb +17 -0
  71. data/spec/fixtures/application.scss +2 -0
  72. data/spec/spec_helper.rb +3 -0
  73. metadata +183 -12
@@ -0,0 +1,441 @@
1
+ $navbar-background-color: $white !default;
2
+ $navbar-height: 3.25rem !default;
3
+
4
+ $navbar-item-color: $grey-dark !default;
5
+ $navbar-item-hover-color: $black !default;
6
+ $navbar-item-hover-background-color: $background !default;
7
+ $navbar-item-active-color: $black !default;
8
+ $navbar-item-active-background-color: transparent !default;
9
+ $navbar-item-img-max-height: 1.75rem !default;
10
+
11
+ $navbar-tab-hover-background-color: transparent !default;
12
+ $navbar-tab-hover-border-bottom-color: $primary !default;
13
+ $navbar-tab-active-color: $primary !default;
14
+ $navbar-tab-active-background-color: transparent !default;
15
+ $navbar-tab-active-border-bottom-color: $primary !default;
16
+ $navbar-tab-active-border-bottom-style: solid !default;
17
+ $navbar-tab-active-border-bottom-width: 3px !default;
18
+
19
+ $navbar-dropdown-background-color: $white !default;
20
+ $navbar-dropdown-border-top: 1px solid $border !default;
21
+ $navbar-dropdown-offset: -4px !default;
22
+ $navbar-dropdown-arrow: $link !default;
23
+ $navbar-dropdown-radius: $radius-large !default;
24
+ $navbar-dropdown-z: 20 !default;
25
+
26
+ $navbar-dropdown-boxed-radius: $radius-large !default;
27
+ $navbar-dropdown-boxed-shadow: 0 8px 8px rgba($black, 0.1), 0 0 0 1px rgba($black, 0.1) !default;
28
+
29
+ $navbar-dropdown-item-hover-color: $black !default;
30
+ $navbar-dropdown-item-hover-background-color: $background !default;
31
+ $navbar-dropdown-item-active-color: $primary !default;
32
+ $navbar-dropdown-item-active-background-color: $background !default;
33
+
34
+ $navbar-divider-background-color: $border !default;
35
+
36
+ .navbar {
37
+ background-color: $navbar-background-color;
38
+ min-height: $navbar-height;
39
+ position: relative;
40
+
41
+ @each $name, $pair in $colors {
42
+ $color: nth($pair, 1);
43
+ $color-invert: nth($pair, 2);
44
+
45
+ &.is-#{$name} {
46
+ background-color: $color;
47
+ color: $color-invert;
48
+
49
+ .navbar-brand {
50
+ & > .navbar-item,
51
+ .navbar-link {
52
+ color: $color-invert;
53
+ }
54
+
55
+ & > a.navbar-item,
56
+ .navbar-link {
57
+ &:hover,
58
+ &.is-active {
59
+ background-color: darken($color, 5%);
60
+ color: $color-invert;
61
+ }
62
+ }
63
+
64
+ .navbar-link {
65
+ &::after {
66
+ border-color: $color-invert;
67
+ }
68
+ }
69
+ }
70
+
71
+ @include desktop {
72
+ .navbar-start,
73
+ .navbar-end {
74
+ & > .navbar-item,
75
+ .navbar-link {
76
+ color: $color-invert;
77
+ }
78
+
79
+ & > a.navbar-item,
80
+ .navbar-link {
81
+ &:hover,
82
+ &.is-active {
83
+ background-color: darken($color, 5%);
84
+ color: $color-invert;
85
+ }
86
+ }
87
+
88
+ .navbar-link {
89
+ &::after {
90
+ border-color: $color-invert;
91
+ }
92
+ }
93
+ }
94
+
95
+ .navbar-item.has-dropdown:hover .navbar-link,
96
+ .navbar-item.has-dropdown.is-active .navbar-link {
97
+ background-color: darken($color, 5%);
98
+ color: $color-invert;
99
+ }
100
+
101
+ .navbar-dropdown {
102
+ a.navbar-item {
103
+ &.is-active {
104
+ background-color: $color;
105
+ color: $color-invert;
106
+ }
107
+ }
108
+ }
109
+ }
110
+ }
111
+ }
112
+
113
+ & > .container {
114
+ align-items: stretch;
115
+ display: flex;
116
+ min-height: $navbar-height;
117
+ width: 100%;
118
+ }
119
+
120
+ &.has-shadow {
121
+ box-shadow: 0 2px 3px rgba($black, 0.1);
122
+ }
123
+ }
124
+
125
+ .navbar-brand,
126
+ .navbar-tabs {
127
+ align-items: stretch;
128
+ display: flex;
129
+ flex-shrink: 0;
130
+ min-height: $navbar-height;
131
+ }
132
+
133
+ .navbar-tabs {
134
+ @include overflow-touch;
135
+
136
+ max-width: 100vw;
137
+ overflow-x: auto;
138
+ overflow-y: hidden;
139
+ }
140
+
141
+ .navbar-burger {
142
+ @include hamburger($navbar-height);
143
+
144
+ margin-left: auto;
145
+ }
146
+
147
+ .navbar-menu {
148
+ display: none;
149
+ }
150
+
151
+ .navbar-item,
152
+ .navbar-link {
153
+ color: $navbar-item-color;
154
+ display: block;
155
+ line-height: 1.5;
156
+ padding: 0.5rem 1rem;
157
+ position: relative;
158
+ }
159
+
160
+ a.navbar-item,
161
+ .navbar-link {
162
+ &:hover,
163
+ &.is-active {
164
+ background-color: $navbar-item-hover-background-color;
165
+ color: $navbar-item-hover-color;
166
+ }
167
+ }
168
+
169
+ .navbar-item {
170
+ flex-grow: 0;
171
+ flex-shrink: 0;
172
+
173
+ img {
174
+ max-height: $navbar-item-img-max-height;
175
+ }
176
+
177
+ &.has-dropdown {
178
+ padding: 0;
179
+ }
180
+
181
+ &.is-tab {
182
+ border-bottom: 1px solid transparent;
183
+ min-height: $navbar-height;
184
+ padding-bottom: calc(0.5rem - 1px);
185
+
186
+ &:hover {
187
+ background-color: $navbar-tab-hover-background-color;
188
+ border-bottom-color: $navbar-tab-hover-border-bottom-color;
189
+ }
190
+
191
+ &.is-active {
192
+ background-color: $navbar-tab-active-background-color;
193
+ border-bottom-color: $navbar-tab-active-border-bottom-color;
194
+ border-bottom-style: $navbar-tab-active-border-bottom-style;
195
+ border-bottom-width: $navbar-tab-active-border-bottom-width;
196
+ color: $navbar-tab-active-color;
197
+ padding-bottom: calc(0.5rem - #{$navbar-tab-active-border-bottom-width});
198
+ }
199
+ }
200
+ }
201
+
202
+ .navbar-content {
203
+ flex-grow: 1;
204
+ flex-shrink: 1;
205
+ }
206
+
207
+ .navbar-link {
208
+ padding-right: 2.5em;
209
+ }
210
+
211
+ .navbar-dropdown {
212
+ font-size: 0.875rem;
213
+ padding-bottom: 0.5rem;
214
+ padding-top: 0.5rem;
215
+
216
+ .navbar-item {
217
+ padding-left: 1.5rem;
218
+ padding-right: 1.5rem;
219
+ }
220
+ }
221
+
222
+ .navbar-divider {
223
+ background-color: $navbar-divider-background-color;
224
+ border: none;
225
+ display: none;
226
+ height: 1px;
227
+ margin: 0.5rem 0;
228
+ }
229
+
230
+ @include touch {
231
+ .navbar > .container {
232
+ display: block;
233
+ }
234
+
235
+ .navbar-brand,
236
+ .navbar-tabs {
237
+ .navbar-item {
238
+ align-items: center;
239
+ display: flex;
240
+ }
241
+ }
242
+
243
+ .navbar-menu {
244
+ background-color: $white;
245
+ box-shadow: 0 8px 16px rgba($black, 0.1);
246
+ padding: 0.5rem 0;
247
+
248
+ &.is-active {
249
+ display: block;
250
+ }
251
+ }
252
+ }
253
+
254
+
255
+ @include desktop {
256
+ .navbar,
257
+ .navbar-menu,
258
+ .navbar-start,
259
+ .navbar-end {
260
+ align-items: stretch;
261
+ display: flex;
262
+ }
263
+
264
+ .navbar {
265
+ min-height: $navbar-height;
266
+
267
+ &.is-transparent {
268
+ a.navbar-item,
269
+ .navbar-link {
270
+ &:hover,
271
+ &.is-active {
272
+ background-color: transparent;
273
+ }
274
+ }
275
+
276
+ .navbar-item.has-dropdown {
277
+ &.is-active,
278
+ &.is-hoverable:hover {
279
+ .navbar-link {
280
+ background-color: transparent;
281
+ }
282
+ }
283
+ }
284
+
285
+ .navbar-dropdown {
286
+ a.navbar-item {
287
+ &:hover {
288
+ background-color: $navbar-dropdown-item-hover-background-color;
289
+ color: $navbar-dropdown-item-hover-color;
290
+ }
291
+
292
+ &.is-active {
293
+ background-color: $navbar-dropdown-item-active-background-color;
294
+ color: $navbar-dropdown-item-active-color;
295
+ }
296
+ }
297
+ }
298
+ }
299
+ }
300
+
301
+ .navbar-burger {
302
+ display: none;
303
+ }
304
+
305
+ .navbar-item,
306
+ .navbar-link {
307
+ align-items: center;
308
+ display: flex;
309
+ }
310
+
311
+ .navbar-item {
312
+ &.has-dropdown {
313
+ align-items: stretch;
314
+ }
315
+
316
+ &.is-active,
317
+ &.is-hoverable:hover {
318
+ .navbar-dropdown {
319
+ display: block;
320
+
321
+ &.is-boxed {
322
+ opacity: 1;
323
+ pointer-events: auto;
324
+ transform: translateY(0);
325
+ }
326
+ }
327
+ }
328
+ }
329
+
330
+ .navbar-link {
331
+ &::after {
332
+ @include arrow($navbar-dropdown-arrow);
333
+
334
+ margin-top: -0.375em;
335
+ right: 1.125em;
336
+ top: 50%;
337
+ }
338
+ }
339
+
340
+ .navbar-menu {
341
+ flex-grow: 1;
342
+ flex-shrink: 0;
343
+ }
344
+
345
+ .navbar-start {
346
+ justify-content: flex-start;
347
+ margin-right: auto;
348
+ }
349
+
350
+ .navbar-end {
351
+ justify-content: flex-end;
352
+ margin-left: auto;
353
+ }
354
+
355
+ .navbar-dropdown {
356
+ background-color: $navbar-dropdown-background-color;
357
+ border-bottom-left-radius: $navbar-dropdown-radius;
358
+ border-bottom-right-radius: $navbar-dropdown-radius;
359
+ border-top: $navbar-dropdown-border-top;
360
+ box-shadow: 0 8px 8px rgba($black, 0.1);
361
+ display: none;
362
+ font-size: 0.875rem;
363
+ left: 0;
364
+ min-width: 100%;
365
+ position: absolute;
366
+ top: 100%;
367
+ z-index: $navbar-dropdown-z;
368
+
369
+ .navbar-item {
370
+ padding: 0.375rem 1rem;
371
+ white-space: nowrap;
372
+ }
373
+
374
+ a.navbar-item {
375
+ padding-right: 3rem;
376
+
377
+ &:hover {
378
+ background-color: $navbar-dropdown-item-hover-background-color;
379
+ color: $navbar-dropdown-item-hover-color;
380
+ }
381
+
382
+ &.is-active {
383
+ background-color: $navbar-dropdown-item-active-background-color;
384
+ color: $navbar-dropdown-item-active-color;
385
+ }
386
+ }
387
+
388
+ &.is-boxed {
389
+ border-radius: $navbar-dropdown-boxed-radius;
390
+ border-top: none;
391
+ box-shadow: $navbar-dropdown-boxed-shadow;
392
+ display: block;
393
+ opacity: 0;
394
+ pointer-events: none;
395
+ top: calc(100% + (#{$navbar-dropdown-offset}));
396
+ transform: translateY(-5px);
397
+ transition-duration: $speed;
398
+ transition-property: opacity, transform;
399
+ }
400
+
401
+ &.is-right {
402
+ left: auto;
403
+ right: 0;
404
+ }
405
+ }
406
+
407
+ .navbar-divider {
408
+ display: block;
409
+ }
410
+
411
+ .container > .navbar {
412
+ .navbar-brand {
413
+ margin-left: -1rem;
414
+ }
415
+
416
+ .navbar-menu {
417
+ margin-right: -1rem;
418
+ }
419
+ }
420
+
421
+ // Hover/Active states
422
+ a.navbar-item,
423
+ .navbar-link {
424
+ &.is-active {
425
+ color: $navbar-item-active-color;
426
+ }
427
+
428
+ &.is-active:not(:hover) {
429
+ background-color: $navbar-item-active-background-color;
430
+ }
431
+ }
432
+
433
+ .navbar-item.has-dropdown {
434
+ &:hover,
435
+ &.is-active {
436
+ .navbar-link {
437
+ background-color: $navbar-item-hover-background-color;
438
+ }
439
+ }
440
+ }
441
+ }
@@ -0,0 +1,188 @@
1
+ $pagination-color: $grey-darker !default;
2
+ $pagination-border-color: $grey-lighter !default;
3
+ $pagination-margin: -0.25rem !default;
4
+
5
+ $pagination-hover-color: $link-hover !default;
6
+ $pagination-hover-border-color: $link-hover-border !default;
7
+
8
+ $pagination-focus-color: $link-focus !default;
9
+ $pagination-focus-border-color: $link-focus-border !default;
10
+
11
+ $pagination-active-color: $link-active !default;
12
+ $pagination-active-border-color: $link-active-border !default;
13
+
14
+ $pagination-disabled-color: $grey !default;
15
+ $pagination-disabled-background-color: $grey-lighter !default;
16
+ $pagination-disabled-border-color: $grey-lighter !default;
17
+
18
+ $pagination-current-color: $link-invert !default;
19
+ $pagination-current-background-color: $link !default;
20
+ $pagination-current-border-color: $link !default;
21
+
22
+ $pagination-ellipsis-color: $grey-light !default;
23
+
24
+ $pagination-shadow-inset: inset 0 1px 2px rgba($black, 0.2);
25
+
26
+ .pagination {
27
+ font-size: $size-normal;
28
+ margin: $pagination-margin;
29
+
30
+ // Sizes
31
+ &.is-small {
32
+ font-size: $size-small;
33
+ }
34
+
35
+ &.is-medium {
36
+ font-size: $size-medium;
37
+ }
38
+
39
+ &.is-large {
40
+ font-size: $size-large;
41
+ }
42
+ }
43
+
44
+ .pagination,
45
+ .pagination-list {
46
+ align-items: center;
47
+ display: flex;
48
+ justify-content: center;
49
+ text-align: center;
50
+ }
51
+
52
+ .pagination-previous,
53
+ .pagination-next,
54
+ .pagination-link,
55
+ .pagination-ellipsis {
56
+ @include control;
57
+ @include unselectable;
58
+
59
+ font-size: 1em;
60
+ padding-left: 0.5em;
61
+ padding-right: 0.5em;
62
+ justify-content: center;
63
+ margin: 0.25rem;
64
+ text-align: center;
65
+ }
66
+
67
+ .pagination-previous,
68
+ .pagination-next,
69
+ .pagination-link {
70
+ border-color: $pagination-border-color;
71
+ min-width: 2.25em;
72
+
73
+ &:hover {
74
+ border-color: $pagination-hover-border-color;
75
+ color: $pagination-hover-color;
76
+ }
77
+
78
+ &:focus {
79
+ border-color: $pagination-focus-border-color;
80
+ }
81
+
82
+ &:active {
83
+ box-shadow: $pagination-shadow-inset;
84
+ }
85
+
86
+ &[disabled] {
87
+ background-color: $pagination-disabled-background-color;
88
+ border-color: $pagination-disabled-border-color;
89
+ box-shadow: none;
90
+ color: $pagination-disabled-color;
91
+ opacity: 0.5;
92
+ }
93
+ }
94
+
95
+ .pagination-previous,
96
+ .pagination-next {
97
+ padding-left: 0.75em;
98
+ padding-right: 0.75em;
99
+ white-space: nowrap;
100
+ }
101
+
102
+ .pagination-link {
103
+ &.is-current {
104
+ background-color: $pagination-current-background-color;
105
+ border-color: $pagination-current-border-color;
106
+ color: $pagination-current-color;
107
+ }
108
+ }
109
+
110
+ .pagination-ellipsis {
111
+ color: $pagination-ellipsis-color;
112
+ pointer-events: none;
113
+ }
114
+
115
+ .pagination-list {
116
+ flex-wrap: wrap;
117
+ }
118
+
119
+ @include mobile {
120
+ .pagination {
121
+ flex-wrap: wrap;
122
+ }
123
+
124
+ .pagination-previous,
125
+ .pagination-next {
126
+ flex-grow: 1;
127
+ flex-shrink: 1;
128
+ }
129
+
130
+ .pagination-list {
131
+ li {
132
+ flex-grow: 1;
133
+ flex-shrink: 1;
134
+ }
135
+ }
136
+ }
137
+
138
+
139
+ @include tablet {
140
+ .pagination-list {
141
+ flex-grow: 1;
142
+ flex-shrink: 1;
143
+ justify-content: flex-start;
144
+ order: 1;
145
+ }
146
+
147
+ .pagination-previous {
148
+ order: 2;
149
+ }
150
+
151
+ .pagination-next {
152
+ order: 3;
153
+ }
154
+
155
+ .pagination {
156
+ justify-content: space-between;
157
+
158
+ &.is-centered {
159
+ .pagination-previous {
160
+ order: 1;
161
+ }
162
+
163
+ .pagination-list {
164
+ justify-content: center;
165
+ order: 2;
166
+ }
167
+
168
+ .pagination-next {
169
+ order: 3;
170
+ }
171
+ }
172
+
173
+ &.is-right {
174
+ .pagination-previous {
175
+ order: 1;
176
+ }
177
+
178
+ .pagination-next {
179
+ order: 2;
180
+ }
181
+
182
+ .pagination-list {
183
+ justify-content: flex-end;
184
+ order: 3;
185
+ }
186
+ }
187
+ }
188
+ }