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}