# Smart displays

![smart display icon](https://developers.google.com/static/assistant/surfaces/images/AssistantDevicesForDevs_Displays.png)

Smart Displays bring visual-forward devices into users' home environments. Be a
part of your users' daily routine, by creating an Action that helps with in-home
productivity or entertainment, accompanied by rich visuals.

## Build rich responses for Smart Displays

Actions on Google provides [rich responses](https://developers.google.com/assistant/conversational/df-asdk/rich-responses) that are optimized for Smart Displays. You can build visual interactions for your Actions using components such as:

- [basic cards](https://developers.google.com/assistant/conversational/df-asdk/rich-responses#basic_card)
- [lists](https://developers.google.com/assistant/conversational/df-asdk/responses#list)
- [table cards](https://developers.google.com/assistant/conversational/df-asdk/rich-responses#table_cards)
- [carousels](https://developers.google.com/assistant/conversational/df-asdk/selection-responses#carousel)
- [suggestion chips](https://developers.google.com/assistant/conversational/df-asdk/rich-responses#suggestion_chips)

In addition, you can also create [custom themes](https://developers.google.com/assistant/conversational/df-asdk/rich-responses#customizing_your_responses) to more deeply customize your
Action's look and feel.

## Modalities

Even if the device has a display, remember that the primary modality for users
is voice-first. Make sure to design your rich responses specifically to support
voice invocation.

To detect the availability of a screen and the [input modality](https://developers.google.com/assistant/conversational/webhook/reference/rest/Shared.Types/InputType) on a Smart
Display, you can use the following code:

- **Has screen** : `if (conv.screen)`
- **Uses voice modality** : `if (conv.input.type === 'VOICE')`
- **Uses touch modality** : `if (conv.input.type === 'TOUCH')`
- **Uses keyboard modality** : `if (conv.input.type === 'KEYBOARD')`

## Tips \& best practices

- Use [rich responses](https://developers.google.com/assistant/conversational/df-asdk/rich-responses) and [theme customization](https://developers.google.com/assistant/conversational/df-asdk/rich-responses#customizing_your_responses) to make the most out of the screen.
- If you're playing media, consider using [media responses](https://developers.google.com/assistant/conversational/df-asdk/rich-responses#media_responses).

  > [!NOTE]
  > **Note:** Not all devices support media playback. Make sure to [configure your
  > Action to require media playback support](https://developers.google.com/assistant/conversational/df-asdk/surface-capabilities#surface_capabilities_for_actions) in the Actions console.

- Think about the user's environment and how your Action can add to their home
  productivity.

- Linking out to the web from smart displays is currently not supported.

![](https://developers.google.com/static/assistant/surfaces/images/displays.png)

## Try these Actions

- [SongPop](https://assistant.google.com/services/a/uid/000000d630f56867)
- [HeadSpace](https://assistant.google.com/services/a/uid/000000addca8c8f3)
- [Jeopardy](https://assistant.google.com/services/a/uid/00000076d5b94d46)
- [Mad Libs](https://assistant.google.com/services/a/uid/0000001e90753a94)

## Try this sample

- [Dialogflow conversation components sample](https://github.com/actions-on-google/dialogflow-conversation-components-nodejs)