# Google Cast Design Checklist

The design checklist below is provided to make the Cast user experience simple and predictable
across all platforms. Following these guidelines when designing your app will ensure the best Cast
experience for your users.

### Cast basics

Yes[Cast sequence](https://developers.google.com/cast/docs/design_checklist/cast-basics#cast-session-sequence)

Yes[Cast home screen](https://developers.google.com/cast/docs/design_checklist/cast-basics#cast-home)

Yes[Cast terminology](https://developers.google.com/cast/docs/design_checklist/cast-basics#cast-terminology)

### Cast button

Yes[Introduce Cast to users](https://developers.google.com/cast/docs/design_checklist/cast-button#prompting)

Yes[Cast button availability](https://developers.google.com/cast/docs/design_checklist/cast-button#sender-cast-icon-available)

Yes[Cast button states](https://developers.google.com/cast/docs/design_checklist/cast-button#sender-cast-icon-states)

### Cast dialog

Yes[Cast dialog, not connected (receivers available)](https://developers.google.com/cast/docs/design_checklist/cast-dialog#sender-cast-menu-available)

Yes[Cast dialog, connected but not casting](https://developers.google.com/cast/docs/design_checklist/cast-dialog#sender-cast-menu-connected)

Yes[Cast dialog, while casting](https://developers.google.com/cast/docs/design_checklist/cast-dialog#sender-cast-menu-casting)

### Cast autoplay

Yes[Up Next notification](https://developers.google.com/cast/docs/design_checklist/cast-autoplay#up-next-notification)

Yes[Timeout notification](https://developers.google.com/cast/docs/design_checklist/cast-autoplay#timeout-notification)

Yes[Persistent control](https://developers.google.com/cast/docs/design_checklist/cast-autoplay#persistent-control)

Yes[Full control](https://developers.google.com/cast/docs/design_checklist/cast-autoplay#full-control)

Yes[Queue](https://developers.google.com/cast/docs/design_checklist/cast-autoplay#queue)

Yes[Add option](https://developers.google.com/cast/docs/design_checklist/cast-autoplay#add-option)

Yes[Add/play option](https://developers.google.com/cast/docs/design_checklist/cast-autoplay#add-play-option)

Yes[Added notification](https://developers.google.com/cast/docs/design_checklist/cast-autoplay#added-notification)

Yes[Reorder items](https://developers.google.com/cast/docs/design_checklist/cast-autoplay#reorder-items)

Yes[Remove items](https://developers.google.com/cast/docs/design_checklist/cast-autoplay#remove-items)

Yes[Clear all items](https://developers.google.com/cast/docs/design_checklist/cast-autoplay#clear-all-items)

Yes[History](https://developers.google.com/cast/docs/design_checklist/cast-autoplay#history)

### Sender app

Yes[Sender volume controls](https://developers.google.com/cast/docs/design_checklist/sender#sender-control-volume)

Yes[Sender expanded controller](https://developers.google.com/cast/docs/design_checklist/sender#sender-expanded-controller)

Yes[Sender mini controller](https://developers.google.com/cast/docs/design_checklist/sender#sender-mini-controller)

Yes[Sender notification](https://developers.google.com/cast/docs/design_checklist/sender#sender-control-notification)

Yes[Sender lock screen](https://developers.google.com/cast/docs/design_checklist/sender#sender-control-lockscreen)

Yes[Sender resumes cast](https://developers.google.com/cast/docs/design_checklist/sender#sender-control-resume)

Yes[Sender stops cast](https://developers.google.com/cast/docs/design_checklist/sender#sender-control-end)

### Receiver app: non-touch

Yes[Receiver UI](https://developers.google.com/cast/docs/design_checklist/receiver#receiver-ui-elements)

Yes[Receiver app idle](https://developers.google.com/cast/docs/design_checklist/receiver#receiver-ui-idle)

Yes[Receiver app loading](https://developers.google.com/cast/docs/design_checklist/receiver#receiver-player-loading)

Yes[Receiver content loading](https://developers.google.com/cast/docs/design_checklist/receiver#receiver-content-loading)

Yes[Receiver playback](https://developers.google.com/cast/docs/design_checklist/receiver#receiver-ui-seek)

Yes[Receiver paused](https://developers.google.com/cast/docs/design_checklist/receiver#receiver-ui-pause)

Yes[Receiver buffering](https://developers.google.com/cast/docs/design_checklist/receiver#receiver-ui-buffer)

Yes[Receiver stops cast](https://developers.google.com/cast/docs/design_checklist/receiver#receiver-ui-complete)

### Receiver app: touch

Yes[Receiver UI](https://developers.google.com/cast/docs/design_checklist/receiver_touch#receiver-ui-elements)

Yes[Receiver app idle](https://developers.google.com/cast/docs/design_checklist/receiver_touch#receiver-ui-idle)

Yes[Receiver app loading](https://developers.google.com/cast/docs/design_checklist/receiver_touch#receiver-player-loading)

Yes[Receiver content loading](https://developers.google.com/cast/docs/design_checklist/receiver_touch#receiver-content-loading)

Yes[Receiver playback](https://developers.google.com/cast/docs/design_checklist/receiver_touch#receiver-ui-seek)

Yes[Receiver paused](https://developers.google.com/cast/docs/design_checklist/receiver_touch#receiver-ui-pause)

Yes[Receiver buffering](https://developers.google.com/cast/docs/design_checklist/receiver_touch#receiver-ui-buffer)

Yes[Receiver stops cast](https://developers.google.com/cast/docs/design_checklist/receiver_touch#receiver-ui-complete)

### Changelog

[List of changes](https://developers.google.com/cast/docs/design_checklist/changelog)

**Images used in this design guide**
are courtesy of the Blender Foundation, shared under copyright or Creative Commons license.

- Elephant's Dream: (c) copyright 2006, Blender Foundation / Netherlands Media Art Institute / www.elephantsdream.org
- Sintel: (c) copyright Blender Foundation \| www.sintel.org
- Tears of Steel: (CC) Blender Foundation \| mango.blender.org
- Big Buck Bunny: (c) copyright 2008, Blender Foundation / www.bigbuckbunny.org