jekyll-theme-open-course 2.1.0 → 2.4.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,192 @@
1
+ $text-color: #321207;
2
+ $back-color: #F6EACB;
3
+ $spot-color: #6C1F55;
4
+ $acnt-color: #B34523;
5
+ $gray-color: #73664E; /* #7F7F7F; */
6
+ $gray-alter: darken($gray-color, 10%);
7
+ $link-under: transparentize($spot-color, 0.65);
8
+ $curr-color: darken($back-color, 8%);
9
+
10
+ // Dark mode
11
+ $dk-text-color: #DEDEDE;
12
+ $dk-back-color: #111;
13
+ $dk-spot-color: #FFB700;
14
+ $dk-acnt-color: #FF764D;
15
+ $dk-gray-color: #9E9E9E;
16
+ $dk-link-under: transparentize($dk-spot-color, 0.25);
17
+ $dk-curr-color: darken($dk-gray-color, 45%);
18
+
19
+
20
+ // CSS Variables
21
+ html,
22
+ html.light {
23
+ --color-text: #{$text-color};
24
+ --color-back: #{$back-color};
25
+ --color-spot: #{$spot-color};
26
+ --color-acnt: #{$acnt-color};
27
+ --color-gray: #{$gray-color};
28
+ --color-curr: #{$curr-color};
29
+ --color-altg: #{$gray-alter};
30
+ --color-link: #{$link-under};
31
+ --color-navi: #{$gray-color};
32
+ --color-nava: #{$back-color};
33
+ }
34
+ html.dark {
35
+ --color-text: #{$dk-text-color};
36
+ --color-back: #{$dk-back-color};
37
+ --color-spot: #{$dk-spot-color};
38
+ --color-acnt: #{$dk-acnt-color};
39
+ --color-gray: #{$dk-gray-color};
40
+ --color-curr: #{$dk-curr-color};
41
+ --color-altg: #{$dk-gray-color};
42
+ --color-link: #{$dk-link-under};
43
+ --color-navi: #{$dk-gray-color};
44
+ --color-nava: #{$dk-back-color};
45
+ }
46
+ @media screen and (prefers-color-scheme: dark) {
47
+ html {
48
+ --color-text: #{$dk-text-color};
49
+ --color-back: #{$dk-back-color};
50
+ --color-spot: #{$dk-spot-color};
51
+ --color-acnt: #{$dk-acnt-color};
52
+ --color-gray: #{$dk-gray-color};
53
+ --color-curr: #{$dk-curr-color};
54
+ --color-altg: #{$dk-gray-color};
55
+ --color-link: #{$dk-link-under};
56
+ --color-navi: #{$dk-gray-color};
57
+ --color-nava: #{$dk-back-color};
58
+ }
59
+ }
60
+
61
+ html {
62
+ transition: color 0.5s, background-color 0.5s;
63
+ color: $text-color;
64
+ color: var(--color-text);
65
+ background-color: $back-color;
66
+ background-color: var(--color-back);
67
+ }
68
+ ol > li::before,
69
+ ul li::before {
70
+ color: $acnt-color;
71
+ color: var(--color-acnt);
72
+ }
73
+ a {
74
+ color: $spot-color;
75
+ color: var(--color-spot);
76
+ }
77
+ @supports (text-decoration-color: red) {
78
+ a {
79
+ color: inherit;
80
+ text-decoration-color: $link-under;
81
+ text-decoration-color: var(--color-link);
82
+ }
83
+ }
84
+ #header h1 a {
85
+ color: $spot-color;
86
+ color: var(--color-spot);
87
+ }
88
+ .nav a {
89
+ border: 1px solid $acnt-color;
90
+ border: 1px solid var(--color-acnt);
91
+ color: $gray-color;
92
+ color: var(--color-navi);
93
+ }
94
+ .nav a:hover,
95
+ .nav a:focus,
96
+ .nav a:active,
97
+ #calendar #nav-cal a,
98
+ #policies #nav-pol a,
99
+ #projects #nav-pro a {
100
+ background-color: $acnt-color;
101
+ background-color: var(--color-acnt);
102
+ color: $back-color;
103
+ color: var(--color-nava);
104
+ }
105
+
106
+ .recommended,
107
+ .project .description,
108
+ .project .goals,
109
+ .week .agenda,
110
+ .fine-print {
111
+ color: $gray-color;
112
+ color: var(--color-gray);
113
+ }
114
+ .current {
115
+ transition: background-color 0.5s;
116
+ background-color: $curr-color;
117
+ background-color: var(--color-curr);
118
+ }
119
+ .week.current .agenda {
120
+ color: $gray-alter;
121
+ color: var(--color-altg);
122
+ }
123
+ #btn-show-calendar {
124
+ background-color: $back-color;
125
+ background-color: var(--color-back);
126
+ color: $gray-color;
127
+ color: var(--color-gray);
128
+ border: 1px solid $gray-color;
129
+ border: 1px solid var(--color-gray);
130
+ }
131
+ #btn-show-calendar:active,
132
+ #btn-show-calendar:focus,
133
+ #btn-show-calendar:hover {
134
+ background-color: $gray-color;
135
+ background-color: var(--color-gray);
136
+ color: $back-color;
137
+ color: var(--color-back);
138
+ }
139
+ .agenda h3 a {
140
+ background-color: inherit;
141
+ color: $acnt-color;
142
+ color: var(--color-acnt);
143
+ }
144
+ .youtube {
145
+ color: pink;
146
+ fill: $acnt-color;
147
+ fill: var(--color-acnt);
148
+ }
149
+ .agenda h3 a:active,
150
+ .agenda h3 a:focus,
151
+ .agenda h3 a:hover {
152
+ background-color: $acnt-color;
153
+ background-color: var(--color-acnt);
154
+ color: $back-color;
155
+ color: var(--color-back);
156
+ }
157
+ a:active .youtube,
158
+ a:focus .youtube,
159
+ a:hover .youtube {
160
+ fill: $back-color;
161
+ fill: var(--color-back);
162
+ }
163
+ header small {
164
+ color: $spot-color;
165
+ color: var(--color-spot);
166
+ }
167
+ .week > header small {
168
+ color: $gray-color;
169
+ color: var(--color-gray);
170
+ }
171
+ #header,
172
+ #footer,
173
+ #instructor {
174
+ color: $gray-color;
175
+ color: var(--color-gray);
176
+ }
177
+ #header .nav {
178
+ color: $text-color;
179
+ color: var(--color-text);
180
+ }
181
+ #header #theme-button {
182
+ background-color: $acnt-color;
183
+ background-color: var(--color-acnt);
184
+ border-color: $acnt-color;
185
+ border-color: var(--color-acnt);
186
+ color: $back-color;
187
+ color: var(--color-back);
188
+ }
189
+ #header #theme-button svg {
190
+ fill: $back-color;
191
+ fill: var(--color-back);
192
+ }
data/_sass/_fonts.scss ADDED
@@ -0,0 +1,10 @@
1
+ $font-url: "https://use.typekit.net/qqk1feg.css";
2
+
3
+ $primary-font-family: "alber-new-web", serif;
4
+ $secondary-font-family: "abril-titling-narrow";
5
+ $tertiary-font-family: "abril-titling";
6
+
7
+ // Font-Weight Reference
8
+ // Alder New Web: 300 (retina); 400 (normal); 500 (medium); 700 (bold)
9
+ // Abril Titling Narrow: 600 (semibold)
10
+ // Abril Titling: 700 (bold)
@@ -0,0 +1,391 @@
1
+ $base-size-px: 19;
2
+ $base-line-px: 25;
3
+ $base-size: ($base-size-px / 16) * 100%;
4
+ $base-line: ($base-line-px / $base-size-px) * 1rem;
5
+ $mod-scale: 1.25;
6
+
7
+
8
+ html {
9
+ -webkit-text-size-adjust: none;
10
+ font-family: $primary-font-family;
11
+ font-size: 19px;
12
+ }
13
+
14
+ @media screen and (min-resolution: 192dpi), (-webkit-min-device-pixel-ratio: 2) {
15
+ html {
16
+ font-weight: 300;
17
+ }
18
+ }
19
+
20
+ h2 {
21
+ font-family: $secondary-font-family;
22
+ font-weight: 600;
23
+ font-size: $base-size * $mod-scale * $mod-scale;
24
+ line-height: $base-line * 1.5;
25
+ }
26
+
27
+ b,
28
+ strong {
29
+ font-weight: 500;
30
+ }
31
+
32
+ #nav-con {
33
+ position: absolute;
34
+ left: -10000px;
35
+ }
36
+ #full-nav.hidden {
37
+ display: none;
38
+ }
39
+ #quick-nav {
40
+ align-items: baseline;
41
+ display: flex;
42
+ justify-content: space-between;
43
+ }
44
+ #quick-nav .nav {
45
+ display: flex;
46
+ flex: 1 0 auto;
47
+ flex-flow: row wrap;
48
+ justify-content: flex-end;
49
+ }
50
+ #quick-nav li {
51
+ padding: 0;
52
+ margin-left: $base-line / 2;
53
+ }
54
+ .navbar #quick-nav li::before {
55
+ content: "";
56
+ }
57
+ #nav-con a {
58
+ text-decoration: none;
59
+ }
60
+ .nav a {
61
+ border-radius: $base-line / 4;
62
+ display: block;
63
+ padding: $base-line / 4;
64
+ padding: calc(#{$base-line / 5} - 1px) $base-line / 4 calc(#{$base-line / 4} - 1px) $base-line / 4;
65
+ text-decoration: none;
66
+ }
67
+
68
+ .nav li::before {
69
+ content: "";
70
+ }
71
+
72
+ #header h1 a {
73
+ text-decoration: none;
74
+ }
75
+
76
+ #header #theme-button {
77
+ opacity: 0.55;
78
+ line-height: 0;
79
+ }
80
+
81
+ /* ~ 370px */
82
+ @media screen and (min-width: 23.125em) {
83
+ #header h1 {
84
+ position: relative;
85
+ }
86
+ }
87
+
88
+ /* ~ 620px */
89
+ @media screen and (min-width: 38.75em) {
90
+ h2 {
91
+ font-family: $tertiary-font-family;
92
+ font-weight: 700;
93
+ font-size: $base-size * $mod-scale * $mod-scale * $mod-scale;
94
+ line-height: $base-line * 2;
95
+ }
96
+ }
97
+
98
+ #header h3,
99
+ #footer h3,
100
+ #instructor h3,
101
+ .agenda h3 {
102
+ text-transform: none;
103
+ font-weight: 500;
104
+ padding-bottom: $base-line / 2;
105
+ }
106
+ .agenda h3 {
107
+ padding-bottom: $base-line / 4;
108
+ }
109
+ .assigned h3,
110
+ .project h3 {
111
+ font-weight: bold;
112
+ }
113
+
114
+ #btn-show-calendar,
115
+ .agenda h3 a {
116
+ font-weight: normal;
117
+ border-radius: $base-line / 4;
118
+ display: block;
119
+ padding: $base-line / 4;
120
+ text-decoration: none;
121
+ display: inline-block;
122
+ }
123
+ #btn-show-calendar {
124
+ margin-bottom: $base-line * 2;
125
+ text-decoration: none;
126
+ }
127
+
128
+ .agenda h3 a {
129
+ padding: $base-line / 8 $base-line / 4;
130
+ padding: calc(#{$base-line / 10} - 1px) $base-line / 4 calc(#{$base-line / 8} - 1px) $base-line / 4;
131
+ margin-top: -($base-line / 8);
132
+ }
133
+ .youtube {
134
+ float: left;
135
+ padding-right: 5px;
136
+ padding-top: 1px;
137
+ height: 25px;
138
+ width: 25px;
139
+ }
140
+ #content header {
141
+ padding-bottom: $base-line;
142
+ }
143
+ header small {
144
+ display: block;
145
+ font-weight: 500;
146
+ padding-top: $base-line * 0.25;
147
+ }
148
+ .week > header small {
149
+ font-weight: normal;
150
+ }
151
+
152
+ #content article {
153
+ padding-bottom: $base-line * 3;
154
+ }
155
+
156
+ .current {
157
+ padding: $base-line * 1.5;
158
+ margin: ($base-line * 1.5) (-($base-line * 1.5));
159
+ }
160
+
161
+ .assigned {
162
+ padding-top: $base-line;
163
+ }
164
+
165
+ #header {
166
+ padding: $base-line * 0.5;
167
+ }
168
+ #header p {
169
+ min-height: $base-line * 4;
170
+ padding-top: $base-line * 0.5;
171
+ }
172
+ #header,
173
+ #content,
174
+ #footer,
175
+ #instructor {
176
+ padding-left: $base-line * 1.5;
177
+ padding-right: $base-line * 1.5;
178
+ }
179
+
180
+ #instructor {
181
+ padding-bottom: $base-line * 2;
182
+ }
183
+
184
+ /* ~ 690px */
185
+ @media screen and (min-width: 43.125em) {
186
+ #header,
187
+ .error,
188
+ .policy,
189
+ .project,
190
+ .week,
191
+ #instructor,
192
+ #footer {
193
+ display: grid;
194
+ grid-template-columns: repeat(5,1fr);
195
+ grid-column-gap: $base-line;
196
+ }
197
+ .week {
198
+ grid-template-rows: auto ($base-line * 3.25);
199
+ align-content: stretch;
200
+ }
201
+ .error header,
202
+ .policy header,
203
+ .project header,
204
+ .week header {
205
+ grid-column: 1 / 6;
206
+ }
207
+ .week .agendas {
208
+ grid-column: 1 / 3;
209
+ grid-row-start: 3;
210
+ }
211
+ .week .assigned {
212
+ padding-top: 0;
213
+ grid-column: 3 / 6;
214
+ grid-row: 2 / 4;
215
+ }
216
+
217
+ .error > *,
218
+ .policy > * {
219
+ grid-column: 1 / 5;
220
+ }
221
+ #books.policy section,
222
+ #materials.policy .required {
223
+ grid-column: 1 / 4;
224
+ }
225
+ #books.policy .fine-print,
226
+ #materials.policy .recommended {
227
+ grid-column: 4 / 6;
228
+ grid-row: 3 / 5;
229
+ }
230
+ #books.policy .fine-print,
231
+ #materials.policy .recommended {
232
+ grid-row: 2 / 5;
233
+ }
234
+ .project .description {
235
+ grid-column: 1 / 3;
236
+ grid-row: 2 / 3;
237
+ }
238
+ .project .goals {
239
+ grid-column: 1 / 3;
240
+ grid-row: 3 / 4;
241
+ }
242
+ .project .deliverables,
243
+ .project .requirements {
244
+ grid-column: 3 / 6;
245
+ }
246
+ .project .preview {
247
+ grid-column: 1 / 6;
248
+ }
249
+ #header h1 {
250
+ grid-column: 1 / 6;
251
+ }
252
+ #header p {
253
+ grid-column: 1 / 4;
254
+ }
255
+ #header #quick-nav {
256
+ grid-column: 1 / 6;
257
+ }
258
+
259
+ #instructor > * {
260
+ grid-column: 2 / 6;
261
+ }
262
+ #footer #full-nav {
263
+ grid-column: 1 / 2;
264
+ }
265
+ #footer #colophon {
266
+ grid-column: 2 / 6;
267
+ }
268
+ .navbar #instructor > *,
269
+ .navbar #footer #colophon {
270
+ grid-column: 1 / 4;
271
+ }
272
+ }
273
+
274
+ /* ~ 855px */
275
+ @media screen and (min-width: 53.4375em) {
276
+ #header,
277
+ #content,
278
+ #footer,
279
+ #instructor {
280
+ padding: ($base-line * 1.5) 10%;
281
+ }
282
+ #instructor {
283
+ padding-bottom: $base-line * 2;
284
+ }
285
+ #footer {
286
+ padding-top: 0;
287
+ }
288
+ h2 {
289
+ font-size: $base-size * $mod-scale * $mod-scale * $mod-scale * $mod-scale;
290
+ line-height: $base-line * 2.5;
291
+ }
292
+ .project .description {
293
+ grid-column: 1 / 4;
294
+ grid-row: 2 / 3;
295
+ }
296
+ .project .goals {
297
+ grid-column: 4 / 6;
298
+ grid-row: 2 / 3;
299
+ }
300
+ .project .deliverables,
301
+ .project .requirements {
302
+ grid-row: 3 / 6;
303
+ }
304
+ .project .deliverables {
305
+ grid-column: 1 / 3;
306
+ }
307
+ .project .requirements {
308
+ grid-column: 3 / 6;
309
+ }
310
+ .project .preview {
311
+ grid-column: 1 / 4;
312
+ }
313
+ }
314
+
315
+ /* ~ 890px */
316
+ @media screen and (min-width: 55.625em) {
317
+ body::after {
318
+ content: 'navbar';
319
+ display: none;
320
+ }
321
+ .links {
322
+ display: grid;
323
+ grid-template-columns: repeat(3,1fr);
324
+ grid-column-gap: $base-line;
325
+ }
326
+ .links header {
327
+ grid-column: 1 / 4;
328
+ }
329
+ .links .suggestions {
330
+ grid-column: 2 / span 2;
331
+ }
332
+ }
333
+
334
+ /* ~ 1100px */
335
+ @media screen and (min-width: 68.75em) {
336
+ #header,
337
+ #content,
338
+ #footer,
339
+ #instructor {
340
+ padding-top: ($base-line * 3);
341
+ }
342
+ #footer {
343
+ padding-top: 0;
344
+ }
345
+ .error,
346
+ .policy,
347
+ .project,
348
+ .week {
349
+ grid-column-gap: $base-line * 1.5;
350
+ }
351
+ h2 {
352
+ font-size: $base-size * $mod-scale * $mod-scale * $mod-scale * $mod-scale * $mod-scale;
353
+ line-height: $base-line * 3;
354
+ }
355
+ }
356
+
357
+ /* States */
358
+ .js .past,
359
+ .grad .ugrad,
360
+ .ugrad .grad,
361
+ .grad .grad h3,
362
+ .ugrad .ugrad h3 {
363
+ display: none;
364
+ }
365
+
366
+ /**
367
+ * A quick baseline grid overlay using css+svg.
368
+ * Inspired by [Basehold.it](https://basehold.it/).
369
+ * @author leshido
370
+ */
371
+
372
+ .g body {
373
+ position: relative;
374
+ }
375
+
376
+ .g body::after {
377
+ background: url('data:image/svg+xml;utf8,<svg height="25" width="1" xmlns="http://www.w3.org/2000/svg"><rect width="1" height="0.5" style="fill:rgba(255, 0, 0, 0.3)" /></svg>') repeat top left;
378
+ content: "";
379
+ display: block;
380
+ pointer-events: none;
381
+ top: 0;
382
+ right: 0;
383
+ bottom: 0;
384
+ left: 0;
385
+ z-index: 9999;
386
+ position: absolute;
387
+ }
388
+
389
+ .g body:active::after {
390
+ display: none;
391
+ }