Fixed up dark mode vs. not and added a linkedin mobil copy.

main
Zed A. Shaw 4 days ago
parent bf1426261d
commit 2477603190
  1. 108
      pages/copy/gitea.html
  2. 97
      pages/copy/linkedin.html
  3. 20
      pages/copy/stride.html
  4. 4
      pages/game/index.html
  5. 8
      pages/index.html
  6. 2
      pages/layouts/main.html
  7. 4
      pages/stream/index.html
  8. 462
      static/default_theme.css
  9. 20
      static/input_style.css
  10. 326
      static/output.css
  11. 170
      static/style.css
  12. 28
      views/admin/table/contents.html

@ -1,10 +1,9 @@
<div class="text-gray-950"> <div class="text-gray-950">
<bar class="justify-between">
<block class="horizontal justify-between">
<img src="/icons/cup-soda.svg" alt="Home" /> <img src="/icons/cup-soda.svg" alt="Home" />
<img src="/icons/bell.svg" alt="Home" /> <img src="/icons/bell.svg" alt="Home" />
<img src="/icons/menu.svg" alt="Home" /> <img src="/icons/menu.svg" alt="Home" />
</block> </bar>
<block class="gap-10"> <block class="gap-10">
<div class="flex text-2xl gap-4"> <div class="flex text-2xl gap-4">
@ -12,16 +11,15 @@
<a href="#">learn-code-the-hard-way</a> / <a href="#">ssgod</a> <a href="#">learn-code-the-hard-way</a> / <a href="#">ssgod</a>
</div> </div>
<div class="flex gap-4"> <bar>
<button>Unwatch</button> <button>Unwatch</button>
<button>Start</button> <button>Start</button>
<button>Fork</button> <button>Fork</button>
</div> </bar>
</block> </block>
<block> <block>
<div class="flex gap-4 border-b-1 border-gray-500 pb-3 *:text-nowrap"> <bar class="border-b-1 border-gray-500 pb-3 *:text-nowrap">
<button>Code</button> <button>Code</button>
<button>Issues</button> <button>Issues</button>
<button>Pull Requests</button> <button>Pull Requests</button>
@ -29,8 +27,8 @@
<button>Projects</button> <button>Projects</button>
<button>Releases</button> <button>Releases</button>
<button>Wiki</button> <button>Wiki</button>
</div> </bar>
<div class="flex flex-col gap-4"> <block>
<p class="text-2xl">SSG is a Static Site Generator that is only a Static Site Generator. No resumes here! Just a piece of code that generates static files from templates for websites, and can do it live while you develop said templates.</p> <p class="text-2xl">SSG is a Static Site Generator that is only a Static Site Generator. No resumes here! Just a piece of code that generates static files from templates for websites, and can do it live while you develop said templates.</p>
<h3 class="text-xl!">Manage Topics</h3> <h3 class="text-xl!">Manage Topics</h3>
@ -40,98 +38,54 @@
<span><img class="inline" src="/icons/tag.svg" /> 0 Tags</span> <span><img class="inline" src="/icons/tag.svg" /> 0 Tags</span>
<span><img class="inline" src="/icons/database.svg" /> 589 KiB</span> <span><img class="inline" src="/icons/database.svg" /> 589 KiB</span>
</toolbar> </toolbar>
</div> </block>
<hr class="pb-6"/> <hr class="pb-6"/>
<div class="flex flex-col rounded-md border-1 border-gray-300"> <block class="rounded-md border-1 border-gray-300 p-0!">
<div class="flex p-2 w-full justify-between border-b-1 border-gray-300"> <bar class="p-2! w-full justify-between border-b-1 border-gray-300">
<span><img class="inline" src="/icons/baby.svg"> Name</span>
<span>Time</span>
</div>
<div class="flex p-2 w-full justify-between border-b-1 border-gray-300">
<span><img class="inline" src="/icons/baby.svg"> Name</span>
<span>Time</span>
</div>
<div class="flex p-2 w-full justify-between border-b-1 border-gray-300">
<span><img class="inline" src="/icons/baby.svg"> Name</span>
<span>Time</span>
</div>
<div class="flex p-2 w-full justify-between border-b-1 border-gray-300">
<span><img class="inline" src="/icons/baby.svg"> Name</span>
<span>Time</span>
</div>
<div class="flex p-2 w-full justify-between border-b-1 border-gray-300">
<span><img class="inline" src="/icons/baby.svg"> Name</span>
<span>Time</span>
</div>
<div class="flex p-2 w-full justify-between border-b-1 border-gray-300">
<span><img class="inline" src="/icons/baby.svg"> Name</span>
<span>Time</span>
</div>
<div class="flex p-2 w-full justify-between border-b-1 border-gray-300">
<span><img class="inline" src="/icons/baby.svg"> Name</span>
<span>Time</span>
</div>
<div class="flex p-2 w-full justify-between border-b-1 border-gray-300">
<span><img class="inline" src="/icons/baby.svg"> Name</span>
<span>Time</span>
</div>
<div class="flex p-2 w-full justify-between border-b-1 border-gray-300">
<span><img class="inline" src="/icons/baby.svg"> Name</span>
<span>Time</span>
</div>
<div class="flex p-2 w-full justify-between border-b-1 border-gray-300">
<span><img class="inline" src="/icons/baby.svg"> Name</span>
<span>Time</span>
</div>
<div class="flex p-2 w-full justify-between border-b-1 border-gray-300">
<span><img class="inline" src="/icons/baby.svg"> Name</span>
<span>Time</span>
</div>
<div class="flex p-2 w-full justify-between border-b-1 border-gray-300">
<span><img class="inline" src="/icons/baby.svg"> Name</span> <span><img class="inline" src="/icons/baby.svg"> Name</span>
<span>Time</span> <span>Time</span>
</div> </bar>
<div class="flex p-2 w-full justify-between border-b-1 border-gray-300"> <bar class="p-2! w-full justify-between border-b-1 border-gray-300">
<span><img class="inline" src="/icons/baby.svg"> Name</span> <span><img class="inline" src="/icons/baby.svg"> Name</span>
<span>Time</span> <span>Time</span>
</div> </bar>
<div class="flex p-2 w-full justify-between border-b-1 border-gray-300"> <bar class="p-2! w-full justify-between border-b-1 border-gray-300">
<span><img class="inline" src="/icons/baby.svg"> Name</span> <span><img class="inline" src="/icons/baby.svg"> Name</span>
<span>Time</span> <span>Time</span>
</div> </bar>
<div class="flex p-2 w-full justify-between border-b-1 border-gray-300"> <bar class="p-2! w-full justify-between border-b-1 border-gray-300">
<span><img class="inline" src="/icons/baby.svg"> Name</span> <span><img class="inline" src="/icons/baby.svg"> Name</span>
<span>Time</span> <span>Time</span>
</div> </bar>
<div class="flex p-2 w-full justify-between border-b-1 border-gray-300"> <bar class="p-2! w-full justify-between border-b-1 border-gray-300">
<span><img class="inline" src="/icons/baby.svg"> Name</span> <span><img class="inline" src="/icons/baby.svg"> Name</span>
<span>Time</span> <span>Time</span>
</div> </bar>
<div class="flex p-2 w-full justify-between border-b-1 border-gray-300"> <bar class="p-2! w-full justify-between border-b-1 border-gray-300">
<span><img class="inline" src="/icons/baby.svg"> Name</span> <span><img class="inline" src="/icons/baby.svg"> Name</span>
<span>Time</span> <span>Time</span>
</div> </bar>
<div class="flex p-2 w-full justify-between border-b-1 border-gray-300"> <bar class="p-2! w-full justify-between border-b-1 border-gray-300">
<span><img class="inline" src="/icons/baby.svg"> Name</span> <span><img class="inline" src="/icons/baby.svg"> Name</span>
<span>Time</span> <span>Time</span>
</div> </bar>
<div class="flex p-2 w-full justify-between border-b-1 border-gray-300"> <bar class="p-2! w-full justify-between border-b-1 border-gray-300">
<span><img class="inline" src="/icons/baby.svg"> Name</span> <span><img class="inline" src="/icons/baby.svg"> Name</span>
<span>Time</span> <span>Time</span>
</div> </bar>
<div class="flex p-2 w-full justify-between border-b-1 border-gray-300"> <bar class="p-2! w-full justify-between border-b-1 border-gray-300">
<span><img class="inline" src="/icons/baby.svg"> Name</span> <span><img class="inline" src="/icons/baby.svg"> Name</span>
<span>Time</span> <span>Time</span>
</div> </bar>
<div class="flex p-2 w-full justify-between border-b-1 border-gray-300"> <bar class="p-2! w-full justify-between border-b-1 border-gray-300">
<span><img class="inline" src="/icons/baby.svg"> Name</span> <span><img class="inline" src="/icons/baby.svg"> Name</span>
<span>Time</span> <span>Time</span>
</div> </bar>
<div class="flex p-2 w-full justify-between border-b-1 border-gray-300"> <bar class="p-2! w-full justify-between border-b-1 border-gray-300">
<span><img class="inline" src="/icons/baby.svg"> Name</span> <span><img class="inline" src="/icons/baby.svg"> Name</span>
<span>Time</span> <span>Time</span>
</div> </bar>
</block> </block>
</div> </div>

@ -0,0 +1,97 @@
<div class="text-gray-950">
<bar class="justify-evenly border-b-1 border-gray-300">
<img src="/icons/linkedin.svg" />
<img src="/icons/search.svg" />
<img src="/icons/person-standing.svg" />
<img src="/icons/briefcase.svg" />
<img src="/icons/message-square.svg" />
<img src="/icons/bell.svg" />
</bar>
<stack>
<shape class="max-h-10">Header Image</shape>
<shape class="tiny bg-green-400! top-3 left-3 rounded-full">Avatar</shape>
</stack>
<block>
<h5 class="pb-0!">Zed Shaw</h5>
<span>I write books and stuff.</span>
<span class="font-light">Miami Beach, Florida</span>
<span class="font-bold">Shavian Publishing, LLC</span>
</block>
<shape class="w-full h-15">Show More <img class="inline" src="/icons/chevron-down.svg" /></shape>
<bar>
<shape class="tiny bg-green-400! top-3 left-3 rounded-full">Avatar</shape>
<input type="text" class="w-full rounded-xl" />
</bar>
<bar class="justify-evenly">
<span><img class="inline" src="/icons/video.svg" /> Video</span>
<span><img class="inline" src="/icons/camera.svg" /> Photo</span>
<span><img class="inline" src="/icons/file-spreadsheet.svg" /> Write article</span>
</bar>
<bar class="bg-gray-300 justify-end">
<span>Sort by: <b>Top</b></span>
</bar>
<post class="flex flex-col border-b-1 border-gray-300">
<bar class="gap-0! items-center">
<shape class="tiny max-h-15! bg-green-400! top-3 left-3 rounded-full">Avatar</shape>
<block class="gap-0!">
<span>Some Dude</span>
<span class="font-light">Title</span>
<span class="font-light">14h Edited</span>
</block>
</bar>
<block>
<p>Zombie ipsum reversus ab viral inferno, nam rick grimes malum cerebro. De carne lumbering animata corpora quaeritis. Summus brains sit, morbo vel maleficia?</p>
</block>
<shape class="video">Some Image</shape>
<bar class="justify-evenly">
<span><img src="/icons/thumbs-up.svg" /></span>
<span><img src="/icons/message-square.svg" /></span>
<span><img src="/icons/repeat.svg" /></span>
<span><img src="/icons/send.svg" /></span>
</bar>
</post>
<post class="flex flex-col border-b-1 border-gray-300">
<bar class="gap-0! items-center">
<shape class="tiny max-h-15! bg-green-400! top-3 left-3 rounded-full">Avatar</shape>
<block class="gap-0!">
<span>Some Dude</span>
<span class="font-light">Title</span>
<span class="font-light">14h Edited</span>
</block>
</bar>
<block>
<p>Zombie ipsum reversus ab viral inferno, nam rick grimes malum cerebro. De carne lumbering animata corpora quaeritis. Summus brains sit, morbo vel maleficia?</p>
</block>
<shape class="video">Some Image</shape>
<bar class="justify-evenly">
<span><img src="/icons/thumbs-up.svg" /></span>
<span><img src="/icons/message-square.svg" /></span>
<span><img src="/icons/repeat.svg" /></span>
<span><img src="/icons/send.svg" /></span>
</bar>
</post>
<grid class="grid-cols-2">
<block>
<span>Job search smarter</span>
<span class="font-light">Zed reactivate this bullshit.</span>
<span>John and millions more use</span>
<button class="bg-blue-400 rounded-full">Claim Offer</button>
</block>
<shape class="tiny bg-green-400! top-3 left-3 rounded-full">Avatar</shape>
</grid>
</div>

@ -1,25 +1,25 @@
<div class="text-gray-950"> <div class="text-gray-950">
<block class="horizontal justify-between"> <bar class="justify-between">
<logo><img class="inline" src="/icons/box.svg"/> STRIDE</logo> <logo><img class="inline" src="/icons/box.svg"/> STRIDE</logo>
<menu> <menu>
<img src="/icons/menu.svg"/> <img src="/icons/menu.svg"/>
</menu> </menu>
</block> </bar>
<stack> <stack>
<shape class="xxl"></shape> <shape class="xxl"></shape>
<block class="justify-end gap-4"> <block class="justify-end">
<h2>Stride Game Engine</h2> <h2>Stride Game Engine</h2>
<p>Stride is a free and open-source cross-platform C# game engine.</p> <p>Stride is a free and open-source cross-platform C# game engine.</p>
<p>It is fit for both 2D and 3D games, as well as any other interactive content running on desktop and VR.</p> <p>It is fit for both 2D and 3D games, as well as any other interactive content running on desktop and VR.</p>
<div class="flex gap-4"> <bar>
<button class="btn-alert"><img class="inline" src="/icons/download.svg"/> Download 4.2</button> <button class="btn-alert"><img class="inline" src="/icons/download.svg"/> Download 4.2</button>
<button class="btn-primary"><img class="inline" src="/icons/alert-circle.svg" />Donate</button> <button class="btn-primary"><img class="inline" src="/icons/alert-circle.svg" />Donate</button>
</div> </bar>
</block> </block>
</stack> </stack>
@ -99,7 +99,7 @@
<hr class="pb-6"/> <hr class="pb-6"/>
<block class="gap-4 bg-gray-300 shadow-lg"> <block class="bg-gray-300 shadow-lg">
<h4>Featured Sponsors</h4> <h4>Featured Sponsors</h4>
<p>Thanks to our featured sponsors for supporting Stride and empowering creators with the resources they need to bring their visions to life.</p> <p>Thanks to our featured sponsors for supporting Stride and empowering creators with the resources they need to bring their visions to life.</p>
@ -118,16 +118,16 @@
<div class="w-full aspect-video bg-gray-50">&nbsp;</div> <div class="w-full aspect-video bg-gray-50">&nbsp;</div>
<block> <block>
<p class="text-center"> <p class="text-center">
A visual live-programming environment that takes you from rapid prototyping to final production. A visual live-programming environment that takes you from rapid prototyping to final production.
</p> </p>
</block> </block>
</panel> </panel>
</grid> </grid>
</block> </block>
</block> </block>
<block class="bg-gray-600 text-gray-50 gap-4"> <block class="bg-gray-600 text-gray-50">
<grid class="grid-cols-2"> <grid class="grid-cols-2">
<shape class="xxs">Content1</shape> <shape class="xxs">Content1</shape>
<shape class="xxs">Content2</shape> <shape class="xxs">Content2</shape>

@ -2,7 +2,7 @@
let Games = new PaginateTable("/api/game"); let Games = new PaginateTable("/api/game");
</script> </script>
<block class="bg-gray-800"> <block class="bg-gray-300 dark:bg-gray-800">
<h1 id="page-title">Zed's Trash Ass Games</h1> <h1 id="page-title">Zed's Trash Ass Games</h1>
<p>More fun than a barrel full of monkeys with syphilus. <p>More fun than a barrel full of monkeys with syphilus.
@ -20,7 +20,7 @@
</grid> </grid>
<block class="bg-gray-800"> <block class="bg-gray-300 dark:bg-gray-800">
<h2>Read The Code</h2> <h2>Read The Code</h2>
<p>Polaroid retro pork belly yes plz bitters, viral chicharrones typewriter chartreuse vice Brooklyn. Adaptogen pour-over vibecession viral. Tote bag tonx DIY microdosing. Pickled selvage bespoke small batch, blue bottle twee tacos jean shorts before they sold out chicharrones solarpunk. Hoodie taiyaki poutine jianbing chambray.</p> <p>Polaroid retro pork belly yes plz bitters, viral chicharrones typewriter chartreuse vice Brooklyn. Adaptogen pour-over vibecession viral. Tote bag tonx DIY microdosing. Pickled selvage bespoke small batch, blue bottle twee tacos jean shorts before they sold out chicharrones solarpunk. Hoodie taiyaki poutine jianbing chambray.</p>
<button><a href="https://git.learnjsthehardway.com/learn-code-the-hard-way/turings-tarpit">View the Git</a></button> <button><a href="https://git.learnjsthehardway.com/learn-code-the-hard-way/turings-tarpit">View the Git</a></button>

@ -6,7 +6,7 @@
</shape> </shape>
</div> </div>
<block class="bg-gray-800" data-testid="clickblock"> <block class="bg-gray-300 dark:bg-gray-800" data-testid="clickblock">
<p>Zombie ipsum reversus ab viral inferno, nam rick grimes malum cerebro. De carne lumbering animata corpora quaeritis. Summus brains sit, morbo vel maleficia? De apocalypsi gorger omero undead survivor dictum mauris. Hi mindless mortuis soulless creaturas, imo evil stalking monstra adventus resi dentevil vultus comedat cerebella viventium. Qui animated corpse, cricket bat max brucks terribilem incessu zomby. <p>Zombie ipsum reversus ab viral inferno, nam rick grimes malum cerebro. De carne lumbering animata corpora quaeritis. Summus brains sit, morbo vel maleficia? De apocalypsi gorger omero undead survivor dictum mauris. Hi mindless mortuis soulless creaturas, imo evil stalking monstra adventus resi dentevil vultus comedat cerebella viventium. Qui animated corpse, cricket bat max brucks terribilem incessu zomby.
</p> </p>
</block> </block>
@ -24,7 +24,7 @@
</grid> </grid>
</block> </block>
<block class="bg-gray-800"> <block class="bg-gray-300 dark:bg-gray-800">
<p>Zombie ipsum reversus ab viral inferno, nam rick grimes malum cerebro. De carne lumbering animata corpora quaeritis. Summus brains sit, morbo vel maleficia? De apocalypsi gorger omero undead survivor dictum mauris. Hi mindless mortuis soulless creaturas, imo evil stalking monstra adventus resi dentevil vultus comedat cerebella viventium. Qui animated corpse, cricket bat max brucks terribilem incessu zomby. <p>Zombie ipsum reversus ab viral inferno, nam rick grimes malum cerebro. De carne lumbering animata corpora quaeritis. Summus brains sit, morbo vel maleficia? De apocalypsi gorger omero undead survivor dictum mauris. Hi mindless mortuis soulless creaturas, imo evil stalking monstra adventus resi dentevil vultus comedat cerebella viventium. Qui animated corpse, cricket bat max brucks terribilem incessu zomby.
</p> </p>
</block> </block>
@ -41,7 +41,7 @@
</grid> </grid>
</block> </block>
<block class="bg-gray-800"> <block class="bg-gray-300 dark:bg-gray-800">
<p>Zombie ipsum reversus ab viral inferno, nam rick grimes malum cerebro. De carne lumbering animata corpora quaeritis. Summus brains sit, morbo vel maleficia? De apocalypsi gorger omero undead survivor dictum mauris. Hi mindless mortuis soulless creaturas, imo evil stalking monstra adventus resi dentevil vultus comedat cerebella viventium. Qui animated corpse, cricket bat max brucks terribilem incessu zomby. <p>Zombie ipsum reversus ab viral inferno, nam rick grimes malum cerebro. De carne lumbering animata corpora quaeritis. Summus brains sit, morbo vel maleficia? De apocalypsi gorger omero undead survivor dictum mauris. Hi mindless mortuis soulless creaturas, imo evil stalking monstra adventus resi dentevil vultus comedat cerebella viventium. Qui animated corpse, cricket bat max brucks terribilem incessu zomby.
</p> </p>
</block> </block>
@ -58,7 +58,7 @@
</grid> </grid>
</block> </block>
<block class="bg-gray-800"> <block class="bg-gray-300 dark:bg-gray-800">
<p>Zombie ipsum reversus ab viral inferno, nam rick grimes malum cerebro. De carne lumbering animata corpora quaeritis. Summus brains sit, morbo vel maleficia? De apocalypsi gorger omero undead survivor dictum mauris. Hi mindless mortuis soulless creaturas, imo evil stalking monstra adventus resi dentevil vultus comedat cerebella viventium. Qui animated corpse, cricket bat max brucks terribilem incessu zomby. <p>Zombie ipsum reversus ab viral inferno, nam rick grimes malum cerebro. De carne lumbering animata corpora quaeritis. Summus brains sit, morbo vel maleficia? De apocalypsi gorger omero undead survivor dictum mauris. Hi mindless mortuis soulless creaturas, imo evil stalking monstra adventus resi dentevil vultus comedat cerebella viventium. Qui animated corpse, cricket bat max brucks terribilem incessu zomby.
</p> </p>
</block> </block>

@ -22,7 +22,7 @@
<a id="login" href="/login/">Login</a> <a id="login" href="/login/">Login</a>
</header> </header>
<div class="p-0 min-h-screen dark:bg-gray-900"> <div class="p-0 min-h-screen bg-gray-100 text-gray-950 dark:bg-gray-900 dark:text-gray-50">
{{embed}} {{embed}}
</div> </div>

@ -9,8 +9,8 @@
<block x-data="Streams" class="gap-4"> <block x-data="Streams" class="gap-4">
<template x-for="item in contents"> <template x-for="item in contents">
<stream class="flex p-3 gap-4 bg-gray-800"> <stream class="flex p-3 gap-4 bg-gray-300 dark:bg-gray-800">
<shape class="xxs">Stream Thumbnail</shape> <shape class="xxs bg-gray-400! dark:bg-gray-300">Stream Thumbnail</shape>
<info> <info>
<date x-text="item.date"></date> <date x-text="item.date"></date>
<p x-text="item.description"></p> <p x-text="item.description"></p>

@ -0,0 +1,462 @@
@theme default {
--font-sans:
ui-sans-serif, system-ui, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol',
'Noto Color Emoji';
--font-serif: ui-serif, Georgia, Cambria, 'Times New Roman', Times, serif;
--font-mono:
ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New',
monospace;
--color-red-50: oklch(97.1% 0.013 17.38);
--color-red-100: oklch(93.6% 0.032 17.717);
--color-red-200: oklch(88.5% 0.062 18.334);
--color-red-300: oklch(80.8% 0.114 19.571);
--color-red-400: oklch(70.4% 0.191 22.216);
--color-red-500: oklch(63.7% 0.237 25.331);
--color-red-600: oklch(57.7% 0.245 27.325);
--color-red-700: oklch(50.5% 0.213 27.518);
--color-red-800: oklch(44.4% 0.177 26.899);
--color-red-900: oklch(39.6% 0.141 25.723);
--color-red-950: oklch(25.8% 0.092 26.042);
--color-orange-50: oklch(98% 0.016 73.684);
--color-orange-100: oklch(95.4% 0.038 75.164);
--color-orange-200: oklch(90.1% 0.076 70.697);
--color-orange-300: oklch(83.7% 0.128 66.29);
--color-orange-400: oklch(75% 0.183 55.934);
--color-orange-500: oklch(70.5% 0.213 47.604);
--color-orange-600: oklch(64.6% 0.222 41.116);
--color-orange-700: oklch(55.3% 0.195 38.402);
--color-orange-800: oklch(47% 0.157 37.304);
--color-orange-900: oklch(40.8% 0.123 38.172);
--color-orange-950: oklch(26.6% 0.079 36.259);
--color-amber-50: oklch(98.7% 0.022 95.277);
--color-amber-100: oklch(96.2% 0.059 95.617);
--color-amber-200: oklch(92.4% 0.12 95.746);
--color-amber-300: oklch(87.9% 0.169 91.605);
--color-amber-400: oklch(82.8% 0.189 84.429);
--color-amber-500: oklch(76.9% 0.188 70.08);
--color-amber-600: oklch(66.6% 0.179 58.318);
--color-amber-700: oklch(55.5% 0.163 48.998);
--color-amber-800: oklch(47.3% 0.137 46.201);
--color-amber-900: oklch(41.4% 0.112 45.904);
--color-amber-950: oklch(27.9% 0.077 45.635);
--color-yellow-50: oklch(98.7% 0.026 102.212);
--color-yellow-100: oklch(97.3% 0.071 103.193);
--color-yellow-200: oklch(94.5% 0.129 101.54);
--color-yellow-300: oklch(90.5% 0.182 98.111);
--color-yellow-400: oklch(85.2% 0.199 91.936);
--color-yellow-500: oklch(79.5% 0.184 86.047);
--color-yellow-600: oklch(68.1% 0.162 75.834);
--color-yellow-700: oklch(55.4% 0.135 66.442);
--color-yellow-800: oklch(47.6% 0.114 61.907);
--color-yellow-900: oklch(42.1% 0.095 57.708);
--color-yellow-950: oklch(28.6% 0.066 53.813);
--color-lime-50: oklch(98.6% 0.031 120.757);
--color-lime-100: oklch(96.7% 0.067 122.328);
--color-lime-200: oklch(93.8% 0.127 124.321);
--color-lime-300: oklch(89.7% 0.196 126.665);
--color-lime-400: oklch(84.1% 0.238 128.85);
--color-lime-500: oklch(76.8% 0.233 130.85);
--color-lime-600: oklch(64.8% 0.2 131.684);
--color-lime-700: oklch(53.2% 0.157 131.589);
--color-lime-800: oklch(45.3% 0.124 130.933);
--color-lime-900: oklch(40.5% 0.101 131.063);
--color-lime-950: oklch(27.4% 0.072 132.109);
--color-green-50: oklch(98.2% 0.018 155.826);
--color-green-100: oklch(96.2% 0.044 156.743);
--color-green-200: oklch(92.5% 0.084 155.995);
--color-green-300: oklch(87.1% 0.15 154.449);
--color-green-400: oklch(79.2% 0.209 151.711);
--color-green-500: oklch(72.3% 0.219 149.579);
--color-green-600: oklch(62.7% 0.194 149.214);
--color-green-700: oklch(52.7% 0.154 150.069);
--color-green-800: oklch(44.8% 0.119 151.328);
--color-green-900: oklch(39.3% 0.095 152.535);
--color-green-950: oklch(26.6% 0.065 152.934);
--color-emerald-50: oklch(97.9% 0.021 166.113);
--color-emerald-100: oklch(95% 0.052 163.051);
--color-emerald-200: oklch(90.5% 0.093 164.15);
--color-emerald-300: oklch(84.5% 0.143 164.978);
--color-emerald-400: oklch(76.5% 0.177 163.223);
--color-emerald-500: oklch(69.6% 0.17 162.48);
--color-emerald-600: oklch(59.6% 0.145 163.225);
--color-emerald-700: oklch(50.8% 0.118 165.612);
--color-emerald-800: oklch(43.2% 0.095 166.913);
--color-emerald-900: oklch(37.8% 0.077 168.94);
--color-emerald-950: oklch(26.2% 0.051 172.552);
--color-teal-50: oklch(98.4% 0.014 180.72);
--color-teal-100: oklch(95.3% 0.051 180.801);
--color-teal-200: oklch(91% 0.096 180.426);
--color-teal-300: oklch(85.5% 0.138 181.071);
--color-teal-400: oklch(77.7% 0.152 181.912);
--color-teal-500: oklch(70.4% 0.14 182.503);
--color-teal-600: oklch(60% 0.118 184.704);
--color-teal-700: oklch(51.1% 0.096 186.391);
--color-teal-800: oklch(43.7% 0.078 188.216);
--color-teal-900: oklch(38.6% 0.063 188.416);
--color-teal-950: oklch(27.7% 0.046 192.524);
--color-cyan-50: oklch(98.4% 0.019 200.873);
--color-cyan-100: oklch(95.6% 0.045 203.388);
--color-cyan-200: oklch(91.7% 0.08 205.041);
--color-cyan-300: oklch(86.5% 0.127 207.078);
--color-cyan-400: oklch(78.9% 0.154 211.53);
--color-cyan-500: oklch(71.5% 0.143 215.221);
--color-cyan-600: oklch(60.9% 0.126 221.723);
--color-cyan-700: oklch(52% 0.105 223.128);
--color-cyan-800: oklch(45% 0.085 224.283);
--color-cyan-900: oklch(39.8% 0.07 227.392);
--color-cyan-950: oklch(30.2% 0.056 229.695);
--color-sky-50: oklch(97.7% 0.013 236.62);
--color-sky-100: oklch(95.1% 0.026 236.824);
--color-sky-200: oklch(90.1% 0.058 230.902);
--color-sky-300: oklch(82.8% 0.111 230.318);
--color-sky-400: oklch(74.6% 0.16 232.661);
--color-sky-500: oklch(68.5% 0.169 237.323);
--color-sky-600: oklch(58.8% 0.158 241.966);
--color-sky-700: oklch(50% 0.134 242.749);
--color-sky-800: oklch(44.3% 0.11 240.79);
--color-sky-900: oklch(39.1% 0.09 240.876);
--color-sky-950: oklch(29.3% 0.066 243.157);
--color-blue-50: oklch(97% 0.014 254.604);
--color-blue-100: oklch(93.2% 0.032 255.585);
--color-blue-200: oklch(88.2% 0.059 254.128);
--color-blue-300: oklch(80.9% 0.105 251.813);
--color-blue-400: oklch(70.7% 0.165 254.624);
--color-blue-500: oklch(62.3% 0.214 259.815);
--color-blue-600: oklch(54.6% 0.245 262.881);
--color-blue-700: oklch(48.8% 0.243 264.376);
--color-blue-800: oklch(42.4% 0.199 265.638);
--color-blue-900: oklch(37.9% 0.146 265.522);
--color-blue-950: oklch(28.2% 0.091 267.935);
--color-indigo-50: oklch(96.2% 0.018 272.314);
--color-indigo-100: oklch(93% 0.034 272.788);
--color-indigo-200: oklch(87% 0.065 274.039);
--color-indigo-300: oklch(78.5% 0.115 274.713);
--color-indigo-400: oklch(67.3% 0.182 276.935);
--color-indigo-500: oklch(58.5% 0.233 277.117);
--color-indigo-600: oklch(51.1% 0.262 276.966);
--color-indigo-700: oklch(45.7% 0.24 277.023);
--color-indigo-800: oklch(39.8% 0.195 277.366);
--color-indigo-900: oklch(35.9% 0.144 278.697);
--color-indigo-950: oklch(25.7% 0.09 281.288);
--color-violet-50: oklch(96.9% 0.016 293.756);
--color-violet-100: oklch(94.3% 0.029 294.588);
--color-violet-200: oklch(89.4% 0.057 293.283);
--color-violet-300: oklch(81.1% 0.111 293.571);
--color-violet-400: oklch(70.2% 0.183 293.541);
--color-violet-500: oklch(60.6% 0.25 292.717);
--color-violet-600: oklch(54.1% 0.281 293.009);
--color-violet-700: oklch(49.1% 0.27 292.581);
--color-violet-800: oklch(43.2% 0.232 292.759);
--color-violet-900: oklch(38% 0.189 293.745);
--color-violet-950: oklch(28.3% 0.141 291.089);
--color-purple-50: oklch(97.7% 0.014 308.299);
--color-purple-100: oklch(94.6% 0.033 307.174);
--color-purple-200: oklch(90.2% 0.063 306.703);
--color-purple-300: oklch(82.7% 0.119 306.383);
--color-purple-400: oklch(71.4% 0.203 305.504);
--color-purple-500: oklch(62.7% 0.265 303.9);
--color-purple-600: oklch(55.8% 0.288 302.321);
--color-purple-700: oklch(49.6% 0.265 301.924);
--color-purple-800: oklch(43.8% 0.218 303.724);
--color-purple-900: oklch(38.1% 0.176 304.987);
--color-purple-950: oklch(29.1% 0.149 302.717);
--color-fuchsia-50: oklch(97.7% 0.017 320.058);
--color-fuchsia-100: oklch(95.2% 0.037 318.852);
--color-fuchsia-200: oklch(90.3% 0.076 319.62);
--color-fuchsia-300: oklch(83.3% 0.145 321.434);
--color-fuchsia-400: oklch(74% 0.238 322.16);
--color-fuchsia-500: oklch(66.7% 0.295 322.15);
--color-fuchsia-600: oklch(59.1% 0.293 322.896);
--color-fuchsia-700: oklch(51.8% 0.253 323.949);
--color-fuchsia-800: oklch(45.2% 0.211 324.591);
--color-fuchsia-900: oklch(40.1% 0.17 325.612);
--color-fuchsia-950: oklch(29.3% 0.136 325.661);
--color-pink-50: oklch(97.1% 0.014 343.198);
--color-pink-100: oklch(94.8% 0.028 342.258);
--color-pink-200: oklch(89.9% 0.061 343.231);
--color-pink-300: oklch(82.3% 0.12 346.018);
--color-pink-400: oklch(71.8% 0.202 349.761);
--color-pink-500: oklch(65.6% 0.241 354.308);
--color-pink-600: oklch(59.2% 0.249 0.584);
--color-pink-700: oklch(52.5% 0.223 3.958);
--color-pink-800: oklch(45.9% 0.187 3.815);
--color-pink-900: oklch(40.8% 0.153 2.432);
--color-pink-950: oklch(28.4% 0.109 3.907);
--color-rose-50: oklch(96.9% 0.015 12.422);
--color-rose-100: oklch(94.1% 0.03 12.58);
--color-rose-200: oklch(89.2% 0.058 10.001);
--color-rose-300: oklch(81% 0.117 11.638);
--color-rose-400: oklch(71.2% 0.194 13.428);
--color-rose-500: oklch(64.5% 0.246 16.439);
--color-rose-600: oklch(58.6% 0.253 17.585);
--color-rose-700: oklch(51.4% 0.222 16.935);
--color-rose-800: oklch(45.5% 0.188 13.697);
--color-rose-900: oklch(41% 0.159 10.272);
--color-rose-950: oklch(27.1% 0.105 12.094);
--color-slate-50: oklch(98.4% 0.003 247.858);
--color-slate-100: oklch(96.8% 0.007 247.896);
--color-slate-200: oklch(92.9% 0.013 255.508);
--color-slate-300: oklch(86.9% 0.022 252.894);
--color-slate-400: oklch(70.4% 0.04 256.788);
--color-slate-500: oklch(55.4% 0.046 257.417);
--color-slate-600: oklch(44.6% 0.043 257.281);
--color-slate-700: oklch(37.2% 0.044 257.287);
--color-slate-800: oklch(27.9% 0.041 260.031);
--color-slate-900: oklch(20.8% 0.042 265.755);
--color-slate-950: oklch(12.9% 0.042 264.695);
--color-gray-50: oklch(98.5% 0.002 247.839);
--color-gray-100: oklch(96.7% 0.003 264.542);
--color-gray-200: oklch(92.8% 0.006 264.531);
--color-gray-300: oklch(87.2% 0.01 258.338);
--color-gray-400: oklch(70.7% 0.022 261.325);
--color-gray-500: oklch(55.1% 0.027 264.364);
--color-gray-600: oklch(44.6% 0.03 256.802);
--color-gray-700: oklch(37.3% 0.034 259.733);
--color-gray-800: oklch(27.8% 0.033 256.848);
--color-gray-900: oklch(21% 0.034 264.665);
--color-gray-950: oklch(13% 0.028 261.692);
--color-zinc-50: oklch(98.5% 0 0);
--color-zinc-100: oklch(96.7% 0.001 286.375);
--color-zinc-200: oklch(92% 0.004 286.32);
--color-zinc-300: oklch(87.1% 0.006 286.286);
--color-zinc-400: oklch(70.5% 0.015 286.067);
--color-zinc-500: oklch(55.2% 0.016 285.938);
--color-zinc-600: oklch(44.2% 0.017 285.786);
--color-zinc-700: oklch(37% 0.013 285.805);
--color-zinc-800: oklch(27.4% 0.006 286.033);
--color-zinc-900: oklch(21% 0.006 285.885);
--color-zinc-950: oklch(14.1% 0.005 285.823);
--color-neutral-50: oklch(98.5% 0 0);
--color-neutral-100: oklch(97% 0 0);
--color-neutral-200: oklch(92.2% 0 0);
--color-neutral-300: oklch(87% 0 0);
--color-neutral-400: oklch(70.8% 0 0);
--color-neutral-500: oklch(55.6% 0 0);
--color-neutral-600: oklch(43.9% 0 0);
--color-neutral-700: oklch(37.1% 0 0);
--color-neutral-800: oklch(26.9% 0 0);
--color-neutral-900: oklch(20.5% 0 0);
--color-neutral-950: oklch(14.5% 0 0);
--color-stone-50: oklch(98.5% 0.001 106.423);
--color-stone-100: oklch(97% 0.001 106.424);
--color-stone-200: oklch(92.3% 0.003 48.717);
--color-stone-300: oklch(86.9% 0.005 56.366);
--color-stone-400: oklch(70.9% 0.01 56.259);
--color-stone-500: oklch(55.3% 0.013 58.071);
--color-stone-600: oklch(44.4% 0.011 73.639);
--color-stone-700: oklch(37.4% 0.01 67.558);
--color-stone-800: oklch(26.8% 0.007 34.298);
--color-stone-900: oklch(21.6% 0.006 56.043);
--color-stone-950: oklch(14.7% 0.004 49.25);
--color-black: #000;
--color-white: #fff;
--spacing: 0.25rem;
--breakpoint-sm: 40rem;
--breakpoint-md: 48rem;
--breakpoint-lg: 64rem;
--breakpoint-xl: 80rem;
--breakpoint-2xl: 96rem;
--container-3xs: 16rem;
--container-2xs: 18rem;
--container-xs: 20rem;
--container-sm: 24rem;
--container-md: 28rem;
--container-lg: 32rem;
--container-xl: 36rem;
--container-2xl: 42rem;
--container-3xl: 48rem;
--container-4xl: 56rem;
--container-5xl: 64rem;
--container-6xl: 72rem;
--container-7xl: 80rem;
--text-xs: 0.75rem;
--text-xs--line-height: calc(1 / 0.75);
--text-sm: 0.875rem;
--text-sm--line-height: calc(1.25 / 0.875);
--text-base: 1rem;
--text-base--line-height: calc(1.5 / 1);
--text-lg: 1.125rem;
--text-lg--line-height: calc(1.75 / 1.125);
--text-xl: 1.25rem;
--text-xl--line-height: calc(1.75 / 1.25);
--text-2xl: 1.5rem;
--text-2xl--line-height: calc(2 / 1.5);
--text-3xl: 1.875rem;
--text-3xl--line-height: calc(2.25 / 1.875);
--text-4xl: 2.25rem;
--text-4xl--line-height: calc(2.5 / 2.25);
--text-5xl: 3rem;
--text-5xl--line-height: 1;
--text-6xl: 3.75rem;
--text-6xl--line-height: 1;
--text-7xl: 4.5rem;
--text-7xl--line-height: 1;
--text-8xl: 6rem;
--text-8xl--line-height: 1;
--text-9xl: 8rem;
--text-9xl--line-height: 1;
--font-weight-thin: 100;
--font-weight-extralight: 200;
--font-weight-light: 300;
--font-weight-normal: 400;
--font-weight-medium: 500;
--font-weight-semibold: 600;
--font-weight-bold: 700;
--font-weight-extrabold: 800;
--font-weight-black: 900;
--tracking-tighter: -0.05em;
--tracking-tight: -0.025em;
--tracking-normal: 0em;
--tracking-wide: 0.025em;
--tracking-wider: 0.05em;
--tracking-widest: 0.1em;
--leading-tight: 1.25;
--leading-snug: 1.375;
--leading-normal: 1.5;
--leading-relaxed: 1.625;
--leading-loose: 2;
--radius-xs: 0.125rem;
--radius-sm: 0.25rem;
--radius-md: 0.375rem;
--radius-lg: 0.5rem;
--radius-xl: 0.75rem;
--radius-2xl: 1rem;
--radius-3xl: 1.5rem;
--radius-4xl: 2rem;
--shadow-2xs: 0 1px rgb(0 0 0 / 0.05);
--shadow-xs: 0 1px 2px 0 rgb(0 0 0 / 0.05);
--shadow-sm: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
--shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
--shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
--shadow-2xl: 0 25px 50px -12px rgb(0 0 0 / 0.25);
--inset-shadow-2xs: inset 0 1px rgb(0 0 0 / 0.05);
--inset-shadow-xs: inset 0 1px 1px rgb(0 0 0 / 0.05);
--inset-shadow-sm: inset 0 2px 4px rgb(0 0 0 / 0.05);
--drop-shadow-xs: 0 1px 1px rgb(0 0 0 / 0.05);
--drop-shadow-sm: 0 1px 2px rgb(0 0 0 / 0.15);
--drop-shadow-md: 0 3px 3px rgb(0 0 0 / 0.12);
--drop-shadow-lg: 0 4px 4px rgb(0 0 0 / 0.15);
--drop-shadow-xl: 0 9px 7px rgb(0 0 0 / 0.1);
--drop-shadow-2xl: 0 25px 25px rgb(0 0 0 / 0.15);
--text-shadow-2xs: 0px 1px 0px rgb(0 0 0 / 0.15);
--text-shadow-xs: 0px 1px 1px rgb(0 0 0 / 0.2);
--text-shadow-sm:
0px 1px 0px rgb(0 0 0 / 0.075), 0px 1px 1px rgb(0 0 0 / 0.075), 0px 2px 2px rgb(0 0 0 / 0.075);
--text-shadow-md:
0px 1px 1px rgb(0 0 0 / 0.1), 0px 1px 2px rgb(0 0 0 / 0.1), 0px 2px 4px rgb(0 0 0 / 0.1);
--text-shadow-lg:
0px 1px 2px rgb(0 0 0 / 0.1), 0px 3px 2px rgb(0 0 0 / 0.1), 0px 4px 8px rgb(0 0 0 / 0.1);
--ease-in: cubic-bezier(0.4, 0, 1, 1);
--ease-out: cubic-bezier(0, 0, 0.2, 1);
--ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
--animate-spin: spin 1s linear infinite;
--animate-ping: ping 1s cubic-bezier(0, 0, 0.2, 1) infinite;
--animate-pulse: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
--animate-bounce: bounce 1s infinite;
@keyframes spin {
to {
transform: rotate(360deg);
}
}
@keyframes ping {
75%,
100% {
transform: scale(2);
opacity: 0;
}
}
@keyframes pulse {
50% {
opacity: 0.5;
}
}
@keyframes bounce {
0%,
100% {
transform: translateY(-25%);
animation-timing-function: cubic-bezier(0.8, 0, 1, 1);
}
50% {
transform: none;
animation-timing-function: cubic-bezier(0, 0, 0.2, 1);
}
}
--blur-xs: 4px;
--blur-sm: 8px;
--blur-md: 12px;
--blur-lg: 16px;
--blur-xl: 24px;
--blur-2xl: 40px;
--blur-3xl: 64px;
--perspective-dramatic: 100px;
--perspective-near: 300px;
--perspective-normal: 500px;
--perspective-midrange: 800px;
--perspective-distant: 1200px;
--aspect-video: 16 / 9;
--default-transition-duration: 150ms;
--default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
--default-font-family: --theme(--font-sans, initial);
--default-font-feature-settings: --theme(--font-sans--font-feature-settings, initial);
--default-font-variation-settings: --theme(--font-sans--font-variation-settings, initial);
--default-mono-font-family: --theme(--font-mono, initial);
--default-mono-font-feature-settings: --theme(--font-mono--font-feature-settings, initial);
--default-mono-font-variation-settings: --theme(--font-mono--font-variation-settings, initial);
}
/* Deprecated */
@theme default inline reference {
--blur: 8px;
--shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
--shadow-inner: inset 0 2px 4px 0 rgb(0 0 0 / 0.05);
--drop-shadow: 0 1px 2px rgb(0 0 0 / 0.1), 0 1px 1px rgb(0 0 0 / 0.06);
--radius: 0.25rem;
--max-width-prose: 65ch;
}

@ -50,7 +50,7 @@ card > middle {
} }
label { label {
@apply font-bold text-gray-950 dark:text-white; @apply font-bold text-gray-100;
} }
input { input {
@ -62,7 +62,7 @@ input::placeholder {
} }
button { button {
@apply rounded-sm shadow-sm bg-gray-300 text-gray-950 p-3; @apply rounded-sm shadow-sm bg-gray-600 text-gray-50 dark:bg-gray-300 dark:text-gray-950 p-3;
} }
@utility btn-hover { @utility btn-hover {
@ -119,10 +119,10 @@ shape.video {
block { block {
@apply flex flex-col pl-4 pr-4 pb-10 pt-4; @apply flex flex-col pl-4 pr-4 pb-10 pt-4 gap-4;
} }
block.horizontal { bar {
@apply flex flex-row p-4 gap-4; @apply flex flex-row p-4 gap-4;
} }
@ -153,3 +153,15 @@ grid {
hr { hr {
visibility: hidden; visibility: hidden;
} }
table {
@apply bg-gray-200 dark:bg-gray-800 shadow-lg rounded-sm;
}
@utility table-header {
@apply text-gray-50 bg-gray-950 *:border-x *:border-black;
}
@utility table-row {
@apply *:border-2 *:border-black *:p-1 hover:bg-gray-100 hover:text-gray-950;
}

@ -1,326 +0,0 @@
/*! tailwindcss v4.1.11 | MIT License | https://tailwindcss.com */
@layer properties;
@layer theme, base, components, utilities;
@layer theme {
:root, :host {
--font-sans: ui-sans-serif, system-ui, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol',
'Noto Color Emoji';
--font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New',
monospace;
--color-yellow-800: oklch(47.6% 0.114 61.907);
--color-yellow-900: oklch(42.1% 0.095 57.708);
--color-slate-800: oklch(27.9% 0.041 260.031);
--color-gray-400: oklch(70.7% 0.022 261.325);
--color-gray-500: oklch(55.1% 0.027 264.364);
--color-gray-800: oklch(27.8% 0.033 256.848);
--color-gray-900: oklch(21% 0.034 264.665);
--color-black: #000;
--color-white: #fff;
--spacing: 0.25rem;
--container-sm: 24rem;
--text-sm: 0.875rem;
--text-sm--line-height: calc(1.25 / 0.875);
--text-xl: 1.25rem;
--text-xl--line-height: calc(1.75 / 1.25);
--text-3xl: 1.875rem;
--text-3xl--line-height: calc(2.25 / 1.875);
--font-weight-medium: 500;
--font-weight-bold: 700;
--radius-xl: 0.75rem;
--default-transition-duration: 150ms;
--default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
--default-font-family: var(--font-sans);
--default-mono-font-family: var(--font-mono);
}
}
@layer base {
*, ::after, ::before, ::backdrop, ::file-selector-button {
box-sizing: border-box;
margin: 0;
padding: 0;
border: 0 solid;
}
html, :host {
line-height: 1.5;
-webkit-text-size-adjust: 100%;
tab-size: 4;
font-family: var(--default-font-family, ui-sans-serif, system-ui, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji');
font-feature-settings: var(--default-font-feature-settings, normal);
font-variation-settings: var(--default-font-variation-settings, normal);
-webkit-tap-highlight-color: transparent;
}
hr {
height: 0;
color: inherit;
border-top-width: 1px;
}
abbr:where([title]) {
-webkit-text-decoration: underline dotted;
text-decoration: underline dotted;
}
h1, h2, h3, h4, h5, h6 {
font-size: inherit;
font-weight: inherit;
}
a {
color: inherit;
-webkit-text-decoration: inherit;
text-decoration: inherit;
}
b, strong {
font-weight: bolder;
}
code, kbd, samp, pre {
font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace);
font-feature-settings: var(--default-mono-font-feature-settings, normal);
font-variation-settings: var(--default-mono-font-variation-settings, normal);
font-size: 1em;
}
small {
font-size: 80%;
}
sub, sup {
font-size: 75%;
line-height: 0;
position: relative;
vertical-align: baseline;
}
sub {
bottom: -0.25em;
}
sup {
top: -0.5em;
}
table {
text-indent: 0;
border-color: inherit;
border-collapse: collapse;
}
:-moz-focusring {
outline: auto;
}
progress {
vertical-align: baseline;
}
summary {
display: list-item;
}
ol, ul, menu {
list-style: none;
}
img, svg, video, canvas, audio, iframe, embed, object {
display: block;
vertical-align: middle;
}
img, video {
max-width: 100%;
height: auto;
}
button, input, select, optgroup, textarea, ::file-selector-button {
font: inherit;
font-feature-settings: inherit;
font-variation-settings: inherit;
letter-spacing: inherit;
color: inherit;
border-radius: 0;
background-color: transparent;
opacity: 1;
}
:where(select:is([multiple], [size])) optgroup {
font-weight: bolder;
}
:where(select:is([multiple], [size])) optgroup option {
padding-inline-start: 20px;
}
::file-selector-button {
margin-inline-end: 4px;
}
::placeholder {
opacity: 1;
}
@supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px) {
::placeholder {
color: currentcolor;
@supports (color: color-mix(in lab, red, red)) {
color: color-mix(in oklab, currentcolor 50%, transparent);
}
}
}
textarea {
resize: vertical;
}
::-webkit-search-decoration {
-webkit-appearance: none;
}
::-webkit-date-and-time-value {
min-height: 1lh;
text-align: inherit;
}
::-webkit-datetime-edit {
display: inline-flex;
}
::-webkit-datetime-edit-fields-wrapper {
padding: 0;
}
::-webkit-datetime-edit, ::-webkit-datetime-edit-year-field, ::-webkit-datetime-edit-month-field, ::-webkit-datetime-edit-day-field, ::-webkit-datetime-edit-hour-field, ::-webkit-datetime-edit-minute-field, ::-webkit-datetime-edit-second-field, ::-webkit-datetime-edit-millisecond-field, ::-webkit-datetime-edit-meridiem-field {
padding-block: 0;
}
:-moz-ui-invalid {
box-shadow: none;
}
button, input:where([type='button'], [type='reset'], [type='submit']), ::file-selector-button {
appearance: button;
}
::-webkit-inner-spin-button, ::-webkit-outer-spin-button {
height: auto;
}
[hidden]:where(:not([hidden='until-found'])) {
display: none !important;
}
}
@layer utilities {
.collapse {
visibility: collapse;
}
.visible {
visibility: visible;
}
.static {
position: static;
}
.ml-3 {
margin-left: calc(var(--spacing) * 3);
}
.block {
display: block;
}
.contents {
display: contents;
}
.flex {
display: flex;
}
.hidden {
display: none;
}
.inline {
display: inline;
}
.table {
display: table;
}
.h-10 {
height: calc(var(--spacing) * 10);
}
.w-10 {
width: calc(var(--spacing) * 10);
}
.transform {
transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,);
}
.truncate {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.overflow-hidden {
overflow: hidden;
}
.rounded-full {
border-radius: calc(infinity * 1px);
}
.py-4 {
padding-block: calc(var(--spacing) * 4);
}
.text-3xl {
font-size: var(--text-3xl);
line-height: var(--tw-leading, var(--text-3xl--line-height));
}
.text-sm {
font-size: var(--text-sm);
line-height: var(--tw-leading, var(--text-sm--line-height));
}
.font-bold {
--tw-font-weight: var(--font-weight-bold);
font-weight: var(--font-weight-bold);
}
.font-medium {
--tw-font-weight: var(--font-weight-medium);
font-weight: var(--font-weight-medium);
}
.text-gray-500 {
color: var(--color-gray-500);
}
.text-gray-900 {
color: var(--color-gray-900);
}
.underline {
text-decoration-line: underline;
}
.transition {
transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter, display, visibility, content-visibility, overlay, pointer-events;
transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
transition-duration: var(--tw-duration, var(--default-transition-duration));
}
.first\:pt-0 {
&:first-child {
padding-top: calc(var(--spacing) * 0);
}
}
.last\:pb-0 {
&:last-child {
padding-bottom: calc(var(--spacing) * 0);
}
}
.dark\:bg-yellow-900 {
@media (prefers-color-scheme: dark) {
background-color: var(--color-yellow-900);
}
}
.dark\:text-gray-400 {
@media (prefers-color-scheme: dark) {
color: var(--color-gray-400);
}
}
.dark\:text-white {
@media (prefers-color-scheme: dark) {
color: var(--color-white);
}
}
}
@property --tw-rotate-x {
syntax: "*";
inherits: false;
}
@property --tw-rotate-y {
syntax: "*";
inherits: false;
}
@property --tw-rotate-z {
syntax: "*";
inherits: false;
}
@property --tw-skew-x {
syntax: "*";
inherits: false;
}
@property --tw-skew-y {
syntax: "*";
inherits: false;
}
@property --tw-font-weight {
syntax: "*";
inherits: false;
}
@layer properties {
@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {
*, ::before, ::after, ::backdrop {
--tw-rotate-x: initial;
--tw-rotate-y: initial;
--tw-rotate-z: initial;
--tw-skew-x: initial;
--tw-skew-y: initial;
--tw-font-weight: initial;
}
}
}

@ -8,8 +8,9 @@
--font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New',
monospace; monospace;
--color-red-800: oklch(44.4% 0.177 26.899); --color-red-800: oklch(44.4% 0.177 26.899);
--color-yellow-900: oklch(42.1% 0.095 57.708); --color-green-400: oklch(79.2% 0.209 151.711);
--color-teal-300: oklch(85.5% 0.138 181.071); --color-teal-300: oklch(85.5% 0.138 181.071);
--color-blue-400: oklch(70.7% 0.165 254.624);
--color-gray-50: oklch(98.5% 0.0 247.839); --color-gray-50: oklch(98.5% 0.0 247.839);
--color-gray-100: oklch(96.7% 0.0 264.542); --color-gray-100: oklch(96.7% 0.0 264.542);
--color-gray-200: oklch(92.8% 0.0 264.531); --color-gray-200: oklch(92.8% 0.0 264.531);
@ -22,7 +23,6 @@
--color-gray-900: oklch(21% 0.0 264.665); --color-gray-900: oklch(21% 0.0 264.665);
--color-gray-950: oklch(13% 0.0 261.692); --color-gray-950: oklch(13% 0.0 261.692);
--color-black: #000; --color-black: #000;
--color-white: #fff;
--spacing: 0.25rem; --spacing: 0.25rem;
--container-xs: 20rem; --container-xs: 20rem;
--container-sm: 24rem; --container-sm: 24rem;
@ -45,7 +45,7 @@
--text-5xl--line-height: 1; --text-5xl--line-height: 1;
--text-6xl: 3.75rem; --text-6xl: 3.75rem;
--text-6xl--line-height: 1; --text-6xl--line-height: 1;
--font-weight-medium: 500; --font-weight-light: 300;
--font-weight-bold: 700; --font-weight-bold: 700;
--radius-sm: 0.25rem; --radius-sm: 0.25rem;
--radius-md: 0.375rem; --radius-md: 0.375rem;
@ -212,6 +212,12 @@
.static { .static {
position: static; position: static;
} }
.top-3 {
top: calc(var(--spacing) * 3);
}
.left-3 {
left: calc(var(--spacing) * 3);
}
.block { .block {
display: block; display: block;
} }
@ -230,6 +236,9 @@
.table { .table {
display: table; display: table;
} }
.table-row {
display: table-row;
}
.aspect-video { .aspect-video {
aspect-ratio: var(--aspect-video); aspect-ratio: var(--aspect-video);
} }
@ -240,6 +249,15 @@
.h-10 { .h-10 {
height: calc(var(--spacing) * 10); height: calc(var(--spacing) * 10);
} }
.h-15 {
height: calc(var(--spacing) * 15);
}
.max-h-10 {
max-height: calc(var(--spacing) * 10);
}
.max-h-15\! {
max-height: calc(var(--spacing) * 15) !important;
}
.min-h-screen { .min-h-screen {
min-height: 100vh; min-height: 100vh;
} }
@ -285,6 +303,9 @@
.justify-evenly { .justify-evenly {
justify-content: space-evenly; justify-content: space-evenly;
} }
.gap-0\! {
gap: calc(var(--spacing) * 0) !important;
}
.gap-4 { .gap-4 {
gap: calc(var(--spacing) * 4); gap: calc(var(--spacing) * 4);
} }
@ -297,11 +318,36 @@
.gap-10 { .gap-10 {
gap: calc(var(--spacing) * 10); gap: calc(var(--spacing) * 10);
} }
.rounded-full {
border-radius: calc(infinity * 1px);
}
.rounded-md { .rounded-md {
border-radius: var(--radius-md); border-radius: var(--radius-md);
} }
.rounded-sm { .rounded-xl {
border-radius: var(--radius-sm); border-radius: var(--radius-xl);
}
.table-row {
:is(& > *) {
border-style: var(--tw-border-style);
border-width: 2px;
}
:is(& > *) {
border-color: var(--color-black);
}
:is(& > *) {
padding: calc(var(--spacing) * 1);
}
&:hover {
@media (hover: hover) {
background-color: var(--color-gray-100);
}
}
&:hover {
@media (hover: hover) {
color: var(--color-gray-950);
}
}
} }
.border-1 { .border-1 {
border-style: var(--tw-border-style); border-style: var(--tw-border-style);
@ -311,6 +357,17 @@
border-style: var(--tw-border-style); border-style: var(--tw-border-style);
border-width: 2px; border-width: 2px;
} }
.table-header {
background-color: var(--color-gray-950);
color: var(--color-gray-50);
:is(& > *) {
border-inline-style: var(--tw-border-style);
border-inline-width: 1px;
}
:is(& > *) {
border-color: var(--color-black);
}
}
.border-b-1 { .border-b-1 {
border-bottom-style: var(--tw-border-style); border-bottom-style: var(--tw-border-style);
border-bottom-width: 1px; border-bottom-width: 1px;
@ -329,9 +386,15 @@
background-color: var(--color-teal-300) !important; background-color: var(--color-teal-300) !important;
color: var(--color-gray-950) !important; color: var(--color-gray-950) !important;
} }
.bg-blue-400 {
background-color: var(--color-blue-400);
}
.bg-gray-50 { .bg-gray-50 {
background-color: var(--color-gray-50); background-color: var(--color-gray-50);
} }
.bg-gray-100 {
background-color: var(--color-gray-100);
}
.bg-gray-200 { .bg-gray-200 {
background-color: var(--color-gray-200); background-color: var(--color-gray-200);
} }
@ -341,23 +404,29 @@
.bg-gray-400 { .bg-gray-400 {
background-color: var(--color-gray-400); background-color: var(--color-gray-400);
} }
.bg-gray-400\! {
background-color: var(--color-gray-400) !important;
}
.bg-gray-600 { .bg-gray-600 {
background-color: var(--color-gray-600); background-color: var(--color-gray-600);
} }
.bg-gray-800 { .bg-gray-800 {
background-color: var(--color-gray-800); background-color: var(--color-gray-800);
} }
.bg-gray-950 {
background-color: var(--color-gray-950);
}
.bg-gray-950\! { .bg-gray-950\! {
background-color: var(--color-gray-950) !important; background-color: var(--color-gray-950) !important;
} }
.bg-green-400\! {
background-color: var(--color-green-400) !important;
}
.p-0 { .p-0 {
padding: calc(var(--spacing) * 0); padding: calc(var(--spacing) * 0);
} }
.p-2 { .p-0\! {
padding: calc(var(--spacing) * 2); padding: calc(var(--spacing) * 0) !important;
}
.p-2\! {
padding: calc(var(--spacing) * 2) !important;
} }
.p-3 { .p-3 {
padding: calc(var(--spacing) * 3); padding: calc(var(--spacing) * 3);
@ -371,6 +440,9 @@
.pt-4 { .pt-4 {
padding-top: calc(var(--spacing) * 4); padding-top: calc(var(--spacing) * 4);
} }
.pb-0\! {
padding-bottom: calc(var(--spacing) * 0) !important;
}
.pb-3 { .pb-3 {
padding-bottom: calc(var(--spacing) * 3); padding-bottom: calc(var(--spacing) * 3);
} }
@ -406,6 +478,10 @@
--tw-font-weight: var(--font-weight-bold); --tw-font-weight: var(--font-weight-bold);
font-weight: var(--font-weight-bold); font-weight: var(--font-weight-bold);
} }
.font-light {
--tw-font-weight: var(--font-weight-light);
font-weight: var(--font-weight-light);
}
.text-gray-50 { .text-gray-50 {
color: var(--color-gray-50); color: var(--color-gray-50);
} }
@ -421,28 +497,6 @@
transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
transition-duration: var(--tw-duration, var(--default-transition-duration)); transition-duration: var(--tw-duration, var(--default-transition-duration));
} }
.\*\:border-2 {
:is(& > *) {
border-style: var(--tw-border-style);
border-width: 2px;
}
}
.\*\:border-x {
:is(& > *) {
border-inline-style: var(--tw-border-style);
border-inline-width: 1px;
}
}
.\*\:border-black {
:is(& > *) {
border-color: var(--color-black);
}
}
.\*\:p-1 {
:is(& > *) {
padding: calc(var(--spacing) * 1);
}
}
.\*\:text-nowrap { .\*\:text-nowrap {
:is(& > *) { :is(& > *) {
text-wrap: nowrap; text-wrap: nowrap;
@ -464,13 +518,6 @@
} }
} }
} }
.hover\:bg-gray-100 {
&:hover {
@media (hover: hover) {
background-color: var(--color-gray-100);
}
}
}
.hover\:bg-gray-950 { .hover\:bg-gray-950 {
&:hover { &:hover {
@media (hover: hover) { @media (hover: hover) {
@ -478,11 +525,14 @@
} }
} }
} }
.hover\:text-gray-950 { .dark\:bg-gray-300 {
&:hover { @media (prefers-color-scheme: dark) {
@media (hover: hover) { background-color: var(--color-gray-300);
color: var(--color-gray-950); }
} }
.dark\:bg-gray-800 {
@media (prefers-color-scheme: dark) {
background-color: var(--color-gray-800);
} }
} }
.dark\:bg-gray-900 { .dark\:bg-gray-900 {
@ -490,6 +540,11 @@
background-color: var(--color-gray-900); background-color: var(--color-gray-900);
} }
} }
.dark\:text-gray-50 {
@media (prefers-color-scheme: dark) {
color: var(--color-gray-50);
}
}
} }
@layer theme; @layer theme;
body { body {
@ -587,10 +642,7 @@ card > middle {
label { label {
--tw-font-weight: var(--font-weight-bold); --tw-font-weight: var(--font-weight-bold);
font-weight: var(--font-weight-bold); font-weight: var(--font-weight-bold);
color: var(--color-gray-950); color: var(--color-gray-100);
@media (prefers-color-scheme: dark) {
color: var(--color-white);
}
} }
input { input {
border-radius: var(--radius-sm); border-radius: var(--radius-sm);
@ -613,11 +665,17 @@ input::placeholder {
} }
button { button {
border-radius: var(--radius-sm); border-radius: var(--radius-sm);
background-color: var(--color-gray-300); background-color: var(--color-gray-600);
padding: calc(var(--spacing) * 3); padding: calc(var(--spacing) * 3);
color: var(--color-gray-950); color: var(--color-gray-50);
--tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1)); --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
@media (prefers-color-scheme: dark) {
background-color: var(--color-gray-300);
}
@media (prefers-color-scheme: dark) {
color: var(--color-gray-950);
}
} }
shape { shape {
display: flex; display: flex;
@ -673,12 +731,13 @@ shape.video {
block { block {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
gap: calc(var(--spacing) * 4);
padding-top: calc(var(--spacing) * 4); padding-top: calc(var(--spacing) * 4);
padding-right: calc(var(--spacing) * 4); padding-right: calc(var(--spacing) * 4);
padding-bottom: calc(var(--spacing) * 10); padding-bottom: calc(var(--spacing) * 10);
padding-left: calc(var(--spacing) * 4); padding-left: calc(var(--spacing) * 4);
} }
block.horizontal { bar {
display: flex; display: flex;
flex-direction: row; flex-direction: row;
gap: calc(var(--spacing) * 4); gap: calc(var(--spacing) * 4);
@ -709,6 +768,15 @@ grid {
hr { hr {
visibility: hidden; visibility: hidden;
} }
table {
border-radius: var(--radius-sm);
background-color: var(--color-gray-200);
--tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
@media (prefers-color-scheme: dark) {
background-color: var(--color-gray-800);
}
}
@property --tw-rotate-x { @property --tw-rotate-x {
syntax: "*"; syntax: "*";
inherits: false; inherits: false;

@ -5,31 +5,31 @@
<h1><a href="/admin/table/">&laquo;</a> Admin {{ .Table }}</h1> <h1><a href="/admin/table/">&laquo;</a> Admin {{ .Table }}</h1>
<block x-data="thePage"> <block x-data="thePage">
<block class="horizontal"> <bar>
<button type="button"><a href="/admin/new/table/{{ .Table }}/">New</a></button> <button type="button"><a href="/admin/new/table/{{ .Table }}/">New</a></button>
<button type="button" @click="page -= 1">Prev</button> <button type="button" @click="page -= 1">Prev</button>
<button type="button" @click="page += 1">Next</button> <button type="button" @click="page += 1">Next</button>
<input type="text" x-model.debounce="search_query" name="search" size="40" placeholder="Search" /> <input type="text" x-model.debounce="search_query" name="search" size="40" placeholder="Search" />
</block> </bar>
<table class="bg-gray-800 shadow-lg rounded-sm"> <table>
<tr class="bg-gray-950 *:border-x *:border-black"> <tr class="table-header">
<th>#</th> <th>#</th>
<template x-for="header in headers"> <template x-for="header in headers">
<th x-text="header"></th> <th x-text="header"></th>
</template> </template>
</tr> </tr>
<template x-for="item in contents" :key="item.id"> <template x-for="item in contents" :key="item.id">
<tr class="*:border-2 *:border-black *:p-1 hover:bg-gray-100 hover:text-gray-950"> <tr class="table-row">
<td> <td>
<a x-bind:href="'/admin/table/{{ .Table }}/' + item.id + '/'"> <a x-bind:href="'/admin/table/{{ .Table }}/' + item.id + '/'">
# #
</a> </a>
</td> </td>
<template x-for="(value, key) in item"> <template x-for="(value, key) in item">
<td x-text="value"></td> <td x-text="value"></td>
</template> </template>
</tr> </tr>
</template> </template>
</table> </table>
</block> </block>

Loading…
Cancel
Save