From 8895cd3ee916a7c1fc43e9e2b5f7166d45c4d3d4 Mon Sep 17 00:00:00 2001 From: Austin Lee Date: Fri, 6 Nov 2026 22:47:10 +0000 Subject: [PATCH] feat: port Dream theme with native flip and palettes --- .github/workflows/hugo-theme-dream.yml | 35 + packages/hugo-theme-dream/LICENSE | 21 + packages/hugo-theme-dream/NOTICE.md | 7 + packages/hugo-theme-dream/README.md | 7 + .../hugo-theme-dream/VISUAL-COMPARISON.md | 3 + packages/hugo-theme-dream/archive.eta | 6 + packages/hugo-theme-dream/attachment.eta | 1 + packages/hugo-theme-dream/cate.eta | 6 + packages/hugo-theme-dream/error/404.html | 1 + packages/hugo-theme-dream/error/500.html | 1 + packages/hugo-theme-dream/inc/list.eta | 1 + packages/hugo-theme-dream/inc/pagination.eta | 1 + packages/hugo-theme-dream/index.eta | 1 + packages/hugo-theme-dream/layout.eta | 1 + packages/hugo-theme-dream/package.json | 53 + packages/hugo-theme-dream/page.eta | 1 + packages/hugo-theme-dream/post.eta | 1 + packages/hugo-theme-dream/res/css/source.css | 172 + packages/hugo-theme-dream/res/css/theme.css | 9 + .../hugo-theme-dream/res/css/upstream.css | 3252 +++++++++++++++++ packages/hugo-theme-dream/res/js/init.js | 1 + packages/hugo-theme-dream/res/js/theme.js | 1 + .../res/licenses/DaisyUI5.6.17-MIT.txt | 21 + .../res/licenses/Tailwind4.3.2-MIT.txt | 21 + .../licenses/TailwindTypography0.5.20-MIT.txt | 21 + packages/hugo-theme-dream/screenshot.png | Bin 0 -> 120135 bytes packages/hugo-theme-dream/search.eta | 1 + packages/hugo-theme-dream/tag.eta | 6 + pnpm-lock.yaml | 2 + test/hugo-theme-dream.test.js | 12 + verification/hugo-theme-dream/about-390.png | Bin 0 -> 38444 bytes verification/hugo-theme-dream/home-1440.png | Bin 0 -> 120135 bytes verification/hugo-theme-dream/home-390.png | Bin 0 -> 152830 bytes verification/hugo-theme-dream/home-dark.png | Bin 0 -> 114321 bytes verification/hugo-theme-dream/live.cjs | 56 + verification/hugo-theme-dream/post-1440.png | Bin 0 -> 106072 bytes verification/hugo-theme-dream/post-390.png | Bin 0 -> 80187 bytes verification/hugo-theme-dream/report.json | 118 + 38 files changed, 3840 insertions(+) create mode 100644 .github/workflows/hugo-theme-dream.yml create mode 100644 packages/hugo-theme-dream/LICENSE create mode 100644 packages/hugo-theme-dream/NOTICE.md create mode 100644 packages/hugo-theme-dream/README.md create mode 100644 packages/hugo-theme-dream/VISUAL-COMPARISON.md create mode 100644 packages/hugo-theme-dream/archive.eta create mode 100644 packages/hugo-theme-dream/attachment.eta create mode 100644 packages/hugo-theme-dream/cate.eta create mode 100644 packages/hugo-theme-dream/error/404.html create mode 100644 packages/hugo-theme-dream/error/500.html create mode 100644 packages/hugo-theme-dream/inc/list.eta create mode 100644 packages/hugo-theme-dream/inc/pagination.eta create mode 100644 packages/hugo-theme-dream/index.eta create mode 100644 packages/hugo-theme-dream/layout.eta create mode 100644 packages/hugo-theme-dream/package.json create mode 100644 packages/hugo-theme-dream/page.eta create mode 100644 packages/hugo-theme-dream/post.eta create mode 100644 packages/hugo-theme-dream/res/css/source.css create mode 100644 packages/hugo-theme-dream/res/css/theme.css create mode 100644 packages/hugo-theme-dream/res/css/upstream.css create mode 100644 packages/hugo-theme-dream/res/js/init.js create mode 100644 packages/hugo-theme-dream/res/js/theme.js create mode 100644 packages/hugo-theme-dream/res/licenses/DaisyUI5.6.17-MIT.txt create mode 100644 packages/hugo-theme-dream/res/licenses/Tailwind4.3.2-MIT.txt create mode 100644 packages/hugo-theme-dream/res/licenses/TailwindTypography0.5.20-MIT.txt create mode 100644 packages/hugo-theme-dream/screenshot.png create mode 100644 packages/hugo-theme-dream/search.eta create mode 100644 packages/hugo-theme-dream/tag.eta create mode 100644 test/hugo-theme-dream.test.js create mode 100644 verification/hugo-theme-dream/about-390.png create mode 100644 verification/hugo-theme-dream/home-1440.png create mode 100644 verification/hugo-theme-dream/home-390.png create mode 100644 verification/hugo-theme-dream/home-dark.png create mode 100644 verification/hugo-theme-dream/live.cjs create mode 100644 verification/hugo-theme-dream/post-1440.png create mode 100644 verification/hugo-theme-dream/post-390.png create mode 100644 verification/hugo-theme-dream/report.json diff --git a/.github/workflows/hugo-theme-dream.yml b/.github/workflows/hugo-theme-dream.yml new file mode 100644 index 00000000..92f8da79 --- /dev/null +++ b/.github/workflows/hugo-theme-dream.yml @@ -0,0 +1,35 @@ +name: Dream integration +on: + pull_request: + paths: ['packages/hugo-theme-dream/**', 'verification/hugo-theme-dream/**', 'test/hugo-theme-dream.test.js', '.github/workflows/hugo-theme-dream.yml'] +permissions: + contents: read +jobs: + live-site: + runs-on: ubuntu-24.04 + timeout-minutes: 15 + steps: + - uses: actions/checkout@v4 + - uses: actions/checkout@v4 + with: + repository: firekylin/firekylin + ref: ae71b610ed2dcb6e992366bc06080ec51805042c + path: .verification-core + - uses: pnpm/action-setup@v4 + - uses: actions/setup-node@v4 + with: + node-version: 24 + - run: pnpm install --frozen-lockfile + working-directory: .verification-core + - run: pnpm install --frozen-lockfile --ignore-scripts + - name: Verify real SQLite site and installed ZIP + env: + FIREKYLIN_CHECKOUT: ${{ github.workspace }}/.verification-core + PLAYWRIGHT_MODULE: ${{ github.workspace }}/node_modules/playwright-core + CHROMIUM_PATH: /usr/bin/google-chrome + run: node verification/hugo-theme-dream/live.cjs + - uses: actions/upload-artifact@v4 + if: always() + with: + name: hugo-theme-dream-live-evidence + path: verification/hugo-theme-dream/ diff --git a/packages/hugo-theme-dream/LICENSE b/packages/hugo-theme-dream/LICENSE new file mode 100644 index 00000000..6dc812b5 --- /dev/null +++ b/packages/hugo-theme-dream/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2019 Yue Yang + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/packages/hugo-theme-dream/NOTICE.md b/packages/hugo-theme-dream/NOTICE.md new file mode 100644 index 00000000..8371f7c5 --- /dev/null +++ b/packages/hugo-theme-dream/NOTICE.md @@ -0,0 +1,7 @@ +# Source and attribution + +Adapted from [Dream](https://github.com/g1eny0ung/hugo-theme-dream/tree/1bf86a1b1f7a5cf2be8538446bd6804292687686) by Yue Yang, pinned at `1bf86a1b1f7a5cf2be8538446bd6804292687686`. The complete original license is in LICENSE. + +Native Firekylin Eta integration by Firekylin contributors. No demo content, remote fonts, analytics or third-party service credentials included. + +Original generated CSS and source input are retained. Bundled generated styles include Tailwind 4.3.2, typography 0.5.20 and DaisyUI 5.6.17; complete MIT notices are in res/licenses. Native JavaScript replaces Alpine/masonry/TOC dependencies. No default photos, avatar, icon library, remote fonts, math/diagram engines, analytics or third-party services are bundled. diff --git a/packages/hugo-theme-dream/README.md b/packages/hugo-theme-dream/README.md new file mode 100644 index 00000000..54c9ce89 --- /dev/null +++ b/packages/hugo-theme-dream/README.md @@ -0,0 +1,7 @@ +# Dream for Firekylin + +Yue Yang’s MIT Dream v3 design is adapted with its original Tailwind/DaisyUI CSS, emerald/forest palettes, rounded shadow cards, optional avatar and flippable About panel. Native CSS columns provide the 4/3/2/1-column masonry-like feed; reading order is down each column, unlike upstream JavaScript masonry. Missing/unsafe covers are omitted rather than using random demo photos. Title and cover links avoid an overlay on the entire card. + +The About button flips between articles and escaped configurable About text/navigation cards. Hidden faces are inert, focus follows the visible face, the control supports keyboard activation, and reduced-motion disables rotation. Without JavaScript the article face remains readable and controls are hidden. A persistent light/dark toggle and safe DOM article TOC are included. + +Native posts/pages, archive/taxonomy/search, pagination, protected content, comments and attachments are supported. Footer text/author and avatar URL are configurable. The port does not implement arbitrary Hugo About bundles, Zen mode, image processing/zoom, scroll-spy, reading-time estimates, service comments, math/diagram rendering, ads, or feed generation. Default images, icons and service scripts are omitted. No live upstream pixel comparison or remote comment submission is claimed. diff --git a/packages/hugo-theme-dream/VISUAL-COMPARISON.md b/packages/hugo-theme-dream/VISUAL-COMPARISON.md new file mode 100644 index 00000000..6e2d86f4 --- /dev/null +++ b/packages/hugo-theme-dream/VISUAL-COMPARISON.md @@ -0,0 +1,3 @@ +# Visual adaptation + +Pinned summary/nav/back/single templates plus original generated CSS define the reference: rounded image cards, emerald/forest schemes, compact avatar/motto header, flipped About cards and narrow article with right TOC. CSS columns replace JS masonry and native controls replace icons/Alpine; reduced-motion and inactive-face focus handling are explicit. Installed screenshots/tests are included; no live upstream pixel comparison was performed. diff --git a/packages/hugo-theme-dream/archive.eta b/packages/hugo-theme-dream/archive.eta new file mode 100644 index 00000000..e942717b --- /dev/null +++ b/packages/hugo-theme-dream/archive.eta @@ -0,0 +1,6 @@ +<% layout('./layout'); const site = await firekylin.widget('Widget_Options'); const archive = await firekylin.widget('Widget_Archive', {type:'archive'}); %> +<% block('title', () => { %>归档 - <%= site.title() %><% }) %> +<% block('content', () => { %>

归档

+<% const groups = Object.entries(archive.grouped); if (!groups.length) { %>

暂无文章。

<% } %> +<% for (const [month, posts] of groups) { %>

<%= month %>

<% } %> +
<% }) %> diff --git a/packages/hugo-theme-dream/attachment.eta b/packages/hugo-theme-dream/attachment.eta new file mode 100644 index 00000000..a771d091 --- /dev/null +++ b/packages/hugo-theme-dream/attachment.eta @@ -0,0 +1 @@ +<% layout('./layout');const site=await firekylin.widget('Widget_Options');const archive=await firekylin.widget('Widget_Archive',{type:'attachment'});const found=archive.next();const cover=String(archive.row?.options?.featuredImage||''); %><% block('title',()=>{ %><%= found?archive.title()+' · ':'' %><%= site.title() %><% }) %><% block('content',()=>{ %>
<% if(found){ %>
<% const media=archive.row?.options?.attachment||{};const mediaUrl=String(media.url||'');const mediaValid=/^(https?:\/\/|\/(?!\/))/.test(mediaUrl);const mime=String(media.mime||''); %><% if(mediaValid){ %>
<% if(mime.startsWith('image/')){ %><%= archive.title() %><% }else if(mime.startsWith('audio/')){ %><% }else if(mime.startsWith('video/')){ %><% } %>

<%= media.name||archive.title() %>

<% } %><%~ archive.content() %>
<%~ firekylin.comment({title:'评论'}) %><% }else{ %>

暂无内容。

<% } %>
<% }) %> \ No newline at end of file diff --git a/packages/hugo-theme-dream/cate.eta b/packages/hugo-theme-dream/cate.eta new file mode 100644 index 00000000..8bdf5c52 --- /dev/null +++ b/packages/hugo-theme-dream/cate.eta @@ -0,0 +1,6 @@ +<% layout('./layout'); const site = await firekylin.widget('Widget_Options'); const metas = await firekylin.widget('Widget_Metas_Category_List'); %> +<% block('title', () => { %>分类 - <%= site.title() %><% }) %> +<% block('content', () => { %>

分类

<% if (!metas.have()) { %>

暂无分类。

<% } %>
<% }) %> diff --git a/packages/hugo-theme-dream/error/404.html b/packages/hugo-theme-dream/error/404.html new file mode 100644 index 00000000..5be24639 --- /dev/null +++ b/packages/hugo-theme-dream/error/404.html @@ -0,0 +1 @@ +404

404

Home \ No newline at end of file diff --git a/packages/hugo-theme-dream/error/500.html b/packages/hugo-theme-dream/error/500.html new file mode 100644 index 00000000..3e278337 --- /dev/null +++ b/packages/hugo-theme-dream/error/500.html @@ -0,0 +1 @@ +500

500

Home \ No newline at end of file diff --git a/packages/hugo-theme-dream/inc/list.eta b/packages/hugo-theme-dream/inc/list.eta new file mode 100644 index 00000000..449410d0 --- /dev/null +++ b/packages/hugo-theme-dream/inc/list.eta @@ -0,0 +1 @@ +<% const archive=firekylin.archive;let count=0; %>
<% while(archive.next()){count++;const cover=String(archive.row.options?.featuredImage||''); %>
<% if(/^(https?:\/\/|\/(?!\/))/i.test(cover)){ %>
<% } %>

<%= archive.title() %>

<%= archive.date('YYYY-MM-DD') %>

<%= archive.excerpt(300) %>

<%= archive.author('display_name') %>

<% } %>
<% if(!count){ %>

暂无文章。

<% } %> \ No newline at end of file diff --git a/packages/hugo-theme-dream/inc/pagination.eta b/packages/hugo-theme-dream/inc/pagination.eta new file mode 100644 index 00000000..8536cfdd --- /dev/null +++ b/packages/hugo-theme-dream/inc/pagination.eta @@ -0,0 +1 @@ +<% const archive=firekylin.archive; const p=archive.pagination; %><% if(p && p.totalPages>1){ %><% } %> diff --git a/packages/hugo-theme-dream/index.eta b/packages/hugo-theme-dream/index.eta new file mode 100644 index 00000000..34dd3053 --- /dev/null +++ b/packages/hugo-theme-dream/index.eta @@ -0,0 +1 @@ +<% layout('./layout');const site=await firekylin.widget('Widget_Options');const archive=await firekylin.widget('Widget_Archive',{type:'index'}); %><% block('title',()=>{ %><%= archive.archiveTitle||site.title() %><% }) %><% block('content',()=>{ %><% if(archive.archiveTitle){ %>

<%= archive.archiveTitle %>

<% } %><%~ include('./inc/list',{archive}) %><%~ include('./inc/pagination',{archive}) %><% }) %> \ No newline at end of file diff --git a/packages/hugo-theme-dream/layout.eta b/packages/hugo-theme-dream/layout.eta new file mode 100644 index 00000000..61bb3564 --- /dev/null +++ b/packages/hugo-theme-dream/layout.eta @@ -0,0 +1 @@ +<% const site=await firekylin.widget('Widget_Options');const cfg=site.themeConfig; %><%~ block('title') %>
<% const avatar=String(cfg.avatarURL||'');if(/^(https?:\/\/|\/(?!\/))/i.test(avatar)){ %><% } %>
<%= site.title() %>

<%= site.description() %>

<%~ block('content') %>
\ No newline at end of file diff --git a/packages/hugo-theme-dream/package.json b/packages/hugo-theme-dream/package.json new file mode 100644 index 00000000..96f8d1a3 --- /dev/null +++ b/packages/hugo-theme-dream/package.json @@ -0,0 +1,53 @@ +{ + "name": "hugo-theme-dream", + "title": "Dream", + "version": "0.1.0", + "private": true, + "description": "Dream’s original DaisyUI cards, emerald/forest palettes, masonry-style columns and flippable About panel.", + "license": "MIT", + "author": "Yue Yang; Firekylin contributors", + "homepage": "https://github.com/g1eny0ung/hugo-theme-dream", + "repository": { + "type": "git", + "url": "https://github.com/firekylin/themes.git", + "directory": "packages/hugo-theme-dream" + }, + "firekylin": { + "type": "theme", + "id": "hugo-theme-dream" + }, + "engines": { + "firekylin": ">=2.17.1" + }, + "configElements": [ + { + "type": "text", + "name": "authorName", + "label": "页脚作者", + "help": "留空使用站点标题。" + }, + { + "type": "text", + "name": "footerText", + "label": "页脚介绍", + "help": "留空使用站点描述。" + }, + { + "type": "text", + "name": "avatarURL", + "label": "头像 URL", + "help": "可选,使用站内路径或 HTTP(S) URL。" + }, + { + "type": "text", + "name": "aboutTitle", + "label": "关于标题" + }, + { + "type": "textarea", + "name": "aboutText", + "label": "关于正文", + "help": "纯文本,保留换行。" + } + ] +} diff --git a/packages/hugo-theme-dream/page.eta b/packages/hugo-theme-dream/page.eta new file mode 100644 index 00000000..1ca20e9c --- /dev/null +++ b/packages/hugo-theme-dream/page.eta @@ -0,0 +1 @@ +<% layout('./layout');const site=await firekylin.widget('Widget_Options');const archive=await firekylin.widget('Widget_Archive',{type:'page'});const found=archive.next();const cover=String(archive.row?.options?.featuredImage||''); %><% block('title',()=>{ %><%= found?archive.title()+' · ':'' %><%= site.title() %><% }) %><% block('content',()=>{ %>
<% if(found){ %>
<%~ archive.content() %>
<%~ firekylin.comment({title:'评论'}) %><% }else{ %>

暂无内容。

<% } %>
<% }) %> \ No newline at end of file diff --git a/packages/hugo-theme-dream/post.eta b/packages/hugo-theme-dream/post.eta new file mode 100644 index 00000000..6db07a58 --- /dev/null +++ b/packages/hugo-theme-dream/post.eta @@ -0,0 +1 @@ +<% layout('./layout');const site=await firekylin.widget('Widget_Options');const archive=await firekylin.widget('Widget_Archive',{type:'post'});const found=archive.next();const cover=String(archive.row?.options?.featuredImage||''); %><% block('title',()=>{ %><%= found?archive.title()+' · ':'' %><%= site.title() %><% }) %><% block('content',()=>{ %>
<% if(found){ %>
<%~ archive.content() %>
<%~ firekylin.comment({title:'评论'}) %><% }else{ %>

暂无内容。

<% } %>
<% }) %> \ No newline at end of file diff --git a/packages/hugo-theme-dream/res/css/source.css b/packages/hugo-theme-dream/res/css/source.css new file mode 100644 index 00000000..cced7bd5 --- /dev/null +++ b/packages/hugo-theme-dream/res/css/source.css @@ -0,0 +1,172 @@ +@import 'tailwindcss' source(none); + +@source "input.css"; +@source "../layouts"; + +@plugin '@tailwindcss/typography'; +@plugin "daisyui" { + themes: emerald --default, forest --prefersdark; +} + +@custom-variant dark (&:where(.dark, .dark *)); + +@config '../tailwind.config.js'; + +html { + scroll-behavior: smooth; +} + +#disqus_thread iframe[src*='ads-iframe'] { + display: none; +} + +#dream-global-bg { + position: fixed; + top: 0; + left: 0; + width: 100vw; + height: 100vh; + background-position: center; + background-size: cover; + z-index: -1; +} + +.flip-container { + width: 100vw; + /* The height of navbar is 112px (80px + 2rem). */ + height: calc(100vh - 80px - 2rem); + max-width: 100%; + perspective: 1000px; + + &.flip-it { + .flipper { + transform: rotateY(180deg); + } + + .front { + overflow: hidden; + } + + .back { + transform: translateX(0) rotateY(180deg); + } + } + + .flipper { + position: relative; + width: 100%; + height: 100%; + transform-style: preserve-3d; + transition: transform 0.75s; + } + + .front, + .back { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + backface-visibility: hidden; + transition: transform 0.75s; + } + + .front { + transform: rotateY(0deg); + } + + .back { + /* Hack: set translateX to -25% to make the back page not overlap the TOC. */ + transform: translateX(-25%) rotateY(180deg); + } +} + +#TableOfContents { + @apply sticky top-24; + + /* top-24 + 1rem */ + max-height: calc(100vh - 7rem); + overflow-y: auto; + + /* Prevent long headings (e.g. CJK titles) from making the TOC wider than + its grid column and overlapping the article (#411 / #412) */ + max-width: 100%; +} + +@supports (-moz-appearance: none) { + #TableOfContents { + position: initial; + } +} + +#TableOfContents ul { + @apply menu menu-sm; +} + +.mermaid-panzoom { + @apply relative border border-transparent rounded-box; +} + +.mermaid-panzoom:hover, +.mermaid-panzoom:focus-within { + @apply border-base-300; +} + +.mermaid-panzoom > .mermaid { + @apply overflow-hidden; +} + +.mermaid-panzoom-reset { + @apply absolute z-1 right-2 bottom-2 opacity-0 pointer-events-none transition-opacity duration-150 ease-in-out; +} + +.mermaid-panzoom:hover .mermaid-panzoom-reset, +.mermaid-panzoom:focus-within .mermaid-panzoom-reset { + @apply opacity-100 pointer-events-auto; +} + +.dream-alert { + > .heading { + @apply flex items-center gap-1 text-sm font-medium; + } + + &.note { + @apply border-s-blue-600 dark:border-s-blue-500; + + .heading { + @apply text-blue-600 dark:text-blue-500; + } + } + + &.tip { + @apply border-s-green-600 dark:border-s-green-500; + + .heading { + @apply text-green-600 dark:text-green-500; + } + } + + &.important { + @apply border-s-purple-600 dark:border-s-purple-500; + + .heading { + @apply text-purple-600 dark:text-purple-500; + } + } + + &.warning { + @apply border-s-yellow-600 dark:border-s-yellow-500; + + .heading { + @apply text-yellow-600 dark:text-yellow-500; + } + } + + &.caution { + @apply border-s-red-600 dark:border-s-red-500; + + .heading { + @apply text-red-600 dark:text-red-500; + } + } +} diff --git a/packages/hugo-theme-dream/res/css/theme.css b/packages/hugo-theme-dream/res/css/theme.css new file mode 100644 index 00000000..0fb7b7f5 --- /dev/null +++ b/packages/hugo-theme-dream/res/css/theme.css @@ -0,0 +1,9 @@ +@import url('upstream.css'); + +/* Native Firekylin integration: controls, media and code containment. */ +body{overflow-wrap:anywhere}.skip{position:absolute;top:-100px}.skip:focus{top:0;z-index:99}.native-nav{display:flex;flex-wrap:wrap;gap:10px 16px;margin:18px 0}.prose pre,.prose table{display:block;max-width:100%;overflow:auto}.prose img,.attachment-media img{max-width:100%;height:auto;margin:1rem 0}.attachment-media video,.attachment-media audio,.prose iframe{max-width:100%}.prose ul{list-style:disc}.prose ol{list-style:decimal}.prose li{display:list-item}.pagination{display:flex;justify-content:space-between;gap:12px;margin:32px 0}.post-actions,.tags{display:flex;gap:12px;flex-wrap:wrap;margin:24px 0}input,button{font:inherit;max-width:100%;box-sizing:border-box}form{display:flex;flex-wrap:wrap;gap:10px}input{min-width:0}:focus-visible{outline:2px solid currentColor;outline-offset:3px} + +/* Native post/page media may declare dimensions wider than the reading column. */ +.prose video,.prose audio{max-width:100%;box-sizing:border-box}.prose video{height:auto} + +html{color-scheme:light}html[data-theme=forest]{color-scheme:dark}body{background:var(--color-base-200);color:var(--color-base-content);min-height:100vh}.dream-container{max-width:1536px;margin:auto;padding:0 1rem}.dream-header{padding:2rem 0 1rem}.header-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.brand{display:flex;align-items:center;gap:.75rem}.brand-avatar{width:48px;height:48px;border-radius:50%;object-fit:cover}.site-name{font-size:1.125rem;font-weight:600}.motto{font-size:.875rem;opacity:.7}.native-nav{margin:0;align-items:center}.native-controls{display:flex;gap:.5rem}.native-controls button{padding:.5rem .75rem;border-radius:999px;background:var(--color-base-100)}.native-controls button[hidden]{display:none}.native-stage{perspective:1000px}.native-face{transform-origin:center}.native-face.flip-enter{animation:face-in .45s ease-out}.native-face[hidden]{display:none!important}@keyframes face-in{from{transform:rotateY(-75deg);opacity:.3}to{transform:rotateY(0deg);opacity:1}}.dream-grid-native{column-count:4;column-gap:2rem;padding:1rem 0}.dream-column-native{break-inside:avoid;display:inline-block;width:100%;margin:0 0 2rem}.dream-card{border-radius:var(--radius-box,1rem);background:var(--color-base-100);box-shadow:0 20px 25px -5px #0002;overflow:hidden;border:1px solid transparent}.dark .dream-card{border-color:color-mix(in oklab,var(--color-base-content) 30%,transparent)}.dream-card:hover{background:color-mix(in oklab,var(--color-base-content) 10%,var(--color-base-100))}.dream-card figure img{width:100%;height:auto;display:block}.dream-card .card-body{padding:1.5rem;display:flex;flex-direction:column;gap:.75rem}.card-title{font-size:1.25rem;font-weight:600;line-height:1.4}.card-date{font-size:.875rem;opacity:.65}.card-author{margin-top:.5rem;font-size:.875rem}.listing-heading{font-size:2rem;font-weight:700;padding:1.5rem 0}.about-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem;padding:1rem 0}.about-text{white-space:pre-wrap}.about-links{display:flex;flex-direction:column;gap:.75rem}.about-links a{text-decoration:underline}.dream-single{max-width:1120px;margin:2rem auto;display:grid;grid-template-columns:180px minmax(0,65ch) 200px;gap:2rem}.dream-single .post-detail{grid-column:2;min-width:0}.article-toc{grid-column:3;position:sticky;top:2rem;align-self:start;max-height:80vh;overflow:auto;padding:.5rem;min-width:0}.toc-list{padding-left:1rem}.toc-list .nested{margin-left:.75rem}.post-title{font-size:2.25rem;font-weight:700;line-height:1.2;margin-bottom:1.5rem}.post-date{font-size:.875rem;opacity:.7;margin-bottom:1.5rem}.prose{color:var(--color-base-content);max-width:100%}.prose pre{white-space:pre;box-sizing:border-box;padding:1rem;border-radius:.5rem;background:var(--color-base-300);color:var(--color-base-content)}.prose pre code{display:block;white-space:pre;width:max-content;min-width:100%;color:inherit}.prose table{display:table;width:100%;table-layout:fixed}.prose td,.prose th{overflow-wrap:anywhere;padding:.5rem;color:inherit}.prose audio{height:54px}.prose h2,.prose h3,.prose h4{color:inherit}.post-footer{margin:2rem 0}.native-wrap{max-width:900px;margin:2rem auto;padding:0 1rem}.native-wrap h1{font-size:2rem;margin-bottom:2rem}.native-footer{padding:2rem 1rem;text-align:center;font-size:.875rem}.native-footer p{margin:.5rem 0}.pagination{align-items:center;justify-content:center;flex-wrap:wrap}.pagination a{padding:.5rem 1rem;border-radius:.5rem;background:var(--color-base-100)}input,button{background:var(--color-base-100);color:var(--color-base-content);border:1px solid var(--color-base-300);padding:.4rem .6rem;border-radius:.5rem}.skip:focus{background:var(--color-base-100);padding:.5rem}.native-face:focus{outline:none}@media(max-width:1279px){.dream-grid-native{column-count:3}.dream-single{grid-template-columns:minmax(0,65ch) 180px;max-width:1000px}.dream-single .post-detail{grid-column:1}.article-toc{grid-column:2}}@media(max-width:1023px){.dream-grid-native{column-count:2}.dream-single{display:block;max-width:65ch}.article-toc{position:static;max-height:none;margin-top:2rem}.about-grid{grid-template-columns:1fr}}@media(max-width:767px){.dream-grid-native{column-count:1}.dream-header{padding:1rem 0}.post-title{font-size:1.8rem}.header-inner{align-items:flex-start}.native-nav{font-size:.9rem}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.native-face.flip-enter{animation:none}} diff --git a/packages/hugo-theme-dream/res/css/upstream.css b/packages/hugo-theme-dream/res/css/upstream.css new file mode 100644 index 00000000..98df0e59 --- /dev/null +++ b/packages/hugo-theme-dream/res/css/upstream.css @@ -0,0 +1,3252 @@ +/*! tailwindcss v4.3.2 | 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-red-500: oklch(63.7% 0.237 25.331); + --color-red-600: oklch(57.7% 0.245 27.325); + --color-yellow-500: oklch(79.5% 0.184 86.047); + --color-yellow-600: oklch(68.1% 0.162 75.834); + --color-green-500: oklch(72.3% 0.219 149.579); + --color-green-600: oklch(62.7% 0.194 149.214); + --color-blue-500: oklch(62.3% 0.214 259.815); + --color-blue-600: oklch(54.6% 0.245 262.881); + --color-purple-500: oklch(62.7% 0.265 303.9); + --color-purple-600: oklch(55.8% 0.288 302.321); + --color-black: #000; + --spacing: 0.25rem; + --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); + --font-weight-normal: 400; + --font-weight-medium: 500; + --font-weight-semibold: 600; + --radius-lg: 0.5rem; + --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1); + --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; + } + ::-webkit-calendar-picker-indicator { + line-height: 1; + } + :-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 { + .menu { + @layer daisyui.l1.l2.l3 { + display: flex; + width: fit-content; + flex-direction: column; + flex-wrap: wrap; + padding: calc(0.25rem * 2); + --menu-active-fg: var(--color-neutral-content); + --menu-active-bg: var(--color-neutral); + font-size: 0.875rem; + :where(li ul, li menu) { + position: relative; + margin-inline-start: calc(0.25rem * 4); + padding-inline-start: calc(0.25rem * 2); + white-space: nowrap; + &:before { + position: absolute; + inset-inline-start: calc(0.25rem * 0); + top: calc(0.25rem * 3); + bottom: calc(0.25rem * 3); + background-color: var(--color-base-content); + opacity: 10%; + width: var(--border); + content: ""; + } + } + :where(li > .menu-dropdown:not(.menu-dropdown-show)) { + display: none; + } + :where(li:not(.menu-title) > *:not(ul, menu, details, .menu-title, .btn)), :where(li:not(.menu-title) > details > summary:not(.menu-title)) { + display: grid; + grid-auto-flow: column; + align-content: flex-start; + align-items: center; + gap: calc(0.25rem * 2); + border-radius: var(--radius-field); + padding-inline: calc(0.25rem * 3); + padding-block: calc(0.25rem * 1.5); + text-align: start; + transition-property: color, background-color, box-shadow; + transition-duration: 0.2s; + transition-timing-function: cubic-bezier(0, 0, 0.2, 1); + grid-auto-columns: minmax(auto, max-content) auto max-content; + user-select: none; + } + :where(li > details > summary) { + --tw-outline-style: none; + outline-style: none; + @media (forced-colors: active) { + outline: 2px solid transparent; + outline-offset: 2px; + } + &::-webkit-details-marker { + display: none; + } + } + :where(li > details > summary), :where(li > .menu-dropdown-toggle) { + &:after { + justify-self: flex-end; + display: block; + height: 0.375rem; + width: 0.375rem; + rotate: -135deg; + translate: 0 -1px; + transition-property: rotate, translate; + transition-duration: 0.2s; + content: ""; + transform-origin: 50% 50%; + box-shadow: 2px 2px inset; + pointer-events: none; + } + } + details { + overflow: hidden; + interpolate-size: allow-keywords; + } + details::details-content { + block-size: 0; + @media (prefers-reduced-motion: no-preference) { + transition-behavior: allow-discrete; + transition-property: block-size, content-visibility; + transition-duration: 0.2s; + transition-timing-function: cubic-bezier(0, 0, 0.2, 1); + } + } + details[open]::details-content { + block-size: auto; + } + :where(li > details[open] > summary):after, :where(li > .menu-dropdown-toggle.menu-dropdown-show):after { + rotate: 45deg; + translate: 0 1px; + } + :where(li:not(.menu-title, .disabled) > *:not(ul, menu, details, .menu-title), li:not(.menu-title, .disabled) > details > summary:not(.menu-title) ):not(.menu-active, :active, .btn) { + &.menu-focus, &:focus-visible { + cursor: pointer; + background-color: var(--color-base-content); + @supports (color: color-mix(in lab, red, red)) { + background-color: color-mix(in oklab, var(--color-base-content) 10%, transparent); + } + color: var(--color-base-content); + --tw-outline-style: none; + outline-style: none; + @media (forced-colors: active) { + outline: 2px solid transparent; + outline-offset: 2px; + } + } + } + :where(li:not(.menu-title, .disabled) > *:not(ul, menu, details, .menu-title):not(.menu-active, :active, .btn):hover, li:not(.menu-title, .disabled) > details > summary:not(.menu-title):not(.menu-active, :active, .btn):hover ) { + cursor: pointer; + background-color: var(--color-base-content); + @supports (color: color-mix(in lab, red, red)) { + background-color: color-mix(in oklab, var(--color-base-content) 10%, transparent); + } + --tw-outline-style: none; + outline-style: none; + @media (forced-colors: active) { + outline: 2px solid transparent; + outline-offset: 2px; + } + box-shadow: 0 1px oklch(0% 0 0 / 0.01) inset, 0 -1px oklch(100% 0 0 / 0.01) inset; + } + :where(li:empty) { + background-color: var(--color-base-content); + opacity: 10%; + margin: 0.5rem 1rem; + height: 1px; + } + :where(li) { + position: relative; + display: flex; + flex-shrink: 0; + flex-direction: column; + flex-wrap: wrap; + align-items: stretch; + .badge { + justify-self: flex-end; + } + & > *:not(ul, menu, .menu-title, details, .btn):active, & > *:not(ul, menu, .menu-title, details, .btn).menu-active, & > details > summary:active { + --tw-outline-style: none; + outline-style: none; + @media (forced-colors: active) { + outline: 2px solid transparent; + outline-offset: 2px; + } + color: var(--menu-active-fg); + background-color: var(--menu-active-bg); + background-size: auto, calc(var(--noise) * 100%); + background-image: none, var(--fx-noise); + &:not(&:active) { + box-shadow: 0 2px calc(var(--depth) * 3px) -2px var(--menu-active-bg); + } + } + &.menu-disabled, [disabled] { + pointer-events: none; + color: var(--color-base-content); + @supports (color: color-mix(in lab, red, red)) { + color: color-mix(in oklab, var(--color-base-content) 20%, transparent); + } + } + } + .dropdown:focus-within { + .menu-dropdown-toggle:after { + rotate: 45deg; + translate: 0 1px; + } + } + .dropdown-content { + margin-top: calc(0.25rem * 2); + padding: calc(0.25rem * 2); + &:before { + display: none; + } + } + } + } + .dropdown { + @layer daisyui.l1.l2.l3 { + position: relative; + display: inline-block; + position-area: var(--anchor-v, bottom) var(--anchor-h, span-right); + & > *:not(:has( ~ [class*="dropdown-content"])):focus { + --tw-outline-style: none; + outline-style: none; + @media (forced-colors: active) { + outline: 2px solid transparent; + outline-offset: 2px; + } + } + .dropdown-content { + position: absolute; + } + &.dropdown-close .dropdown-content, &:not(details, .dropdown-open, .dropdown-hover:hover, :focus-within) .dropdown-content, &.dropdown-hover:not(:hover) [tabindex]:first-child:focus:not(:focus-visible) ~ .dropdown-content { + display: none; + transform-origin: top; + opacity: 0%; + scale: 95%; + } + &[popover], .dropdown-content { + z-index: 999; + @media (prefers-reduced-motion: no-preference) { + animation: dropdown 0.2s; + transition-property: opacity, scale, display, overlay; + transition-behavior: allow-discrete; + transition-duration: 0.2s; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + } + } + @starting-style { + &[popover], .dropdown-content { + scale: 95%; + opacity: 0; + } + } + &:not(.dropdown-close) { + &.dropdown-open, &:not(.dropdown-hover):focus, &:focus-within { + > [tabindex]:first-child { + pointer-events: none; + } + .dropdown-content { + opacity: 100%; + scale: 100%; + } + } + &.dropdown-hover:hover { + .dropdown-content { + opacity: 100%; + scale: 100%; + } + } + } + &:is(details) { + overflow: revert-layer; + summary { + &::-webkit-details-marker { + display: none; + } + } + } + &:where([popover]) { + background: #0000; + } + &[popover] { + position: fixed; + color: inherit; + @supports not (position-area: bottom) { + margin: auto; + &.dropdown-close, &.dropdown-open:not(:popover-open) { + display: none; + transform-origin: top; + opacity: 0%; + scale: 95%; + } + &::backdrop { + background-color: color-mix(in oklab, #000 30%, #0000); + } + } + &.dropdown-close, &:not(.dropdown-open, :popover-open) { + display: none; + transform-origin: top; + opacity: 0%; + scale: 95%; + } + } + } + } + .btn { + :where(&) { + @layer daisyui.l1.l2.l3 { + width: unset; + } + } + .prose :where(a&:not(.btn-link)):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + text-decoration-line: none; + } + @layer daisyui.l1.l2.l3 { + --size: calc(var(--size-field, 0.25rem) * 10); + --btn-p: 1rem; + --btn-fg: var(--color-base-content); + display: inline-flex; + flex-shrink: 0; + cursor: pointer; + flex-wrap: nowrap; + align-items: center; + justify-content: center; + gap: calc(0.25rem * 1.5); + text-align: center; + vertical-align: middle; + outline-offset: 2px; + webkit-user-select: none; + user-select: none; + font-weight: 600; + border-start-start-radius: var(--join-ss, var(--radius-field)); + border-start-end-radius: var(--join-se, var(--radius-field)); + border-end-start-radius: var(--join-es, var(--radius-field)); + border-end-end-radius: var(--join-ee, var(--radius-field)); + border-width: var(--border); + touch-action: manipulation; + transition-property: color, background-color, border-color, box-shadow, transform; + transition-timing-function: cubic-bezier(0, 0, 0.2, 1); + transition-duration: 0.2s; + --btn-bg: var(--btn-color, var(--color-base-200)); + --btn-border: var(--btn-color, var(--color-base-200)); + @supports (color: color-mix(in lab, red, red)) { + --btn-border: color-mix( + in oklab, + var(--btn-color, var(--color-base-200)), + #000 calc(var(--depth) * 5%) + ); + } + --btn-soft-bg: initial; + --btn-shadow: 0 3px 2px -2px var(--btn-bg), + 0 4px 3px -2px var(--btn-bg); + @supports (color: color-mix(in lab, red, red)) { + --btn-shadow: 0 3px 2px -2px color-mix(in oklab, var(--btn-bg) calc(var(--depth) * 30%), #0000), + 0 4px 3px -2px color-mix(in oklab, var(--btn-bg) calc(var(--depth) * 30%), #0000); + } + --btn-inset: 0 0.5px 0 0.5px oklch(100% 0 0 / calc(var(--depth) * 6%)); + height: var(--size); + padding-inline: var(--btn-p); + font-size: var(--fontsize, 0.875rem); + background-color: var(--btn-bg); + color: var(--btn-fg); + border-color: var(--btn-border); + border-style: var(--btn-border-style, solid); + outline-color: var(--btn-color, var(--color-base-content)); + --tw-prose-links: var(--btn-fg); + background-image: none, var(--fx-noise); + background-size: auto, calc(var(--noise, 0) * 100%); + text-shadow: 0 0.5px oklch(100% 0 0 / calc(var(--depth) * 0.15)); + box-shadow: var(--btn-inset) inset, var(--btn-shadow); + &:is([type="checkbox"], [type="radio"]) { + appearance: none; + &[aria-label]::after { + --tw-content: attr(aria-label); + content: var(--tw-content); + } + } + } + @layer daisyui.l1 { + &:where(:checked:not(.filter [type="radio"].btn)) { + --btn-color: var(--color-primary); + --btn-fg: var(--color-primary-content); + } + @media (hover: hover) { + &:hover { + --btn-bg: var(--btn-color, var(--color-base-200)); + @supports (color: color-mix(in lab, red, red)) { + --btn-bg: color-mix(in oklab, var(--btn-color, var(--color-base-200)), #000 7%); + } + color: var(--btn-fg); + --btn-border: var(--btn-bg); + @supports (color: color-mix(in lab, red, red)) { + --btn-border: color-mix(in oklab, var(--btn-bg), #000 calc(var(--depth) * 5%)); + } + --btn-border-style: solid; + --btn-inset: 0 0.5px 0 0.5px oklch(100% 0 0 / calc(var(--depth) * 6%)); + --btn-shadow: 0 3px 2px -2px var(--btn-bg), + 0 4px 3px -2px var(--btn-bg); + @supports (color: color-mix(in lab, red, red)) { + --btn-shadow: 0 3px 2px -2px color-mix(in oklab, var(--btn-bg) calc(var(--depth) * 30%), #0000), + 0 4px 3px -2px color-mix(in oklab, var(--btn-bg) calc(var(--depth) * 30%), #0000); + } + } + } + &:active:not(.btn-active) { + translate: 0 0.5px; + --btn-bg: var(--btn-color, var(--color-base-200)); + @supports (color: color-mix(in lab, red, red)) { + --btn-bg: color-mix(in oklab, var(--btn-color, var(--color-base-200)), #000 5%); + } + color: var(--btn-fg, var(--color-base-content)); + --btn-border: var(--btn-color, var(--color-base-200)); + @supports (color: color-mix(in lab, red, red)) { + --btn-border: color-mix(in oklab, var(--btn-color, var(--color-base-200)), #000 7%); + } + --btn-border-style: solid; + --btn-inset: 0 0 0 0 oklch(0% 0 0/0); + --btn-shadow: 0 0 0 0 oklch(0% 0 0/0); + } + &:where(:checked:not(.filter [type="radio"].btn), :not([type="radio"], [type="checkbox"]):focus-visible ) { + --btn-bg: var(--btn-color, var(--color-base-200)); + color: var(--btn-fg, var(--color-base-content)); + --btn-border: var(--btn-bg); + @supports (color: color-mix(in lab, red, red)) { + --btn-border: color-mix(in oklab, var(--btn-bg), #000 calc(var(--depth) * 5%)); + } + --btn-border-style: solid; + --btn-inset: 0 0.5px 0 0.5px oklch(100% 0 0 / calc(var(--depth) * 6%)); + --btn-shadow: 0 3px 2px -2px var(--btn-bg), + 0 4px 3px -2px var(--btn-bg); + @supports (color: color-mix(in lab, red, red)) { + --btn-shadow: 0 3px 2px -2px color-mix(in oklab, var(--btn-bg) calc(var(--depth) * 30%), #0000), + 0 4px 3px -2px color-mix(in oklab, var(--btn-bg) calc(var(--depth) * 30%), #0000); + } + isolation: isolate; + } + &:focus-visible, &:has(:focus-visible) { + outline-width: 2px; + outline-style: solid; + isolation: isolate; + } + } + &:is(:disabled, [disabled], [aria-disabled="true"]) { + @layer daisyui { + pointer-events: none; + color: var(--color-base-content); + @supports (color: color-mix(in lab, red, red)) { + color: color-mix(in oklch, var(--color-base-content) 20%, #0000); + } + --btn-bg: #0000; + --btn-border: #0000; + background-image: none; + --btn-inset: 0 0 0 0 oklch(0% 0 0/0); + --btn-shadow: 0 0 0 0 oklch(0% 0 0/0); + &:not(.btn-link, .btn-ghost) { + background-color: var(--color-base-content); + @supports (color: color-mix(in lab, red, red)) { + background-color: color-mix(in oklab, var(--color-base-content) 10%, transparent); + } + } + } + } + } + .input { + @layer daisyui.l1.l2.l3 { + position: relative; + display: inline-flex; + flex-shrink: 1; + appearance: none; + align-items: center; + gap: calc(0.25rem * 2); + background-color: var(--color-base-100); + padding-inline: calc(0.25rem * 3); + vertical-align: middle; + white-space: nowrap; + --size: calc(var(--size-field, 0.25rem) * var(--in-size-mul)); + --input-color: var(--color-base-content); + @supports (color: color-mix(in lab, red, red)) { + --input-color: color-mix(in oklab, var(--color-base-content) 20%, #0000); + } + cursor: text; + width: clamp(3rem, 20rem, 100%); + height: var(--size); + font-size: max(var(--font-size, 0rem), var(--font-size-min)); + touch-action: manipulation; + border-start-start-radius: var(--join-ss, var(--radius-field)); + border-start-end-radius: var(--join-se, var(--radius-field)); + border-end-start-radius: var(--join-es, var(--radius-field)); + border-end-end-radius: var(--join-ee, var(--radius-field)); + border: var(--border) solid var(--input-color, #0000); + box-shadow: 0 1px var(--input-color) inset, 0 -1px oklch(100% 0 0 / calc(var(--depth) * 0.1)) inset; + @supports (color: color-mix(in lab, red, red)) { + box-shadow: 0 1px color-mix(in oklab, var(--input-color) calc(var(--depth) * 10%), #0000) inset, 0 -1px oklch(100% 0 0 / calc(var(--depth) * 0.1)) inset; + } + input { + height: 100%; + width: 100%; + appearance: none; + background-color: transparent; + border: none; + &::placeholder { + color: var(--color-base-content); + opacity: 50%; + } + &:focus, &:focus-within { + --tw-outline-style: none; + outline-style: none; + @media (forced-colors: active) { + outline: 2px solid transparent; + outline-offset: 2px; + } + } + &::-webkit-calendar-picker-indicator { + inset-inline-end: -0.15em; + } + } + &::-webkit-inner-spin-button { + margin-inline-end: -10px; + } + &::-webkit-calendar-picker-indicator { + inset-inline-end: 0.75em; + } + input&, input { + position: relative; + display: inline-flex; + &[type="url"], &[type="email"] { + text-align: left; + } + &::-webkit-datetime-edit, &::-webkit-date-and-time-value { + display: grid; + min-height: 100%; + align-items: center; + text-align: inherit; + } + &::-webkit-inner-spin-button { + margin-block: calc(0.25rem * var(--spin-my)); + } + &::-webkit-calendar-picker-indicator { + position: absolute; + width: 1em; + height: 1em; + cursor: pointer; + } + &::-webkit-color-swatch-wrapper { + padding-block: 0.25rem; + } + } + &:focus, &:focus-within { + --input-color: var(--color-base-content); + box-shadow: 0 1px var(--input-color); + @supports (color: color-mix(in lab, red, red)) { + box-shadow: 0 1px color-mix(in oklab, var(--input-color) calc(var(--depth) * 10%), #0000); + } + outline: 2px solid var(--input-color); + outline-offset: 2px; + isolation: isolate; + } + @media (pointer: coarse) { + @supports (-webkit-touch-callout: none) { + &:focus, &:focus-within { + --font-size: 1rem; + } + } + } + &:has( > input[disabled]), &:is(:disabled, [disabled]), fieldset:disabled & { + cursor: not-allowed; + border-color: var(--color-base-200); + background-color: var(--color-base-200); + &:is(input), :is(input) { + color: var(--color-base-content); + @supports (color: color-mix(in lab, red, red)) { + color: color-mix(in oklab, var(--color-base-content) 40%, transparent); + } + } + box-shadow: none; + &::placeholder, ::placeholder { + color: var(--color-base-content); + opacity: 20%; + } + } + &:has( > input[disabled]) > input[disabled] { + cursor: not-allowed; + } + } + @layer daisyui.l1.l2 { + --in-size-mul: 10; + --font-size-min: 0.875rem; + --spin-my: -3; + .floating-label:has(&) { + --top-mul: 5; + --font-size: 0.875rem; + } + } + } + .range { + @layer daisyui.l1.l2.l3 { + appearance: none; + webkit-appearance: none; + --range-thumb: var(--color-base-100); + --range-thumb-size: calc(var(--size-selector, 0.25rem) * 6); + --range-progress: currentColor; + --range-fill: 1; + --range-p: 0.25rem; + --range-bg: currentColor; + @supports (color: color-mix(in lab, red, red)) { + --range-bg: color-mix(in oklab, currentColor 10%, #0000); + } + --range-fill-x: calc( + (var(--range-dir, 1) * -100cqw) - (var(--range-dir, 1) * var(--range-thumb-size) / 2) + ); + --range-fill-y: 0; + --range-fill-spread: calc(100cqw * var(--range-fill)); + cursor: pointer; + overflow: hidden; + background-color: transparent; + vertical-align: middle; + width: clamp(3rem, 20rem, 100%); + --radius-selector-max: calc( + var(--radius-selector) + var(--radius-selector) + var(--radius-selector) + ); + border-radius: calc(var(--radius-selector) + min(var(--range-p), var(--radius-selector-max))); + border: none; + height: var(--range-thumb-size); + [dir="rtl"] & { + --range-dir: -1; + } + &:focus { + outline: none; + } + &:focus-visible { + outline: 2px solid; + outline-offset: 2px; + } + &::-webkit-slider-runnable-track { + width: 100%; + background-color: var(--range-bg); + border-radius: var(--radius-selector); + height: calc(var(--range-thumb-size) * 0.5); + } + @media (forced-colors: active) { + &::-webkit-slider-runnable-track { + border: 1px solid; + } + } + @media (forced-colors: active) { + &::-moz-range-track { + border: 1px solid; + } + } + &::-webkit-slider-thumb { + position: relative; + box-sizing: border-box; + border-radius: calc(var(--radius-selector) + min(var(--range-p), var(--radius-selector-max))); + background-color: var(--range-thumb); + height: var(--range-thumb-size); + width: var(--range-thumb-size); + border: var(--range-p) solid; + appearance: none; + webkit-appearance: none; + inset-block-start: 50%; + color: var(--range-progress); + transform: translateY(-50%); + box-shadow: 0 -1px oklch(0% 0 0 / calc(var(--depth) * 0.1)) inset, 0 8px 0 -4px oklch(100% 0 0 / calc(var(--depth) * 0.1)) inset, 0 1px currentColor, 0 0 0 2rem var(--range-thumb) inset, var(--range-fill-x) var(--range-fill-y) 0 var(--range-fill-spread); + @supports (color: color-mix(in lab, red, red)) { + box-shadow: 0 -1px oklch(0% 0 0 / calc(var(--depth) * 0.1)) inset, 0 8px 0 -4px oklch(100% 0 0 / calc(var(--depth) * 0.1)) inset, 0 1px color-mix(in oklab, currentColor calc(var(--depth) * 10%), #0000), 0 0 0 2rem var(--range-thumb) inset, var(--range-fill-x) var(--range-fill-y) 0 var(--range-fill-spread); + } + } + &::-moz-range-track { + width: 100%; + background-color: var(--range-bg); + border-radius: var(--radius-selector); + height: calc(var(--range-thumb-size) * 0.5); + } + &::-moz-range-thumb { + position: relative; + box-sizing: border-box; + border-radius: calc(var(--radius-selector) + min(var(--range-p), var(--radius-selector-max))); + background-color: currentColor; + height: var(--range-thumb-size); + width: var(--range-thumb-size); + border: var(--range-p) solid; + color: var(--range-progress); + box-shadow: 0 -1px oklch(0% 0 0 / calc(var(--depth) * 0.1)) inset, 0 8px 0 -4px oklch(100% 0 0 / calc(var(--depth) * 0.1)) inset, 0 1px currentColor, 0 0 0 2rem var(--range-thumb) inset, var(--range-fill-x) var(--range-fill-y) 0 var(--range-fill-spread); + @supports (color: color-mix(in lab, red, red)) { + box-shadow: 0 -1px oklch(0% 0 0 / calc(var(--depth) * 0.1)) inset, 0 8px 0 -4px oklch(100% 0 0 / calc(var(--depth) * 0.1)) inset, 0 1px color-mix(in oklab, currentColor calc(var(--depth) * 10%), #0000), 0 0 0 2rem var(--range-thumb) inset, var(--range-fill-x) var(--range-fill-y) 0 var(--range-fill-spread); + } + } + &:disabled { + cursor: not-allowed; + opacity: 30%; + } + } + } + .timeline { + @layer daisyui.l1.l2.l3 { + position: relative; + display: flex; + > li { + position: relative; + display: grid; + flex-shrink: 0; + align-items: center; + grid-template-rows: var(--timeline-row-start, minmax(0, 1fr)) auto var(--timeline-row-end, minmax(0, 1fr) ); + grid-template-columns: var(--timeline-col-start, minmax(0, 1fr)) auto var(--timeline-col-end, minmax(0, 1fr) ); + > hr { + border: none; + width: 100%; + &:first-child { + grid-column-start: 1; + grid-row-start: 2; + } + &:last-child { + grid-column-start: 3; + grid-column-end: none; + grid-row-start: 2; + grid-row-end: auto; + } + @media print { + border: 0.1px solid var(--color-base-300); + } + } + } + :where(hr) { + height: 0.25rem; + background-color: var(--color-base-300); + } + &:has(.timeline-middle hr) { + &:first-child { + border-start-start-radius: 0; + border-end-start-radius: 0; + border-start-end-radius: var(--radius-selector); + border-end-end-radius: var(--radius-selector); + } + &:last-child { + border-start-start-radius: var(--radius-selector); + border-end-start-radius: var(--radius-selector); + border-start-end-radius: 0; + border-end-end-radius: 0; + } + } + &:not(:has(.timeline-middle)) { + :first-child hr:last-child { + border-start-start-radius: var(--radius-selector); + border-end-start-radius: var(--radius-selector); + border-start-end-radius: 0; + border-end-end-radius: 0; + } + :last-child hr:first-child { + border-start-start-radius: 0; + border-end-start-radius: 0; + border-start-end-radius: var(--radius-selector); + border-end-end-radius: var(--radius-selector); + } + } + } + } + .menu-horizontal { + @layer daisyui.l1.l2 { + display: inline-flex; + flex-direction: row; + align-items: center; + & > li:not(.menu-title) > details { + & > :is(ul, menu) { + position: absolute; + margin-inline-start: 0; + margin-top: calc(0.25rem * 4); + transform-origin: top; + border-radius: var(--radius-box); + background-color: var(--color-base-100); + padding-block: calc(0.25rem * 2); + padding-inline-end: calc(0.25rem * 2); + opacity: 0%; + scale: 95%; + box-shadow: 0 1px 3px 0 oklch(0% 0 0/0.1), 0 1px 2px -1px oklch(0% 0 0/0.1); + @media (prefers-reduced-motion: no-preference) { + @starting-style { + scale: 95%; + opacity: 0; + } + animation: menu 0.2s; + transition-property: opacity, scale, display; + transition-behavior: allow-discrete; + transition-duration: 0.2s; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + } + } + &[open] > :is(ul, menu) { + opacity: 100%; + scale: 100%; + } + } + & > li > details > :is(ul, menu) { + &:before { + --tw-content: none; + content: var(--tw-content); + } + } + } + } + .avatar { + @layer daisyui.l1.l2.l3 { + position: relative; + display: inline-flex; + vertical-align: middle; + & > div { + display: block; + aspect-ratio: 1 / 1; + overflow: hidden; + } + img { + height: 100%; + width: 100%; + object-fit: cover; + } + } + } + .card { + @layer daisyui.l1.l2.l3 { + position: relative; + display: flex; + flex-direction: column; + border-radius: var(--radius-box); + transition: outline 0.2s ease-in-out; + outline: 2px solid #0000; + outline-offset: 2px; + &:focus-visible, &[aria-checked="true"], &:has( > :checked, > :is([type="checkbox"], [type="radio"]):focus-visible) { + outline-color: currentColor; + } + &:has( > :checked:focus-visible), &[aria-checked="true"]:focus-visible, &[aria-checked="true"]:has( > :is([type="checkbox"], [type="radio"]):focus-visible) { + outline-width: 4px; + } + &:has( > :is([type="checkbox"], [type="radio"])) { + cursor: pointer; + user-select: none; + } + > :is([type="checkbox"], [type="radio"]) { + appearance: none; + } + } + @layer daisyui.l1.l2.l3.l4 { + figure:first-child { + overflow: hidden; + border-start-start-radius: inherit; + border-start-end-radius: inherit; + border-end-start-radius: unset; + border-end-end-radius: unset; + } + figure:last-child { + overflow: hidden; + border-start-start-radius: unset; + border-start-end-radius: unset; + border-end-start-radius: inherit; + border-end-end-radius: inherit; + } + figure { + display: flex; + align-items: center; + justify-content: center; + } + } + } + .sticky { + position: sticky; + } + .dropdown-end { + @layer daisyui.l1.l2 { + --anchor-h: span-left; + :where(.dropdown-content) { + inset-inline-end: calc(0.25rem * 0); + translate: 0 0; + [dir="rtl"] & { + translate: 0 0; + } + } + &.dropdown-left { + --anchor-h: left; + --anchor-v: span-top; + .dropdown-content { + top: auto; + bottom: 0; + } + } + &.dropdown-right { + --anchor-h: right; + --anchor-v: span-top; + .dropdown-content { + top: auto; + bottom: 0; + } + } + } + } + .top-0 { + top: 0; + } + .join { + display: inline-flex; + align-items: stretch; + --join-ss: 0; + --join-se: 0; + --join-es: 0; + --join-ee: 0; + --join-v: 0; + --join-h: 1; + @scope (&) { + > :where(:focus, :has(:focus)) { + z-index: 1; + } + @media (hover: hover) { + > :where(.btn:hover, :has(.btn:hover)) { + isolation: isolate; + } + } + :where(:scope > :first-child) { + --join-ss: var(--radius-field); + --join-se: calc(var(--radius-field) * var(--join-v)); + --join-es: calc(var(--radius-field) * var(--join-h)); + --join-ee: 0; + } + :where(:scope > :last-child) { + --join-ss: 0; + --join-se: calc(var(--radius-field) * var(--join-h)); + --join-es: calc(var(--radius-field) * var(--join-v)); + --join-ee: var(--radius-field); + } + :where(:scope > :only-child) { + --join-ss: var(--radius-field); + --join-se: var(--radius-field); + --join-es: var(--radius-field); + --join-ee: var(--radius-field); + } + } + } + .z-10 { + z-index: 10; + } + .z-30 { + z-index: 30; + } + .timeline-end { + @layer daisyui.l1.l2.l3 { + grid-column-start: 1; + grid-column-end: 4; + grid-row-start: 3; + grid-row-end: 4; + margin: 0.25rem; + align-self: flex-start; + justify-self: center; + } + } + .timeline-start { + @layer daisyui.l1.l2.l3 { + grid-column-start: 1; + grid-column-end: 4; + grid-row-start: 1; + grid-row-end: 2; + margin: 0.25rem; + align-self: flex-end; + justify-self: center; + } + } + .timeline-vertical { + @layer daisyui.l1.l2 { + flex-direction: column; + > li { + justify-items: center; + --timeline-row-start: minmax(0, 1fr); + --timeline-row-end: minmax(0, 1fr); + > hr { + height: 100%; + width: 0.25rem; + &:first-child { + grid-column-start: 2; + grid-row-start: 1; + } + &:last-child { + grid-column-start: 2; + grid-column-end: auto; + grid-row-start: 3; + grid-row-end: none; + } + } + } + .timeline-start { + grid-column-start: 1; + grid-column-end: 2; + grid-row-start: 1; + grid-row-end: 4; + align-self: center; + justify-self: flex-end; + } + .timeline-end { + grid-column-start: 3; + grid-column-end: 4; + grid-row-start: 1; + grid-row-end: 4; + align-self: center; + justify-self: flex-start; + } + &:has(.timeline-middle) { + > li { + > hr { + &:first-child { + border-top-left-radius: 0; + border-top-right-radius: 0; + border-bottom-right-radius: var(--radius-selector); + border-bottom-left-radius: var(--radius-selector); + } + &:last-child { + border-top-left-radius: var(--radius-selector); + border-top-right-radius: var(--radius-selector); + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; + } + } + } + } + &:not(:has(.timeline-middle)) { + :first-child { + > hr:last-child { + border-top-left-radius: var(--radius-selector); + border-top-right-radius: var(--radius-selector); + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; + } + } + :last-child { + > hr:first-child { + border-top-left-radius: 0; + border-top-right-radius: 0; + border-bottom-right-radius: var(--radius-selector); + border-bottom-left-radius: var(--radius-selector); + } + } + } + &.timeline-snap-icon { + > li { + --timeline-col-start: minmax(0, 1fr); + --timeline-row-start: 0.5rem; + } + } + } + } + .timeline-middle { + @layer daisyui.l1.l2.l3 { + grid-column-start: 2; + grid-row-start: 2; + } + } + .container { + width: 100%; + @media (width >= 40rem) { + max-width: 40rem; + } + @media (width >= 48rem) { + max-width: 48rem; + } + @media (width >= 64rem) { + max-width: 64rem; + } + @media (width >= 80rem) { + max-width: 80rem; + } + @media (width >= 96rem) { + max-width: 96rem; + } + } + .divider { + @layer daisyui.l1.l2.l3 { + display: flex; + height: calc(0.25rem * 4); + flex-direction: row; + align-items: center; + align-self: stretch; + white-space: nowrap; + margin: var(--divider-m, 1rem 0); + --divider-color: var(--color-base-content); + @supports (color: color-mix(in lab, red, red)) { + --divider-color: color-mix(in oklab, var(--color-base-content) 10%, transparent); + } + &:before, &:after { + content: ""; + height: calc(0.25rem * 0.5); + width: 100%; + flex-grow: 1; + background-color: var(--divider-color); + } + @media print { + &:before, &:after { + border: 0.5px solid; + } + } + &:not(:empty) { + gap: calc(0.25rem * 4); + } + } + } + .container { + margin-inline: auto; + } + .mx-8 { + margin-inline: calc(var(--spacing) * 8); + } + .mx-auto { + margin-inline: auto; + } + .my-0 { + margin-block: 0; + } + .my-0\! { + margin-block: 0 !important; + } + .my-2 { + margin-block: calc(var(--spacing) * 2); + } + .my-5 { + margin-block: calc(var(--spacing) * 5); + } + .my-8 { + margin-block: calc(var(--spacing) * 8); + } + .join-item { + @layer daisyui.l1.l2.l3.l4 { + > * { + --join-ss: initial; + --join-se: initial; + --join-es: initial; + --join-ee: initial; + } + } + border-style: solid; + border-width: var(--border, 1px); + border-start-start-radius: var(--join-ss); + border-start-end-radius: var(--join-se); + border-end-start-radius: var(--join-es); + border-end-end-radius: var(--join-ee); + &:not(:first-child, :disabled, [disabled], .btn-disabled) { + margin-inline-start: calc(var(--border, 1px) * -1 * var(--join-h)); + margin-block-start: calc(var(--border, 1px) * -1 * var(--join-v)); + } + &:is(:disabled, [disabled], .btn-disabled) { + border-width: var(--border, 1px); + border-inline-end-width: calc(var(--border, 1px) * var(--join-v)); + border-block-end-width: calc(var(--border, 1px) * var(--join-h)); + } + } + .prose { + color: var(--tw-prose-body); + max-width: 65ch; + :where(p):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + margin-top: 1.25em; + margin-bottom: 1.25em; + word-break: break-word; + } + :where([class~="lead"]):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + color: var(--tw-prose-lead); + font-size: 1.25em; + line-height: 1.6; + margin-top: 1.2em; + margin-bottom: 1.2em; + } + :where(a):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + color: var(--tw-prose-links); + text-decoration: underline; + font-weight: 500; + } + :where(strong):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + color: var(--tw-prose-bold); + font-weight: 600; + } + :where(a strong):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + color: inherit; + } + :where(blockquote strong):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + color: inherit; + } + :where(thead th strong):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + color: inherit; + } + :where(ol):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + list-style-type: decimal; + margin-top: 1.25em; + margin-bottom: 1.25em; + padding-inline-start: 1.625em; + } + :where(ol[type="A"]):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + list-style-type: upper-alpha; + } + :where(ol[type="a"]):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + list-style-type: lower-alpha; + } + :where(ol[type="A" s]):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + list-style-type: upper-alpha; + } + :where(ol[type="a" s]):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + list-style-type: lower-alpha; + } + :where(ol[type="I"]):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + list-style-type: upper-roman; + } + :where(ol[type="i"]):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + list-style-type: lower-roman; + } + :where(ol[type="I" s]):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + list-style-type: upper-roman; + } + :where(ol[type="i" s]):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + list-style-type: lower-roman; + } + :where(ol[type="1"]):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + list-style-type: decimal; + } + :where(ul):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + list-style-type: disc; + margin-top: 1.25em; + margin-bottom: 1.25em; + padding-inline-start: 1.625em; + } + :where(ol > li):not(:where([class~="not-prose"], [class~="not-prose"] *))::marker { + font-weight: 400; + color: var(--tw-prose-counters); + } + :where(ul > li):not(:where([class~="not-prose"], [class~="not-prose"] *))::marker { + color: var(--tw-prose-bullets); + } + :where(dt):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + color: var(--tw-prose-headings); + font-weight: 600; + margin-top: 1.25em; + } + :where(hr):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + border-color: var(--tw-prose-hr); + border-top-width: 1px; + margin-top: 3em; + margin-bottom: 3em; + } + :where(blockquote):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + font-weight: normal; + font-style: normal; + color: var(--tw-prose-body); + border-inline-start-width: 0.25rem; + border-inline-start-color: var(--tw-prose-quote-borders); + quotes: "\201C""\201D""\2018""\2019"; + margin-top: 1.6em; + margin-bottom: 1.6em; + padding-inline-start: 1em; + } + :where(blockquote p:first-of-type):not(:where([class~="not-prose"], [class~="not-prose"] *))::before { + content: open-quote; + } + :where(blockquote p:last-of-type):not(:where([class~="not-prose"], [class~="not-prose"] *))::after { + content: close-quote; + } + :where(h1):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + color: var(--tw-prose-headings); + font-weight: 800; + font-size: 2.25em; + margin-top: 0; + margin-bottom: 0.8888889em; + line-height: 1.1111111; + } + :where(h1 strong):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + font-weight: 900; + color: inherit; + } + :where(h2):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + color: var(--tw-prose-headings); + font-weight: 700; + font-size: 1.5em; + margin-top: 2em; + margin-bottom: 1em; + line-height: 1.3333333; + } + :where(h2 strong):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + font-weight: 800; + color: inherit; + } + :where(h3):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + color: var(--tw-prose-headings); + font-weight: 600; + font-size: 1.25em; + margin-top: 1.6em; + margin-bottom: 0.6em; + line-height: 1.6; + } + :where(h3 strong):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + font-weight: 700; + color: inherit; + } + :where(h4):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + color: var(--tw-prose-headings); + font-weight: 600; + margin-top: 1.5em; + margin-bottom: 0.5em; + line-height: 1.5; + } + :where(h4 strong):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + font-weight: 700; + color: inherit; + } + :where(img):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + margin-top: 2em; + margin-bottom: 2em; + } + :where(picture):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + display: block; + margin-top: 2em; + margin-bottom: 2em; + } + :where(video):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + margin-top: 2em; + margin-bottom: 2em; + } + :where(kbd):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + font-weight: 500; + font-family: inherit; + color: var(--tw-prose-kbd); + box-shadow: 0 0 0 1px var(--tw-prose-kbd-shadows), 0 3px 0 var(--tw-prose-kbd-shadows); + font-size: 0.875em; + border-radius: 0.3125rem; + padding-top: 0.1875em; + padding-inline-end: 0.375em; + padding-bottom: 0.1875em; + padding-inline-start: 0.375em; + } + :where(a code):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + color: inherit; + } + :where(h1 code):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + color: inherit; + } + :where(h2 code):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + color: inherit; + font-size: 0.875em; + } + :where(h3 code):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + color: inherit; + font-size: 0.9em; + } + :where(h4 code):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + color: inherit; + } + :where(blockquote code):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + color: inherit; + } + :where(thead th code):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + color: inherit; + } + :where(table):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + width: 100%; + table-layout: auto; + margin-top: 2em; + margin-bottom: 2em; + font-size: 0.875em; + line-height: 1.7142857; + } + :where(thead):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + border-bottom-width: 1px; + border-bottom-color: var(--tw-prose-th-borders); + } + :where(thead th):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + color: var(--tw-prose-headings); + font-weight: 600; + vertical-align: bottom; + padding-inline-end: 0.5714286em; + padding-bottom: 0.5714286em; + padding-inline-start: 0.5714286em; + } + :where(tbody tr):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + border-bottom-width: 1px; + border-bottom-color: var(--tw-prose-td-borders); + } + :where(tbody tr:last-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + border-bottom-width: 0; + } + :where(tbody td):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + vertical-align: baseline; + } + :where(tfoot):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + border-top-width: 1px; + border-top-color: var(--tw-prose-th-borders); + } + :where(tfoot td):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + vertical-align: top; + } + :where(th, td):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + text-align: start; + } + :where(figure > *):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + margin-top: 0; + margin-bottom: 0; + } + :where(figcaption):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + color: var(--tw-prose-captions); + font-size: 0.875em; + line-height: 1.4285714; + margin-top: 0.8571429em; + } + --tw-prose-body: oklch(37.3% 0.034 259.733); + --tw-prose-headings: oklch(21% 0.034 264.665); + --tw-prose-lead: oklch(44.6% 0.03 256.802); + --tw-prose-links: oklch(21% 0.034 264.665); + --tw-prose-bold: oklch(21% 0.034 264.665); + --tw-prose-counters: oklch(55.1% 0.027 264.364); + --tw-prose-bullets: oklch(87.2% 0.01 258.338); + --tw-prose-hr: oklch(92.8% 0.006 264.531); + --tw-prose-quotes: oklch(21% 0.034 264.665); + --tw-prose-quote-borders: oklch(92.8% 0.006 264.531); + --tw-prose-captions: oklch(55.1% 0.027 264.364); + --tw-prose-kbd: oklch(21% 0.034 264.665); + --tw-prose-kbd-shadows: color-mix(in oklab, oklch(21% 0.034 264.665) 10%, transparent); + --tw-prose-code: oklch(21% 0.034 264.665); + --tw-prose-pre-code: oklch(92.8% 0.006 264.531); + --tw-prose-pre-bg: oklch(27.8% 0.033 256.848); + --tw-prose-th-borders: oklch(87.2% 0.01 258.338); + --tw-prose-td-borders: oklch(92.8% 0.006 264.531); + --tw-prose-invert-body: oklch(87.2% 0.01 258.338); + --tw-prose-invert-headings: #fff; + --tw-prose-invert-lead: oklch(70.7% 0.022 261.325); + --tw-prose-invert-links: #fff; + --tw-prose-invert-bold: #fff; + --tw-prose-invert-counters: oklch(70.7% 0.022 261.325); + --tw-prose-invert-bullets: oklch(44.6% 0.03 256.802); + --tw-prose-invert-hr: oklch(37.3% 0.034 259.733); + --tw-prose-invert-quotes: oklch(96.7% 0.003 264.542); + --tw-prose-invert-quote-borders: oklch(37.3% 0.034 259.733); + --tw-prose-invert-captions: oklch(70.7% 0.022 261.325); + --tw-prose-invert-kbd: #fff; + --tw-prose-invert-kbd-shadows: rgb(255 255 255 / 10%); + --tw-prose-invert-code: #fff; + --tw-prose-invert-pre-code: oklch(87.2% 0.01 258.338); + --tw-prose-invert-pre-bg: rgb(0 0 0 / 50%); + --tw-prose-invert-th-borders: oklch(44.6% 0.03 256.802); + --tw-prose-invert-td-borders: oklch(37.3% 0.034 259.733); + font-size: 1rem; + line-height: 1.75; + :where(picture > img):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + margin-top: 0; + margin-bottom: 0; + } + :where(li):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + margin-top: 0.5em; + margin-bottom: 0.5em; + } + :where(ol > li):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + padding-inline-start: 0.375em; + } + :where(ul > li):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + padding-inline-start: 0.375em; + } + :where(.prose > ul > li p):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + margin-top: 0.75em; + margin-bottom: 0.75em; + } + :where(.prose > ul > li > p:first-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + margin-top: 1.25em; + } + :where(.prose > ul > li > p:last-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + margin-bottom: 1.25em; + } + :where(.prose > ol > li > p:first-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + margin-top: 1.25em; + } + :where(.prose > ol > li > p:last-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + margin-bottom: 1.25em; + } + :where(ul ul, ul ol, ol ul, ol ol):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + margin-top: 0.75em; + margin-bottom: 0.75em; + } + :where(dl):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + margin-top: 1.25em; + margin-bottom: 1.25em; + } + :where(dd):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + margin-top: 0.5em; + padding-inline-start: 1.625em; + } + :where(hr + *):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + margin-top: 0; + } + :where(h2 + *):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + margin-top: 0; + } + :where(h3 + *):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + margin-top: 0; + } + :where(h4 + *):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + margin-top: 0; + } + :where(thead th:first-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + padding-inline-start: 0; + } + :where(thead th:last-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + padding-inline-end: 0; + } + :where(tbody td, tfoot td):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + padding-top: 0.5714286em; + padding-inline-end: 0.5714286em; + padding-bottom: 0.5714286em; + padding-inline-start: 0.5714286em; + } + :where(tbody td:first-child, tfoot td:first-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + padding-inline-start: 0; + } + :where(tbody td:last-child, tfoot td:last-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + padding-inline-end: 0; + } + :where(figure):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + margin-top: 2em; + margin-bottom: 2em; + } + :where(.prose > :first-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + margin-top: 0; + } + :where(.prose > :last-child):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + margin-bottom: 0; + } + } + .mt-2 { + margin-top: calc(var(--spacing) * 2); + } + .mt-4 { + margin-top: calc(var(--spacing) * 4); + } + .mt-6 { + margin-top: calc(var(--spacing) * 6); + } + .mt-8 { + margin-top: calc(var(--spacing) * 8); + } + .mr-1 { + margin-right: var(--spacing); + } + .mb-4 { + margin-bottom: calc(var(--spacing) * 4); + } + .status { + @layer daisyui.l1.l2.l3 { + display: inline-block; + aspect-ratio: 1 / 1; + width: calc(0.25rem * 2); + height: calc(0.25rem * 2); + border-radius: var(--radius-selector); + background-color: var(--color-base-content); + @supports (color: color-mix(in lab, red, red)) { + background-color: color-mix(in oklab, var(--color-base-content) 20%, transparent); + } + background-position: center; + background-repeat: no-repeat; + vertical-align: middle; + color: color-mix(in srgb, #000 30%, transparent); + @supports (color: color-mix(in lab, red, red)) { + color: color-mix(in oklab, var(--color-black) 30%, transparent); + } + background-image: radial-gradient( circle at 35% 30%, oklch(1 0 0 / calc(var(--depth) * 0.5)), #0000 ); + box-shadow: 0 2px 3px -1px currentColor; + @supports (color: color-mix(in lab, red, red)) { + box-shadow: 0 2px 3px -1px color-mix(in oklab, currentColor calc(var(--depth) * 100%), #0000); + } + } + } + .badge { + @layer daisyui.l1.l2.l3 { + display: inline-flex; + align-items: center; + justify-content: center; + gap: calc(0.25rem * 2); + border-radius: var(--radius-selector); + vertical-align: middle; + color: var(--badge-fg); + border: var(--border) solid var(--badge-color, var(--color-base-200)); + font-size: 0.875rem; + width: fit-content; + background-size: auto, calc(var(--noise) * 100%); + background-image: none, var(--fx-noise); + background-color: var(--badge-bg); + --badge-bg: var(--badge-color, var(--color-base-100)); + --badge-fg: var(--color-base-content); + --size: calc(var(--size-selector, 0.25rem) * 6); + height: var(--size); + padding-inline: calc(var(--size) / 2 - var(--border)); + } + } + .card-body { + @layer daisyui.l1.l2.l3 { + display: flex; + flex: auto; + flex-direction: column; + gap: calc(0.25rem * 2); + padding: var(--card-p, 1.5rem); + font-size: var(--card-fs, 0.875rem); + } + @layer daisyui.l1.l2.l3.l4 { + p { + flex-grow: 1; + } + } + } + .alert { + border-width: var(--border); + border-color: var(--alert-border-color, var(--color-base-200)); + @layer daisyui.l1.l2.l3 { + border-style: solid; + --alert-border-color: var(--color-base-200); + display: grid; + align-items: center; + gap: calc(0.25rem * 4); + border-radius: var(--radius-box); + padding-inline: calc(0.25rem * 4); + padding-block: calc(0.25rem * 3); + color: var(--color-base-content); + background-color: var(--alert-color, var(--color-base-200)); + justify-content: start; + justify-items: start; + grid-auto-flow: column; + grid-template-columns: auto; + text-align: start; + font-size: 0.875rem; + line-height: 1.25rem; + background-size: auto, calc(var(--noise) * 33%); + background-image: none, var(--fx-noise); + box-shadow: 0 3px 0 -2px oklch(100% 0 0 / calc(var(--depth) * 0.08)) inset, 0 1px #000, 0 4px 3px -2px oklch(0% 0 0 / calc(var(--depth) * 0.08)); + @supports (color: color-mix(in lab, red, red)) { + box-shadow: 0 3px 0 -2px oklch(100% 0 0 / calc(var(--depth) * 0.08)) inset, 0 1px color-mix( in oklab, color-mix(in oklab, #000 20%, var(--alert-color, var(--color-base-200))) calc(var(--depth) * 20%), #0000 ), 0 4px 3px -2px oklch(0% 0 0 / calc(var(--depth) * 0.08)); + } + &:has(:nth-child(2)) { + grid-template-columns: auto minmax(auto, 1fr); + } + } + } + .card-actions { + @layer daisyui.l1.l2.l3 { + display: flex; + flex-wrap: wrap; + align-items: flex-start; + gap: calc(0.25rem * 2); + } + } + .card-title { + @layer daisyui.l1.l2.l3 { + display: flex; + align-items: center; + gap: calc(0.25rem * 2); + font-size: var(--cardtitle-fs, 1.125rem); + font-weight: 600; + } + } + .prose { + :root & { + --tw-prose-body: var(--color-base-content); + @supports (color: color-mix(in lab, red, red)) { + --tw-prose-body: color-mix(in oklab, var(--color-base-content) 80%, #0000); + } + --tw-prose-headings: var(--color-base-content); + --tw-prose-lead: var(--color-base-content); + --tw-prose-links: var(--color-base-content); + --tw-prose-bold: var(--color-base-content); + --tw-prose-counters: var(--color-base-content); + --tw-prose-bullets: var(--color-base-content); + @supports (color: color-mix(in lab, red, red)) { + --tw-prose-bullets: color-mix(in oklab, var(--color-base-content) 50%, #0000); + } + --tw-prose-hr: var(--color-base-content); + @supports (color: color-mix(in lab, red, red)) { + --tw-prose-hr: color-mix(in oklab, var(--color-base-content) 20%, #0000); + } + --tw-prose-quotes: var(--color-base-content); + --tw-prose-quote-borders: var(--color-base-content); + @supports (color: color-mix(in lab, red, red)) { + --tw-prose-quote-borders: color-mix(in oklab, var(--color-base-content) 20%, #0000); + } + --tw-prose-captions: var(--color-base-content); + @supports (color: color-mix(in lab, red, red)) { + --tw-prose-captions: color-mix(in oklab, var(--color-base-content) 50%, #0000); + } + --tw-prose-code: var(--color-base-content); + --tw-prose-pre-code: var(--color-neutral-content); + --tw-prose-pre-bg: var(--color-neutral); + --tw-prose-th-borders: var(--color-base-content); + @supports (color: color-mix(in lab, red, red)) { + --tw-prose-th-borders: color-mix(in oklab, var(--color-base-content) 50%, #0000); + } + --tw-prose-td-borders: var(--color-base-content); + @supports (color: color-mix(in lab, red, red)) { + --tw-prose-td-borders: color-mix(in oklab, var(--color-base-content) 20%, #0000); + } + --tw-prose-kbd: var(--color-base-content); + @supports (color: color-mix(in lab, red, red)) { + --tw-prose-kbd: color-mix(in oklab, var(--color-base-content) 80%, #0000); + } + :where(code):not(pre > code) { + background-color: var(--color-base-200); + border-radius: var(--radius-selector); + border: var(--border) solid var(--color-base-300); + padding-inline: 0.5em; + padding-block: 0.2em; + font-weight: inherit; + &:before, &:after { + display: none; + } + } + } + } + .block { + display: block; + } + .flex { + display: flex; + } + .grid { + display: grid; + } + .hidden { + display: none; + } + .inline { + display: inline; + } + .inline-flex { + display: inline-flex; + } + .divider-vertical { + @layer daisyui.l1.l2 { + --divider-m: 1rem 0; + &.divider { + height: calc(0.25rem * 4); + width: auto; + flex-direction: row; + &:before { + height: calc(0.25rem * 0.5); + width: 100%; + } + &:after { + height: calc(0.25rem * 0.5); + width: 100%; + } + } + } + } + .btn-square { + @layer daisyui.l1.l2 { + padding-inline: 0; + width: var(--size); + height: var(--size); + } + } + .h-6 { + height: calc(var(--spacing) * 6); + } + .h-8 { + height: calc(var(--spacing) * 8); + } + .h-12 { + height: calc(var(--spacing) * 12); + } + .h-\[60vh\] { + height: 60vh; + } + .w-2\/3 { + width: calc(2 / 3 * 100%); + } + .w-8 { + width: calc(var(--spacing) * 8); + } + .w-12 { + width: calc(var(--spacing) * 12); + } + .w-24 { + width: calc(var(--spacing) * 24); + } + .w-36 { + width: calc(var(--spacing) * 36); + } + .w-full { + width: 100%; + } + .max-w-48 { + max-width: calc(var(--spacing) * 48); + } + .max-w-\[65ch\] { + max-width: 65ch; + } + .max-w-none { + max-width: none; + } + .flex-1 { + flex: 1; + } + .grow { + flex-grow: 1; + } + .link { + @layer daisyui.l1.l2.l3 { + cursor: pointer; + text-decoration-line: underline; + &:focus { + --tw-outline-style: none; + outline-style: none; + @media (forced-colors: active) { + outline: 2px solid transparent; + outline-offset: 2px; + } + } + &:focus-visible { + outline: 2px solid currentColor; + outline-offset: 2px; + } + } + } + .cursor-pointer { + cursor: pointer; + } + .grid-cols-2 { + grid-template-columns: repeat(2, minmax(0, 1fr)); + } + .flex-col { + flex-direction: column; + } + .flex-wrap { + flex-wrap: wrap; + } + .items-center { + align-items: center; + } + .items-end { + align-items: flex-end; + } + .items-start { + align-items: flex-start; + } + .justify-between { + justify-content: space-between; + } + .justify-center { + justify-content: center; + } + .gap-2 { + gap: calc(var(--spacing) * 2); + } + .gap-4 { + gap: calc(var(--spacing) * 4); + } + .space-y-4 { + :where(& > :not(:last-child)) { + --tw-space-y-reverse: 0; + margin-block-start: calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse)); + margin-block-end: calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse))); + } + } + .space-y-8 { + :where(& > :not(:last-child)) { + --tw-space-y-reverse: 0; + margin-block-start: calc(calc(var(--spacing) * 8) * var(--tw-space-y-reverse)); + margin-block-end: calc(calc(var(--spacing) * 8) * calc(1 - var(--tw-space-y-reverse))); + } + } + .justify-self-start\! { + justify-self: flex-start !important; + } + .truncate { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } + .timeline-box { + @layer daisyui.l1.l2.l3 { + border: var(--border) solid; + border-radius: var(--radius-box); + border-color: var(--color-base-300); + background-color: var(--color-base-100); + padding-inline: calc(0.25rem * 4); + padding-block: calc(0.25rem * 2); + font-size: 0.75rem; + box-shadow: 0 1px 2px 0 oklch(0% 0 0/0.05); + } + } + .rounded-box { + border-radius: var(--radius-box); + } + .rounded-box { + border-radius: var(--radius-box); + } + .rounded-full { + border-radius: calc(infinity * 1px); + } + .rounded-lg { + border-radius: var(--radius-lg); + } + .border { + border-style: var(--tw-border-style); + border-width: 1px; + } + .border-base-content\/30 { + border-color: var(--color-base-content); + @supports (color: color-mix(in lab, red, red)) { + border-color: color-mix(in oklab, var(--color-base-content) 30%, transparent); + } + } + .bg-base-100 { + background-color: var(--color-base-100); + } + .bg-primary { + background-color: var(--color-primary); + } + .btn-outline { + @layer daisyui.l1.l2.l3 { + --btn-bg: #0000; + color: var(--btn-rest-fg, var(--btn-color, var(--color-base-content))); + --btn-border: var(--btn-color, var(--color-base-content)); + --btn-border-style: solid; + background-image: none; + --btn-inset: 0 0 0 0 oklch(0% 0 0/0); + --btn-shadow: 0 0 0 0 oklch(0% 0 0/0); + } + } + .btn-ghost { + @layer daisyui.l1.l2.l3 { + --btn-bg: #0000; + color: var(--btn-rest-fg, var(--btn-color, var(--color-base-content, currentColor))); + --btn-border: #0000; + background-image: none; + --btn-inset: 0 0 0 0 oklch(0% 0 0/0); + --btn-shadow: 0 0 0 0 oklch(0% 0 0/0); + } + } + .p-1 { + padding: var(--spacing); + } + .p-2 { + padding: calc(var(--spacing) * 2); + } + .p-4 { + padding: calc(var(--spacing) * 4); + } + .px-0 { + padding-inline: 0; + } + .px-2 { + padding-inline: calc(var(--spacing) * 2); + } + .px-4 { + padding-inline: calc(var(--spacing) * 4); + } + .py-4 { + padding-block: calc(var(--spacing) * 4); + } + .py-12 { + padding-block: calc(var(--spacing) * 12); + } + .pt-8 { + padding-top: calc(var(--spacing) * 8); + } + .text-center { + text-align: center; + } + .text-2xl { + font-size: var(--text-2xl); + line-height: var(--tw-leading, var(--text-2xl--line-height)); + } + .text-3xl { + font-size: var(--text-3xl); + line-height: var(--tw-leading, var(--text-3xl--line-height)); + } + .text-base { + font-size: var(--text-base); + line-height: var(--tw-leading, var(--text-base--line-height)); + } + .text-lg { + font-size: var(--text-lg); + line-height: var(--tw-leading, var(--text-lg--line-height)); + } + .text-sm { + font-size: var(--text-sm); + line-height: var(--tw-leading, var(--text-sm--line-height)); + } + .text-xl { + font-size: var(--text-xl); + line-height: var(--tw-leading, var(--text-xl--line-height)); + } + .text-xs { + font-size: var(--text-xs); + line-height: var(--tw-leading, var(--text-xs--line-height)); + } + .font-medium { + --tw-font-weight: var(--font-weight-medium); + font-weight: var(--font-weight-medium); + } + .font-normal { + --tw-font-weight: var(--font-weight-normal); + font-weight: var(--font-weight-normal); + } + .font-semibold { + --tw-font-weight: var(--font-weight-semibold); + font-weight: var(--font-weight-semibold); + } + .text-base-content\/60 { + color: var(--color-base-content); + @supports (color: color-mix(in lab, red, red)) { + color: color-mix(in oklab, var(--color-base-content) 60%, transparent); + } + } + .text-primary-content { + color: var(--color-primary-content); + } + .italic { + font-style: italic; + } + .no-underline { + text-decoration-line: none; + } + .prose { + & :where(a.btn:not(.btn-link)):not(:where([class~="not-prose"], [class~="not-prose"] *)) { + text-decoration-line: none; + } + } + .underline { + text-decoration-line: underline; + } + .opacity-0 { + opacity: 0%; + } + .shadow-lg { + --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); + } + .shadow-md { + --tw-shadow: 0 4px 6px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 2px 4px -2px 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); + } + .shadow-xl { + --tw-shadow: 0 20px 25px -5px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 8px 10px -6px 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); + } + .prose-quoteless { + :where(blockquote p:first-of-type):not(:where([class~="not-prose"], [class~="not-prose"] *))::before { + content: none; + } + :where(blockquote p:first-of-type):not(:where([class~="not-prose"], [class~="not-prose"] *))::after { + content: none; + } + } + .btn-sm { + @layer daisyui.l1.l2 { + --fontsize: 0.75rem; + --btn-p: 0.75rem; + --size: calc(var(--size-field, 0.25rem) * 8); + } + } + .badge-primary { + @layer daisyui.l1.l2 { + --badge-color: var(--color-primary); + --badge-fg: var(--color-primary-content); + } + } + .select-none { + -webkit-user-select: none; + user-select: none; + } + .\[--timeline-col-start\:64px\] { + --timeline-col-start: 64px; + } + .group-hover\:text-primary-content { + &:is(:where(.group):hover *) { + @media (hover: hover) { + color: var(--color-primary-content); + } + } + } + .after\:absolute { + &::after { + content: var(--tw-content); + position: absolute; + } + } + .after\:inset-0 { + &::after { + content: var(--tw-content); + inset: 0; + } + } + .hover\:avatar-online { + &:hover { + @media (hover: hover) { + @layer daisyui.l1.l2 { + &:before { + content: ""; + position: absolute; + z-index: 1; + display: block; + border-radius: calc(infinity * 1px); + background-color: var(--color-success); + outline: 2px solid var(--color-base-100); + width: 15%; + height: 15%; + top: 7%; + right: 7%; + } + } + } + } + } + .hover\:bg-base-content\/10 { + &:hover { + @media (hover: hover) { + background-color: var(--color-base-content); + @supports (color: color-mix(in lab, red, red)) { + background-color: color-mix(in oklab, var(--color-base-content) 10%, transparent); + } + } + } + } + .hover\:bg-primary { + &:hover { + @media (hover: hover) { + background-color: var(--color-primary); + } + } + } + .hover\:underline { + &:hover { + @media (hover: hover) { + text-decoration-line: underline; + } + } + } + .hover\:badge-primary { + &:hover { + @media (hover: hover) { + @layer daisyui.l1.l2 { + --badge-color: var(--color-primary); + --badge-fg: var(--color-primary-content); + } + } + } + } + .sm\:flex { + @media (width >= 40rem) { + display: flex; + } + } + .sm\:hidden { + @media (width >= 40rem) { + display: none; + } + } + .sm\:items-center { + @media (width >= 40rem) { + align-items: center; + } + } + .sm\:gap-2 { + @media (width >= 40rem) { + gap: calc(var(--spacing) * 2); + } + } + .md\:divider-horizontal { + @media (width >= 48rem) { + @layer daisyui.l1.l2 { + --divider-m: 0 1rem; + &.divider { + height: auto; + width: calc(0.25rem * 4); + flex-direction: column; + &:before { + height: 100%; + width: calc(0.25rem * 0.5); + } + &:after { + height: 100%; + width: calc(0.25rem * 0.5); + } + } + } + } + } + .md\:w-1\/2 { + @media (width >= 48rem) { + width: calc(1 / 2 * 100%); + } + } + .md\:basis-\[200px\] { + @media (width >= 48rem) { + flex-basis: 200px; + } + } + .md\:flex-row { + @media (width >= 48rem) { + flex-direction: row; + } + } + .md\:gap-4 { + @media (width >= 48rem) { + gap: calc(var(--spacing) * 4); + } + } + .md\:px-0 { + @media (width >= 48rem) { + padding-inline: 0; + } + } + .lg\:col-span-2 { + @media (width >= 64rem) { + grid-column: span 2 / span 2; + } + } + .lg\:mt-8 { + @media (width >= 64rem) { + margin-top: calc(var(--spacing) * 8); + } + } + .lg\:mt-12 { + @media (width >= 64rem) { + margin-top: calc(var(--spacing) * 12); + } + } + .lg\:block { + @media (width >= 64rem) { + display: block; + } + } + .lg\:flex { + @media (width >= 64rem) { + display: flex; + } + } + .lg\:grid { + @media (width >= 64rem) { + display: grid; + } + } + .lg\:w-1\/3 { + @media (width >= 64rem) { + width: calc(1 / 3 * 100%); + } + } + .lg\:basis-\[300px\] { + @media (width >= 64rem) { + flex-basis: 300px; + } + } + .lg\:grid-cols-4 { + @media (width >= 64rem) { + grid-template-columns: repeat(4, minmax(0, 1fr)); + } + } + .lg\:flex-col { + @media (width >= 64rem) { + flex-direction: column; + } + } + .lg\:items-end { + @media (width >= 64rem) { + align-items: flex-end; + } + } + .xl\:w-1\/4 { + @media (width >= 80rem) { + width: calc(1 / 4 * 100%); + } + } + .dark\:border { + &:where(.dark, .dark *) { + border-style: var(--tw-border-style); + border-width: 1px; + } + } + .dark\:border-b { + &:where(.dark, .dark *) { + border-bottom-style: var(--tw-border-style); + border-bottom-width: 1px; + } + } + .dark\:border-base-content\/30 { + &:where(.dark, .dark *) { + border-color: var(--color-base-content); + @supports (color: color-mix(in lab, red, red)) { + border-color: color-mix(in oklab, var(--color-base-content) 30%, transparent); + } + } + } + .dark\:border-base-content\/60 { + &:where(.dark, .dark *) { + border-color: var(--color-base-content); + @supports (color: color-mix(in lab, red, red)) { + border-color: color-mix(in oklab, var(--color-base-content) 60%, transparent); + } + } + } + .dark\:bg-base-content { + &:where(.dark, .dark *) { + background-color: var(--color-base-content); + } + } + .dark\:prose-invert { + &:where(.dark, .dark *) { + --tw-prose-body: var(--tw-prose-invert-body); + --tw-prose-headings: var(--tw-prose-invert-headings); + --tw-prose-lead: var(--tw-prose-invert-lead); + --tw-prose-links: var(--tw-prose-invert-links); + --tw-prose-bold: var(--tw-prose-invert-bold); + --tw-prose-counters: var(--tw-prose-invert-counters); + --tw-prose-bullets: var(--tw-prose-invert-bullets); + --tw-prose-hr: var(--tw-prose-invert-hr); + --tw-prose-quotes: var(--tw-prose-invert-quotes); + --tw-prose-quote-borders: var(--tw-prose-invert-quote-borders); + --tw-prose-captions: var(--tw-prose-invert-captions); + --tw-prose-kbd: var(--tw-prose-invert-kbd); + --tw-prose-kbd-shadows: var(--tw-prose-invert-kbd-shadows); + --tw-prose-code: var(--tw-prose-invert-code); + --tw-prose-pre-code: var(--tw-prose-invert-pre-code); + --tw-prose-pre-bg: var(--tw-prose-invert-pre-bg); + --tw-prose-th-borders: var(--tw-prose-invert-th-borders); + --tw-prose-td-borders: var(--tw-prose-invert-td-borders); + } + } + .\[\&_a\]\:font-medium { + & a { + --tw-font-weight: var(--font-weight-medium); + font-weight: var(--font-weight-medium); + } + } + .\[\&_a\]\:underline { + & a { + text-decoration-line: underline; + } + } + .\[\&_ion-icon\]\:text-lg { + & ion-icon { + font-size: var(--text-lg); + line-height: var(--tw-leading, var(--text-lg--line-height)); + } + } +} +html { + scroll-behavior: smooth; +} +#disqus_thread iframe[src*='ads-iframe'] { + display: none; +} +#dream-global-bg { + position: fixed; + top: 0; + left: 0; + width: 100vw; + height: 100vh; + background-position: center; + background-size: cover; + z-index: -1; +} +.flip-container { + width: 100vw; + height: calc(100vh - 80px - 2rem); + max-width: 100%; + perspective: 1000px; + &.flip-it { + .flipper { + transform: rotateY(180deg); + } + .front { + overflow: hidden; + } + .back { + transform: translateX(0) rotateY(180deg); + } + } + .flipper { + position: relative; + width: 100%; + height: 100%; + transform-style: preserve-3d; + transition: transform 0.75s; + } + .front, .back { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + backface-visibility: hidden; + transition: transform 0.75s; + } + .front { + transform: rotateY(0deg); + } + .back { + transform: translateX(-25%) rotateY(180deg); + } +} +#TableOfContents { + position: sticky; + top: calc(var(--spacing) * 24); + max-height: calc(100vh - 7rem); + overflow-y: auto; + max-width: 100%; +} +@supports (-moz-appearance: none) { + #TableOfContents { + position: initial; + } +} +#TableOfContents ul { + @layer daisyui.l1.l2.l3 { + display: flex; + width: fit-content; + flex-direction: column; + flex-wrap: wrap; + padding: calc(0.25rem * 2); + --menu-active-fg: var(--color-neutral-content); + --menu-active-bg: var(--color-neutral); + font-size: 0.875rem; + :where(li ul, li menu) { + position: relative; + margin-inline-start: calc(0.25rem * 4); + padding-inline-start: calc(0.25rem * 2); + white-space: nowrap; + &:before { + position: absolute; + inset-inline-start: calc(0.25rem * 0); + top: calc(0.25rem * 3); + bottom: calc(0.25rem * 3); + background-color: var(--color-base-content); + opacity: 10%; + width: var(--border); + content: ""; + } + } + :where(li > .menu-dropdown:not(.menu-dropdown-show)) { + display: none; + } + :where(li:not(.menu-title) > *:not(ul, menu, details, .menu-title, .btn)), :where(li:not(.menu-title) > details > summary:not(.menu-title)) { + display: grid; + grid-auto-flow: column; + align-content: flex-start; + align-items: center; + gap: calc(0.25rem * 2); + border-radius: var(--radius-field); + padding-inline: calc(0.25rem * 3); + padding-block: calc(0.25rem * 1.5); + text-align: start; + transition-property: color, background-color, box-shadow; + transition-duration: 0.2s; + transition-timing-function: cubic-bezier(0, 0, 0.2, 1); + grid-auto-columns: minmax(auto, max-content) auto max-content; + user-select: none; + } + :where(li > details > summary) { + --tw-outline-style: none; + outline-style: none; + @media (forced-colors: active) { + outline: 2px solid transparent; + outline-offset: 2px; + } + &::-webkit-details-marker { + display: none; + } + } + :where(li > details > summary), :where(li > .menu-dropdown-toggle) { + &:after { + justify-self: flex-end; + display: block; + height: 0.375rem; + width: 0.375rem; + rotate: -135deg; + translate: 0 -1px; + transition-property: rotate, translate; + transition-duration: 0.2s; + content: ""; + transform-origin: 50% 50%; + box-shadow: 2px 2px inset; + pointer-events: none; + } + } + details { + overflow: hidden; + interpolate-size: allow-keywords; + } + details::details-content { + block-size: 0; + @media (prefers-reduced-motion: no-preference) { + transition-behavior: allow-discrete; + transition-property: block-size, content-visibility; + transition-duration: 0.2s; + transition-timing-function: cubic-bezier(0, 0, 0.2, 1); + } + } + details[open]::details-content { + block-size: auto; + } + :where(li > details[open] > summary):after, :where(li > .menu-dropdown-toggle.menu-dropdown-show):after { + rotate: 45deg; + translate: 0 1px; + } + :where(li:not(.menu-title, .disabled) > *:not(ul, menu, details, .menu-title), li:not(.menu-title, .disabled) > details > summary:not(.menu-title) ):not(.menu-active, :active, .btn) { + &.menu-focus, &:focus-visible { + cursor: pointer; + background-color: var(--color-base-content); + @supports (color: color-mix(in lab, red, red)) { + background-color: color-mix(in oklab, var(--color-base-content) 10%, transparent); + } + color: var(--color-base-content); + --tw-outline-style: none; + outline-style: none; + @media (forced-colors: active) { + outline: 2px solid transparent; + outline-offset: 2px; + } + } + } + :where(li:not(.menu-title, .disabled) > *:not(ul, menu, details, .menu-title):not(.menu-active, :active, .btn):hover, li:not(.menu-title, .disabled) > details > summary:not(.menu-title):not(.menu-active, :active, .btn):hover ) { + cursor: pointer; + background-color: var(--color-base-content); + @supports (color: color-mix(in lab, red, red)) { + background-color: color-mix(in oklab, var(--color-base-content) 10%, transparent); + } + --tw-outline-style: none; + outline-style: none; + @media (forced-colors: active) { + outline: 2px solid transparent; + outline-offset: 2px; + } + box-shadow: 0 1px oklch(0% 0 0 / 0.01) inset, 0 -1px oklch(100% 0 0 / 0.01) inset; + } + :where(li:empty) { + background-color: var(--color-base-content); + opacity: 10%; + margin: 0.5rem 1rem; + height: 1px; + } + :where(li) { + position: relative; + display: flex; + flex-shrink: 0; + flex-direction: column; + flex-wrap: wrap; + align-items: stretch; + .badge { + justify-self: flex-end; + } + & > *:not(ul, menu, .menu-title, details, .btn):active, & > *:not(ul, menu, .menu-title, details, .btn).menu-active, & > details > summary:active { + --tw-outline-style: none; + outline-style: none; + @media (forced-colors: active) { + outline: 2px solid transparent; + outline-offset: 2px; + } + color: var(--menu-active-fg); + background-color: var(--menu-active-bg); + background-size: auto, calc(var(--noise) * 100%); + background-image: none, var(--fx-noise); + &:not(&:active) { + box-shadow: 0 2px calc(var(--depth) * 3px) -2px var(--menu-active-bg); + } + } + &.menu-disabled, [disabled] { + pointer-events: none; + color: var(--color-base-content); + @supports (color: color-mix(in lab, red, red)) { + color: color-mix(in oklab, var(--color-base-content) 20%, transparent); + } + } + } + .dropdown:focus-within { + .menu-dropdown-toggle:after { + rotate: 45deg; + translate: 0 1px; + } + } + .dropdown-content { + margin-top: calc(0.25rem * 2); + padding: calc(0.25rem * 2); + &:before { + display: none; + } + } + } + @layer daisyui.l1.l2 { + :where(li:not(.menu-title) > *:not(ul, menu, details, .menu-title)), :where(li:not(.menu-title) > details > summary:not(.menu-title)) { + border-radius: var(--radius-field); + padding-inline: calc(0.25rem * 2.5); + padding-block: 0.25rem; + font-size: 0.75rem; + } + .menu-title { + padding-inline: calc(0.25rem * 3); + padding-block: calc(0.25rem * 2); + } + } +} +.mermaid-panzoom { + position: relative; + border-radius: var(--radius-box); + border-style: var(--tw-border-style); + border-width: 1px; + border-color: transparent; +} +.mermaid-panzoom:hover, .mermaid-panzoom:focus-within { + border-color: var(--color-base-300); +} +.mermaid-panzoom > .mermaid { + overflow: hidden; +} +.mermaid-panzoom-reset { + pointer-events: none; + position: absolute; + right: calc(var(--spacing) * 2); + bottom: calc(var(--spacing) * 2); + z-index: 1; + opacity: 0%; + transition-property: opacity; + transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); + transition-duration: var(--tw-duration, var(--default-transition-duration)); + --tw-duration: 150ms; + transition-duration: 150ms; + --tw-ease: var(--ease-in-out); + transition-timing-function: var(--ease-in-out); +} +.mermaid-panzoom:hover .mermaid-panzoom-reset, .mermaid-panzoom:focus-within .mermaid-panzoom-reset { + pointer-events: auto; + opacity: 100%; +} +.dream-alert { + > .heading { + display: flex; + align-items: center; + gap: var(--spacing); + font-size: var(--text-sm); + line-height: var(--tw-leading, var(--text-sm--line-height)); + --tw-font-weight: var(--font-weight-medium); + font-weight: var(--font-weight-medium); + } + &.note { + border-inline-start-color: var(--color-blue-600); + &:where(.dark, .dark *) { + border-inline-start-color: var(--color-blue-500); + } + .heading { + color: var(--color-blue-600); + &:where(.dark, .dark *) { + color: var(--color-blue-500); + } + } + } + &.tip { + border-inline-start-color: var(--color-green-600); + &:where(.dark, .dark *) { + border-inline-start-color: var(--color-green-500); + } + .heading { + color: var(--color-green-600); + &:where(.dark, .dark *) { + color: var(--color-green-500); + } + } + } + &.important { + border-inline-start-color: var(--color-purple-600); + &:where(.dark, .dark *) { + border-inline-start-color: var(--color-purple-500); + } + .heading { + color: var(--color-purple-600); + &:where(.dark, .dark *) { + color: var(--color-purple-500); + } + } + } + &.warning { + border-inline-start-color: var(--color-yellow-600); + &:where(.dark, .dark *) { + border-inline-start-color: var(--color-yellow-500); + } + .heading { + color: var(--color-yellow-600); + &:where(.dark, .dark *) { + color: var(--color-yellow-500); + } + } + } + &.caution { + border-inline-start-color: var(--color-red-600); + &:where(.dark, .dark *) { + border-inline-start-color: var(--color-red-500); + } + .heading { + color: var(--color-red-600); + &:where(.dark, .dark *) { + color: var(--color-red-500); + } + } + } +} +@layer base { + :where(:root),:root:has(input.theme-controller[value=emerald]:checked),[data-theme=emerald] { + color-scheme: light; + --color-base-100: oklch(100% 0 0); + --color-base-200: oklch(93% 0 0); + --color-base-300: oklch(86% 0 0); + --color-base-content: oklch(35.519% 0.032 262.988); + --color-primary: oklch(76.662% 0.135 153.45); + --color-primary-content: oklch(33.387% 0.04 162.24); + --color-secondary: oklch(61.302% 0.202 261.294); + --color-secondary-content: oklch(100% 0 0); + --color-accent: oklch(72.772% 0.149 33.2); + --color-accent-content: oklch(0% 0 0); + --color-neutral: oklch(35.519% 0.032 262.988); + --color-neutral-content: oklch(98.462% 0.001 247.838); + --color-info: oklch(72.06% 0.191 231.6); + --color-info-content: oklch(0% 0 0); + --color-success: oklch(64.8% 0.15 160); + --color-success-content: oklch(0% 0 0); + --color-warning: oklch(84.71% 0.199 83.87); + --color-warning-content: oklch(0% 0 0); + --color-error: oklch(71.76% 0.221 22.18); + --color-error-content: oklch(0% 0 0); + --radius-selector: 1rem; + --radius-field: 0.5rem; + --radius-box: 1rem; + --size-selector: 0.25rem; + --size-field: 0.25rem; + --border: 1px; + --depth: 0; + --noise: 0; + } +} +@layer base { + @media (prefers-color-scheme: dark) { + :root:not([data-theme]) { + color-scheme: dark; + --color-base-100: oklch(20.84% 0.008 17.911); + --color-base-200: oklch(18.522% 0.007 17.911); + --color-base-300: oklch(16.203% 0.007 17.911); + --color-base-content: oklch(83.768% 0.001 17.911); + --color-primary: oklch(68.628% 0.185 148.958); + --color-primary-content: oklch(0% 0 0); + --color-secondary: oklch(69.776% 0.135 168.327); + --color-secondary-content: oklch(13.955% 0.027 168.327); + --color-accent: oklch(70.628% 0.119 185.713); + --color-accent-content: oklch(14.125% 0.023 185.713); + --color-neutral: oklch(30.698% 0.039 171.364); + --color-neutral-content: oklch(86.139% 0.007 171.364); + --color-info: oklch(72.06% 0.191 231.6); + --color-info-content: oklch(0% 0 0); + --color-success: oklch(64.8% 0.15 160); + --color-success-content: oklch(0% 0 0); + --color-warning: oklch(84.71% 0.199 83.87); + --color-warning-content: oklch(0% 0 0); + --color-error: oklch(71.76% 0.221 22.18); + --color-error-content: oklch(0% 0 0); + --radius-selector: 1rem; + --radius-field: 2rem; + --radius-box: 1rem; + --size-selector: 0.25rem; + --size-field: 0.25rem; + --border: 1px; + --depth: 0; + --noise: 0; + } + } +} +@layer base { + :root:has(input.theme-controller[value=emerald]:checked),[data-theme=emerald] { + color-scheme: light; + --color-base-100: oklch(100% 0 0); + --color-base-200: oklch(93% 0 0); + --color-base-300: oklch(86% 0 0); + --color-base-content: oklch(35.519% 0.032 262.988); + --color-primary: oklch(76.662% 0.135 153.45); + --color-primary-content: oklch(33.387% 0.04 162.24); + --color-secondary: oklch(61.302% 0.202 261.294); + --color-secondary-content: oklch(100% 0 0); + --color-accent: oklch(72.772% 0.149 33.2); + --color-accent-content: oklch(0% 0 0); + --color-neutral: oklch(35.519% 0.032 262.988); + --color-neutral-content: oklch(98.462% 0.001 247.838); + --color-info: oklch(72.06% 0.191 231.6); + --color-info-content: oklch(0% 0 0); + --color-success: oklch(64.8% 0.15 160); + --color-success-content: oklch(0% 0 0); + --color-warning: oklch(84.71% 0.199 83.87); + --color-warning-content: oklch(0% 0 0); + --color-error: oklch(71.76% 0.221 22.18); + --color-error-content: oklch(0% 0 0); + --radius-selector: 1rem; + --radius-field: 0.5rem; + --radius-box: 1rem; + --size-selector: 0.25rem; + --size-field: 0.25rem; + --border: 1px; + --depth: 0; + --noise: 0; + } +} +@layer base { + :root:has(input.theme-controller[value=forest]:checked),[data-theme=forest] { + color-scheme: dark; + --color-base-100: oklch(20.84% 0.008 17.911); + --color-base-200: oklch(18.522% 0.007 17.911); + --color-base-300: oklch(16.203% 0.007 17.911); + --color-base-content: oklch(83.768% 0.001 17.911); + --color-primary: oklch(68.628% 0.185 148.958); + --color-primary-content: oklch(0% 0 0); + --color-secondary: oklch(69.776% 0.135 168.327); + --color-secondary-content: oklch(13.955% 0.027 168.327); + --color-accent: oklch(70.628% 0.119 185.713); + --color-accent-content: oklch(14.125% 0.023 185.713); + --color-neutral: oklch(30.698% 0.039 171.364); + --color-neutral-content: oklch(86.139% 0.007 171.364); + --color-info: oklch(72.06% 0.191 231.6); + --color-info-content: oklch(0% 0 0); + --color-success: oklch(64.8% 0.15 160); + --color-success-content: oklch(0% 0 0); + --color-warning: oklch(84.71% 0.199 83.87); + --color-warning-content: oklch(0% 0 0); + --color-error: oklch(71.76% 0.221 22.18); + --color-error-content: oklch(0% 0 0); + --radius-selector: 1rem; + --radius-field: 2rem; + --radius-box: 1rem; + --size-selector: 0.25rem; + --size-field: 0.25rem; + --border: 1px; + --depth: 0; + --noise: 0; + } +} +@layer base { + @property --radialprogress { + syntax: ""; + inherits: true; + initial-value: 0%; + } + @property --aura-angle { + syntax: ""; + inherits: false; + initial-value: 0deg; + } +} +@layer base { + :root { + scrollbar-color: currentColor #0000; + @supports (color: color-mix(in lab, red, red)) { + scrollbar-color: color-mix(in oklch, currentColor 35%, #0000) #0000; + } + } +} +@layer base { + :root { + --fx-noise: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'%3E%3Cfilter id='a'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.34' numOctaves='4' stitchTiles='stitch'%3E%3C/feTurbulence%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23a)' opacity='0.2'%3E%3C/rect%3E%3C/svg%3E"); + } +} +@layer base { + :root { + --page-scroll-lock: initial; + --page-overflow: var(--page-scroll-lock) hidden; + } + :root:not(span) { + overflow: var(--page-overflow); + } +} +@layer base { + :root { + --page-has-backdrop: var(--page-scroll-lock) 1; + --page-scroll-bg: var(--page-scroll-lock) + var(--root-bg, #0000); + @supports (color: color-mix(in lab, red, red)) { + --page-scroll-bg: var(--page-scroll-lock) + color-mix(in srgb, var(--root-bg, #0000), oklch(0% 0 0) calc(var(--page-has-backdrop, 0) * 40%)); + } + background-image: var(--page-scroll-lock) linear-gradient(var(--root-bg, #0000), var(--root-bg, #0000)); + transition: var(--page-scroll-lock) background-color 0.3s ease-out; + animation: var(--page-scroll-lock) set-page-has-scroll forwards; + animation-timeline: var(--page-scroll-lock) scroll(); + --page-has-scroll: initial; + scrollbar-gutter: var(--page-has-scroll) var(--page-scroll-lock) stable; + } + @keyframes set-page-has-scroll { + 0%, to { + --page-has-scroll: ; + } + } +} +@layer base { + :root, [data-theme] { + background-color: var(--root-bg); + color: var(--color-base-content); + } + :root { + background-color: var(--page-scroll-bg, var(--root-bg)); + } + :where(:root, [data-theme]) { + --root-bg: var(--color-base-100); + } +} +@keyframes dropdown { + 0% { + opacity: 0; + } +} +@keyframes rotator { + 89.9999%, 100% { + --first-item-position: 0 0%; + } + 90%, 99.9999% { + --first-item-position: 0 calc(var(--items) * 100%); + } + 100% { + translate: 0 -100%; + } +} +@keyframes radio { + 0% { + padding: 5px; + } + 50% { + padding: 3px; + } +} +@keyframes toast { + 0% { + scale: 0.9; + opacity: 0; + } + 100% { + scale: 1; + opacity: 1; + } +} +@keyframes skeleton { + 0% { + background-position: 150%; + } + 100% { + background-position: -50%; + } +} +@keyframes progress { + 50% { + background-position-x: -115%; + } +} +@keyframes rating { + 0%, 40% { + scale: 1.1; + filter: brightness(1.05) contrast(1.05); + } +} +@keyframes aura { + to { + --aura-angle: 360deg; + transform: translateZ(1px); + } +} +@keyframes aura-glow { + 20%, 80% { + opacity: 0.7; + filter: blur(0.25rem); + } + 50% { + opacity: 1; + filter: blur(0.75rem); + } +} +@keyframes aura-glow-after { + 20%, 80% { + opacity: 0.3; + filter: blur(1rem); + } + 50% { + opacity: 0.6; + filter: blur(1.5rem); + } +} +@keyframes menu { + 0% { + opacity: 0; + } +} +@property --tw-space-y-reverse { + syntax: "*"; + inherits: false; + initial-value: 0; +} +@property --tw-border-style { + syntax: "*"; + inherits: false; + initial-value: solid; +} +@property --tw-font-weight { + syntax: "*"; + inherits: false; +} +@property --tw-shadow { + syntax: "*"; + inherits: false; + initial-value: 0 0 #0000; +} +@property --tw-shadow-color { + syntax: "*"; + inherits: false; +} +@property --tw-shadow-alpha { + syntax: ""; + inherits: false; + initial-value: 100%; +} +@property --tw-inset-shadow { + syntax: "*"; + inherits: false; + initial-value: 0 0 #0000; +} +@property --tw-inset-shadow-color { + syntax: "*"; + inherits: false; +} +@property --tw-inset-shadow-alpha { + syntax: ""; + inherits: false; + initial-value: 100%; +} +@property --tw-ring-color { + syntax: "*"; + inherits: false; +} +@property --tw-ring-shadow { + syntax: "*"; + inherits: false; + initial-value: 0 0 #0000; +} +@property --tw-inset-ring-color { + syntax: "*"; + inherits: false; +} +@property --tw-inset-ring-shadow { + syntax: "*"; + inherits: false; + initial-value: 0 0 #0000; +} +@property --tw-ring-inset { + syntax: "*"; + inherits: false; +} +@property --tw-ring-offset-width { + syntax: ""; + inherits: false; + initial-value: 0px; +} +@property --tw-ring-offset-color { + syntax: "*"; + inherits: false; + initial-value: #fff; +} +@property --tw-ring-offset-shadow { + syntax: "*"; + inherits: false; + initial-value: 0 0 #0000; +} +@property --tw-content { + syntax: "*"; + initial-value: ""; + inherits: false; +} +@property --tw-duration { + syntax: "*"; + inherits: false; +} +@property --tw-ease { + 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-space-y-reverse: 0; + --tw-border-style: solid; + --tw-font-weight: initial; + --tw-shadow: 0 0 #0000; + --tw-shadow-color: initial; + --tw-shadow-alpha: 100%; + --tw-inset-shadow: 0 0 #0000; + --tw-inset-shadow-color: initial; + --tw-inset-shadow-alpha: 100%; + --tw-ring-color: initial; + --tw-ring-shadow: 0 0 #0000; + --tw-inset-ring-color: initial; + --tw-inset-ring-shadow: 0 0 #0000; + --tw-ring-inset: initial; + --tw-ring-offset-width: 0px; + --tw-ring-offset-color: #fff; + --tw-ring-offset-shadow: 0 0 #0000; + --tw-content: ""; + --tw-duration: initial; + --tw-ease: initial; + } + } +} diff --git a/packages/hugo-theme-dream/res/js/init.js b/packages/hugo-theme-dream/res/js/init.js new file mode 100644 index 00000000..99a0a07a --- /dev/null +++ b/packages/hugo-theme-dream/res/js/init.js @@ -0,0 +1 @@ +(()=>{try{const saved=localStorage.getItem('dream-native-theme');const dark=saved?saved==='forest':matchMedia('(prefers-color-scheme:dark)').matches;document.documentElement.dataset.theme=dark?'forest':'emerald';document.documentElement.classList.toggle('dark',dark)}catch(e){}})(); \ No newline at end of file diff --git a/packages/hugo-theme-dream/res/js/theme.js b/packages/hugo-theme-dream/res/js/theme.js new file mode 100644 index 00000000..0feddcb0 --- /dev/null +++ b/packages/hugo-theme-dream/res/js/theme.js @@ -0,0 +1 @@ +(()=>{const palette=document.querySelector('#dark-mode-toggle');if(palette){palette.hidden=false;palette.onclick=()=>{const dark=document.documentElement.dataset.theme!=='forest';document.documentElement.dataset.theme=dark?'forest':'emerald';document.documentElement.classList.toggle('dark',dark);try{localStorage.setItem('dream-native-theme',dark?'forest':'emerald')}catch(e){}}}const flip=document.querySelector('#dream-flip'),front=document.querySelector('#dream-front'),back=document.querySelector('#dream-about');if(flip&&front&&back){flip.hidden=false;flip.onclick=()=>{const show=back.hidden;front.hidden=show;front.inert=show;back.hidden=!show;back.inert=!show;flip.setAttribute('aria-expanded',String(show));flip.textContent=show?'返回文章':'关于 / 翻面';const face=show?back:front;face.classList.add('flip-enter');face.addEventListener('animationend',()=>face.classList.remove('flip-enter'),{once:true});face.focus({preventScroll:true})}}const content=document.querySelector('.prose'),toc=document.querySelector('#TableOfContents');if(!content||!toc)return;const hs=[...content.querySelectorAll('h2,h3')];if(!hs.length)return;const used=new Set([...document.querySelectorAll('[id]')].map(e=>e.id)),list=document.createElement('ul');list.className='toc-list';hs.forEach((h,i)=>{if(!h.id){let id='dream-heading-'+i;while(used.has(id))id+='-';h.id=id;used.add(id)}const li=document.createElement('li'),a=document.createElement('a');if(h.tagName==='H3')li.className='nested';a.href='#'+encodeURIComponent(h.id);a.textContent=h.textContent;li.append(a);list.append(li)});toc.append(list);toc.hidden=false})(); \ No newline at end of file diff --git a/packages/hugo-theme-dream/res/licenses/DaisyUI5.6.17-MIT.txt b/packages/hugo-theme-dream/res/licenses/DaisyUI5.6.17-MIT.txt new file mode 100644 index 00000000..232b9a3f --- /dev/null +++ b/packages/hugo-theme-dream/res/licenses/DaisyUI5.6.17-MIT.txt @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Pouya Saadeghi + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/packages/hugo-theme-dream/res/licenses/Tailwind4.3.2-MIT.txt b/packages/hugo-theme-dream/res/licenses/Tailwind4.3.2-MIT.txt new file mode 100644 index 00000000..d6a82290 --- /dev/null +++ b/packages/hugo-theme-dream/res/licenses/Tailwind4.3.2-MIT.txt @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) Tailwind Labs, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/packages/hugo-theme-dream/res/licenses/TailwindTypography0.5.20-MIT.txt b/packages/hugo-theme-dream/res/licenses/TailwindTypography0.5.20-MIT.txt new file mode 100644 index 00000000..d6a82290 --- /dev/null +++ b/packages/hugo-theme-dream/res/licenses/TailwindTypography0.5.20-MIT.txt @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) Tailwind Labs, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/packages/hugo-theme-dream/screenshot.png b/packages/hugo-theme-dream/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..c884c6db58592531e37be7a5899b12a13f88e77a GIT binary patch literal 120135 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%0A03FGm> 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

CxA)f_uhO%g~y=xsDm1Kr5ftW&t#DYq55X7)B!O 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%0AO>KoqbjKeYb+!VE)Zj>FaC zMDt?r@f9sO#Jf(~Nb?F(p;2&V-~&Y&r^qhV7nspf@GzmysQ+5@{vxo=bVNj=&iEKNo>x`-I{BrCn3_`k2Ewb z@EgD)QXGuoRWcUrbnagOxk|=S6PXO}Rg&l{cp&xFy5QS4ICL-Q>xJaTGJDFL)mPA4 z!5f?RE*vCD|GtK*tXqovtWr}_CaWYjRhWZ)SaJ8%4E;=+#?NkP@Y)_!a|$@|$~p!q z@aaopRCsq$8Oh`)o2!mLApRlZ&#W+MED!=2Ae2D*jpu|MlyhLz5o*0|DK%EMEhd)Ky4dIc$4`4M{S~hCSecfY0_PfgI6!W93KWu}Ga^ubEB72Pz7MsnI z%V=dc?@Sq*kq3O2QbY-sEHh7|hh0Wpnu_DC>r988UEf2ttKdQ*BNj$+?rz3R;90b4 ztfpUm7V%#N>|yJfLWru8L0fr0!kdQbu-5JU^jL*ymAgUS*r?97%*IXsG$7xlYnPt^img?5@B3uRD}aFSz_ep%dc zy-9U#r^w#DEo<`=AirJT$v;1k=cxVWgGVMEz9McDyyG>*hXXF<$v7mtFZnY_@S2>7k;DPBC^fh8v2~ zCC?-*%Y~?kl)9}{saWGT@?y#RgfmFDb)q_-$`@H&Dm&yQ)tE&*yj8epP+^iywi}dZ zMKka>To;>tmR_7ksUJHgfvs3vg{Yi3evzp!FpXOo_YpT0eHij0i9=fW#Il_= zaC9@6XRsF7&Dlv%TbUS($|nxu9?+LXmKJxAPUr!6UgVPbb3O)W>LIm}BOO!{JGsC) zA~A8LGZVv_=}7g-t4nW9pf)tec_N9B--tRIHln)@upjI2&NyT?p{#2t5eIC2ebA-+ z+UfU*K)bV>lf{$bGXbNOZ+-yW@XD2}JvawcQ^~nK$Kc1dFW8Ey)yDmq+uA!pz7G;B z6%2U^5MuZedrYxNQ>RFFE=_~DeRm|QtVKyiwx%xL>+)AY2qv_F+A$@0_U!EZ^P=>@>ma5}-wOZiK<$}G@djx~$ z23c`Rq>YAaavUbfUbpuP`#AA>1`XoX^xd{>5m}QAFmHHMN%Af6${&F0!8C=`F3~OE zbwP0t`INF7tyLoo2Da~9$#p@p`2Cah3B<_xU~K&A`?a2F8`|ZdfPes%!9*G7xfhQl zE-NV={i5z=UwUU^GrA>yR?A)Su(1!W>xB_ZZ;F8xk8Dq|5}RtZNbizHO3^_?JH*_h%CWwZ_F-xii84Jaz#&7f^_=zYpXnMWv)X*;;A+K>mQ z2RBM(w61hSBiHG{^_V0v`FteeHyogvvIL98^!Hu`7+{1sKTt2K~<1_=ogdFB?0dphjP+HW^hYKoDamquoN z-qnNq1@i3=7jh{i*9pNnJ+-FB7ImNXeo&HP+C$S(<(T57J*0C-l$0bG)83J_XfwO} z;~_iRO0MUD3|%K_A$#J)y5m465Titf-SdM=A4Nox-~Wn7z$S_A*8Eeom?1Dguvqr% zPb1}reN=NJbc+5enTtAFVDKn=(msT6imY$s`ZJp`^y5}W`~v*=)y?Oo&PmV}cz~gN zx?3A(Af#^q9ndLF(A$Aycxh^;g(+i)Bsg2PZtKjpOm&`t=B;X@E^2JI(GcMdOE?ltpp28yk8_brvB)*_@2IICpjy8H2blCw3gI z{sM3^IzGmF6rGgdNi|!-`%HxsNnQs|JA^EI05qKfVXQ|VCTlgX6bMRYWxFbe+T=x~QZ-dg1*juzGBCx-IV=QWU8}r7+tuPht zm-4yso>n^{Tf@os9*we5%=qaM2$s9ZpM`msP87Frgwu`S+M<1@Nv7{4b%>~ z@)&F5Q?`=<% block('title',()=>{ %>搜索 - <%= site.title() %><% }) %><% block('content',()=>{ %>

<% }) %> \ No newline at end of file diff --git a/packages/hugo-theme-dream/tag.eta b/packages/hugo-theme-dream/tag.eta new file mode 100644 index 00000000..be89f1cc --- /dev/null +++ b/packages/hugo-theme-dream/tag.eta @@ -0,0 +1,6 @@ +<% layout('./layout'); const site = await firekylin.widget('Widget_Options'); const metas = await firekylin.widget('Widget_Metas_Tag_Cloud'); %> +<% block('title', () => { %>标签 - <%= site.title() %><% }) %> +<% block('content', () => { %>

标签

<% if (!metas.have()) { %>

暂无标签。

<% } %>
<% }) %> diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index bc3c9107..f7fdbccf 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -137,6 +137,8 @@ importers: packages/hugo-theme-hulga: {} + packages/hugo-theme-dream: {} + packages/academic-cv: {} packages/solo: {} diff --git a/test/hugo-theme-dream.test.js b/test/hugo-theme-dream.test.js new file mode 100644 index 00000000..ecb3d39d --- /dev/null +++ b/test/hugo-theme-dream.test.js @@ -0,0 +1,12 @@ +'use strict'; +const test=require('node:test'),assert=require('node:assert/strict'); +const {render,pages}=require('./port-fixture'); +for(const page of pages)test('Dream '+page+' renders populated and empty Widgets',async()=>{for(const empty of [false,true]){const html=await render('hugo-theme-dream',page,{empty});assert.match(html,/Dream/);assert(!html.includes('undefined'));}}); +test('Dream escapes titles, rejects active cover URLs, preserves protected body',async()=>{const html=await render('hugo-theme-dream','index',{hostile:true,config:{profileName:'',backgroundImage:'javascript:alert(1)'}});assert(!html.includes('{const {context}=require('./port-fixture');const {Eta}=require('eta');const path=require('node:path');for(const [mime,element] of [['image/png','img'],['audio/mpeg','audio'],['video/mp4','video'],['application/pdf',null]]){const ctx=context('hugo-theme-dream','attachment');const archive=await ctx.widget('Widget_Archive');archive.stack[0].options={attachment:{mime,url:'/uploads/file',name:'Download file'}};const html=await new Eta({views:path.join(__dirname,'../packages/hugo-theme-dream'),varName:'firekylin'}).renderAsync('attachment',ctx);assert.match(html,/href="\/uploads\/file" download/);if(element)assert(html.includes('<'+element+' '));}const ctx=context('hugo-theme-dream','attachment');(await ctx.widget('Widget_Archive')).stack[0].options={attachment:{mime:'image/png',url:'javascript:alert(1)'}};const html=await new Eta({views:path.join(__dirname,'../packages/hugo-theme-dream'),varName:'firekylin'}).renderAsync('attachment',ctx);assert(!html.includes('javascript:'));}); + +test('Dream identifies taxonomy',async()=>{for(const [kind,label] of [['cate','随笔'],['tag','生活']]){assert.match(await render('hugo-theme-dream','index',{kind}),new RegExp(']*>'+label+'')); }}); + +test('Dream escapes About text and rejects active avatars',async()=>{const html=await render('hugo-theme-dream','index',{config:{aboutText:'',avatarURL:'javascript:alert(1)'}});assert(!html.includes('