From 1f3c9871e1d592d9b49a5cc904fb7559882d95eb Mon Sep 17 00:00:00 2001 From: Paul Solt Date: Tue, 28 Apr 2026 12:36:57 -0400 Subject: [PATCH 1/3] Fixes cursor color on the Geometry Editor screens in dark mode. --- Mage/GeometryEditViewController.m | 1 + 1 file changed, 1 insertion(+) diff --git a/Mage/GeometryEditViewController.m b/Mage/GeometryEditViewController.m index f110cb73a..dba4154b8 100644 --- a/Mage/GeometryEditViewController.m +++ b/Mage/GeometryEditViewController.m @@ -89,6 +89,7 @@ - (void) themeTextField: (MDCFilledTextField *) field withScheme: (id Date: Tue, 28 Apr 2026 12:38:07 -0400 Subject: [PATCH 2/3] Fixes Dark Mode cursor color for new user, login, and change password text fields. --- Mage/ChangePasswordViewController.m | 5 +++++ Mage/LdapLoginView.m | 3 +++ Mage/LocalLoginView.m | 2 ++ Mage/ServerURLController.swift | 1 + Mage/SignUpViewController.m | 8 ++++++++ 5 files changed, 19 insertions(+) diff --git a/Mage/ChangePasswordViewController.m b/Mage/ChangePasswordViewController.m index 3d0dc1ef1..40eea334f 100644 --- a/Mage/ChangePasswordViewController.m +++ b/Mage/ChangePasswordViewController.m @@ -64,6 +64,11 @@ - (void) applyThemeWithContainerScheme:(id)containerScheme self.passwordField.leadingView.tintColor = [self.scheme.colorScheme.onSurfaceColor colorWithAlphaComponent:0.6]; self.confirmPasswordField.leadingView.tintColor = [self.scheme.colorScheme.onSurfaceColor colorWithAlphaComponent:0.6]; self.currentPasswordField.leadingView.tintColor = [self.scheme.colorScheme.onSurfaceColor colorWithAlphaComponent:0.6]; + + self.usernameField.tintColor = self.scheme.colorScheme.onSurfaceColor; + self.passwordField.tintColor = self.scheme.colorScheme.onSurfaceColor; + self.currentPasswordField.tintColor = self.scheme.colorScheme.onSurfaceColor; + self.confirmPasswordField.tintColor = self.scheme.colorScheme.onSurfaceColor; self.mageLabel.textColor = self.scheme.colorScheme.primaryColorVariant; self.wandLabel.textColor = self.scheme.colorScheme.primaryColorVariant; diff --git a/Mage/LdapLoginView.m b/Mage/LdapLoginView.m index 2e4754866..c28fcaa27 100644 --- a/Mage/LdapLoginView.m +++ b/Mage/LdapLoginView.m @@ -39,6 +39,9 @@ - (void) applyThemeWithContainerScheme:(id)containerScheme self.usernameField.leadingView.tintColor = [self.scheme.colorScheme.onSurfaceColor colorWithAlphaComponent:0.6]; self.passwordField.leadingView.tintColor = [self.scheme.colorScheme.onSurfaceColor colorWithAlphaComponent:0.6]; + self.usernameField.tintColor = self.scheme.colorScheme.onSurfaceColor; + self.passwordField.tintColor = self.scheme.colorScheme.onSurfaceColor; + self.showPasswordLabel.textColor = [self.scheme.colorScheme.onSurfaceColor colorWithAlphaComponent:0.6]; [self.authenticationButton applyThemeWithContainerScheme:containerScheme]; diff --git a/Mage/LocalLoginView.m b/Mage/LocalLoginView.m index cdf0d1c09..01f9e057a 100644 --- a/Mage/LocalLoginView.m +++ b/Mage/LocalLoginView.m @@ -37,6 +37,8 @@ - (void) applyThemeWithContainerScheme:(id)containerScheme self.usernameField.leadingView.tintColor = [self.scheme.colorScheme.onSurfaceColor colorWithAlphaComponent:0.6]; self.passwordField.leadingView.tintColor = [self.scheme.colorScheme.onSurfaceColor colorWithAlphaComponent:0.6]; + self.usernameField.tintColor = self.scheme.colorScheme.onSurfaceColor; + self.passwordField.tintColor = self.scheme.colorScheme.onSurfaceColor; self.showPasswordLabel.textColor = [self.scheme.colorScheme.onSurfaceColor colorWithAlphaComponent:0.6]; self.signupDescription.textColor = [self.scheme.colorScheme.onSurfaceColor colorWithAlphaComponent:0.6]; diff --git a/Mage/ServerURLController.swift b/Mage/ServerURLController.swift index 236bfbec5..32bf70be7 100644 --- a/Mage/ServerURLController.swift +++ b/Mage/ServerURLController.swift @@ -165,6 +165,7 @@ class ServerURLController: UIViewController { okButton.applyContainedTheme(withScheme: scheme) cancelButton.applyContainedTheme(withScheme: scheme) serverURL.applyTheme(withScheme: scheme) + serverURL.tintColor = scheme.colorScheme.onSurfaceColor serverURL.leadingView?.tintColor = scheme.colorScheme.onSurfaceColor.withAlphaComponent(0.6) errorImage.tintColor = scheme.colorScheme.errorColor errorInfoLink.textColor = scheme.colorScheme.primaryColorVariant diff --git a/Mage/SignUpViewController.m b/Mage/SignUpViewController.m index f9915adbc..18998fc6b 100644 --- a/Mage/SignUpViewController.m +++ b/Mage/SignUpViewController.m @@ -93,6 +93,14 @@ - (void) applyThemeWithContainerScheme:(id)containerScheme self.email.leadingView.tintColor = [self.scheme.colorScheme.onSurfaceColor colorWithAlphaComponent:0.6]; self.phone.leadingView.tintColor = [self.scheme.colorScheme.onSurfaceColor colorWithAlphaComponent:0.6]; self.captchaText.leadingView.tintColor = [self.scheme.colorScheme.onSurfaceColor colorWithAlphaComponent:0.6]; + + self.username.tintColor = self.scheme.colorScheme.onSurfaceColor; + self.displayName.tintColor = self.scheme.colorScheme.onSurfaceColor; + self.password.tintColor = self.scheme.colorScheme.onSurfaceColor; + self.passwordConfirm.tintColor = self.scheme.colorScheme.onSurfaceColor; + self.email.tintColor = self.scheme.colorScheme.onSurfaceColor; + self.phone.tintColor = self.scheme.colorScheme.onSurfaceColor; + self.captchaText.tintColor = self.scheme.colorScheme.onSurfaceColor; self.captchaProgressView.backgroundColor = self.scheme.colorScheme.surfaceColor; self.captchaProgressLabel.textColor = [self.scheme.colorScheme.onSurfaceColor colorWithAlphaComponent:0.6]; From 5f2aaca6f9858992898911b4e9638c014e5bd389 Mon Sep 17 00:00:00 2001 From: Paul Solt Date: Tue, 28 Apr 2026 14:03:05 -0400 Subject: [PATCH 3/3] Fixes the floating label color of the text field titles: i.e. Username, Password, etc. * Fixes the cursor color on the Mage Server URL screen --- Mage/ChangePasswordViewController.m | 5 +++++ Mage/GeometryEditViewController.m | 2 ++ Mage/LdapLoginView.m | 3 +++ Mage/LocalLoginView.m | 6 ++++-- Mage/ServerURLController.swift | 14 ++++++++++---- Mage/SignUpViewController.m | 8 ++++++++ 6 files changed, 32 insertions(+), 6 deletions(-) diff --git a/Mage/ChangePasswordViewController.m b/Mage/ChangePasswordViewController.m index 40eea334f..dc940d0e2 100644 --- a/Mage/ChangePasswordViewController.m +++ b/Mage/ChangePasswordViewController.m @@ -59,6 +59,11 @@ - (void) applyThemeWithContainerScheme:(id)containerScheme [self.passwordField applyThemeWithScheme:containerScheme]; [self.currentPasswordField applyThemeWithScheme:containerScheme]; [self.confirmPasswordField applyThemeWithScheme:containerScheme]; + UIColor *placeholderTextColor = [self.scheme.colorScheme.onSurfaceColor colorWithAlphaComponent:0.6]; + [self.usernameField setFloatingLabelColor:placeholderTextColor forState:MDCTextControlStateEditing]; + [self.passwordField setFloatingLabelColor:placeholderTextColor forState:MDCTextControlStateEditing]; + [self.currentPasswordField setFloatingLabelColor:placeholderTextColor forState:MDCTextControlStateEditing]; + [self.confirmPasswordField setFloatingLabelColor:placeholderTextColor forState:MDCTextControlStateEditing]; self.usernameField.leadingView.tintColor = [self.scheme.colorScheme.onSurfaceColor colorWithAlphaComponent:0.6]; self.passwordField.leadingView.tintColor = [self.scheme.colorScheme.onSurfaceColor colorWithAlphaComponent:0.6]; diff --git a/Mage/GeometryEditViewController.m b/Mage/GeometryEditViewController.m index dba4154b8..756bb8e29 100644 --- a/Mage/GeometryEditViewController.m +++ b/Mage/GeometryEditViewController.m @@ -89,6 +89,8 @@ - (void) themeTextField: (MDCFilledTextField *) field withScheme: (id)containerScheme } [self.usernameField applyThemeWithScheme:containerScheme]; [self.passwordField applyThemeWithScheme:containerScheme]; + UIColor *placeholderTextColor = [self.scheme.colorScheme.onSurfaceColor colorWithAlphaComponent:0.6]; + [self.usernameField setFloatingLabelColor:placeholderTextColor forState:MDCTextControlStateEditing]; + [self.passwordField setFloatingLabelColor:placeholderTextColor forState:MDCTextControlStateEditing]; self.usernameField.leadingView.tintColor = [self.scheme.colorScheme.onSurfaceColor colorWithAlphaComponent:0.6]; self.passwordField.leadingView.tintColor = [self.scheme.colorScheme.onSurfaceColor colorWithAlphaComponent:0.6]; diff --git a/Mage/LocalLoginView.m b/Mage/LocalLoginView.m index 01f9e057a..7e677a3b3 100644 --- a/Mage/LocalLoginView.m +++ b/Mage/LocalLoginView.m @@ -34,7 +34,10 @@ - (void) applyThemeWithContainerScheme:(id)containerScheme self.scheme = containerScheme; [self.usernameField applyThemeWithScheme:containerScheme]; [self.passwordField applyThemeWithScheme:containerScheme]; - + UIColor *placeholderTextColor = [self.scheme.colorScheme.onSurfaceColor colorWithAlphaComponent:0.6]; + [self.usernameField setFloatingLabelColor:placeholderTextColor forState:MDCTextControlStateEditing]; + [self.passwordField setFloatingLabelColor:placeholderTextColor forState:MDCTextControlStateEditing]; + self.usernameField.leadingView.tintColor = [self.scheme.colorScheme.onSurfaceColor colorWithAlphaComponent:0.6]; self.passwordField.leadingView.tintColor = [self.scheme.colorScheme.onSurfaceColor colorWithAlphaComponent:0.6]; self.usernameField.tintColor = self.scheme.colorScheme.onSurfaceColor; @@ -202,4 +205,3 @@ - (IBAction)signupTapped:(id)sender { } @end - diff --git a/Mage/ServerURLController.swift b/Mage/ServerURLController.swift index 32bf70be7..86882b295 100644 --- a/Mage/ServerURLController.swift +++ b/Mage/ServerURLController.swift @@ -164,13 +164,19 @@ class ServerURLController: UIViewController { errorStatus.textColor = scheme.colorScheme.onSurfaceColor.withAlphaComponent(0.6) okButton.applyContainedTheme(withScheme: scheme) cancelButton.applyContainedTheme(withScheme: scheme) - serverURL.applyTheme(withScheme: scheme) - serverURL.tintColor = scheme.colorScheme.onSurfaceColor + applyServerURLNormalTheme(with: scheme) serverURL.leadingView?.tintColor = scheme.colorScheme.onSurfaceColor.withAlphaComponent(0.6) errorImage.tintColor = scheme.colorScheme.errorColor errorInfoLink.textColor = scheme.colorScheme.primaryColorVariant errorInfoLink.font = UIFont.systemFont(ofSize: 12) } + + private func applyServerURLNormalTheme(with scheme: MDCContainerScheming) { + serverURL.applyTheme(withScheme: scheme) + let placeholderTextColor = scheme.colorScheme.onSurfaceColor.withAlphaComponent(0.6) + serverURL.tintColor = scheme.colorScheme.onSurfaceColor + serverURL.setFloatingLabelColor(placeholderTextColor, for: .editing) + } public override func viewDidLoad() { super.viewDidLoad(); @@ -197,7 +203,7 @@ class ServerURLController: UIViewController { cancelButton.isHidden = true serverURL.text = url?.absoluteString } else if let scheme = scheme { - serverURL.applyTheme(withScheme: scheme) + applyServerURLNormalTheme(with: scheme) } if let url = url { @@ -299,7 +305,7 @@ class ServerURLController: UIViewController { progressView.startAnimating() delegate?.setServerURL(url: url) if let scheme = scheme { - serverURL.applyTheme(withScheme: scheme) + applyServerURLNormalTheme(with: scheme) } } else { showError(error: "Invalid URL") diff --git a/Mage/SignUpViewController.m b/Mage/SignUpViewController.m index 18998fc6b..e110f2bae 100644 --- a/Mage/SignUpViewController.m +++ b/Mage/SignUpViewController.m @@ -85,6 +85,14 @@ - (void) applyThemeWithContainerScheme:(id)containerScheme [self.email applyThemeWithScheme:containerScheme]; [self.phone applyThemeWithScheme:containerScheme]; [self.captchaText applyThemeWithScheme:containerScheme]; + UIColor *placeholderTextColor = [self.scheme.colorScheme.onSurfaceColor colorWithAlphaComponent:0.6]; + [self.username setFloatingLabelColor:placeholderTextColor forState:MDCTextControlStateEditing]; + [self.displayName setFloatingLabelColor:placeholderTextColor forState:MDCTextControlStateEditing]; + [self.password setFloatingLabelColor:placeholderTextColor forState:MDCTextControlStateEditing]; + [self.passwordConfirm setFloatingLabelColor:placeholderTextColor forState:MDCTextControlStateEditing]; + [self.email setFloatingLabelColor:placeholderTextColor forState:MDCTextControlStateEditing]; + [self.phone setFloatingLabelColor:placeholderTextColor forState:MDCTextControlStateEditing]; + [self.captchaText setFloatingLabelColor:placeholderTextColor forState:MDCTextControlStateEditing]; self.username.leadingView.tintColor = [self.scheme.colorScheme.onSurfaceColor colorWithAlphaComponent:0.6]; self.displayName.leadingView.tintColor = [self.scheme.colorScheme.onSurfaceColor colorWithAlphaComponent:0.6];