Skip to content

Feature Request: Sync Dark Mode Theme Preference to Server/Database #2045

@OneGitHubUsername

Description

@OneGitHubUsername

Feature Title

Sync Dark Mode Theme Preference to Server/Database

Feature Description

First, I want to say thank you for including a dark mode option in OpenSign! As someone with very light-sensitive eyes, this feature is incredibly valuable to me.

Currently, the dark mode preference is stored only in the browser's localStorage (via the ThemeToggle component). This means that when a user logs in from a different browser or device, their theme preference is reset to the default light mode.

I'm proposing that the theme preference be persisted to the user's profile on the server (in the contracts_Users collection), similar to how other user preferences like DateFormat and Is12HourTime are already saved via the updatepreferences cloud function.

Current behavior:

  • User selects dark mode → stored in localStorage.setItem("theme", "dark")
  • User logs in on different device → theme resets to light mode
  • User clears browser data → theme preference is lost

Proposed behavior:

  • User selects dark mode → saved to server AND localStorage
  • User logs in on different device → theme is retrieved from server and applied
  • Consistent experience across all browsers and devices

Feature Type

  • UI/UX Improvement

Importance

Medium

Additional Context

The existing updatepreferences cloud function in apps/OpenSignServer/cloud/parsefunction/Abortsigndocaliases.js already handles saving user preferences like DateFormat, Is12HourTime, and Language. Adding Theme to this existing pattern would provide a consistent approach to user preference management.

Technical reference:

  • Theme toggle component: apps/OpenSign/src/components/ThemeToggle.jsx
  • Preferences update: updatepreferences cloud function

This would be a great quality-of-life improvement for users who work across multiple devices or browsers.

Code of Conduct

  • I agree to follow this project's Code of Conduct
  • I have searched the existing issues & discussions to make sure that this is not a duplicate.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions