UX
This page collects general UX requirements.
Generally available buttons and menu items are disabled instead of not shown
req~ux.disabled-vs-hidden~1
When there is functionality generally available but cannot be executed at the present time, it is shown as disabled.
Example: Button to open a link. If there is no link, the button should be shown but not enabled.
Needs: impl
Confirmation dialogs use the action name as the confirm button label
req~ui.dialogs.confirmation.naming~1
In confirmation dialogs, the confirm button must be labeled with the specific action name (e.g., “Download full text documents”) rather than a generic label such as “OK” or “Yes”. This makes the intended action unambiguous and reduces the risk of accidental confirmation.
Needs: impl
Auto close of merge entries dialog
req~ux.auto-close.merge-entries~1
The merge entries dialog collects and merges data from multiple sources. In case there is only one source, it should not be shown. Since some data fetchers take time, we need to open the dialog and wait until all sources are available. As soon as only one source is available, the dialog should be closed to speed up the user’s workflow.
Needs: impl
Critical startup failures show an error dialog
req~ux.startup.critical-error-dialog~1
If a critical error occurs before the main window is fully constructed, it must not fail silently. The user needs a visible error dialog, in addition to the log entry, since digging through log files is not accessible to most users.
Needs: impl
Merge entries dialog allows selecting empty field values
req~ux.merge-entries.select-empty-field~1
When the merge entries dialog shows a field that is missing in one of the source entries, the user must be able to explicitly select that empty value so the merged entry is cleared for that field.
Needs: impl
GitHub personal access token verification
req~ux.git-share.personal-access-token-verification~1
The GitHub sharing dialog must allow users to verify that their personal access token has push access to the configured GitHub repository before sharing a library.
Needs: impl
Git pull with unrelated histories
req~ux.git-pull.unrelated-histories~1
Git pull must support a local library and its configured remote when their commit histories have no common ancestor.
Needs: impl
Git push to an empty remote
req~ux.git-push.empty-remote~1
Git push must publish the current branch and configure its upstream when the configured remote has no branches.
Needs: impl
Git push rejection reporting
req~ux.git-push.rejected-update-reporting~1
Git push must report a rejected remote update to the user.
Needs: impl
Activating large libraries keeps entry previews responsive
req~ux.active-library.preview-responsiveness~1
When a user activates a large library, automatic group construction and group-count evaluation must not delay rendering the selected entry preview.
Needs: impl