From bdffafc769b2f4f6e764e0b3aaea8709b223721d Mon Sep 17 00:00:00 2001 From: Owen McGirr Date: Fri, 25 Sep 2026 11:24:33 +0100 Subject: [PATCH 1/3] Polish Settings, Mouse and Scanning forms The first setting group under a header or tab row drops its extra divider. The auto scan rate becomes one stepper control, colour choices become chips that show the selection with a border and fill, and teaching disclosures read as a plain title with a brand action. Scanning mode cards sit side by side with a chevron and a status chip for the mode Select starts, How scanning works becomes a proper disclosure card, and the bottom note no longer repeats the save status shown above. Closes #886 Co-Authored-By: Claude Opus 5.5 (1M context) --- src/settings/ScannerPreferences.tsx | 7 +-- src/ui/app.css | 68 +++++++++++++++++++---------- 2 files changed, 49 insertions(+), 26 deletions(-) diff --git a/src/settings/ScannerPreferences.tsx b/src/settings/ScannerPreferences.tsx index d1f657b3..671fa77b 100644 --- a/src/settings/ScannerPreferences.tsx +++ b/src/settings/ScannerPreferences.tsx @@ -1,5 +1,6 @@ import { Button, Input, Select, MoreOptions } from "../ui/controls"; import { useLayoutEffect, useRef, useState, type ReactNode } from 'react'; +import { ChevronRight } from 'lucide-react'; import type { ScanningController, ScannerColor, PointScanConfig } from '../scanning/useScanning'; import { areaOptions, sharedOptions, defaultScanPreferences, type ScanArea, type ScanOptions } from '../scanning/preferences'; import { SettingGroup, Toggle, OptionGroup } from './controls'; @@ -67,7 +68,7 @@ export function ScannerPreferences({ controller }: { controller: ScanningControl

{names[area]}

{descriptions[area]} Change any value to customise it; other settings follow the shared defaults.

} - {area === 'shared' &&
{(['point', 'mouse'] as const).map(key => )}
} + {area === 'shared' &&
{(['point', 'mouse'] as const).map(key => )}
} {area === 'mouse' &&

The ring stays visible while Mouse is open. Select a direction to move or a scroll tile to scroll; with Repeat mouse movement and scrolling on, the next switch press stops either action. Pointer speed and repeat controls are under Mouse in the sidebar. Switch to Point returns to screen selection.

} {area === 'point' && <> value != null).length; return