Mac design handoff utilities for colors, URLs, and snippets
Design handoff is usually not a grand ceremony. It is a copied hex value, a URL with unsafe characters, a JSON blob, a screenshot, and a developer asking for the exact thing in a different format.
The best Mac design handoff setup is boring: use local tools for color values, URL encoding, JSON, copied strings, screenshots, and files; use web tools only when the job depends on the web or the input is already public.
That rule saves two kinds of friction. You stop reopening the same browser utilities, and you stop pasting private work material into tools you have not vetted. The workflow is faster, but the privacy point is the real reason to build the habit.
My bias is plain. I build TeenyApps. For this particular workflow, the two relevant apps are TeenyColor for screen colors and TeenyTool for local text, developer, image, color, PDF, clock, math, and random utilities.
Quick answer
| Handoff job | Keep it local when... | Web is fine when... |
|---|---|---|
| Copying a color from the screen | The color came from client work, an unreleased UI, or you need CSS, SwiftUI, UIColor, HSL, or history. | You only need to inspect a public color once. |
| Encoding or decoding a URL | The URL contains tokens, internal paths, customer IDs, campaign drafts, or private query values. | The URL is a public docs sample or fake test case. |
| Formatting JSON or copied payloads | The payload came from logs, support tickets, app state, or production systems. | The payload is fake data in public documentation. |
| Sharing a screenshot or file | The file is in motion between apps and should not become a Desktop cleanup task. | You are uploading it to the actual destination. |
01Color handoff starts with the paste target
A designer may say "use this blue." A developer needs a specific value: #2E66F5, rgb(46, 102, 245), hsl(224, 91%, 57%), Color(red: 0.18, green: 0.40, blue: 0.96), or a UIKit initializer. The hard part is rarely sampling the pixel. It is copying the right form without doing another conversion.
Apple's Digital Color Meter is useful for inspection. It can show the color under the pointer, choose color spaces, lock the aperture, and copy a color value as text. That is enough for a one-off check.
TeenyColor goes deeper on the repeat workflow. The source uses AppKit's NSColorSampler, converts the sampled color to sRGB, copies the selected format to the pasteboard, keeps local history, supports pinned colors, exports palettes, and shows contrast against white and black. That makes it better when a color becomes part of a small handoff loop instead of a one-time inspection.
The matching TeenyColor spoke is copying color codes on Mac. It focuses on when to use hex, RGB, HSL, CSS rgba, SwiftUI Color, or UIColor after sampling.
02Pick formats by where the value lands
Do not copy every color as hex out of habit. Hex is the default for CSS and a lot of design notes. HSL is better when someone will tune hue, saturation, or lightness by hand. SwiftUI Color or UIColor is better when the next stop is source code. CSS rgba is better when alpha needs to be visible in the value.
TeenyColor currently supports nine copy formats: Hex, lowercase hex, RGB, RGB decimal, HSL, HSB/HSV, SwiftUI Color, UIColor, and CSS rgba. That list is deliberately not infinite. The useful formats are the ones a Mac designer or developer actually pastes during handoff.
If you reuse the same project colors, keep them pinned and named. A short pinned set beats a giant color library: brand color, text color, background, border, success, warning, danger, and one or two product accents.
03URL encoding is a component problem
URL encoding looks like a tiny task until the wrong part gets encoded. A full URL, a path segment, a query key, and a query value do not all have the same rules. Apple's Foundation documentation says entire URL strings cannot be percent-encoded with one character set because each component allows different characters.
That matters in handoff work. A copied campaign URL may contain spaces. A search string may include &. An internal route may include a nested redirect URL. A support link may carry IDs that should not visit an online encoder just because the task takes ten seconds.
TeenyTool includes a URL Codec with Encode and Decode modes. Its normal encode path preserves URL structure for query-style work, and its Full Encode mode encodes more aggressively by keeping only the RFC 3986 unreserved characters. That is a practical local split: keep structure when you are preparing a URL, fully encode when you are preparing a component or copied value.
The matching TeenyTool spoke is offline URL encoding and decoding on Mac. It gives the practical decision rules for query values, nested redirects, and private copied parameters.
04Keep private copied work out of random tabs
Design and development handoff generates small private fragments all day: unpublished landing page copy, customer-facing URLs, internal product IDs, API examples, support payloads, feature flags, asset names, and screenshot text.
None of those fragments feels important enough to open a heavyweight app. That is why people paste them into whatever formatter, encoder, decoder, or color tool shows up first. The better question is simple: would you be comfortable attaching this exact text to a public issue? If not, use a local tool.
This is the same rule in the deeper local Mac utilities vs online tools guide. Private, repeated, easy-on-device work should stay on the Mac. The browser is still right for public demos, live validators, collaborative docs, and services that have to be online.
05Build a small handoff kit
| Slot | Recommended local tool | Why it earns a place |
|---|---|---|
| Color values | TeenyColor | Pick any screen color, copy the right format, keep local history, pin project colors, and export palettes. |
| URLs and text transforms | TeenyTool | Keep URL Codec, JSON Formatter, Base64 Codec, JWT Decoder, String Escape, Hash Generator, and related tools nearby. |
| Screenshots | TeenyScreeny for screen-time context, or your preferred screenshot app for capture. | Use capture tools for the actual image. Keep context and cleanup separate. |
| Temporary files | TeenyShelf | Park files between apps without turning Desktop into a staging area. |
What this does not replace
Local utilities do not replace design systems, version control, issue templates, accessibility reviews, or proper QA. A color picker can tell you a value. It cannot decide whether the product should use that color. A URL codec can prepare a value. It cannot prove the final campaign link has the right analytics model.
Use the small utilities for the small handoff jobs. Keep the decisions in the actual tools of record: source code, design files, docs, tickets, analytics systems, and the shipped app.
Sources checked
- TeenyColor claims were checked against the local homepage and source files for
NSColorSampler, sRGB conversion, copy formats, pasteboard writing, history, pinning, export, and contrast checks. - TeenyTool claims were checked against the local homepage and source files for URL Codec, JSON Formatter, Base64 Codec, favorites, shortcuts, and network exceptions.
- Apple Digital Color Meter User Guide for built-in color inspection and copy behavior.
- Apple NSColorSampler documentation for AppKit color sampling.
- Apple Foundation addingPercentEncoding documentation for component-specific URL encoding.
- RFC 3986 for URI syntax, percent-encoding, reserved characters, and unreserved characters.
Keep handoff work close to the work.
TeenyApps are native Mac menu bar utilities for screenshots, clipboard history, sound, mic mute, screen time, displays, colors, stats, file handoff, and local utility work.