jekyll-wikibonsai 0.0.9 → 0.0.11

Sign up to get free protection for your applications and to get access to all the features.
Files changed (135) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +5 -0
  3. data/README.md +57 -0
  4. data/_config.yml +269 -0
  5. data/_data/emoji.yml +46 -0
  6. data/_data/themes.yml +145 -0
  7. data/_includes/anchor-headings.html +156 -0
  8. data/_includes/branch.html +18 -0
  9. data/_includes/btn_state.html +14 -0
  10. data/_includes/connect.html +46 -0
  11. data/_includes/cookie-consent.html +79 -0
  12. data/_includes/dates.html +22 -0
  13. data/_includes/hp-tooltip.html +106 -0
  14. data/_includes/img/bullet-ancestor.svg +5 -0
  15. data/_includes/img/bullet-branch.svg +7 -0
  16. data/_includes/img/bullet-tree.svg +9 -0
  17. data/_includes/img/bullet-web.svg +9 -0
  18. data/_includes/img/pencil-filter.svg +17 -0
  19. data/_includes/share.html +47 -0
  20. data/_includes/site-nav.html +100 -0
  21. data/_includes/tags.html +49 -0
  22. data/_includes/themes.scss.liquid +80 -0
  23. data/_includes/toc.html +187 -0
  24. data/_layouts/404.html +10 -0
  25. data/_layouts/about.html +14 -0
  26. data/_layouts/archive.html +77 -0
  27. data/_layouts/base.html +68 -0
  28. data/_layouts/book.html +40 -0
  29. data/_layouts/entry.html +269 -0
  30. data/_layouts/home.html +96 -0
  31. data/_layouts/map.html +17 -0
  32. data/_layouts/post.html +37 -0
  33. data/_layouts/privacy.html +15 -0
  34. data/_layouts/recent.html +66 -0
  35. data/_layouts/state.html +70 -0
  36. data/_layouts/table-wrappers.html +7 -0
  37. data/_layouts/vendor/compress.html +10 -0
  38. data/_sass/base/_code.scss +133 -0
  39. data/_sass/base/_layout.scss +55 -0
  40. data/_sass/base/_link.scss +105 -0
  41. data/_sass/base/_main.scss +96 -0
  42. data/_sass/base/_markdown.scss +281 -0
  43. data/_sass/base/_typography.scss +89 -0
  44. data/_sass/base/code_themes/_gruvbox.scss +92 -0
  45. data/_sass/base/code_themes/_monokai.scss +217 -0
  46. data/_sass/base/code_themes/_solarized.scss +84 -0
  47. data/_sass/components/_btn.scss +95 -0
  48. data/_sass/components/_infobox.scss +48 -0
  49. data/_sass/components/_item.scss +28 -0
  50. data/_sass/components/_search.scss +61 -0
  51. data/_sass/components/_tag_pills.scss +24 -0
  52. data/_sass/components/_visited.scss +42 -0
  53. data/_sass/includes/_anchor_headings.scss +36 -0
  54. data/_sass/includes/_connect.scss +8 -0
  55. data/_sass/includes/_cookie_consent.scss +46 -0
  56. data/_sass/includes/_dates.scss +6 -0
  57. data/_sass/includes/_hp_tooltip.scss +41 -0
  58. data/_sass/includes/_share.scss +10 -0
  59. data/_sass/includes/_site_nav.scss +97 -0
  60. data/_sass/includes/_svg.scss +89 -0
  61. data/_sass/includes/_toc.scss +38 -0
  62. data/_sass/layouts/_404.scss +3 -0
  63. data/_sass/layouts/_about.scss +3 -0
  64. data/_sass/layouts/_archive.scss +26 -0
  65. data/_sass/layouts/_book.scss +17 -0
  66. data/_sass/layouts/_entry.scss +152 -0
  67. data/_sass/layouts/_home.scss +75 -0
  68. data/_sass/layouts/_map.scss +3 -0
  69. data/_sass/layouts/_post.scss +17 -0
  70. data/_sass/layouts/_privacy.scss +3 -0
  71. data/_sass/layouts/_recent.scss +77 -0
  72. data/_sass/layouts/_state.scss +98 -0
  73. data/_sass/main.scss +73 -0
  74. data/_sass/util/_functions.scss +9 -0
  75. data/_sass/util/_variables.scss +113 -0
  76. data/_sass/util/mixins/_buttons.scss +27 -0
  77. data/_sass/util/mixins/_layout.scss +84 -0
  78. data/_sass/util/mixins/_typography.scss +84 -0
  79. data/_sass/vendor/normalize.scss/README.md +7 -0
  80. data/_sass/vendor/normalize.scss/normalize.scss +349 -0
  81. data/assets/css/styles.scss +31 -0
  82. data/assets/font/Cutive_Mono/CutiveMono-Regular.ttf +0 -0
  83. data/assets/font/Cutive_Mono/OFL.txt +93 -0
  84. data/assets/font/Old_Standard_TT/OFL.txt +93 -0
  85. data/assets/font/Old_Standard_TT/OldStandardTT-Bold.ttf +0 -0
  86. data/assets/font/Old_Standard_TT/OldStandardTT-Italic.ttf +0 -0
  87. data/assets/font/Old_Standard_TT/OldStandardTT-Regular.ttf +0 -0
  88. data/assets/font/exo2/Exo2-Italic-VariableFont_wght.ttf +0 -0
  89. data/assets/font/exo2/Exo2-VariableFont_wght.ttf +0 -0
  90. data/assets/font/exo2/OFL.txt +93 -0
  91. data/assets/font/exo2/README.txt +81 -0
  92. data/assets/font/exo2/static/Exo2-Black.ttf +0 -0
  93. data/assets/font/exo2/static/Exo2-BlackItalic.ttf +0 -0
  94. data/assets/font/exo2/static/Exo2-Bold.ttf +0 -0
  95. data/assets/font/exo2/static/Exo2-BoldItalic.ttf +0 -0
  96. data/assets/font/exo2/static/Exo2-ExtraBold.ttf +0 -0
  97. data/assets/font/exo2/static/Exo2-ExtraBoldItalic.ttf +0 -0
  98. data/assets/font/exo2/static/Exo2-ExtraLight.ttf +0 -0
  99. data/assets/font/exo2/static/Exo2-ExtraLightItalic.ttf +0 -0
  100. data/assets/font/exo2/static/Exo2-Italic.ttf +0 -0
  101. data/assets/font/exo2/static/Exo2-Light.ttf +0 -0
  102. data/assets/font/exo2/static/Exo2-LightItalic.ttf +0 -0
  103. data/assets/font/exo2/static/Exo2-Medium.ttf +0 -0
  104. data/assets/font/exo2/static/Exo2-MediumItalic.ttf +0 -0
  105. data/assets/font/exo2/static/Exo2-Regular.ttf +0 -0
  106. data/assets/font/exo2/static/Exo2-SemiBold.ttf +0 -0
  107. data/assets/font/exo2/static/Exo2-SemiBoldItalic.ttf +0 -0
  108. data/assets/font/exo2/static/Exo2-Thin.ttf +0 -0
  109. data/assets/font/exo2/static/Exo2-ThinItalic.ttf +0 -0
  110. data/assets/img/bonsai-dark.png +0 -0
  111. data/assets/img/bonsai-dark.svg +106 -0
  112. data/assets/img/bonsai-light.png +0 -0
  113. data/assets/img/bonsai-light.svg +81 -0
  114. data/assets/img/bonsai-star.png +0 -0
  115. data/assets/img/bonsai-star.svg +1 -0
  116. data/assets/img/books/the-ancient-art-of-bonsai.png +0 -0
  117. data/assets/img/favicon-dark.png +0 -0
  118. data/assets/img/favicon-light.png +0 -0
  119. data/assets/img/nav-base-dark.svg +1 -0
  120. data/assets/img/nav-base-light.svg +1 -0
  121. data/assets/img/nav-base-star.svg +1 -0
  122. data/assets/img/nav-bonsai-dark.svg +1 -0
  123. data/assets/img/nav-bonsai-light.svg +1 -0
  124. data/assets/img/nav-bonsai-star.svg +1 -0
  125. data/assets/img/wikibonsai-way.png +0 -0
  126. data/assets/js/entry.js +130 -0
  127. data/assets/js/graph.js +64 -0
  128. data/assets/js/scripts.js +64 -0
  129. data/assets/js/search.js +165 -0
  130. data/assets/js/site-nav.js +132 -0
  131. data/assets/js/theme-colors.js +57 -0
  132. data/assets/js/vendor/lunr.js +3475 -0
  133. data/assets/js/vendor/lunr.min.js +6 -0
  134. data/assets/js/visited-nav.js +65 -0
  135. metadata +139 -5
@@ -0,0 +1,98 @@
1
+ // state page styles
2
+
3
+ .state {
4
+ display: flex;
5
+ flex-direction: column;
6
+ min-height: 90vh;
7
+
8
+ &__nav {
9
+ @include fs-6;
10
+ width: 100%;
11
+ z-index: $z-nav;
12
+ top: 0;
13
+ user-select: none;
14
+
15
+ ul {
16
+ overflow-x: scroll; // horizontal scroll on overflow
17
+ white-space: nowrap; // horizontal scroll on overflow
18
+
19
+ padding: 0 !important;
20
+ margin-bottom: 0;
21
+
22
+ li {
23
+ display: inline-block; // horizontal scroll on overflow
24
+
25
+ margin-right: $sp-3;
26
+ margin-left: $sp-3;
27
+ transition: all .2s ease-in-out;
28
+
29
+ &::before {
30
+ content: "";
31
+ }
32
+
33
+ &.active {
34
+ filter: drop-shadow(0 2mm 2mm $drop-shadow-green);
35
+ }
36
+
37
+ &:hover {
38
+ transform: scale(1.5);
39
+ filter: drop-shadow(0 2mm 2mm $drop-shadow-brown);
40
+ }
41
+ }
42
+ }
43
+ }
44
+
45
+ &__content {
46
+ @include container-narrow;
47
+ flex: 1 0 auto;
48
+ }
49
+
50
+ &__list-wrap {
51
+ display: block; // columns require block
52
+ column-count: 3;
53
+ column-width: $content-width / 6;
54
+ // padding: $sp-4;
55
+
56
+ &--empty {
57
+ padding: $sp-10;
58
+ text-align: center;
59
+ }
60
+ }
61
+
62
+ &__footer {
63
+ // 'sticky footer' from: https://css-tricks.com/couple-takes-sticky-footer/#there-is-flexbox
64
+ // ex = local
65
+ // footer = state__footer
66
+ // content = state__content
67
+ // body = state
68
+ // html, body = state (height is min-height)
69
+ flex-shrink: 0;
70
+ display: flex;
71
+
72
+ padding: $sp-3;
73
+ }
74
+ }
75
+
76
+ // note: this is a hacky workaround for the fact that 'markdownify'
77
+ // doesn't seem to be calling jekyll-wikilink's custom web-link
78
+ // converter.
79
+ // (styles should match the 'web-link' class)
80
+ .has-web-links a {
81
+ color: var(--link-color);
82
+ text-decoration: none;
83
+ background-image: linear-gradient(
84
+ var(--link-underline-color) 0%,
85
+ var(--link-underline-color) 100%
86
+ );
87
+ background-repeat: repeat-x;
88
+ background-position: 0 100%;
89
+ background-size: 1px 1px;
90
+
91
+ &:hover {
92
+ background-image: linear-gradient(
93
+ var(--link-color) 0%,
94
+ var(--link-color) 100%
95
+ );
96
+ background-size: 1px 1px;
97
+ }
98
+ }
data/_sass/main.scss ADDED
@@ -0,0 +1,73 @@
1
+ //
2
+ // util
3
+ //
4
+
5
+ @import "./util/variables";
6
+ @import "./util/functions";
7
+ // mixins
8
+ @import "./util/mixins/layout";
9
+ @import "./util/mixins/buttons";
10
+ @import "./util/mixins/typography";
11
+
12
+ //
13
+ // external dependencies
14
+ //
15
+
16
+ @import "./vendor/normalize.scss/normalize.scss";
17
+ @import url('https://fonts.googleapis.com/css?family=Special+Elite');
18
+
19
+ //
20
+ // base styles
21
+ //
22
+
23
+ @import "./base/code";
24
+ @import "./base/layout";
25
+ @import "./base/link";
26
+ @import "./base/main";
27
+ @import "./base/markdown";
28
+ @import "./base/typography";
29
+
30
+ //
31
+ // component styles
32
+ //
33
+
34
+ @import "./components/btn";
35
+ @import "./components/infobox";
36
+ @import "./components/item";
37
+ @import "./components/search";
38
+ @import "./components/tag_pills";
39
+ @import "./components/visited";
40
+
41
+ //
42
+ // includes styles
43
+ // (each file corresponds with an include)
44
+ //
45
+
46
+ @import "./includes/anchor_headings";
47
+ @import "./includes/cookie_consent";
48
+ @import "./includes/connect";
49
+ @import "./includes/dates";
50
+ @import "./includes/hp_tooltip";
51
+ @import "./includes/site_nav";
52
+ @import "./includes/share";
53
+ @import "./includes/svg";
54
+ @import "./includes/toc";
55
+
56
+ //
57
+ // layouts styles
58
+ // (each file corresponds with a layouts)
59
+ //
60
+
61
+ // templates
62
+ @import "./layouts/book";
63
+ @import "./layouts/entry";
64
+ @import "./layouts/post";
65
+ // pages
66
+ @import "./layouts/404";
67
+ @import "./layouts/about";
68
+ @import "./layouts/archive";
69
+ @import "./layouts/home";
70
+ @import "./layouts/map";
71
+ @import "./layouts/privacy";
72
+ @import "./layouts/recent";
73
+ @import "./layouts/state";
@@ -0,0 +1,9 @@
1
+ @function rem($size, $unit: "") {
2
+ $remSize: $size / $root-font-size;
3
+
4
+ @if ($unit == false) {
5
+ @return #{$remSize};
6
+ } @else {
7
+ @return #{$remSize}rem;
8
+ }
9
+ }
@@ -0,0 +1,113 @@
1
+ //
2
+ // Typography
3
+ //
4
+
5
+ $body-font-family: Georgia, serif !default;
6
+ $mono-font-family: "SFMono-Regular", Menlo, Consolas, Monospace !default;
7
+ $click-font-family: 'Trebuchet MS', sans-serif !default; // 'click' because this font invites users to click on the text.
8
+
9
+ $root-font-size: 16px !default; // Base font-size for rems
10
+ $body-line-height: 1.4 !default;
11
+ $content-line-height: 1.6 !default;
12
+ $body-heading-line-height: 1.25 !default;
13
+
14
+ //
15
+ // Font size
16
+ // `-sm` suffix is the size at the small (and above) media query
17
+ //
18
+
19
+ $font-size-1: 9px !default;
20
+ $font-size-1-sm: 10px !default;
21
+ $font-size-2: 11px !default;
22
+ $font-size-3: 12px !default;
23
+ $font-size-4: 14px !default;
24
+ $font-size-5: 16px !default;
25
+ $font-size-6: 18px !default;
26
+ $font-size-7: 24px !default;
27
+ $font-size-8: 32px !default;
28
+ $font-size-9: 36px !default;
29
+ $font-size-10: 42px !default;
30
+ $font-size-10-sm: 48px !default;
31
+
32
+ //
33
+ // Spacing
34
+ //
35
+
36
+ $spacing-unit: 1rem; // 1rem == 16px
37
+
38
+ $spacers: (
39
+ sp-0: 0,
40
+ sp-0-75: $spacing-unit * 0.15,
41
+ sp-1: $spacing-unit * 0.25,
42
+ sp-1-75: $spacing-unit * 0.4,
43
+ sp-2: $spacing-unit * 0.5,
44
+ sp-3: $spacing-unit * 0.75,
45
+ sp-4: $spacing-unit,
46
+ sp-5: $spacing-unit * 1.5,
47
+ sp-6: $spacing-unit * 2,
48
+ sp-7: $spacing-unit * 2.5,
49
+ sp-8: $spacing-unit * 3,
50
+ sp-9: $spacing-unit * 3.5,
51
+ sp-10: $spacing-unit * 4,
52
+ ) !default;
53
+
54
+ $sp-1: map-get($spacers, sp-1) !default; // 0.25 rem == 4px
55
+ $sp-2: map-get($spacers, sp-2) !default; // 0.5 rem == 8px
56
+ $sp-3: map-get($spacers, sp-3) !default; // 0.75 rem == 12px
57
+ $sp-4: map-get($spacers, sp-4) !default; // 1 rem == 16px
58
+ $sp-5: map-get($spacers, sp-5) !default; // 1.5 rem == 24px
59
+ $sp-6: map-get($spacers, sp-6) !default; // 2 rem == 32px
60
+ $sp-7: map-get($spacers, sp-7) !default; // 2.5 rem == 40px
61
+ $sp-8: map-get($spacers, sp-8) !default; // 3 rem == 48px
62
+ $sp-9: map-get($spacers, sp-9) !default; // 3.5 rem == 56px
63
+ $sp-10: map-get($spacers, sp-10) !default; // 4 rem == 64px
64
+
65
+ //
66
+ // Borders
67
+ //
68
+
69
+ $border: 1px solid !default;
70
+ $border-radius: 4px !default;
71
+
72
+ //
73
+ // "Grid" system
74
+ //
75
+
76
+ $header-height: 60px !default;
77
+ $gutter-spacing: $sp-6 !default;
78
+ $gutter-spacing-sm: $sp-4 !default;
79
+ $content-width: 700px !default;
80
+ $nav-width: 264px !default;
81
+ $nav-width-md: 248px !default;
82
+ $nav-width-lg: calc((100% - #{$nav-width + $content-width}) / 2 + (.6 * #{$nav-width})) !default;
83
+ $nav-list-item-height: $sp-6 !default;
84
+ $nav-list-item-height-sm: $sp-8 !default;
85
+ $nav-list-expander-right: true;
86
+ $search-results-width: $content-width - $nav-width !default;
87
+ $transition-duration: 400ms;
88
+
89
+ //
90
+ // Media queries in pixels
91
+ //
92
+
93
+ $media-queries: (
94
+ xs: 320px,
95
+ sm: 500px,
96
+ md: $content-width,
97
+ lg: $content-width + $nav-width,
98
+ xl: 1700px,
99
+ ) !default;
100
+
101
+ //
102
+ // Z-Indices
103
+ //
104
+
105
+ $z-nav: 10;
106
+ $z-nav-content: 20;
107
+ $z-nav-component: 30;
108
+ $z-nav-search: 35;
109
+
110
+ $z-tooltip: 40;
111
+ $z-modal: 50;
112
+
113
+ $z-burger: 100;
@@ -0,0 +1,27 @@
1
+ // Colored button
2
+
3
+ @mixin btn-color($fg, $bg) {
4
+ color: $fg;
5
+ background-color: darken($bg, 2%);
6
+ background-image: linear-gradient(lighten($bg, 5%), darken($bg, 2%));
7
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), 0 4px 10px rgba(0, 0, 0, 0.12);
8
+
9
+ &:hover,
10
+ &.zeroclipboard-is-hover {
11
+ color: $fg;
12
+ background-color: darken($bg, 4%);
13
+ background-image: linear-gradient((lighten($bg, 2%), darken($bg, 4%)));
14
+ }
15
+
16
+ &:active,
17
+ &.selected,
18
+ &.zeroclipboard-is-active {
19
+ background-color: darken($bg, 5%);
20
+ background-image: none;
21
+ box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15);
22
+ }
23
+
24
+ &.selected:hover {
25
+ background-color: darken($bg, 10%);
26
+ }
27
+ }
@@ -0,0 +1,84 @@
1
+ // Media query
2
+
3
+ // 'mobile first' design (as opposed to 'desktop first'): https://css-tricks.com/logic-in-media-queries/
4
+ // Media query mixin
5
+ // Usage:
6
+ // @include mq(md) {
7
+ // ..medium and up styles
8
+ // }
9
+ @mixin mq($name) {
10
+ // Retrieves the value from the key
11
+ $value: map-get($media-queries, $name);
12
+
13
+ // If the key exists in the map
14
+ @if $value != null {
15
+ // Prints a media query based on the value
16
+ @media (min-width: rem($value)) {
17
+ @content;
18
+ }
19
+ } @else {
20
+ @warn "No value could be retrieved from `#{$media-query}`. "
21
+ + "Please make sure it is defined in `$media-queries` map.";
22
+ }
23
+ }
24
+
25
+ // Responsive containers
26
+
27
+ @mixin container {
28
+ padding: $gutter-spacing-sm;
29
+
30
+ @include mq(md) {
31
+ padding: $gutter-spacing;
32
+ }
33
+
34
+ @include mq(lg) {
35
+ padding: $gutter-spacing;
36
+ }
37
+ }
38
+
39
+ @mixin container-narrow {
40
+ max-width: $content-width;
41
+
42
+ // note: the following 'margin-right' are for the
43
+ // infobox-container's consideration.
44
+
45
+ @include mq(lg) {
46
+ margin-right: $nav-width-md;
47
+ }
48
+
49
+ @include mq(xl) {
50
+ margin-right: $nav-width-md x 2;
51
+ }
52
+ }
53
+
54
+ @mixin infobox-container {
55
+ max-height: 100vh;
56
+ width: 100%;
57
+
58
+ @include mq(md) {
59
+ max-width: $nav-width-md;
60
+ float: right;
61
+ }
62
+
63
+ @include mq(lg) {
64
+ max-width: $nav-width-md;
65
+ padding: $sp-2;
66
+
67
+ // from: https://www.bram.us/2020/01/10/smooth-scrolling-sticky-scrollspy-navigation/
68
+ position: sticky;
69
+ position: -webkit-sticky;
70
+ top: $sp-2;
71
+ }
72
+
73
+ @include mq(xl) {
74
+ max-width: $nav-width-md * 1.5;
75
+ padding: $sp-2;
76
+
77
+ // from: https://www.bram.us/2020/01/10/smooth-scrolling-sticky-scrollspy-navigation/
78
+ position: sticky;
79
+ position: -webkit-sticky;
80
+ top: $sp-2;
81
+
82
+ margin-right: $nav-width-md * (3/5);
83
+ }
84
+ }
@@ -0,0 +1,84 @@
1
+ @mixin fs-1 {
2
+ font-size: $font-size-1 !important;
3
+
4
+ @include mq(sm) {
5
+ font-size: $font-size-1-sm !important;
6
+ }
7
+ }
8
+
9
+ @mixin fs-2 {
10
+ font-size: $font-size-2 !important;
11
+
12
+ @include mq(sm) {
13
+ font-size: $font-size-3 !important;
14
+ }
15
+ }
16
+
17
+ @mixin fs-3 {
18
+ font-size: $font-size-3 !important;
19
+
20
+ @include mq(sm) {
21
+ font-size: $font-size-4 !important;
22
+ }
23
+ }
24
+
25
+ @mixin fs-4 {
26
+ font-size: $font-size-4 !important;
27
+
28
+ @include mq(sm) {
29
+ font-size: $font-size-5 !important;
30
+ }
31
+ }
32
+
33
+ @mixin fs-5 {
34
+ font-size: $font-size-5 !important;
35
+
36
+ @include mq(sm) {
37
+ font-size: $font-size-6 !important;
38
+ }
39
+ }
40
+
41
+ @mixin fs-6 {
42
+ font-size: $font-size-6 !important;
43
+
44
+ @include mq(sm) {
45
+ font-size: $font-size-7 !important;
46
+ line-height: $body-heading-line-height;
47
+ }
48
+ }
49
+
50
+ @mixin fs-7 {
51
+ font-size: $font-size-7 !important;
52
+ line-height: $body-heading-line-height;
53
+
54
+ @include mq(sm) {
55
+ font-size: $font-size-8 !important;
56
+ }
57
+ }
58
+
59
+ @mixin fs-8 {
60
+ font-size: $font-size-8 !important;
61
+ line-height: $body-heading-line-height;
62
+
63
+ @include mq(sm) {
64
+ font-size: $font-size-9 !important;
65
+ }
66
+ }
67
+
68
+ @mixin fs-9 {
69
+ font-size: $font-size-9 !important;
70
+ line-height: $body-heading-line-height;
71
+
72
+ @include mq(sm) {
73
+ font-size: $font-size-10 !important;
74
+ }
75
+ }
76
+
77
+ @mixin fs-10 {
78
+ font-size: $font-size-10 !important;
79
+ line-height: $body-heading-line-height;
80
+
81
+ @include mq(sm) {
82
+ font-size: $font-size-10-sm !important;
83
+ }
84
+ }
@@ -0,0 +1,7 @@
1
+ # normalize.scss
2
+
3
+ Normalize.scss is an SCSS copy of [normalize.css](http://necolas.github.io/normalize.css), a customisable CSS file that makes browsers render all elements more consistently and in line with modern standards.
4
+
5
+ The [normalize.scss fork](https://github.com/guerrero/normalize.scss) of [normalize.css](http://necolas.github.io/normalize.css) was archived in 2014, and has not been updated since v0.1.0.
6
+
7
+ [View the normalize.css test file](http://necolas.github.io/normalize.css/latest/test.html)