fix(a11y): bump all text below 12px to 12px floor and promote tertiary-on-body to secondary
Brand guidelines (docs/brand/magnotia-brand-guidelines.md §4) say "Never go below 12px for any text" and "tertiary text must be ≥18px bold or ≥24px regular". Audit found 246 sub-12px className sites and 166 cases of text-text-tertiary paired with body sizes. Bumped text-[9/10/11px] → text-[12px] across 26 .svelte files in src/lib and src/routes. Promoted text-text-tertiary → text-text-secondary at body sizes (12-14px) where context allowed; left placeholder pseudo-states, ternary-conditional inactive states, and line-through "done" states alone (8 residual pairings, all decorative). Affects neurodivergent users on 1366×768 budget hardware most directly. svelte-check: 0 errors, 0 warnings.
This commit is contained in:
@@ -831,7 +831,7 @@
|
||||
<span class="w-[14px] h-[14px] rounded-full bg-white/90"></span>
|
||||
{/if}
|
||||
</button>
|
||||
<span class="text-[11px] font-medium flex-shrink-0 {page.recording ? 'text-danger' : 'text-text-secondary'}">
|
||||
<span class="text-[12px] font-medium flex-shrink-0 {page.recording ? 'text-danger' : 'text-text-secondary'}">
|
||||
{page.recording ? 'Stop' : modelLoading ? 'Loading' : 'Record'}
|
||||
</span>
|
||||
|
||||
@@ -854,7 +854,7 @@
|
||||
{/each}
|
||||
</span>
|
||||
{:else}
|
||||
<span class="text-[11px] text-text-tertiary">
|
||||
<span class="text-[12px] text-text-secondary">
|
||||
{#if modelLoading}
|
||||
Loading model...
|
||||
{:else if !tauriRuntimeAvailable}
|
||||
@@ -864,7 +864,7 @@
|
||||
Saved{#if extractedCount > 0} · {extractedCount} task{extractedCount === 1 ? '' : 's'} extracted{/if}
|
||||
</span>
|
||||
{:else}
|
||||
Press record or <kbd class="px-1 py-0.5 rounded bg-bg-elevated text-[10px] text-text-tertiary border border-border-subtle">{settings.globalHotkey}</kbd>
|
||||
Press record or <kbd class="px-1 py-0.5 rounded bg-bg-elevated text-[12px] text-text-secondary border border-border-subtle">{settings.globalHotkey}</kbd>
|
||||
{/if}
|
||||
</span>
|
||||
{/if}
|
||||
@@ -876,7 +876,7 @@
|
||||
</span>
|
||||
|
||||
<!-- Status indicator -->
|
||||
<span class="text-[11px] text-text-tertiary flex-shrink-0 min-w-[60px] text-right">
|
||||
<span class="text-[12px] text-text-secondary flex-shrink-0 min-w-[60px] text-right">
|
||||
{#if page.recording}
|
||||
<span class="inline-flex items-center gap-1.5">
|
||||
<span class="w-[6px] h-[6px] rounded-full bg-danger animate-pulse-soft"></span>
|
||||
@@ -901,10 +901,10 @@
|
||||
>
|
||||
<span class="flex items-center gap-1.5">
|
||||
<SquareCheck size={16} class={page.taskSidebarOpen ? 'text-accent' : 'text-text-tertiary'} aria-hidden="true" />
|
||||
<span class="text-[11px] {page.taskSidebarOpen ? 'text-accent' : 'text-text-tertiary'}">Tasks</span>
|
||||
<span class="text-[12px] {page.taskSidebarOpen ? 'text-accent' : 'text-text-tertiary'}">Tasks</span>
|
||||
</span>
|
||||
{#if taskCount > 0}
|
||||
<span class="absolute -top-0.5 -right-0.5 text-[9px] px-1 py-0 rounded-full bg-accent text-white font-medium min-w-[14px] text-center leading-[14px]">
|
||||
<span class="absolute -top-0.5 -right-0.5 text-[12px] px-1 py-0 rounded-full bg-accent text-white font-medium min-w-[14px] text-center leading-[14px]">
|
||||
{taskCount}
|
||||
</span>
|
||||
{/if}
|
||||
@@ -979,10 +979,10 @@
|
||||
{#if activeTemplate}
|
||||
<div class="px-5 pt-2 animate-fade-in flex-shrink-0">
|
||||
<div class="flex items-center gap-2 px-4 py-1.5 rounded-lg bg-accent-subtle border border-accent/20">
|
||||
<span class="text-[11px] text-accent font-medium">Template: {activeTemplate}</span>
|
||||
<span class="text-[11px] text-text-tertiary">Click a section, then record to fill it</span>
|
||||
<span class="text-[12px] text-accent font-medium">Template: {activeTemplate}</span>
|
||||
<span class="text-[12px] text-text-secondary">Click a section, then record to fill it</span>
|
||||
<div class="flex-1"></div>
|
||||
<button class="text-[11px] text-text-tertiary hover:text-text" onclick={() => activeTemplate = ""}>Remove</button>
|
||||
<button class="text-[12px] text-text-secondary hover:text-text" onclick={() => activeTemplate = ""}>Remove</button>
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
@@ -1042,7 +1042,7 @@
|
||||
></textarea>
|
||||
{#if showScrollHint}
|
||||
<button
|
||||
class="absolute bottom-3 right-6 px-3 py-1.5 rounded-full bg-accent text-white text-[11px] font-medium shadow-md hover:bg-accent-hover animate-fade-in"
|
||||
class="absolute bottom-3 right-6 px-3 py-1.5 rounded-full bg-accent text-white text-[12px] font-medium shadow-md hover:bg-accent-hover animate-fade-in"
|
||||
onclick={scrollToBottom}
|
||||
aria-label="Scroll to latest"
|
||||
style="transition-duration: var(--duration-ui)"
|
||||
@@ -1055,7 +1055,7 @@
|
||||
|
||||
<!-- Status footer (inside transcript card) -->
|
||||
<div class="flex items-center justify-between px-6 pb-3 pt-1 flex-shrink-0">
|
||||
<span class="text-[11px] text-text-tertiary">
|
||||
<span class="text-[12px] text-text-secondary">
|
||||
{#if wordCount > 0}
|
||||
{wordCount} {wordCount === 1 ? 'word' : 'words'}
|
||||
{:else}
|
||||
@@ -1067,10 +1067,10 @@
|
||||
</span>
|
||||
<div class="flex items-center gap-2">
|
||||
{#if aiStatus}
|
||||
<span class="text-[11px] text-accent animate-fade-in">{aiStatus}</span>
|
||||
<span class="text-[11px] text-text-tertiary">·</span>
|
||||
<span class="text-[12px] text-accent animate-fade-in">{aiStatus}</span>
|
||||
<span class="text-[12px] text-text-secondary">·</span>
|
||||
{/if}
|
||||
<span class="text-[11px] text-text-tertiary">
|
||||
<span class="text-[12px] text-text-secondary">
|
||||
{settings.formatMode} · {page.activeProfile === "None" ? "No profile" : page.activeProfile}
|
||||
</span>
|
||||
{#if transcript.trim()}
|
||||
|
||||
Reference in New Issue
Block a user