sovereignty over app lifecycle

This commit is contained in:
2025-11-25 10:15:29 +08:00
parent 96bb3ffee2
commit dbf6747c18
20 changed files with 842 additions and 215 deletions

View File

@@ -1,75 +1,76 @@
@import "tailwindcss";
@plugin "daisyui";
@plugin "daisyui/theme" {
name: "proper";
default: true;
prefersdark: false;
color-scheme: "light";
--color-base-100: oklch(96% 0.001 286.375);
--color-base-200: oklch(92% 0.004 286.32);
--color-base-300: oklch(87% 0.006 286.286);
--color-base-content: oklch(44% 0.017 285.786);
--color-primary: oklch(71% 0.143 215.221);
--color-primary-content: oklch(98% 0.019 200.873);
--color-secondary: oklch(67% 0.182 276.935);
--color-secondary-content: oklch(93% 0.034 272.788);
--color-accent: oklch(93% 0.032 255.585);
--color-accent-content: oklch(38% 0.063 188.416);
--color-neutral: oklch(96% 0.001 286.375);
--color-neutral-content: oklch(0% 0 0);
--color-info: oklch(58% 0.158 241.966);
--color-info-content: oklch(100% 0 0);
--color-success: oklch(76% 0.233 130.85);
--color-success-content: oklch(98% 0.031 120.757);
--color-warning: oklch(66% 0.179 58.318);
--color-warning-content: oklch(100% 0 0);
--color-error: oklch(70% 0.191 22.216);
--color-error-content: oklch(100% 0 0);
--radius-selector: 0.5rem;
--radius-field: 0.5rem;
--radius-box: 0.5rem;
--size-selector: 0.25rem;
--size-field: 0.25rem;
--border: 1px;
--depth: 1;
--noise: 1;
name: "proper";
default: true;
prefersdark: false;
color-scheme: "light";
--color-base-100: oklch(96% 0.001 286.375);
--color-base-200: oklch(92% 0.004 286.32);
--color-base-300: oklch(87% 0.006 286.286);
--color-base-content: oklch(44% 0.017 285.786);
--color-primary: oklch(71% 0.143 215.221);
--color-primary-content: oklch(98% 0.019 200.873);
--color-secondary: oklch(67% 0.182 276.935);
--color-secondary-content: oklch(93% 0.034 272.788);
--color-accent: oklch(93% 0.032 255.585);
--color-accent-content: oklch(38% 0.063 188.416);
--color-neutral: oklch(96% 0.001 286.375);
--color-neutral-content: oklch(0% 0 0);
--color-info: oklch(58% 0.158 241.966);
--color-info-content: oklch(100% 0 0);
--color-success: oklch(76% 0.233 130.85);
--color-success-content: oklch(98% 0.031 120.757);
--color-warning: oklch(66% 0.179 58.318);
--color-warning-content: oklch(100% 0 0);
--color-error: oklch(70% 0.191 22.216);
--color-error-content: oklch(100% 0 0);
--radius-selector: 0.5rem;
--radius-field: 0.5rem;
--radius-box: 0.5rem;
--size-selector: 0.25rem;
--size-field: 0.25rem;
--border: 1px;
--depth: 1;
--noise: 1;
}
@plugin "daisyui/theme" {
name: "properdark";
default: false;
prefersdark: true;
color-scheme: "dark";
--color-base-100: oklch(26% 0 0);
--color-base-200: oklch(37% 0 0);
--color-base-300: oklch(43% 0 0);
--color-base-content: oklch(100% 0 0);
--color-primary: oklch(86% 0.127 207.078);
--color-primary-content: oklch(39% 0.07 227.392);
--color-secondary: oklch(87% 0.065 274.039);
--color-secondary-content: oklch(35% 0.144 278.697);
--color-accent: oklch(36.2% 0.076 265.6);
--color-accent-content: oklch(97% 0.014 254.604);
--color-neutral: oklch(37% 0.01 67.558);
--color-neutral-content: oklch(100% 0 0);
--color-info: oklch(64.4% 0.12 237.3);
--color-info-content: oklch(100% 0 0);
--color-success: oklch(76% 0.233 130.85);
--color-success-content: oklch(0% 0 0);
--color-warning: oklch(87% 0.169 91.605);
--color-warning-content: oklch(0% 0 0);
--color-error: oklch(63% 0.237 25.331);
--color-error-content: oklch(100% 0 0);
--radius-selector: 0.5rem;
--radius-field: 0.5rem;
--radius-box: 0.5rem;
--size-selector: 0.25rem;
--size-field: 0.25rem;
--border: 1px;
--depth: 1;
--noise: 1;
}
name: "properdark";
default: false;
prefersdark: true;
color-scheme: "dark";
--color-base-100: oklch(26% 0 0);
--color-base-200: oklch(37% 0 0);
--color-base-300: oklch(43% 0 0);
--color-base-content: oklch(100% 0 0);
--color-primary: oklch(86% 0.127 207.078);
--color-primary-content: oklch(39% 0.07 227.392);
--color-secondary: oklch(87% 0.065 274.039);
--color-secondary-content: oklch(35% 0.144 278.697);
--color-accent: oklch(36.2% 0.076 265.6);
--color-accent-content: oklch(97% 0.014 254.604);
--color-neutral: oklch(37% 0.01 67.558);
--color-neutral-content: oklch(100% 0 0);
--color-info: oklch(64.4% 0.12 237.3);
--color-info-content: oklch(100% 0 0);
--color-success: oklch(76% 0.233 130.85);
--color-success-content: oklch(0% 0 0);
--color-warning: oklch(87% 0.169 91.605);
--color-warning-content: oklch(0% 0 0);
--color-error: oklch(63% 0.237 25.331);
--color-error-content: oklch(100% 0 0);
--radius-selector: 0.5rem;
--radius-field: 0.5rem;
--radius-box: 0.5rem;
--size-selector: 0.25rem;
--size-field: 0.25rem;
--border: 1px;
--depth: 1;
--noise: 1;
}
:root {
background-color: transparent;
}

View File

@@ -1,13 +1,13 @@
<!DOCTYPE html>
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<link rel="icon" href="%sveltekit.assets%/favicon.png" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Friendolls</title>
%sveltekit.head%
</head>
<body data-sveltekit-preload-data="hover">
<div style="display: contents">%sveltekit.body%</div>
</body>
<head>
<meta charset="utf-8" />
<link rel="icon" href="%sveltekit.assets%/favicon.png" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Friendolls</title>
%sveltekit.head%
</head>
<body data-sveltekit-preload-data="hover">
<div style="display: contents">%sveltekit.body%</div>
</body>
</html>

View File

@@ -0,0 +1,7 @@
<script>
let { children } = $props();
</script>
<div class="size-full bg-transparent">
{@render children?.()}
</div>

View File

@@ -3,3 +3,4 @@
// See: https://svelte.dev/docs/kit/single-page-apps
// See: https://v2.tauri.app/start/frontend/sveltekit/ for more info
export const ssr = false;
import "../app.css";

View File

@@ -1,7 +1,3 @@
<script lang="ts">
import "../app.css";
</script>
<main class="card-body">
<button class="btn btn-primary">Hello TailwindCSS!</button>
<button class="btn btn-primary">Hello TailwindCSS!</button>
</main>

View File

@@ -0,0 +1,10 @@
<div class="w-svw h-svh p-4">
<div
class="size-max mx-auto bg-base-100 border-base-200 border px-4 py-3 rounded-xl"
>
<div class="flex flex-col text-center">
<p class="text-xl">Friendolls</p>
<p class="text-sm opacity-50">Scene Screen</p>
</div>
</div>
</div>