# Theme.json Version 2 Reference > This is the specification for **version 2** of `theme.json`. This version works with WordPress 5.9 or later.
Theme.json version 3 has been released with WordPress 6.6. WordPress will continue to support theme.json version 2. However new features will only be added to [new versions](/docs/reference-guides/theme-json-reference/theme-json-living.md). When you are ready to upgrade, see the [theme.json migration guide](/docs/reference-guides/theme-json-reference/theme-json-migrations.md#migrating-from-v2-to-v3) for details on updating to the latest version.
This reference guide lists the settings and style properties defined in the `theme.json` schema. See the [theme.json how to guide](/docs/how-to-guides/themes/global-settings-and-styles.md) for examples and guidance on how to use the `theme.json` file in your theme. ## JSON Schema This documentation was generated from the JSON schema for theme.json. The last schema for version 2 is available at `https://schemas.wp.org/wp/6.5/theme.json`. Theme.json schemas for each WordPress version are available at `https://schemas.wp.org/wp/{{version}}/theme.json`. For example a schema for WordPress 5.9 is available at `https://schemas.wp.org/wp/5.9/theme.json`. See [Developing with theme.json](/docs/how-to-guides/themes/global-settings-and-styles.md#developing-with-themejson) for how to use the JSON schema in your editor. ## Settings ### appearanceTools Setting that enables the following UI tools: - background: backgroundImage, backgroundSize - border: color, radius, style, width - color: link - dimensions: aspectRatio, minHeight - position: sticky - spacing: blockGap, margin, padding - typography: lineHeight --- ### useRootPaddingAwareAlignments Enables root padding (the values from `styles.spacing.padding`) to be applied to the contents of full-width blocks instead of the root block. Please note that when using this setting, `styles.spacing.padding` should always be set as an object with `top`, `right`, `bottom`, `left` values declared separately. --- ### border Settings related to borders. | Property | Type | Default | Props | | --- | --- | --- |--- | | color | boolean | false | | | radius | boolean | false | | | style | boolean | false | | | width | boolean | false | | --- ### shadow Settings related to shadows. | Property | Type | Default | Props | | --- | --- | --- |--- | | defaultPresets | boolean | true | | | presets | array | | name, shadow, slug | --- ### color Settings related to colors. | Property | Type | Default | Props | | --- | --- | --- |--- | | background | boolean | true | | | custom | boolean | true | | | customDuotone | boolean | true | | | customGradient | boolean | true | | | defaultDuotone | boolean | true | | | defaultGradients | boolean | true | | | defaultPalette | boolean | true | | | duotone | array | | colors, name, slug | | gradients | array | | gradient, name, slug | | link | boolean | false | | | palette | array | | color, name, slug | | text | boolean | true | | | heading | boolean | true | | | button | boolean | true | | --- ### background Settings related to background. | Property | Type | Default | Props | | --- | --- | --- |--- | | backgroundImage | boolean | false | | --- ### dimensions Settings related to dimensions. | Property | Type | Default | Props | | --- | --- | --- |--- | | aspectRatio | boolean | false | | | minHeight | boolean | false | | --- ### layout Settings related to layout. | Property | Type | Default | Props | | --- | --- | --- |--- | | contentSize | string | | | | wideSize | string | | | | allowEditing | boolean | true | | | allowCustomContentAndWideSize | boolean | true | | --- ### lightbox Settings related to the lightbox. | Property | Type | Default | Props | | --- | --- | --- |--- | | enabled | boolean | | | | allowEditing | boolean | | | --- ### position Settings related to position. | Property | Type | Default | Props | | --- | --- | --- |--- | | sticky | boolean | false | | --- ### spacing Settings related to spacing. | Property | Type | Default | Props | | --- | --- | --- |--- | | blockGap | boolean, null | null | | | margin | boolean | false | | | padding | boolean | false | | | units | array | px,em,rem,vh,vw,% | | | customSpacingSize | boolean | true | | | spacingSizes | array | | name, size, slug | | spacingScale | object | | | --- ### typography Settings related to typography. | Property | Type | Default | Props | | --- | --- | --- |--- | | customFontSize | boolean | true | | | fontStyle | boolean | true | | | fontWeight | boolean | true | | | fluid | object, boolean | false | _{maxViewportWidth, minFontSize, minViewportWidth}_ | | letterSpacing | boolean | true | | | lineHeight | boolean | false | | | textColumns | boolean | false | | | textDecoration | boolean | true | | | writingMode | boolean | false | | | textTransform | boolean | true | | | dropCap | boolean | true | | | fontSizes | array | | fluid, name, size, slug | | fontFamilies | array | | fontFace, fontFamily, name, slug | --- ### custom Generate custom CSS custom properties of the form `--wp--custom--{key}--{nested-key}: {value};`. `camelCased` keys are transformed to `kebab-case` as to follow the CSS property naming schema. Keys at different depth levels are separated by `--`, so keys should not include `--` in the name. --- ## Styles ### border Border styles. | Property | Type | Props | | --- | --- |--- | | color | string, object | | | radius | string, object | | | style | string, object | | | width | string, object | | | top | object | color, style, width | | right | object | color, style, width | | bottom | object | color, style, width | | left | object | color, style, width | --- ### color Color styles. | Property | Type | Props | | --- | --- |--- | | background | string, object | | | gradient | string, object | | | text | string, object | | --- ### dimensions Dimensions styles | Property | Type | Props | | --- | --- |--- | | aspectRatio | string, object | | | minHeight | string, object | | --- ### spacing Spacing styles. | Property | Type | Props | | --- | --- |--- | | blockGap | string, object | | | margin | object | bottom, left, right, top | | padding | object | bottom, left, right, top | --- ### typography Typography styles. | Property | Type | Props | | --- | --- |--- | | fontFamily | string, object | | | fontSize | string, object | | | fontStyle | string, object | | | fontWeight | string, object | | | letterSpacing | string, object | | | lineHeight | string, object | | | textColumns | string | | | textDecoration | string, object | | | writingMode | string, object | | | textTransform | string, object | | --- ### filter CSS and SVG filter styles. | Property | Type | Props | | --- | --- |--- | | duotone | string, object | | --- ### shadow Box shadow styles. --- ### outline Outline styles. | Property | Type | Props | | --- | --- |--- | | color | string, object | | | offset | string, object | | | style | string, object | | | width | string, object | | --- ### css Sets custom CSS to apply styling not covered by other theme.json properties. --- ## customTemplates Additional metadata for custom templates defined in the templates folder. Type: `object`. | Property | Description | Type | | --- | --- | --- | | name | Filename, without extension, of the template in the templates folder. | string | | title | Title of the template, translatable. | string | | postTypes | List of post types that can use this custom template. | array | ## templateParts Additional metadata for template parts defined in the parts folder. Type: `object`. | Property | Description | Type | | --- | --- | --- | | name | Filename, without extension, of the template in the parts folder. | string | | title | Title of the template, translatable. | string | | area | The area the template part is used for. Block variations for `header` and `footer` values exist and will be used when the area is set to one of those. | string | ## Patterns An array of pattern slugs to be registered from the Pattern Directory. Type: `array`.