Skip to content

Improve GUI appearance on macOS 26 - #962

Open
Portles wants to merge 1 commit into
bitcoin-core:masterfrom
Portles:30-08-2026-macos-liquid-glass
Open

Improve GUI appearance on macOS 26#962
Portles wants to merge 1 commit into
bitcoin-core:masterfrom
Portles:30-08-2026-macos-liquid-glass

Conversation

@Portles

@Portles Portles commented Aug 30, 2026

Copy link
Copy Markdown

On macOS 26, Bitcoin Core’s existing Qt widgets retain the appearance used on earlier macOS releases.
This makes text fields, spin boxes, the main toolbar, and the Node window tabs look liquid glass design with the updated system interface.
This change applies macOS 26-specific liquid glass styling to these controls. It rounds text and spin boxes, unifies the main title bar and toolbar, and styles the Node window tabs using qt palette colors.
The liquid glass styling is enabled only at runtime on macOS 26 or later and is not activated on earlier releases.
Spin-box arrows are provided as 1x and 2x png resources to avoid introducing a QtSvg runtime dependency.

Cool note: Not manually tested on macOS versions earlier than 26.

@DrahtBot

DrahtBot commented Aug 30, 2026

Copy link
Copy Markdown
Contributor

The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.

Reviews

See the guideline and AI policy for information on the review process.
A summary of reviews will appear here.

@Portles
Portles force-pushed the 30-08-2026-macos-liquid-glass branch from 51593be to 9292f1e Compare August 30, 2026 20:05
@DrahtBot

Copy link
Copy Markdown
Contributor

🚧 At least one of the CI tasks failed.
Task lint: https://github.com/bitcoin-core/gui/actions/runs/33320671988/job/99287843470
LLM reason (✨ experimental): CI failed because the lint “includes_build_config” check detected usage of symbols from bitcoin-build-config.h without directly including the header (in src/qt/test/apptests.cpp).

Hints

Try to run the tests locally, according to the documentation. However, a CI failure may still
happen due to a number of reasons, for example:

  • Possibly due to a silent merge conflict (the changes in this pull request being
    incompatible with the current code in the target branch). If so, make sure to rebase on the latest
    commit of the target branch.

  • A sanitizer issue, which can only be found by compiling with the sanitizer and running the
    affected test.

  • An intermittent issue.

Leave a comment here, if you need help tracking down a confusing failure.

@hebasto hebasto changed the title qt: Improve GUI appearance on macOS 26 Improve GUI appearance on macOS 26 Sep 1, 2026

@hebasto hebasto left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Portles

Thank you for your contribution!

However, we usually rely solely on the themes provided by Qt and do not attempt to adjust the GUI appearance to match the native style of any particular OS. Otherwise, that would impose an extra burden on code review, testing, and maintenance.

@DrahtBot DrahtBot removed the CI failed label Sep 1, 2026
@Portles

Portles commented Sep 3, 2026

Copy link
Copy Markdown
Author

@hebasto

Thank you for your reply

I understand the maintenance concern.
To clarify, this change is not intended to make the application look more like native macOS. It only ensures that the existing Qt components continue to behave correctly on newer macOS versions, without changing the intended design. These behaviors are being enforced by newer macOS SDKs and toolchains, so this PR proactively prevents the UI issues that would otherwise appear in future builds.

And here is the proof: https://developer.apple.com/documentation/bundleresources/information-property-list/uidesignrequirescompatibility

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.

3 participants