Further Refinements For #2737 (Modernize update alert)#2759
Further Refinements For #2737 (Modernize update alert)#2759noah-nuebling wants to merge 26 commits intosparkle-project:2.xfrom
Conversation
…er control over alignment and margins. The app icon is now exactly 50-by-50 and has margins of 20 on its top, left, and bottom. The 'Release Notes Box' should have vertical margins of 20, but the margins are larger in-app than the IB layout constraints specify and I don't understand why. Committing now as a checkpoint before investigating this further.
TODOs: - We're a bit inconsistent – in most places we use spacer views for vertical spacing, but for the checkbox we use an autolayout constraint on the wrapper view since that was easier to do - When the update notes are hidden the spacer below isn't removed, which leads to stacked spacers. I think I like this? But should probably make it controllable in code so it can be changed easily - Maybe check how the layout was before before when no checkbox was displayed. Now it looks a bit empty maybe? Haven't put too much thought into how that should be. - Proportions: - The app icon should maybe be bigger - The checkbox should maybe be bigger - Titlebar - Zorg didn't approve of adding the titlebar change I think. We should make it easily togglable in code. Maybe also see how it looks on Sequoia. - Code needs to be cleaned up
…s instead of layout constraints to be consistent (See TODOs in last commit)
…ut at some point I just kinda started noodling around and added background translucency and a spacer for behind the traffic lights to sort of recreate mockup 5. of my original mockups. Concrete changes from here that I can remember that we should undo is the background translucency and the change of the color to the title text. (I changed it from controlColor to labelColor IIRC, but they're the same anyways on Tahoe IIRC.) I think I'll just delete all the changes I made to the xib file here and start from scratch. I also implemented various different spacings and sizings for the bottom section. That I can toggle between in code. Maybe more stuff I forgot.
…test version of SUUpdateAlert.m TODOs: - Consider making the app icon bigger - Make the titlebar togglable - Maybeee try adding an NSGlassEffectView but in code, in a way that can be toggled on/off (We had already added a NSVisualEffectView in IB the reverted commit 61a0978, but that requires restructuring the entire xib file. Also NSAlert on Tahoe uses NSGlassEffectView not NSVisualEffectView.) - Cleanup code (Not sure they use macros like that)
…el-perfect for either)
…nged positioning of the text, though I'm not sure about that. Committing so I can test/keep developing on Sequoia.
…t only under Tahoe
…ets and moved the tahoe-button-inset code to use constraint-outlets instead of constraint-identfiers. (I didn't know you could do that) I think I'm happy with the layout in all situations on Sequoia now.
…ink I'm happy with it like this.
…quoia. (Will check under Tahoe next – perhaps they already were perfect there)
…nk. Also increases the contrast between the window background and the update notes box.
…ns back from 8 to 12 but only on macOS Sequoia. (Using new variable _constraint_choices_mainButtonSpacing)
|
I can also go through the xib file and undo all the changes that Xcode does automatically whenever you open the file. That might minimize conflicts or make things easier to review. |
…'remind me later' buttons is handled to match the way that the spacing between the 'remind me later' and 'install update' buttons is handled. On Tahoe, the former spacing is now >= 8 instead of >= 12. (But this is is only visible in edge-cases.)
|
Thanks for opening this. I think overall the UI changes here are very subtle but the code changes are very non-trivial / custom. Although personally I think I prefer the UI in 2.x (I think I like the transparent titlebar). At this point I think I'd expect a single small change (both UI and code delta change) with good justification. |
Delete the test app user defaults. On second launch it will show permission prompt. This works when apps do not override SUEnableAutomaticChecks in their Info.plist |
In my original post I also said thanks for that. Thanks! I also said that I understand if the changes are out of scope or don't align with your vision for the project. But since you talked about wanting a good justification for any changes I tried to make a more detailed case for why I think these changes are good. Another thing I said was that I think the visual changes are small but I think people do pick up on these visual symmetries and balanced-ness and will perceive the UI as a bit more simple, beautiful and polished, and thoughtfully crafted, and that they will appreciate that. But again – the changes are pretty small, and I think that if the UI ships as it is in 2.x it's already much more beautiful than before! I just tried to improve and polish things to the best of my abilities. |
…n, to simplify things. (Except for the 'Non-transparent titlebar' codepath)
|
There is a lot of information to process here. I'm trying to stabilize 2.8 so I want to take smaller changes with low risk (if possible). As for the leading padding on the icon images, I've noted before that seems to be intentional, depending on the image I guess? I have seen that in NSAlerts and in notifications too with the same icons too. Even though it is questionable. I'll see if I can come back to this thread and the details written here. I've other important things to work on meanwhile. |
That sounds reasonable. I understand. Thanks for looking into this.
That's an interesting point. One argument for aligning the icon with other things here is that the icon is like an "integrated" part of the layout for us while for standard NSAlert it feels more like it sits on top of the main layout separately. In that notification you linked to I cannot clearly see where things are aligned. I haven't looked at it closely, yet, but that's interesting. As for this comment you linked to:
The padding is 5 if the NSImage size is 60, which it is on NSAlert - if the image is larger, then the padding increases. The code changes in this PR make the two things independent. Good luck with the 2.8 update! |
|
Not taking changes right now and I don't think I can in the form of this PR. The icon alignment is tempting but I see app icons insetted in so many places. I believe the padding is baked into the images themselves, so it doesn't feel right to hardcode/assume a constant padding to negate by. |















Slight refinements on top of pull request #2737 ("Modernize update alert") based on the mockups I posted there shortly after the pull request was merged.
Screenshots
Overview
I did my best to create great visual harmony and balance everywhere, no matter which elements of the SUUpdateAlert are shown or hidden:
Tahoe
Click here to reveal!
Sequoia
Click here to reveal!
Darkmode
Darkmode has the same colors as before – still looks good.
Click here to reveal!
Tahoe:

Sequoia:

Variations
The code contains a couple of
if ((0))andif ((1))guards for alternate stylings, because I wasn't 100% sure about some details. I can delete those of course before this is merged. You can find all these by grepping forif ((0))andif ((1)).Variation: Transparent titlebar
This is closer to what's currently in #2737. I personally prefer the designs with a visible titlebar, but the code supports pixel-perfect layouts for both styles and you can easily flip back and forth.
Click here to reveal
Tahoe:

Sequoia:

Variation: Liquid Glass
Here's another fun one – liquid glass!
I'm not sure it's supposed to be used this way, but it looks kinda cool, and it does create some color contrast between the update notes and the window background, which is otherwise missing on Tahoe. (Cause everything is white)
I haven't spent much time trying to refine this, so if there's any interest I can put more work into that.
Click here to reveal
Code Questions
There are a few questionable things about the code currently, which may need to be changed before merging:
Other considerations and TODOs
SUStatus.xib,SUUpdatePermissionPrompt.xibor other UIs (if they exist?) to bring them in line.(I'm not sure how to test the SUUpdatePermissionPrompt.xib. I only know it exists because it showed up for me once randomly in the Sparkle Test App.)
Misc Checklist
Testing
I tested and verified my change by using one or multiple of these methods:
(Describe all the cases that were tested)
macOS version tested: macOS 15.5 (Sequoia) and macOS 26.0 Beta 7 (Tahoe)