cyclist 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (148) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE.txt +21 -0
  3. data/README.md +52 -0
  4. data/_includes/footer.html +4 -0
  5. data/_includes/head.html +6 -0
  6. data/_includes/header.html +20 -0
  7. data/_layouts/default.html +13 -0
  8. data/_layouts/home.html +39 -0
  9. data/_layouts/link.html +21 -0
  10. data/_layouts/page.html +15 -0
  11. data/_layouts/post.html +22 -0
  12. data/_sass/crimson.scss +41 -0
  13. data/_sass/fira-mono.scss +14 -0
  14. data/_sass/fonts.scss +4 -0
  15. data/_sass/lato.scss +144 -0
  16. data/_sass/layout.scss +80 -0
  17. data/_sass/playfair-display.scss +83 -0
  18. data/_sass/typography.scss +84 -0
  19. data/assets/fonts/crimson/LICENSE.txt +93 -0
  20. data/assets/fonts/crimson/crimson-bold-webfont.woff +0 -0
  21. data/assets/fonts/crimson/crimson-bold-webfont.woff2 +0 -0
  22. data/assets/fonts/crimson/crimson-bolditalic-webfont.woff +0 -0
  23. data/assets/fonts/crimson/crimson-bolditalic-webfont.woff2 +0 -0
  24. data/assets/fonts/crimson/crimson-italic-webfont.woff +0 -0
  25. data/assets/fonts/crimson/crimson-italic-webfont.woff2 +0 -0
  26. data/assets/fonts/crimson/crimson-roman-webfont.woff +0 -0
  27. data/assets/fonts/crimson/crimson-roman-webfont.woff2 +0 -0
  28. data/assets/fonts/crimson/crimson-semibold-webfont.woff +0 -0
  29. data/assets/fonts/crimson/crimson-semibold-webfont.woff2 +0 -0
  30. data/assets/fonts/crimson/crimson-semibolditalic-webfont.woff +0 -0
  31. data/assets/fonts/crimson/crimson-semibolditalic-webfont.woff2 +0 -0
  32. data/assets/fonts/fira-mono/FiraMono-Bold.woff +0 -0
  33. data/assets/fonts/fira-mono/FiraMono-Bold.woff2 +0 -0
  34. data/assets/fonts/fira-mono/FiraMono-Medium.woff +0 -0
  35. data/assets/fonts/fira-mono/FiraMono-Medium.woff2 +0 -0
  36. data/assets/fonts/fira-mono/FiraMono-Regular.woff +0 -0
  37. data/assets/fonts/fira-mono/FiraMono-Regular.woff2 +0 -0
  38. data/assets/fonts/fira-mono/LICENSE +94 -0
  39. data/assets/fonts/lato/Lato-Black.woff +0 -0
  40. data/assets/fonts/lato/Lato-Black.woff2 +0 -0
  41. data/assets/fonts/lato/Lato-BlackItalic.woff +0 -0
  42. data/assets/fonts/lato/Lato-BlackItalic.woff2 +0 -0
  43. data/assets/fonts/lato/Lato-Bold.woff +0 -0
  44. data/assets/fonts/lato/Lato-Bold.woff2 +0 -0
  45. data/assets/fonts/lato/Lato-BoldItalic.woff +0 -0
  46. data/assets/fonts/lato/Lato-BoldItalic.woff2 +0 -0
  47. data/assets/fonts/lato/Lato-Hairline.woff +0 -0
  48. data/assets/fonts/lato/Lato-Hairline.woff2 +0 -0
  49. data/assets/fonts/lato/Lato-HairlineItalic.woff +0 -0
  50. data/assets/fonts/lato/Lato-HairlineItalic.woff2 +0 -0
  51. data/assets/fonts/lato/Lato-Heavy.woff +0 -0
  52. data/assets/fonts/lato/Lato-Heavy.woff2 +0 -0
  53. data/assets/fonts/lato/Lato-HeavyItalic.woff +0 -0
  54. data/assets/fonts/lato/Lato-HeavyItalic.woff2 +0 -0
  55. data/assets/fonts/lato/Lato-Italic.woff +0 -0
  56. data/assets/fonts/lato/Lato-Italic.woff2 +0 -0
  57. data/assets/fonts/lato/Lato-Light.woff +0 -0
  58. data/assets/fonts/lato/Lato-Light.woff2 +0 -0
  59. data/assets/fonts/lato/Lato-LightItalic.woff +0 -0
  60. data/assets/fonts/lato/Lato-LightItalic.woff2 +0 -0
  61. data/assets/fonts/lato/Lato-Medium.woff +0 -0
  62. data/assets/fonts/lato/Lato-Medium.woff2 +0 -0
  63. data/assets/fonts/lato/Lato-MediumItalic.woff +0 -0
  64. data/assets/fonts/lato/Lato-MediumItalic.woff2 +0 -0
  65. data/assets/fonts/lato/Lato-Regular.woff +0 -0
  66. data/assets/fonts/lato/Lato-Regular.woff2 +0 -0
  67. data/assets/fonts/lato/Lato-Semibold.woff +0 -0
  68. data/assets/fonts/lato/Lato-Semibold.woff2 +0 -0
  69. data/assets/fonts/lato/Lato-SemiboldItalic.woff +0 -0
  70. data/assets/fonts/lato/Lato-SemiboldItalic.woff2 +0 -0
  71. data/assets/fonts/lato/Lato-Thin.woff +0 -0
  72. data/assets/fonts/lato/Lato-Thin.woff2 +0 -0
  73. data/assets/fonts/lato/Lato-ThinItalic.woff +0 -0
  74. data/assets/fonts/lato/Lato-ThinItalic.woff2 +0 -0
  75. data/assets/fonts/lato/OFL.txt +94 -0
  76. data/assets/fonts/playfair-display/OFL.txt +93 -0
  77. data/assets/fonts/playfair-display/PlayfairDisplay-Black.woff +0 -0
  78. data/assets/fonts/playfair-display/PlayfairDisplay-Black.woff2 +0 -0
  79. data/assets/fonts/playfair-display/PlayfairDisplay-BlackItalic.woff +0 -0
  80. data/assets/fonts/playfair-display/PlayfairDisplay-BlackItalic.woff2 +0 -0
  81. data/assets/fonts/playfair-display/PlayfairDisplay-Bold.woff +0 -0
  82. data/assets/fonts/playfair-display/PlayfairDisplay-Bold.woff2 +0 -0
  83. data/assets/fonts/playfair-display/PlayfairDisplay-BoldItalic.woff +0 -0
  84. data/assets/fonts/playfair-display/PlayfairDisplay-BoldItalic.woff2 +0 -0
  85. data/assets/fonts/playfair-display/PlayfairDisplay-Italic.woff +0 -0
  86. data/assets/fonts/playfair-display/PlayfairDisplay-Italic.woff2 +0 -0
  87. data/assets/fonts/playfair-display/PlayfairDisplay-Regular.woff +0 -0
  88. data/assets/fonts/playfair-display/PlayfairDisplay-Regular.woff2 +0 -0
  89. data/assets/fonts/playfair-display/PlayfairDisplaySC-Black.woff +0 -0
  90. data/assets/fonts/playfair-display/PlayfairDisplaySC-Black.woff2 +0 -0
  91. data/assets/fonts/playfair-display/PlayfairDisplaySC-BlackItalic.woff +0 -0
  92. data/assets/fonts/playfair-display/PlayfairDisplaySC-BlackItalic.woff2 +0 -0
  93. data/assets/fonts/playfair-display/PlayfairDisplaySC-Bold.woff +0 -0
  94. data/assets/fonts/playfair-display/PlayfairDisplaySC-Bold.woff2 +0 -0
  95. data/assets/fonts/playfair-display/PlayfairDisplaySC-BoldItalic.woff +0 -0
  96. data/assets/fonts/playfair-display/PlayfairDisplaySC-BoldItalic.woff2 +0 -0
  97. data/assets/fonts/playfair-display/PlayfairDisplaySC-Italic.woff +0 -0
  98. data/assets/fonts/playfair-display/PlayfairDisplaySC-Italic.woff2 +0 -0
  99. data/assets/fonts/playfair-display/PlayfairDisplaySC-Regular.woff +0 -0
  100. data/assets/fonts/playfair-display/PlayfairDisplaySC-Regular.woff2 +0 -0
  101. data/assets/main.scss +11 -0
  102. data/vendor/raster/.gitignore +2 -0
  103. data/vendor/raster/README.md +173 -0
  104. data/vendor/raster/dist/raster.css +131 -0
  105. data/vendor/raster/dist/raster.js +164 -0
  106. data/vendor/raster/dist/raster.scss +5 -0
  107. data/vendor/raster/dist/sass/_guidelines.scss +33 -0
  108. data/vendor/raster/dist/sass/_layout.scss +9 -0
  109. data/vendor/raster/dist/sass/_reset.scss +51 -0
  110. data/vendor/raster/dist/sass/_setup.scss +25 -0
  111. data/vendor/raster/dist/sass/_typography.scss +75 -0
  112. data/vendor/raster/examples/build/css/typography.css +139 -0
  113. data/vendor/raster/examples/src/sass/typography.scss +10 -0
  114. data/vendor/raster/examples/typography.html +117 -0
  115. data/vendor/raster/gulpfile.js +94 -0
  116. data/vendor/raster/package.json +20 -0
  117. data/vendor/raster/test/build/css/test-default.css +229 -0
  118. data/vendor/raster/test/build/css/test-em.css +232 -0
  119. data/vendor/raster/test/build/css/test-percent.css +232 -0
  120. data/vendor/raster/test/build/css/test-pixel.css +232 -0
  121. data/vendor/raster/test/build/css/test-rem.css +232 -0
  122. data/vendor/raster/test/build/html/test-default.html +67 -0
  123. data/vendor/raster/test/build/html/test-em.html +67 -0
  124. data/vendor/raster/test/build/html/test-percent.html +67 -0
  125. data/vendor/raster/test/build/html/test-pixel.html +67 -0
  126. data/vendor/raster/test/build/html/test-rem.html +67 -0
  127. data/vendor/raster/test/lib/js/test-helper.js +131 -0
  128. data/vendor/raster/test/lib/tests/test-custom.js +20 -0
  129. data/vendor/raster/test/lib/tests/test-default.js +34 -0
  130. data/vendor/raster/test/scripts/run_tests.js +20 -0
  131. data/vendor/raster/test/src/html/mocha.html +6 -0
  132. data/vendor/raster/test/src/jade/includes/baseline.jade +12 -0
  133. data/vendor/raster/test/src/jade/includes/content.jade +2 -0
  134. data/vendor/raster/test/src/jade/includes/head.jade +11 -0
  135. data/vendor/raster/test/src/jade/includes/layout.jade +26 -0
  136. data/vendor/raster/test/src/jade/includes/mocha.jade +1 -0
  137. data/vendor/raster/test/src/jade/test-default.jade +10 -0
  138. data/vendor/raster/test/src/jade/test-em.jade +10 -0
  139. data/vendor/raster/test/src/jade/test-percent.jade +10 -0
  140. data/vendor/raster/test/src/jade/test-pixel.jade +10 -0
  141. data/vendor/raster/test/src/jade/test-rem.jade +10 -0
  142. data/vendor/raster/test/src/sass/_layout.scss +104 -0
  143. data/vendor/raster/test/src/sass/test-default.scss +2 -0
  144. data/vendor/raster/test/src/sass/test-em.scss +5 -0
  145. data/vendor/raster/test/src/sass/test-percent.scss +5 -0
  146. data/vendor/raster/test/src/sass/test-pixel.scss +5 -0
  147. data/vendor/raster/test/src/sass/test-rem.scss +5 -0
  148. metadata +232 -0
@@ -0,0 +1,131 @@
1
+ /* Structure */
2
+ html, body, div, span {
3
+ margin: 0;
4
+ padding: 0;
5
+ border: 0;
6
+ outline: 0;
7
+ font-size: 100%;
8
+ vertical-align: baseline;
9
+ background: transparent; }
10
+
11
+ /* Text */
12
+ h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, ol, ul, li, strong, em {
13
+ margin: 0;
14
+ padding: 0;
15
+ border: 0;
16
+ outline: 0;
17
+ font-size: 100%;
18
+ vertical-align: baseline;
19
+ background: transparent; }
20
+
21
+ /* Other */
22
+ applet, object, iframe, abbr, acronym, address, big, cite, code, del, dfn,
23
+ font, img, ins, kbd, q, s, samp, small, strike, sub, sup, tt, var, b, u, i,
24
+ center, dl, dt, dd, fieldset, form, label, legend, table, caption, tbody,
25
+ tfoot, thead, tr, th, td {
26
+ margin: 0;
27
+ padding: 0;
28
+ border: 0;
29
+ outline: 0;
30
+ font-size: 100%;
31
+ vertical-align: baseline;
32
+ background: transparent; }
33
+
34
+ /* Misc */
35
+ :focus {
36
+ outline: 0; }
37
+
38
+ table {
39
+ border-collapse: separate;
40
+ border-spacing: 0; }
41
+
42
+ caption, th, td {
43
+ text-align: left;
44
+ font-weight: normal; }
45
+
46
+ blockquote:before, blockquote:after, q:before, q:after {
47
+ content: ""; }
48
+
49
+ blockquote, q {
50
+ quotes: "" ""; }
51
+
52
+ body {
53
+ line-height: 1.25rem; }
54
+
55
+ h1 {
56
+ font-size: calc(1em * (36 / 12));
57
+ margin-bottom: 1.25rem;
58
+ line-height: calc(3 * 1.25rem); }
59
+
60
+ h2 {
61
+ font-size: calc(1em * (24 / 12));
62
+ margin-bottom: 1.25rem;
63
+ line-height: calc(2 * 1.25rem); }
64
+
65
+ h3 {
66
+ font-size: calc(1em * (21 / 12));
67
+ margin-bottom: 1.25rem;
68
+ line-height: calc(2 * 1.25rem); }
69
+
70
+ h4 {
71
+ font-size: calc(1em * (18 / 12));
72
+ margin-bottom: 1.25rem;
73
+ line-height: calc(2 * 1.25rem); }
74
+
75
+ h5 {
76
+ font-size: calc(1em * (14 / 12));
77
+ margin-bottom: 1.25rem;
78
+ line-height: calc(2 * 1.25rem); }
79
+
80
+ h6 {
81
+ font-size: calc(1em * (12 / 12));
82
+ margin-bottom: 1.25rem;
83
+ line-height: calc(1 * 1.25rem); }
84
+
85
+ p,
86
+ ul,
87
+ ol {
88
+ margin-bottom: 1.25rem; }
89
+
90
+ ul ol,
91
+ ol ol,
92
+ ul ul,
93
+ ol ul {
94
+ margin-bottom: 0; }
95
+
96
+ ul {
97
+ list-style-type: disc;
98
+ margin-left: 2rem; }
99
+
100
+ ol {
101
+ list-style-type: decimal;
102
+ margin-left: 2rem; }
103
+
104
+ .raster-guidelines {
105
+ display: -webkit-flex;
106
+ display: flex;
107
+ position: absolute;
108
+ left: 0;
109
+ top: 0;
110
+ bottom: 0;
111
+ right: 0; }
112
+
113
+ .raster-guidelines > div.raster-column {
114
+ display: -webkit-flex;
115
+ display: flex;
116
+ background-color: rgba(148, 235, 255, 0.25);
117
+ margin-right: 1rem;
118
+ -webkit-flex: 0 0 9rem;
119
+ flex: 0 0 9rem; }
120
+
121
+ .raster-guidelines > div.raster-column:last-child {
122
+ margin-right: 0; }
123
+
124
+ .raster-column > div.raster-unit {
125
+ background-color: rgba(148, 235, 255, 0.25);
126
+ margin-right: 1rem;
127
+ -webkit-flex: 0 0 4rem;
128
+ flex: 0 0 4rem; }
129
+
130
+ .raster-column > div.raster-unit:last-child {
131
+ margin-right: 0; }
@@ -0,0 +1,164 @@
1
+ var Raster = {
2
+ baselineHelper: {
3
+ SHOW_BASELINE_CLASS_NAME: 'raster-show-baseline',
4
+ BASELINE_CLASS_NAME: 'raster-baseline',
5
+ setup: function() {
6
+ var showBaselineElements = document.getElementsByClassName(this.SHOW_BASELINE_CLASS_NAME);
7
+ for (var i = 0; i < showBaselineElements.length; i++) {
8
+ var baselineElement = showBaselineElements[i];
9
+ var baselineContainer = this.containerForElement(baselineElement);
10
+ this.showBaseline(baselineContainer);
11
+ }
12
+ },
13
+
14
+ showBaseline: function(container) {
15
+ container.style.height = "auto";
16
+ container.style.width = "100%";
17
+
18
+ var containerHeightInt = container.clientHeight;
19
+ var parentHeightInt = container.parentNode.clientHeight;
20
+
21
+ var counter = 0; // Use a counter to limit to 30 children to prevent infinite loops
22
+ while (containerHeightInt < parentHeightInt && counter < 200) {
23
+ // Add an element to contain the baseline
24
+ var baselineElement = document.createElement("p");
25
+ this.resetCSS(baselineElement);
26
+ baselineElement.appendChild(document.createTextNode('\u00A0'));
27
+
28
+ // Draw the baseline on a canvas element
29
+ var canvas = document.createElement("canvas");
30
+ baselineElement.style.position = "relative";
31
+ canvas.setAttribute("width", 1);
32
+ canvas.setAttribute("height", 1);
33
+ canvas.style.position = "absolute";
34
+ canvas.style.left = "0";
35
+ canvas.style.bottom = "0";
36
+ canvas.style.width = "100%";
37
+ canvas.style.height = "1px";
38
+ if (canvas && canvas.getContext) {
39
+ context = canvas.getContext('2d');
40
+ context.strokeStyle = "rgba(148, 235, 255, 0.5)";
41
+ context.lineWidth = 1;
42
+ context.strokeRect(0, 0, 1, 1);
43
+ }
44
+ baselineElement.appendChild(canvas);
45
+ container.appendChild(baselineElement);
46
+ containerHeightInt = container.clientHeight;
47
+ counter++;
48
+ }
49
+ },
50
+
51
+ // Helpers
52
+
53
+ containerForElement: function(element) {
54
+ var container = document.createElement("div");
55
+ element.appendChild(container);
56
+ this.makeContainer(container);
57
+ return container;
58
+ },
59
+
60
+ makeContainer: function(element) {
61
+ var parent = element.parentNode;
62
+ parent.style.position = "relative";
63
+
64
+ var height = parent.offsetHeight;
65
+ var width = parent.offsetWidth;
66
+
67
+ element.classList.add(this.BASELINE_CLASS_NAME);
68
+ element.setAttribute("width", width);
69
+ element.setAttribute("height", height);
70
+ element.style.width = width + "px";
71
+ element.style.height = height + "px";
72
+ element.style.position = "absolute";
73
+ element.style.left = "0";
74
+ element.style.top = "0";
75
+ },
76
+
77
+ resetCSS: function(element) {
78
+ element.style.border = 0;
79
+ element.style.margin = "0";
80
+ element.style.padding = "0";
81
+ element.style.outline = "0";
82
+ element.style.fontSize = "100%";
83
+ element.style.verticalAlign = "baseline";
84
+ element.style.background = "transparent";
85
+ }
86
+ },
87
+
88
+ guidelineHelper: {
89
+ SHOW_GUIDELINES_CLASS_NAME: 'raster-show-guidelines',
90
+ GUIDELINES_CLASS_NAME: 'raster-guidelines',
91
+ setup: function() {
92
+ var showGuidelinesElements = document.getElementsByClassName(this.SHOW_GUIDELINES_CLASS_NAME);
93
+ for (var j = 0; j < showGuidelinesElements.length; j++) {
94
+ var guidelinesElement = showGuidelinesElements[j];
95
+ var guidelinesContainer = this.containerForElement(guidelinesElement);
96
+ this.showGuidelines(guidelinesContainer);
97
+ }
98
+ },
99
+ showGuidelines: function(container) {
100
+ this.fillContainerWithClassName(container, 'raster-column');
101
+ var rasterColumns = container.getElementsByClassName('raster-column');
102
+ for (var i = 0; i < rasterColumns.length; i++) {
103
+ var rasterColmun = rasterColumns[i];
104
+ this.fillContainerWithClassName(rasterColmun, 'raster-unit');
105
+ }
106
+ },
107
+ fillContainerWithClassName: function(container, className) {
108
+ var computedWidth = 0;
109
+ var containerWidth = container.clientWidth;
110
+ var counter = 0; // Use a counter to limit to 30 children to prevent infinite loops
111
+ while (computedWidth < containerWidth && counter < 30) {
112
+ var element = document.createElement("div");
113
+ element.classList.add(className);
114
+ container.appendChild(element);
115
+ computedWidth = this.widthForChildElementsWithClassName(container, className);
116
+ counter++;
117
+ }
118
+ },
119
+
120
+ widthForChildElementsWithClassName: function(parent, className) {
121
+ var nodeList = parent.getElementsByClassName(className);
122
+ var calculateWidth = function(initial, element) {
123
+ var style = window.getComputedStyle(element);
124
+ var marginRight = parseInt(style.marginRight, 10);
125
+ var width = element.clientWidth;
126
+ var totalWidth = width + marginRight;
127
+ return initial + totalWidth;
128
+ };
129
+ var width = Array.prototype.reduce.call(nodeList, calculateWidth, 0);
130
+ return width;
131
+ },
132
+ containerForElement: function(element) {
133
+ var container = document.createElement("div");
134
+ element.appendChild(container);
135
+ container.classList.add(this.GUIDELINES_CLASS_NAME);
136
+ var height = element.offsetHeight;
137
+ container.setAttribute("height", height);
138
+ container.style.height = height + "px";
139
+ element.style.position = "relative";
140
+ return container;
141
+ }
142
+ },
143
+
144
+ redraw: function() {
145
+ var classNames = [this.baselineHelper.BASELINE_CLASS_NAME, this.guidelineHelper.GUIDELINES_CLASS_NAME];
146
+ for (var i = 0; i < classNames.length; i++) {
147
+ var className = classNames[i];
148
+ var nodeList = document.getElementsByClassName(className);
149
+ for (var j = nodeList.length - 1; j >= 0; --j) {
150
+ var element = nodeList[j];
151
+ element.parentNode.removeChild(element);
152
+ }
153
+ }
154
+
155
+ this.setup();
156
+ },
157
+
158
+ setup: function() {
159
+ this.baselineHelper.setup();
160
+ this.guidelineHelper.setup();
161
+ }
162
+ };
163
+
164
+ window.addEventListener('load', function () { Raster.setup(); }, false);
@@ -0,0 +1,5 @@
1
+ @import "sass/reset";
2
+ @import "sass/setup";
3
+ @import "sass/typography";
4
+ @import "sass/guidelines";
5
+ @import "sass/layout";
@@ -0,0 +1,33 @@
1
+ .raster-guidelines {
2
+ display: -webkit-flex;
3
+ display: flex;
4
+ position: absolute;
5
+ left: 0;
6
+ top: 0;
7
+ bottom: 0;
8
+ right: 0;
9
+ }
10
+
11
+ .raster-guidelines > div.raster-column {
12
+ display: -webkit-flex;
13
+ display: flex;
14
+ background-color: rgba(148, 235, 255, .25);
15
+ margin-right: $gutter-width;
16
+ -webkit-flex: 0 0 $column-width;
17
+ flex: 0 0 $column-width;
18
+ }
19
+
20
+ .raster-guidelines > div.raster-column:last-child {
21
+ margin-right: 0;
22
+ }
23
+
24
+ .raster-column > div.raster-unit {
25
+ background-color: rgba(148, 235, 255, .25);
26
+ margin-right: $gutter-width;
27
+ -webkit-flex: 0 0 $unit-width;
28
+ flex: 0 0 $unit-width;
29
+ }
30
+
31
+ .raster-column > div.raster-unit:last-child {
32
+ margin-right: 0;
33
+ }
@@ -0,0 +1,9 @@
1
+ @function columns-width($num-columns) {
2
+ $width: $num-columns * ($column-width + $gutter-width) - $gutter-width;
3
+ @return max($width, 0);
4
+ }
5
+
6
+ @function units-width($num-units) {
7
+ $width: $num-units * ($unit-width + $gutter-width) - $gutter-width;
8
+ @return max($width, 0);
9
+ }
@@ -0,0 +1,51 @@
1
+ /* Structure */
2
+ html, body, div, span {
3
+ margin: 0;
4
+ padding: 0;
5
+ border: 0;
6
+ outline: 0;
7
+ font-size: 100%;
8
+ vertical-align: baseline;
9
+ background: transparent;
10
+ }
11
+ /* Text */
12
+ h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, ol, ul, li, strong, em {
13
+ margin: 0;
14
+ padding: 0;
15
+ border: 0;
16
+ outline: 0;
17
+ font-size: 100%;
18
+ vertical-align: baseline;
19
+ background: transparent;
20
+ }
21
+ /* Other */
22
+ applet, object, iframe, abbr, acronym, address, big, cite, code, del, dfn,
23
+ font, img, ins, kbd, q, s, samp, small, strike, sub, sup, tt, var, b, u, i,
24
+ center, dl, dt, dd, fieldset, form, label, legend, table, caption, tbody,
25
+ tfoot, thead, tr, th, td {
26
+ margin: 0;
27
+ padding: 0;
28
+ border: 0;
29
+ outline: 0;
30
+ font-size: 100%;
31
+ vertical-align: baseline;
32
+ background: transparent;
33
+ }
34
+ /* Misc */
35
+ :focus {
36
+ outline: 0;
37
+ }
38
+ table {
39
+ border-collapse: separate;
40
+ border-spacing: 0;
41
+ }
42
+ caption, th, td {
43
+ text-align: left;
44
+ font-weight: normal;
45
+ }
46
+ blockquote:before, blockquote:after, q:before, q:after {
47
+ content: "";
48
+ }
49
+ blockquote, q {
50
+ quotes: "" "";
51
+ }
@@ -0,0 +1,25 @@
1
+ // Line Height & Leading Variables
2
+
3
+ $font-size: false !default;
4
+ $line-height: 1.25rem !default;
5
+ $leading-height: $line-height !default;
6
+
7
+ @if unit($line-height) == "%" {
8
+ $leading-height: $line-height / 100% * 1rem;
9
+ } @else if unit($line-height) == "em" {
10
+ $leading-height: $line-height / 1em * 1rem;
11
+ }
12
+
13
+ // Grid Variables
14
+
15
+ $gutter-width: 1rem !default;
16
+ $num-indent-gutters: 2 !default;
17
+ $num-unit-gutters: 4 !default;
18
+ $num-column-units: 2 !default;
19
+
20
+ // Calculation Variables
21
+
22
+ $indent-width: $gutter-width * $num-indent-gutters !default;
23
+ $unit-width: $gutter-width * $num-unit-gutters !default;
24
+ $column-width: $unit-width * $num-column-units + $gutter-width * ($num-column-units - 1) !default;
25
+
@@ -0,0 +1,75 @@
1
+ @if $font-size {
2
+ html {
3
+ font-size: $font-size;
4
+ }
5
+ }
6
+
7
+ body {
8
+ line-height: $line-height;
9
+ }
10
+
11
+ @mixin header($values) {
12
+ $numerator: nth($values, 1);
13
+ $denumerator: nth($values, 2);
14
+
15
+ font-size: calc(1em * (#{$numerator} / #{$denumerator}));
16
+ margin-bottom: $leading-height;
17
+
18
+ $leading-multiplier: ceil($numerator / $denumerator);
19
+
20
+ line-height: calc(#{$leading-multiplier} * #{$leading-height});
21
+ }
22
+
23
+ $double-great-primer: 36, 12;
24
+ $double-pica: 24, 12;
25
+ $double-small-pica: 21, 12;
26
+ $great-primer: 18, 12;
27
+ $english: 14, 12;
28
+ $pica: 12, 12;
29
+
30
+ h1 {
31
+ @include header($double-great-primer);
32
+ }
33
+
34
+ h2 {
35
+ @include header($double-pica);
36
+ }
37
+
38
+ h3 {
39
+ @include header($double-small-pica);
40
+ }
41
+
42
+ h4 {
43
+ @include header($great-primer);
44
+ }
45
+
46
+ h5 {
47
+ @include header($english);
48
+ }
49
+
50
+ h6 {
51
+ @include header($pica);
52
+ }
53
+
54
+ p,
55
+ ul,
56
+ ol {
57
+ margin-bottom: $leading-height;
58
+ }
59
+
60
+ ul ol,
61
+ ol ol,
62
+ ul ul,
63
+ ol ul {
64
+ margin-bottom: 0;
65
+ }
66
+
67
+ ul {
68
+ list-style-type: disc;
69
+ margin-left: $indent-width;
70
+ }
71
+
72
+ ol {
73
+ list-style-type: decimal;
74
+ margin-left: $indent-width;
75
+ }