Angular Material: density token view

Generated from the normalized JSON extract. Edit the JSON source and rerun the parent render-markdown.ps1 renderer; do not edit this page by hand.

Snapshot

FieldValue
commitf3e6276c969f33e527b616ef8bf7b0404685721d
retrieved2026-08-11

How density is activated

MechanismPublic implementation
designdensity is configured in the Material theme
codeSass theme density integer; per-component density mixins are also public
inputRange0, -1, -2, -3, -4, -5

Density-relevant tokens and values

Token or mappingTypePublic values and metadataSource
button-filled-container-heightdimensiondensityClamp: -3; valuesPx: 0: 40; -1: 36; -2: 32; -3: 28sources/angular-material/upstream/components/src/material/button/_m3-button.scss
button-outlined-container-heightdimensiondensityClamp: -3; valuesPx: 0: 40; -1: 36; -2: 32; -3: 28sources/angular-material/upstream/components/src/material/button/_m3-button.scss
button-protected-container-heightdimensiondensityClamp: -3; valuesPx: 0: 40; -1: 36; -2: 32; -3: 28sources/angular-material/upstream/components/src/material/button/_m3-button.scss
button-text-container-heightdimensiondensityClamp: -3; valuesPx: 0: 40; -1: 36; -2: 32; -3: 28sources/angular-material/upstream/components/src/material/button/_m3-button.scss
button-tonal-container-heightdimensiondensityClamp: -3; valuesPx: 0: 40; -1: 36; -2: 32; -3: 28sources/angular-material/upstream/components/src/material/button/_m3-button.scss
button-*-touch-target-sizedimensionvaluesPx: allDensitySteps: 48sources/angular-material/upstream/components/src/material/button/_m3-button.scss
button-filled-horizontal-paddingdimensionvaluesPx: allDensitySteps: 24sources/angular-material/upstream/components/src/material/button/_m3-button.scss
button-text-horizontal-paddingdimensionvaluesPx: allDensitySteps: 12sources/angular-material/upstream/components/src/material/button/_m3-button.scss
form-field-container-heightdimensiondensityClamp: -5; valuesPx: 0: 56; -1: 52; -2: 48; -3: 44; -4: 40; -5: 36sources/angular-material/upstream/components/src/material/form-field/_m3-form-field.scss
form-field-container-vertical-paddingdimensiondensityClamp: -5; valuesPx: 0: 16; -1: 14; -2: 12; -3: 10; -4: 8; -5: 6sources/angular-material/upstream/components/src/material/form-field/_m3-form-field.scss
table-header-container-heightdimensiondensityClamp: -4; valuesPx: 0: 56; -1: 52; -2: 48; -3: 44; -4: 40sources/angular-material/upstream/components/src/material/table/_m3-table.scss
table-footer-container-heightdimensiondensityClamp: -4; valuesPx: 0: 52; -1: 48; -2: 44; -3: 40; -4: 36sources/angular-material/upstream/components/src/material/table/_m3-table.scss
table-row-item-container-heightdimensiondensityClamp: -4; valuesPx: 0: 52; -1: 48; -2: 44; -3: 40; -4: 36sources/angular-material/upstream/components/src/material/table/_m3-table.scss

How tokens reach components

Component or boundaryMapping
buttontheme density -> generated button container-height token; separate 48px touch-target token
formFieldtheme density -> component-clamped height and vertical-padding tokens
tabletheme density -> component-clamped header/footer/row height tokens
typographyindependent theme dimension; not changed by density maps shown here

Public evidence gaps

  • No additional gaps are recorded in this normalized extract.

Embedded authoritative JSON

Show raw JSON
{
  "system": "Angular Material",
  "scope": "density-relevant public tokens",
  "model": "numeric theme density with component-specific clamps",
  "snapshot": {"commit": "f3e6276c969f33e527b616ef8bf7b0404685721d", "retrieved": "2026-08-11"},
  "activation": {
    "design": "density is configured in the Material theme",
    "code": "Sass theme density integer; per-component density mixins are also public",
    "inputRange": [0, -1, -2, -3, -4, -5]
  },
  "tokens": [
    {"name": "button-filled-container-height", "type": "dimension", "densityClamp": -3, "valuesPx": {"0": 40, "-1": 36, "-2": 32, "-3": 28}, "source": "sources/angular-material/upstream/components/src/material/button/_m3-button.scss"},
    {"name": "button-outlined-container-height", "type": "dimension", "densityClamp": -3, "valuesPx": {"0": 40, "-1": 36, "-2": 32, "-3": 28}, "source": "sources/angular-material/upstream/components/src/material/button/_m3-button.scss"},
    {"name": "button-protected-container-height", "type": "dimension", "densityClamp": -3, "valuesPx": {"0": 40, "-1": 36, "-2": 32, "-3": 28}, "source": "sources/angular-material/upstream/components/src/material/button/_m3-button.scss"},
    {"name": "button-text-container-height", "type": "dimension", "densityClamp": -3, "valuesPx": {"0": 40, "-1": 36, "-2": 32, "-3": 28}, "source": "sources/angular-material/upstream/components/src/material/button/_m3-button.scss"},
    {"name": "button-tonal-container-height", "type": "dimension", "densityClamp": -3, "valuesPx": {"0": 40, "-1": 36, "-2": 32, "-3": 28}, "source": "sources/angular-material/upstream/components/src/material/button/_m3-button.scss"},
    {"name": "button-*-touch-target-size", "type": "dimension", "valuesPx": {"allDensitySteps": 48}, "source": "sources/angular-material/upstream/components/src/material/button/_m3-button.scss"},
    {"name": "button-filled-horizontal-padding", "type": "dimension", "valuesPx": {"allDensitySteps": 24}, "source": "sources/angular-material/upstream/components/src/material/button/_m3-button.scss"},
    {"name": "button-text-horizontal-padding", "type": "dimension", "valuesPx": {"allDensitySteps": 12}, "source": "sources/angular-material/upstream/components/src/material/button/_m3-button.scss"},
    {"name": "form-field-container-height", "type": "dimension", "densityClamp": -5, "valuesPx": {"0": 56, "-1": 52, "-2": 48, "-3": 44, "-4": 40, "-5": 36}, "source": "sources/angular-material/upstream/components/src/material/form-field/_m3-form-field.scss"},
    {"name": "form-field-container-vertical-padding", "type": "dimension", "densityClamp": -5, "valuesPx": {"0": 16, "-1": 14, "-2": 12, "-3": 10, "-4": 8, "-5": 6}, "source": "sources/angular-material/upstream/components/src/material/form-field/_m3-form-field.scss"},
    {"name": "table-header-container-height", "type": "dimension", "densityClamp": -4, "valuesPx": {"0": 56, "-1": 52, "-2": 48, "-3": 44, "-4": 40}, "source": "sources/angular-material/upstream/components/src/material/table/_m3-table.scss"},
    {"name": "table-footer-container-height", "type": "dimension", "densityClamp": -4, "valuesPx": {"0": 52, "-1": 48, "-2": 44, "-3": 40, "-4": 36}, "source": "sources/angular-material/upstream/components/src/material/table/_m3-table.scss"},
    {"name": "table-row-item-container-height", "type": "dimension", "densityClamp": -4, "valuesPx": {"0": 52, "-1": 48, "-2": 44, "-3": 40, "-4": 36}, "source": "sources/angular-material/upstream/components/src/material/table/_m3-table.scss"}
  ],
  "componentMappings": {
    "button": "theme density -> generated button container-height token; separate 48px touch-target token",
    "formField": "theme density -> component-clamped height and vertical-padding tokens",
    "table": "theme density -> component-clamped header/footer/row height tokens",
    "typography": "independent theme dimension; not changed by density maps shown here"
  },
  "unavailable": []
}