jekyll-bear-theme 0.1.6 → 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.
data/assets/style.css CHANGED
@@ -1,27 +1,81 @@
1
+ /* Tooltip for event squares */
2
+ .week[data-event] {
3
+ position: relative;
4
+ cursor: pointer;
5
+ }
6
+ .week[data-event]:hover::after {
7
+ content: attr(data-event);
8
+ position: absolute;
9
+ background: var(--background-color);
10
+ color: var(--text-color);
11
+ padding: 0.6rem;
12
+ border-radius: 8px;
13
+ font-size: 1rem;
14
+ font-family: var(--font-secondary);
15
+ font-weight: normal;
16
+ line-height: 1.4;
17
+ white-space: pre-line;
18
+ z-index: 100;
19
+ box-shadow: 0 4px 16px rgba(0,0,0,0.18);
20
+ top: 130%;
21
+ left: 50%;
22
+ transform: translateX(-50%);
23
+ pointer-events: none;
24
+ max-width: 50vw;
25
+ min-width: max-content;
26
+ width: max-content;
27
+ text-align: left;
28
+ display: flex;
29
+ align-items: center;
30
+ vertical-align: baseline;
31
+ }
32
+
33
+
34
+
35
+ @import url('https://fonts.googleapis.com/css2?family=Fira+Code:wght@100;200;300;400;500;600;700;800;900&display=swap');
36
+
37
+ :root {
38
+ --width: 900px;
39
+ --font-main: 'Fira Code', monospace;
40
+ --font-secondary: 'Fira Code', monospace;
41
+ --font-scale: .95em;
42
+ --background-color: #F8F1E5; /* Lighter cream */
43
+ --heading-color: #2C1E15; /* Darker roast coffee */
44
+ --text-color: #1F1408; /* Darker espresso */
45
+ --link-color: #7C4011; /* Darker caramel */
46
+ --visited-color: #5E3211; /* Darker roasted coffee beans */
47
+ --main-color: #96572D; /* Darker café au lait */
48
+ --code-background-color: #E6D7C3; /* Coffee stained paper */
49
+ --code-color: #2C1E15; /* Darker roast coffee */
50
+ --blockquote-color: #B99B6B; /* Darker café latte foam */
51
+ }
52
+
53
+ @media (prefers-color-scheme: dark) {
54
+ :root {
55
+ --background-color: #1A1310; /* Darker espresso */
56
+ --heading-color: #F0DFC0; /* Lighter café latte foam */
57
+ --text-color: #F0E6D2; /* Lighter coffee stained paper */
58
+ --link-color: #E5A254; /* Lighter caramel drizzle */
59
+ --visited-color: #C49B76; /* Lighter roasted coffee beans */
60
+ --main-color: #B89470; /* Lighter mocha */
61
+ --code-background-color: #2C2117; /* Dark chocolate coffee */
62
+ --code-color: #F0DFC0; /* Lighter café latte foam */
63
+ --blockquote-color: #6E563D; /* Lighter coffee grounds */
64
+ }
65
+ }
66
+
1
67
  body {
2
- font-family: Verdana, sans-serif;
68
+ font-family: var(--font-secondary);
69
+ font-size: var(--font-scale);
3
70
  margin: auto;
4
71
  padding: 20px;
5
- max-width: 720px;
72
+ max-width: var(--width);
6
73
  text-align: left;
7
- background-color: #fff;
74
+ background-color: var(--background-color);
8
75
  word-wrap: break-word;
9
76
  overflow-wrap: break-word;
10
77
  line-height: 1.5;
11
- color: #444;
12
- }
13
-
14
- /* Hide scrollbar for Chrome, Safari and Opera */
15
- html::-webkit-scrollbar {
16
- display: none;
17
- }
18
-
19
- /* Hide scrollbar for IE, Edge and Firefox */
20
- html {
21
- -ms-overflow-style: none;
22
- /* IE and Edge */
23
- scrollbar-width: none;
24
- /* Firefox */
78
+ color: var(--text-color);
25
79
  }
26
80
 
27
81
  h1,
@@ -29,102 +83,46 @@ h2,
29
83
  h3,
30
84
  h4,
31
85
  h5,
32
- h6,
33
- strong,
34
- b {
35
- color: #222;
86
+ h6 {
87
+ font-family: var(--font-main);
88
+ color: var(--heading-color);
36
89
  }
37
90
 
38
91
  a {
39
- color: #3273dc;
92
+ color: var(--link-color);
93
+ font-family: var(--font-main);
40
94
  cursor: pointer;
41
95
  text-decoration: none;
96
+ border-bottom: 3px solid var(--main-color);
42
97
  }
43
98
 
44
99
  a:hover {
45
- text-decoration: underline;
46
- }
47
-
48
- .title {
100
+ background-color: var(--main-color);
101
+ color: white;
49
102
  text-decoration: none;
50
- border: 0;
51
- }
52
-
53
- .title h1 {
54
- font-size: 1.5em;
55
- }
56
-
57
- .title span {
58
- font-weight: 400;
59
- }
60
-
61
- .bear::before {
62
- content: "ᕦʕ •ᴥ•ʔᕤ";
63
- font-weight: 400;
64
103
  }
65
104
 
66
- .bear:hover::before {
67
- content: "ᕙʕ ಠᴥಠʔᕗ";
68
- font-weight: 400;
105
+ header {
106
+ margin-bottom: 40px;
107
+ padding-bottom: 20px;
108
+ border-bottom: 3px dotted var(--main-color);
69
109
  }
70
110
 
71
111
  nav a {
72
- margin-right: 10px;
73
- }
74
-
75
- textarea,
76
- input:not([type="submit"]) {
77
- background-color: inherit;
78
- color: inherit;
79
- border: 1px dashed;
80
- padding: 5px;
81
- font-size: 16px;
82
- }
83
-
84
- .full-width textarea,
85
- .full-width input:not([type="submit"], [type="checkbox"], [type="radio"]) {
86
- width: calc(100% - 15px);
112
+ margin-right: 8px;
87
113
  }
88
114
 
89
- .nav-image {
90
- height: 3.14rem;
91
- border-radius: 12.5%;
92
- }
93
-
94
- textarea:required,
95
- input:required:not([type="submit"]) {
96
- border: 1px solid;
97
- }
98
-
99
- textarea.full-screen {
100
- position: fixed;
101
- background-color: white;
102
- top: -2px;
103
- bottom: -2px;
104
- left: 0;
105
- width: calc(100vw - 30px);
106
- max-width: 720px;
107
- border: 10px solid;
108
- border-width: 10px calc(50vw - 370px);
109
- }
110
-
111
- @media only screen and (max-width: 750px) {
112
- textarea.full-screen {
113
- border-width: 10px;
114
- }
115
- }
116
-
117
- button.floating {
118
- position: fixed;
119
- bottom: 20px;
120
- right: 25px;
115
+ strong,
116
+ b {
117
+ color: var(--heading-color);
121
118
  }
122
119
 
123
- button#toggle-full-screen {
124
- float: right;
120
+ button {
121
+ margin: 0;
122
+ cursor: pointer;
125
123
  }
126
124
 
127
- content {
125
+ main {
128
126
  line-height: 1.6;
129
127
  }
130
128
 
@@ -133,6 +131,7 @@ table {
133
131
  }
134
132
 
135
133
  hr {
134
+ border: 0;
136
135
  border-top: 1px dashed;
137
136
  }
138
137
 
@@ -143,91 +142,53 @@ img {
143
142
  code {
144
143
  font-family: monospace;
145
144
  padding: 2px;
146
- background-color: #f2f2f2;
147
- color: #222;
148
- border-radius: 3px;
149
- }
150
-
151
- .highlight,
152
- .code {
153
- padding: 1px 15px;
154
- background-color: #f2f2f2;
155
- color: #222;
145
+ background-color: var(--code-background-color);
146
+ color: var(--code-color);
156
147
  border-radius: 3px;
157
- margin-block-start: 1em;
158
- margin-block-end: 1em;
159
- overflow:auto;
160
148
  }
161
149
 
162
150
  blockquote {
163
- border-left: 1px solid #999;
164
- color: #222;
151
+ border-left: 1px solid var(--blockquote-color);
152
+ color: var(--code-color);
165
153
  padding-left: 20px;
166
154
  font-style: italic;
167
155
  }
168
156
 
169
157
  footer {
158
+ margin-top: 40px;
159
+ border-top: 3px dotted var(--main-color);
170
160
  padding: 25px 0;
171
- text-align: left;
172
- }
173
-
174
- .helptext {
175
- color: #777;
176
- font-size: small;
177
- }
178
-
179
- .errorlist {
180
- color: #eba613;
181
- font-size: small;
182
- }
183
-
184
- #id_favicon {
185
- width: 20px;
186
161
  text-align: center;
187
162
  }
188
163
 
189
- #date-range,
190
- #initial-values,
191
- #import-contacts {
164
+ footer > span:has(a[href="https://bearblog.dev"]) {
192
165
  display: none;
193
166
  }
194
167
 
195
- #date-range:target,
196
- #initial-values:target,
197
- #import-contacts:target {
198
- display: block;
199
- }
200
-
201
- /* dashboard post list and analytics */
202
- ul.post-list {
203
- list-style-type: none;
204
- padding: unset;
205
- }
206
-
207
- ul.post-list li {
208
- display: flex;
209
- padding: 10px 0;
210
- border-bottom: 1px dashed;
211
- }
212
-
213
- ul.post-list li span {
214
- flex: 0 0 130px;
168
+ .title:hover {
169
+ text-decoration: none;
215
170
  }
216
171
 
217
- ul.post-list li span.number {
218
- flex: 0 0 50px;
172
+ .title h1 {
173
+ font-size: 1.5em;
219
174
  }
220
175
 
221
- ul.post-list li a {
222
- flex: max-content;
176
+ .inline {
177
+ width: auto !important;
223
178
  }
224
179
 
225
- ul.post-list li small {
226
- text-align: right;
227
- flex: 0 0 115px;
180
+ .highlight,
181
+ .code {
182
+ padding: 1px 15px;
183
+ background-color: var(--code-background-color);
184
+ color: var(--code-color);
185
+ border-radius: 3px;
186
+ margin-block-start: 1em;
187
+ margin-block-end: 1em;
188
+ overflow-x: auto;
228
189
  }
229
190
 
230
- /* blog posts */
191
+ /* blog post list */
231
192
  ul.blog-posts {
232
193
  list-style-type: none;
233
194
  padding: unset;
@@ -235,115 +196,296 @@ ul.blog-posts {
235
196
 
236
197
  ul.blog-posts li {
237
198
  display: flex;
199
+ margin-bottom: 10px;
200
+ }
201
+
202
+ i time {
203
+ font-style: normal;
204
+ opacity: 0.7;
238
205
  }
239
206
 
240
207
  ul.blog-posts li span {
241
208
  flex: 0 0 130px;
242
209
  }
243
210
 
211
+
244
212
  ul.blog-posts li a:visited {
245
- color: #8b6fcb;
213
+ color: var(--visited-color);
246
214
  }
247
215
 
248
- /* discovery feed */
249
- ul.discover-posts {
250
- list-style-type: none;
251
- padding: unset;
216
+ table {
217
+ border-spacing: 0;
218
+ }
219
+
220
+ th,
221
+ td {
222
+ padding: 6px 13px;
223
+ font-size: 1em;
224
+ }
225
+
226
+ /* external link marker */
227
+ a[href^="http"]:where(:not([href*="knhash.in/"])):not(:has(img))::after {
228
+ content: "↗"
229
+ }
230
+
231
+ /* Form elements */
232
+ input, button, textarea, select {
233
+ margin: 0;
234
+ padding: 0;
235
+ box-sizing: border-box;
236
+ font: inherit;
237
+ }
238
+ legend {
239
+ margin: 20px 0;
240
+ font-weight: bold;
252
241
  }
253
-
254
- ul.discover-posts li {
255
- display: flex;
256
- line-height: 1.2;
242
+ label {
243
+ display: block;
244
+ font-weight: bold;
257
245
  }
258
-
259
- ul.discover-posts li span {
260
- flex: 0 0 40px;
246
+ input,
247
+ textarea {
248
+ margin: 0 0 10px;
249
+ padding: 5px 10px;
250
+ color: var(--text-color);
251
+ background: var(--accent-color);
252
+ border: 2px solid var(--link-color);
253
+ border-radius: 5px;
261
254
  }
262
-
263
- ul.discover-posts li a:visited {
264
- color: #8b6fcb;
255
+ input {
256
+ width: 55%;
265
257
  }
266
-
267
- ul.discover-posts li div {
268
- padding-bottom: 8px;
258
+ textarea {
259
+ width: 95%;
269
260
  }
270
-
271
- ul.discover-posts li small {
272
- color: #777 !important;
261
+ input[type=button], input[type=submit], input[type=reset] {
262
+ margin: 0 0 20px;
263
+ padding: 7px;
264
+ font-family: var(--font-secondary);
265
+ font-weight: bold;
266
+ color: var(--background-color);
267
+ background: var(--link-color);
268
+ border-radius: 5px;
269
+ cursor: pointer;
273
270
  }
274
-
275
- ul.discover-posts li small a {
276
- color: #777 !important;
271
+ ::placeholder {
272
+ color: var(--text-color);
273
+ opacity: 0.7;
277
274
  }
278
275
 
279
-
280
- @media (prefers-color-scheme: dark) {
281
- body {
282
- background-color: #01242e;
283
- color: #ddd;
284
- }
285
-
286
- h1,
287
- h2,
288
- h3,
289
- h4,
290
- h5,
291
- h6,
292
- strong,
293
- b {
294
- color: #eee;
295
- }
296
-
297
- a {
298
- color: #8cc2dd;
299
- }
300
-
301
- code {
302
- background-color: #777;
303
- }
304
-
305
- pre code {
306
- color: #ddd;
307
- }
308
-
309
- blockquote {
310
- color: #ccc;
311
- }
312
-
313
- .helptext {
314
- color: #aaa;
315
- }
276
+ /* Life in Weeks Styles */
277
+ .life-in-weeks {
278
+ margin: 20px 0;
316
279
  }
317
280
 
281
+ .weeks-grid {
282
+ margin: 60px 0;
283
+ font-family: var(--font-main);
284
+ display: flex;
285
+ flex-wrap: wrap;
286
+ gap: 2px;
287
+ max-width: 100%;
288
+ align-items: flex-start;
289
+ }
318
290
 
291
+ /* Make weeks grid wider on larger screens while maintaining padding */
292
+ @media (min-width: 1200px) {
293
+ .weeks-grid {
294
+ max-width: calc(100vw - 10vw);
295
+ width: calc(100vw - 10vw);
296
+ margin-left: calc((var(--width) - 100vw + 10vw) / 2);
297
+ margin-right: calc((var(--width) - 100vw + 10vw) / 2);
298
+ }
299
+ }
319
300
 
320
- ul.blog-posts {
321
- padding-bottom: 0.61803rem;
301
+ @media (min-width: 1400px) {
302
+ .weeks-grid {
303
+ max-width: calc(100vw - 10vw);
304
+ width: calc(100vw - 10vw);
305
+ margin-left: calc((var(--width) - 100vw + 10vw) / 2);
306
+ margin-right: calc((var(--width) - 100vw + 10vw) / 2);
307
+ }
322
308
  }
323
309
 
324
- ul.blog-posts li {
325
- padding-top: 0.61803rem;
310
+ .week {
311
+ min-width: 30px;
312
+ height: 30px;
313
+ border: 1px solid var(--main-color);
314
+ background-color: var(--background-color);
315
+ display: inline-flex;
316
+ align-items: center;
317
+ justify-content: center;
318
+ position: relative;
319
+ cursor: help;
320
+ font-size: var(--font-scale);
321
+ line-height: 1.5;
322
+ padding: 4px 8px;
323
+ white-space: nowrap;
324
+ box-sizing: border-box;
325
+ }
326
+
327
+ /* Alternating decade bands */
328
+ .week.decade-0 {
329
+ background-color: var(--background-color);
330
+ }
331
+
332
+ .week.decade-1 {
333
+ background-color: var(--code-background-color);
334
+ }
335
+
336
+ .week.future {
337
+ background-color: transparent;
338
+ border-color: var(--blockquote-color);
339
+ opacity: 0.3;
326
340
  }
327
341
 
328
- small a {
329
- padding-right: 0.61803rem;
342
+ .week.decade-1.future {
343
+ background-color: var(--code-background-color);
344
+ opacity: 0.2;
345
+ }
346
+
347
+ .week.has-events {
348
+ border-color: var(--visited-color);
349
+ color: var(--text-color);
350
+ font-size: var(--font-scale);
351
+ min-width: auto;
352
+ width: auto;
353
+ padding: 4px 10px;
330
354
  }
331
355
 
332
- hr {
333
- border: 1.61803px solid;
356
+ .week.has-events.future {
357
+ border-color: var(--blockquote-color);
358
+ opacity: 0.6;
359
+ color: var(--blockquote-color);
334
360
  }
335
361
 
336
- body:hover {
337
- border-image: ;
338
- border-width: 0;
362
+ .week.current {
363
+ animation: pulse 2s ease-in-out infinite;
364
+ border-width: 2px;
365
+ border-color: var(--link-color);
366
+ box-shadow: 0 0 10px rgba(124, 64, 17, 0.3);
339
367
  }
340
368
 
369
+ .week.current.has-events {
370
+ box-shadow: 0 0 10px rgba(124, 64, 17, 0.5);
371
+ }
341
372
 
342
- small a {
343
- padding-right: 0.61803rem;
373
+ @keyframes pulse {
374
+ 0% {
375
+ transform: scale(1);
376
+ opacity: 1;
377
+ }
378
+ 50% {
379
+ transform: scale(1.1);
380
+ opacity: 0.7;
381
+ }
382
+ 100% {
383
+ transform: scale(1);
384
+ opacity: 1;
385
+ }
344
386
  }
345
387
 
346
- .bottom-footer {
347
- padding: 50px;
348
- text-align: center;
349
- }
388
+ @media (prefers-color-scheme: dark) {
389
+ .week.current {
390
+ box-shadow: 0 0 10px rgba(229, 162, 84, 0.3);
391
+ }
392
+
393
+ .week.current.has-events {
394
+ box-shadow: 0 0 10px rgba(229, 162, 84, 0.5);
395
+ }
396
+ }
397
+
398
+ .event-indicator {
399
+ position: absolute;
400
+ top: 50%;
401
+ left: 50%;
402
+ transform: translate(-50%, -50%);
403
+ color: var(--background-color);
404
+ font-size: 8px;
405
+ line-height: 1;
406
+ }
407
+
408
+ .events-list {
409
+ margin: 40px 0;
410
+ padding: 20px;
411
+ background-color: var(--code-background-color);
412
+ border-radius: 5px;
413
+ }
414
+
415
+ .events-list h3 {
416
+ margin-top: 0;
417
+ color: var(--heading-color);
418
+ border-bottom: 1px solid var(--main-color);
419
+ padding-bottom: 10px;
420
+ }
421
+
422
+ .event-item {
423
+ margin: 10px 0;
424
+ padding: 8px 0;
425
+ border-bottom: 1px dotted var(--blockquote-color);
426
+ font-size: 0.9em;
427
+ line-height: 1.4;
428
+ }
429
+
430
+ .event-item:last-child {
431
+ border-bottom: none;
432
+ }
433
+
434
+ .event-year {
435
+ color: var(--main-color);
436
+ margin-right: 15px;
437
+ min-width: 50px;
438
+ display: inline-block;
439
+ }
440
+
441
+ .event-name {
442
+ color: var(--heading-color);
443
+ margin-right: 10px;
444
+ }
445
+
446
+ .event-desc {
447
+ color: var(--text-color);
448
+ font-style: italic;
449
+ display: block;
450
+ margin-top: 5px;
451
+ margin-left: 65px;
452
+ }
453
+
454
+ /* Responsive adjustments */
455
+ @media (max-width: 768px) {
456
+ .week {
457
+ min-width: 26px;
458
+ height: 26px;
459
+ font-size: var(--font-scale);
460
+ padding: 3px 7px;
461
+ }
462
+
463
+ .week.has-events {
464
+ font-size: var(--font-scale);
465
+ padding: 3px 8px;
466
+ }
467
+
468
+ .event-desc {
469
+ margin-left: 0;
470
+ }
471
+ }
472
+
473
+ @media (max-width: 480px) {
474
+ .week {
475
+ min-width: 22px;
476
+ height: 22px;
477
+ font-size: var(--font-scale);
478
+ padding: 2px 6px;
479
+ }
480
+
481
+ .week.has-events {
482
+ font-size: var(--font-scale);
483
+ padding: 2px 7px;
484
+ }
485
+
486
+ .weeks-grid {
487
+ gap: 1px;
488
+ }
489
+ }
490
+
491
+