@fcannizzaro/streamdeck-react

Device Sizes

Render target sizes for keys and encoder displays, plus touch input notes.

The library automatically detects the device type and sets render dimensions accordingly. Use useCanvas() to access the dimensions in your components.

Key Sizes

DeviceKey Size (px)
Stream Deck (original)72 x 72
Stream Deck MK.272 x 72
Stream Deck XL96 x 96
Stream Deck Mini80 x 80
Stream Deck +144 x 144
Stream Deck Neo72 x 72

Encoder Display Sizes (Stream Deck+)

SurfaceSize (px)
Encoder display (per action)200 x 100

Touch Input Notes

The Stream Deck+ touch strip is 800 x 100 across the full device. Touch events are routed per encoder action, so touch coordinates are reported relative to that action's segment.

Stream Deck Neo

SurfaceSize (px)
Key72 x 72

Grid Sizes

DeviceColumnsRows
Stream Deck (original)53
Stream Deck MK.253
Stream Deck XL84
Stream Deck Mini32
Stream Deck +42
Stream Deck Neo42

Accessing Dimensions

function MyKey() {
  const { width, height, type } = useCanvas();
  // width/height reflect the actual pixel dimensions for this device
  // type is 'key', 'dial', or 'touch'

  return (
    <div style={{ width, height, background: '#000' }}>
      <span style={{ color: 'white', fontSize: 12 }}>
        {width}x{height}
      </span>
    </div>
  );
}

Design Tips

  • Design for the smallest target size (72x72) and let larger keys have more breathing room.
  • Use useCanvas() to adapt layouts to different devices.
  • Text below ~10px fontSize becomes hard to read on 72x72 keys.
  • Stream Deck XL's 96x96 keys allow for more detailed layouts.
  • Stream Deck+ 144x144 keys support rich multi-element designs.

On this page