Update app store screenshots for color feature#189
Conversation
Introduce a fourth App Store screenshot and add support for colorized/stacked rulers. Updated palette with light/dark text colors and added headline/description color helpers. Added AppStoreRulerStyle and extended AppStoreScreenshotLayout to configure per-ruler fill, opacity, border and shadow; AppStoreRulerPlacement now accepts a style and applies it when rendering. Screen3 now renders multiple colored rulers; screen4 renders the preferences-style rulers and preferences window snapshot. Make RulerColors accept a customFill, expose mutable color on RuleView and ResizeHandleView so previewed ruler styles propagate to subviews. Misc: various layout rect/size adjustments and preview registrations.
Refresh and reorganize App Store images: replace 01-measure-anything.png and 02-switch-units.png with updated versions, add 03-custom-colors.png, remove 03-customize-rulers.png, and add 04-customize-rulers.png. These changes update the app's storefront visuals and adjust the ruler customization screenshot set.
Refactor the screen3 ruler layout: replace the old X/Y/offset/length model with vertical, stacked rulers that curve between an arcTop and arcBottom. Introduce new layout constants (screen3FirstRulerX, screen3RulerGap, screen3RulerArcTop, screen3RulerArcBottom, screen3RulerCurvature, screen3RulerOffscreenBottom) and a screen3RulerTopY(index:) helper to compute each ruler's top Y, plus screen3RulerRect(index:) to build the rect. Increase screen3RulerScale and make rulers fully opaque, and switch placements to use AppStoreVerticalRule with updated bounds size calculation. These changes enable a curved, vertical ruler presentation and simplify per-ruler positioning.
Replace screen3 background literal with a shared layout constant and add that color to AppStoreScreenshotLayout. Update on-screen copy for screens 3 and 4 (titles and subtitles). Tweak layout metrics for screen4: adjust horizontal ruler Y, preferences window X/Y, scale, and content width/height to better align preview elements.
Align preview code with updated screenshot assets: swap labels and filenames for screen2/screen3 in AppStoreScreenshotPreview (preview names and image filenames), adjust the screens array and PreviewProvider ordering. Add new 02-custom-colors.png, remove the old 03-custom-colors.png, rename 02-switch-units.png -> 03-switch-units.png, and update 04-customize-rulers.png. This ensures previews reference the correct images and order.
There was a problem hiding this comment.
Pull request overview
This PR introduces a customizable ruler color preference (with reset support) and updates the rendering pipeline + Preferences UI accordingly, along with updates to the App Store screenshot generator/preview to showcase the new color feature.
Changes:
- Add
rulerColorto preferences (persisted inUserDefaults, normalized to device RGB with alpha forced to 1.0). - Derive ruler foreground/handle colors from the chosen fill color (contrast + saturation adjustments), and trigger ruler redraws when the preference changes.
- Update Preferences UI (XIB + controller + localized strings) and extend App Store screenshot rendering with a new “colors” slide/layout.
Reviewed changes
Copilot reviewed 3 out of 9 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| FreeRulerTests/RulerCoreTests.swift | Adds tests for default color, contrast derivation, and color normalization behavior. |
| Free Ruler/RuleView.swift | Reworks RulerColors to derive colors from prefs + adds NSColor helpers; supports redraw on preference changes. |
| Free Ruler/ResizeHandleView.swift | Makes color mutable so the handle can reflect updated ruler colors. |
| Free Ruler/Prefs.swift | Adds persisted rulerColor preference with normalization + color comparison helpers. |
| Free Ruler/PreferencesController.swift | Adds color well + reset button wiring, accessibility, and live updating when prefs change. |
| Free Ruler/Base.lproj/PreferencesController.xib | Updates the Preferences window layout to include ruler color controls. |
| Free Ruler/Localizable.xcstrings | Adds localized string for the reset button tooltip/accessibility label. |
| Free Ruler/de.lproj/PreferencesController.strings | Adds localized “Ruler Color” label. |
| Free Ruler/es.lproj/PreferencesController.strings | Adds localized “Ruler Color” label. |
| Free Ruler/fi.lproj/PreferencesController.strings | Adds localized “Ruler Color” label. |
| Free Ruler/ja.lproj/PreferencesController.strings | Adds localized “Ruler Color” label. |
| Free Ruler/zh-hans.lproj/PreferencesController.strings | Adds localized “Ruler Color” label. |
| Free Ruler/AppStoreScreenshotPreview.swift | Adds a new screenshot screen, new layout for colorized rulers, and updates filenames/order/text. |
| Free Ruler/AppDelegate.swift | Redraws rulers on rulerColor changes and resets the color during UI test state reset. |
| AGENTS.md | Updates contributor/agent workflow guidance and refines the recommended test command. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
[codex] @copilot please review again. Please do not make code changes. |
[copilot] Re-reviewed the current PR state and made no code changes, as requested. I don’t see additional actionable issues from this pass. |
Uh oh!
There was an error while loading. Please reload this page.