jekyll-theme-kagami 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (51) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE.txt +21 -0
  3. data/README.md +94 -0
  4. data/_includes/disqus.html +17 -0
  5. data/_includes/footer.html +23 -0
  6. data/_includes/google-analytics.html +11 -0
  7. data/_includes/head.html +23 -0
  8. data/_includes/header.html +22 -0
  9. data/_layouts/blank.html +5 -0
  10. data/_layouts/default.html +15 -0
  11. data/_layouts/home.html +5 -0
  12. data/_layouts/page.html +9 -0
  13. data/_layouts/post-list.html +40 -0
  14. data/_layouts/post.html +42 -0
  15. data/_sass/kagami.scss +23 -0
  16. data/_sass/kagami/_layout.scss +163 -0
  17. data/_sass/kagami/_reset.scss +2 -0
  18. data/_sass/kagami/_scut.scss +1533 -0
  19. data/_sass/kagami/_typeface.scss +80 -0
  20. data/_sass/kagami/_typography.scss +235 -0
  21. data/_sass/kagami/_utility.scss +18 -0
  22. data/assets/font/fontello.eot +0 -0
  23. data/assets/font/fontello.svg +86 -0
  24. data/assets/font/fontello.ttf +0 -0
  25. data/assets/font/fontello.woff +0 -0
  26. data/assets/font/fontello.woff2 +0 -0
  27. data/assets/styles/core.scss +4 -0
  28. data/assets/styles/fontello.css +95 -0
  29. data/assets/styles/highlighting/README.md +23 -0
  30. data/assets/styles/highlighting/UNLICENSE.txt +24 -0
  31. data/assets/styles/highlighting/autumn.css +58 -0
  32. data/assets/styles/highlighting/borland.css +46 -0
  33. data/assets/styles/highlighting/bw.css +34 -0
  34. data/assets/styles/highlighting/colorful.css +61 -0
  35. data/assets/styles/highlighting/default.css +61 -0
  36. data/assets/styles/highlighting/emacs.css +61 -0
  37. data/assets/styles/highlighting/friendly.css +61 -0
  38. data/assets/styles/highlighting/fruity.css +70 -0
  39. data/assets/styles/highlighting/github.css +61 -0
  40. data/assets/styles/highlighting/manni.css +61 -0
  41. data/assets/styles/highlighting/monokai.css +65 -0
  42. data/assets/styles/highlighting/murphy.css +61 -0
  43. data/assets/styles/highlighting/native.css +70 -0
  44. data/assets/styles/highlighting/pastie.css +60 -0
  45. data/assets/styles/highlighting/perldoc.css +58 -0
  46. data/assets/styles/highlighting/tango.css +69 -0
  47. data/assets/styles/highlighting/trac.css +59 -0
  48. data/assets/styles/highlighting/vim.css +70 -0
  49. data/assets/styles/highlighting/vs.css +33 -0
  50. data/assets/styles/highlighting/zenburn.css +136 -0
  51. metadata +135 -0
@@ -0,0 +1,2 @@
1
+ @include scut-reset(paragraph);
2
+ * { margin: 0; padding: 0; }
@@ -0,0 +1,1533 @@
1
+ /*
2
+ * Scut, a collection of Sass utilities
3
+ * to ease and improve our implementations of common style-code patterns.
4
+ * v1.4.0
5
+ * Docs at http://davidtheclark.github.io/scut
6
+ */
7
+
8
+ @mixin scut-clearfix {
9
+
10
+ &:after {
11
+ content: "";
12
+ display: table;
13
+ clear: both;
14
+ }
15
+
16
+ }
17
+
18
+ %scut-clearfix {
19
+ @include scut-clearfix;
20
+ }
21
+ @mixin scut-list-unstyled(
22
+ $no-margin: true
23
+ ) {
24
+
25
+ list-style-type: none;
26
+ padding-left: 0;
27
+
28
+ @if $no-margin {
29
+ margin-top: 0;
30
+ margin-bottom: 0;
31
+ }
32
+
33
+ }
34
+
35
+ %scut-list-unstyled {
36
+ @include scut-list-unstyled();
37
+ }
38
+ // Depends on `list-unstyled` and `clearfix`.
39
+
40
+ @mixin scut-list-floated (
41
+ $space: false,
42
+ $dir: left,
43
+ $no-margin: true
44
+ ) {
45
+
46
+ @include scut-list-unstyled($no-margin);
47
+ @include scut-clearfix;
48
+
49
+ & > li {
50
+ float: $dir;
51
+ }
52
+
53
+ @if $space {
54
+ & > li + li {
55
+ margin-#{$dir}: $space;
56
+ }
57
+ }
58
+
59
+ }
60
+
61
+ %scut-list-floated {
62
+ @include scut-list-floated;
63
+ }
64
+
65
+ @function scut-autoOrValue ($val) {
66
+ @if $val == a or $val == auto {
67
+ @return auto;
68
+ }
69
+ @else {
70
+ @return $val;
71
+ }
72
+ }
73
+
74
+ @mixin scut-coords (
75
+ $coordinates: n n n n
76
+ ) {
77
+
78
+ $top: nth($coordinates, 1);
79
+ $right: nth($coordinates, 2);
80
+ $bottom: nth($coordinates, 3);
81
+ $left: nth($coordinates, 4);
82
+
83
+ @if $top != n {
84
+ top: scut-autoOrValue($top);
85
+ }
86
+ @if $right != n {
87
+ right: scut-autoOrValue($right);
88
+ }
89
+ @if $bottom != n {
90
+ bottom: scut-autoOrValue($bottom);
91
+ }
92
+ @if $left != n {
93
+ left: scut-autoOrValue($left);
94
+ }
95
+
96
+ }
97
+ @function scut-strip-unit (
98
+ $num
99
+ ) {
100
+
101
+ @return $num / ($num * 0 + 1);
102
+
103
+ }
104
+ // Depends on `scut-strip-unit`.
105
+
106
+ $scut-em-base: 16 !default;
107
+
108
+ @function scut-em (
109
+ $pixels,
110
+ $base: $scut-em-base
111
+ ) {
112
+
113
+ // $base could be in em or px (no unit = px).
114
+ // Adjust accordingly to create a $divisor that
115
+ // serves as context for $pixels.
116
+ $multiplier: if(unit($base) == em, 16, 1);
117
+ $divisor: scut-strip-unit($base) * $multiplier;
118
+
119
+ $em-vals: ();
120
+ @each $val in $pixels {
121
+ $val-in-ems: (scut-strip-unit($val) / $divisor) * 1em;
122
+ $em-vals: append($em-vals, $val-in-ems);
123
+ }
124
+
125
+ @if length($em-vals) == 1 {
126
+ // return a single value instead of a list,
127
+ // so it can be used in calculations
128
+ @return nth($em-vals, 1);
129
+ }
130
+ @else {
131
+ @return $em-vals;
132
+ }
133
+
134
+ }
135
+ // Depends on `scut-strip-unit`.
136
+
137
+ $scut-rem-base: 16 !default;
138
+
139
+ @function scut-rem (
140
+ $pixels
141
+ ) {
142
+
143
+ $rem-vals: ();
144
+ @each $val in $pixels {
145
+ $val-in-rems: scut-strip-unit($val) / $scut-rem-base * 1rem;
146
+ $rem-vals: append($rem-vals, $val-in-rems);
147
+ }
148
+
149
+ @if length($rem-vals) == 1 {
150
+ // return a single value instead of a list,
151
+ // so it can be used in calculations
152
+ @return nth($rem-vals, 1);
153
+ }
154
+ @else {
155
+ @return $rem-vals;
156
+ }
157
+
158
+ }
159
+ @mixin scut-border (
160
+ $style,
161
+ $sides: n y
162
+ ) {
163
+
164
+ @if length($sides) == 2 {
165
+ @if nth($sides, 1) != n {
166
+ border-top: $style;
167
+ border-bottom: $style;
168
+ }
169
+ @if nth($sides, 2) != n {
170
+ border-left: $style;
171
+ border-right: $style;
172
+ }
173
+ }
174
+
175
+ @else if length($sides) == 4 {
176
+ @if nth($sides, 1) != n {
177
+ border-top: $style;
178
+ }
179
+ @if nth($sides, 2) != n {
180
+ border-right: $style;
181
+ }
182
+ @if nth($sides, 3) != n {
183
+ border-bottom: $style;
184
+ }
185
+ @if nth($sides, 4) != n {
186
+ border-left: $style;
187
+ }
188
+ }
189
+
190
+ @else {
191
+ @warn "Scut-border requires a $sides argument of 2 or 4 values."
192
+ }
193
+
194
+ }
195
+ @mixin scut-circle (
196
+ $size,
197
+ $color: inherit
198
+ ) {
199
+
200
+ border-radius: 50%;
201
+ display: inline-block;
202
+
203
+ @if $color == inherit {
204
+ // If user wants to inherit the color,
205
+ // take advantage of the fact that border
206
+ // color defaults to the text color of the element.
207
+ border-width: $size / 2;
208
+ border-style: solid;
209
+ height: 0;
210
+ width: 0;
211
+ }
212
+ @else {
213
+ // Otherwise, just use background-color.
214
+ background-color: $color;
215
+ height: $size;
216
+ width: $size;
217
+ }
218
+
219
+ }
220
+ @mixin scut-color-swap (
221
+ $off,
222
+ $on,
223
+ $duration: 0,
224
+ $bg: false
225
+ ) {
226
+
227
+ $transition-properties: null;
228
+ $off-is-list: type-of($off) == list;
229
+ $on-is-list: type-of($on) == list;
230
+
231
+ // If $off IS a list,
232
+ // assign color and background-color.
233
+ @if $off-is-list {
234
+ color: nth($off, 1);
235
+ background-color: nth($off, 2);
236
+ $transition-properties: background-color, color;
237
+ }
238
+
239
+ // If $off IS NOT a list and $bg is TRUE,
240
+ // assign background-color.
241
+ @else if $bg and not($off-is-list) {
242
+ background-color: $off;
243
+ $transition-properties: background-color;
244
+ }
245
+
246
+ // If $off IS NOT a list and $bg is FALSE,
247
+ // assign color.
248
+ @else {
249
+ color: $off;
250
+ $transition-properties: color;
251
+ }
252
+
253
+ // Only set-up transition if $duration != 0.
254
+ @if $duration != 0 {
255
+ transition-property: $transition-properties;
256
+ transition-duration: $duration;
257
+ }
258
+
259
+ &:hover,
260
+ &:focus {
261
+
262
+ // $on is treated the same as $off, above.
263
+ @if $on-is-list {
264
+ color: nth($on, 1);
265
+ background-color: nth($on, 2);
266
+ }
267
+
268
+ @else if $bg and not($on-is-list) {
269
+ background-color: $on;
270
+ }
271
+
272
+ @else {
273
+ color: $on;
274
+ }
275
+ }
276
+
277
+ }
278
+ @mixin scut-hd-bp (
279
+ $ratio: 1.3
280
+ ) {
281
+
282
+ @media (-o-min-device-pixel-ratio: ($ratio / 1)),
283
+ (-webkit-min-device-pixel-ratio: $ratio),
284
+ (min-resolution: (round(96 * $ratio) * 1dpi)) {
285
+ @content;
286
+ }
287
+
288
+ }
289
+
290
+ @mixin scut-hide-visually {
291
+
292
+ border: 0;
293
+ clip: rect(0 0 0 0);
294
+ height: 1px;
295
+ margin: -1px;
296
+ overflow: hidden;
297
+ padding: 0;
298
+ position: absolute;
299
+ width: 1px;
300
+
301
+ }
302
+
303
+ %scut-hide-visually {
304
+ @include scut-hide-visually;
305
+ }
306
+ @mixin scut-image-replace {
307
+
308
+ text-indent: 102%;
309
+ white-space: nowrap;
310
+ overflow: hidden;
311
+ padding: 0;
312
+
313
+ }
314
+
315
+ %scut-image-replace {
316
+ @include scut-image-replace;
317
+ }
318
+
319
+ // Depends on scut-rem and scut-strip-unit
320
+
321
+ @mixin scut-rem-fallback (
322
+ $pixels,
323
+ $property: font-size
324
+ ) {
325
+
326
+ $px-vals: null;
327
+ @each $val in $pixels {
328
+ $val-in-px: scut-strip-unit($val) * 1px;
329
+ $px-vals: append($px-vals, $val-in-px);
330
+ }
331
+ $rem-vals: scut-rem($pixels);
332
+
333
+ #{$property}: $px-vals;
334
+ #{$property}: $rem-vals;
335
+
336
+ }
337
+ @mixin scut-reset-border-box {
338
+ // Make everything a border-box, because why not?
339
+ html {
340
+ box-sizing: border-box;
341
+ }
342
+ *, *:before, *:after {
343
+ box-sizing: inherit;
344
+ }
345
+ }
346
+
347
+ @mixin scut-reset-antialias {
348
+ // Antialias!
349
+ body {
350
+ -webkit-font-smoothing: antialiased;
351
+ }
352
+ *, *:before, *:after {
353
+ -webkit-font-smoothing: inherit;
354
+ }
355
+ }
356
+
357
+ @mixin scut-reset-semanticize {
358
+ // Make headers and <b> semantic, not presentational.
359
+ h1,
360
+ h2,
361
+ h3,
362
+ h4,
363
+ h5,
364
+ h6 {
365
+ font-size: 1em;
366
+ font-weight: normal;
367
+ margin: 0;
368
+ }
369
+ b {
370
+ font-weight: normal;
371
+ }
372
+ }
373
+
374
+ @mixin scut-reset-pointer {
375
+ // Clickable form elements should have a pointer.
376
+ label,
377
+ select,
378
+ option,
379
+ button {
380
+ cursor: pointer;
381
+ }
382
+ }
383
+
384
+ @mixin scut-reset-form {
385
+ fieldset {
386
+ border: 0;
387
+ margin: 0;
388
+ padding: 0;
389
+ }
390
+ textarea {
391
+ resize: vertical;
392
+ }
393
+ }
394
+
395
+ @mixin scut-reset-button {
396
+ // Reset default button styles, which are never used.
397
+ button,
398
+ [type="button"],
399
+ [type="submit"],
400
+ [type="reset"] {
401
+ background: transparent;
402
+ border: 0;
403
+ color: inherit;
404
+ font: inherit;
405
+ margin: 0;
406
+ padding: 0;
407
+ width: auto;
408
+ -webkit-appearance: none;
409
+ -webkit-font-smoothing: antialiased;
410
+ -webkit-user-select: none;
411
+ -moz-user-select: none;
412
+ -ms-user-select: none;
413
+ user-select: none;
414
+ &::-moz-focus-inner {
415
+ padding: 0;
416
+ border: 0;
417
+ }
418
+ }
419
+ }
420
+
421
+ @mixin scut-reset-paragraph {
422
+ // Some paragraph margins just get in the way.
423
+ p:first-of-type {
424
+ margin-top: 0;
425
+ }
426
+ p:last-of-type {
427
+ margin-bottom: 0;
428
+ }
429
+ }
430
+
431
+ @mixin scut-reset-media {
432
+ // You want these elements fluid, probably.
433
+ img,
434
+ video {
435
+ max-width: 100%;
436
+ height: auto;
437
+ }
438
+ }
439
+
440
+ @mixin scut-reset-figure {
441
+ // Remove default margins.
442
+ figure {
443
+ margin: 0;
444
+ }
445
+ }
446
+
447
+ // Call them all, minus exclusions!
448
+ @mixin scut-reset ($exclude: false) {
449
+ @if not(index($exclude, border-box)) {
450
+ @include scut-reset-border-box;
451
+ }
452
+ @if not(index($exclude, antialias)) {
453
+ @include scut-reset-antialias;
454
+ }
455
+ @if not(index($exclude, semanticize)) {
456
+ @include scut-reset-semanticize;
457
+ }
458
+ @if not(index($exclude, pointer)) {
459
+ @include scut-reset-pointer;
460
+ }
461
+ @if not(index($exclude, form)) {
462
+ @include scut-reset-form;
463
+ }
464
+ @if not(index($exclude, button)) {
465
+ @include scut-reset-button;
466
+ }
467
+ @if not(index($exclude, paragraph)) {
468
+ @include scut-reset-paragraph;
469
+ }
470
+ @if not(index($exclude, media)) {
471
+ @include scut-reset-media;
472
+ }
473
+ @if not(index($exclude, figure)) {
474
+ @include scut-reset-figure;
475
+ }
476
+ }
477
+
478
+ @mixin scut-selected (
479
+ $active: false
480
+ ) {
481
+
482
+ @if $active {
483
+ &:hover,
484
+ &:focus,
485
+ &:active {
486
+ @content;
487
+ }
488
+ }
489
+ @else {
490
+ &:hover,
491
+ &:focus {
492
+ @content;
493
+ }
494
+ }
495
+
496
+ }
497
+ @mixin scut-triangle (
498
+ $direction: right,
499
+ $size: 0.75em,
500
+ $color: inherit
501
+ ) {
502
+
503
+ display: inline-block;
504
+ height: 0;
505
+ width: 0;
506
+ // For improved appearance in some Webkit browsers
507
+ -webkit-transform: rotate(360deg);
508
+
509
+ // Set up some variables
510
+ $width: null;
511
+ $height: null;
512
+ $border-widths: null;
513
+
514
+ @if type-of($size) == list {
515
+ $width: nth($size, 1);
516
+ $height: nth($size, 2);
517
+ }
518
+ @else {
519
+ $width: $size;
520
+ $height: $size;
521
+ }
522
+
523
+ @if ($direction == up) or ($direction == down) {
524
+ // For up and down, width gets two borders but height only one,
525
+ // so divide second border-width value by 2
526
+ $border-widths: $height ($width / 2);
527
+ }
528
+ @else if ($direction == right) or ($direction == left) {
529
+ // For right and left, height gets two borders but width only one,
530
+ // so divide first border-width value by 2
531
+ $border-widths: ($height / 2) $width;
532
+ }
533
+ @else {
534
+ // For right triangles (the rest), both sides get two borders,
535
+ // so divide both by 2
536
+ $border-widths: ($height / 2) ($width / 2);
537
+ }
538
+
539
+ border-width: $border-widths;
540
+ border-style: solid;
541
+
542
+
543
+ // STANDARD TRIANGLES
544
+
545
+ @if ($direction == up) or ($direction == down) or ($direction == right) or ($direction == left) {
546
+ border-color: transparent;
547
+ @if $direction == up {
548
+ border-bottom-color: $color;
549
+ border-top-width: 0;
550
+ }
551
+ @else if $direction == right {
552
+ border-left-color: $color;
553
+ border-right-width: 0;
554
+ }
555
+ @else if $direction == down {
556
+ border-top-color: $color;
557
+ border-bottom-width: 0;
558
+ }
559
+ @else if $direction == left {
560
+ border-right-color: $color;
561
+ border-left-width: 0;
562
+ }
563
+ }
564
+
565
+
566
+ // CORNER TRIANGLES
567
+
568
+ @else if ($direction == top-right) or ($direction == top-left) {
569
+ border-top-color: $color;
570
+ border-bottom-color: transparent;
571
+ @if $direction == top-right {
572
+ border-left-color: transparent;
573
+ border-right-color: $color;
574
+ }
575
+ @else if $direction == top-left {
576
+ border-left-color: $color;
577
+ border-right-color: transparent;
578
+ }
579
+ }
580
+
581
+ @else if ($direction == bottom-right) or ($direction == bottom-left) {
582
+ border-top-color: transparent;
583
+ border-bottom-color: $color;
584
+ @if $direction == bottom-right {
585
+ border-left-color: transparent;
586
+ border-right-color: $color;
587
+ }
588
+ @else if $direction == bottom-left {
589
+ border-left-color: $color;
590
+ border-right-color: transparent;
591
+ }
592
+ }
593
+
594
+ }
595
+
596
+ %scut-triangle {
597
+ @include scut-triangle;
598
+ }
599
+ @mixin scut-center-absolutely (
600
+ $dimensions
601
+ ) {
602
+
603
+ $width: nth($dimensions, 1);
604
+ $height: nth($dimensions, 2);
605
+
606
+ position: absolute;
607
+
608
+ @if $width != n {
609
+ width: $width;
610
+ left: 50%;
611
+ margin-left: (-$width / 2);
612
+ }
613
+
614
+ @if $height != n {
615
+ height: $height;
616
+ top: 50%;
617
+ margin-top: (-$height / 2);
618
+ }
619
+
620
+ }
621
+ @mixin scut-center-block (
622
+ $max-width: false
623
+ ) {
624
+
625
+ margin-left: auto;
626
+ margin-right: auto;
627
+ @if $max-width {
628
+ max-width: $max-width;
629
+ }
630
+
631
+ }
632
+
633
+ %scut-center-block {
634
+ @include scut-center-block;
635
+ }
636
+
637
+ @mixin scut-center-transform (
638
+ $axis: false // or x or y
639
+ ) {
640
+
641
+ position: absolute;
642
+
643
+ @if $axis != x {
644
+ top: 50%;
645
+ margin-top: auto;
646
+ margin-bottom: auto;
647
+ }
648
+
649
+ @if $axis != y {
650
+ left: 50%;
651
+ margin-left: auto;
652
+ margin-right: auto;
653
+ }
654
+
655
+ $translate-val: null;
656
+
657
+ @if not($axis) {
658
+ $translate-val: translate(-50%, -50%);
659
+ }
660
+ @else if $axis != x {
661
+ $translate-val: translateY(-50%);
662
+ }
663
+ @else if $axis != y {
664
+ $translate-val: translateX(-50%);
665
+ }
666
+
667
+ -webkit-transform: $translate-val;
668
+ -ms-transform: $translate-val;
669
+ transform: $translate-val;
670
+ }
671
+
672
+ %scut-center-transform {
673
+ @include scut-center-transform;
674
+ }
675
+
676
+ %scut-center-transform-x {
677
+ @include scut-center-transform(x);
678
+ }
679
+
680
+ %scut-center-transform-y {
681
+ @include scut-center-transform(y);
682
+ }
683
+
684
+ @mixin scut-fill (
685
+ $width-height: false
686
+ ) {
687
+
688
+ position: absolute;
689
+ left: 0;
690
+ top: 0;
691
+ @if $width-height {
692
+ width: 100%;
693
+ height: 100%;
694
+ }
695
+ @else {
696
+ right: 0;
697
+ bottom: 0;
698
+ }
699
+
700
+ }
701
+
702
+ %scut-fill {
703
+ @include scut-fill;
704
+ }
705
+ @mixin scut-list-custom (
706
+ $content: "\2022",
707
+ $marker-width: 0.75em,
708
+ $pad: 0,
709
+ $no-margin: false
710
+ ) {
711
+
712
+ $content-val: null;
713
+ $counter: index($content, count);
714
+ @if $counter {
715
+ @if length($content) == 3 {
716
+ $content-val: counter(scutlistcounter, nth($content, 3))nth($content,2);
717
+ }
718
+ @else if length($content) == 2 {
719
+ $content-val: counter(scutlistcounter)nth($content,2);
720
+ }
721
+ @else {
722
+ $content-val: counter(scutlistcounter);
723
+ }
724
+ }
725
+ @else {
726
+ $content-val: $content;
727
+ }
728
+
729
+ padding-left: $marker-width + $pad;
730
+ list-style-type: none;
731
+
732
+ @if $no-margin {
733
+ margin-top: 0;
734
+ margin-bottom: 0;
735
+ }
736
+
737
+ & > li {
738
+ position: relative;
739
+ @if $counter {
740
+ counter-increment: scutlistcounter;
741
+ }
742
+ &:before {
743
+ content: $content-val;
744
+ display: block;
745
+ position: absolute;
746
+ top: 0;
747
+ left: -$marker-width;
748
+ width: $marker-width;
749
+ @content;
750
+ }
751
+ }
752
+
753
+ }
754
+ // Depends on `list-floated`, which depends in turn on `list-unstyled` and `clearfix`.
755
+
756
+ @mixin scut-list-divided (
757
+ $divider: "|",
758
+ $space: 0.5em,
759
+ $dir: left,
760
+ $height: false,
761
+ $no-margin: true
762
+ ) {
763
+
764
+ @include scut-list-floated($dir: $dir, $no-margin: $no-margin);
765
+
766
+ $pseudo: if($dir == left, 'before', 'after');
767
+
768
+ // If an explicit height is passed,
769
+ // things are different: All <li>s
770
+ // need the pseudo-element (to force height),
771
+ // but the first's must be hidden.
772
+
773
+ @if $height {
774
+ & > li {
775
+ height: $height;
776
+ }
777
+ & > li:#{$pseudo} {
778
+ height: $height;
779
+ content: $divider;
780
+ display: inline-block;
781
+ vertical-align: middle;
782
+ @content;
783
+ }
784
+ & > li:first-child:#{$pseudo} {
785
+ width: 0;
786
+ overflow: hidden;
787
+ }
788
+ }
789
+
790
+ & > li + li:#{$pseudo} {
791
+ @if not($height) {
792
+ content: $divider;
793
+ display: inline-block;
794
+ @content;
795
+ }
796
+ margin-left: $space;
797
+ margin-right: $space;
798
+ }
799
+
800
+ }
801
+
802
+ %scut-list-bar {
803
+ @include scut-list-divided;
804
+ }
805
+
806
+ %scut-list-breadcrumb {
807
+ @include scut-list-divided("/");
808
+ }
809
+ // Depends on `list-unstyled`.
810
+
811
+ @mixin scut-list-inline (
812
+ $space: false,
813
+ $no-margin: true
814
+ ) {
815
+
816
+ @include scut-list-unstyled($no-margin);
817
+
818
+ & > li {
819
+ display: inline-block;
820
+ }
821
+
822
+ @if $space {
823
+ & > li + li {
824
+ margin-left: $space;
825
+ }
826
+ }
827
+
828
+ }
829
+
830
+ %scut-list-inline {
831
+ @include scut-list-inline;
832
+ }
833
+ // Depends on `list-unstyled`.
834
+
835
+ @mixin scut-list-punctuated (
836
+ $divider: ", ",
837
+ $display: inline,
838
+ $no-margin: true
839
+ ) {
840
+
841
+ @include scut-list-unstyled($no-margin);
842
+
843
+ & > li {
844
+ display: $display;
845
+ &:not(:last-child):after {
846
+ content: $divider;
847
+ }
848
+ }
849
+
850
+ }
851
+
852
+ %scut-list-comma {
853
+ @include scut-list-punctuated;
854
+ }
855
+ @mixin scut-margin (
856
+ $margin
857
+ ) {
858
+
859
+ @if length($margin) == 1 and $margin != n {
860
+ margin-top: $margin;
861
+ margin-right: $margin;
862
+ margin-bottom: $margin;
863
+ margin-left: $margin;
864
+ }
865
+
866
+ @if length($margin) == 2 {
867
+ $margin-y: nth($margin, 1);
868
+ $margin-x: nth($margin, 2);
869
+ @if $margin-y != n {
870
+ margin-top: $margin-y;
871
+ margin-bottom: $margin-y;
872
+ }
873
+ @if $margin-x != n {
874
+ margin-left: $margin-x;
875
+ margin-right: $margin-x;
876
+ }
877
+ }
878
+
879
+ @if length($margin) == 3 {
880
+ $margin-y-top: nth($margin, 1);
881
+ $margin-x: nth($margin, 2);
882
+ $margin-y-bottom: nth($margin, 3);
883
+ @if $margin-y-top != n {
884
+ margin-top: $margin-y-top;
885
+ }
886
+ @if $margin-x != n {
887
+ margin-right: $margin-x;
888
+ margin-left: $margin-x;
889
+ }
890
+ @if $margin-y-bottom != n {
891
+ margin-bottom: $margin-y-bottom;
892
+ }
893
+ }
894
+
895
+ @if length($margin) == 4 {
896
+ $margin-top: nth($margin, 1);
897
+ $margin-right: nth($margin, 2);
898
+ $margin-bottom: nth($margin, 3);
899
+ $margin-left: nth($margin, 4);
900
+ @if $margin-top != n {
901
+ margin-top: $margin-top;
902
+ }
903
+ @if $margin-right != n {
904
+ margin-right: $margin-right;
905
+ }
906
+ @if $margin-bottom != n {
907
+ margin-bottom: $margin-bottom;
908
+ }
909
+ @if $margin-left != n {
910
+ margin-left: $margin-left;
911
+ }
912
+ }
913
+
914
+ }
915
+ @mixin scut-padding (
916
+ $padding
917
+ ) {
918
+
919
+ @if length($padding) == 1 and $padding != n {
920
+ padding-top: $padding;
921
+ padding-right: $padding;
922
+ padding-bottom: $padding;
923
+ padding-left: $padding;
924
+ }
925
+
926
+ @if length($padding) == 2 {
927
+ $padding-y: nth($padding, 1);
928
+ $padding-x: nth($padding, 2);
929
+ @if $padding-y != n {
930
+ padding-top: $padding-y;
931
+ padding-bottom: $padding-y;
932
+ }
933
+ @if $padding-x != n {
934
+ padding-left: $padding-x;
935
+ padding-right: $padding-x;
936
+ }
937
+ }
938
+
939
+ @if length($padding) == 3 {
940
+ $padding-y-top: nth($padding, 1);
941
+ $padding-x: nth($padding, 2);
942
+ $padding-y-bottom: nth($padding, 3);
943
+ @if $padding-y-top != n {
944
+ padding-top: $padding-y-top;
945
+ }
946
+ @if $padding-x != n {
947
+ padding-right: $padding-x;
948
+ padding-left: $padding-x;
949
+ }
950
+ @if $padding-y-bottom != n {
951
+ padding-bottom: $padding-y-bottom;
952
+ }
953
+ }
954
+
955
+ @if length($padding) == 4 {
956
+ $padding-top: nth($padding, 1);
957
+ $padding-right: nth($padding, 2);
958
+ $padding-bottom: nth($padding, 3);
959
+ $padding-left: nth($padding, 4);
960
+ @if $padding-top != n {
961
+ padding-top: $padding-top;
962
+ }
963
+ @if $padding-right != n {
964
+ padding-right: $padding-right;
965
+ }
966
+ @if $padding-bottom != n {
967
+ padding-bottom: $padding-bottom;
968
+ }
969
+ @if $padding-left != n {
970
+ padding-left: $padding-left;
971
+ }
972
+ }
973
+ }
974
+ // Depends on `positioning-coordinates`.
975
+
976
+ @mixin scut-absolute (
977
+ $coordinates: 0 n n 0
978
+ ) {
979
+
980
+ position: absolute;
981
+ @include scut-coords($coordinates);
982
+
983
+ }
984
+
985
+ %scut-absolute {
986
+ @include scut-absolute;
987
+ }
988
+ // Depends on `positioning-coordinates`.
989
+
990
+ @mixin scut-fixed (
991
+ $coordinates: 0 n n 0
992
+ ) {
993
+
994
+ position: fixed;
995
+ @include scut-coords($coordinates);
996
+
997
+ }
998
+
999
+ %scut-fixed {
1000
+ @include scut-fixed;
1001
+ }
1002
+ // Depends on `positioning-coordinates`.
1003
+
1004
+ @mixin scut-relative (
1005
+ $coordinates: n n n n
1006
+ ) {
1007
+
1008
+ position: relative;
1009
+ @include scut-coords($coordinates);
1010
+
1011
+ }
1012
+ @mixin scut-ratio-box (
1013
+ $ratio: 1/1
1014
+ ) {
1015
+
1016
+ overflow: hidden;
1017
+ position: relative;
1018
+
1019
+ // The container's height, as a percentage of the
1020
+ // container's width, is set by assigning
1021
+ // padding-top to a pseudo-element.
1022
+ &:before {
1023
+ content: "";
1024
+ display: block;
1025
+ height: 0;
1026
+ padding-top: (1 / $ratio) * 100%;
1027
+ }
1028
+
1029
+ }
1030
+
1031
+ %scut-ratio-box {
1032
+ @include scut-ratio-box;
1033
+ }
1034
+ @mixin scut-size(
1035
+ $size
1036
+ ) {
1037
+
1038
+ @if length($size) == 1 {
1039
+ width: $size;
1040
+ height: $size;
1041
+ }
1042
+ @else if length($size) == 2 {
1043
+ width: nth($size, 1);
1044
+ height: nth($size, 2);
1045
+ }
1046
+
1047
+ }
1048
+ @mixin scut-sticky-footer-fixed (
1049
+ $height,
1050
+ $wrapper: ".wrapper",
1051
+ $footer: ".scut-sticky"
1052
+ ) {
1053
+
1054
+ html,
1055
+ body {
1056
+ height: 100%;
1057
+ margin: 0;
1058
+ padding: 0;
1059
+ }
1060
+
1061
+ #{$wrapper} {
1062
+ min-height: 100%;
1063
+ margin-bottom: -$height;
1064
+ &:after {
1065
+ content: "";
1066
+ display: block;
1067
+ }
1068
+ }
1069
+
1070
+ #{$wrapper}:after,
1071
+ #{$footer} {
1072
+ height: $height;
1073
+ }
1074
+
1075
+ }
1076
+
1077
+ // deprecated
1078
+ @mixin scut-sticky-footer (
1079
+ $height,
1080
+ $wrapper: ".wrapper",
1081
+ $footer: ".scut-sticky"
1082
+ ){
1083
+ @include scut-sticky-footer-fixed($height, $wrapper, $footer);
1084
+ }
1085
+ @mixin scut-sticky-footer-fluid (
1086
+ $wrapper: ".wrapper",
1087
+ $footer: ".scut-sticky"
1088
+ ) {
1089
+
1090
+ html,
1091
+ body {
1092
+ height: 100%;
1093
+ margin: 0;
1094
+ padding: 0;
1095
+ }
1096
+
1097
+ #{$wrapper} {
1098
+ display: table;
1099
+ height: 100%;
1100
+ width: 100%;
1101
+ }
1102
+
1103
+ #{$footer} {
1104
+ display: table-row;
1105
+ height: 1px;
1106
+ }
1107
+
1108
+ }
1109
+ @mixin scut-vcenter-ib (
1110
+ $inner...
1111
+ ) {
1112
+
1113
+ // The inner element is vertically centered
1114
+ // by middle-aligning it with an inline pseudo-element
1115
+ // whose height is 100%.
1116
+
1117
+ &:before {
1118
+ content: "";
1119
+ height: 100%;
1120
+ display: inline-block;
1121
+ vertical-align: middle;
1122
+ // A small negative right margin is set
1123
+ // to account for the default
1124
+ // word-spacing of inline-block.
1125
+ margin-right: -0.25em;
1126
+ }
1127
+
1128
+ $inner: if(length($inner) == 0, ".scut-inner", $inner);
1129
+ @each $cell-selector in $inner {
1130
+ $cell-selector: unquote($cell-selector);
1131
+ & > #{$cell-selector} {
1132
+ display: inline-block;
1133
+ vertical-align: middle;
1134
+ }
1135
+ }
1136
+
1137
+ }
1138
+
1139
+ %scut-vcenter-ib {
1140
+ @include scut-vcenter-ib;
1141
+ }
1142
+
1143
+ @mixin scut-vcenter-lh (
1144
+ $height
1145
+ ) {
1146
+
1147
+ height: $height;
1148
+ line-height: $height;
1149
+
1150
+ }
1151
+ @mixin scut-vcenter-td (
1152
+ $inner...
1153
+ ) {
1154
+
1155
+ display: table;
1156
+
1157
+ $inner: if(length($inner) == 0, ".scut-inner", $inner);
1158
+ @each $cell-selector in $inner {
1159
+ $cell-selector: unquote($cell-selector);
1160
+ & > #{$cell-selector} {
1161
+ display: table-cell;
1162
+ vertical-align: middle;
1163
+ }
1164
+ }
1165
+
1166
+ }
1167
+
1168
+
1169
+ %scut-vcenter-td {
1170
+ @include scut-vcenter-td;
1171
+ }
1172
+
1173
+ // Depends on scut-center-transform
1174
+
1175
+ @mixin scut-vcenter-tt () {
1176
+ @include scut-center-transform(y);
1177
+ }
1178
+
1179
+ %scut-vcenter-tt {
1180
+ @include scut-vcenter-tt;
1181
+ }
1182
+ // space
1183
+ $scut-space: "\0020";
1184
+ // non-breaking space
1185
+ $scut-nbsp: "\00a0";
1186
+
1187
+ // quotation mark
1188
+ $scut-quot: "\0022";
1189
+ // left single curly quote
1190
+ $scut-lsquo: "\2018";
1191
+ // right single curly quote
1192
+ $scut-rsquo: "\2019";
1193
+ // left double curly quote
1194
+ $scut-ldquo: "\201C";
1195
+ // right double curly quote
1196
+ $scut-rdquo: "\201D";
1197
+ // left single angle quote (guillemet)
1198
+ $scut-lsaquo: "\2039";
1199
+ // right single angle quote (guillemet)
1200
+ $scut-rsaquo: "\203A";
1201
+ // left double angle quote (guillemet)
1202
+ $scut-laquo: "\00ab";
1203
+ // right double angle quote (guillemet)
1204
+ $scut-raquo: "\00bb";
1205
+
1206
+ // em dash (mutton)
1207
+ $scut-mdash: "\2014";
1208
+ // en dash (nut)
1209
+ $scut-ndash: "\2013";
1210
+ // hyphen
1211
+ $scut-hyphen: "\2010";
1212
+
1213
+ // ampersand
1214
+ $scut-amp: "\0026";
1215
+ // greater than
1216
+ $scut-gt: "\003e";
1217
+ // less than
1218
+ $scut-lt: "\003c";
1219
+ // times
1220
+ $scut-times: "\00D7";
1221
+ // big times
1222
+ $scut-bigtimes: "\2715";
1223
+ // checkmark
1224
+ $scut-checkmark: "\2713";
1225
+
1226
+ // section sign (double S, hurricane, sectional symbol, the legal doughnut, signum sectionis)
1227
+ $scut-sect: "\00a7";
1228
+ // paragraph symbol (pilcrow)
1229
+ $scut-para: "\00b6";
1230
+
1231
+ // middot (interpunct, interpoint)
1232
+ $scut-middot: "\00b7";
1233
+ // o-slash (slashed o)
1234
+ $scut-oslash: "\00f8";
1235
+ // bullet
1236
+ $scut-bull: "\2022";
1237
+ // white bullet
1238
+ $scut-whibull: "\25E6";
1239
+ // horizontal ellipsis
1240
+ $scut-hellip: "\2026";
1241
+ // vertical ellipsis
1242
+ $scut-vellip: "\22EE";
1243
+ // midline horizontal ellipsis
1244
+ $scut-midhellip: "\22EF";
1245
+
1246
+ // up-pointing triangle
1247
+ $scut-utri: "\25b2";
1248
+ // down-pointing triangle
1249
+ $scut-dtri: "\25bc";
1250
+ // left-pointing triangle
1251
+ $scut-ltri: "\25c0";
1252
+ // right-pointing triangle
1253
+ $scut-rtri: "\25b6";
1254
+ // up-pointing small triangle
1255
+ $scut-ustri: "\25b4";
1256
+ // down-pointing small triangle
1257
+ $scut-dstri: "\25be";
1258
+ // left-pointing small triangle
1259
+ $scut-lstri: "\25c2";
1260
+ // right-pointing small triangle
1261
+ $scut-rstri: "\25b8";
1262
+ // diamond
1263
+ $scut-diamond: "\25c6";
1264
+ // fisheye
1265
+ $scut-fisheye: "\25c9";
1266
+ // bullseye
1267
+ $scut-bullseye: "\25ce";
1268
+ // circle
1269
+ $scut-circle: "\25cf";
1270
+ // white circle
1271
+ $scut-whitecircle: "\25cb";
1272
+ // square
1273
+ $scut-square: "\25a0";
1274
+ // white square
1275
+ $scut-whitesquare: "\25a1";
1276
+ // small square
1277
+ $scut-ssquare: "\25aa";
1278
+ // small white square
1279
+ $scut-swhitesquare: "\25ab";
1280
+
1281
+ // general currency
1282
+ $scut-currency: "\00a4";
1283
+ // cent
1284
+ $scut-cent: "\00a2";
1285
+ // dollar
1286
+ $scut-dollar: "\0024";
1287
+ // pound
1288
+ $scut-pound: "\00a3";
1289
+ // euro
1290
+ $scut-euro: "\20ac";
1291
+ // yen
1292
+ $scut-yen: "\00a5";
1293
+ // rupee
1294
+ $scut-rupee: "\20B9";
1295
+ @function main-src($formats, $file-path, $font-family) {
1296
+ // Return the list of `src` values, in order, that
1297
+ // a good `@font-face` will need, including only
1298
+ // those formats specified in the list `$formats`.
1299
+ $result: ();
1300
+ @if index($formats, eot) {
1301
+ $eot-val: url('#{$file-path}.eot?#iefix') format('embedded-opentype');
1302
+ $result: append($result, $eot-val, comma);
1303
+ }
1304
+ @if index($formats, woff2) {
1305
+ $woff2-val: url('#{$file-path}.woff2') format('woff2');
1306
+ $result: append($result, $woff2-val, comma);
1307
+ }
1308
+ @if index($formats, woff) {
1309
+ $woff-val: url('#{$file-path}.woff') format('woff');
1310
+ $result: append($result, $woff-val, comma);
1311
+ }
1312
+ @if index($formats, ttf) {
1313
+ $ttf-val: url('#{$file-path}.ttf') format('truetype');
1314
+ $result: append($result, $ttf-val, comma);
1315
+ }
1316
+ @if index($formats, svg) {
1317
+ $svg-val: url('#{$file-path}.svg##{$font-family}') format('svg');
1318
+ $result: append($result, $svg-val, comma);
1319
+ }
1320
+ @return $result;
1321
+ }
1322
+
1323
+ @mixin scut-font-face (
1324
+ $font-family,
1325
+ $file-path,
1326
+ $weight: normal,
1327
+ $style: normal,
1328
+ $formats: eot woff2 woff ttf svg
1329
+ ) {
1330
+
1331
+ @if index('italic' 'oblique', $weight) {
1332
+ $style: $weight;
1333
+ $weight: normal;
1334
+ }
1335
+
1336
+ @font-face {
1337
+ font-family: $font-family;
1338
+ font-weight: $weight;
1339
+ font-style: $style;
1340
+
1341
+ @if index($formats, eot) {
1342
+ src: url('#{$file-path}.eot');
1343
+ }
1344
+ src: main-src($formats, $file-path, $font-family);
1345
+ }
1346
+
1347
+ }
1348
+
1349
+ @mixin scut-hanging-indent (
1350
+ $indent: 1em
1351
+ ) {
1352
+
1353
+ // padding-left creates the indent,
1354
+ // while text-indent pulls the first line
1355
+ // back to the edge.
1356
+
1357
+ padding-left: $indent;
1358
+ text-indent: -$indent;
1359
+
1360
+ }
1361
+
1362
+ %scut-hanging-indent {
1363
+ @include scut-hanging-indent;
1364
+ }
1365
+ @mixin scut-indented-ps (
1366
+ $indent: 1.5em,
1367
+ $no-first-indent: true
1368
+ ) {
1369
+
1370
+ p {
1371
+ margin: 0;
1372
+ text-indent: $indent;
1373
+ }
1374
+
1375
+ @if $no-first-indent {
1376
+ p:first-of-type {
1377
+ text-indent: 0;
1378
+ }
1379
+ }
1380
+
1381
+ }
1382
+
1383
+ %scut-indented-ps {
1384
+ @include scut-indented-ps;
1385
+ }
1386
+ @mixin scut-key-val (
1387
+ $divider: ":",
1388
+ $pad: 0.25em,
1389
+ $indent: 1em,
1390
+ $spacing: 0,
1391
+ $pad-left: 0
1392
+ ) {
1393
+
1394
+ & > dt {
1395
+ clear: both;
1396
+ float: left;
1397
+ &:after {
1398
+ content: $divider;
1399
+ margin-right: $pad;
1400
+ @if $pad-left != 0 {
1401
+ margin-left: $pad-left;
1402
+ }
1403
+ }
1404
+ }
1405
+
1406
+ & > dd {
1407
+ margin-left: $indent;
1408
+ @if $spacing != 0 {
1409
+ margin-bottom: $spacing;
1410
+ }
1411
+ }
1412
+
1413
+ }
1414
+
1415
+ %scut-key-val {
1416
+ @include scut-key-val;
1417
+ }
1418
+ @mixin scut-link-bb (
1419
+ $color: inherit,
1420
+ $style: solid,
1421
+ $width: 1px
1422
+ ) {
1423
+
1424
+ text-decoration: none;
1425
+
1426
+ border-bottom-width: $width;
1427
+ border-bottom-style: $style;
1428
+ @if $color != inherit {
1429
+ border-bottom-color: $color;
1430
+ }
1431
+
1432
+ }
1433
+
1434
+ %scut-link-bb {
1435
+ @include scut-link-bb;
1436
+ }
1437
+ // SCUT LINK UNSTYLED
1438
+ // http://davidtheclark.github.io/scut/#link-unstyled
1439
+
1440
+ @mixin scut-link-unstyled() {
1441
+
1442
+ text-decoration: none;
1443
+ color: inherit;
1444
+
1445
+ }
1446
+
1447
+ %scut-link-unstyled {
1448
+ @include scut-link-unstyled();
1449
+ }
1450
+
1451
+ @mixin scut-reverse-italics (
1452
+ $elements: null
1453
+ ) {
1454
+
1455
+ $element-list: em, cite, i;
1456
+ font-style: italic;
1457
+ #{join($element-list, $elements)} {
1458
+ font-style: normal;
1459
+ }
1460
+
1461
+ }
1462
+
1463
+ %scut-reverse-italics {
1464
+ @include scut-reverse-italics;
1465
+ }
1466
+
1467
+ @mixin scut-side-lined (
1468
+ $height: 1px,
1469
+ $space: 0.5em,
1470
+ $color: inherit,
1471
+ $style: solid,
1472
+ $v-adjust: false,
1473
+ $double: false
1474
+ ) {
1475
+
1476
+ display: block;
1477
+ overflow: hidden;
1478
+ text-align: center;
1479
+
1480
+ &:before,
1481
+ &:after {
1482
+ content: "";
1483
+ display: inline-block;
1484
+ vertical-align: middle;
1485
+ position: relative;
1486
+ width: 50%;
1487
+
1488
+ border-top-style: $style;
1489
+ border-top-width: $height;
1490
+
1491
+ @if $color != inherit {
1492
+ border-top-color: $color;
1493
+ }
1494
+
1495
+ @if $v-adjust != false {
1496
+ bottom: $v-adjust;
1497
+ }
1498
+
1499
+ @if $double != false {
1500
+ height: $double;
1501
+ border-bottom-style: $style;
1502
+ border-bottom-width: $height;
1503
+ @if $color != inherit {
1504
+ border-bottom-color: $color;
1505
+ }
1506
+ }
1507
+ }
1508
+
1509
+ &:before {
1510
+ right: $space;
1511
+ margin-left: -50%;
1512
+ }
1513
+ &:after {
1514
+ left: $space;
1515
+ margin-right: -50%;
1516
+ }
1517
+
1518
+ }
1519
+
1520
+ %scut-side-lined {
1521
+ @include scut-side-lined;
1522
+ }
1523
+ @mixin scut-truncate {
1524
+
1525
+ white-space: nowrap;
1526
+ overflow: hidden;
1527
+ text-overflow: ellipsis;
1528
+
1529
+ }
1530
+
1531
+ %scut-truncate {
1532
+ @include scut-truncate;
1533
+ }