Implement restricted-api for JS-driven auth calls, examples added (WIP!). Layout and styling simplified.

This commit is contained in:
2025-12-02 03:10:16 +00:00
parent 2dca6b1eec
commit a62e8ddf1e
18 changed files with 972 additions and 490 deletions
+25 -31
View File
@@ -1,6 +1,5 @@
:root {
color-scheme: light dark;
--font-sans: "Inter", "Inter var", "Segoe UI", system-ui, -apple-system, "Helvetica Neue", sans-serif;
--font-mono: "DM Mono", "JetBrains Mono", "SFMono-Regular", Menlo, Monaco, Consolas, "Liberation Mono", monospace;
--color-canvas: #f5f6f8;
@@ -42,7 +41,6 @@
@media (prefers-color-scheme: dark) {
:root {
color-scheme: dark;
--color-canvas: #0f172a;
--color-surface: #141b2f;
--color-surface-subtle: #1b243b;
@@ -57,13 +55,13 @@
--color-accent-strong: #3b82f6;
--color-accent-contrast: #0b1120;
--color-success-text: #34d399;
--color-success-bg: rgba(34, 197, 94, 0.12);
--color-success-bg: #1a4d2e;
--color-error-text: #fca5a5;
--color-error-bg: rgba(248, 113, 113, 0.16);
--color-error-bg: #4a1f1f;
--color-info-text: #bae6fd;
--color-info-bg: rgba(59, 130, 246, 0.16);
--color-info-bg: #1e3a5f;
--color-danger: #f87171;
--shadow-soft: 0 0 0 rgba(0, 0, 0, 0);
--shadow-soft: 0 0 0 #000000;
}
}
@@ -73,15 +71,16 @@
box-sizing: border-box;
}
html,
body {
html {
height: 100%;
background: var(--color-canvas);
}
body {
height: 100%;
margin: 0;
font-family: var(--font-sans);
background: var(--color-canvas);
background: none;
color: var(--color-text);
line-height: 1.55;
-webkit-font-smoothing: antialiased;
@@ -123,7 +122,6 @@ a:focus-visible {
display: flex;
flex-direction: column;
min-height: 100vh;
background: var(--color-canvas);
}
.app-main {
@@ -136,23 +134,22 @@ a:focus-visible {
flex: 1;
width: 100%;
display: flex;
padding: var(--layout-padding);
box-sizing: border-box;
}
.view-content {
flex: 1;
display: flex;
flex-direction: column;
gap: 2rem;
padding: var(--layout-padding);
box-sizing: border-box;
margin: 0 auto;
width: min(100%, var(--layout-max-width));
}
.view-content--wide {
.view-root--wide {
width: min(100%, 1200px);
}
.view-root--narrow {
max-width: 540px;
}
.view-header {
display: flex;
flex-direction: column;
@@ -232,8 +229,8 @@ button:focus-visible {
}
button:disabled {
opacity: 0.6;
cursor: not-allowed;
filter: opacity(0.6);
}
.btn-primary {
@@ -288,7 +285,7 @@ input:focus-visible,
textarea:focus-visible,
select:focus-visible {
border-color: var(--color-accent);
box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.15);
box-shadow: 0 0 0 3px #c7d2fe;
outline: none;
}
@@ -372,19 +369,19 @@ th {
}
.status.info {
border-color: rgba(14, 96, 155, 0.28);
border-color: #3b82f6;
color: var(--color-info-text);
background: var(--color-info-bg);
}
.status.success {
border-color: rgba(6, 118, 71, 0.22);
border-color: #16a34a;
color: var(--color-success-text);
background: var(--color-success-bg);
}
.status.error {
border-color: rgba(180, 35, 24, 0.28);
border-color: #dc2626;
color: var(--color-error-text);
background: var(--color-error-bg);
}
@@ -392,7 +389,7 @@ th {
.dialog-overlay {
position: fixed;
inset: 0;
background: rgba(9, 14, 24, 0.55);
background: #1e293b;
backdrop-filter: blur(6px);
z-index: 1100;
display: flex;
@@ -568,8 +565,8 @@ th {
}
.btn-card-delete { background: transparent; border: none; color: var(--color-danger); padding: 0.35rem 0.5rem; font-size: 1.05rem; line-height: 1; border-radius: var(--radius-sm); cursor: pointer; display: inline-flex; align-items: center; justify-content: center; }
.btn-card-delete:hover:not(:disabled) { background: rgba(220, 38, 38, 0.08); }
.btn-card-delete:disabled { opacity: 0.4; cursor: not-allowed; }
.btn-card-delete:hover:not(:disabled) { background: #fee; }
.btn-card-delete:disabled { filter: opacity(0.4); cursor: not-allowed; }
.session-emoji {
@@ -653,9 +650,6 @@ th {
@media (max-width: 720px) {
.view-root {
padding: clamp(1rem, 3vw + 0.75rem, 2rem);
}
.view-content {
gap: 1.75rem;
}
@@ -683,7 +677,7 @@ th {
left: 0;
width: 100vw;
height: 100vh;
background: rgba(0, 0, 0, 0.5);
background: #334155;
backdrop-filter: blur(4px);
display: flex;
align-items: center;
@@ -704,7 +698,7 @@ th {
padding: 2rem;
background: var(--color-surface);
border-radius: var(--radius-lg);
box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
box-shadow: 0 20px 60px #1e293b;
border: 1px solid var(--color-border);
}