benjeto-jekyll-theme 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (47) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE.txt +21 -0
  3. data/README.md +132 -0
  4. data/_data/texts.yml +100 -0
  5. data/_includes/appbox.html +7 -0
  6. data/_includes/audio.html +26 -0
  7. data/_includes/category.html +9 -0
  8. data/_includes/custom_head.html +0 -0
  9. data/_includes/exlink.html +5 -0
  10. data/_includes/footer.html +21 -0
  11. data/_includes/head.html +104 -0
  12. data/_includes/image.html +16 -0
  13. data/_includes/lang-select.html +19 -0
  14. data/_includes/menu.html +97 -0
  15. data/_includes/miniprof.html +29 -0
  16. data/_includes/nicovideo.html +8 -0
  17. data/_includes/postbox-custom.html +18 -0
  18. data/_includes/postbox-feed.html +31 -0
  19. data/_includes/tags.html +8 -0
  20. data/_includes/video.html +23 -0
  21. data/_includes/youtube.html +8 -0
  22. data/_layouts/base.html +34 -0
  23. data/_layouts/default.html +13 -0
  24. data/_layouts/home.html +133 -0
  25. data/_layouts/post.html +50 -0
  26. data/_sass/benjeto/base.scss +639 -0
  27. data/_sass/benjeto/css/app-box.scss +33 -0
  28. data/_sass/benjeto/css/figure.scss +57 -0
  29. data/_sass/benjeto/css/highlight.scss +62 -0
  30. data/_sass/benjeto/css/home-tab.scss +54 -0
  31. data/_sass/benjeto/css/menu.scss +64 -0
  32. data/_sass/benjeto/css/paginate.scss +35 -0
  33. data/_sass/benjeto/css/section-box.scss +36 -0
  34. data/_sass/benjeto/custom.scss +0 -0
  35. data/_sass/benjeto/dark.scss +45 -0
  36. data/_sass/benjeto/light.scss +26 -0
  37. data/assets/icon/clip.svg +1 -0
  38. data/assets/icon/close.svg +1 -0
  39. data/assets/icon/love.svg +2 -0
  40. data/assets/icon/message.svg +2 -0
  41. data/assets/icon/share.svg +1 -0
  42. data/assets/icon.png +0 -0
  43. data/assets/js/lang-redirect.js +16 -0
  44. data/assets/js/menu.js +61 -0
  45. data/assets/js/share.js +92 -0
  46. data/assets/style.scss +46 -0
  47. metadata +158 -0
@@ -0,0 +1,639 @@
1
+ * {
2
+ line-height: 1.6;
3
+ box-sizing: border-box;
4
+ overflow-wrap: break-word;
5
+ word-break: auto-phrase;
6
+ }
7
+
8
+ body {
9
+ font-family: system-ui, sans-serif;
10
+ background: var(--bg);
11
+ color: var(--text);
12
+ width: 750px;
13
+ margin: 0 auto 32px;
14
+ padding: 0;
15
+ }
16
+
17
+ main, article.post {
18
+ display: block;
19
+ width: 100%;
20
+ padding: 0 16px;
21
+ }
22
+ article.post {
23
+ border: 2px solid var(--page);
24
+ border-width: 2px 0;
25
+ }
26
+ .pagebox {
27
+ background: var(--page);
28
+ box-shadow: 0px 0px 16px rgba(0, 0, 0, 0.05);
29
+ * {
30
+ line-height: 1.7;
31
+ }
32
+ }
33
+ article.post {
34
+ font-size: 1.05rem;
35
+ padding: 0 20px;
36
+ }
37
+ article.serif {
38
+ font-family: serif;
39
+ }
40
+
41
+ h1, h2, h3 {
42
+ margin: 20px 0 16px;
43
+ color: var(--head);
44
+ line-height: 1.2;
45
+ font-weight: 600;
46
+ }
47
+ h2 {
48
+ padding-bottom: 2px;
49
+ border-bottom: 1.5px solid var(--border);
50
+ }
51
+
52
+ hgroup {
53
+ margin: 20px 0 16px;
54
+ padding-bottom: 8px;
55
+ &:has(h2) {
56
+ border-bottom: 1.5px solid var(--border);
57
+ }
58
+ p, h2, h3, h4, h5, h6 {
59
+ padding: 0;
60
+ margin: 0;
61
+ border-bottom: none;
62
+ }
63
+ }
64
+
65
+ a {
66
+ color: var(--link);
67
+ transition: color 0.1s;
68
+ text-decoration: none;
69
+ &:hover, &:focus {
70
+ color: var(--linkhover);
71
+ text-decoration: underline;
72
+ }
73
+ }
74
+
75
+ i {
76
+ color: var(--gray);
77
+ }
78
+
79
+ ul, ol {
80
+ margin: 16px 32px 16px;
81
+ padding: 0;
82
+ }
83
+ li ul, li ol {
84
+ margin: 0px 24px 4px;
85
+ }
86
+
87
+ table {
88
+ display: block;
89
+ overflow-x: auto;
90
+ white-space: nowrap;
91
+ border-collapse: collapse;
92
+ width: 100%;
93
+ margin: 16px 0;
94
+ th, td {
95
+ padding: 8px 16px;
96
+ border: 1px solid var(--border);
97
+ }
98
+ thead, tfoot {
99
+ background: var(--boxbg);
100
+ }
101
+ tbody tr {
102
+ background: var(--page);
103
+ }
104
+ tbody th {
105
+ background: var(--boxbglight);
106
+ }
107
+ tbody:not(:has(th)) tr:nth-child(even) {
108
+ background: var(--boxbglight);
109
+ }
110
+ }
111
+
112
+ caption {
113
+ caption-side: bottom;
114
+ color: var(--gray);
115
+ }
116
+
117
+ blockquote:not(.tiktok-embed) {
118
+ margin: 16px 0;
119
+ padding: 16px 24px;
120
+ background: var(--boxbg);
121
+ border-left: 4px solid var(--border);
122
+ p {
123
+ margin: 4px 0;
124
+ }
125
+ }
126
+
127
+ pre, code, code * {
128
+ font-family: monospace, system-ui, sans-serif;
129
+ }
130
+ code {
131
+ background: var(--boxbglight);
132
+ border: 1px solid var(--border);
133
+ border-radius: 4px;
134
+ padding: 1px 4px;
135
+ margin: 0 2px;
136
+ }
137
+ pre code {
138
+ direction: ltr;
139
+ display: block;
140
+ border-radius: 6px;
141
+ padding: 8px 12px;
142
+ overflow-x: auto;
143
+ border-width: 1.5px;
144
+ }
145
+
146
+ details {
147
+ margin: 16px 0;
148
+ padding: 8px 16px;
149
+ background: var(--boxbglight);
150
+ border: 1px solid var(--border);
151
+ border-radius: 8px;
152
+ summary {
153
+ font-weight: 600;
154
+ margin: 0;
155
+ padding: 4px 0;
156
+ }
157
+ }
158
+
159
+ hr {
160
+ margin:32px auto;
161
+ width:100%;
162
+ border:1px solid var(--border);
163
+ }
164
+
165
+ img {
166
+ max-width: 100%;
167
+ height: auto;
168
+ }
169
+ body:not(.allow-image-select) img, img.icon {
170
+ pointer-events: none;
171
+ -webkit-touch-callout: none;
172
+ -webkit-user-select: none;
173
+ user-select: none;
174
+ }
175
+
176
+ video {
177
+ background: #000;
178
+ }
179
+
180
+ .icon {
181
+ display: inline-block;
182
+ width: 1em;
183
+ margin: 0;
184
+ vertical-align: bottom;
185
+ }
186
+
187
+ .menu-btn {
188
+ font-weight: bold;
189
+ font-size: 1em;
190
+ background: var(--boxbg);
191
+ color: var(--text);
192
+ text-align: center;
193
+ padding: 4px 8px;
194
+ margin: 2px 4px;
195
+ min-width: 36px;
196
+ min-height: 36px;
197
+ border: 1px solid var(--border);
198
+ border-radius: 6px;
199
+ transition: filter 0.2s;
200
+ .icon {
201
+ width: 24px;
202
+ margin-bottom: 1px;
203
+ }
204
+ &:has(.icon) {
205
+ padding: 4px;
206
+ }
207
+ &:hover, &:focus {
208
+ filter: brightness(0.9);
209
+ text-decoration: none;
210
+ }
211
+ &.subscribe {
212
+ background: var(--link);
213
+ color: var(--bg);
214
+ border: 1px solid var(--link);
215
+ &:hover, &:focus {
216
+ filter: brightness(0.8);
217
+ }
218
+ }
219
+ &#btn {
220
+ display: none;
221
+ }
222
+ }
223
+
224
+ button.shareBtn {
225
+ display: none;
226
+ background: none;
227
+ border: none;
228
+ border-radius: 32px;
229
+ aspect-ratio: 1 / 1;
230
+ height: 34px;
231
+ padding: 0 6px;
232
+ text-align: end;
233
+ transition: background 0.2s;
234
+ &:hover, &.disabled {
235
+ background: var(--boxbg);
236
+ }
237
+ & .icon {
238
+ width: 22px;
239
+ height: 22px;
240
+ }
241
+ & .shareMsg {
242
+ font-size: 0.9rem;
243
+ line-height: 22px;
244
+ }
245
+ &.disabled {
246
+ aspect-ratio: initial;
247
+ pointer-events: none;
248
+ }
249
+ }
250
+
251
+
252
+ span.tag {
253
+ display: inline-block;
254
+ color: var(--gray);
255
+ font-size: 0.9em;
256
+ line-height: 1.4;
257
+ padding: 1px 8px;
258
+ border: 1px solid var(--border);
259
+ border-radius: 16px;
260
+ }
261
+
262
+ span.category {
263
+ display: inline-block;
264
+ font-weight: 500;
265
+ margin: 0;
266
+ }
267
+
268
+ time {
269
+ color: var(--gray);
270
+ font-size: 0.9em;
271
+ }
272
+
273
+ iframe.youtube, iframe.nicovideo, iframe.mastodon-embed {
274
+ display: block;
275
+ margin: 16px 0;
276
+ max-width: 100%;
277
+ height: 315px;
278
+ border: none;
279
+ border-radius: 8px;
280
+ }
281
+
282
+ .twitter-tweet-rendered {
283
+ overflow: scroll;
284
+ margin: 16px auto;
285
+ max-width: 100%;
286
+ border-radius: 12px;
287
+ }
288
+
289
+ header.post {
290
+ margin: 32px 16px 16px;
291
+ h1 {
292
+ font-size: 1.8em;
293
+ margin-bottom: 8px;
294
+ }
295
+ div.meta {
296
+ margin-inline-start: 4px;
297
+ * {
298
+ margin-bottom: 2px;
299
+ }
300
+ div.tags {
301
+ display: inline-block;
302
+ margin: 0 4px;
303
+ span.tag {
304
+ margin: 0 4px;
305
+ }
306
+ }
307
+ div.time {
308
+ display: flex;
309
+ flex-wrap: wrap;
310
+ time {
311
+ margin-inline-end: 10px;
312
+ }
313
+ }
314
+ span.author {
315
+ display: block;
316
+ color: var(--gray);
317
+ font-size: 0.9em;
318
+ }
319
+ }
320
+ }
321
+
322
+ span.license {
323
+ display: block;
324
+ color: var(--gray);
325
+ font-size: 0.9em;
326
+ line-height: 1.4;
327
+ &.post {
328
+ margin: 2px 8px;
329
+ }
330
+ }
331
+
332
+ div.header {
333
+ width: 100%;
334
+ aspect-ratio: 5 / 1;
335
+ margin-bottom: -8px;
336
+ background: var(--boxbg);
337
+ img {
338
+ vertical-align: bottom;
339
+ width: 100%;
340
+ height: 100%;
341
+ object-fit: cover;
342
+ border-radius: 0 0 8px 8px;
343
+ }
344
+ }
345
+
346
+ header.home {
347
+ ul.exlink {
348
+ display: flex;
349
+ flex-wrap: wrap;
350
+ list-style: none;
351
+ margin: 4px 0 0;
352
+ padding: 0 4px;
353
+ li {
354
+ margin: 4px;
355
+ a {
356
+ background: var(--boxbglight);
357
+ border: 1px solid var(--border);
358
+ border-radius: 4px;
359
+ padding: 4px 6px;
360
+ transition: filter 0.15s;
361
+ &:hover, &:focus {
362
+ filter: brightness(0.9);
363
+ }
364
+ }
365
+ }
366
+ }
367
+ div.headline {
368
+ display: flex;
369
+ flex-wrap: wrap;
370
+ align-items: flex-end;
371
+ justify-content: space-between;
372
+ margin: 10px 0 4px;
373
+ min-height: 44px;
374
+ section.sidebutton {
375
+ display: flex;
376
+ flex-wrap: wrap;
377
+ }
378
+ }
379
+ a.proficon {
380
+ display: block;
381
+ width: 108px;
382
+ max-width: 25%;
383
+ min-width: 68px;
384
+ margin: -18% -2px 0;
385
+ border-radius: 8px;
386
+ img, div.dummy {
387
+ display: block;
388
+ width: 100%;
389
+ aspect-ratio: 1 / 1;
390
+ object-fit: cover;
391
+ background: var(--boxbg);
392
+ border: 4px solid var(--bg);
393
+ border-radius: 8px;
394
+ }
395
+ &.round, &.round img, &.round div.dummy{
396
+ border-radius: 50%;
397
+ }
398
+ &.no-header {
399
+ margin-top: 0;
400
+ }
401
+ }
402
+ h1 {
403
+ display: inline-block;
404
+ font-size: 1.5em;
405
+ margin: 0;
406
+ }
407
+ p.bio {
408
+ margin: 8px 0 0;
409
+ }
410
+ h1, p.bio{
411
+ padding: 0 8px;
412
+ }
413
+ span.pronouns {
414
+ color: var(--gray);
415
+ font-size: 0.9em;
416
+ }
417
+ }
418
+
419
+ section.post-list, div.custom-home {
420
+ margin: 8px 0;
421
+ h2 {
422
+ border-bottom: none;
423
+ }
424
+ }
425
+ article.feed-post, div.custom-feed {
426
+ display: block;
427
+ margin: 16px 0;
428
+ padding: 0;
429
+ border: 2px solid var(--page);
430
+ border-radius: 16px;
431
+ transition: border-color 0.2s;
432
+ &:has(a.post-lighter:hover) {
433
+ border-color: var(--border);
434
+ }
435
+ h2 {
436
+ font-size: 1.2em;
437
+ margin: 0;
438
+ }
439
+ a.post-link {
440
+ display: block;
441
+ padding: 10px 20px 0;
442
+ color: var(--text);
443
+ text-decoration: none;
444
+ }
445
+ ul {
446
+ margin: 4px 30px;
447
+ }
448
+ }
449
+ div.post-excerpt {
450
+ p {
451
+ margin: 0;
452
+ }
453
+ iframe.youtube, iframe.nicovideo {
454
+ margin: 6px 0;
455
+ height: 240px;
456
+ }
457
+ }
458
+ div.post-custom {
459
+ a.post-link, div.no-link {
460
+ padding: 10px 20px;
461
+ }
462
+ }
463
+ .post-foot {
464
+ display: flex;
465
+ align-items: center;
466
+ .meta {
467
+ flex: 1 auto;
468
+ a {
469
+ display: inline-block;
470
+ width: 100%;
471
+ padding: 4px 20px 8px;
472
+ }
473
+ }
474
+ span.category {
475
+ font-size: 0.9em;
476
+ color: var(--gray);
477
+ margin-inline-end: 8px;
478
+ }
479
+ time {
480
+ display: inline-block;
481
+ margin-inline-end: 8px;
482
+ }
483
+ div.tags {
484
+ display: inline-block;
485
+ span.tag {
486
+ margin-inline-end: 6px;
487
+ }
488
+ }
489
+ button.shareBtn {
490
+ flex: 0 0 auto;
491
+ margin-inline-end: 8px;
492
+ .icon {
493
+ opacity: 0.5;
494
+ transition: opacity 0.2s;
495
+ }
496
+ &:hover, &:focus, &.disabled {
497
+ background: var(--boxbg);
498
+ .icon {
499
+ opacity: 1;
500
+ }
501
+ }
502
+ }
503
+ }
504
+
505
+ strong.no-posts {
506
+ display: block;
507
+ margin: 16px 0;
508
+ text-align: center;
509
+ font-size: 1.2em;
510
+ font-weight: 600;
511
+ }
512
+
513
+ footer {
514
+ margin: 16px;
515
+ p.copy {
516
+ margin: 16px;
517
+ color: var(--gray);
518
+ text-align: center;
519
+ }
520
+ div.footer-line {
521
+ display: flex;
522
+ flex-wrap: wrap;
523
+ justify-content: center;
524
+ align-items: center;
525
+ }
526
+ }
527
+
528
+ div.miniprof {
529
+ margin: 16px 0;
530
+ div.profline {
531
+ display: flex;
532
+ justify-content: space-between;
533
+ flex-wrap: wrap;
534
+ align-items: center;
535
+ a.proficon {
536
+ text-decoration: none;
537
+ img {
538
+ width: 40px;
539
+ aspect-ratio: 1 / 1;
540
+ object-fit: cover;
541
+ background: var(--boxbg);
542
+ border-radius: 4px;
543
+ vertical-align: middle;
544
+ margin-inline-end: 6px;
545
+ }
546
+ span {
547
+ margin: 0;
548
+ font-size: 1.2em;
549
+ font-weight: 500;
550
+ color: var(--text);
551
+ vertical-align: middle;
552
+ overflow-wrap: anywhere;
553
+ }
554
+ &:hover, &:focus {
555
+ span {
556
+ text-decoration: underline;
557
+ }
558
+ }
559
+ &.round {
560
+ img {
561
+ border-radius: 50%;
562
+ }
563
+ }
564
+ }
565
+ div.sbbutton {
566
+ margin: auto 0;
567
+ }
568
+ }
569
+ &.box {
570
+ margin: 32px auto 0;
571
+ padding: 20px 24px 4px;
572
+ max-width: 600px;
573
+ border: 1.5px solid var(--border);
574
+ border-radius: 16px;
575
+ div.profline a.proficon {
576
+ img {
577
+ width:50px;
578
+ }
579
+ span {
580
+ font-size: 1.4em;
581
+ font-weight: 600;
582
+ }
583
+ }
584
+ }
585
+ div.buttonline {
586
+ display: flex;
587
+ justify-content: space-between;
588
+ flex-wrap: wrap;
589
+ align-items: center;
590
+ button.shareBtn {
591
+ margin: 0 4px;
592
+ }
593
+ }
594
+ }
595
+
596
+ ul.lang-select {
597
+ display: flex;
598
+ flex-wrap: wrap;
599
+ justify-content: center;
600
+ list-style: none;
601
+ margin: 16px;
602
+ padding: 0;
603
+ li a {
604
+ display: block;
605
+ padding: 4px 8px;
606
+ color: var(--gray);
607
+ }
608
+ }
609
+
610
+ @media only screen and (max-width:750px) {
611
+ body {
612
+ width: 100%;
613
+ }
614
+ div.header, div.header img {
615
+ border-radius: 0;
616
+ }
617
+ }
618
+
619
+ @media only screen and (max-width:200px) {
620
+ body {
621
+ width: 200px;
622
+ }
623
+ }
624
+
625
+ @media (prefers-contrast: more) {
626
+ code, pre code {
627
+ background: var(--bg);
628
+ }
629
+ article.post {
630
+ border-color: var(--boxbg);
631
+ }
632
+ article.feed-post, div.custom-feed {
633
+ border-color: var(--border);
634
+ &:has(a.post-lighter:hover) {
635
+ border-color: var(--link);
636
+ }
637
+ }
638
+ }
639
+
@@ -0,0 +1,33 @@
1
+ div.app-box {
2
+ display: flex;
3
+ flex-wrap: wrap;
4
+ margin: 16px 0;
5
+ }
6
+ img.app-icon {
7
+ width: 100px;
8
+ height: 100px;
9
+ vertical-align: top;
10
+ margin-inline-end: 16px;
11
+ border-radius: 8px;
12
+ flex-grow:0;
13
+ }
14
+ div.app-info {
15
+ flex-grow:1;
16
+ width:calc(100% - 116px);
17
+ min-width:166px;
18
+ line-height: 1.2;
19
+ h2, h3, b {
20
+ display: block;
21
+ line-height: 1.2;
22
+ font-size: 1.5em;
23
+ margin: 2px 0;
24
+ padding: 0;
25
+ }
26
+ }
27
+
28
+ article.feed-post, div.custom-feed {
29
+ div.app-box {
30
+ margin: 8px 0;
31
+ }
32
+ }
33
+
@@ -0,0 +1,57 @@
1
+ figure {
2
+ margin: 16px 0;
3
+ &.image img, &.video video {
4
+ display: block;
5
+ margin: 0;
6
+ max-width: 100%;
7
+ min-width: 50%;
8
+ height: auto;
9
+ border-radius: 12px;
10
+ &.pixel {
11
+ image-rendering: pixelated;
12
+ }
13
+ }
14
+ &.image figcaption, &.video figcaption {
15
+ margin: 8px;
16
+ color: var(--gray);
17
+ line-height: 1.4;
18
+ }
19
+ &.audio {
20
+ width: 100%;
21
+ padding: 12px;
22
+ border: 2px solid var(--border);
23
+ border-radius: 22px;
24
+ figcaption {
25
+ display: flex;
26
+ align-items: top;
27
+ margin-bottom: 8px;
28
+ img {
29
+ display: block;
30
+ width: 128px;
31
+ height: 100%;
32
+ border-radius: 12px;
33
+ margin-inline-end: 6px;
34
+ }
35
+ div {
36
+ margin: 0 12px;
37
+ line-height: 1.4;
38
+ }
39
+ }
40
+ audio {
41
+ display: block;
42
+ width: 100%;
43
+ border-radius: 12px;
44
+ }
45
+ }
46
+ }
47
+
48
+ div.post-excerpt {
49
+ figcaption {
50
+ display: none;
51
+ }
52
+ figure.audio {
53
+ padding: 0;
54
+ border: none;
55
+ }
56
+ }
57
+