forked from
leaflet.pub/leaflet
a tool for shared writing and social publishing
1@import "tailwindcss";
2
3@theme inline {
4 --breakpoint-*: initial;
5 --breakpoint-sm: 640px;
6 --breakpoint-md: 960px;
7 --breakpoint-lg: 1280px;
8
9 --radius-*: initial;
10 --radius-none: 0;
11 --radius-md: 0.25rem;
12 --radius-lg: 0.5rem;
13 --radius-full: 9999px;
14
15 --color-*: initial;
16 --color-inherit: inherit;
17 --color-transparent: transparent;
18 --color-current: currentColor;
19 --color-primary: rgb(var(--primary));
20 --color-secondary: color-mix(
21 in oklab,
22 rgb(var(--primary)),
23 rgb(var(--bg-page)) 25%
24 );
25 --color-tertiary: color-mix(
26 in oklab,
27 rgb(var(--primary)),
28 rgb(var(--bg-page)) 55%
29 );
30 --color-border: color-mix(
31 in oklab,
32 rgb(var(--primary)),
33 rgb(var(--bg-page)) 75%
34 );
35 --color-border-light: color-mix(
36 in oklab,
37 rgb(var(--primary)),
38 rgb(var(--bg-page)) 85%
39 );
40 --color-white: #ffffff;
41 --color-accent-1: rgb(var(--accent-1));
42 --color-accent-2: rgb(var(--accent-2));
43 --color-accent-contrast: rgb(var(--accent-contrast));
44 --color-bg-leaflet: rgb(var(--bg-leaflet));
45 --color-bg-page: rgb(var(--bg-page));
46 --color-highlight-1: var(--highlight-1);
47 --color-highlight-2: rgb(var(--highlight-2));
48 --color-highlight-3: rgb(var(--highlight-3));
49 --color-test: #e18181;
50 --color-test-blue: #48d1ef;
51
52 --text-*: initial;
53 --text-xs: 0.75rem;
54 --text-sm: 0.875rem;
55 --text-base: 1rem;
56 --text-lg: 1.125rem;
57 --text-xl: 1.625rem;
58 --text-2xl: 2rem;
59
60 --shadow-sm: 0.9px 1.5px 1.7px -1.8px rgba(var(--primary), 0.2),
61 4.2px 6.9px 7.8px -3.5px rgba(var(--primary), 0.15);
62 --shadow-md: 1.2px 2.5px 2.7px -1.8px rgba(var(--primary), 0.1),
63 5.6px 11.6px 12.5px -3.5px rgba(var(--primary), 0.15);
64
65 --font-sans: var(--font-quattro);
66 --font-serif: Garamond;
67}
68
69/*
70 The default border color has changed to `currentcolor` in Tailwind CSS v4,
71 so we've added these compatibility styles to make sure everything still
72 looks the same as it did with Tailwind CSS v3.
73
74 If we ever want to remove these styles, we need to add an explicit border
75 color utility to any element that depends on these defaults.
76*/
77@layer base {
78 *,
79 ::after,
80 ::before,
81 ::backdrop,
82 ::file-selector-button {
83 border-color: var(--color-gray-200, currentcolor);
84 }
85}
86
87@layer base {
88 :root {
89 --bg-leaflet: 240, 247, 250;
90 --bg-page: 255, 255, 255;
91 --bg-page-alpha: 1;
92
93 --primary: 39, 39, 39;
94
95 --accent-1: 0, 0, 225;
96 --accent-2: 255, 255, 255;
97 --accent-contrast: 0, 0, 225;
98 --accent-1-is-contrast: "true";
99
100 --highlight-1: 255, 177, 177;
101 --highlight-2: 253, 245, 203;
102 --highlight-3: 255, 205, 195;
103
104 --list-marker-width: 36px;
105 --page-width-unitless: min(624, calc(var(--leaflet-width-unitless) - 12));
106 --page-width-units: min(624px, calc(100vw - 12px));
107
108 --gripperSVG: url("/gripperPattern.svg");
109 --gripperSVG2: url("/gripperPattern2.svg");
110 --hatchSVG: url("/hatchPattern.svg");
111 --wavySVG: (url("/RSVPBackground/wavy.svg"));
112
113 --safe-padding-bottom: max(calc(env(safe-area-inset-bottom) - 8px), 16px);
114 }
115 @media (max-width: 640px) {
116 :root {
117 --list-marker-width: 20px;
118 }
119 }
120
121 @media (min-width: 640px) {
122 :root {
123 --page-width-unitless: min(
124 624,
125 calc(var(--leaflet-width-unitless) - 128)
126 );
127 --page-width-units: min(624px, calc(100vw - 128px));
128 }
129 }
130
131 @media (min-width: 1280px) {
132 :root {
133 --page-width-unitless: min(
134 624,
135 calc((var(--leaflet-width-unitless) / 2) - 32)
136 );
137 --page-width-units: min(624px, calc((100vw / 2) - 32px));
138 }
139 }
140
141 html,
142 body {
143 @apply h-full;
144 @apply p-0;
145 @apply overscroll-y-none;
146 min-height: -webkit-fill-available;
147 @apply font-sans;
148 font-synthesis: none;
149 }
150
151 #__next {
152 height: 100%;
153 }
154
155 /* START FONT STYLING */
156 h1 {
157 @apply text-2xl;
158 @apply font-bold;
159 }
160
161 h2 {
162 @apply text-xl;
163 @apply font-bold;
164 }
165
166 h3 {
167 @apply text-lg;
168 @apply font-bold;
169 }
170
171 h4 {
172 @apply text-base;
173 @apply font-bold;
174 }
175
176 p {
177 @apply text-base;
178 }
179
180 small {
181 @apply text-sm;
182 }
183
184 a {
185 @apply text-accent-contrast;
186 @apply hover:cursor-pointer;
187 @apply no-underline;
188 @apply hover:underline;
189 }
190
191 pre {
192 font-family: var(--font-quattro);
193 }
194
195 p {
196 font-size: inherit;
197 }
198
199 ::placeholder {
200 @apply text-tertiary;
201 @apply italic;
202 }
203 /*END FONT STYLING*/
204
205 /* START GLOBAL STYLING */
206
207 /* END GLOBAL STYLING */
208}
209button:hover {
210 cursor: pointer;
211}
212
213blockquote {
214 margin: 0;
215}
216
217/* Hide scrollbar for Chrome, Safari and Opera */
218.no-scrollbar::-webkit-scrollbar {
219 display: none;
220}
221.no-scrollbar {
222 scrollbar-width: none;
223}
224
225input::-webkit-outer-spin-button,
226input::-webkit-inner-spin-button {
227 -webkit-appearance: none;
228 margin: 0;
229}
230input[type="number"] {
231 -moz-appearance: textfield;
232}
233
234::-webkit-calendar-picker-indicator {
235 mask-image: url(/timeInputIcon.svg);
236 mask-size: 100% 100%;
237 background-image: url(/gripperPattern1.svg);
238 background-color: color-mix(
239 in oklab,
240 rgb(var(--primary)),
241 rgb(var(--bg-page)) 55%
242 );
243}
244
245.inline-code {
246 display: inline;
247 font-size: 1em;
248 @apply bg-border-light;
249 @apply font-mono;
250 @apply px-px;
251 @apply py-px;
252 @apply -mx-px;
253 @apply -my-px;
254 @apply rounded-[4px];
255 @apply box-decoration-clone;
256}
257
258pre.shiki code {
259 display: block;
260}
261
262pre.shiki {
263 @apply p-2;
264 @apply rounded-md;
265 @apply overflow-auto;
266}
267
268.highlight:has(+ .highlight) {
269 @apply rounded-r-none;
270}
271.highlight + .highlight {
272 @apply rounded-l-none;
273}
274
275.highlight {
276 @apply px-px;
277 @apply py-px;
278 @apply -mx-px;
279 @apply -my-px;
280 @apply rounded-[4px];
281 @apply box-decoration-clone;
282}
283
284.selected .selection-highlight {
285 background-color: Highlight;
286 @apply py-[1.5px];
287}
288
289.ProseMirror:focus-within .selection-highlight {
290 background-color: transparent;
291}
292
293.multiselected:focus-within .selection-highlight {
294 background-color: transparent;
295}
296
297.transparent-outline {
298 @apply outline-solid;
299 @apply outline-transparent;
300}
301
302.selected-outline {
303 @apply border;
304 @apply focus:outline-solid;
305 @apply focus:outline-2;
306 @apply focus:outline-offset-1;
307 @apply focus-within:outline-solid;
308 @apply focus-within:outline-2;
309 @apply focus-within:outline-offset-1;
310 @apply hover:outline-solid;
311 @apply hover:outline-2;
312 @apply hover:outline-offset-1;
313}
314
315.input-with-border {
316 @apply border;
317 @apply border-border;
318 @apply bg-bg-page;
319 @apply rounded-md;
320 @apply px-1;
321 @apply py-0.5;
322 @apply hover:border-tertiary;
323
324 @apply focus:border-tertiary;
325 @apply focus:outline-solid;
326 @apply focus:outline-tertiary;
327 @apply focus:outline-2;
328 @apply focus:outline-offset-1;
329
330 @apply focus-within:border-tertiary;
331 @apply focus-within:outline-solid;
332 @apply focus-within:outline-tertiary;
333 @apply focus-within:outline-2;
334 @apply focus-within:outline-offset-1;
335
336 @apply disabled:border-border-light;
337 @apply disabled:bg-border-light;
338 @apply disabled:text-tertiary;
339}
340
341.block-border {
342 @apply border;
343 @apply border-border-light;
344 @apply rounded-lg;
345 @apply outline-solid;
346 @apply outline-offset-1;
347 @apply outline-2;
348 @apply outline-transparent;
349 @apply hover:border-border;
350}
351
352.block-border-selected {
353 @apply border;
354 @apply border-border;
355 @apply rounded-lg;
356 @apply outline-solid;
357 @apply outline-offset-1;
358 @apply outline-2;
359 @apply outline-border;
360}
361
362.blockquote {
363 @apply border-l-2;
364 @apply border-border;
365 @apply pl-3;
366 @apply ml-2;
367}
368.transparent-container {
369 @apply border;
370 @apply border-border-light;
371 @apply rounded-md;
372}
373
374.container {
375 background: rgba(var(--bg-page), 0.75);
376 @apply border;
377 @apply border-bg-page;
378 @apply rounded-md;
379}
380
381.opaque-container {
382 @apply bg-bg-page;
383 @apply border;
384 @apply border-border-light;
385 @apply rounded-md;
386}
387
388.accent-container {
389 background: color-mix(
390 in oklab,
391 rgb(var(--accent-contrast)),
392 rgb(var(--bg-page)) 85%
393 );
394 @apply rounded-md;
395}
396
397.pwa-padding {
398 padding-top: max(calc(env(safe-area-inset-top) - 8px)) !important;
399}
400.pwa-padding-bottom {
401 padding-bottom: var(--safe-padding-bottom);
402}
403
404/* animation for new star in publish success illustration */
405@keyframes new-star-animation {
406 0% {
407 transform: scale(0);
408 opacity: 0;
409 }
410 50% {
411 transform: scale(0.1);
412 opacity: 0;
413 }
414 80% {
415 transform: scale(1.2);
416 opacity: 1;
417 }
418 100% {
419 transform: scale(1);
420 }
421}
422
423.new-star {
424 animation-name: new-star-animation;
425 animation-duration: 1s;
426 animation-iteration-count: 1;
427 animation-timing-function: ease-in;
428}