✨Discover storytelling in the AI age with Pixar's Matthew Luhn at Sanity Connect, May 8th—register now


A basic string expected to contain multiple lines. Typically used for a summary, short bio etc. If you need text with markup and structured data, use block text.


  • REQUIREDtypestring

    Value must be set to text.

  • REQUIREDnamestring

    Required. The field name. This will be the key in the data record.

  • rowsnumber

    Controls the number of rows/lines in the rendered textarea. Default number of rows: 10.

  • titlestring

    Human readable label for the field.

  • hiddenboolean | function

    If set to true, this field will be hidden in the studio. You can also return a callback function to use it as a conditional field.

  • readOnlyboolean | function

    If set to true, this field will not be editable in the content studio. You can also return a callback function to use it as a conditional field.

  • descriptionstring

    Short description to editors how the field is to be used.

  • initialValueStringOrResolverFunction

    The initial value used when creating new values from this type. Can be either a literal string value or a resolver function that returns either a literal string value or a promise resolving to the string initial value.

  • deprecated{ reason: String }

    Marks a field or document type as deprecated in the studio interface and displays a user-defined message defined by the single required reason property.

    If you deploy a GraphQL API schema, this property will translated into the @deprecated directive.


Learn more about validation
  • required()function

    Ensures that this field exists.

  • min(minLength)function

    Minimum length of string.

  • max(maxLength)function

    Maximum length of string.

  • length(exactLength)function

    Exact length of string.

  • uppercase()function

    All characters must be uppercase.

  • lowercase()function

    All characters must be lowercase.

  • email()function

    Value must be a valid email-address.

  • regex(pattern[, options])function

    String must match the given pattern.

    options is an optional object, currently you can set options.name and options.invert.

    Providing a name will make the message more understandable to the user ("Does not match the <name>-pattern").

    Set invert to true in order to allow any value that does NOT match the pattern.

  • custom(fn)function

    Creates a custom validation rule.


  title: 'Description',
  name: 'description',
  type: 'text'


  "_type": "movie",
  "_id": "23407q-qwerqyt12",
  "description": "...rather long text here....\n  yes.. long",

Was this article helpful?