Repository navigation
Redesign UI with Fluent 2 shell, floating toolbars, and Ellie design system - #3
Conversation
…system - Shell: replace NavigationView with a custom title bar hosting document tabs, a Read/Organize SelectorBar switcher, settings gear, and a DPI-safe star-sized drag region; MicaAlt backdrop - Theme: full Ellie accent system (#DCAE96) with light/dark/high-contrast ramps, branded accent buttons, toggles, switches, sliders, pill toolbar, panel, card, and settings-card styles - Reader: split the 19-button mega-toolbar into a top-right document command pill and a bottom nav/zoom pill that auto-hide while reading; zoom flyout with slider and fit presets; go-to-page flyout; floating Pages/Outline/Search panels with headers, close buttons, shadows and slide-in animations; hero empty state with drop zone, drag & drop, and rich recent-file cards - Organize: header with live page count, pill command bar, hover-reveal card actions, empty state - Settings: card-based layout with instant apply, System/Light/Dark theme picker, and About card; removed explicit Save button - Fix: panel exclusivity (thumbnail toggle now closes outline) - Fix: mark PdfEditSurface partial (CsWinRT1028) - unpatched, any UIA client (e.g. Narrator) crashed the app when the edit overlay was active Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 67a8baa002
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| StatusMessage = "Settings saved."; | ||
| StatusSeverity = InfoBarSeverity.Success; | ||
| IsStatusOpen = true; | ||
| _ = _settingsService.SaveAsync(); |
There was a problem hiding this comment.
Serialize instant settings saves
When settings are changed rapidly, each property callback starts an unobserved save while the previous save may still hold the exclusively opened settings.json; the later File.Create can therefore fail with an ignored IOException, and closing immediately after a change can also terminate the unawaited write. Queue, debounce, or otherwise await these saves so the final setting is reliably persisted.
Useful? React with 👍 / 👎.
| IsHitTestVisible="False" | ||
| Opacity="0" |
There was a problem hiding this comment.
Keep page actions available without hover
On touch-only devices, there is no persistent hover state, and keyboard focus also does not trigger SetCardActionsVisible; because the rotate/delete container starts invisible and pointer-disabled, these previously visible actions cannot be reliably discovered or invoked without a mouse. Keep the actions visible for non-hover input or reveal them on focus/selection as well as PointerEntered.
Useful? React with 👍 / 👎.
| Click="ZoomPreset_Click" | ||
| Content="100%" | ||
| Tag="actual" /> |
There was a problem hiding this comment.
Clicking this newly labeled 100% preset falls through to ZoomActualSizeCommand, which resolves to 96 / 72 and consequently displays and renders at 133%, not 100%. Either invoke SetZoomPercentCommand with 100 or label this preset as actual size so the control matches its behavior.
Useful? React with 👍 / 👎.
- Non-error InfoBar toasts now fade out automatically after 4 seconds; errors stay until dismissed - Removed toasts whose outcome is already visible in the UI: 'Opened X', 'Open/Import cancelled', 'Loaded/Added N pages', 'Rotated X', 'Deleted X', and the export toast (redundant with the export dialog) - Kept file-write confirmations (Save/Save As) and empty-workspace guards Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Overview
Full UI redesign of ElliePdf following Fluent 2, replacing the NavigationView shell with a modern custom title bar and an Ellie-branded design system built around the
#DCAE96accent.Screenshots
Shell
MainPage), synced fromReaderViewModelDesign system (
Themes/ElliePdf.xaml)#DCAE96with Light/Dark/HighContrast theme dictionariesThemeShadowReader
SetZoomPercentcommand); go-to-page flyout on the page labelOrganize
Settings
UserSettings.AppThemeFixes discovered along the way
PdfEditSurfacemarkedpartial(CsWinRT1028): previously any UIA client (e.g. Narrator, accessibility tools) crashed the app when the edit overlay was activems-appximage references resolveValidation
dotnet build -p:Platform=x64— clean, 0 warnings (CsWinRT warning resolved)dotnet test— 3/3 passing