Proposal: Fix macOS Login Input Field Visibility
Overview
Change ID: fix-macos-login-input-visibility
Problem: On macOS, the username and password Entry input fields in the LoginWindow are not visible (appearing as empty/transparent), while checkboxes display correctly. This prevents users from seeing what they're typing during login.
Impact: Critical usability issue - users on macOS cannot effectively use the login functionality as they cannot see the input fields or their typed content.
Root Cause Analysis
After analyzing image_generator.py lines 162-183, the issue stems from:
-
Missing explicit background color: Entry widgets on lines 162-166 and 178-183 don't specify a
bgparameter - Theme compatibility: The 'clam' theme (line 123) may render Entry widgets with system-default colors that conflict with macOS's window background
-
No explicit styling: Unlike labels and frames which have explicit
bg='white', Entry widgets rely on theme defaults
The checkboxes work because they explicitly set bg='white' and activebackground='white' (lines 199-214).
Proposed Solution
Add explicit background and foreground colors to both Entry widgets to ensure visibility across all platforms, matching the pattern already used for other UI elements.
Changes Required:
- Add
bg='#fafafa'(light gray background for better contrast) - Add
fg='#000000'(explicit black text) - Optionally add
insertbackground='#000000'(cursor color) for better visibility
This approach:
- Maintains consistency with the main app's text input styling (see line 627:
bg='#fafafa') - Follows the existing pattern of explicit color specification
- Minimal risk - only affects visual rendering, not functionality
Alternative Approaches Considered
- Change theme from 'clam': Would affect entire UI consistency
- Platform-specific code: Adds complexity and maintenance burden
- Use ttk.Entry instead of tk.Entry: May have other side effects
Dependencies
None - this is a self-contained UI fix.
Risks
- Minimal: Only changes visual appearance
- No breaking changes to functionality
- Backwards compatible
Testing Strategy
- Manual testing on macOS to verify input fields are visible
- Verify on Windows/Linux that appearance remains acceptable
- Test both light and dark system themes