nextcloud / nextcloud/server

[Bug]: The icons for 2FA providers remain white regardless of whether the theme is dark or light

Open
#56,818 3 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

1. to develop 31-feedback 32-feedback browser: chrome browser: firefox bug design papercut
Dominant language
PHP
Stars
36.9k
Forks
5.2k
Avg merge
2d 3h
Merged PRs (30d)
713

Description

⚠️ This issue respects the following points: ⚠️
Bug description
Nextcloud 31
Dark theme Light theme
Image Image
Nextcloud 32
Dark theme Light theme
Image Image
Steps to reproduce
  1. Enable 2FA provider(s)
  2. Go to login screen and seize username and password
  3. Once arrived to the 2FA screen, test it with dark and light theme
  4. See that 2FA providers' icons are always light, event when theme is light (hard to see) = lack of contrast, especially for visually impaired persons
Expected behavior

When theme is light, 2FA providers' icons must be dark

Nextcloud Server version

31

Operating system

Debian/Ubuntu

PHP engine version

PHP 8.3

Web server

Nginx

Database engine version

MySQL

Is this bug present after an update or on a fresh install?

Updated from a MINOR version (ex. 32.0.1 to 32.0.2)

Are you using the Nextcloud Server Encryption module?

Encryption is Disabled

What user-backends are you using?
  • Default user-backend (database)
  • LDAP/ Active Directory
  • SSO - SAML
  • Other
Configuration report
{
    "upgrade.disable-web": true,
    "simpleSignUpLink.shown": false,
    "skeletondirectory": "\/var\/www\/html\/themes\/hetzner\/skeleton",
    "templatedirectory": "\/var\/www\/html\/core\/skeleton\/Templates\/",
    "davstorage.request_timeout": 10800,
    "activity_expire_days": "31",
    "enabledPreviewProviders": [
        "OC\\Preview\\PNG",
        "OC\\Preview\\JPEG",
        "OC\\Preview\\GIF",
        "OC\\Preview\\BMP",
        "OC\\Preview\\XBitmap",
        "OC\\Preview\\MP3",
        "OC\\Preview\\TXT",
        "OC\\Preview\\MarkDown",
        "OC\\Preview\\OpenDocument",
        "OC\\Preview\\Krita",
        "OC\\Preview\\HEIC",
        "OC\\Preview\\Image"
    ],
    "forbidden_filenames": [],
    "remember_login_cookie_lifetime": 0,
    "memcache.local": "\\OC\\Memcache\\APCu",
    "appstoreurl": "https:\/\/apps.",
    "allow_local_remote_servers": true,
    "apps_paths": [
        {
            "path": "\/var\/www\/html\/apps",
            "url": "\/apps",
            "writable": false
        },
        {
            "path": "\/var\/www\/html\/custom_apps",
            "url": "\/custom_apps",
            "writable": true
        }
    ],
    "files_external_allow_create_new_local": false,
    "loglevel": 2,
    "log_type": "syslog",
    "updatechecker": false,
    "updater.server.url": "***REMOVED SENSITIVE VALUE***",
    "passwordsalt": "***REMOVED SENSITIVE VALUE***",
    "secret": "***REMOVED SENSITIVE VALUE***",
    "datadirectory": "***REMOVED SENSITIVE VALUE***",
    "dbtype": "mysql",
    "version": "31.0.10.2",
    "overwrite.cli.url": "https:\/\/",
    "dbname": "***REMOVED SENSITIVE VALUE***",
    "dbhost": "***REMOVED SENSITIVE VALUE***",
    "dbport": "",
    "dbtableprefix": "oc_",
    "mysql.utf8mb4": true,
    "dbuser": "***REMOVED SENSITIVE VALUE***",
    "dbpassword": "***REMOVED SENSITIVE VALUE***",
    "installed": true,
    "instanceid": "***REMOVED SENSITIVE VALUE***",
    "default_language": "fr",
    "default_locale": "fr",
    "default_phone_region": "FR",
    "mail_smtpmode": "smtp",
    "mail_smtpauthtype": "LOGIN",
    "mail_smtphost": "***REMOVED SENSITIVE VALUE***",
    "mail_from_address": "***REMOVED SENSITIVE VALUE***",
    "mail_domain": "***REMOVED SENSITIVE VALUE***",
    "syslog_tag": "",
    "maintenance_window_start": 19,
    "redis": {
        "host": "***REMOVED SENSITIVE VALUE***",
        "port": "6379",
        "timeout": "1.5",
        "dbindex": "0"
    },
    "filelocking.enabled": true,
    "memcache.locking": "\\OC\\Memcache\\Redis",
    "memcache.distributed": "\\OC\\Memcache\\Redis",
    "maintenance": false,
    "defaultapp": "",
    "mail_sendmailmode": "smtp",
    "mail_smtpport": "465",
    "mail_smtpauth": true,
    "mail_smtpname": "***REMOVED SENSITIVE VALUE***",
    "mail_smtppassword": "***REMOVED SENSITIVE VALUE***",
    "app_install_overwrite": [],
    "memories.exiftool": "\/var\/www\/html\/custom_apps\/memories\/bin-ext\/exiftool-amd64-glibc",
    "memories.vod.path": "\/var\/www\/html\/custom_apps\/memories\/bin-ext\/go-vod-amd64",
    "twofactor_enforced": "false",
    "twofactor_enforced_groups": [],
    "twofactor_enforced_excluded_groups": [
        "Machines Gr\u00e9sy"
    ],
    "trusted_domains": [
        ""
    ]
}
List of activated Apps
Enabled:
 - activity: 4.0.0
 - announcementbanner: 1.0.2
 - app_api: 5.0.2
 - bruteforcesettings: 4.0.0
 - calendar: 5.5.9
 - call_summary_bot: 3.1.0
 - camerarawpreviews: 0.8.8
 - circles: 31.0.0
 - collectives: 3.3.0
 - comments: 1.21.0
 - contacts: 7.3.8
 - contactsinteraction: 1.12.1
 - deck: 1.15.5
 - external: 6.0.2
 - federation: 1.21.0
 - files_accesscontrol: 2.0.3
 - files_automatedtagging: 2.0.1
 - files_downloadlimit: 4.0.0
 - files_lock: 31.0.3
 - files_pdfviewer: 4.0.0
 - files_reminders: 1.4.0
 - files_sharing: 1.23.1
 - files_trashbin: 1.21.0
 - files_versions: 1.24.0
 - firstrunwizard: 4.0.0
 - groupfolders: 19.1.10
 - htmlviewer: 31.0.0
 - impersonate: 2.0.0
 - mail: 5.6.2
 - metadata: 0.23.0
 - nextcloud_announcements: 3.0.0
 - notes: 4.12.4
 - notifications: 4.0.0
 - notify_push: 1.2.1
 - ownershiptransfer: 1.3.0
 - password_policy: 3.0.0
 - passwords: 2025.11.10
 - photos: 4.0.0
 - polls: 8.5.0
 - previewgenerator: 5.11.0
 - privacy: 3.0.0
 - quota_warning: 1.22.0
 - recommendations: 4.0.0
 - richdocuments: 8.7.7
 - secrets: 2.1.4
 - serverinfo: 3.0.0
 - sharebymail: 1.21.0
 - sharereview: 2.0.0
 - spreed: 21.1.5
 - support: 3.0.0
 - systemtags: 1.21.1
 - tables: 1.0.1
 - text: 5.0.2
 - theming_customcss: 1.19.0
 - twofactor_admin: 4.9.0
 - twofactor_email: 2.8.3
 - twofactor_nextcloud_notification: 5.0.0
 - twofactor_totp: 13.0.0-dev.0
 - updatenotification: 1.21.0
 - user_status: 1.11.0
 - weather_status: 1.11.0
 - webhook_listeners: 1.2.0
 - workflow_media_converter: 1.15.1
 - workflow_pdf_converter: 2.0.0
Disabled:
 - admin_audit
 - dashboard: 7.11.0
 - encryption
 - files_external
 - logreader: 4.0.0
 - related_resources: 2.0.0
 - survey_client: 3.0.0
 - suspicious_login
 - user_ldap
Nextcloud Signing status
No errors have been found.
Nextcloud Logs
Can be provided is necessary
Additional info

No response

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start at the 2FA screen described in the reproduction steps and trace how the provider icons are rendered under the dark and light themes. Done means the icons have sufficient contrast and appear dark in the light theme while remaining appropriate for the dark theme; verify both theme variants with enabled 2FA providers.

Written by the indexing model from the issue text.

Assessment

Domain
accessibility, frontend
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.