diff --git a/docs/superpowers/plans/2026-03-18-report-command.md b/docs/superpowers/plans/2026-03-18-report-command.md index cb7f712..145461f 100644 --- a/docs/superpowers/plans/2026-03-18-report-command.md +++ b/docs/superpowers/plans/2026-03-18-report-command.md @@ -1642,14 +1642,15 @@ Create `ui/src/routes/report/+page.svelte`: color: var(--fg); font-size: 0.875rem; font-family: var(--font-mono); - outline: none; - transition: all 0.2s ease; + transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, color 0.2s ease; box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.2); } - .field input:focus, - .field select:focus, - .field textarea:focus { + .field input:focus-visible, + .field select:focus-visible, + .field textarea:focus-visible { + outline: 2px solid var(--accent); + outline-offset: 2px; border-color: var(--accent); box-shadow: 0 0 8px var(--border-glow); } @@ -1726,7 +1727,7 @@ Create `ui/src/routes/report/+page.svelte`: text-transform: uppercase; letter-spacing: 2px; cursor: pointer; - transition: all 0.2s ease; + transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, color 0.2s ease, text-shadow 0.2s ease; text-shadow: var(--text-glow); box-shadow: inset 0 0 10px color-mix(in srgb, var(--accent) 30%, transparent); } @@ -1753,7 +1754,7 @@ Create `ui/src/routes/report/+page.svelte`: text-transform: uppercase; letter-spacing: 1px; cursor: pointer; - transition: all 0.2s ease; + transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease; } .btn:hover { diff --git a/ui/src/app.css b/ui/src/app.css index 230fae2..09a8ead 100644 --- a/ui/src/app.css +++ b/ui/src/app.css @@ -259,6 +259,7 @@ body.theme-8bit-lobster-light:not(.effects-disabled)::after { /* Base Inputs */ input, button, +select, textarea { font-family: inherit; font-size: 0.95em; @@ -267,14 +268,18 @@ textarea { border: 1px solid var(--border); border-radius: var(--radius); padding: 8px 12px; - outline: none; - transition: all 0.2s ease; + transition: border-color 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease, color 0.2s ease; backdrop-filter: blur(4px); text-shadow: var(--text-glow); } -input:focus, -textarea:focus { +input:focus-visible, +select:focus-visible, +textarea:focus-visible, +button:focus-visible, +a:focus-visible { + outline: 2px solid var(--accent); + outline-offset: 2px; border-color: var(--accent); box-shadow: 0 0 8px var(--border-glow); } @@ -349,7 +354,7 @@ button:disabled { a { color: var(--accent); text-decoration: none; - transition: all 0.2s ease; + transition: color 0.2s ease, text-shadow 0.2s ease; text-shadow: 0 0 2px color-mix(in srgb, var(--accent) 50%, transparent); } @@ -364,6 +369,7 @@ body.effects-disabled * { } body.effects-disabled input:focus, +body.effects-disabled select:focus, body.effects-disabled textarea:focus, body.effects-disabled button:hover:not(:disabled) { box-shadow: none !important; @@ -444,3 +450,19 @@ body.effects-disabled button:hover:not(:disabled) { transform: translate(0) } } + +@media (prefers-reduced-motion: reduce) { + *, + *::before, + *::after { + animation-duration: 0.01ms !important; + animation-iteration-count: 1 !important; + transition-duration: 0.01ms !important; + scroll-behavior: auto !important; + } + + body:not(.effects-disabled)::before, + body:not(.effects-disabled)::after { + animation: none !important; + } +} diff --git a/ui/src/lib/components/ChannelList.svelte b/ui/src/lib/components/ChannelList.svelte index 342d350..1d35410 100644 --- a/ui/src/lib/components/ChannelList.svelte +++ b/ui/src/lib/components/ChannelList.svelte @@ -228,7 +228,7 @@ {#if schema?.hasAccounts && isNamedAccount(entry.account)} {entry.account} {/if} - +
@@ -355,7 +355,7 @@ padding: 1rem; margin-bottom: 0.75rem; box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.2); - transition: all 0.2s ease; + transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, color 0.2s ease, transform 0.2s ease, text-shadow 0.2s ease; } .channel-row:hover { @@ -448,8 +448,7 @@ color: var(--fg); font-size: 0.875rem; font-family: var(--font-mono); - outline: none; - transition: all 0.2s ease; + transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, color 0.2s ease, transform 0.2s ease, text-shadow 0.2s ease; box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.2); } @@ -486,7 +485,7 @@ color: var(--fg-dim); font-size: 1rem; cursor: pointer; - transition: all 0.2s ease; + transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, color 0.2s ease, transform 0.2s ease, text-shadow 0.2s ease; } .remove-btn:hover { background: color-mix(in srgb, var(--error, #e55) 15%, transparent); @@ -514,7 +513,7 @@ font-size: 0.8rem; font-family: var(--font-mono); cursor: pointer; - transition: all 0.2s ease; + transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, color 0.2s ease, transform 0.2s ease, text-shadow 0.2s ease; text-transform: uppercase; letter-spacing: 1px; } @@ -552,7 +551,7 @@ text-transform: uppercase; letter-spacing: 1px; cursor: pointer; - transition: all 0.2s ease; + transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, color 0.2s ease, transform 0.2s ease, text-shadow 0.2s ease; } .add-btn:hover { border-color: var(--accent); @@ -591,7 +590,7 @@ background: var(--bg-surface); border: 1px solid var(--border); border-radius: 2px; - transition: all 0.2s ease; + transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, color 0.2s ease, transform 0.2s ease, text-shadow 0.2s ease; box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.5); } .toggle-slider::before { @@ -603,7 +602,7 @@ top: 3px; background: var(--fg-dim); border-radius: 2px; - transition: all 0.2s ease; + transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, color 0.2s ease, transform 0.2s ease, text-shadow 0.2s ease; } .toggle input:checked + .toggle-slider { background: color-mix(in srgb, var(--accent) 20%, transparent); @@ -654,7 +653,7 @@ border-bottom: 1px solid var(--border); color: var(--fg); cursor: pointer; - transition: all 0.15s ease; + transition: background-color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease, color 0.15s ease, transform 0.15s ease, text-shadow 0.15s ease; text-align: left; font-family: var(--font-mono); } diff --git a/ui/src/lib/components/ComponentCard.svelte b/ui/src/lib/components/ComponentCard.svelte index 34a5d83..d8f54f1 100644 --- a/ui/src/lib/components/ComponentCard.svelte +++ b/ui/src/lib/components/ComponentCard.svelte @@ -77,7 +77,7 @@ border-radius: 4px; padding: 1.5rem; color: var(--fg); - transition: all 0.2s ease; + transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, color 0.2s ease, transform 0.2s ease, text-shadow 0.2s ease; backdrop-filter: blur(4px); } @@ -165,7 +165,7 @@ padding: 0.375rem 0.75rem; border-radius: 2px; cursor: pointer; - transition: all 0.2s ease; + transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, color 0.2s ease, transform 0.2s ease, text-shadow 0.2s ease; text-transform: uppercase; letter-spacing: 1px; font-weight: bold; diff --git a/ui/src/lib/components/ConfigEditor.svelte b/ui/src/lib/components/ConfigEditor.svelte index 03e8c55..278f853 100644 --- a/ui/src/lib/components/ConfigEditor.svelte +++ b/ui/src/lib/components/ConfigEditor.svelte @@ -185,7 +185,7 @@ text-transform: uppercase; letter-spacing: 1px; cursor: pointer; - transition: all 0.2s ease; + transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, color 0.2s ease, text-shadow 0.2s ease; } .mode-btn:first-child { border-radius: 2px 0 0 2px; @@ -218,7 +218,7 @@ font-weight: 700; text-transform: uppercase; letter-spacing: 1px; - transition: all 0.2s ease; + transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, color 0.2s ease, text-shadow 0.2s ease; box-shadow: inset 0 0 8px color-mix(in srgb, var(--accent) 30%, transparent); } .save-btn:hover:not(:disabled) { @@ -275,11 +275,12 @@ font-size: 0.875rem; resize: none; line-height: 1.6; - outline: none; - transition: all 0.2s ease; + transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, color 0.2s ease, text-shadow 0.2s ease; box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.5); } - .raw-editor:focus { + .raw-editor:focus-visible { + outline: 2px solid var(--accent); + outline-offset: 2px; border-color: var(--accent); box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.5), 0 0 8px var(--border-glow); } diff --git a/ui/src/lib/components/ConfigEditorUI.svelte b/ui/src/lib/components/ConfigEditorUI.svelte index 44be914..4c2bd76 100644 --- a/ui/src/lib/components/ConfigEditorUI.svelte +++ b/ui/src/lib/components/ConfigEditorUI.svelte @@ -216,15 +216,23 @@ {@const schema = channelSchemas[channelType]} {#if schema}
-
toggle(`channel-${channelType}`)} onkeydown={(e) => { if (e.key === 'Enter' || e.key === ' ') toggle(`channel-${channelType}`); }}> +
toggle(`channel-${channelType}`)} + onkeydown={(e) => { if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); toggle(`channel-${channelType}`); } }} + >
{schema.label}
+ >
{#if openSections[`channel-${channelType}`]}
@@ -652,7 +660,7 @@ font-weight: 700; text-transform: uppercase; letter-spacing: 1px; - transition: all 0.2s ease; + transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, color 0.2s ease, transform 0.2s ease, text-shadow 0.2s ease; } .accordion-header:hover { background: color-mix(in srgb, var(--accent) 5%, transparent); @@ -698,8 +706,7 @@ color: var(--fg); font-size: 0.875rem; font-family: var(--font-mono); - outline: none; - transition: all 0.2s ease; + transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, color 0.2s ease, transform 0.2s ease, text-shadow 0.2s ease; box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.2); box-sizing: border-box; } @@ -767,7 +774,7 @@ font-size: 0.75rem; cursor: pointer; opacity: 0.6; - transition: all 0.2s ease; + transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, color 0.2s ease, transform 0.2s ease, text-shadow 0.2s ease; } .remove-btn:hover { opacity: 1; @@ -799,7 +806,7 @@ font-weight: 700; text-transform: uppercase; letter-spacing: 1px; - transition: all 0.2s ease; + transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, color 0.2s ease, transform 0.2s ease, text-shadow 0.2s ease; width: 100%; } .add-channel-btn:hover { @@ -834,7 +841,7 @@ text-align: left; cursor: pointer; font-family: var(--font-mono); - transition: all 0.15s ease; + transition: background-color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease, color 0.15s ease, transform 0.15s ease, text-shadow 0.15s ease; } .add-channel-dropdown button:hover { background: color-mix(in srgb, var(--accent) 15%, transparent); diff --git a/ui/src/lib/components/InstanceCard.svelte b/ui/src/lib/components/InstanceCard.svelte index dae88ef..7947915 100644 --- a/ui/src/lib/components/InstanceCard.svelte +++ b/ui/src/lib/components/InstanceCard.svelte @@ -92,7 +92,7 @@ border: 1px solid var(--border); border-radius: 4px; color: var(--fg); - transition: all 0.2s ease; + transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, color 0.2s ease, transform 0.2s ease, text-shadow 0.2s ease; backdrop-filter: blur(4px); } .card:hover { @@ -155,7 +155,7 @@ text-transform: uppercase; letter-spacing: 1px; cursor: pointer; - transition: all 0.2s ease; + transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, color 0.2s ease, transform 0.2s ease, text-shadow 0.2s ease; text-shadow: var(--text-glow); } .card-actions button:hover { diff --git a/ui/src/lib/components/LogViewer.svelte b/ui/src/lib/components/LogViewer.svelte index 40ceba4..df4f58a 100644 --- a/ui/src/lib/components/LogViewer.svelte +++ b/ui/src/lib/components/LogViewer.svelte @@ -137,7 +137,7 @@ font-family: var(--font-mono); text-transform: uppercase; letter-spacing: 0.8px; - transition: all 0.15s ease; + transition: background-color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease, color 0.15s ease, transform 0.15s ease, text-shadow 0.15s ease; } .source-btn:hover { background: color-mix(in srgb, var(--accent) 10%, transparent); @@ -191,7 +191,7 @@ font-family: var(--font-mono); text-transform: uppercase; cursor: pointer; - transition: all 0.2s ease; + transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, color 0.2s ease, transform 0.2s ease, text-shadow 0.2s ease; } .clear-btn:hover { background: color-mix(in srgb, var(--accent) 20%, transparent); diff --git a/ui/src/lib/components/ManagedInstanceSelector.svelte b/ui/src/lib/components/ManagedInstanceSelector.svelte index c5db99e..3e5cef8 100644 --- a/ui/src/lib/components/ManagedInstanceSelector.svelte +++ b/ui/src/lib/components/ManagedInstanceSelector.svelte @@ -108,7 +108,6 @@ } .instance-selector select:focus { - outline: none; border-color: var(--accent); box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent) 20%, transparent); } diff --git a/ui/src/lib/components/NullBoilerPanel.svelte b/ui/src/lib/components/NullBoilerPanel.svelte index 1ccc6c3..f4f4a8c 100644 --- a/ui/src/lib/components/NullBoilerPanel.svelte +++ b/ui/src/lib/components/NullBoilerPanel.svelte @@ -1682,7 +1682,6 @@ .field select:focus, .field textarea:focus, .json-editor:focus { - outline: none; border-color: var(--accent); } .json-editor { diff --git a/ui/src/lib/components/NullTicketsPanel.svelte b/ui/src/lib/components/NullTicketsPanel.svelte index e1ea6d9..ec849d8 100644 --- a/ui/src/lib/components/NullTicketsPanel.svelte +++ b/ui/src/lib/components/NullTicketsPanel.svelte @@ -1570,7 +1570,6 @@ .field input:focus, .field select:focus, .field textarea:focus { - outline: none; border-color: var(--accent); } .btn { diff --git a/ui/src/lib/components/ProviderList.svelte b/ui/src/lib/components/ProviderList.svelte index 2ce08d4..a9147db 100644 --- a/ui/src/lib/components/ProviderList.svelte +++ b/ui/src/lib/components/ProviderList.svelte @@ -389,18 +389,21 @@ class="icon-btn" onclick={() => moveUp(i)} disabled={i === 0} - title="Move up">↑
@@ -553,7 +556,7 @@ padding: 1rem; margin-bottom: 0.75rem; box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.2); - transition: all 0.2s ease; + transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, color 0.2s ease, transform 0.2s ease, text-shadow 0.2s ease; } .provider-row:hover { @@ -587,8 +590,7 @@ color: var(--fg); font-size: 0.875rem; font-family: var(--font-mono); - outline: none; - transition: all 0.2s ease; + transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, color 0.2s ease, transform 0.2s ease, text-shadow 0.2s ease; } .provider-row-header select:focus { @@ -614,7 +616,7 @@ color: var(--fg-dim); font-size: 1rem; cursor: pointer; - transition: all 0.2s ease; + transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, color 0.2s ease, transform 0.2s ease, text-shadow 0.2s ease; } .icon-btn:hover:not(:disabled) { @@ -661,8 +663,7 @@ color: var(--fg); font-size: 0.875rem; font-family: var(--font-mono); - outline: none; - transition: all 0.2s ease; + transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, color 0.2s ease, transform 0.2s ease, text-shadow 0.2s ease; box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.2); } @@ -749,7 +750,7 @@ text-transform: uppercase; letter-spacing: 1px; cursor: pointer; - transition: all 0.2s ease; + transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, color 0.2s ease, transform 0.2s ease, text-shadow 0.2s ease; } .status-dot { @@ -825,7 +826,7 @@ cursor: pointer; text-align: left; font-family: var(--font-mono); - transition: all 0.15s ease; + transition: background-color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease, color 0.15s ease, transform 0.15s ease, text-shadow 0.15s ease; } .saved-item:last-child { diff --git a/ui/src/lib/components/Sidebar.svelte b/ui/src/lib/components/Sidebar.svelte index bbfeb3b..584e038 100644 --- a/ui/src/lib/components/Sidebar.svelte +++ b/ui/src/lib/components/Sidebar.svelte @@ -203,7 +203,7 @@ font-size: 0.875rem; text-transform: uppercase; letter-spacing: 1px; - transition: all 0.2s ease; + transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, color 0.2s ease, transform 0.2s ease, text-shadow 0.2s ease; border-left: 3px solid transparent; } @@ -271,7 +271,7 @@ font-size: 0.875rem; text-transform: uppercase; letter-spacing: 1px; - transition: all 0.2s ease; + transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, color 0.2s ease, transform 0.2s ease, text-shadow 0.2s ease; border-left: 3px solid transparent; } diff --git a/ui/src/lib/components/StructuredConfigEditor.svelte b/ui/src/lib/components/StructuredConfigEditor.svelte index f1fdad1..986fd06 100644 --- a/ui/src/lib/components/StructuredConfigEditor.svelte +++ b/ui/src/lib/components/StructuredConfigEditor.svelte @@ -291,8 +291,7 @@ color: var(--fg); font-size: 0.875rem; font-family: var(--font-mono); - outline: none; - transition: all 0.2s ease; + transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, color 0.2s ease, transform 0.2s ease, text-shadow 0.2s ease; } .field input:focus, diff --git a/ui/src/lib/components/TopBar.svelte b/ui/src/lib/components/TopBar.svelte index 36c0315..b8c373c 100644 --- a/ui/src/lib/components/TopBar.svelte +++ b/ui/src/lib/components/TopBar.svelte @@ -169,13 +169,14 @@ font-family: var(--font-mono); font-size: 0.75rem; text-transform: uppercase; - outline: none; cursor: pointer; - transition: all 0.2s ease; + transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, color 0.2s ease; } - .theme-select:focus, + .theme-select:focus-visible, .theme-select:hover { + outline: 2px solid var(--accent); + outline-offset: 2px; border-color: var(--accent); box-shadow: 0 0 8px var(--border-glow); } diff --git a/ui/src/lib/components/WizardRenderer.svelte b/ui/src/lib/components/WizardRenderer.svelte index 2aa04fe..4162a09 100644 --- a/ui/src/lib/components/WizardRenderer.svelte +++ b/ui/src/lib/components/WizardRenderer.svelte @@ -580,7 +580,7 @@ color: var(--fg-dim); cursor: pointer; padding: 0.25rem 0; - transition: all 0.2s ease; + transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, color 0.2s ease, transform 0.2s ease, text-shadow 0.2s ease; } .step-dot:disabled { cursor: default; } @@ -608,7 +608,7 @@ font-size: 0.75rem; font-weight: 700; font-family: var(--font-mono); - transition: all 0.2s ease; + transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, color 0.2s ease, transform 0.2s ease, text-shadow 0.2s ease; } .step-label { @@ -616,7 +616,7 @@ font-weight: 700; text-transform: uppercase; letter-spacing: 1px; - transition: all 0.2s ease; + transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, color 0.2s ease, transform 0.2s ease, text-shadow 0.2s ease; } .step-line { @@ -624,7 +624,7 @@ height: 1px; background: var(--border); margin: 0 0.75rem; - transition: all 0.2s ease; + transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, color 0.2s ease, transform 0.2s ease, text-shadow 0.2s ease; } .step-line.completed { background: var(--accent); box-shadow: 0 0 4px var(--border-glow); } @@ -658,8 +658,7 @@ color: var(--fg); font-size: 0.875rem; font-family: var(--font-mono); - outline: none; - transition: all 0.2s ease; + transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, color 0.2s ease, transform 0.2s ease, text-shadow 0.2s ease; box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.2); } @@ -689,8 +688,7 @@ color: var(--fg); font-size: 0.875rem; font-family: var(--font-mono); - outline: none; - transition: all 0.2s ease; + transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, color 0.2s ease, transform 0.2s ease, text-shadow 0.2s ease; box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.2); cursor: pointer; } @@ -721,7 +719,7 @@ letter-spacing: 1px; cursor: pointer; width: 100%; - transition: all 0.2s ease; + transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, color 0.2s ease, transform 0.2s ease, text-shadow 0.2s ease; margin-top: 1rem; } .advanced-toggle:hover { @@ -792,7 +790,7 @@ font-size: 0.875rem; font-weight: 700; cursor: pointer; - transition: all 0.2s ease; + transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, color 0.2s ease, transform 0.2s ease, text-shadow 0.2s ease; text-transform: uppercase; letter-spacing: 2px; text-shadow: var(--text-glow); @@ -824,7 +822,7 @@ font-size: 0.875rem; font-weight: 700; cursor: pointer; - transition: all 0.2s ease; + transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, color 0.2s ease, transform 0.2s ease, text-shadow 0.2s ease; text-transform: uppercase; letter-spacing: 2px; } diff --git a/ui/src/lib/components/WizardStep.svelte b/ui/src/lib/components/WizardStep.svelte index 509213d..3e5f451 100644 --- a/ui/src/lib/components/WizardStep.svelte +++ b/ui/src/lib/components/WizardStep.svelte @@ -236,7 +236,7 @@ padding: 0.75rem 1rem; color: var(--fg); cursor: pointer; - transition: all 0.2s ease; + transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, color 0.2s ease, transform 0.2s ease, text-shadow 0.2s ease; } .option-btn:hover { @@ -313,8 +313,7 @@ color: var(--fg); font-size: 0.875rem; font-family: var(--font-mono); - outline: none; - transition: all 0.2s ease; + transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, color 0.2s ease, transform 0.2s ease, text-shadow 0.2s ease; box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.2); } @@ -351,7 +350,7 @@ padding: 0.6rem 0.75rem; color: var(--fg); cursor: pointer; - transition: all 0.1s ease; + transition: background-color 0.1s ease, border-color 0.1s ease, box-shadow 0.1s ease, color 0.1s ease, transform 0.1s ease, text-shadow 0.1s ease; } .dropdown-item:last-child { @@ -409,8 +408,7 @@ color: var(--fg); font-size: 0.875rem; font-family: var(--font-mono); - outline: none; - transition: all 0.2s ease; + transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, color 0.2s ease, transform 0.2s ease, text-shadow 0.2s ease; box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.2); } @@ -446,7 +444,7 @@ background: var(--bg-surface); border: 1px solid var(--border); border-radius: 2px; - transition: all 0.2s ease; + transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, color 0.2s ease, transform 0.2s ease, text-shadow 0.2s ease; box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.5); } @@ -459,7 +457,7 @@ top: 3px; background: var(--fg-dim); border-radius: 2px; - transition: all 0.2s ease; + transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, color 0.2s ease, transform 0.2s ease, text-shadow 0.2s ease; } .toggle input:checked + .toggle-slider { diff --git a/ui/src/lib/components/nullboiler/CheckpointTimeline.svelte b/ui/src/lib/components/nullboiler/CheckpointTimeline.svelte index 9b50f33..99b8065 100644 --- a/ui/src/lib/components/nullboiler/CheckpointTimeline.svelte +++ b/ui/src/lib/components/nullboiler/CheckpointTimeline.svelte @@ -80,7 +80,7 @@ background: var(--border); border: 2px solid var(--fg-dim); flex-shrink: 0; - transition: all 0.2s ease; + transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, color 0.2s ease, transform 0.2s ease, text-shadow 0.2s ease; } .dot.selected { background: var(--accent); diff --git a/ui/src/lib/components/nullboiler/InterruptPanel.svelte b/ui/src/lib/components/nullboiler/InterruptPanel.svelte index 136bcd5..5730d4a 100644 --- a/ui/src/lib/components/nullboiler/InterruptPanel.svelte +++ b/ui/src/lib/components/nullboiler/InterruptPanel.svelte @@ -30,9 +30,9 @@ } - -
-