picata 0.0.1__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
Files changed (94) hide show
  1. LICENSE.md +24 -0
  2. README.md +59 -0
  3. components/HelloWorld.tsx +11 -0
  4. entrypoint.tsx +268 -0
  5. manage.py +15 -0
  6. picata/__init__.py +1 -0
  7. picata/apps.py +33 -0
  8. picata/blocks.py +175 -0
  9. picata/helpers/__init__.py +70 -0
  10. picata/helpers/wagtail.py +61 -0
  11. picata/log_utils.py +47 -0
  12. picata/middleware.py +54 -0
  13. picata/migrations/0001_initial.py +264 -0
  14. picata/migrations/0002_alter_article_content_alter_basicpage_content.py +112 -0
  15. picata/migrations/0003_alter_article_content_alter_basicpage_content.py +104 -0
  16. picata/migrations/0004_alter_article_content_alter_basicpage_content.py +105 -0
  17. picata/migrations/0005_socialsettings.py +48 -0
  18. picata/migrations/0006_alter_article_content.py +71 -0
  19. picata/migrations/0007_splitviewpage.py +69 -0
  20. picata/migrations/0008_alter_splitviewpage_content.py +96 -0
  21. picata/migrations/0009_alter_splitviewpage_content.py +111 -0
  22. picata/migrations/0010_alter_splitviewpage_content.py +105 -0
  23. picata/migrations/0011_alter_splitviewpage_options_and_more.py +113 -0
  24. picata/migrations/0012_alter_splitviewpage_content.py +109 -0
  25. picata/migrations/0013_alter_article_content.py +43 -0
  26. picata/migrations/0014_alter_article_content_alter_article_summary.py +24 -0
  27. picata/migrations/0015_alter_article_options_article_tagline_and_more.py +28 -0
  28. picata/migrations/0016_alter_article_options_alter_articletag_options_and_more.py +33 -0
  29. picata/migrations/0017_articletagrelation_alter_article_tags_and_more.py +35 -0
  30. picata/migrations/0018_rename_articletag_pagetag_and_more.py +21 -0
  31. picata/migrations/0019_rename_name_plural_articletype__name_plural.py +18 -0
  32. picata/migrations/0020_rename__name_plural_articletype__pluralised_name.py +18 -0
  33. picata/migrations/0021_rename_article_type_article_page_type.py +18 -0
  34. picata/migrations/0022_homepage.py +28 -0
  35. picata/migrations/__init__.py +0 -0
  36. picata/models.py +486 -0
  37. picata/settings/__init__.py +1 -0
  38. picata/settings/base.py +345 -0
  39. picata/settings/dev.py +94 -0
  40. picata/settings/mypy.py +7 -0
  41. picata/settings/prod.py +12 -0
  42. picata/settings/test.py +6 -0
  43. picata/static/picata/ada-profile.jpg +0 -0
  44. picata/static/picata/ada-social-bear.jpg +0 -0
  45. picata/static/picata/favicon.ico +0 -0
  46. picata/static/picata/fonts/Bitter-Light.ttf +0 -0
  47. picata/static/picata/fonts/Bitter-LightItalic.ttf +0 -0
  48. picata/static/picata/fonts/FiraCode-Light.ttf +0 -0
  49. picata/static/picata/fonts/FiraCode-SemiBold.ttf +0 -0
  50. picata/static/picata/fonts/Sacramento-Regular.ttf +0 -0
  51. picata/static/picata/fonts/ZillaSlab-Bold.ttf +0 -0
  52. picata/static/picata/fonts/ZillaSlab-BoldItalic.ttf +0 -0
  53. picata/static/picata/fonts/ZillaSlab-Light.ttf +0 -0
  54. picata/static/picata/fonts/ZillaSlab-LightItalic.ttf +0 -0
  55. picata/static/picata/fonts/ZillaSlabHighlight-Bold.ttf +0 -0
  56. picata/static/picata/icons.svg +56 -0
  57. picata/templates/picata/3_column.html +28 -0
  58. picata/templates/picata/404.html +11 -0
  59. picata/templates/picata/500.html +13 -0
  60. picata/templates/picata/_post_list.html +24 -0
  61. picata/templates/picata/article.html +20 -0
  62. picata/templates/picata/base.html +135 -0
  63. picata/templates/picata/basic_page.html +10 -0
  64. picata/templates/picata/blocks/icon_link_item.html +7 -0
  65. picata/templates/picata/blocks/icon_link_list.html +4 -0
  66. picata/templates/picata/blocks/icon_link_list_stream.html +3 -0
  67. picata/templates/picata/dl_view.html +18 -0
  68. picata/templates/picata/home_page.html +21 -0
  69. picata/templates/picata/post_listing.html +17 -0
  70. picata/templates/picata/previews/3col.html +73 -0
  71. picata/templates/picata/previews/dl.html +10 -0
  72. picata/templates/picata/previews/split.html +10 -0
  73. picata/templates/picata/previews/theme_gallery.html +158 -0
  74. picata/templates/picata/search_results.html +28 -0
  75. picata/templates/picata/split_view.html +15 -0
  76. picata/templates/picata/tags/site_menu.html +8 -0
  77. picata/templatetags/__init__.py +1 -0
  78. picata/templatetags/absolute_static.py +15 -0
  79. picata/templatetags/menu_tags.py +42 -0
  80. picata/templatetags/stringify.py +23 -0
  81. picata/transformers.py +60 -0
  82. picata/typing/__init__.py +19 -0
  83. picata/typing/wagtail.py +31 -0
  84. picata/urls.py +48 -0
  85. picata/validators.py +36 -0
  86. picata/views.py +80 -0
  87. picata/wagtail_hooks.py +43 -0
  88. picata/wsgi.py +15 -0
  89. picata-0.0.1.dist-info/METADATA +87 -0
  90. picata-0.0.1.dist-info/RECORD +94 -0
  91. picata-0.0.1.dist-info/WHEEL +4 -0
  92. picata-0.0.1.dist-info/licenses/LICENSE.md +24 -0
  93. pygments.sass +382 -0
  94. styles.sass +300 -0
pygments.sass ADDED
@@ -0,0 +1,382 @@
1
+ // Styles from https://pygments.org/styles/
2
+
3
+ // Taken from 'lightbulb'
4
+ [data-theme-mode="dark"]
5
+ div.pygments
6
+ pre
7
+ line-height: 125%
8
+ td
9
+ &.linenos
10
+ .normal
11
+ color: #3c4354
12
+ background-color: transparent
13
+ padding-left: 5px
14
+ padding-right: 5px
15
+ .special
16
+ color: #3c4354
17
+ background-color: #ffffc0
18
+ padding-left: 5px
19
+ padding-right: 5px
20
+ span
21
+ &.linenos
22
+ color: #3c4354
23
+ background-color: transparent
24
+ padding-left: 5px
25
+ padding-right: 5px
26
+ &.special
27
+ color: #3c4354
28
+ background-color: #ffffc0
29
+ padding-left: 5px
30
+ padding-right: 5px
31
+ .hll
32
+ background-color: #6e7681
33
+ .c
34
+ color: #8796af
35
+ .err
36
+ color: #f88f7f
37
+ .esc
38
+ color: #d4d2c8
39
+ .g
40
+ color: #d4d2c8
41
+ .k
42
+ color: #FFAD66
43
+ .l
44
+ color: #D5FF80
45
+ .n
46
+ color: #d4d2c8
47
+ .o
48
+ color: #FFAD66
49
+ .x
50
+ color: #d4d2c8
51
+ .p
52
+ color: #d4d2c8
53
+ .ch
54
+ color: #f88f7f
55
+ font-style: italic
56
+ .cm
57
+ color: #8796af
58
+ .cp
59
+ color: #FFAD66
60
+ font-weight: bold
61
+ .cpf
62
+ color: #8796af
63
+ .c1
64
+ color: #8796af
65
+ .cs
66
+ color: #8796af
67
+ font-style: italic
68
+ .gd
69
+ color: #f88f7f
70
+ background-color: #3d1e20
71
+ .ge
72
+ color: #d4d2c8
73
+ font-style: italic
74
+ .ges
75
+ color: #d4d2c8
76
+ .gr
77
+ color: #f88f7f
78
+ .gh
79
+ color: #d4d2c8
80
+ .gi
81
+ color: #6ad4af
82
+ background-color: #19362c
83
+ .go
84
+ color: #8796af
85
+ .gp
86
+ color: #d4d2c8
87
+ .gs
88
+ color: #d4d2c8
89
+ font-weight: bold
90
+ .gu
91
+ color: #d4d2c8
92
+ .gt
93
+ color: #f88f7f
94
+ .kc
95
+ color: #FFAD66
96
+ .kd
97
+ color: #FFAD66
98
+ .kn
99
+ color: #FFAD66
100
+ .kp
101
+ color: #FFAD66
102
+ .kr
103
+ color: #FFAD66
104
+ .kt
105
+ color: #73D0FF
106
+ .ld
107
+ color: #D5FF80
108
+ .m
109
+ color: #DFBFFF
110
+ .s
111
+ color: #D5FF80
112
+ .na
113
+ color: #FFD173
114
+ .nb
115
+ color: #FFD173
116
+ .nc
117
+ color: #73D0FF
118
+ .no
119
+ color: #FFD173
120
+ .nd
121
+ color: #8796af
122
+ font-weight: bold
123
+ font-style: italic
124
+ .ni
125
+ color: #95E6CB
126
+ .ne
127
+ color: #73D0FF
128
+ .nf
129
+ color: #FFD173
130
+ .nl
131
+ color: #d4d2c8
132
+ .nn
133
+ color: #d4d2c8
134
+ .nx
135
+ color: #d4d2c8
136
+ .py
137
+ color: #FFD173
138
+ .nt
139
+ color: #5CCFE6
140
+ .nv
141
+ color: #d4d2c8
142
+ .ow
143
+ color: #FFAD66
144
+ .pm
145
+ color: #d4d2c8
146
+ .w
147
+ color: #d4d2c8
148
+ .mb
149
+ color: #DFBFFF
150
+ .mf
151
+ color: #DFBFFF
152
+ .mh
153
+ color: #DFBFFF
154
+ .mi
155
+ color: #DFBFFF
156
+ .mo
157
+ color: #DFBFFF
158
+ .sa
159
+ color: #F29E74
160
+ .sb
161
+ color: #D5FF80
162
+ .sc
163
+ color: #D5FF80
164
+ .dl
165
+ color: #D5FF80
166
+ .sd
167
+ color: #8796af
168
+ .s2
169
+ color: #D5FF80
170
+ .se
171
+ color: #95E6CB
172
+ .sh
173
+ color: #D5FF80
174
+ .si
175
+ color: #95E6CB
176
+ .sx
177
+ color: #95E6CB
178
+ .sr
179
+ color: #95E6CB
180
+ .s1
181
+ color: #D5FF80
182
+ .ss
183
+ color: #DFBFFF
184
+ .bp
185
+ color: #5CCFE6
186
+ .fm
187
+ color: #FFD173
188
+ .vc
189
+ color: #d4d2c8
190
+ .vg
191
+ color: #d4d2c8
192
+ .vi
193
+ color: #d4d2c8
194
+ .vm
195
+ color: #d4d2c8
196
+ .il
197
+ color: #DFBFFF
198
+
199
+
200
+ // Taken from 'lovelace' (because I couldn't resist…)
201
+ [data-theme-mode="light"]
202
+ div.pygments
203
+ pre
204
+ line-height: 125%
205
+ td
206
+ &.linenos
207
+ .normal
208
+ color: inherit
209
+ background-color: transparent
210
+ padding-left: 5px
211
+ padding-right: 5px
212
+ .special
213
+ color: #000000
214
+ background-color: #ffffc0
215
+ padding-left: 5px
216
+ padding-right: 5px
217
+ span
218
+ &.linenos
219
+ color: inherit
220
+ background-color: transparent
221
+ padding-left: 5px
222
+ padding-right: 5px
223
+ &.special
224
+ color: #000000
225
+ background-color: #ffffc0
226
+ padding-left: 5px
227
+ padding-right: 5px
228
+ .hll
229
+ background-color: #ffffcc
230
+ .c
231
+ color: #565656
232
+ font-style: italic
233
+ .err
234
+ background-color: #a848a8
235
+ .k
236
+ color: #2838b0
237
+ .o
238
+ color: #666666
239
+ .p
240
+ color: #565656
241
+ .ch
242
+ color: #287088
243
+ font-style: italic
244
+ .cm
245
+ color: #565656
246
+ font-style: italic
247
+ .cp
248
+ color: #289870
249
+ .cpf
250
+ color: #565656
251
+ font-style: italic
252
+ .c1
253
+ color: #565656
254
+ font-style: italic
255
+ .cs
256
+ color: #565656
257
+ font-style: italic
258
+ .gd
259
+ color: #c02828
260
+ .ge
261
+ font-style: italic
262
+ .ges
263
+ font-weight: bold
264
+ font-style: italic
265
+ .gr
266
+ color: #c02828
267
+ .gh
268
+ color: #666666
269
+ .gi
270
+ color: #388038
271
+ .go
272
+ color: #555555
273
+ .gp
274
+ color: #333333
275
+ .gs
276
+ font-weight: bold
277
+ .gu
278
+ color: #333333
279
+ .gt
280
+ color: #2838b0
281
+ .kc
282
+ color: #333333
283
+ font-style: italic
284
+ .kd
285
+ color: #2838b0
286
+ font-style: italic
287
+ .kn
288
+ color: #2838b0
289
+ .kp
290
+ color: #2838b0
291
+ .kr
292
+ color: #2838b0
293
+ .kt
294
+ color: #2838b0
295
+ font-style: italic
296
+ .m
297
+ color: #333333
298
+ .s
299
+ color: #b83838
300
+ .na
301
+ color: #388038
302
+ .nb
303
+ color: #388038
304
+ .nc
305
+ color: #287088
306
+ .no
307
+ color: #b85820
308
+ .nd
309
+ color: #287088
310
+ .ni
311
+ color: #709030
312
+ .ne
313
+ color: #908828
314
+ .nf
315
+ color: #785840
316
+ .nl
317
+ color: #289870
318
+ .nn
319
+ color: #289870
320
+ .nt
321
+ color: #2838b0
322
+ .nv
323
+ color: #b04040
324
+ .ow
325
+ color: #a848a8
326
+ .pm
327
+ color: #555555
328
+ .w
329
+ color: #a89028
330
+ .mb
331
+ color: #444444
332
+ .mf
333
+ color: #444444
334
+ .mh
335
+ color: #444444
336
+ .mi
337
+ color: #444444
338
+ .mo
339
+ color: #444444
340
+ .sa
341
+ color: #444444
342
+ .sb
343
+ color: #b83838
344
+ .sc
345
+ color: #a848a8
346
+ .dl
347
+ color: #b85820
348
+ .sd
349
+ color: #b85820
350
+ font-style: italic
351
+ .s2
352
+ color: #b83838
353
+ .se
354
+ color: #709030
355
+ .sh
356
+ color: #b83838
357
+ .si
358
+ color: #b83838
359
+ text-decoration: underline
360
+ .sx
361
+ color: #a848a8
362
+ .sr
363
+ color: #a848a8
364
+ .s1
365
+ color: #b83838
366
+ .ss
367
+ color: #b83838
368
+ .bp
369
+ color: #388038
370
+ font-style: italic
371
+ .fm
372
+ color: #b85820
373
+ .vc
374
+ color: #b04040
375
+ .vg
376
+ color: #908828
377
+ .vi
378
+ color: #b04040
379
+ .vm
380
+ color: #b85820
381
+ .il
382
+ color: #444444
styles.sass ADDED
@@ -0,0 +1,300 @@
1
+ @use "tailwindcss/base"
2
+ @use "tailwindcss/components"
3
+ @use "tailwindcss/utilities"
4
+
5
+ // Pygments styles for syntax highlighting
6
+ @use "pygments.sass"
7
+
8
+ // Base typography
9
+ @layer base
10
+ body
11
+ @apply text-base font-serif font-light
12
+ h1, h2, h3, h4, h5, h6
13
+ @apply font-heading font-normal
14
+ &:not(:first-child)
15
+ @apply mt-8
16
+ h1
17
+ @apply text-3xl leading-tight
18
+ h2
19
+ @apply text-2xl leading-tight
20
+ h3
21
+ @apply text-xl leading-snug
22
+ h4
23
+ @apply text-lg leading-normal
24
+ h5
25
+ @apply text-base leading-relaxed
26
+ h6
27
+ @apply text-sm leading-relaxed
28
+ strong, b
29
+ @apply font-serif font-bold
30
+ code, pre
31
+ @apply font-mono font-light
32
+ &.strong
33
+ @apply font-semibold
34
+ .highlight
35
+ @apply font-highlight font-bold
36
+
37
+
38
+ // Main page layout
39
+ html
40
+ scroll-behavior: smooth
41
+
42
+ p, ul
43
+ @apply my-4
44
+
45
+ body
46
+ @apply flex flex-col min-h-screen bg-base-100
47
+ > header
48
+ z-index: 30
49
+ @apply bg-base-300 pt-5 pb-4 ml-neg-safe-left mr-neg-safe-right shadow-lg
50
+ > div
51
+ @apply flex flex-col flex-1 px-7 w-full sm:max-w-sm md:max-w-md lg:max-w-lg xl:max-w-xl 2xl:max-w-2xl mx-auto
52
+
53
+ #top-bar
54
+ @apply flex justify-end
55
+ &.debug
56
+ @apply justify-between
57
+ #debug-container
58
+ @apply flex justify-between
59
+ > div
60
+ @apply absolute -mt-2 px-2 items-center justify-center text-xs font-bold text-white rounded
61
+
62
+ #search-wrapper
63
+ @apply flex mr-2
64
+ > #search-toggle
65
+ @apply btn-neutral btn btn-sm !rounded-l-full
66
+ form > #search-field
67
+ @apply transition-all duration-300 ease-in-out placeholder-gray-400
68
+ @apply border border-gray-300 focus:border-primary focus:ring focus:ring-primary/50
69
+ @apply rounded-r-full text-primary-content px-2
70
+ &:focus
71
+ @apply outline-none
72
+ &.search-hidden
73
+ @apply w-0 opacity-0 px-0
74
+ .search-visible
75
+ @apply w-48 opacity-100
76
+
77
+ #theme-wrapper
78
+ @apply flex indicator
79
+ button
80
+ @apply btn-neutral
81
+ > svg
82
+ @apply size-5
83
+ > #theme-reset
84
+ @apply group-hover:opacity-100 indicator-item
85
+ @apply transition scale-50 pl-4 pb-1 bg-transparent
86
+ > svg
87
+ @apply size-6
88
+
89
+ #menu-block
90
+ @apply flex flex-wrap items-end pt-3 sm:pt-0
91
+ .profile
92
+ @apply flex items-end
93
+ > img
94
+ @apply w-24 h-24 rounded-full ring-2 ring-profile-ring mr-6
95
+ > h1
96
+ @apply flex flex-col text-2xl font-bold leading-tight
97
+ > .name
98
+ font-family: 'Sacramento', cursive
99
+ font-weight: 400 // Regular weight for Sacramento
100
+ font-size: 2.5rem
101
+ > .tagline
102
+ @apply text-lg font-normal text-base-content -mt-3 mb-0.5
103
+ nav
104
+ @apply flex flex-wrap justify-center grow pt-4
105
+ a
106
+ @apply btn btn-ghost px-4 h-8 min-h-8
107
+ font-size: 1.125rem
108
+
109
+ body
110
+ @apply min-h-screen
111
+ > main
112
+ @apply bg-base-200 pt-10 pb-6 w-full mx-auto px-7 flex flex-grow sm:max-w-sm md:max-w-md lg:max-w-lg xl:max-w-xl 2xl:max-w-2xl
113
+ > article
114
+ @apply max-w-full
115
+
116
+ // Big, single, flat 'ol page template
117
+ &.one-column
118
+ > article
119
+ @apply mx-auto
120
+
121
+ // Main takes a series of `div`s, which each take up half the page at a time at 'sm' width
122
+ // and above. All content is centre-justified.
123
+ &.split-view
124
+ @apply flex flex-wrap items-start gap-x-12 gap-y-4 relative flex-col sm:flex-row
125
+ > div
126
+ @apply w-full sm:flex-[0_0_calc(50%-1.5rem)] flex flex-col justify-start sm:justify-center text-center
127
+ > *
128
+ @apply mx-auto
129
+ &:before
130
+ @apply hidden sm:block bg-base-100
131
+ content: ""
132
+ position: absolute
133
+ top: 0
134
+ bottom: 0
135
+ left: calc(50% - 1px)
136
+ width: 2px
137
+
138
+ // Main takes a `dl`, alternates a 25%-width left column of `dt`s with
139
+ // 75%-width `dd`s, and there's a 2px vertical line down the gap between 'em
140
+ &.definition-list
141
+ @apply flex flex-col sm:flex-row relative
142
+ dl
143
+ @apply flex flex-wrap w-full self-start
144
+ dt
145
+ @apply sm:flex-none sm:w-1/4 text-right sm:pr-8
146
+ dd
147
+ @apply sm:flex-none sm:w-3/4 text-left sm:pl-2
148
+ &:before
149
+ @apply hidden sm:block bg-base-100
150
+ content: ""
151
+ position: absolute
152
+ top: 0
153
+ bottom: 0
154
+ left: 25%
155
+ width: 2px
156
+ @media (max-width: 640px)
157
+ &:before
158
+ display: none
159
+
160
+ // - At 'large' and above, the `aside` covers 25% width, leaving 50% for
161
+ // the `article`, before the `nav takes the remaining 25%
162
+ // - On 'small' and 'medium' screens, the `aside` lives above the `nav` in
163
+ // a 25%-width left column leaving the remaining 75% for the `article`
164
+ // - For 'extra-small' (and smaller) views, the `nav`, `article`, and `aside`
165
+ // collapse into a single column, in that order
166
+ &.three-column
167
+ @apply grid grid-cols-1 sm:grid-cols-4 lg:grid-cols-12 gap-7 sm:grid-rows-[auto_minmax(0,1fr)] lg:auto-rows-min
168
+ > aside
169
+ @apply order-3 sm:order-1 sm:col-span-1 lg:col-span-3 lg:row-start-1 self-start
170
+ > nav
171
+ @apply order-1 sm:order-3 sm:col-span-1 sm:row-start-2 lg:col-span-3 lg:col-start-10 lg:row-start-1 self-start
172
+ > article
173
+ @apply order-2 sm:order-2 sm:col-span-3 lg:col-span-6 lg:col-start-4 lg:col-end-10 sm:row-span-2 lg:row-span-1
174
+
175
+ > footer
176
+ @apply bg-base-300 pt-5 pb-5 ml-neg-safe-left mr-neg-safe-right
177
+ z-index: 30
178
+ box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), 0 -4px 6px -1px rgb(0 0 0 / 0.1), 0 -2px 4px -2px rgb(0 0 0 / 0.1)
179
+ > div
180
+ @apply flex flex-col flex-1 px-7 w-full sm:max-w-sm md:max-w-md lg:max-w-lg xl:max-w-xl 2xl:max-w-2xl mx-auto
181
+
182
+ // Element styles
183
+ a
184
+ @apply transition-colors duration-150 underline
185
+ &:focus
186
+ @apply underline outline-none ring-1 ring-offset-1
187
+ &:not(:visited)
188
+ @apply text-primary decoration-primary/0
189
+ &:hover
190
+ @apply text-primary/75 decoration-primary/75
191
+ &:visited
192
+ @apply text-secondary decoration-secondary/0
193
+ &:hover
194
+ @apply text-primary/75 decoration-primary/75
195
+
196
+ h1, h2, h3, h4, h5, h6
197
+ @apply scroll-mt-8
198
+ a.target-link
199
+ @apply ml-3 opacity-0 text-neutral-500 font-mono transition-opacity ease-in-out text-sm align-middle
200
+ &:hover, &:focus
201
+ @apply no-underline
202
+ &:hover
203
+ a.target-link
204
+ @apply opacity-100
205
+
206
+
207
+ [data-theme="fl"] .btn-active
208
+ --btn-neutral-shadow: color-mix(in srgb, color-mix(in srgb, oklch(var(--n)) 80%, black 20%), transparent 40%)
209
+
210
+ [data-theme="ad"] .btn-active
211
+ --btn-neutral-shadow: color-mix(in srgb, color-mix(in srgb, oklch(var(--n)) 80%, white 20%), transparent 60%)
212
+
213
+ .btn-active
214
+ @apply shadow-md transition-shadow
215
+ box-shadow: 0px 0px 3px 2px var(--btn-neutral-shadow, rgba(0, 0, 0, 0.2))
216
+
217
+ .pill-button-divider
218
+ @apply h-full w-0.5
219
+ background-color: calc(oklch(var(--n)) * 0.8)
220
+
221
+ div.pygments
222
+ @apply relative overflow-hidden rounded-lg
223
+ > pre
224
+ @apply overflow-x-auto max-w-full bg-base-300 px-5 py-6
225
+ font-size: 0.92rem
226
+ span
227
+ line-height: 1.47
228
+
229
+ @layer utilities
230
+ .shadow-fade-right
231
+ @apply relative overflow-x-auto
232
+ &::after
233
+ content: ""
234
+ @apply absolute top-0 right-0 bottom-0 w-6
235
+ width: 3.5rem
236
+ pointer-events: none
237
+ [data-theme-mode="dark"] .shadow-fade-right
238
+ &::after
239
+ background: linear-gradient(to left, color-mix(in srgb, oklch(var(--b3)), transparent 33%), transparent)
240
+ [data-theme-mode="light"] .shadow-fade-right
241
+ &::after
242
+ background: linear-gradient(to left, color-mix(in srgb, oklch(var(--b3)), rgb(0 0 0 / 0.17)), transparent)
243
+
244
+
245
+ // Template styles
246
+ main.post-list
247
+ .meta-data
248
+ @apply text-xs pt-6
249
+ h2
250
+ @apply font-cursive
251
+ span
252
+ @apply whitespace-nowrap
253
+ .preview
254
+ @apply pt-5
255
+ h3
256
+ @apply text-2xl
257
+ dd.title
258
+ @apply pb-4
259
+
260
+ main.article
261
+ aside
262
+ .tagline
263
+ @apply hidden sm:block text-center
264
+ hr
265
+ @apply border-neutral-500 mt-6 mb-7
266
+ // @apply leading-none
267
+ span
268
+ @apply whitespace-nowrap
269
+ article > h1
270
+ @apply mb-4
271
+
272
+ main.search-results
273
+ h1 + h2
274
+ @apply mt-0
275
+
276
+ nav
277
+ @apply relative
278
+
279
+ .toc
280
+ @apply bg-base-300 rounded-lg shadow-md p-4 sticky flex flex-col items-start top-0
281
+ ul
282
+ @apply list-none pl-2 m-0
283
+ > ul
284
+ @apply pl-0
285
+ li
286
+ @apply text-sm text-neutral-600 hover:text-neutral-800 mt-3 leading-tight
287
+ a
288
+ @apply no-underline
289
+
290
+
291
+ // Block styles
292
+ ul.icon-link-list
293
+ @apply flex flex-wrap justify-center list-none gap-x-6 gap-y-4
294
+ > li
295
+ @apply flex items-center
296
+ > a
297
+ @apply flex items-center
298
+ svg
299
+ @apply w-4 h-4 fill-current align-middle mr-2
300
+ margin-bottom: -1px