Mac color picker history: reuse colors instead of sampling twice
The first pick is rarely the problem. The problem is needing the same color again ten minutes later, in a different format, after the original window is gone.
If you pick colors more than once a week, use a picker with history. A one-shot sampler is fine for checking a pixel. A history-aware picker is better for real design and development work because it lets you re-copy, rename, pin, and export colors after the moment has passed.
TeenyColor is built around that repeat workflow: pick a screen color with the native macOS sampler, auto-copy it in your chosen format, keep it in local history, pin important colors, and export the set when it becomes a palette.
When color history matters
| Situation | Without history | With history |
|---|---|---|
| Matching a screenshot | You reopen the screenshot and sample the same pixel again. | You copy the earlier pick from history, in the format you need now. |
| Building a small landing page | You keep a scratch note of hex values and hope they are labeled. | You pin the brand, accent, and background colors in the picker. |
| Moving between CSS and SwiftUI | You convert the same color by hand or use another website. | You copy the same picked color as hex, CSS rgba, SwiftUI Color, or UIColor. |
| Checking accessibility | You use a separate contrast checker after sampling. | You inspect contrast against white and black from the color detail view. |
How TeenyColor handles picked colors
The app uses Apple's NSColorSampler through AppKit's public sampler interface. After a pick, TeenyColor converts the sampled color to sRGB, stores red, green, blue, alpha, timestamp, optional name, and pin state, then writes the formatted value to the macOS pasteboard.
The normal history limit is user-selectable: 20, 50, or 100 unpinned colors. The default is 50. Pinned colors stay above the rolling history and are not removed when the normal history is trimmed. The app caps pinned colors at 100, which is enough for a working palette without turning the picker into a color database.
That behavior is deliberately local. Color history is encoded to local preferences on your Mac. There is no TeenyColor account, cloud palette service, or team workspace.
Use pinned colors for the small stable set
Do not pin every color you sample. Pin the colors you expect to reuse: brand orange, page background, body text, border gray, alert red, success green, and maybe one or two product-specific accents.
A good pinned color list should be boring. If it has thirty near-identical blues, it is no longer helping. Rename the important ones, delete the failed samples, and keep the pinned section short enough that you can scan it without thinking.
For TeenyApps work, a pinned set often looks like this: brand orange, dark text, muted text, cream background, light border, success, warning, and a dark-mode panel color. That is enough to rebuild most small marketing pages without searching through screenshots.
Copy formats should match the place you paste
History is more useful when each saved color can be copied in several forms. TeenyColor supports nine formats: Hex, lowercase hex, RGB, decimal RGB, HSL, HSB/HSV, SwiftUI Color, UIColor, and CSS rgba.
Use hex for most CSS and design handoff. Use CSS rgba when alpha needs to be visible in the value. Use SwiftUI Color or UIColor when the next stop is source code. Use HSL when you are adjusting a theme by hue, saturation, and lightness instead of nudging RGB channels by hand.
If the format choice is the part slowing you down, use the dedicated guide to copying color codes on Mac. It breaks down when hex, RGB, HSL, SwiftUI Color, UIColor, and CSS rgba make sense. If your source is a bug screenshot or captured UI state, the guide to picking colors from screenshots on Mac covers the extra accuracy traps.
The practical win is small but real. You do not need one color picker, one converter, and one scratch note. Pick once, then copy the same saved color in the syntax the next app expects.
Export when history becomes a palette
There is a point where history stops being personal memory and becomes a project asset. That is when export matters.
TeenyColor can export pinned colors or the full color list as text, using the currently selected output format. It can also export JSON. The JSON export includes hex, RGB, HSL, and the optional color name for each saved color, sorted by stable keys so the file is easy to diff.
Use text export when you want a quick paste into a ticket, README, or design note. Use JSON when another tool or script may consume the palette later.
What Digital Color Meter does not replace
Apple's Digital Color Meter is useful and free. It shows the color under the pointer, lets you change RGB display values, adjust aperture size, lock the aperture, choose a color space, and copy a color value as text.
That covers inspection. It does not cover reuse. Digital Color Meter is not designed around local color history, pinned swatches, palette export, or copying the same saved color as CSS one minute and SwiftUI the next. If you only inspect a pixel once, use the built-in app. If you come back to sampled colors later, use a picker with history.
Privacy and limits
A local color history still deserves care. If you pick colors from unreleased product screens, sensitive screenshots, or client work, treat the history as project data. Clear unpinned history when you are done, and pin only the colors you actually need.
TeenyColor's contrast view is also intentionally narrow. It checks the picked color against white and black with the WCAG contrast formula. That answers the common "can this color carry text on a light or dark background?" question. It is not a full design-system accessibility audit.
For the wider local-vs-online decision, see the TeenyApps guide to local Mac utilities vs online tools. The same privacy rule shows up in offline JSON formatting on Mac: private work should not visit a browser tab unless the web is part of the job.
Common questions
Does TeenyColor store color history locally?
Yes. TeenyColor stores picked colors in local UserDefaults data on the Mac. It does not use cloud sync.
How many colors can TeenyColor keep?
The normal history limit can be set to 20, 50, or 100 unpinned colors. Pinned colors are kept separately, with a cap of 100 pinned items.
Can TeenyColor export a palette?
Yes. It can export pinned colors or all colors as text in the selected format, or as JSON with hex, RGB, HSL, and optional names.
Sources checked
- TeenyColor feature claims were checked against the local homepage and source files for formats, picking, history limits, pinning, export, and contrast calculation.
- Apple NSColorSampler documentation for the system color-sampling interface.
- Apple NSPasteboard documentation for macOS pasteboard behavior.
- Apple Digital Color Meter User Guide for built-in color inspection and copy behavior.
- W3C WCAG contrast guidance for contrast ratio thresholds.
Pick once. Reuse later.
teenycolor is a $4.99 Mac menu bar color picker with auto-copy, local history, pinned colors, palette export, and nine copy formats.