Array schema layout options in Sanity (tags, grid, radio, dropdown, etc.)

3 replies
Last updated: Dec 1, 2025
Can someone clue me into what are all of the array schema type layout options? In the docs it refers to
'tags'
,
'grid'
, but in some of the example projects I can see that
'radio'
is also used. Are there other options like
'dropdown'
or
'multi-select'
or other common components? or is this something where you can pick from some of the sanity-ui components?
AI Update

Great question! The layout options are spread across different schema types, so let me break down what's actually available:

For Array Types

Arrays do have built-in layout options according to the official documentation:

  • 'tags' - Renders the array as a single, tokenized input field (like tags). Important: This only works if the array contains strings.
  • 'grid' - Displays array items in a grid layout.

When using the list option (predefined values), you can also set:

  • 'vertical' (default) - Displays checkboxes in a column
  • 'grid' - Displays checkboxes horizontally

Example with tags layout:

{
  title: 'Tags',
  name: 'tags',
  type: 'array',
  of: [{type: 'string'}],
  options: {
    layout: 'tags'
  }
}

Example with grid layout:

{
  title: 'Items',
  name: 'items',
  type: 'array',
  of: [{type: 'object', ...}],
  options: {
    layout: 'grid'
  }
}

For String and Number Types with options.list

When you have a string type or number type with a predefined list of values, you get these layout options:

  • 'dropdown' (default) - Shows a dropdown/select menu
  • 'radio' - Shows radio buttons

You can also control the direction of radio buttons:

  • 'vertical' (default)
  • 'horizontal'

Example:

{
  name: 'genre',
  type: 'string',
  options: {
    list: [
      {title: 'Sci-Fi', value: 'sci-fi'},
      {title: 'Western', value: 'western'}
    ],
    layout: 'radio', // or 'dropdown'
    direction: 'horizontal' // only works with radio
  }
}

No Other Built-in Options

Unfortunately, there aren't other built-in layout options like a standalone 'multi-select' or additional dropdown variants. The complete list is:

  • Arrays: tags, grid, or default list view
  • String/Number with list: dropdown or radio

Need Something More Custom?

If you need specialized layouts beyond these options, you have a few paths:

  1. Custom input components - Arrays and other types support extensive customization through the components property where you can provide custom input components using Sanity UI components
  2. Plugin ecosystem - Check the Sanity plugin directory for pre-built solutions
  3. Array of strings - For multi-select functionality, an array of strings with checkboxes (using the list option) works well

Hope that clears things up!

Show original thread
3 replies

Sanity – Build the way you think, not the way your CMS thinks

Sanity is the developer-first content operating system that gives you complete control. Schema-as-code, GROQ queries, and real-time APIs mean no more workarounds or waiting for deployments. Free to start, scale as you grow.

Was this answer helpful?