A charming Jekyll theme.
jekyll-theme
at main 395 lines 7.2 kB view raw
1 2 3@layer reset { 4 /* 5 Theme Defaults 6 */ 7 :root { 8 --font-headings: ui-serif, serif; 9 --font-body: ui-sans-serif, sans-serif; 10 --font-code: ui-monospace, monospace; 11 12 --text-size: 1.4rem; 13 --text-line-height: 1.65; 14 --spacing: 2rem; 15 16 --transition-duration: 250ms; 17 18 --site-width: 700px; 19 --content-width: 420px; 20 --headings-width: 480px; 21 22 --color-background: #F5EDD8; 23 --color-text: #3B2A1A; 24 --color-link: #2D5438; 25 --color-link-hover: #1E3826; 26 --color-support: #D9634E; 27 --color-shadows: color-mix(in srgb, var(--color-text), transparent 85%); 28 --color-shadows-hover: color-mix(in srgb, var(--color-text), transparent 75%); 29 --color-border: color-mix(in srgb, currentcolor, transparent 90%); 30 31 --shadow: 32 0px 0px 0px 1px var(--color-shadows), 33 0px 1px 2px -1px var(--color-shadows), 34 0px 2px 4px 0px var(--color-shadows); 35 } 36 37 @media (prefers-color-scheme: dark) { 38 :root { 39 --color-background: #3B2A1A; 40 --color-text: #F5EDD8; 41 --color-link: #E8A054; 42 --color-link-hover: #F5C880; 43 --color-support: #D9634E; 44 } 45 } 46 47 html { 48 box-sizing: border-box; 49 color-scheme: light dark; 50 -webkit-font-smoothing: antialiased; 51 -webkit-text-size-adjust: 100%; 52 -webkit-font-feature-settings: "kern" 1; 53 -moz-font-feature-settings: "kern" 1; 54 -o-font-feature-settings: "kern" 1; 55 font-feature-settings: "kern" 1; 56 text-size-adjust: none; 57 hanging-punctuation: first allow-end last; 58 } 59 60 *, 61 *::before, 62 *::after { 63 box-sizing: inherit; 64 } 65 66 body, h1, h2, h3, h4, h5, h6, 67 p, blockquote, pre, hr, 68 dl, dd, ol, ul, 69 figure, picture, audio, video, 70 table, iframe { 71 -webkit-font-smoothing: antialiased 72 font-variant-numeric: tabular-nums 73 margin: 0; 74 padding: 0; 75 } 76 77 img, video, audio, figure, picture, 78 table { 79 max-width: 100%; 80 margin-right: 0; 81 } 82 83 iframe { 84 display: block; 85 } 86 87 h1, 88 h2, 89 h3, 90 h4, 91 h5, 92 h6 { 93 text-wrap: balance; 94 } 95 96 p { 97 text-wrap: pretty; 98 } 99 100 ul, 101 ol { 102 list-style-position: outside; 103 padding-inline-start: 1lh; 104 } 105 106 @media (prefers-reduced-motion) { 107 :root { 108 --transition-duration: 0 !important; 109 } 110 } 111 112 113 @media (prefers-reduced-motion: no-preference) { 114 html { 115 interpolate-size: allow-keywords; 116 } 117 } 118 119 input, button, 120 textarea, select { 121 font-family: inherit; 122 font-size: inherit; 123 } 124 125 :target { 126 scroll-margin-block: 5ex; 127 } 128} 129 130 131html { 132 font: 62.5%/100% var(--font-body); 133} 134 135body { 136 padding-inline: 5vw; 137 background-color: var(--color-background); 138 color: var(--color-text); 139 font-size: var(--text-size); 140 line-height: 1.5; 141} 142 143.site { 144 display: flex; 145 flex-flow: column nowrap; 146 max-width: var(--site-width); 147 margin-block: calc(var(--spacing) * 2); 148 margin-inline: auto; 149} 150 151/* 152 Site Header 153*/ 154 155.site-header { 156 display: flex; 157 flex-flow: row wrap; 158 align-items: center; 159 gap: var(--spacing); 160 margin-bottom: calc(var(--spacing) * 2); 161 162 .site-branding { 163 display: inline-flex; 164 flex-flow: row nowrap; 165 align-items: center; 166 gap: calc(var(--spacing) / 2); 167 line-height: 100%; 168 } 169 170 .site-logo { 171 max-height: 2.5rem; 172 width: auto; 173 border-radius: 100%; 174 box-shadow: none; 175 } 176 177 .site-name { 178 font-family: var(--font-headings); 179 font-weight: bolder; 180 font-style: italic; 181 } 182 183 .site-title { 184 display: block; 185 font-size: 2.5rem; 186 line-height: 1; 187 } 188} 189 190.site-menu { 191 display: inline-flex; 192 flex-flow: row wrap; 193 justify-items: flex-end; 194 gap: var(--spacing); 195 margin-left: auto; 196} 197 198.site-menu .menu-item { 199 flex-shrink: 0; 200} 201 202/* 203 Content 204*/ 205 206/* Categories */ 207.category { 208 display: inline-flex; 209 padding-inline: 8px; 210 border-radius: 3px; 211 box-shadow: var(--shadow); 212 outline: 1px solid var(--color-border); 213 outline-offset: -1px; 214 color: var(--color-text) !important; 215 font-size: var(--text-size); 216 line-height: 1.85; 217 text-decoration: none !important; 218 transform: scale(1); 219 transform-origin: center center; 220 transition: transform var(--transition-duration) ease; 221 222 &:hover, 223 &:focus { 224 transform: scale(1.025) 225 } 226 227 &:active { 228 transform: scale(0.98); 229 } 230} 231 232@media (prefers-color-scheme: dark) { 233 .category { 234 color: var(--color-background) !important; 235 } 236} 237 238.blog-categories { 239 margin-bottom: calc(var(--spacing) * 2); 240} 241 242/* Archives */ 243.archive-title { 244 margin-bottom: calc(var(--spacing) * 2); 245 font-family: var(--font-headings); 246} 247 248.blog-pagination { 249 display: flex; 250 flex-flow: row nowrap; 251 max-width: var(--content-width); 252 margin-left: auto; 253} 254 255/* 256 Post 257*/ 258 259.post { 260 margin-bottom: calc(var(--spacing) * 4); 261} 262 263/* Header */ 264.post-header { 265 vertical-align: baseline; 266 margin-bottom: var(--spacing); 267} 268 269.post-header .post-permalink { 270 display: inline; 271 margin-right: calc(var(--spacing) / 4); 272 font-family: var(--font-headings); 273 color: color-mix(in srgb, var(--color-link), transparent 50%); 274 font-size: 2rem; 275} 276 277.post-header .post-permalink:hover, 278.post-header .post-permalink:focus { 279 color: color-mix(in srgb, var(--color-link-hover), transparent 50%); 280} 281 282.post-title { 283 display: inline; 284 margin-block: 0; 285 font-family: var(--font-headings); 286 font-size: 2rem; 287} 288 289.post-header .category { 290 margin-left: calc(var(--spacing) / 4); 291} 292 293/* Content */ 294.post-content > * { 295 width: 100%; 296 max-width: var(--content-width); 297 margin-left: auto; 298 margin-bottom: var(--spacing); 299} 300 301.post-content > h1, 302.post-content > h2, 303.post-content > h3, 304.post-content > h4, 305.post-content > h5, 306.post-content > h6 { 307 max-width: var(--headings-width); 308} 309 310.post-content a { 311 text-decoration-color: var(--color-border); 312} 313 314/* Post Footer */ 315.post-footer { 316 max-width: var(--content-width); 317 margin-left: auto; 318 margin-top: calc(var(--spacing) * 2); 319 font-size: 1.2rem; 320 321 &::before { 322 content: " "; 323 display: block; 324 height: 1px; 325 width: 3lh; 326 background-color: var(--color-border); 327 margin-bottom: var(--spacing); 328 } 329} 330 331.post-tags { 332 display: flex; 333 flex-flow: row wrap; 334 justify-content: flex-start; 335 padding-inline-start: 0; 336 gap: 1lh; 337} 338 339.post-tags .tag-item { 340 list-style: none; 341 padding: .2rem .5rem; 342 border-radius: .2rem; 343 background-color: var(--color-shadows); 344 345 &::before { 346 content: "#"; 347 color: var(--color-shadows-hover); 348 } 349 350 a { 351 color: var(--color-text); 352 } 353} 354 355.link-preview { 356 border: none; 357 border-radius: .3rem; 358 outline: 1px solid var(--color-border); 359 outline-offset: -1px; 360 box-shadow: var(--shadow); 361 padding: 1lh; 362 363 .preview-title { 364 display: block; 365 font-size: 1.6rem; 366 font-weight: bold; 367 font-style: normal; 368 margin-bottom: 0; 369 } 370 371 .preview-details { 372 display: inline-flex; 373 flex-flow: row wrap; 374 gap: 1ch; 375 } 376} 377 378/* 379 Site Footer 380*/ 381 382.site-footer { 383 margin-top: calc(var(--spacing) * 4); 384 width: 100%; 385 max-width: 420px; 386 margin-left: auto; 387} 388 389.footer-menu { 390 display: flex; 391 flex-flow: column nowrap; 392 align-items: flex-start; 393 gap: calc(var(--spacing) / 2); 394 margin-top: var(--spacing); 395}