jekyll-bear-theme 0.2.2 → 0.2.4
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.
- checksums.yaml +4 -4
- data/README.md +15 -11
- data/_layouts/life-in-weeks.html +1 -1
- data/assets/style.css +423 -368
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bf797690bed536ffe7644ac0eda0ef8be4ea909bd115f9c71cbc41762edfa77c
|
4
|
+
data.tar.gz: 6dc66e27382cce24c1a0b64c94d7be4e85113afdfaa1635d793ebd1f377715b3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e4d072da4d9d67c53729675503da52780c2ccfd8918edbd731a01e824f68564b129e784a3d9acda360a532d8173ac3230e60a447800d1940cb37fd9a4716fc9e
|
7
|
+
data.tar.gz: 3d525e9fa0717bcc71250d1370f1699cd3263ed95aca5f4218a49fb0fc259216b91f0e1ad955b290fa0e71860a17179d4841022d07242d3c602ce62e74ace468
|
data/README.md
CHANGED
@@ -17,6 +17,8 @@ This is a port of it's theme to Jekyll, with some tweaks. So you can use GitHub
|
|
17
17
|
- Gallery view for your images
|
18
18
|
- Code highlighting
|
19
19
|
- **Life in Weeks visualization** - Interactive timeline of your life events
|
20
|
+
- **IBM Plex Mono typography** - Consistent monospace font across all elements
|
21
|
+
- **Coffee-themed color palette** - Warm, coffee-inspired colors with automatic dark mode
|
20
22
|
|
21
23
|
## Screenshots
|
22
24
|
|
@@ -57,6 +59,19 @@ Or install it yourself as:
|
|
57
59
|
|
58
60
|
$ gem install jekyll-bear-theme
|
59
61
|
|
62
|
+
### Design Philosophy
|
63
|
+
|
64
|
+
jekyllBear now features a **monospace-first design** with IBM Plex Mono typography, creating a technical yet warm aesthetic. The coffee-themed color palette provides visual comfort while maintaining excellent readability across light and dark modes.
|
65
|
+
|
66
|
+
### Customization
|
67
|
+
|
68
|
+
The theme's CSS is now highly modular and customizable:
|
69
|
+
|
70
|
+
- **Typography**: Modify `--font-main`, `--font-secondary`, and `--font-monospace` variables
|
71
|
+
- **Spacing**: Use the standardized spacing scale for consistent layouts
|
72
|
+
- **Colors**: All theme colors are centralized in CSS custom properties
|
73
|
+
- **Layout**: Responsive design with mobile-first approach
|
74
|
+
|
60
75
|
## Usage
|
61
76
|
|
62
77
|
### Basic Setup
|
@@ -121,17 +136,6 @@ Use them as templates for your front matter.
|
|
121
136
|
|
122
137
|
>To test your theme, run `bundle exec jekyll serve` and open your browser at `http://localhost:4000`.
|
123
138
|
|
124
|
-
|
125
|
-
## Recent Updates: Life in Weeks Interactive Carousel
|
126
|
-
|
127
|
-
- The **Life in Weeks** page now features an interactive carousel blockquote above the grid, showing a key event from your life.
|
128
|
-
- Up/down arrows let you cycle through events. The week number, event name, and description are shown, with the week number highlighted.
|
129
|
-
- As you change the quote, the corresponding week in the grid pulses, visually connecting the event to its week.
|
130
|
-
- The quote area has a fixed height and is vertically centered, so the grid never shifts as you browse events.
|
131
|
-
- The grid is fully non-interactive (no tooltips, no pointer/question mark cursor), for a clean and minimal look.
|
132
|
-
- The carousel arrows are styled to match the theme and do not show a highlight on click.
|
133
|
-
- All code is lean and efficient: no extra network requests, no heavy JS, and all data is embedded at build time for instant loading.
|
134
|
-
|
135
139
|
See `life.md`, `_layouts/life-in-weeks.html`, and `assets/life-carousel.js` for implementation details.
|
136
140
|
|
137
141
|
## Contributing
|
data/_layouts/life-in-weeks.html
CHANGED
@@ -30,7 +30,7 @@ layout: compress
|
|
30
30
|
<span aria-hidden="true">▼</span>
|
31
31
|
</button>
|
32
32
|
</div>
|
33
|
-
<blockquote style="flex: 1; margin: 0; font-size: 1.1em; height:
|
33
|
+
<blockquote style="flex: 1; margin: 0; font-size: 1.1em; min-height: 5em; max-width: 100%; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; line-height: 1.5; font-style: normal;">
|
34
34
|
<span id="life-carousel-quote"></span>
|
35
35
|
<span id="life-carousel-meta" style="font-size: 0.95em; color: var(--main-color); margin-top: 0.5em;"></span>
|
36
36
|
</blockquote>
|
data/assets/style.css
CHANGED
@@ -1,145 +1,46 @@
|
|
1
|
-
/*
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
/* Pulse effect for carousel-selected week */
|
8
|
-
.carousel-pulse {
|
9
|
-
animation: carousel-pulse 1.2s cubic-bezier(0.4,0,0.6,1) infinite;
|
10
|
-
border-width: 2px !important;
|
11
|
-
border-color: var(--link-color) !important;
|
12
|
-
box-shadow: 0 0 10px rgba(124, 64, 17, 0.5);
|
13
|
-
z-index: 2;
|
14
|
-
}
|
15
|
-
|
16
|
-
@keyframes carousel-pulse {
|
17
|
-
0% {
|
18
|
-
transform: scale(1);
|
19
|
-
opacity: 1;
|
20
|
-
}
|
21
|
-
50% {
|
22
|
-
transform: scale(1.18);
|
23
|
-
opacity: 0.7;
|
24
|
-
}
|
25
|
-
100% {
|
26
|
-
transform: scale(1);
|
27
|
-
opacity: 1;
|
28
|
-
}
|
29
|
-
}
|
30
|
-
/* Carousel arrow button styles */
|
31
|
-
#life-carousel-up, #life-carousel-down {
|
32
|
-
background: none;
|
33
|
-
border: none;
|
34
|
-
cursor: pointer;
|
35
|
-
font-size: 1.5em;
|
36
|
-
line-height: 1;
|
37
|
-
padding: 0.2em;
|
38
|
-
color: var(--main-color);
|
39
|
-
outline: none;
|
40
|
-
user-select: none;
|
41
|
-
-webkit-tap-highlight-color: transparent;
|
42
|
-
transition: color 0.2s;
|
43
|
-
}
|
44
|
-
#life-carousel-up:focus, #life-carousel-down:focus, #life-carousel-up:active, #life-carousel-down:active {
|
45
|
-
outline: none;
|
46
|
-
box-shadow: none;
|
47
|
-
background: none;
|
48
|
-
color: var(--main-color);
|
49
|
-
}
|
50
|
-
#life-carousel-up span, #life-carousel-down span {
|
51
|
-
color: inherit;
|
52
|
-
}
|
53
|
-
/* Tooltip for event squares */
|
54
|
-
|
55
|
-
.week[data-event] {
|
56
|
-
position: relative;
|
57
|
-
cursor: default !important;
|
58
|
-
}
|
59
|
-
|
60
|
-
.week {
|
61
|
-
cursor: default !important;
|
62
|
-
}
|
1
|
+
/* =============================================================================
|
2
|
+
JEKYLL BEAR THEME - COFFEE AESTHETIC
|
3
|
+
============================================================================= */
|
4
|
+
/* =============================================================================
|
5
|
+
FONTS & IMPORTS
|
6
|
+
============================================================================= */
|
63
7
|
|
64
|
-
|
65
|
-
@media (hover: hover) {
|
66
|
-
.week[data-event]:hover::after {
|
67
|
-
content: attr(data-event);
|
68
|
-
position: absolute;
|
69
|
-
background: var(--background-color);
|
70
|
-
color: var(--text-color);
|
71
|
-
padding: 0.6rem;
|
72
|
-
border-radius: 0.2rem;
|
73
|
-
border: 1px solid var(--blockquote-color);
|
74
|
-
font-size: 1rem;
|
75
|
-
font-family: var(--font-thin);
|
76
|
-
font-weight: normal;
|
77
|
-
line-height: 1.2;
|
78
|
-
white-space: pre-line;
|
79
|
-
z-index: 100;
|
80
|
-
box-shadow: 0 4px 16px rgba(0,0,0,0.18);
|
81
|
-
top: 130%;
|
82
|
-
left: 50%;
|
83
|
-
transform: translateX(-50%);
|
84
|
-
pointer-events: none;
|
85
|
-
max-width: 30vw;
|
86
|
-
min-width: max-content;
|
87
|
-
width: max-content;
|
88
|
-
text-align: left;
|
89
|
-
display: flex;
|
90
|
-
align-items: center;
|
91
|
-
vertical-align: baseline;
|
92
|
-
}
|
93
|
-
}
|
94
|
-
|
95
|
-
/* Mobile: show tooltip on active/focus */
|
96
|
-
@media (hover: none) {
|
97
|
-
.week[data-event]:active::after,
|
98
|
-
.week[data-event]:focus::after {
|
99
|
-
content: attr(data-event);
|
100
|
-
position: absolute;
|
101
|
-
background: var(--background-color);
|
102
|
-
color: var(--text-color);
|
103
|
-
padding: 0.6rem;
|
104
|
-
border-radius: 0.2rem;
|
105
|
-
border: 1px solid var(--blockquote-color);
|
106
|
-
font-size: 1rem;
|
107
|
-
font-family: var(--font-thin);
|
108
|
-
font-weight: normal;
|
109
|
-
line-height: 1.2;
|
110
|
-
white-space: pre-line;
|
111
|
-
z-index: 100;
|
112
|
-
box-shadow: 0 4px 16px rgba(0,0,0,0.18);
|
113
|
-
top: 130%;
|
114
|
-
left: 50%;
|
115
|
-
transform: translateX(-50%);
|
116
|
-
pointer-events: none;
|
117
|
-
max-width: 50vw;
|
118
|
-
min-width: max-content;
|
119
|
-
width: max-content;
|
120
|
-
text-align: left;
|
121
|
-
display: flex;
|
122
|
-
align-items: center;
|
123
|
-
vertical-align: baseline;
|
124
|
-
}
|
125
|
-
|
126
|
-
.week[data-event] {
|
127
|
-
-webkit-tap-highlight-color: transparent;
|
128
|
-
outline: none;
|
129
|
-
}
|
130
|
-
}
|
8
|
+
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;1,100;1,200;1,300;1,400;1,500;1,600;1,700&display=swap');
|
131
9
|
|
132
|
-
|
133
|
-
|
134
|
-
|
10
|
+
/* =============================================================================
|
11
|
+
CSS CUSTOM PROPERTIES (VARIABLES)
|
12
|
+
============================================================================= */
|
135
13
|
|
136
14
|
:root {
|
137
|
-
|
138
|
-
--
|
139
|
-
|
140
|
-
|
15
|
+
/* Layout */
|
16
|
+
--width: 720px;
|
17
|
+
|
18
|
+
/* Typography */
|
19
|
+
--font-main: 'IBM Plex Mono', monospace;
|
20
|
+
--font-secondary: 'IBM Plex Mono', monospace;
|
141
21
|
--font-monospace: 'IBM Plex Mono', monospace;
|
142
|
-
--font-scale: .
|
22
|
+
--font-scale: 0.9em;
|
23
|
+
|
24
|
+
/* Spacing */
|
25
|
+
--spacing-xs: 5px;
|
26
|
+
--spacing-sm: 10px;
|
27
|
+
--spacing-md: 20px;
|
28
|
+
--spacing-lg: 40px;
|
29
|
+
--spacing-xl: 60px;
|
30
|
+
|
31
|
+
/* Border radius */
|
32
|
+
--radius-sm: 3px;
|
33
|
+
--radius-md: 5px;
|
34
|
+
|
35
|
+
/* Transitions */
|
36
|
+
--transition-fast: 0.2s;
|
37
|
+
--transition-normal: 0.3s;
|
38
|
+
|
39
|
+
/* Z-index scale */
|
40
|
+
--z-dropdown: 200;
|
41
|
+
--z-modal: 1000;
|
42
|
+
|
43
|
+
/* Coffee Theme Colors - Light Mode */
|
143
44
|
--background-color: #F8F1E5; /* Lighter cream */
|
144
45
|
--heading-color: #2C1E15; /* Darker roast coffee */
|
145
46
|
--text-color: #1F1408; /* Darker espresso */
|
@@ -149,8 +50,14 @@
|
|
149
50
|
--code-background-color: #E6D7C3; /* Coffee stained paper */
|
150
51
|
--code-color: #2C1E15; /* Darker roast coffee */
|
151
52
|
--blockquote-color: #B99B6B; /* Darker café latte foam */
|
53
|
+
|
54
|
+
/* Interactive colors derived from theme */
|
55
|
+
--hover-color: white;
|
56
|
+
--border-color: var(--blockquote-color);
|
57
|
+
--shadow-color: rgba(0, 0, 0, 0.18);
|
152
58
|
}
|
153
59
|
|
60
|
+
/* Dark Mode Color Overrides */
|
154
61
|
@media (prefers-color-scheme: dark) {
|
155
62
|
:root {
|
156
63
|
--background-color: #1A1310; /* Darker espresso */
|
@@ -165,11 +72,15 @@
|
|
165
72
|
}
|
166
73
|
}
|
167
74
|
|
75
|
+
/* =============================================================================
|
76
|
+
BASE STYLES
|
77
|
+
============================================================================= */
|
78
|
+
|
168
79
|
body {
|
169
80
|
font-family: var(--font-secondary);
|
170
81
|
font-size: var(--font-scale);
|
171
82
|
margin: auto;
|
172
|
-
padding:
|
83
|
+
padding: var(--spacing-md);
|
173
84
|
max-width: var(--width);
|
174
85
|
text-align: left;
|
175
86
|
background-color: var(--background-color);
|
@@ -179,33 +90,63 @@ body {
|
|
179
90
|
color: var(--text-color);
|
180
91
|
}
|
181
92
|
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
h5,
|
187
|
-
h6 {
|
93
|
+
/* =============================================================================
|
94
|
+
TYPOGRAPHY
|
95
|
+
============================================================================= */
|
96
|
+
|
97
|
+
h1, h2, h3, h4, h5, h6 {
|
188
98
|
font-family: var(--font-main);
|
189
99
|
color: var(--heading-color);
|
190
100
|
}
|
191
101
|
|
102
|
+
strong, b {
|
103
|
+
color: var(--heading-color);
|
104
|
+
}
|
105
|
+
|
106
|
+
/* =============================================================================
|
107
|
+
LINKS
|
108
|
+
============================================================================= */
|
109
|
+
|
192
110
|
a {
|
193
111
|
color: var(--link-color);
|
194
112
|
font-family: var(--font-main);
|
195
113
|
cursor: pointer;
|
196
114
|
text-decoration: none;
|
197
115
|
border-bottom: 3px solid var(--main-color);
|
116
|
+
transition: all var(--transition-fast) ease;
|
198
117
|
}
|
199
118
|
|
200
119
|
a:hover {
|
201
120
|
background-color: var(--main-color);
|
202
|
-
color:
|
121
|
+
color: var(--hover-color);
|
203
122
|
text-decoration: none;
|
204
123
|
}
|
205
124
|
|
125
|
+
a:visited {
|
126
|
+
color: var(--visited-color);
|
127
|
+
}
|
128
|
+
|
129
|
+
/* External link marker */
|
130
|
+
a[href^="http"]:where(:not([href*="knhash.in/"])):not(:has(img))::after {
|
131
|
+
content: "↗";
|
132
|
+
font-family: var(--font-monospace);
|
133
|
+
}
|
134
|
+
|
135
|
+
.title:hover {
|
136
|
+
text-decoration: none;
|
137
|
+
}
|
138
|
+
|
139
|
+
.title h1 {
|
140
|
+
font-size: 1.5em;
|
141
|
+
}
|
142
|
+
|
143
|
+
/* =============================================================================
|
144
|
+
LAYOUT COMPONENTS
|
145
|
+
============================================================================= */
|
146
|
+
|
206
147
|
header {
|
207
|
-
margin-bottom:
|
208
|
-
padding-bottom:
|
148
|
+
margin-bottom: var(--spacing-lg);
|
149
|
+
padding-bottom: var(--spacing-md);
|
209
150
|
border-bottom: 3px dotted var(--main-color);
|
210
151
|
}
|
211
152
|
|
@@ -213,69 +154,51 @@ nav a {
|
|
213
154
|
margin-right: 8px;
|
214
155
|
}
|
215
156
|
|
216
|
-
|
217
|
-
|
218
|
-
color: var(--heading-color);
|
157
|
+
main {
|
158
|
+
line-height: 1.6;
|
219
159
|
}
|
220
160
|
|
221
|
-
|
222
|
-
margin:
|
223
|
-
|
161
|
+
footer {
|
162
|
+
margin-top: var(--spacing-lg);
|
163
|
+
border-top: 3px dotted var(--main-color);
|
164
|
+
padding: 25px 0;
|
165
|
+
text-align: center;
|
224
166
|
}
|
225
167
|
|
226
|
-
|
227
|
-
|
168
|
+
footer > span:has(a[href="https://bearblog.dev"]) {
|
169
|
+
display: none;
|
228
170
|
}
|
229
171
|
|
230
|
-
|
231
|
-
|
232
|
-
|
172
|
+
/* =============================================================================
|
173
|
+
CONTENT ELEMENTS
|
174
|
+
============================================================================= */
|
233
175
|
|
234
176
|
hr {
|
235
177
|
border: 0;
|
236
|
-
border-top: 1px dashed;
|
178
|
+
border-top: 1px dashed var(--border-color);
|
237
179
|
}
|
238
180
|
|
239
181
|
img {
|
240
182
|
max-width: 100%;
|
241
183
|
}
|
242
184
|
|
243
|
-
code {
|
244
|
-
font-family: var(--font-monospace);
|
245
|
-
padding: 2px;
|
246
|
-
background-color: var(--code-background-color);
|
247
|
-
color: var(--code-color);
|
248
|
-
border-radius: 3px;
|
249
|
-
}
|
250
|
-
|
251
185
|
blockquote {
|
252
186
|
border-left: 1px solid var(--blockquote-color);
|
253
187
|
color: var(--code-color);
|
254
|
-
padding-left:
|
188
|
+
padding-left: var(--spacing-md);
|
255
189
|
font-style: italic;
|
256
190
|
}
|
257
191
|
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
padding: 25px 0;
|
262
|
-
text-align: center;
|
263
|
-
}
|
192
|
+
/* =============================================================================
|
193
|
+
CODE & SYNTAX HIGHLIGHTING
|
194
|
+
============================================================================= */
|
264
195
|
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
}
|
272
|
-
|
273
|
-
.title h1 {
|
274
|
-
font-size: 1.5em;
|
275
|
-
}
|
276
|
-
|
277
|
-
.inline {
|
278
|
-
width: auto !important;
|
196
|
+
code {
|
197
|
+
font-family: var(--font-monospace);
|
198
|
+
padding: 2px;
|
199
|
+
background-color: var(--code-background-color);
|
200
|
+
color: var(--code-color);
|
201
|
+
border-radius: var(--radius-sm);
|
279
202
|
}
|
280
203
|
|
281
204
|
.highlight,
|
@@ -283,13 +206,31 @@ footer > span:has(a[href="https://bearblog.dev"]) {
|
|
283
206
|
padding: 1px 15px;
|
284
207
|
background-color: var(--code-background-color);
|
285
208
|
color: var(--code-color);
|
286
|
-
border-radius:
|
209
|
+
border-radius: var(--radius-sm);
|
287
210
|
margin-block-start: 1em;
|
288
211
|
margin-block-end: 1em;
|
289
212
|
overflow-x: auto;
|
290
213
|
}
|
291
214
|
|
292
|
-
/*
|
215
|
+
/* =============================================================================
|
216
|
+
TABLES
|
217
|
+
============================================================================= */
|
218
|
+
|
219
|
+
table {
|
220
|
+
width: 100%;
|
221
|
+
border-spacing: 0;
|
222
|
+
}
|
223
|
+
|
224
|
+
th, td {
|
225
|
+
padding: 6px 13px;
|
226
|
+
border: 1px solid var(--border-color);
|
227
|
+
font-size: 1em;
|
228
|
+
}
|
229
|
+
|
230
|
+
/* =============================================================================
|
231
|
+
BLOG POST LISTINGS
|
232
|
+
============================================================================= */
|
233
|
+
|
293
234
|
ul.blog-posts {
|
294
235
|
list-style-type: none;
|
295
236
|
padding: unset;
|
@@ -297,279 +238,393 @@ ul.blog-posts {
|
|
297
238
|
|
298
239
|
ul.blog-posts li {
|
299
240
|
display: flex;
|
300
|
-
margin-bottom:
|
301
|
-
}
|
302
|
-
|
303
|
-
i time {
|
304
|
-
font-style: normal;
|
305
|
-
opacity: 0.7;
|
241
|
+
margin-bottom: var(--spacing-sm);
|
306
242
|
}
|
307
243
|
|
308
244
|
ul.blog-posts li span {
|
309
245
|
flex: 0 0 130px;
|
310
246
|
}
|
311
247
|
|
312
|
-
|
313
248
|
ul.blog-posts li a:visited {
|
314
249
|
color: var(--visited-color);
|
315
250
|
}
|
316
251
|
|
317
|
-
|
318
|
-
|
252
|
+
i time {
|
253
|
+
font-style: normal;
|
254
|
+
opacity: 0.7;
|
319
255
|
}
|
320
256
|
|
321
|
-
|
322
|
-
|
323
|
-
|
324
|
-
|
257
|
+
/* =============================================================================
|
258
|
+
UTILITY CLASSES
|
259
|
+
============================================================================= */
|
260
|
+
|
261
|
+
.inline {
|
262
|
+
width: auto !important;
|
325
263
|
}
|
326
264
|
|
327
|
-
|
328
|
-
|
329
|
-
|
330
|
-
font-family: var(--font-monospace);
|
265
|
+
button {
|
266
|
+
margin: 0;
|
267
|
+
cursor: pointer;
|
331
268
|
}
|
332
269
|
|
333
|
-
/*
|
270
|
+
/* =============================================================================
|
271
|
+
FORM ELEMENTS
|
272
|
+
============================================================================= */
|
273
|
+
|
334
274
|
input, button, textarea, select {
|
335
|
-
|
336
|
-
|
337
|
-
|
338
|
-
|
275
|
+
margin: 0;
|
276
|
+
padding: 0;
|
277
|
+
box-sizing: border-box;
|
278
|
+
font: inherit;
|
339
279
|
}
|
280
|
+
|
340
281
|
legend {
|
341
|
-
|
342
|
-
|
282
|
+
margin: var(--spacing-md) 0;
|
283
|
+
font-weight: bold;
|
343
284
|
}
|
285
|
+
|
344
286
|
label {
|
345
|
-
|
346
|
-
|
287
|
+
display: block;
|
288
|
+
font-weight: bold;
|
347
289
|
}
|
348
|
-
|
349
|
-
textarea {
|
350
|
-
|
351
|
-
|
352
|
-
|
353
|
-
|
354
|
-
|
355
|
-
|
290
|
+
|
291
|
+
input, textarea {
|
292
|
+
margin: 0 0 var(--spacing-sm);
|
293
|
+
padding: var(--spacing-xs) var(--spacing-sm);
|
294
|
+
color: var(--text-color);
|
295
|
+
background: var(--code-background-color);
|
296
|
+
border: 2px solid var(--link-color);
|
297
|
+
border-radius: var(--radius-md);
|
356
298
|
}
|
299
|
+
|
357
300
|
input {
|
358
|
-
|
301
|
+
width: 55%;
|
359
302
|
}
|
303
|
+
|
360
304
|
textarea {
|
361
|
-
|
362
|
-
}
|
363
|
-
|
364
|
-
|
365
|
-
|
366
|
-
|
367
|
-
|
368
|
-
|
369
|
-
|
370
|
-
|
371
|
-
|
305
|
+
width: 95%;
|
306
|
+
}
|
307
|
+
|
308
|
+
input[type=button],
|
309
|
+
input[type=submit],
|
310
|
+
input[type=reset] {
|
311
|
+
margin: 0 0 var(--spacing-md);
|
312
|
+
padding: 7px;
|
313
|
+
font-family: var(--font-secondary);
|
314
|
+
font-weight: bold;
|
315
|
+
color: var(--background-color);
|
316
|
+
background: var(--link-color);
|
317
|
+
border-radius: var(--radius-md);
|
318
|
+
cursor: pointer;
|
372
319
|
}
|
320
|
+
|
373
321
|
::placeholder {
|
374
|
-
|
375
|
-
|
322
|
+
color: var(--text-color);
|
323
|
+
opacity: 0.7;
|
376
324
|
}
|
377
325
|
|
378
|
-
/*
|
326
|
+
/* =============================================================================
|
327
|
+
LIFE IN WEEKS - MAIN COMPONENT
|
328
|
+
============================================================================= */
|
329
|
+
|
379
330
|
.life-in-weeks {
|
380
|
-
|
331
|
+
margin: var(--spacing-md) 0;
|
381
332
|
}
|
382
333
|
|
383
334
|
.weeks-grid {
|
384
|
-
|
385
|
-
|
386
|
-
|
387
|
-
|
388
|
-
|
389
|
-
|
335
|
+
margin: var(--spacing-xl) 0;
|
336
|
+
display: flex;
|
337
|
+
flex-wrap: wrap;
|
338
|
+
gap: 2px;
|
339
|
+
max-width: 100%;
|
340
|
+
align-items: flex-start;
|
390
341
|
}
|
391
342
|
|
392
|
-
/*
|
393
|
-
|
343
|
+
/* Week Square Base Styles */
|
394
344
|
.week {
|
395
|
-
|
396
|
-
|
397
|
-
|
398
|
-
|
399
|
-
|
400
|
-
|
401
|
-
|
402
|
-
|
403
|
-
|
404
|
-
|
405
|
-
|
406
|
-
|
407
|
-
|
408
|
-
|
409
|
-
|
410
|
-
|
411
|
-
|
412
|
-
|
345
|
+
width: 16px;
|
346
|
+
height: 16px;
|
347
|
+
border: 1px solid var(--main-color);
|
348
|
+
background-color: var(--background-color);
|
349
|
+
display: inline-flex;
|
350
|
+
align-items: center;
|
351
|
+
justify-content: center;
|
352
|
+
position: relative;
|
353
|
+
cursor: default;
|
354
|
+
font-family: var(--font-secondary);
|
355
|
+
font-size: var(--font-scale);
|
356
|
+
line-height: 1.5;
|
357
|
+
padding: 2px;
|
358
|
+
white-space: nowrap;
|
359
|
+
box-sizing: border-box;
|
360
|
+
transition: all var(--transition-fast) ease;
|
361
|
+
}
|
362
|
+
|
363
|
+
/* Week Square State Variations */
|
413
364
|
.week.decade-0 {
|
414
|
-
|
365
|
+
background-color: var(--background-color);
|
415
366
|
}
|
416
367
|
|
417
368
|
.week.decade-1 {
|
418
|
-
|
369
|
+
background-color: var(--code-background-color);
|
419
370
|
}
|
420
371
|
|
421
372
|
.week.future {
|
422
|
-
|
423
|
-
|
424
|
-
|
373
|
+
background-color: transparent;
|
374
|
+
border-color: var(--blockquote-color);
|
375
|
+
opacity: 0.3;
|
425
376
|
}
|
426
377
|
|
427
378
|
.week.decade-1.future {
|
428
|
-
|
429
|
-
|
379
|
+
background-color: var(--code-background-color);
|
380
|
+
opacity: 0.2;
|
430
381
|
}
|
431
382
|
|
432
383
|
.week.has-events {
|
433
|
-
|
434
|
-
|
435
|
-
|
436
|
-
|
437
|
-
|
384
|
+
border-color: var(--visited-color);
|
385
|
+
background-color: var(--blockquote-color);
|
386
|
+
color: inherit;
|
387
|
+
font-size: var(--font-scale);
|
388
|
+
padding: 0;
|
438
389
|
}
|
439
390
|
|
440
391
|
.week.has-events.future {
|
441
|
-
|
442
|
-
|
443
|
-
|
392
|
+
border-color: var(--blockquote-color);
|
393
|
+
opacity: 0.6;
|
394
|
+
color: var(--blockquote-color);
|
444
395
|
}
|
445
396
|
|
397
|
+
/* Current Week Animation */
|
446
398
|
.week.current {
|
447
|
-
|
448
|
-
|
449
|
-
|
450
|
-
|
399
|
+
animation: pulse 2s ease-in-out infinite;
|
400
|
+
border-width: 2px;
|
401
|
+
border-color: var(--link-color);
|
402
|
+
box-shadow: 0 0 10px rgba(124, 64, 17, 0.3);
|
451
403
|
}
|
452
404
|
|
453
405
|
.week.current.has-events {
|
454
|
-
|
406
|
+
box-shadow: 0 0 10px rgba(124, 64, 17, 0.5);
|
455
407
|
}
|
456
408
|
|
457
409
|
@keyframes pulse {
|
458
|
-
|
459
|
-
|
460
|
-
|
461
|
-
|
462
|
-
|
463
|
-
|
464
|
-
|
465
|
-
|
466
|
-
|
467
|
-
|
468
|
-
|
469
|
-
|
410
|
+
0% {
|
411
|
+
transform: scale(1);
|
412
|
+
opacity: 1;
|
413
|
+
}
|
414
|
+
50% {
|
415
|
+
transform: scale(1.1);
|
416
|
+
opacity: 0.7;
|
417
|
+
}
|
418
|
+
100% {
|
419
|
+
transform: scale(1);
|
420
|
+
opacity: 1;
|
421
|
+
}
|
470
422
|
}
|
471
423
|
|
424
|
+
/* Dark Mode Week Adjustments */
|
472
425
|
@media (prefers-color-scheme: dark) {
|
473
|
-
|
474
|
-
|
475
|
-
|
476
|
-
|
477
|
-
|
478
|
-
|
479
|
-
|
426
|
+
.week.current {
|
427
|
+
box-shadow: 0 0 10px rgba(229, 162, 84, 0.3);
|
428
|
+
}
|
429
|
+
|
430
|
+
.week.current.has-events {
|
431
|
+
box-shadow: 0 0 10px rgba(229, 162, 84, 0.5);
|
432
|
+
}
|
480
433
|
}
|
481
434
|
|
435
|
+
/* =============================================================================
|
436
|
+
LIFE IN WEEKS - INTERACTIVE COMPONENTS
|
437
|
+
============================================================================= */
|
438
|
+
|
439
|
+
/* Event Indicator */
|
482
440
|
.event-indicator {
|
483
|
-
|
484
|
-
|
485
|
-
|
486
|
-
|
487
|
-
|
488
|
-
|
489
|
-
|
441
|
+
position: absolute;
|
442
|
+
top: 50%;
|
443
|
+
left: 50%;
|
444
|
+
transform: translate(-50%, -50%);
|
445
|
+
color: var(--background-color);
|
446
|
+
font-size: 8px;
|
447
|
+
line-height: 1;
|
490
448
|
}
|
491
449
|
|
450
|
+
/* Events List */
|
492
451
|
.events-list {
|
493
|
-
|
494
|
-
|
495
|
-
|
496
|
-
|
452
|
+
margin: var(--spacing-lg) 0;
|
453
|
+
padding: var(--spacing-md);
|
454
|
+
background-color: var(--code-background-color);
|
455
|
+
border-radius: var(--radius-md);
|
497
456
|
}
|
498
457
|
|
499
458
|
.events-list h3 {
|
500
|
-
|
501
|
-
|
502
|
-
|
503
|
-
|
459
|
+
margin-top: 0;
|
460
|
+
color: var(--heading-color);
|
461
|
+
border-bottom: 1px solid var(--main-color);
|
462
|
+
padding-bottom: var(--spacing-sm);
|
504
463
|
}
|
505
464
|
|
506
465
|
.event-item {
|
507
|
-
|
508
|
-
|
509
|
-
|
510
|
-
|
511
|
-
|
466
|
+
margin: var(--spacing-sm) 0;
|
467
|
+
padding: 8px 0;
|
468
|
+
border-bottom: 1px dotted var(--blockquote-color);
|
469
|
+
font-size: 0.9em;
|
470
|
+
line-height: 1.4;
|
512
471
|
}
|
513
472
|
|
514
473
|
.event-item:last-child {
|
515
|
-
|
474
|
+
border-bottom: none;
|
516
475
|
}
|
517
476
|
|
518
477
|
.event-year {
|
519
|
-
|
520
|
-
|
521
|
-
|
522
|
-
|
478
|
+
color: var(--main-color);
|
479
|
+
margin-right: 15px;
|
480
|
+
min-width: 50px;
|
481
|
+
display: inline-block;
|
523
482
|
}
|
524
483
|
|
525
484
|
.event-name {
|
526
|
-
|
527
|
-
|
485
|
+
color: var(--heading-color);
|
486
|
+
margin-right: var(--spacing-sm);
|
528
487
|
}
|
529
488
|
|
530
489
|
.event-desc {
|
531
|
-
|
532
|
-
|
533
|
-
|
534
|
-
|
535
|
-
|
490
|
+
color: var(--text-color);
|
491
|
+
font-style: italic;
|
492
|
+
display: block;
|
493
|
+
margin-top: var(--spacing-xs);
|
494
|
+
margin-left: 65px;
|
495
|
+
}
|
496
|
+
|
497
|
+
/* =============================================================================
|
498
|
+
LIFE IN WEEKS - CAROUSEL COMPONENTS
|
499
|
+
============================================================================= */
|
500
|
+
|
501
|
+
/* Highlighted week number in carousel quote */
|
502
|
+
.carousel-weeknum {
|
503
|
+
color: var(--link-color);
|
504
|
+
font-weight: bold;
|
505
|
+
font-style: normal;
|
506
|
+
}
|
507
|
+
|
508
|
+
/* Pulse effect for carousel-selected week */
|
509
|
+
.carousel-pulse {
|
510
|
+
animation: carousel-pulse 1.2s cubic-bezier(0.4,0,0.6,1) infinite;
|
511
|
+
border-width: 2px !important;
|
512
|
+
border-color: var(--link-color) !important;
|
513
|
+
box-shadow: 0 0 10px rgba(124, 64, 17, 0.5);
|
514
|
+
z-index: 2;
|
515
|
+
}
|
516
|
+
|
517
|
+
@keyframes carousel-pulse {
|
518
|
+
0% {
|
519
|
+
transform: scale(1);
|
520
|
+
opacity: 1;
|
521
|
+
}
|
522
|
+
50% {
|
523
|
+
transform: scale(1.18);
|
524
|
+
opacity: 0.7;
|
525
|
+
}
|
526
|
+
100% {
|
527
|
+
transform: scale(1);
|
528
|
+
opacity: 1;
|
529
|
+
}
|
536
530
|
}
|
537
531
|
|
538
|
-
/*
|
532
|
+
/* Carousel arrow button styles */
|
533
|
+
#life-carousel-up,
|
534
|
+
#life-carousel-down {
|
535
|
+
background: none;
|
536
|
+
border: none;
|
537
|
+
cursor: pointer;
|
538
|
+
font-size: 1.5em;
|
539
|
+
line-height: 1;
|
540
|
+
padding: 0.2em;
|
541
|
+
color: var(--main-color);
|
542
|
+
outline: none;
|
543
|
+
user-select: none;
|
544
|
+
-webkit-tap-highlight-color: transparent;
|
545
|
+
transition: color var(--transition-fast);
|
546
|
+
}
|
547
|
+
|
548
|
+
#life-carousel-up:focus,
|
549
|
+
#life-carousel-down:focus,
|
550
|
+
#life-carousel-up:active,
|
551
|
+
#life-carousel-down:active {
|
552
|
+
outline: none;
|
553
|
+
box-shadow: none;
|
554
|
+
background: none;
|
555
|
+
color: var(--main-color);
|
556
|
+
}
|
557
|
+
|
558
|
+
#life-carousel-up span,
|
559
|
+
#life-carousel-down span {
|
560
|
+
color: inherit;
|
561
|
+
}
|
562
|
+
|
563
|
+
/* =============================================================================
|
564
|
+
RESPONSIVE DESIGN
|
565
|
+
============================================================================= */
|
566
|
+
|
567
|
+
/* Large screens - optimize week grid sizing */
|
568
|
+
@media (max-width: 1200px) {
|
569
|
+
.week {
|
570
|
+
width: calc((100vw - 40px - (51 * 2px)) / 52);
|
571
|
+
height: calc((100vw - 40px - (51 * 2px)) / 52);
|
572
|
+
font-size: calc(var(--font-scale) * 0.8);
|
573
|
+
padding: 0;
|
574
|
+
min-width: 8px;
|
575
|
+
min-height: 8px;
|
576
|
+
}
|
577
|
+
|
578
|
+
.week.has-events {
|
579
|
+
font-size: calc(var(--font-scale) * 0.8);
|
580
|
+
padding: 0;
|
581
|
+
}
|
582
|
+
}
|
583
|
+
|
584
|
+
/* Tablet screens */
|
539
585
|
@media (max-width: 768px) {
|
540
|
-
|
541
|
-
|
542
|
-
|
543
|
-
|
544
|
-
|
545
|
-
|
546
|
-
|
547
|
-
|
548
|
-
|
549
|
-
|
550
|
-
|
551
|
-
|
552
|
-
|
553
|
-
|
554
|
-
|
586
|
+
.week {
|
587
|
+
width: calc((100vw - 40px - (51 * 1px)) / 52);
|
588
|
+
height: calc((100vw - 40px - (51 * 1px)) / 52);
|
589
|
+
font-size: calc(var(--font-scale) * 0.7);
|
590
|
+
padding: 0;
|
591
|
+
min-width: 8px;
|
592
|
+
min-height: 8px;
|
593
|
+
}
|
594
|
+
|
595
|
+
.week.has-events {
|
596
|
+
font-size: calc(var(--font-scale) * 0.7);
|
597
|
+
padding: 0;
|
598
|
+
}
|
599
|
+
|
600
|
+
.weeks-grid {
|
601
|
+
gap: 1px;
|
602
|
+
}
|
603
|
+
|
604
|
+
.event-desc {
|
605
|
+
margin-left: 0;
|
606
|
+
}
|
555
607
|
}
|
556
608
|
|
609
|
+
/* Mobile screens */
|
557
610
|
@media (max-width: 480px) {
|
558
|
-
|
559
|
-
|
560
|
-
|
561
|
-
|
562
|
-
|
563
|
-
|
564
|
-
|
565
|
-
|
566
|
-
|
567
|
-
|
568
|
-
|
569
|
-
|
570
|
-
|
571
|
-
|
572
|
-
|
611
|
+
.week {
|
612
|
+
width: calc((100vw - 40px - (51 * 1px)) / 52);
|
613
|
+
height: calc((100vw - 40px - (51 * 1px)) / 52);
|
614
|
+
font-size: calc(var(--font-scale) * 0.6);
|
615
|
+
padding: 0;
|
616
|
+
min-width: 8px;
|
617
|
+
min-height: 8px;
|
618
|
+
}
|
619
|
+
|
620
|
+
.week.has-events {
|
621
|
+
font-size: calc(var(--font-scale) * 0.6);
|
622
|
+
padding: 0;
|
623
|
+
}
|
624
|
+
|
625
|
+
.weeks-grid {
|
626
|
+
gap: 1px;
|
627
|
+
}
|
573
628
|
}
|
574
629
|
|
575
630
|
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jekyll-bear-theme
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- knhash
|
8
8
|
bindir: bin
|
9
9
|
cert_chain: []
|
10
|
-
date: 2025-07-
|
10
|
+
date: 2025-07-18 00:00:00.000000000 Z
|
11
11
|
dependencies:
|
12
12
|
- !ruby/object:Gem::Dependency
|
13
13
|
name: jekyll
|