Skip to content

Conversation

@ovsky
Copy link
Owner

@ovsky ovsky commented Dec 5, 2025

This pull request updates the visual design and theme of both the downloads.html and extensions.html pages to create a unified dark purple appearance that matches the Passwords & Settings section. The changes focus on consistent color schemes, improved UI elements, and enhanced user experience through refined styling and component layouts, refactors code and makes more settings working properly.

Theme and Color Consistency

  • Updated favicon and color variables to a unified dark purple theme across both files, replacing previous dark/gray palettes and accent colors. (assets/downloads.html, assets/extensions.html) [1] [2] [3]
  • Replaced previous color-scheme and accent variables with new ones for backgrounds, text, borders, and status colors, ensuring consistent appearance and better contrast. (assets/downloads.html, assets/extensions.html) [1] [2]

UI Component Styling

  • Refined button, card, and modal styles: added new classes for primary/danger buttons, improved hover effects, rounded corners, and shadows for cards and modals. (assets/downloads.html, assets/extensions.html) [1] [2] [3] [4] [5]
  • Improved input and textarea styling for forms, including focus effects and padding, to match the new theme. (assets/extensions.html) [1] [2]

Layout and Structure Enhancements

  • Adjusted container, header, and section paddings, margins, and border treatments for a cleaner, more modern layout. (assets/downloads.html, assets/extensions.html) [1] [2] [3]
  • Enhanced empty state displays for downloads, including icon, heading, and description. (assets/downloads.html)

Status and Progress Indicators

  • Improved status styling for download items with color-coded backgrounds for in-progress, completed, failed, and cancelled states; updated progress bar colors and transitions. (assets/downloads.html) [1] [2] [3]

Usability Improvements

  • Added custom scrollbar styling for better appearance in dark mode. (assets/downloads.html)
  • Improved modal and extension card scrolling and overflow handling. (assets/extensions.html)

These changes collectively modernize the look and feel of the downloads and extensions pages, providing a more cohesive, visually appealing, and user-friendly experience, and much more under the hood.

ovsky added 30 commits December 4, 2025 17:23
Introduces EscapeShellArg to safely escape shell arguments by wrapping them in single quotes and handling embedded single quotes. Updates Utils.h to declare the new function.
Replaces usage of const_cast for calling Decrypt on encrypted passwords with direct calls to Decrypt. This improves code clarity and avoids unnecessary casting in several methods of PasswordManager.
The DRMSettings::ResetToDefaults method now sets 'enabled_' to false by default, requiring users to opt-in. This change improves user control over DRM activation.
Replaces manual quoting with util::EscapeShellArg for file and folder paths in shell commands on Apple and Linux platforms. This improves security and correctness when opening or revealing downloads with potentially unsafe characters in paths.
Added checks to ensure manifest.json and content.js are successfully created in CreateExtensionTemplate. If file creation fails, an error is logged and the function returns false to prevent further issues.
Replaces strncmp with std::string_view logic to more reliably skip internal file:/// URLs when injecting content scripts.
Replaces strncmp-based URL scheme checks with std::string_view for improved readability and safety. Removes temporary debug logging from OnAddressBarNavigate and adds a file open check when importing passwords.
Updated the downloads page styles to use a dark purple theme consistent with Passwords & Settings. Improved button, card, and status styling, enhanced empty state messaging, and added custom scrollbar styles for a more modern UI.
Refactored CSS variables and styles in extensions.html to use a dark purple color scheme, matching the Passwords & Settings pages. Improved button, card, modal, and footer styling for better visual consistency and modern appearance.
Updated the .modal-body CSS to include a max-height and vertical scrolling. This ensures modal content remains accessible and scrollable when it exceeds the viewport.
Updated the menu to display the Ctrl+P shortcut for the Passwords item and added the corresponding shortcut mapping in shortcuts.json.
Changed the keyboard shortcut for opening extensions from Ctrl+Shift+E to Ctrl+E in both the menu and shortcuts configuration for consistency and easier access.
Menu items now display keyboard shortcuts in separate, styled badges for better readability and visual consistency. Updated HTML structure and added CSS for the new shortcut-badge element.
Replaces the placeholder call to OnRequestNewTab with OnRequestNewWindow when the 'new-window' menu item is selected, enabling proper handling of new window requests.
Added 'Ctrl+N' to shortcuts.json to support opening a new window.
Implemented 'new-window' and 'open-passwords' actions in RunShortcutAction. Added OnRequestNewWindow handler to launch a new application instance on both Windows and non-Windows platforms. Exposed OnRequestNewWindow to JavaScript.
Introduces the OnRequestNewWindow method to handle new window requests in the UI class interface.
Added a check to prevent dark mode styling from being applied to internal browser pages such as settings, passwords, extensions, and others, as these pages have their own dark styling.
Introduces a new UI section in settings for specifying URL patterns where the dark theme should be disabled. Includes related styles, textarea input, help text, and JavaScript logic for hydrating, tracking, and saving the excluded sites list.
Introduces several new settings to settings_catalog.json, including options for dark theme exclusions, vibrant window theme, compact tabs, accessibility features, privacy controls (JavaScript, web security, cookies, Do Not Track, custom user agent), download preferences, performance options (smooth scrolling, hardware acceleration, storage), and developer tools (remote inspector, performance overlay). These additions enhance user customization, privacy, accessibility, and developer support.
Introduces support for the dark_theme_excluded_sites setting in both loading and saving user settings, ensuring this value is persisted and restored alongside other settings.
Introduces a new setting, dark_theme_excluded_sites, allowing users to specify newline-separated URL patterns where dark mode should not be applied. Updates the settings payload, UI handling, and dark mode application logic to respect these exclusions.
Implements CSS injection methods for reduce motion, high contrast, smooth scrolling, and transparent toolbar features. Adds vibrant window theme support for Windows using DWM API. Updates ApplySettings to apply these features based on user settings, improving accessibility and UI customization.
Adds logic to apply reduce motion, high contrast, and smooth scrolling CSS to the view when the DOM is ready, based on UI settings. Improves accessibility support for users with these preferences enabled.
Moved browser internal page detection from JavaScript to a fast C++ check in ApplyDarkModeToView, reducing unnecessary JS execution for internal pages with their own dark styling. Added static IsBrowserInternalPage method to centralize internal page checks.
CSS injections for dark mode, reduce motion, and high contrast are now skipped for internal browser pages to improve their loading speed and avoid overriding their native styling.
Adds caching of start page and internal browser pages HTML to memory for instant loading, reducing file I/O delays and eliminating white flashes when opening new tabs. Refactors tab creation and shortcut actions to use cached HTML when available, streamlining new tab and internal page display.
Replaced or added custom SVG favicons with updated colors for downloads, extensions, history, new tab, passwords, release notes, and settings HTML pages to improve visual consistency and branding.
ovsky added 5 commits December 5, 2025 13:56
Added favicon.webp and logo.png to the project to provide branding and improve site appearance.
Replaces inline SVG favicon strings with base64-encoded SVGs for browser internal pages to improve CSS compatibility and consistency. Also updates some icon choices and descriptions for clarity.
Changed the SVG favicon fill color from #7c6aef to #c2bce8 in downloads.html for improved visual consistency.
Introduces UpdateTabFavicon to update a tab's favicon using a data URL. The favicon cache logic now checks a disk cache first and returns an empty string instead of a default /favicon.ico URL, improving favicon handling and display reliability.
Adds a script to fetch favicons from web pages and a callback to process the fetched favicon data. The callback forwards the favicon to the UI for caching and updates the tab's favicon display.
@ovsky ovsky merged commit f6a4ad3 into dev Dec 5, 2025
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants