classic-jekyll-theme 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE.txt +23 -0
  3. data/README.md +99 -0
  4. data/_includes/disqus_comments.html +25 -0
  5. data/_includes/footer.html +5 -0
  6. data/_includes/google-analytics.html +11 -0
  7. data/_includes/head.html +26 -0
  8. data/_includes/navbanner.html +149 -0
  9. data/_includes/secondary-column.html +12 -0
  10. data/_includes/tertiary-column.html +4 -0
  11. data/_includes/widgets/browser-info.html +13 -0
  12. data/_includes/widgets/cookie-consent.html +7 -0
  13. data/_includes/widgets/recent-posts.html +8 -0
  14. data/_includes/widgets/social-media-res/icon-github.html +1 -0
  15. data/_includes/widgets/social-media-res/icon-github.svg +1 -0
  16. data/_includes/widgets/social-media-res/icon-twitter.html +1 -0
  17. data/_includes/widgets/social-media-res/icon-twitter.svg +1 -0
  18. data/_includes/widgets/social-media.html +9 -0
  19. data/_includes/widgets/subscribe.html +4 -0
  20. data/_layouts/category-page.html +55 -0
  21. data/_layouts/default.html +60 -0
  22. data/_layouts/home.html +21 -0
  23. data/_layouts/page.html +18 -0
  24. data/_layouts/post.html +18 -0
  25. data/_sass/classic-jekyll-theme.scss +115 -0
  26. data/_sass/classic/_base.scss +176 -0
  27. data/_sass/classic/_formatting.scss +189 -0
  28. data/_sass/classic/_layout.scss +306 -0
  29. data/_sass/classic/_page.scss +12 -0
  30. data/_sass/classic/_post.scss +10 -0
  31. data/_sass/classic/_syntax-highlighting.scss +71 -0
  32. data/assets/img/medium-left.png +0 -0
  33. data/assets/img/medium-right.png +0 -0
  34. data/assets/img/narrow.png +0 -0
  35. data/assets/img/screenshot-half.png +0 -0
  36. data/assets/img/wide.png +0 -0
  37. data/assets/js/cookieconsent.min.js +1 -0
  38. data/assets/main.scss +9 -0
  39. metadata +39 -2
@@ -0,0 +1,189 @@
1
+ // The distinction between "layout" and "formatting" is as follows: If the resulting CCS affects the placement of and/or visibility of multiple items, it is placed in "layout". If the CSS affects only the appearance of an item, then it appears here. Of course the appearance may affect the layout, so there is no hard distinction.
2
+
3
+ // Formatting for the navbanner panel elements.
4
+ .navbanner-panel {
5
+
6
+ // Formatting for the banner area
7
+ .navbanner-title, .navbanner-label {
8
+
9
+ // Color for the title itself
10
+ p { color: $site-title-color; }
11
+
12
+ // Color for the menu symbol (only visible on narrow and medium sized layouts)
13
+ label p { color: $menu-symbol-color; }
14
+
15
+ // Size of the title and menu symbol depends on the layout in effect.
16
+ @include narrow-layout {
17
+ font-size: $narrow-site-title-font-size;
18
+ label { padding: 0 $hspacing-unit; } // Give the menu label more area to make it easier to tap.
19
+ }
20
+ @include medium-layout {
21
+ font-size: $medium-site-title-font-size;
22
+ label { padding: 0 $hspacing-unit; } // Give the menu label more area to make it easier to tap.
23
+ }
24
+ @include wide-layout {
25
+ font-size: $wide-site-title-font-size;
26
+ }
27
+ }
28
+
29
+ // Formating for the divider between the banner and menu.
30
+ .nav-top-divider {
31
+ border-top: 2px solid $navbanner-menu-dividers-color;
32
+ display: $navbanner-menu-dividers-display;
33
+ }
34
+
35
+ // Formatting for the menu (navigation) area
36
+ .navbanner-menu {
37
+
38
+ // Lists are used for the menu's. No spacing for the top level list and no item markers. There will be an item marker for the narrow layout but that marker is state-dependent and set via a content property.
39
+ ul { margin: 0; list-style-type: none; }
40
+
41
+ // Set the color for the menu items
42
+ .menu-item-separator, .menu-item-symbol, .menu-item-title {
43
+ color: $menu-item-font-color;
44
+ a { color: $menu-item-font-color; }
45
+ a:hover { color: $menu-item-hover-color; }
46
+ }
47
+
48
+ // Set the color for the submenu items
49
+ .menu-subitem-symbol, .menu-subitem-title {
50
+ color: $menu-subitem-font-color;
51
+ a { color: $menu-subitem-font-color; }
52
+ a:hover { color: $menu-subitem-hover-color; }
53
+ }
54
+
55
+ // Set the font size for the menu items
56
+ .menu-item-title { font-size: $menu-item-font-size; }
57
+ .menu-subitem-title { font-size: $menu-subitem-font-size; }
58
+
59
+ // The sub menu items are displayed in a box, make sure the text does not start at the box edge.
60
+ .menu-subitem {
61
+ padding-left: $hspacing-unit / 2;
62
+ padding-right: $hspacing-unit / 2;
63
+ }
64
+
65
+ // Specifics for the narrow sized layout
66
+ @include narrow-layout {
67
+
68
+ // Fix the height of the items and subitems to make tapping easier
69
+ // Use a background color to set off the menu from the content
70
+ .menu-item, .menu-subitem {
71
+ border-top: 1px solid $background-color;
72
+ border-bottom: 1px solid $background-color;
73
+ }
74
+ .menu-item {
75
+ p { line-height: $narrow-menu-item-height; margin-bottom: 0; }
76
+ background-color: $narrow-menu-item-background-color;
77
+ }
78
+ .menu-subitem {
79
+ p { line-height: $narrow-menu-subitem-height; margin-bottom: 0; }
80
+ background-color: $narrow-menu-subitem-background-color;
81
+ }
82
+
83
+ // Move the disclosure symbol a little bit from the edge of the item
84
+ .menu-item-symbol p { margin-left: $hspacing-unit; }
85
+
86
+ // Add some left-margin for the title of the subitems
87
+ .menu-subitem-title { margin-left: $hspacing-unit; }
88
+ }
89
+
90
+ // Specifics for the medium sized layout
91
+ @include medium-layout {
92
+
93
+ // Keep the submenu tight
94
+ .menu-subitem p { margin-bottom: 0; }
95
+
96
+ // Formatting of the sub-menu items
97
+ ul li ul {
98
+ margin-left: 2 * $hspacing-unit; // The sub-menu should appear slightly to the right
99
+ background-color: $medium-menu-subitem-background-color; // Set-of a little bit from the background
100
+ box-shadow: 0 0.5em 1em 0 rgba(0,0,0,0.2); // Create a shadow box
101
+ }
102
+ }
103
+
104
+ // Specifics for the wide sized layout
105
+ @include wide-layout {
106
+
107
+ // Keep the submenu tight
108
+ .menu-subitem p { margin-bottom: 0; }
109
+
110
+ // Formatting of the sub-menu items
111
+ ul li ul {
112
+ margin-left: 2 * $hspacing-unit; // The sub-menu should appear slightly to the right
113
+ background-color: $wide-menu-subitem-background-color; // Set-of a little bit from the background
114
+ box-shadow: 0 0.5em 1em 0 rgba(0,0,0,0.2); // Create a shadow box
115
+ }
116
+ }
117
+ }
118
+
119
+ // Formatting for the divder between menu and column panel.
120
+ .nav-bottom-divider {
121
+ border-top: 2px solid $navbanner-menu-dividers-color;
122
+ display: $navbanner-menu-dividers-display;
123
+ }
124
+ }
125
+
126
+ // Defines the insets used in the columns and footer-panel. I.e the empty spaces between text and separators lines.
127
+ .insets {
128
+ padding-top: $vspacing-unit;
129
+ padding-right: $hspacing-unit;
130
+ padding-bottom: $vspacing-unit;
131
+ padding-left: $hspacing-unit;
132
+ }
133
+ .secondary-column { @extend .insets; }
134
+ .primary-column { @extend .insets; }
135
+ .tertiary-column { @extend .insets; }
136
+ .footer-panel { @extend .insets; }
137
+
138
+ // Set the background colors for the panels & columns
139
+ .navbanner-panel { background-color: $navbanner-background-color; }
140
+ .navbanner-panel .navbanner-menu { background-color: $navbanner-menubar-background-color; }
141
+ .primary-column { background-color: $primary-column-background-color; }
142
+ .secondary-column { background-color: $secondary-column-background-color; }
143
+ .tertiary-column { background-color: $tertiary-column-background-color; }
144
+ .footer-panel { background-color: $footer-background-color; }
145
+
146
+ // This is the element between the column panel and the footer.
147
+ .footer-divider {
148
+ display: $footer-divider-display;
149
+ width: 100%;
150
+ margin: 0;
151
+ border-bottom: 1px solid $footer-divider-color;
152
+ }
153
+
154
+ // Formatting for the footer.
155
+ .footer-panel {
156
+ font-size: $small-font-size;
157
+ text-align: center;
158
+ }
159
+
160
+ // Formatting for the widgets. Note that widgets are small.
161
+ .widget {
162
+ font-size: $small-small-font-size;
163
+ h1 { font-size: $small-font-size; font-weight: bold; }
164
+ h1, h2, h3, h4, h5, h6, p, blockquote, pre, ul, ol, dl, figure { margin-bottom: 0; }
165
+ }
166
+
167
+ // The divider between widgets, a thin horizontal line.
168
+ .widget-divider {
169
+ margin-top: $vspacing-unit / 2;
170
+ margin-left: 0;
171
+ margin-bottom: $vspacing-unit / 2;
172
+ margin-right: 0;
173
+ border-bottom: 1px solid $widget-divider-color;
174
+ display: $widget-divider-display;
175
+ }
176
+
177
+ // Divider between primary, secondary and tertiary
178
+ .secondary-widget-divider { @extend .widget-divider; }
179
+ .tertiary-widget-divider { @extend .widget-divider; }
180
+
181
+ // The column dividers
182
+ .secondary-divider, .tertiary-divider {
183
+ margin-top: $vspacing-unit;
184
+ margin-left: 0;
185
+ margin-bottom: $vspacing-unit;
186
+ margin-right: 0;
187
+ border-right: 1px solid $column-divider-color;
188
+ display: $column-divider-display;
189
+ }
@@ -0,0 +1,306 @@
1
+ // The distinction between "layout" and "formatting" is as follows: If the resulting CCS affects the placement of and/or visibility of multiple items, it is done here. If the CSS affects only the appearance of an item, then it appears in "formatting". Of course the appearance may affect the layout, so there is no hard distinction.
2
+
3
+
4
+ @mixin narrow-layout {
5
+ @media screen and (min-width: 0px) and (max-width: $narrow-max-width) {
6
+ @content
7
+ }
8
+ }
9
+
10
+ @mixin medium-layout {
11
+ @media screen and (min-width: $medium-min-width) and (max-width: $medium-max-width) {
12
+ @content
13
+ }
14
+ }
15
+
16
+ @mixin wide-layout {
17
+ @media screen and (min-width: $wide-min-width) {
18
+ @content
19
+ }
20
+ }
21
+
22
+ // Layout top-to-bottom for the top level
23
+ // This arranges the navbanner-panel, column-panel, footer-separator and footer-panel (from "default.html")
24
+ .body-panel {
25
+ display: flex;
26
+ flex-direction: column;
27
+ justify-content: flex-start;
28
+ }
29
+
30
+ // The navigation & banner
31
+ // Note: these two have to be together to enable a RDW design with an input/label in the banner area.
32
+ .navbanner-panel {
33
+
34
+ // Use the flex layout rules.
35
+ display: flex;
36
+ flex-direction: row;
37
+ flex-wrap: wrap;
38
+ justify-content: flex-start;
39
+
40
+ // The title is always visible, though the size of the title depends on the width of the window.
41
+ .navbanner-title {
42
+
43
+ // The title area should take up all space not used by the menu label.
44
+ flex-grow: 1;
45
+
46
+ // Center the title.
47
+ display: flex;
48
+ justify-content: center;
49
+ }
50
+
51
+ // The menu label is only visible in narrow and medium layout.
52
+ .navbanner-label {
53
+
54
+ // Never grow the menu label (symbol)
55
+ flex-grow: 0;
56
+
57
+ // The menu label (symbol) should be centered
58
+ display: flex;
59
+ justify-content: center;
60
+
61
+ // The label is used as checkbox-label, it should show a pointer when the mouse is above it.
62
+ label {
63
+ p:after { content: $menu-symbol-code; } // Set the menu symbol
64
+ cursor: pointer;
65
+ }
66
+ }
67
+
68
+ // The dividers should run accross the entire window. Note that they are not always visible, that depends on the active layout.
69
+ .nav-top-divider { width: 100%; }
70
+ .nav-bottom-divider { width: 100%; }
71
+
72
+ // The menu is always the entire width.
73
+ .navbanner-menu { width: 100%; }
74
+
75
+ @include narrow-layout {
76
+
77
+ // Disabled items.
78
+ .navbanner-menu, .nav-bottom-divider, input, .menu-item-separator { display: none; }
79
+
80
+ // Conditionally visible/invisible items (conditionally on the invisible checkbox, i.e. menu symbol)
81
+ input:checked ~ {
82
+
83
+ // Display the menu only when the menu-checkbox (invisible) is checked.
84
+ .navbanner-menu { display: block; }
85
+
86
+ // Do not display the top divider when the menu is visible.
87
+ .nav-top-divider { display: none; }
88
+ }
89
+
90
+ // Only visible when the menu symbol invisible checkbox is selected
91
+ .navbanner-menu {
92
+
93
+ // For the top level list (menu) items
94
+ li {
95
+
96
+ // Disable submenu by default
97
+ ul { display: none; }
98
+
99
+ // When the submenu is closed, show the appropriate symbol
100
+ label .menu-item .menu-item-symbol p:after { content: $menu-closed-submenu-code; }
101
+
102
+ // If the checkbox is checked
103
+ input:checked ~ {
104
+
105
+ // Show submenu
106
+ ul { display: block; }
107
+
108
+ // When the submenu is open, show the appropriate symbol
109
+ label .menu-item .menu-item-symbol p:after { content: $menu-open-submenu-code; }
110
+ }
111
+
112
+ // Ensure that the whole width and height of a link is clickable
113
+ a { display: block; }
114
+ }
115
+
116
+ // Use the flex layout for the menu items
117
+ .menu-item, .menu-subitem {
118
+
119
+ display: flex;
120
+ flex-direction: row;
121
+
122
+ // Align all items in the center
123
+ align-items: center;
124
+
125
+ // Fix the display property for the menu item symbol and title area's when a <p> is included
126
+ .menu-item-symbol { p { display: inline; } }
127
+
128
+ // The symbol area does not grow
129
+ .menu-item-symbol, .menu-subitem-symbol { flex-grow: 0; width: 3 * $hspacing-unit; }
130
+
131
+ // The title area must grow
132
+ .menu-item-title, .menu-subitem-title { flex-grow: 1; }
133
+ }
134
+ }
135
+ }
136
+
137
+ @include medium-layout {
138
+
139
+ // Disabled items
140
+ .navbanner-menu, input, .menu-item-symbol, .menu-subitem-symbol, .nav-bottom-divider { display: none; }
141
+
142
+ // Conditionally visible/invisible items (conditionally on the invisible checkbox, i.e. menu symbol)
143
+ input:checked ~ {
144
+
145
+ // Display the menu only when the menu-checkbox (invisible) is checked.
146
+ .navbanner-menu {
147
+
148
+ // Use flex to enable alignment of the top level menu items
149
+ display: flex;
150
+ flex-direction: row;
151
+ flex-wrap: wrap;
152
+ justify-content: $menu-alignment;
153
+ }
154
+
155
+ // Also display the bottom divider when the menu is visible.
156
+ .nav-bottom-divider { display: inline; }
157
+ }
158
+
159
+ .navbanner-menu {
160
+
161
+ // Create a left and right spacing
162
+ border-left: ($navbar-side-margin - ($navbar-menu-item-spacing / 2)) solid transparent;
163
+ border-right: $navbar-side-margin solid transparent;
164
+
165
+ // Menu item spacing
166
+ .menu-item {
167
+ border-left: ($navbar-menu-item-spacing / 2) solid transparent;
168
+ border-right: ($navbar-menu-item-spacing / 2) solid transparent;
169
+ }
170
+ .menu-item-separator p:after { content: $menu-item-separator; }
171
+
172
+ // This menu is horizontal
173
+ .menu-item, .menu-item-separator, .menu-item-title, menu-subitem-title {
174
+ display: inline;
175
+ p { display: inline; } // Keeps the labels in-line with the links
176
+ }
177
+
178
+ ul {
179
+ li {
180
+ // This menu is horizontal
181
+ display: inline-block;
182
+
183
+ // The submenu display
184
+ ul {
185
+ display: none; // Initially disabled
186
+ position: absolute; // Display the submenu below the corresponding menu item
187
+ li { display: block; } // Makes the submenu vertical
188
+ }
189
+
190
+ // Display the submenu if the user hovers the mouse over it
191
+ &:hover ul { display: block; }
192
+
193
+ // Display the submenu if the user taps the corresponding menu item
194
+ input:checked ~ ul { display: block; }
195
+ }
196
+ }
197
+ }
198
+ }
199
+
200
+ @include wide-layout {
201
+
202
+ // Do not show the small butterfly icon, the short title, the checkbox label, the input(s) and the menu symbols
203
+ .navbanner-label, input, .menu-item-symbol, .menu-subitem-symbol { display: none; }
204
+
205
+ .navbanner-menu {
206
+
207
+ // Use flex to enable alignment of the top level menu items
208
+ display: flex;
209
+ flex-direction: row;
210
+ flex-wrap: wrap;
211
+ justify-content: $menu-alignment;
212
+
213
+ // Create a left and right spacing
214
+ border-left: ($navbar-side-margin - ($navbar-menu-item-spacing / 2)) solid transparent;
215
+ border-right: $navbar-side-margin solid transparent;
216
+
217
+ // Menu item spacing
218
+ .menu-item {
219
+ border-left: ($navbar-menu-item-spacing / 2) solid transparent;
220
+ border-right: ($navbar-menu-item-spacing / 2) solid transparent;
221
+ }
222
+ .menu-item-separator p:after { content: $menu-item-separator; }
223
+
224
+ // This menu is horizontal
225
+ .menu-item, .menu-item-separator, .menu-item-title, menu-subitem-title {
226
+ display: inline;
227
+ p { display: inline; }
228
+ }
229
+
230
+ ul {
231
+ li {
232
+
233
+ // This menu is horizontal
234
+ display: inline-block;
235
+
236
+ // The submenu display
237
+ ul {
238
+ display: none; // Initially disabled
239
+ position: absolute; // Display the submenu below the corresponding menu item
240
+ li { display: block; } // Makes the submenu vertical
241
+ }
242
+
243
+ // Display the submenu if the user hovers the mouse over it
244
+ &:hover ul { display: block; }
245
+
246
+ // Display the submenu if the user taps the corresponding menu item
247
+ input:checked ~ ul { display: block; }
248
+ }
249
+ }
250
+ }
251
+ }
252
+ }
253
+
254
+
255
+ // The layout for the column panel uses flex, but lays out the columns either column or row based depending on the size of the window (screen).
256
+ .column-panel {
257
+
258
+ // Use flex, layout as a row or column, based on the screenwidth
259
+ display: flex;
260
+
261
+ @include narrow-layout {
262
+
263
+ // This layout is column based, i.e. the content is displayed over one another.
264
+ flex-direction: column;
265
+
266
+ // The primary column must be displayed on top, use the 'order' property to enforce this.
267
+ .primary-column { order: 1; }
268
+
269
+ // The secondary column is put below the primary the second place
270
+ .secondary-column { order: 2; }
271
+
272
+ // Unused
273
+ .tertiary-column, .secondary-divider, .tertiary-divider { display: none; }
274
+ }
275
+
276
+ @include medium-layout {
277
+
278
+ // This layout is row based
279
+ flex-direction: row;
280
+
281
+ // The secondary column uses a fixed witdh and hosts both the secondary and tertiary column content
282
+ .secondary-column { width: $secondary-column-width; }
283
+
284
+ // The primary column can grow
285
+ .primary-column { flex: 1 1 auto; width: 1px; } // A width must be specified
286
+
287
+ // Unused
288
+ .tertiary-divder, .secondary-widget-divider, .tertiary-column { display: none; }
289
+ }
290
+
291
+ @include wide-layout {
292
+
293
+ // This layout is row based
294
+ flex-direction: row;
295
+
296
+ // The secondary and tertiary columns uses a fixed witdh
297
+ .secondary-column { width: $secondary-column-width; }
298
+ .tertiary-column { width: $tertiary-column-width; }
299
+
300
+ // The primary column can grow
301
+ .primary-column { flex: 1 1 auto; width: 1px; } // A width must be specified
302
+
303
+ // Unused
304
+ .secondary-column .tertiary-column-content, .tertiary-widget-divider, .secondary-widget-divider { display: none }
305
+ }
306
+ }