├── .htaccess ├── .gitignore ├── images ├── apkbg.png ├── androidicon.png ├── dantotsu_logo-f1s.png ├── ei_1698849603612-removebg-preview-1.png ├── Screenshot_20231029_232053_Dantotsu-portrait.png ├── Screenshot_20231031-130249_Dantotsu-portrait.png └── Screenshot_20231031-132510_Dantotsu-portrait.png ├── sounds └── famous.mp3 ├── favicons ├── favicon.ico ├── favicon-16x16.png ├── favicon-32x32.png ├── mstile-150x150.png ├── apple-touch-icon.png ├── android-chrome-192x192.png └── site.webmanifest ├── tailwind.config.js ├── readme.md ├── 404.html ├── telegram.html ├── discord.html ├── apk.html ├── DMCA.html ├── dmca.html ├── index.css ├── style.css ├── index.html └── install.html /.htaccess: -------------------------------------------------------------------------------- 1 | ErrorDocument 404 /404.html 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | package-lock.json 3 | package.json 4 | -------------------------------------------------------------------------------- /images/apkbg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshMeadow/dantotustatic/HEAD/images/apkbg.png -------------------------------------------------------------------------------- /sounds/famous.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshMeadow/dantotustatic/HEAD/sounds/famous.mp3 -------------------------------------------------------------------------------- /favicons/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshMeadow/dantotustatic/HEAD/favicons/favicon.ico -------------------------------------------------------------------------------- /images/androidicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshMeadow/dantotustatic/HEAD/images/androidicon.png -------------------------------------------------------------------------------- /favicons/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshMeadow/dantotustatic/HEAD/favicons/favicon-16x16.png -------------------------------------------------------------------------------- /favicons/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshMeadow/dantotustatic/HEAD/favicons/favicon-32x32.png -------------------------------------------------------------------------------- /favicons/mstile-150x150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshMeadow/dantotustatic/HEAD/favicons/mstile-150x150.png -------------------------------------------------------------------------------- /images/dantotsu_logo-f1s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshMeadow/dantotustatic/HEAD/images/dantotsu_logo-f1s.png -------------------------------------------------------------------------------- /favicons/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshMeadow/dantotustatic/HEAD/favicons/apple-touch-icon.png -------------------------------------------------------------------------------- /favicons/android-chrome-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshMeadow/dantotustatic/HEAD/favicons/android-chrome-192x192.png -------------------------------------------------------------------------------- /images/ei_1698849603612-removebg-preview-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshMeadow/dantotustatic/HEAD/images/ei_1698849603612-removebg-preview-1.png -------------------------------------------------------------------------------- /images/Screenshot_20231029_232053_Dantotsu-portrait.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshMeadow/dantotustatic/HEAD/images/Screenshot_20231029_232053_Dantotsu-portrait.png -------------------------------------------------------------------------------- /images/Screenshot_20231031-130249_Dantotsu-portrait.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshMeadow/dantotustatic/HEAD/images/Screenshot_20231031-130249_Dantotsu-portrait.png -------------------------------------------------------------------------------- /images/Screenshot_20231031-132510_Dantotsu-portrait.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MarshMeadow/dantotustatic/HEAD/images/Screenshot_20231031-132510_Dantotsu-portrait.png -------------------------------------------------------------------------------- /tailwind.config.js: -------------------------------------------------------------------------------- 1 | 2 | module.exports = { 3 | content: ["./index.html","./install.html", 4 | "./styles.css",], 5 | theme: { 6 | extend: {}, 7 | }, 8 | plugins: [], 9 | } 10 | -------------------------------------------------------------------------------- /favicons/site.webmanifest: -------------------------------------------------------------------------------- 1 | { 2 | "name": "", 3 | "short_name": "", 4 | "icons": [ 5 | { 6 | "src": "/android-chrome-192x192.png", 7 | "sizes": "192x192", 8 | "type": "image/png" 9 | }, 10 | { 11 | "src": "/android-chrome-512x512.png", 12 | "sizes": "512x512", 13 | "type": "image/png" 14 | } 15 | ], 16 | "theme_color": "#ffffff", 17 | "background_color": "#ffffff", 18 | "display": "standalone" 19 | } 20 | -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | 2 | Alert! Moved here: https://github.com/MarshMeadow/dantotsuapp.netlify.app 3 | 4 | **Official Dantotsu Website Run By The Dantotsu Web Team (Please Do Not Share)** 5 | 6 | Now hosterd here: https://dantotsuapp.netlify.app 7 | 8 | Was hosted here: https://dantotsu.app/. (DMCA TAKEDOWN) 9 | 10 | For more information, please visit our GitHub repository at https://github.com/rebelonion/Dantotsu. 11 | 12 | # **This is run by the Dantotsu Web Team!** 13 | 14 | - [Rebel Onion](https://github.com/rebelonion) (Creator of Dantotsu) 15 | 16 | - [Wai What](https://github.com/WaiWhat) (Creator of Dantotsu's Branding) 17 | 18 | - **[Neko404](https://github.com/MarshMeadow?tab=repositories) (Main Web Dev)** 19 | 20 | - [Arif Alam](https://github.com/ARIF683?tab=repositories) (Contributor of Dantotsu Website / Discord Moderator.) 21 | 22 | - [Ayodaza](https://github.com/dazadev) (Main Web Dev / Website's Concept Designer) 23 | 24 | - [Aayush262](https://github.com/aayush2622) (Screenshot Provider) 25 | 26 | - And More.. 27 | 28 | **Web Team Group Discord: Private For Now** 29 | 30 | [Join Official Discord](https://discord.com/invite/4HPZ5nAWwM) 31 | 32 | [Join OFFICIAL Telegram](https://t.me/+gzBCQExtLQo1YTNh) 33 | 34 | **Contact: @Neko404 to contribute!** (Neko is NOT the the dev of dantotsu, just a contributor). 35 | -------------------------------------------------------------------------------- /404.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 404 - Page Not Found 13 | 31 | 32 | 33 | 34 | 38 | 39 |
40 |

404 - Page Not Found

41 |

Oops! The page you're looking for doesn't exist.

42 | Quirky Image 43 |

But here's a funny gif to cheer you up!

44 |
45 | 46 | 47 | -------------------------------------------------------------------------------- /telegram.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Join Dantotsu Official Telegram Group 12 | 36 | 37 | 38 |
39 |

Redirecting...

40 |

If you are not redirected automatically, follow this link.

41 |
42 | 43 | 44 | -------------------------------------------------------------------------------- /discord.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | Join Dantotsu Offical Discord Server 13 | 31 | 32 | 33 | 34 |
35 |

Redirecting...

36 |

37 | If you are not redirected automatically, follow this 38 | link. 39 |

40 |
41 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /apk.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Latest Dantotsu Release 8 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 54 | 55 | 56 | -------------------------------------------------------------------------------- /DMCA.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 9 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 |
27 |
28 | Translator 29 |
30 |
31 | 32 |
33 |
34 | 35 |
36 |
37 |
38 |
39 |
40 |
41 |
DISCLAIMER:
42 | 
43 | - Dantotsu by itself only provides an anime and manga tracker and does not provide any anime or manga streaming or downloading capabilities.
44 | 
45 | - Dantotsu or any of its developers/staff don't host any of the content found inside Dantotsu. Any and all images and anime/manga information found in the app are taken from various public APIs (AniList, MyAnimeList, Kitsu).
46 | 
47 | - Furthermore, all of the anime/manga links found in Dantotsu are taken from various 3rd party plugins and have no affiliation with Dantotsu or its staff.
48 | 
49 | - Dantotsu or it's owners aren't liable for any misuse of any of the contents found inside or outside of the app and cannot be held accountable for the distribution of any of the contents found inside the app.
50 | 
51 | - By using Dantotsu, you comply to the fact that the developer of the app is not responsible for any of the contents found in the app. You also agree to the fact that you may not use Dantotsu to download or stream any copyrighted content.
52 | 
53 | - If the internet infringement issues are involved, please contact the source website. The developer does not assume any legal responsibility.
54 | 
55 | Thanks for reading,
56 | 
57 | Dantotsu Dev Team
-------------------------------------------------------------------------------- /dmca.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 9 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 |
27 |
28 | Translator 29 |
30 |
31 | 32 |
33 |
34 | 35 |
36 |
37 |
38 |
39 |
40 |
41 |
DISCLAIMER:
42 | 
43 | - Dantotsu by itself only provides an anime and manga tracker and does not provide any anime or manga streaming or downloading capabilities.
44 | 
45 | - Dantotsu or any of its developers/staff don't host any of the content found inside Dantotsu. Any and all images and anime/manga information found in the app are taken from various public APIs (AniList, MyAnimeList, Kitsu).
46 | 
47 | - Furthermore, all of the anime/manga links found in Dantotsu are taken from various 3rd party plugins and have no affiliation with Dantotsu or its staff.
48 | 
49 | - Dantotsu or it's owners aren't liable for any misuse of any of the contents found inside or outside of the app and cannot be held accountable for the distribution of any of the contents found inside the app.
50 | 
51 | - By using Dantotsu, you comply to the fact that the developer of the app is not responsible for any of the contents found in the app. You also agree to the fact that you may not use Dantotsu to download or stream any copyrighted content.
52 | 
53 | - If the internet infringement issues are involved, please contact the source website. The developer does not assume any legal responsibility.
54 | 
55 | Thanks for reading,
56 | 
57 | Dantotsu Dev Team
-------------------------------------------------------------------------------- /index.css: -------------------------------------------------------------------------------- 1 | /* 2 | ! tailwindcss v3.3.5 | MIT License | https://tailwindcss.com 3 | */ 4 | 5 | /* 6 | 1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4) 7 | 2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116) 8 | */ 9 | 10 | *, 11 | ::before, 12 | ::after { 13 | box-sizing: border-box; 14 | /* 1 */ 15 | border-width: 0; 16 | /* 2 */ 17 | border-style: solid; 18 | /* 2 */ 19 | border-color: #e5e7eb; 20 | /* 2 */ 21 | } 22 | 23 | ::before, 24 | ::after { 25 | --tw-content: ''; 26 | } 27 | 28 | /* 29 | 1. Use a consistent sensible line-height in all browsers. 30 | 2. Prevent adjustments of font size after orientation changes in iOS. 31 | 3. Use a more readable tab size. 32 | 4. Use the user's configured `sans` font-family by default. 33 | 5. Use the user's configured `sans` font-feature-settings by default. 34 | 6. Use the user's configured `sans` font-variation-settings by default. 35 | */ 36 | 37 | html { 38 | line-height: 1.5; 39 | /* 1 */ 40 | -webkit-text-size-adjust: 100%; 41 | /* 2 */ 42 | -moz-tab-size: 4; 43 | /* 3 */ 44 | -o-tab-size: 4; 45 | tab-size: 4; 46 | /* 3 */ 47 | font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; 48 | /* 4 */ 49 | font-feature-settings: normal; 50 | /* 5 */ 51 | font-variation-settings: normal; 52 | /* 6 */ 53 | } 54 | 55 | /* 56 | 1. Remove the margin in all browsers. 57 | 2. Inherit line-height from `html` so users can set them as a class directly on the `html` element. 58 | */ 59 | 60 | body { 61 | margin: 0; 62 | /* 1 */ 63 | line-height: inherit; 64 | /* 2 */ 65 | } 66 | 67 | /* 68 | 1. Add the correct height in Firefox. 69 | 2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655) 70 | 3. Ensure horizontal rules are visible by default. 71 | */ 72 | 73 | hr { 74 | height: 0; 75 | /* 1 */ 76 | color: inherit; 77 | /* 2 */ 78 | border-top-width: 1px; 79 | /* 3 */ 80 | } 81 | 82 | /* 83 | Add the correct text decoration in Chrome, Edge, and Safari. 84 | */ 85 | 86 | abbr:where([title]) { 87 | -webkit-text-decoration: underline dotted; 88 | text-decoration: underline dotted; 89 | } 90 | 91 | /* 92 | Remove the default font size and weight for headings. 93 | */ 94 | 95 | h1, 96 | h2, 97 | h3, 98 | h4, 99 | h5, 100 | h6 { 101 | font-size: inherit; 102 | font-weight: inherit; 103 | } 104 | 105 | /* 106 | Reset links to optimize for opt-in styling instead of opt-out. 107 | */ 108 | 109 | a { 110 | color: inherit; 111 | text-decoration: inherit; 112 | } 113 | 114 | /* 115 | Add the correct font weight in Edge and Safari. 116 | */ 117 | 118 | b, 119 | strong { 120 | font-weight: bolder; 121 | } 122 | 123 | /* 124 | 1. Use the user's configured `mono` font family by default. 125 | 2. Correct the odd `em` font sizing in all browsers. 126 | */ 127 | 128 | code, 129 | kbd, 130 | samp, 131 | pre { 132 | font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; 133 | /* 1 */ 134 | font-size: 1em; 135 | /* 2 */ 136 | } 137 | 138 | /* 139 | Add the correct font size in all browsers. 140 | */ 141 | 142 | small { 143 | font-size: 80%; 144 | } 145 | 146 | /* 147 | Prevent `sub` and `sup` elements from affecting the line height in all browsers. 148 | */ 149 | 150 | sub, 151 | sup { 152 | font-size: 75%; 153 | line-height: 0; 154 | position: relative; 155 | vertical-align: baseline; 156 | } 157 | 158 | sub { 159 | bottom: -0.25em; 160 | } 161 | 162 | sup { 163 | top: -0.5em; 164 | } 165 | 166 | /* 167 | 1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297) 168 | 2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016) 169 | 3. Remove gaps between table borders by default. 170 | */ 171 | 172 | table { 173 | text-indent: 0; 174 | /* 1 */ 175 | border-color: inherit; 176 | /* 2 */ 177 | border-collapse: collapse; 178 | /* 3 */ 179 | } 180 | 181 | /* 182 | 1. Change the font styles in all browsers. 183 | 2. Remove the margin in Firefox and Safari. 184 | 3. Remove default padding in all browsers. 185 | */ 186 | 187 | button, 188 | input, 189 | optgroup, 190 | select, 191 | textarea { 192 | font-family: inherit; 193 | /* 1 */ 194 | font-feature-settings: inherit; 195 | /* 1 */ 196 | font-variation-settings: inherit; 197 | /* 1 */ 198 | font-size: 100%; 199 | /* 1 */ 200 | font-weight: inherit; 201 | /* 1 */ 202 | line-height: inherit; 203 | /* 1 */ 204 | color: inherit; 205 | /* 1 */ 206 | margin: 0; 207 | /* 2 */ 208 | padding: 0; 209 | /* 3 */ 210 | } 211 | 212 | /* 213 | Remove the inheritance of text transform in Edge and Firefox. 214 | */ 215 | 216 | button, 217 | select { 218 | text-transform: none; 219 | } 220 | 221 | /* 222 | 1. Correct the inability to style clickable types in iOS and Safari. 223 | 2. Remove default button styles. 224 | */ 225 | 226 | button, 227 | [type='button'], 228 | [type='reset'], 229 | [type='submit'] { 230 | -webkit-appearance: button; 231 | /* 1 */ 232 | background-color: transparent; 233 | /* 2 */ 234 | background-image: none; 235 | /* 2 */ 236 | } 237 | 238 | /* 239 | Use the modern Firefox focus style for all focusable elements. 240 | */ 241 | 242 | :-moz-focusring { 243 | outline: auto; 244 | } 245 | 246 | /* 247 | Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737) 248 | */ 249 | 250 | :-moz-ui-invalid { 251 | box-shadow: none; 252 | } 253 | 254 | /* 255 | Add the correct vertical alignment in Chrome and Firefox. 256 | */ 257 | 258 | progress { 259 | vertical-align: baseline; 260 | } 261 | 262 | /* 263 | Correct the cursor style of increment and decrement buttons in Safari. 264 | */ 265 | 266 | ::-webkit-inner-spin-button, 267 | ::-webkit-outer-spin-button { 268 | height: auto; 269 | } 270 | 271 | /* 272 | 1. Correct the odd appearance in Chrome and Safari. 273 | 2. Correct the outline style in Safari. 274 | */ 275 | 276 | [type='search'] { 277 | -webkit-appearance: textfield; 278 | /* 1 */ 279 | outline-offset: -2px; 280 | /* 2 */ 281 | } 282 | 283 | /* 284 | Remove the inner padding in Chrome and Safari on macOS. 285 | */ 286 | 287 | ::-webkit-search-decoration { 288 | -webkit-appearance: none; 289 | } 290 | 291 | /* 292 | 1. Correct the inability to style clickable types in iOS and Safari. 293 | 2. Change font properties to `inherit` in Safari. 294 | */ 295 | 296 | ::-webkit-file-upload-button { 297 | -webkit-appearance: button; 298 | /* 1 */ 299 | font: inherit; 300 | /* 2 */ 301 | } 302 | 303 | /* 304 | Add the correct display in Chrome and Safari. 305 | */ 306 | 307 | summary { 308 | display: list-item; 309 | } 310 | 311 | /* 312 | Removes the default spacing and border for appropriate elements. 313 | */ 314 | 315 | blockquote, 316 | dl, 317 | dd, 318 | h1, 319 | h2, 320 | h3, 321 | h4, 322 | h5, 323 | h6, 324 | hr, 325 | figure, 326 | p, 327 | pre { 328 | margin: 0; 329 | } 330 | 331 | fieldset { 332 | margin: 0; 333 | padding: 0; 334 | } 335 | 336 | legend { 337 | padding: 0; 338 | } 339 | 340 | ol, 341 | ul, 342 | menu { 343 | list-style: none; 344 | margin: 0; 345 | padding: 0; 346 | } 347 | 348 | /* 349 | Reset default styling for dialogs. 350 | */ 351 | 352 | dialog { 353 | padding: 0; 354 | } 355 | 356 | /* 357 | Prevent resizing textareas horizontally by default. 358 | */ 359 | 360 | textarea { 361 | resize: vertical; 362 | } 363 | 364 | /* 365 | 1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300) 366 | 2. Set the default placeholder color to the user's configured gray 400 color. 367 | */ 368 | 369 | input::-moz-placeholder, textarea::-moz-placeholder { 370 | opacity: 1; 371 | /* 1 */ 372 | color: #9ca3af; 373 | /* 2 */ 374 | } 375 | 376 | input::placeholder, 377 | textarea::placeholder { 378 | opacity: 1; 379 | /* 1 */ 380 | color: #9ca3af; 381 | /* 2 */ 382 | } 383 | 384 | /* 385 | Set the default cursor for buttons. 386 | */ 387 | 388 | button, 389 | [role="button"] { 390 | cursor: pointer; 391 | } 392 | 393 | /* 394 | Make sure disabled buttons don't get the pointer cursor. 395 | */ 396 | 397 | :disabled { 398 | cursor: default; 399 | } 400 | 401 | /* 402 | 1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14) 403 | 2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210) 404 | This can trigger a poorly considered lint error in some tools but is included by design. 405 | */ 406 | 407 | img, 408 | svg, 409 | video, 410 | canvas, 411 | audio, 412 | iframe, 413 | embed, 414 | object { 415 | display: block; 416 | /* 1 */ 417 | vertical-align: middle; 418 | /* 2 */ 419 | } 420 | 421 | /* 422 | Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14) 423 | */ 424 | 425 | img, 426 | video { 427 | max-width: 100%; 428 | height: auto; 429 | } 430 | 431 | /* Make elements with the HTML hidden attribute stay hidden by default */ 432 | 433 | [hidden] { 434 | display: none; 435 | } 436 | 437 | *, ::before, ::after { 438 | --tw-border-spacing-x: 0; 439 | --tw-border-spacing-y: 0; 440 | --tw-translate-x: 0; 441 | --tw-translate-y: 0; 442 | --tw-rotate: 0; 443 | --tw-skew-x: 0; 444 | --tw-skew-y: 0; 445 | --tw-scale-x: 1; 446 | --tw-scale-y: 1; 447 | --tw-pan-x: ; 448 | --tw-pan-y: ; 449 | --tw-pinch-zoom: ; 450 | --tw-scroll-snap-strictness: proximity; 451 | --tw-gradient-from-position: ; 452 | --tw-gradient-via-position: ; 453 | --tw-gradient-to-position: ; 454 | --tw-ordinal: ; 455 | --tw-slashed-zero: ; 456 | --tw-numeric-figure: ; 457 | --tw-numeric-spacing: ; 458 | --tw-numeric-fraction: ; 459 | --tw-ring-inset: ; 460 | --tw-ring-offset-width: 0px; 461 | --tw-ring-offset-color: #fff; 462 | --tw-ring-color: rgb(59 130 246 / 0.5); 463 | --tw-ring-offset-shadow: 0 0 #0000; 464 | --tw-ring-shadow: 0 0 #0000; 465 | --tw-shadow: 0 0 #0000; 466 | --tw-shadow-colored: 0 0 #0000; 467 | --tw-blur: ; 468 | --tw-brightness: ; 469 | --tw-contrast: ; 470 | --tw-grayscale: ; 471 | --tw-hue-rotate: ; 472 | --tw-invert: ; 473 | --tw-saturate: ; 474 | --tw-sepia: ; 475 | --tw-drop-shadow: ; 476 | --tw-backdrop-blur: ; 477 | --tw-backdrop-brightness: ; 478 | --tw-backdrop-contrast: ; 479 | --tw-backdrop-grayscale: ; 480 | --tw-backdrop-hue-rotate: ; 481 | --tw-backdrop-invert: ; 482 | --tw-backdrop-opacity: ; 483 | --tw-backdrop-saturate: ; 484 | --tw-backdrop-sepia: ; 485 | } 486 | 487 | ::backdrop { 488 | --tw-border-spacing-x: 0; 489 | --tw-border-spacing-y: 0; 490 | --tw-translate-x: 0; 491 | --tw-translate-y: 0; 492 | --tw-rotate: 0; 493 | --tw-skew-x: 0; 494 | --tw-skew-y: 0; 495 | --tw-scale-x: 1; 496 | --tw-scale-y: 1; 497 | --tw-pan-x: ; 498 | --tw-pan-y: ; 499 | --tw-pinch-zoom: ; 500 | --tw-scroll-snap-strictness: proximity; 501 | --tw-gradient-from-position: ; 502 | --tw-gradient-via-position: ; 503 | --tw-gradient-to-position: ; 504 | --tw-ordinal: ; 505 | --tw-slashed-zero: ; 506 | --tw-numeric-figure: ; 507 | --tw-numeric-spacing: ; 508 | --tw-numeric-fraction: ; 509 | --tw-ring-inset: ; 510 | --tw-ring-offset-width: 0px; 511 | --tw-ring-offset-color: #fff; 512 | --tw-ring-color: rgb(59 130 246 / 0.5); 513 | --tw-ring-offset-shadow: 0 0 #0000; 514 | --tw-ring-shadow: 0 0 #0000; 515 | --tw-shadow: 0 0 #0000; 516 | --tw-shadow-colored: 0 0 #0000; 517 | --tw-blur: ; 518 | --tw-brightness: ; 519 | --tw-contrast: ; 520 | --tw-grayscale: ; 521 | --tw-hue-rotate: ; 522 | --tw-invert: ; 523 | --tw-saturate: ; 524 | --tw-sepia: ; 525 | --tw-drop-shadow: ; 526 | --tw-backdrop-blur: ; 527 | --tw-backdrop-brightness: ; 528 | --tw-backdrop-contrast: ; 529 | --tw-backdrop-grayscale: ; 530 | --tw-backdrop-hue-rotate: ; 531 | --tw-backdrop-invert: ; 532 | --tw-backdrop-opacity: ; 533 | --tw-backdrop-saturate: ; 534 | --tw-backdrop-sepia: ; 535 | } 536 | 537 | .container { 538 | width: 100%; 539 | } 540 | 541 | @media (min-width: 640px) { 542 | .container { 543 | max-width: 640px; 544 | } 545 | } 546 | 547 | @media (min-width: 768px) { 548 | .container { 549 | max-width: 768px; 550 | } 551 | } 552 | 553 | @media (min-width: 1024px) { 554 | .container { 555 | max-width: 1024px; 556 | } 557 | } 558 | 559 | @media (min-width: 1280px) { 560 | .container { 561 | max-width: 1280px; 562 | } 563 | } 564 | 565 | @media (min-width: 1536px) { 566 | .container { 567 | max-width: 1536px; 568 | } 569 | } 570 | 571 | .visible { 572 | visibility: visible; 573 | } 574 | 575 | .collapse { 576 | visibility: collapse; 577 | } 578 | 579 | .fixed { 580 | position: fixed; 581 | } 582 | 583 | .absolute { 584 | position: absolute; 585 | } 586 | 587 | .relative { 588 | position: relative; 589 | } 590 | 591 | .inset-0 { 592 | inset: 0px; 593 | } 594 | 595 | .right-0 { 596 | right: 0px; 597 | } 598 | 599 | .z-10 { 600 | z-index: 10; 601 | } 602 | 603 | .z-40 { 604 | z-index: 40; 605 | } 606 | 607 | .z-50 { 608 | z-index: 50; 609 | } 610 | 611 | .mx-auto { 612 | margin-left: auto; 613 | margin-right: auto; 614 | } 615 | 616 | .my-4 { 617 | margin-top: 1rem; 618 | margin-bottom: 1rem; 619 | } 620 | 621 | .mx-4 { 622 | margin-left: 1rem; 623 | margin-right: 1rem; 624 | } 625 | 626 | .mb-2 { 627 | margin-bottom: 0.5rem; 628 | } 629 | 630 | .mb-4 { 631 | margin-bottom: 1rem; 632 | } 633 | 634 | .ml-2 { 635 | margin-left: 0.5rem; 636 | } 637 | 638 | .mr-4 { 639 | margin-right: 1rem; 640 | } 641 | 642 | .mt-3 { 643 | margin-top: 0.75rem; 644 | } 645 | 646 | .mt-4 { 647 | margin-top: 1rem; 648 | } 649 | 650 | .mt-8 { 651 | margin-top: 2rem; 652 | } 653 | 654 | .mb-0 { 655 | margin-bottom: 0px; 656 | } 657 | 658 | .block { 659 | display: block; 660 | } 661 | 662 | .flex { 663 | display: flex; 664 | } 665 | 666 | .table { 667 | display: table; 668 | } 669 | 670 | .grid { 671 | display: grid; 672 | } 673 | 674 | .contents { 675 | display: contents; 676 | } 677 | 678 | .hidden { 679 | display: none; 680 | } 681 | 682 | .h-10 { 683 | height: 2.5rem; 684 | } 685 | 686 | .h-12 { 687 | height: 3rem; 688 | } 689 | 690 | .h-20 { 691 | height: 5rem; 692 | } 693 | 694 | .h-auto { 695 | height: auto; 696 | } 697 | 698 | .h-full { 699 | height: 100%; 700 | } 701 | 702 | .h-screen { 703 | height: 100vh; 704 | } 705 | 706 | .max-h-\[80vh\] { 707 | max-height: 80vh; 708 | } 709 | 710 | .w-12 { 711 | width: 3rem; 712 | } 713 | 714 | .w-20 { 715 | width: 5rem; 716 | } 717 | 718 | .w-auto { 719 | width: auto; 720 | } 721 | 722 | .w-full { 723 | width: 100%; 724 | } 725 | 726 | .w-1 { 727 | width: 0.25rem; 728 | } 729 | 730 | .border-collapse { 731 | border-collapse: collapse; 732 | } 733 | 734 | .transform { 735 | transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); 736 | } 737 | 738 | .resize { 739 | resize: both; 740 | } 741 | 742 | .grid-cols-1 { 743 | grid-template-columns: repeat(1, minmax(0, 1fr)); 744 | } 745 | 746 | .grid-cols-2 { 747 | grid-template-columns: repeat(2, minmax(0, 1fr)); 748 | } 749 | 750 | .flex-row { 751 | flex-direction: row; 752 | } 753 | 754 | .flex-col { 755 | flex-direction: column; 756 | } 757 | 758 | .items-center { 759 | align-items: center; 760 | } 761 | 762 | .justify-center { 763 | justify-content: center; 764 | } 765 | 766 | .justify-between { 767 | justify-content: space-between; 768 | } 769 | 770 | .gap-4 { 771 | gap: 1rem; 772 | } 773 | 774 | .space-x-4 > :not([hidden]) ~ :not([hidden]) { 775 | --tw-space-x-reverse: 0; 776 | margin-right: calc(1rem * var(--tw-space-x-reverse)); 777 | margin-left: calc(1rem * calc(1 - var(--tw-space-x-reverse))); 778 | } 779 | 780 | .space-y-1 > :not([hidden]) ~ :not([hidden]) { 781 | --tw-space-y-reverse: 0; 782 | margin-top: calc(0.25rem * calc(1 - var(--tw-space-y-reverse))); 783 | margin-bottom: calc(0.25rem * var(--tw-space-y-reverse)); 784 | } 785 | 786 | .overflow-y-auto { 787 | overflow-y: auto; 788 | } 789 | 790 | .rounded-full { 791 | border-radius: 9999px; 792 | } 793 | 794 | .rounded-lg { 795 | border-radius: 0.5rem; 796 | } 797 | 798 | .rounded-md { 799 | border-radius: 0.375rem; 800 | } 801 | 802 | .border { 803 | border-width: 1px; 804 | } 805 | 806 | .bg-black { 807 | --tw-bg-opacity: 1; 808 | background-color: rgb(0 0 0 / var(--tw-bg-opacity)); 809 | } 810 | 811 | .bg-indigo-950 { 812 | --tw-bg-opacity: 1; 813 | background-color: rgb(30 27 75 / var(--tw-bg-opacity)); 814 | } 815 | 816 | .bg-purple-500 { 817 | --tw-bg-opacity: 1; 818 | background-color: rgb(168 85 247 / var(--tw-bg-opacity)); 819 | } 820 | 821 | .bg-purple-950 { 822 | --tw-bg-opacity: 1; 823 | background-color: rgb(59 7 100 / var(--tw-bg-opacity)); 824 | } 825 | 826 | .bg-slate-800 { 827 | --tw-bg-opacity: 1; 828 | background-color: rgb(30 41 59 / var(--tw-bg-opacity)); 829 | } 830 | 831 | .bg-slate-900 { 832 | --tw-bg-opacity: 1; 833 | background-color: rgb(15 23 42 / var(--tw-bg-opacity)); 834 | } 835 | 836 | .bg-slate-950 { 837 | --tw-bg-opacity: 1; 838 | background-color: rgb(2 6 23 / var(--tw-bg-opacity)); 839 | } 840 | 841 | .bg-white { 842 | --tw-bg-opacity: 1; 843 | background-color: rgb(255 255 255 / var(--tw-bg-opacity)); 844 | } 845 | 846 | .bg-green-950 { 847 | --tw-bg-opacity: 1; 848 | background-color: rgb(5 46 22 / var(--tw-bg-opacity)); 849 | } 850 | 851 | .bg-opacity-0 { 852 | --tw-bg-opacity: 0; 853 | } 854 | 855 | .bg-opacity-100 { 856 | --tw-bg-opacity: 1; 857 | } 858 | 859 | .bg-opacity-80 { 860 | --tw-bg-opacity: 0.8; 861 | } 862 | 863 | .bg-gradient-to-r { 864 | background-image: linear-gradient(to right, var(--tw-gradient-stops)); 865 | } 866 | 867 | .from-purple-500 { 868 | --tw-gradient-from: #a855f7 var(--tw-gradient-from-position); 869 | --tw-gradient-to: rgb(168 85 247 / 0) var(--tw-gradient-to-position); 870 | --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); 871 | } 872 | 873 | .to-pink-500 { 874 | --tw-gradient-to: #ec4899 var(--tw-gradient-to-position); 875 | } 876 | 877 | .p-2 { 878 | padding: 0.5rem; 879 | } 880 | 881 | .p-4 { 882 | padding: 1rem; 883 | } 884 | 885 | .px-10 { 886 | padding-left: 2.5rem; 887 | padding-right: 2.5rem; 888 | } 889 | 890 | .px-4 { 891 | padding-left: 1rem; 892 | padding-right: 1rem; 893 | } 894 | 895 | .px-6 { 896 | padding-left: 1.5rem; 897 | padding-right: 1.5rem; 898 | } 899 | 900 | .py-2 { 901 | padding-top: 0.5rem; 902 | padding-bottom: 0.5rem; 903 | } 904 | 905 | .py-20 { 906 | padding-top: 5rem; 907 | padding-bottom: 5rem; 908 | } 909 | 910 | .py-3 { 911 | padding-top: 0.75rem; 912 | padding-bottom: 0.75rem; 913 | } 914 | 915 | .py-4 { 916 | padding-top: 1rem; 917 | padding-bottom: 1rem; 918 | } 919 | 920 | .py-8 { 921 | padding-top: 2rem; 922 | padding-bottom: 2rem; 923 | } 924 | 925 | .pl-4 { 926 | padding-left: 1rem; 927 | } 928 | 929 | .pr-4 { 930 | padding-right: 1rem; 931 | } 932 | 933 | .text-left { 934 | text-align: left; 935 | } 936 | 937 | .text-center { 938 | text-align: center; 939 | } 940 | 941 | .text-right { 942 | text-align: right; 943 | } 944 | 945 | .text-2xl { 946 | font-size: 1.5rem; 947 | line-height: 2rem; 948 | } 949 | 950 | .text-3xl { 951 | font-size: 1.875rem; 952 | line-height: 2.25rem; 953 | } 954 | 955 | .text-5xl { 956 | font-size: 3rem; 957 | line-height: 1; 958 | } 959 | 960 | .text-lg { 961 | font-size: 1.125rem; 962 | line-height: 1.75rem; 963 | } 964 | 965 | .text-sm { 966 | font-size: 0.875rem; 967 | line-height: 1.25rem; 968 | } 969 | 970 | .text-xl { 971 | font-size: 1.25rem; 972 | line-height: 1.75rem; 973 | } 974 | 975 | .text-xs { 976 | font-size: 0.75rem; 977 | line-height: 1rem; 978 | } 979 | 980 | .font-bold { 981 | font-weight: 700; 982 | } 983 | 984 | .text-black { 985 | --tw-text-opacity: 1; 986 | color: rgb(0 0 0 / var(--tw-text-opacity)); 987 | } 988 | 989 | .text-gray-500 { 990 | --tw-text-opacity: 1; 991 | color: rgb(107 114 128 / var(--tw-text-opacity)); 992 | } 993 | 994 | .text-purple-500 { 995 | --tw-text-opacity: 1; 996 | color: rgb(168 85 247 / var(--tw-text-opacity)); 997 | } 998 | 999 | .text-purple-600 { 1000 | --tw-text-opacity: 1; 1001 | color: rgb(147 51 234 / var(--tw-text-opacity)); 1002 | } 1003 | 1004 | .text-white { 1005 | --tw-text-opacity: 1; 1006 | color: rgb(255 255 255 / var(--tw-text-opacity)); 1007 | } 1008 | 1009 | .underline { 1010 | text-decoration-line: underline; 1011 | } 1012 | 1013 | .shadow-lg { 1014 | --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1); 1015 | --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color); 1016 | box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); 1017 | } 1018 | 1019 | .shadow-md { 1020 | --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1); 1021 | --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color); 1022 | box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); 1023 | } 1024 | 1025 | .shadow-xl { 1026 | --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1); 1027 | --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color); 1028 | box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); 1029 | } 1030 | 1031 | .outline { 1032 | outline-style: solid; 1033 | } 1034 | 1035 | .filter { 1036 | filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); 1037 | } 1038 | 1039 | .transition { 1040 | transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter; 1041 | transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; 1042 | transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter; 1043 | transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); 1044 | transition-duration: 150ms; 1045 | } 1046 | 1047 | .transition-colors { 1048 | transition-property: color, background-color, border-color, text-decoration-color, fill, stroke; 1049 | transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); 1050 | transition-duration: 150ms; 1051 | } 1052 | 1053 | .transition-opacity { 1054 | transition-property: opacity; 1055 | transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); 1056 | transition-duration: 150ms; 1057 | } 1058 | 1059 | .hover\:bg-gray-900:hover { 1060 | --tw-bg-opacity: 1; 1061 | background-color: rgb(17 24 39 / var(--tw-bg-opacity)); 1062 | } 1063 | 1064 | .hover\:bg-purple-600:hover { 1065 | --tw-bg-opacity: 1; 1066 | background-color: rgb(147 51 234 / var(--tw-bg-opacity)); 1067 | } 1068 | 1069 | .hover\:bg-gradient-to-l:hover { 1070 | background-image: linear-gradient(to left, var(--tw-gradient-stops)); 1071 | } 1072 | 1073 | .hover\:text-gray-500:hover { 1074 | --tw-text-opacity: 1; 1075 | color: rgb(107 114 128 / var(--tw-text-opacity)); 1076 | } 1077 | 1078 | .hover\:text-purple-500:hover { 1079 | --tw-text-opacity: 1; 1080 | color: rgb(168 85 247 / var(--tw-text-opacity)); 1081 | } 1082 | 1083 | .hover\:text-purple-600:hover { 1084 | --tw-text-opacity: 1; 1085 | color: rgb(147 51 234 / var(--tw-text-opacity)); 1086 | } 1087 | 1088 | .hover\:opacity-80:hover { 1089 | opacity: 0.8; 1090 | } 1091 | 1092 | .focus\:outline-none:focus { 1093 | outline: 2px solid transparent; 1094 | outline-offset: 2px; 1095 | } 1096 | 1097 | .focus\:ring-4:focus { 1098 | --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); 1099 | --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color); 1100 | box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); 1101 | } 1102 | 1103 | .focus\:ring-purple-200:focus { 1104 | --tw-ring-opacity: 1; 1105 | --tw-ring-color: rgb(233 213 255 / var(--tw-ring-opacity)); 1106 | } 1107 | 1108 | @media (prefers-color-scheme: dark) { 1109 | .dark\:focus\:ring-purple-800:focus { 1110 | --tw-ring-opacity: 1; 1111 | --tw-ring-color: rgb(107 33 168 / var(--tw-ring-opacity)); 1112 | } 1113 | } 1114 | 1115 | @media (min-width: 768px) { 1116 | .md\:mx-4 { 1117 | margin-left: 1rem; 1118 | margin-right: 1rem; 1119 | } 1120 | 1121 | .md\:mb-0 { 1122 | margin-bottom: 0px; 1123 | } 1124 | 1125 | .md\:block { 1126 | display: block; 1127 | } 1128 | 1129 | .md\:flex { 1130 | display: flex; 1131 | } 1132 | 1133 | .md\:hidden { 1134 | display: none; 1135 | } 1136 | 1137 | .md\:w-1\/2 { 1138 | width: 50%; 1139 | } 1140 | 1141 | .md\:w-1\/4 { 1142 | width: 25%; 1143 | } 1144 | 1145 | .md\:w-auto { 1146 | width: auto; 1147 | } 1148 | 1149 | .md\:w-full { 1150 | width: 100%; 1151 | } 1152 | 1153 | .md\:grid-cols-2 { 1154 | grid-template-columns: repeat(2, minmax(0, 1fr)); 1155 | } 1156 | 1157 | .md\:flex-row { 1158 | flex-direction: row; 1159 | } 1160 | 1161 | .md\:items-center { 1162 | align-items: center; 1163 | } 1164 | 1165 | .md\:justify-between { 1166 | justify-content: space-between; 1167 | } 1168 | 1169 | .md\:pl-4 { 1170 | padding-left: 1rem; 1171 | } 1172 | 1173 | .md\:pr-4 { 1174 | padding-right: 1rem; 1175 | } 1176 | 1177 | .md\:text-left { 1178 | text-align: left; 1179 | } 1180 | 1181 | .md\:text-right { 1182 | text-align: right; 1183 | } 1184 | } -------------------------------------------------------------------------------- /style.css: -------------------------------------------------------------------------------- 1 | /* 2 | ! tailwindcss v3.3.5 | MIT License | https://tailwindcss.com 3 | */ 4 | 5 | /* 6 | 1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4) 7 | 2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116) 8 | */ 9 | 10 | *, 11 | ::before, 12 | ::after { 13 | box-sizing: border-box; 14 | /* 1 */ 15 | border-width: 0; 16 | /* 2 */ 17 | border-style: solid; 18 | /* 2 */ 19 | border-color: #e5e7eb; 20 | /* 2 */ 21 | } 22 | 23 | ::before, 24 | ::after { 25 | --tw-content: ''; 26 | } 27 | 28 | /* 29 | 1. Use a consistent sensible line-height in all browsers. 30 | 2. Prevent adjustments of font size after orientation changes in iOS. 31 | 3. Use a more readable tab size. 32 | 4. Use the user's configured `sans` font-family by default. 33 | 5. Use the user's configured `sans` font-feature-settings by default. 34 | 6. Use the user's configured `sans` font-variation-settings by default. 35 | */ 36 | 37 | html { 38 | line-height: 1.5; 39 | /* 1 */ 40 | -webkit-text-size-adjust: 100%; 41 | /* 2 */ 42 | -moz-tab-size: 4; 43 | /* 3 */ 44 | -o-tab-size: 4; 45 | tab-size: 4; 46 | /* 3 */ 47 | font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; 48 | /* 4 */ 49 | font-feature-settings: normal; 50 | /* 5 */ 51 | font-variation-settings: normal; 52 | /* 6 */ 53 | } 54 | 55 | /* 56 | 1. Remove the margin in all browsers. 57 | 2. Inherit line-height from `html` so users can set them as a class directly on the `html` element. 58 | */ 59 | 60 | body { 61 | margin: 0; 62 | /* 1 */ 63 | line-height: inherit; 64 | /* 2 */ 65 | } 66 | 67 | /* 68 | 1. Add the correct height in Firefox. 69 | 2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655) 70 | 3. Ensure horizontal rules are visible by default. 71 | */ 72 | 73 | hr { 74 | height: 0; 75 | /* 1 */ 76 | color: inherit; 77 | /* 2 */ 78 | border-top-width: 1px; 79 | /* 3 */ 80 | } 81 | 82 | /* 83 | Add the correct text decoration in Chrome, Edge, and Safari. 84 | */ 85 | 86 | abbr:where([title]) { 87 | -webkit-text-decoration: underline dotted; 88 | text-decoration: underline dotted; 89 | } 90 | 91 | /* 92 | Remove the default font size and weight for headings. 93 | */ 94 | 95 | h1, 96 | h2, 97 | h3, 98 | h4, 99 | h5, 100 | h6 { 101 | font-size: inherit; 102 | font-weight: inherit; 103 | } 104 | 105 | /* 106 | Reset links to optimize for opt-in styling instead of opt-out. 107 | */ 108 | 109 | a { 110 | color: inherit; 111 | text-decoration: inherit; 112 | } 113 | 114 | /* 115 | Add the correct font weight in Edge and Safari. 116 | */ 117 | 118 | b, 119 | strong { 120 | font-weight: bolder; 121 | } 122 | 123 | /* 124 | 1. Use the user's configured `mono` font family by default. 125 | 2. Correct the odd `em` font sizing in all browsers. 126 | */ 127 | 128 | code, 129 | kbd, 130 | samp, 131 | pre { 132 | font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; 133 | /* 1 */ 134 | font-size: 1em; 135 | /* 2 */ 136 | } 137 | 138 | /* 139 | Add the correct font size in all browsers. 140 | */ 141 | 142 | small { 143 | font-size: 80%; 144 | } 145 | 146 | /* 147 | Prevent `sub` and `sup` elements from affecting the line height in all browsers. 148 | */ 149 | 150 | sub, 151 | sup { 152 | font-size: 75%; 153 | line-height: 0; 154 | position: relative; 155 | vertical-align: baseline; 156 | } 157 | 158 | sub { 159 | bottom: -0.25em; 160 | } 161 | 162 | sup { 163 | top: -0.5em; 164 | } 165 | 166 | /* 167 | 1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297) 168 | 2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016) 169 | 3. Remove gaps between table borders by default. 170 | */ 171 | 172 | table { 173 | text-indent: 0; 174 | /* 1 */ 175 | border-color: inherit; 176 | /* 2 */ 177 | border-collapse: collapse; 178 | /* 3 */ 179 | } 180 | 181 | /* 182 | 1. Change the font styles in all browsers. 183 | 2. Remove the margin in Firefox and Safari. 184 | 3. Remove default padding in all browsers. 185 | */ 186 | 187 | button, 188 | input, 189 | optgroup, 190 | select, 191 | textarea { 192 | font-family: inherit; 193 | /* 1 */ 194 | font-feature-settings: inherit; 195 | /* 1 */ 196 | font-variation-settings: inherit; 197 | /* 1 */ 198 | font-size: 100%; 199 | /* 1 */ 200 | font-weight: inherit; 201 | /* 1 */ 202 | line-height: inherit; 203 | /* 1 */ 204 | color: inherit; 205 | /* 1 */ 206 | margin: 0; 207 | /* 2 */ 208 | padding: 0; 209 | /* 3 */ 210 | } 211 | 212 | /* 213 | Remove the inheritance of text transform in Edge and Firefox. 214 | */ 215 | 216 | button, 217 | select { 218 | text-transform: none; 219 | } 220 | 221 | /* 222 | 1. Correct the inability to style clickable types in iOS and Safari. 223 | 2. Remove default button styles. 224 | */ 225 | 226 | button, 227 | [type='button'], 228 | [type='reset'], 229 | [type='submit'] { 230 | -webkit-appearance: button; 231 | /* 1 */ 232 | background-color: transparent; 233 | /* 2 */ 234 | background-image: none; 235 | /* 2 */ 236 | } 237 | 238 | /* 239 | Use the modern Firefox focus style for all focusable elements. 240 | */ 241 | 242 | :-moz-focusring { 243 | outline: auto; 244 | } 245 | 246 | /* 247 | Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737) 248 | */ 249 | 250 | :-moz-ui-invalid { 251 | box-shadow: none; 252 | } 253 | 254 | /* 255 | Add the correct vertical alignment in Chrome and Firefox. 256 | */ 257 | 258 | progress { 259 | vertical-align: baseline; 260 | } 261 | 262 | /* 263 | Correct the cursor style of increment and decrement buttons in Safari. 264 | */ 265 | 266 | ::-webkit-inner-spin-button, 267 | ::-webkit-outer-spin-button { 268 | height: auto; 269 | } 270 | 271 | /* 272 | 1. Correct the odd appearance in Chrome and Safari. 273 | 2. Correct the outline style in Safari. 274 | */ 275 | 276 | [type='search'] { 277 | -webkit-appearance: textfield; 278 | /* 1 */ 279 | outline-offset: -2px; 280 | /* 2 */ 281 | } 282 | 283 | /* 284 | Remove the inner padding in Chrome and Safari on macOS. 285 | */ 286 | 287 | ::-webkit-search-decoration { 288 | -webkit-appearance: none; 289 | } 290 | 291 | /* 292 | 1. Correct the inability to style clickable types in iOS and Safari. 293 | 2. Change font properties to `inherit` in Safari. 294 | */ 295 | 296 | ::-webkit-file-upload-button { 297 | -webkit-appearance: button; 298 | /* 1 */ 299 | font: inherit; 300 | /* 2 */ 301 | } 302 | 303 | /* 304 | Add the correct display in Chrome and Safari. 305 | */ 306 | 307 | summary { 308 | display: list-item; 309 | } 310 | 311 | /* 312 | Removes the default spacing and border for appropriate elements. 313 | */ 314 | 315 | blockquote, 316 | dl, 317 | dd, 318 | h1, 319 | h2, 320 | h3, 321 | h4, 322 | h5, 323 | h6, 324 | hr, 325 | figure, 326 | p, 327 | pre { 328 | margin: 0; 329 | } 330 | 331 | fieldset { 332 | margin: 0; 333 | padding: 0; 334 | } 335 | 336 | legend { 337 | padding: 0; 338 | } 339 | 340 | ol, 341 | ul, 342 | menu { 343 | list-style: none; 344 | margin: 0; 345 | padding: 0; 346 | } 347 | 348 | /* 349 | Reset default styling for dialogs. 350 | */ 351 | 352 | dialog { 353 | padding: 0; 354 | } 355 | 356 | /* 357 | Prevent resizing textareas horizontally by default. 358 | */ 359 | 360 | textarea { 361 | resize: vertical; 362 | } 363 | 364 | /* 365 | 1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300) 366 | 2. Set the default placeholder color to the user's configured gray 400 color. 367 | */ 368 | 369 | input::-moz-placeholder, textarea::-moz-placeholder { 370 | opacity: 1; 371 | /* 1 */ 372 | color: #9ca3af; 373 | /* 2 */ 374 | } 375 | 376 | input::placeholder, 377 | textarea::placeholder { 378 | opacity: 1; 379 | /* 1 */ 380 | color: #9ca3af; 381 | /* 2 */ 382 | } 383 | 384 | /* 385 | Set the default cursor for buttons. 386 | */ 387 | 388 | button, 389 | [role="button"] { 390 | cursor: pointer; 391 | } 392 | 393 | /* 394 | Make sure disabled buttons don't get the pointer cursor. 395 | */ 396 | 397 | :disabled { 398 | cursor: default; 399 | } 400 | 401 | /* 402 | 1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14) 403 | 2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210) 404 | This can trigger a poorly considered lint error in some tools but is included by design. 405 | */ 406 | 407 | img, 408 | svg, 409 | video, 410 | canvas, 411 | audio, 412 | iframe, 413 | embed, 414 | object { 415 | display: block; 416 | /* 1 */ 417 | vertical-align: middle; 418 | /* 2 */ 419 | } 420 | 421 | /* 422 | Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14) 423 | */ 424 | 425 | img, 426 | video { 427 | max-width: 100%; 428 | height: auto; 429 | } 430 | 431 | /* Make elements with the HTML hidden attribute stay hidden by default */ 432 | 433 | [hidden] { 434 | display: none; 435 | } 436 | 437 | *, ::before, ::after { 438 | --tw-border-spacing-x: 0; 439 | --tw-border-spacing-y: 0; 440 | --tw-translate-x: 0; 441 | --tw-translate-y: 0; 442 | --tw-rotate: 0; 443 | --tw-skew-x: 0; 444 | --tw-skew-y: 0; 445 | --tw-scale-x: 1; 446 | --tw-scale-y: 1; 447 | --tw-pan-x: ; 448 | --tw-pan-y: ; 449 | --tw-pinch-zoom: ; 450 | --tw-scroll-snap-strictness: proximity; 451 | --tw-gradient-from-position: ; 452 | --tw-gradient-via-position: ; 453 | --tw-gradient-to-position: ; 454 | --tw-ordinal: ; 455 | --tw-slashed-zero: ; 456 | --tw-numeric-figure: ; 457 | --tw-numeric-spacing: ; 458 | --tw-numeric-fraction: ; 459 | --tw-ring-inset: ; 460 | --tw-ring-offset-width: 0px; 461 | --tw-ring-offset-color: #fff; 462 | --tw-ring-color: rgb(59 130 246 / 0.5); 463 | --tw-ring-offset-shadow: 0 0 #0000; 464 | --tw-ring-shadow: 0 0 #0000; 465 | --tw-shadow: 0 0 #0000; 466 | --tw-shadow-colored: 0 0 #0000; 467 | --tw-blur: ; 468 | --tw-brightness: ; 469 | --tw-contrast: ; 470 | --tw-grayscale: ; 471 | --tw-hue-rotate: ; 472 | --tw-invert: ; 473 | --tw-saturate: ; 474 | --tw-sepia: ; 475 | --tw-drop-shadow: ; 476 | --tw-backdrop-blur: ; 477 | --tw-backdrop-brightness: ; 478 | --tw-backdrop-contrast: ; 479 | --tw-backdrop-grayscale: ; 480 | --tw-backdrop-hue-rotate: ; 481 | --tw-backdrop-invert: ; 482 | --tw-backdrop-opacity: ; 483 | --tw-backdrop-saturate: ; 484 | --tw-backdrop-sepia: ; 485 | } 486 | 487 | ::backdrop { 488 | --tw-border-spacing-x: 0; 489 | --tw-border-spacing-y: 0; 490 | --tw-translate-x: 0; 491 | --tw-translate-y: 0; 492 | --tw-rotate: 0; 493 | --tw-skew-x: 0; 494 | --tw-skew-y: 0; 495 | --tw-scale-x: 1; 496 | --tw-scale-y: 1; 497 | --tw-pan-x: ; 498 | --tw-pan-y: ; 499 | --tw-pinch-zoom: ; 500 | --tw-scroll-snap-strictness: proximity; 501 | --tw-gradient-from-position: ; 502 | --tw-gradient-via-position: ; 503 | --tw-gradient-to-position: ; 504 | --tw-ordinal: ; 505 | --tw-slashed-zero: ; 506 | --tw-numeric-figure: ; 507 | --tw-numeric-spacing: ; 508 | --tw-numeric-fraction: ; 509 | --tw-ring-inset: ; 510 | --tw-ring-offset-width: 0px; 511 | --tw-ring-offset-color: #fff; 512 | --tw-ring-color: rgb(59 130 246 / 0.5); 513 | --tw-ring-offset-shadow: 0 0 #0000; 514 | --tw-ring-shadow: 0 0 #0000; 515 | --tw-shadow: 0 0 #0000; 516 | --tw-shadow-colored: 0 0 #0000; 517 | --tw-blur: ; 518 | --tw-brightness: ; 519 | --tw-contrast: ; 520 | --tw-grayscale: ; 521 | --tw-hue-rotate: ; 522 | --tw-invert: ; 523 | --tw-saturate: ; 524 | --tw-sepia: ; 525 | --tw-drop-shadow: ; 526 | --tw-backdrop-blur: ; 527 | --tw-backdrop-brightness: ; 528 | --tw-backdrop-contrast: ; 529 | --tw-backdrop-grayscale: ; 530 | --tw-backdrop-hue-rotate: ; 531 | --tw-backdrop-invert: ; 532 | --tw-backdrop-opacity: ; 533 | --tw-backdrop-saturate: ; 534 | --tw-backdrop-sepia: ; 535 | } 536 | 537 | .container { 538 | width: 100%; 539 | } 540 | 541 | @media (min-width: 640px) { 542 | .container { 543 | max-width: 640px; 544 | } 545 | } 546 | 547 | @media (min-width: 768px) { 548 | .container { 549 | max-width: 768px; 550 | } 551 | } 552 | 553 | @media (min-width: 1024px) { 554 | .container { 555 | max-width: 1024px; 556 | } 557 | } 558 | 559 | @media (min-width: 1280px) { 560 | .container { 561 | max-width: 1280px; 562 | } 563 | } 564 | 565 | @media (min-width: 1536px) { 566 | .container { 567 | max-width: 1536px; 568 | } 569 | } 570 | 571 | .visible { 572 | visibility: visible; 573 | } 574 | 575 | .collapse { 576 | visibility: collapse; 577 | } 578 | 579 | .fixed { 580 | position: fixed; 581 | } 582 | 583 | .absolute { 584 | position: absolute; 585 | } 586 | 587 | .relative { 588 | position: relative; 589 | } 590 | 591 | .inset-0 { 592 | inset: 0px; 593 | } 594 | 595 | .right-0 { 596 | right: 0px; 597 | } 598 | 599 | .z-10 { 600 | z-index: 10; 601 | } 602 | 603 | .z-40 { 604 | z-index: 40; 605 | } 606 | 607 | .z-50 { 608 | z-index: 50; 609 | } 610 | 611 | .mx-auto { 612 | margin-left: auto; 613 | margin-right: auto; 614 | } 615 | 616 | .my-4 { 617 | margin-top: 1rem; 618 | margin-bottom: 1rem; 619 | } 620 | 621 | .mx-4 { 622 | margin-left: 1rem; 623 | margin-right: 1rem; 624 | } 625 | 626 | .mb-2 { 627 | margin-bottom: 0.5rem; 628 | } 629 | 630 | .mb-4 { 631 | margin-bottom: 1rem; 632 | } 633 | 634 | .ml-2 { 635 | margin-left: 0.5rem; 636 | } 637 | 638 | .mr-4 { 639 | margin-right: 1rem; 640 | } 641 | 642 | .mt-3 { 643 | margin-top: 0.75rem; 644 | } 645 | 646 | .mt-4 { 647 | margin-top: 1rem; 648 | } 649 | 650 | .mt-8 { 651 | margin-top: 2rem; 652 | } 653 | 654 | .mb-0 { 655 | margin-bottom: 0px; 656 | } 657 | 658 | .block { 659 | display: block; 660 | } 661 | 662 | .flex { 663 | display: flex; 664 | } 665 | 666 | .table { 667 | display: table; 668 | } 669 | 670 | .grid { 671 | display: grid; 672 | } 673 | 674 | .contents { 675 | display: contents; 676 | } 677 | 678 | .hidden { 679 | display: none; 680 | } 681 | 682 | .h-10 { 683 | height: 2.5rem; 684 | } 685 | 686 | .h-12 { 687 | height: 3rem; 688 | } 689 | 690 | .h-20 { 691 | height: 5rem; 692 | } 693 | 694 | .h-auto { 695 | height: auto; 696 | } 697 | 698 | .h-full { 699 | height: 100%; 700 | } 701 | 702 | .h-screen { 703 | height: 100vh; 704 | } 705 | 706 | .max-h-\[80vh\] { 707 | max-height: 80vh; 708 | } 709 | 710 | .w-12 { 711 | width: 3rem; 712 | } 713 | 714 | .w-20 { 715 | width: 5rem; 716 | } 717 | 718 | .w-auto { 719 | width: auto; 720 | } 721 | 722 | .w-full { 723 | width: 100%; 724 | } 725 | 726 | .w-1 { 727 | width: 0.25rem; 728 | } 729 | 730 | .border-collapse { 731 | border-collapse: collapse; 732 | } 733 | 734 | .transform { 735 | transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); 736 | } 737 | 738 | .resize { 739 | resize: both; 740 | } 741 | 742 | .grid-cols-1 { 743 | grid-template-columns: repeat(1, minmax(0, 1fr)); 744 | } 745 | 746 | .grid-cols-2 { 747 | grid-template-columns: repeat(2, minmax(0, 1fr)); 748 | } 749 | 750 | .flex-row { 751 | flex-direction: row; 752 | } 753 | 754 | .flex-col { 755 | flex-direction: column; 756 | } 757 | 758 | .items-center { 759 | align-items: center; 760 | } 761 | 762 | .justify-center { 763 | justify-content: center; 764 | } 765 | 766 | .justify-between { 767 | justify-content: space-between; 768 | } 769 | 770 | .gap-4 { 771 | gap: 1rem; 772 | } 773 | 774 | .space-x-4 > :not([hidden]) ~ :not([hidden]) { 775 | --tw-space-x-reverse: 0; 776 | margin-right: calc(1rem * var(--tw-space-x-reverse)); 777 | margin-left: calc(1rem * calc(1 - var(--tw-space-x-reverse))); 778 | } 779 | 780 | .space-y-1 > :not([hidden]) ~ :not([hidden]) { 781 | --tw-space-y-reverse: 0; 782 | margin-top: calc(0.25rem * calc(1 - var(--tw-space-y-reverse))); 783 | margin-bottom: calc(0.25rem * var(--tw-space-y-reverse)); 784 | } 785 | 786 | .overflow-y-auto { 787 | overflow-y: auto; 788 | } 789 | 790 | .rounded-full { 791 | border-radius: 9999px; 792 | } 793 | 794 | .rounded-lg { 795 | border-radius: 0.5rem; 796 | } 797 | 798 | .rounded-md { 799 | border-radius: 0.375rem; 800 | } 801 | 802 | .border { 803 | border-width: 1px; 804 | } 805 | 806 | .bg-black { 807 | --tw-bg-opacity: 1; 808 | background-color: rgb(0 0 0 / var(--tw-bg-opacity)); 809 | } 810 | 811 | .bg-indigo-950 { 812 | --tw-bg-opacity: 1; 813 | background-color: rgb(30 27 75 / var(--tw-bg-opacity)); 814 | } 815 | 816 | .bg-purple-500 { 817 | --tw-bg-opacity: 1; 818 | background-color: rgb(168 85 247 / var(--tw-bg-opacity)); 819 | } 820 | 821 | .bg-purple-950 { 822 | --tw-bg-opacity: 1; 823 | background-color: rgb(59 7 100 / var(--tw-bg-opacity)); 824 | } 825 | 826 | .bg-slate-800 { 827 | --tw-bg-opacity: 1; 828 | background-color: rgb(30 41 59 / var(--tw-bg-opacity)); 829 | } 830 | 831 | .bg-slate-900 { 832 | --tw-bg-opacity: 1; 833 | background-color: rgb(15 23 42 / var(--tw-bg-opacity)); 834 | } 835 | 836 | .bg-slate-950 { 837 | --tw-bg-opacity: 1; 838 | background-color: rgb(2 6 23 / var(--tw-bg-opacity)); 839 | } 840 | 841 | .bg-white { 842 | --tw-bg-opacity: 1; 843 | background-color: rgb(255 255 255 / var(--tw-bg-opacity)); 844 | } 845 | 846 | .bg-green-950 { 847 | --tw-bg-opacity: 1; 848 | background-color: rgb(5 46 22 / var(--tw-bg-opacity)); 849 | } 850 | 851 | .bg-opacity-0 { 852 | --tw-bg-opacity: 0; 853 | } 854 | 855 | .bg-opacity-100 { 856 | --tw-bg-opacity: 1; 857 | } 858 | 859 | .bg-opacity-80 { 860 | --tw-bg-opacity: 0.8; 861 | } 862 | 863 | .bg-gradient-to-r { 864 | background-image: linear-gradient(to right, var(--tw-gradient-stops)); 865 | } 866 | 867 | .from-purple-500 { 868 | --tw-gradient-from: #a855f7 var(--tw-gradient-from-position); 869 | --tw-gradient-to: rgb(168 85 247 / 0) var(--tw-gradient-to-position); 870 | --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); 871 | } 872 | 873 | .to-pink-500 { 874 | --tw-gradient-to: #ec4899 var(--tw-gradient-to-position); 875 | } 876 | 877 | .p-2 { 878 | padding: 0.5rem; 879 | } 880 | 881 | .p-4 { 882 | padding: 1rem; 883 | } 884 | 885 | .px-10 { 886 | padding-left: 2.5rem; 887 | padding-right: 2.5rem; 888 | } 889 | 890 | .px-4 { 891 | padding-left: 1rem; 892 | padding-right: 1rem; 893 | } 894 | 895 | .px-6 { 896 | padding-left: 1.5rem; 897 | padding-right: 1.5rem; 898 | } 899 | 900 | .py-2 { 901 | padding-top: 0.5rem; 902 | padding-bottom: 0.5rem; 903 | } 904 | 905 | .py-20 { 906 | padding-top: 5rem; 907 | padding-bottom: 5rem; 908 | } 909 | 910 | .py-3 { 911 | padding-top: 0.75rem; 912 | padding-bottom: 0.75rem; 913 | } 914 | 915 | .py-4 { 916 | padding-top: 1rem; 917 | padding-bottom: 1rem; 918 | } 919 | 920 | .py-8 { 921 | padding-top: 2rem; 922 | padding-bottom: 2rem; 923 | } 924 | 925 | .pl-4 { 926 | padding-left: 1rem; 927 | } 928 | 929 | .pr-4 { 930 | padding-right: 1rem; 931 | } 932 | 933 | .text-left { 934 | text-align: left; 935 | } 936 | 937 | .text-center { 938 | text-align: center; 939 | } 940 | 941 | .text-right { 942 | text-align: right; 943 | } 944 | 945 | .text-2xl { 946 | font-size: 1.5rem; 947 | line-height: 2rem; 948 | } 949 | 950 | .text-3xl { 951 | font-size: 1.875rem; 952 | line-height: 2.25rem; 953 | } 954 | 955 | .text-5xl { 956 | font-size: 3rem; 957 | line-height: 1; 958 | } 959 | 960 | .text-lg { 961 | font-size: 1.125rem; 962 | line-height: 1.75rem; 963 | } 964 | 965 | .text-sm { 966 | font-size: 0.875rem; 967 | line-height: 1.25rem; 968 | } 969 | 970 | .text-xl { 971 | font-size: 1.25rem; 972 | line-height: 1.75rem; 973 | } 974 | 975 | .text-xs { 976 | font-size: 0.75rem; 977 | line-height: 1rem; 978 | } 979 | 980 | .font-bold { 981 | font-weight: 700; 982 | } 983 | 984 | .text-black { 985 | --tw-text-opacity: 1; 986 | color: rgb(0 0 0 / var(--tw-text-opacity)); 987 | } 988 | 989 | .text-gray-500 { 990 | --tw-text-opacity: 1; 991 | color: rgb(107 114 128 / var(--tw-text-opacity)); 992 | } 993 | 994 | .text-purple-500 { 995 | --tw-text-opacity: 1; 996 | color: rgb(168 85 247 / var(--tw-text-opacity)); 997 | } 998 | 999 | .text-purple-600 { 1000 | --tw-text-opacity: 1; 1001 | color: rgb(147 51 234 / var(--tw-text-opacity)); 1002 | } 1003 | 1004 | .text-white { 1005 | --tw-text-opacity: 1; 1006 | color: rgb(255 255 255 / var(--tw-text-opacity)); 1007 | } 1008 | 1009 | .underline { 1010 | text-decoration-line: underline; 1011 | } 1012 | 1013 | .shadow-lg { 1014 | --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1); 1015 | --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color); 1016 | box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); 1017 | } 1018 | 1019 | .shadow-md { 1020 | --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1); 1021 | --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color); 1022 | box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); 1023 | } 1024 | 1025 | .shadow-xl { 1026 | --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1); 1027 | --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color); 1028 | box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); 1029 | } 1030 | 1031 | .outline { 1032 | outline-style: solid; 1033 | } 1034 | 1035 | .filter { 1036 | filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); 1037 | } 1038 | 1039 | .transition { 1040 | transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter; 1041 | transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; 1042 | transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter; 1043 | transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); 1044 | transition-duration: 150ms; 1045 | } 1046 | 1047 | .transition-colors { 1048 | transition-property: color, background-color, border-color, text-decoration-color, fill, stroke; 1049 | transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); 1050 | transition-duration: 150ms; 1051 | } 1052 | 1053 | .transition-opacity { 1054 | transition-property: opacity; 1055 | transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); 1056 | transition-duration: 150ms; 1057 | } 1058 | 1059 | .hover\:bg-gray-900:hover { 1060 | --tw-bg-opacity: 1; 1061 | background-color: rgb(17 24 39 / var(--tw-bg-opacity)); 1062 | } 1063 | 1064 | .hover\:bg-purple-600:hover { 1065 | --tw-bg-opacity: 1; 1066 | background-color: rgb(147 51 234 / var(--tw-bg-opacity)); 1067 | } 1068 | 1069 | .hover\:bg-gradient-to-l:hover { 1070 | background-image: linear-gradient(to left, var(--tw-gradient-stops)); 1071 | } 1072 | 1073 | .hover\:text-gray-500:hover { 1074 | --tw-text-opacity: 1; 1075 | color: rgb(107 114 128 / var(--tw-text-opacity)); 1076 | } 1077 | 1078 | .hover\:text-purple-500:hover { 1079 | --tw-text-opacity: 1; 1080 | color: rgb(168 85 247 / var(--tw-text-opacity)); 1081 | } 1082 | 1083 | .hover\:text-purple-600:hover { 1084 | --tw-text-opacity: 1; 1085 | color: rgb(147 51 234 / var(--tw-text-opacity)); 1086 | } 1087 | 1088 | .hover\:opacity-80:hover { 1089 | opacity: 0.8; 1090 | } 1091 | 1092 | .focus\:outline-none:focus { 1093 | outline: 2px solid transparent; 1094 | outline-offset: 2px; 1095 | } 1096 | 1097 | .focus\:ring-4:focus { 1098 | --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); 1099 | --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color); 1100 | box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); 1101 | } 1102 | 1103 | .focus\:ring-purple-200:focus { 1104 | --tw-ring-opacity: 1; 1105 | --tw-ring-color: rgb(233 213 255 / var(--tw-ring-opacity)); 1106 | } 1107 | 1108 | @media (prefers-color-scheme: dark) { 1109 | .dark\:focus\:ring-purple-800:focus { 1110 | --tw-ring-opacity: 1; 1111 | --tw-ring-color: rgb(107 33 168 / var(--tw-ring-opacity)); 1112 | } 1113 | } 1114 | 1115 | @media (min-width: 768px) { 1116 | .md\:mx-4 { 1117 | margin-left: 1rem; 1118 | margin-right: 1rem; 1119 | } 1120 | 1121 | .md\:mb-0 { 1122 | margin-bottom: 0px; 1123 | } 1124 | 1125 | .md\:block { 1126 | display: block; 1127 | } 1128 | 1129 | .md\:flex { 1130 | display: flex; 1131 | } 1132 | 1133 | .md\:hidden { 1134 | display: none; 1135 | } 1136 | 1137 | .md\:w-1\/2 { 1138 | width: 50%; 1139 | } 1140 | 1141 | .md\:w-1\/4 { 1142 | width: 25%; 1143 | } 1144 | 1145 | .md\:w-auto { 1146 | width: auto; 1147 | } 1148 | 1149 | .md\:w-full { 1150 | width: 100%; 1151 | } 1152 | 1153 | .md\:grid-cols-2 { 1154 | grid-template-columns: repeat(2, minmax(0, 1fr)); 1155 | } 1156 | 1157 | .md\:flex-row { 1158 | flex-direction: row; 1159 | } 1160 | 1161 | .md\:items-center { 1162 | align-items: center; 1163 | } 1164 | 1165 | .md\:justify-between { 1166 | justify-content: space-between; 1167 | } 1168 | 1169 | .md\:pl-4 { 1170 | padding-left: 1rem; 1171 | } 1172 | 1173 | .md\:pr-4 { 1174 | padding-right: 1rem; 1175 | } 1176 | 1177 | .md\:text-left { 1178 | text-align: left; 1179 | } 1180 | 1181 | .md\:text-right { 1182 | text-align: right; 1183 | } 1184 | } -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | Dantotsu 10 | 35 | 36 | 37 |
38 |

We Are Back!

39 |

Offical Dantotsu.app got a DMCA (taken down), sorry about that.

40 |
41 | 42 | 43 | 44 | 45 | 46 | 47 | Dantotsu 48 | 109 | 127 | 155 | 156 | 157 | 158 | 159 | 166 | 167 |
168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | Dantotsu 197 | 198 | 205 | 206 | 207 | 251 | 252 |
257 |
258 |
259 |

Dantotsu

260 |

दंतोत्सु

261 |

Dantotsu en Español

262 |

Read & Watch Anywhere

263 | 264 | 265 |

An open-source mobile application for Anilist enthusiasts, inspired by Saikou and enhanced with Tachi/Aniyomi extensions.

266 | 267 | 268 |
269 | 270 | Install 271 | 272 | Features 273 |
274 |
275 |
276 | 277 |
278 |
279 | 280 |
281 |
282 | 283 |
284 |

Catch Up On Your Favorites!

285 |

Dantotsu is designed for anime and manga enthusiasts who want to catch up on their favorite series. It's a user-friendly app that lets you enjoy your "favorite" anime and manga on the go. With integrated Anilist support, you can easily track your progress and stay up to date with what your friends are watching and reading.

286 |
287 | 288 |
289 | Feature Screenshot 290 |
291 |
292 |
293 | 294 |
295 |
296 | 297 |
298 |

Everything Is In Your Finger-tips!

299 |

Say goodbye to the hassle of opening a browser to search for your favorite anime or manga. Dantotsu, a versatile client built upon Anilist & Tachi/Aniyomi. You can have Aniwave for anime watching and Mangadex for reading manga, puts everything you need right at your fingertips. There's no need to leave the app; just install it, and everything you love magically appears when you're ready to explore and discover new content.

300 |
301 |
302 | Feature Screenshot 303 |
304 | 305 | 308 | 309 | 313 |
314 |
315 | 316 |
317 |
318 | 319 |
320 |

Make Dantotsu Yours!

321 |

Dantotsu is designed to offer a customizable experience. With a growing collection of materials that include three themes and more (according to the latest version), you can personalize your app to match your preferences. Not only can you change the theme to your liking, but you can also select your favorite anime character as the app icon. Additionally, you have the option to customize your home page, allowing you to choose the content that matters most to you.

322 |
323 | 324 |
325 | Feature Screenshot 326 |
327 |
328 |
329 | 330 |
331 |
332 | 333 | 368 |
369 |
370 | 371 | 558 | 559 | 576 | 577 | 649 | 650 | -------------------------------------------------------------------------------- /install.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | Dantotsu 29 | 57 | 85 | 86 | 93 | 94 | 95 | 96 | 139 | 140 |
141 |
142 |
143 |

Installation

  144 |

Join for support! 145 | 146 | Discord 147 | or 148 | Telegram 149 |

150 | 151 |
152 | 153 |
154 | 155 | 181 | 182 |
183 | 184 |
185 | 186 | 212 | 213 |
214 | 215 |
216 | 217 | 247 | 248 | 296 | 301 | 615 |
616 | 617 | Extensions 618 | 619 | 640 | 641 | 661 | 662 | 682 | 732 | 733 | Versions 734 |

735 |
736 | 737 | 741 |
742 | 776 |
777 |
778 | 779 |
780 |
781 | 969 | 970 |
971 |
972 |
973 |

974 | with by Dantotsu Contributors 975 |

976 |
977 |

978 |

979 | DMCADonateDiscordTelegramGithub 980 |
981 |

982 |
983 | 984 |
985 |
986 |
987 | 988 | 1052 | 1053 | --------------------------------------------------------------------------------