ui: hide Session Search nav on its own page, dark mode file list, font size cycler
- event_page_menu: set events__session_search=false — the Session Search nav link was redundantly appearing on the Session Search page itself - element_manage_event_file_li: replace hardcoded gray hover colors with theme-aware surface tokens (hover:bg-surface-100-900, border-surface-200-800) and add transition-colors; fixes light-on-light in dark mode for the file list table rows and Event File Purpose select element - font size cycler (default → larger → smaller → default): - ae_stores: add font_size_mode: 'default' to ae_loc defaults - app.css: html.font-size-larger (112.5%) and html.font-size-smaller (87.5%) - +layout.svelte: DOM effect applies/removes font-size-* class on <html> - e_app_sys_menu: compact A / A+ / A− button cycles the mode
This commit is contained in:
@@ -137,6 +137,12 @@ body {
|
||||
/* font-family: 'Noto Sans', sans-serif; */
|
||||
}
|
||||
|
||||
/* Font size accessibility modes — cycled via the font size button in the sys menu.
|
||||
Applied as a class on <html> by the layout DOM effect.
|
||||
The 'default' mode has no class (browser default, typically 16px). */
|
||||
html.font-size-larger { font-size: 112.5%; } /* ~18px base */
|
||||
html.font-size-smaller { font-size: 87.5%; } /* ~14px base */
|
||||
|
||||
html.super_access #appShell {
|
||||
background-color: hsla(0, 100%, 50%, 0.5);
|
||||
}
|
||||
|
||||
@@ -385,6 +385,42 @@ max-w-max -->
|
||||
</button>
|
||||
{/if}
|
||||
|
||||
<!-- Font Size Cycler: default → larger → smaller → default -->
|
||||
<button
|
||||
type="button"
|
||||
class:w-full={expand}
|
||||
class="
|
||||
btn btn-base text-sm
|
||||
preset-tonal-surface
|
||||
hover:preset-tonal-primary
|
||||
px-1 py-1
|
||||
min-w-22 md:min-w-30 w-full max-w-fit
|
||||
transition-all group
|
||||
"
|
||||
title="Cycle font size: default → larger → smaller"
|
||||
onclick={() => {
|
||||
const mode = $ae_loc.font_size_mode;
|
||||
if (!mode || mode === 'default') {
|
||||
$ae_loc.font_size_mode = 'larger';
|
||||
} else if (mode === 'larger') {
|
||||
$ae_loc.font_size_mode = 'smaller';
|
||||
} else {
|
||||
$ae_loc.font_size_mode = 'default';
|
||||
}
|
||||
}}
|
||||
>
|
||||
{#if !$ae_loc.font_size_mode || $ae_loc.font_size_mode === 'default'}
|
||||
<span class="font-bold text-sm leading-none">A</span>
|
||||
<span class="hidden group-hover:inline-block text-xs">Font: Normal</span>
|
||||
{:else if $ae_loc.font_size_mode === 'larger'}
|
||||
<span class="font-bold text-base leading-none">A+</span>
|
||||
<span class="hidden group-hover:inline-block text-xs">Font: Larger</span>
|
||||
{:else}
|
||||
<span class="font-bold text-xs leading-none">A−</span>
|
||||
<span class="hidden group-hover:inline-block text-xs">Font: Smaller</span>
|
||||
{/if}
|
||||
</button>
|
||||
|
||||
<!-- <div> -->
|
||||
<!-- class:visible={expand} -->
|
||||
<!-- class:invisible={!expand} -->
|
||||
|
||||
@@ -176,7 +176,7 @@
|
||||
<tbody>
|
||||
{#each $lq__event_file_obj_li as event_file_obj (event_file_obj.event_file_id)}
|
||||
<tr
|
||||
class="ae_obj obj_event_file border-t border-b border-gray-200 hover:bg-gray-50 hover:border-gray-300"
|
||||
class="ae_obj obj_event_file border-t border-b border-surface-200-800 hover:bg-surface-100-900 hover:border-surface-300-700 transition-colors duration-200"
|
||||
class:dim={event_file_obj?.hide}
|
||||
>
|
||||
<td class="event_file__file align-middle">
|
||||
@@ -555,7 +555,7 @@
|
||||
|
||||
// ae_triggers.update_event_file_purpose = true;
|
||||
}}
|
||||
class="select min-w-fit max-w-fit text-xs mx-1 border border-gray-300 rounded-md p-1 hover:border-gray-400"
|
||||
class="select min-w-fit max-w-fit text-xs mx-1 border border-surface-300-700 rounded-md p-1 bg-surface-50-900 hover:border-surface-400-600 transition-colors duration-200"
|
||||
>
|
||||
<option
|
||||
value={null}
|
||||
|
||||
@@ -77,6 +77,7 @@ const ae_app_local_data_defaults: key_val = {
|
||||
theme: 'light',
|
||||
theme_mode: 'light',
|
||||
theme_name: 'AE_Firefly', // "Shiny serenity, like a firefly." — OSIT default 2026
|
||||
font_size_mode: 'default', // 'default' | 'larger' | 'smaller'
|
||||
iframe: false,
|
||||
|
||||
// disable_sys_header: false,
|
||||
|
||||
@@ -174,6 +174,15 @@
|
||||
document.documentElement.classList.remove('dark');
|
||||
}
|
||||
|
||||
// Font size mode — cycles default | larger | smaller.
|
||||
// CSS classes are defined in app.css; no class = browser default (16px).
|
||||
document.documentElement.classList.remove('font-size-larger', 'font-size-smaller');
|
||||
if ($ae_loc?.font_size_mode === 'larger') {
|
||||
document.documentElement.classList.add('font-size-larger');
|
||||
} else if ($ae_loc?.font_size_mode === 'smaller') {
|
||||
document.documentElement.classList.add('font-size-smaller');
|
||||
}
|
||||
|
||||
// Hydration overlay timer
|
||||
if ($ae_loc?.account_id) {
|
||||
const timer = setTimeout(() => is_hydrating = false, 500);
|
||||
|
||||
@@ -46,7 +46,7 @@
|
||||
events__locations={$ae_loc.administrator_access}
|
||||
events__reports={$ae_loc.trusted_access}
|
||||
events__settings={$ae_loc.edit_mode && $ae_loc.administrator_access}
|
||||
events__session_search={!!$lq__event_obj?.event_id}
|
||||
events__session_search={false}
|
||||
/>
|
||||
|
||||
<span
|
||||
|
||||
Reference in New Issue
Block a user