The group field represents a group of values. This field is best used when there is a single group to be edited, typically with a single JSON object or nested frontmatter values. If there are multiple groups, checkout the group-list field.

import { Field } from '@tinacms/core'
interface GroupConfig {
  name: string
  component: 'group'
  label?: string
  fields: Field[]
}| Option | Description | 
|---|---|
component | The name of the plugin component. Always 'group' | 
name | The path to some value in the data being edited. | 
fields | An array of Field values that will render as a sub-menu. | 
label | A human readable label for the field. Defaults to the name (Optional) | 
description | Description that expands on the purpose of the field or prompts a specific action (Optional) | 
FieldConfig
This interfaces only shows the keys unique to the group field.
Visit the Field Config docs for a complete list of options.
Below is an example of how a group field could be defined in a Gatsby JSON form. Read more on passing in JSON form field options here.
If the source JSON for the example contact info looked like this:
{
  "contact": {
    "email": "hello@tinacms.org",
    "twitter_handle": "tina_cms",
    "github_handle": "tinacms"
  }
}Our form options would look like this:
const formOptions = {
  label: 'Info Page',
  fields: [
    {
      label: 'Contact Info',
      name: 'rawJson.contact',
      description: 'Contact info',
      component: 'group',
      fields: [
        {
          label: 'Email',
          name: 'email',
          description: 'Contact email',
          component: 'text',
        },
        {
          label: 'Twitter',
          name: 'twitter_handle',
          description: 'Twitter handle',
          component: 'text',
        },
        {
          label: 'Github',
          name: 'github_handle',
          description: 'Github username',
          component: 'text',
        },
      ],
    },
    //...
  ],
}