Subway Status

Once you’ve lived in New York for a while, you don’t necessarily need a specific route to get between two points. You know roughly which subway lines will you get from point A to point B. The important thing becomes knowing which trains are operating normally and which are delayed or rerouted (which seems pretty common these days). To that end, the MTA site provides a status widget providing an overview, but I’d like it to be a single click (or two-finger swipe) away in the Today view of the Notifications Center. A similar display would also be useful on phones.

Subway status widget prototype screenshot

Interactive subway widget prototype (requires a browser that supports CSS Grid)

The brief SVG morph from the 7 local circle to express diamond is done using anime.js.

Safari Responsive Design Mode Polish

Here's the UI as seen in Safari Technical Preview 41, released October 4, 2017.

Safari Technical Preview 41 Responsive Design Mode

Revised Responsive Design Mode

Revised Safari Responsive Design Mode
Safari Responsive Design Mode - device icon hover showing rotate icon
  • Add a bandwidth throttling menu:
    1. Default Network
    2. High-Speed Cellular
    3. Low-Speed Cellular
    4. Offline
  • Improve the contrast of the selected viewport setting in a style consistent with the Web Inspector
  • Show a rotate icon when hovering on a device icon
  • Align label baselines
  • Add a screen mode menu for iPads that would allow selection from:
    1. Full Screen
    2. Primary
    3. Secondary
    4. Split View

    This provides an explicit UI for using the iPad multi-tasking modes and would allow users to switch between portrait and landscape orientations of different iPad models while staying in a multi-tasking view. In STP 41, you can skip cycling through the iPad multi-tasking modes by Option-clicking the iPad icon.

An Incremental Sketch Improvement

When resizing objects in Sketch, I’d like to see the increment (or decrement) value along with the dimensions.


  1. The change value is always relative to the dimensions before the drag began, so if you increased the width of the example above by 10, then decreased that by 5 without releasing the drag handle, the counter would read +5.
  2. If they prove distracting, maybe a “Show dimension change counts” checkbox in the Layers section of Preferences.
  3. Ideally, these would display when resizing using the keyboard as well.
  4. Throw typography nerds a bone by using a proper multiplication symbol rather than an x for the width/height separator. I assume you can add it from the Characters palette to the appropriate place in Xcode.

I’m really happy with how the new (nestable!) symbols are shaping up in the Sketch 3.7 betas — great work by the team at Bohemian Coding.

Sketch Align and Add Guides

The persistent alignment controls in Sketch could double as a way to add guides around canvas selections. The basic idea is that depressing a modifier key would switch the toolbar into a guide placement quasi-mode, with the icons and tooltips updating to reflect the change. Ideally, the icons in the toolbar would reflect the guide color set in Sketch’s preferences (red being the default).

Sketch: Add guides around a canvas selection

Built using the recently released Tumult Hype 2.

Sketch Guides

A few ideas to improve the alignment guides in Bohemian Coding’s Sketch, which I’ve been using more and more since Adobe announced that they pulled the plug on Fireworks — just like Obama will do to your sweet old granny.

In the current version (2.3.1), guide positions are hard to read and you can’t easily space them from each other and the edge of the artboard.

Guide positioning and spacing
Guide positioning and spacing

There is also currently no way to position them by numeric input, a feature I found very useful in Fireworks.

Numeric position input
Numeric position input

Say you’ve decided to change the height (or width) of an element in your design, a change that must propagate. It would be great to be able to move all of the guides on one axis in one pass.

Y axis ruler contextual menu
Y axis ruler contextual menu
Batch guide positioning adjustment
Batch guide positioning adjustment

The input boxes for individual and batch position adjustment would of course let you increment their values using the arrow keys and change them using mathematical operations, two features I’ve found really useful in Sketch.


Working with a laptop and large external display reminded me of an interface irritation particular to multi-monitor setups in which the displays are of different sizes. For instance, a stacked arrangement with the menu bar on the large display on top and the Dock on the small one below. You can easily move the cursor to the large display anywhere along the top of the smaller screen. The inverse is not true; there are portions of the large display that will not allow the cursor to move to the smaller display.

Gateways animation (use a respectable browser)

Graphics created in Fireworks, animated in Hype.

Design Notes

  1. I believe an indicator showing just the passthrough zone is the best design, but there are alternatives:
    1. Show indicators for the portions of the display that do not allow the cursor through
    2. Show indicators for both
    3. Keep the existing “mouse around until you find it” implementation
  2. The color of the indicator could be calculated based on the desktop background to ensure sufficient contrast.
  3. Some smarts about determining cursor movement direction (like that used to keep sub-menus open when the cursor is moved diagonally) would prevent the indicator from appearing when the cursor is moved toward a hot corner to activate Mission Control or an Exposé mode.
  4. The indicator is obviously not needed when moving between displays of the same size.