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,577 @@
1
+ $column-gap: 0.75rem !default;
2
+
3
+ .column {
4
+ display: block;
5
+ flex-basis: 0;
6
+ flex-grow: 1;
7
+ flex-shrink: 1;
8
+ padding: $column-gap;
9
+
10
+ .columns.is-mobile > &.is-narrow {
11
+ flex: none;
12
+ }
13
+
14
+ .columns.is-mobile > &.is-full {
15
+ flex: none;
16
+ width: 100%;
17
+ }
18
+
19
+ .columns.is-mobile > &.is-three-quarters {
20
+ flex: none;
21
+ width: 75%;
22
+ }
23
+
24
+ .columns.is-mobile > &.is-two-thirds {
25
+ flex: none;
26
+ width: 66.6666%;
27
+ }
28
+
29
+ .columns.is-mobile > &.is-half {
30
+ flex: none;
31
+ width: 50%;
32
+ }
33
+
34
+ .columns.is-mobile > &.is-one-third {
35
+ flex: none;
36
+ width: 33.3333%;
37
+ }
38
+
39
+ .columns.is-mobile > &.is-one-quarter {
40
+ flex: none;
41
+ width: 25%;
42
+ }
43
+
44
+ .columns.is-mobile > &.is-offset-three-quarters {
45
+ margin-left: 75%;
46
+ }
47
+
48
+ .columns.is-mobile > &.is-offset-two-thirds {
49
+ margin-left: 66.6666%;
50
+ }
51
+
52
+ .columns.is-mobile > &.is-offset-half {
53
+ margin-left: 50%;
54
+ }
55
+
56
+ .columns.is-mobile > &.is-offset-one-third {
57
+ margin-left: 33.3333%;
58
+ }
59
+
60
+ .columns.is-mobile > &.is-offset-one-quarter {
61
+ margin-left: 25%;
62
+ }
63
+
64
+ @for $i from 1 through 12 {
65
+ .columns.is-mobile > &.is-#{$i} {
66
+ flex: none;
67
+ width: $i / 12 * 100%;
68
+ }
69
+
70
+ .columns.is-mobile > &.is-offset-#{$i} {
71
+ margin-left: $i / 12 * 100%;
72
+ }
73
+ }
74
+
75
+ @include mobile {
76
+ &.is-narrow-mobile {
77
+ flex: none;
78
+ }
79
+
80
+ &.is-full-mobile {
81
+ flex: none;
82
+ width: 100%;
83
+ }
84
+
85
+ &.is-three-quarters-mobile {
86
+ flex: none;
87
+ width: 75%;
88
+ }
89
+
90
+ &.is-two-thirds-mobile {
91
+ flex: none;
92
+ width: 66.6666%;
93
+ }
94
+
95
+ &.is-half-mobile {
96
+ flex: none;
97
+ width: 50%;
98
+ }
99
+
100
+ &.is-one-third-mobile {
101
+ flex: none;
102
+ width: 33.3333%;
103
+ }
104
+
105
+ &.is-one-quarter-mobile {
106
+ flex: none;
107
+ width: 25%;
108
+ }
109
+
110
+ &.is-offset-three-quarters-mobile {
111
+ margin-left: 75%;
112
+ }
113
+
114
+ &.is-offset-two-thirds-mobile {
115
+ margin-left: 66.6666%;
116
+ }
117
+
118
+ &.is-offset-half-mobile {
119
+ margin-left: 50%;
120
+ }
121
+
122
+ &.is-offset-one-third-mobile {
123
+ margin-left: 33.3333%;
124
+ }
125
+
126
+ &.is-offset-one-quarter-mobile {
127
+ margin-left: 25%;
128
+ }
129
+
130
+ @for $i from 1 through 12 {
131
+ &.is-#{$i}-mobile {
132
+ flex: none;
133
+ width: $i / 12 * 100%;
134
+ }
135
+
136
+ &.is-offset-#{$i}-mobile {
137
+ margin-left: $i / 12 * 100%;
138
+ }
139
+ }
140
+ }
141
+
142
+
143
+ @include tablet {
144
+ &.is-narrow,
145
+ &.is-narrow-tablet {
146
+ flex: none;
147
+ }
148
+
149
+ &.is-full,
150
+ &.is-full-tablet {
151
+ flex: none;
152
+ width: 100%;
153
+ }
154
+
155
+ &.is-three-quarters,
156
+ &.is-three-quarters-tablet {
157
+ flex: none;
158
+ width: 75%;
159
+ }
160
+
161
+ &.is-two-thirds,
162
+ &.is-two-thirds-tablet {
163
+ flex: none;
164
+ width: 66.6666%;
165
+ }
166
+
167
+ &.is-half,
168
+ &.is-half-tablet {
169
+ flex: none;
170
+ width: 50%;
171
+ }
172
+
173
+ &.is-one-third,
174
+ &.is-one-third-tablet {
175
+ flex: none;
176
+ width: 33.3333%;
177
+ }
178
+
179
+ &.is-one-quarter,
180
+ &.is-one-quarter-tablet {
181
+ flex: none;
182
+ width: 25%;
183
+ }
184
+
185
+ &.is-offset-three-quarters,
186
+ &.is-offset-three-quarters-tablet {
187
+ margin-left: 75%;
188
+ }
189
+
190
+ &.is-offset-two-thirds,
191
+ &.is-offset-two-thirds-tablet {
192
+ margin-left: 66.6666%;
193
+ }
194
+
195
+ &.is-offset-half,
196
+ &.is-offset-half-tablet {
197
+ margin-left: 50%;
198
+ }
199
+
200
+ &.is-offset-one-third,
201
+ &.is-offset-one-third-tablet {
202
+ margin-left: 33.3333%;
203
+ }
204
+
205
+ &.is-offset-one-quarter,
206
+ &.is-offset-one-quarter-tablet {
207
+ margin-left: 25%;
208
+ }
209
+
210
+ @for $i from 1 through 12 {
211
+ &.is-#{$i},
212
+ &.is-#{$i}-tablet {
213
+ flex: none;
214
+ width: $i / 12 * 100%;
215
+ }
216
+
217
+ &.is-offset-#{$i},
218
+ &.is-offset-#{$i}-tablet {
219
+ margin-left: $i / 12 * 100%;
220
+ }
221
+ }
222
+ }
223
+
224
+
225
+ @include touch {
226
+ &.is-narrow-touch {
227
+ flex: none;
228
+ }
229
+
230
+ &.is-full-touch {
231
+ flex: none;
232
+ width: 100%;
233
+ }
234
+
235
+ &.is-three-quarters-touch {
236
+ flex: none;
237
+ width: 75%;
238
+ }
239
+
240
+ &.is-two-thirds-touch {
241
+ flex: none;
242
+ width: 66.6666%;
243
+ }
244
+
245
+ &.is-half-touch {
246
+ flex: none;
247
+ width: 50%;
248
+ }
249
+
250
+ &.is-one-third-touch {
251
+ flex: none;
252
+ width: 33.3333%;
253
+ }
254
+
255
+ &.is-one-quarter-touch {
256
+ flex: none;
257
+ width: 25%;
258
+ }
259
+
260
+ &.is-offset-three-quarters-touch {
261
+ margin-left: 75%;
262
+ }
263
+
264
+ &.is-offset-two-thirds-touch {
265
+ margin-left: 66.6666%;
266
+ }
267
+
268
+ &.is-offset-half-touch {
269
+ margin-left: 50%;
270
+ }
271
+
272
+ &.is-offset-one-third-touch {
273
+ margin-left: 33.3333%;
274
+ }
275
+
276
+ &.is-offset-one-quarter-touch {
277
+ margin-left: 25%;
278
+ }
279
+
280
+ @for $i from 1 through 12 {
281
+ &.is-#{$i}-touch {
282
+ flex: none;
283
+ width: $i / 12 * 100%;
284
+ }
285
+
286
+ &.is-offset-#{$i}-touch {
287
+ margin-left: $i / 12 * 100%;
288
+ }
289
+ }
290
+ }
291
+
292
+
293
+ @include desktop {
294
+ &.is-narrow-desktop {
295
+ flex: none;
296
+ }
297
+
298
+ &.is-full-desktop {
299
+ flex: none;
300
+ width: 100%;
301
+ }
302
+
303
+ &.is-three-quarters-desktop {
304
+ flex: none;
305
+ width: 75%;
306
+ }
307
+
308
+ &.is-two-thirds-desktop {
309
+ flex: none;
310
+ width: 66.6666%;
311
+ }
312
+
313
+ &.is-half-desktop {
314
+ flex: none;
315
+ width: 50%;
316
+ }
317
+
318
+ &.is-one-third-desktop {
319
+ flex: none;
320
+ width: 33.3333%;
321
+ }
322
+
323
+ &.is-one-quarter-desktop {
324
+ flex: none;
325
+ width: 25%;
326
+ }
327
+
328
+ &.is-offset-three-quarters-desktop {
329
+ margin-left: 75%;
330
+ }
331
+
332
+ &.is-offset-two-thirds-desktop {
333
+ margin-left: 66.6666%;
334
+ }
335
+
336
+ &.is-offset-half-desktop {
337
+ margin-left: 50%;
338
+ }
339
+
340
+ &.is-offset-one-third-desktop {
341
+ margin-left: 33.3333%;
342
+ }
343
+
344
+ &.is-offset-one-quarter-desktop {
345
+ margin-left: 25%;
346
+ }
347
+
348
+ @for $i from 1 through 12 {
349
+ &.is-#{$i}-desktop {
350
+ flex: none;
351
+ width: $i / 12 * 100%;
352
+ }
353
+
354
+ &.is-offset-#{$i}-desktop {
355
+ margin-left: $i / 12 * 100%;
356
+ }
357
+ }
358
+ }
359
+
360
+
361
+ @include widescreen {
362
+ &.is-narrow-widescreen {
363
+ flex: none;
364
+ }
365
+
366
+ &.is-full-widescreen {
367
+ flex: none;
368
+ width: 100%;
369
+ }
370
+
371
+ &.is-three-quarters-widescreen {
372
+ flex: none;
373
+ width: 75%;
374
+ }
375
+
376
+ &.is-two-thirds-widescreen {
377
+ flex: none;
378
+ width: 66.6666%;
379
+ }
380
+
381
+ &.is-half-widescreen {
382
+ flex: none;
383
+ width: 50%;
384
+ }
385
+
386
+ &.is-one-third-widescreen {
387
+ flex: none;
388
+ width: 33.3333%;
389
+ }
390
+
391
+ &.is-one-quarter-widescreen {
392
+ flex: none;
393
+ width: 25%;
394
+ }
395
+
396
+ &.is-offset-three-quarters-widescreen {
397
+ margin-left: 75%;
398
+ }
399
+
400
+ &.is-offset-two-thirds-widescreen {
401
+ margin-left: 66.6666%;
402
+ }
403
+
404
+ &.is-offset-half-widescreen {
405
+ margin-left: 50%;
406
+ }
407
+
408
+ &.is-offset-one-third-widescreen {
409
+ margin-left: 33.3333%;
410
+ }
411
+
412
+ &.is-offset-one-quarter-widescreen {
413
+ margin-left: 25%;
414
+ }
415
+
416
+ @for $i from 1 through 12 {
417
+ &.is-#{$i}-widescreen {
418
+ flex: none;
419
+ width: $i / 12 * 100%;
420
+ }
421
+
422
+ &.is-offset-#{$i}-widescreen {
423
+ margin-left: $i / 12 * 100%;
424
+ }
425
+ }
426
+ }
427
+
428
+
429
+ @include fullhd {
430
+ &.is-narrow-fullhd {
431
+ flex: none;
432
+ }
433
+
434
+ &.is-full-fullhd {
435
+ flex: none;
436
+ width: 100%;
437
+ }
438
+
439
+ &.is-three-quarters-fullhd {
440
+ flex: none;
441
+ width: 75%;
442
+ }
443
+
444
+ &.is-two-thirds-fullhd {
445
+ flex: none;
446
+ width: 66.6666%;
447
+ }
448
+
449
+ &.is-half-fullhd {
450
+ flex: none;
451
+ width: 50%;
452
+ }
453
+
454
+ &.is-one-third-fullhd {
455
+ flex: none;
456
+ width: 33.3333%;
457
+ }
458
+
459
+ &.is-one-quarter-fullhd {
460
+ flex: none;
461
+ width: 25%;
462
+ }
463
+
464
+ &.is-offset-three-quarters-fullhd {
465
+ margin-left: 75%;
466
+ }
467
+
468
+ &.is-offset-two-thirds-fullhd {
469
+ margin-left: 66.6666%;
470
+ }
471
+
472
+ &.is-offset-half-fullhd {
473
+ margin-left: 50%;
474
+ }
475
+
476
+ &.is-offset-one-third-fullhd {
477
+ margin-left: 33.3333%;
478
+ }
479
+
480
+ &.is-offset-one-quarter-fullhd {
481
+ margin-left: 25%;
482
+ }
483
+
484
+ @for $i from 1 through 12 {
485
+ &.is-#{$i}-fullhd {
486
+ flex: none;
487
+ width: $i / 12 * 100%;
488
+ }
489
+
490
+ &.is-offset-#{$i}-fullhd {
491
+ margin-left: $i / 12 * 100%;
492
+ }
493
+ }
494
+ }
495
+ }
496
+
497
+ .columns {
498
+ margin-left: -$column-gap;
499
+ margin-right: -$column-gap;
500
+ margin-top: -$column-gap;
501
+
502
+ &:last-child {
503
+ margin-bottom: -$column-gap;
504
+ }
505
+
506
+ &:not(:last-child) {
507
+ margin-bottom: calc(1.5rem - #{$column-gap});
508
+ }
509
+
510
+ // Modifiers
511
+ &.is-centered {
512
+ justify-content: center;
513
+ }
514
+
515
+ &.is-gapless {
516
+ margin-left: 0;
517
+ margin-right: 0;
518
+ margin-top: 0;
519
+
520
+ & > .column {
521
+ margin: 0;
522
+ padding: 0 !important;
523
+ }
524
+
525
+ &:not(:last-child) {
526
+ margin-bottom: 1.5rem;
527
+ }
528
+
529
+ &:last-child {
530
+ margin-bottom: 0;
531
+ }
532
+ }
533
+
534
+ &.is-mobile {
535
+ display: flex;
536
+ }
537
+
538
+ &.is-multiline {
539
+ flex-wrap: wrap;
540
+ }
541
+
542
+ &.is-vcentered {
543
+ align-items: center;
544
+ }
545
+
546
+ // Responsiveness
547
+ @include tablet {
548
+ &:not(.is-desktop) {
549
+ display: flex;
550
+ }
551
+ }
552
+
553
+
554
+ @include desktop {
555
+ // Modifiers
556
+ &.is-desktop {
557
+ display: flex;
558
+ }
559
+ }
560
+ }
561
+
562
+ .columns.is-variable {
563
+ --columnGap: 0.75rem;
564
+ margin-left: calc(-1 * var(--columnGap));
565
+ margin-right: calc(-1 * var(--columnGap));
566
+
567
+ .column {
568
+ padding-left: var(--columnGap);
569
+ padding-right: var(--columnGap);
570
+ }
571
+
572
+ @for $i from 0 through 8 {
573
+ &.is-#{$i} {
574
+ --columnGap: $i * 0.25rem;
575
+ }
576
+ }
577
+ }
@@ -0,0 +1,53 @@
1
+ .tile {
2
+ align-items: stretch;
3
+ display: block;
4
+ flex-basis: 0;
5
+ flex-grow: 1;
6
+ flex-shrink: 1;
7
+ min-height: min-content;
8
+
9
+ // Modifiers
10
+ &.is-ancestor {
11
+ margin-left: -0.75rem;
12
+ margin-right: -0.75rem;
13
+ margin-top: -0.75rem;
14
+
15
+ &:last-child {
16
+ margin-bottom: -0.75rem;
17
+ }
18
+
19
+ &:not(:last-child) {
20
+ margin-bottom: 0.75rem;
21
+ }
22
+ }
23
+
24
+ &.is-child {
25
+ margin: 0 !important;
26
+ }
27
+
28
+ &.is-parent {
29
+ padding: 0.75rem;
30
+ }
31
+
32
+ &.is-vertical {
33
+ flex-direction: column;
34
+
35
+ & > .tile.is-child:not(:last-child) {
36
+ margin-bottom: 1.5rem !important;
37
+ }
38
+ }
39
+
40
+ // Responsiveness
41
+ @include tablet {
42
+ &:not(.is-child) {
43
+ display: flex;
44
+ }
45
+
46
+ @for $i from 1 through 12 {
47
+ &.is-#{$i} {
48
+ flex: none;
49
+ width: $i / 12 * 100%;
50
+ }
51
+ }
52
+ }
53
+ }
@@ -0,0 +1,3 @@
1
+ @import "hero";
2
+ @import "section";
3
+ @import "footer";
@@ -0,0 +1,6 @@
1
+ $footer-background-color: $background !default;
2
+
3
+ .footer {
4
+ background-color: $footer-background-color;
5
+ padding: 3rem 1.5rem 6rem;
6
+ }