# Type-Keyed Appearance

> In the globals layer, define how every element and component type looks, its size, and its spacing exactly once, keyed only by element tag, `data-el` custom type, and the orthogonal `data-*` axes (`data-variant` paint, `data-size` scale, `data-gap` child rhythm, `data-tone` palette, `data-measure` width); never key appearance by a purpose-class, and let every value be a token.

Record: `algorithms:type-keyed-appearance`
Kind: algorithm
Canonical: https://banes-lab.com/ontology/algorithms#algorithms-type-keyed-appearance
Closure: https://banes-lab.com/json/records/algorithms/type-keyed-appearance/closure

Listed in [Algorithm contracts](https://banes-lab.com/api/records/algorithms.md), after [Token Source-of-Truth](https://banes-lab.com/records/algorithms/token-source-of-truth.md) and before [Custom Type Registration](https://banes-lab.com/records/algorithms/custom-type-registration.md).

## Domain

- [CSS cascade](https://banes-lab.com/records/algorithms-domain/css-cascade.md)

## Tier

- [leaf](https://banes-lab.com/records/vocabulary/domain-tier-leaf.md)

## Composes

- [Canonical Data](https://banes-lab.com/records/algorithms/canonical-data.md)
- [Domain Boundary](https://banes-lab.com/records/algorithms/domain-boundary.md)

## Composed by

- [CSS Type-Cascade Kernel](https://banes-lab.com/records/algorithms/css-type-cascade-concern.md)

## Math type

- [Logic](https://banes-lab.com/records/reasoning/math-type-logic.md)

## Force

- [Contract compatibility](https://banes-lab.com/records/force/contract-compatibility.md)

## Linked from

- [Architecture](https://banes-lab.com/ontology/algorithms/algorithms-domain-architecture.md)
- [CSS cascade](https://banes-lab.com/ontology/algorithms/algorithms-domain-css-cascade.md)
- [The mathematics](https://banes-lab.com/ontology/reasoning/the-mathematics.md)
- [Domain tiers](https://banes-lab.com/ontology/schema/the-vocabulary-domain-tier.md)
- [The forces](https://banes-lab.com/ontology/schema/the-forces.md)
