The semantic layer

The semantic layer is where your system becomes usable. Roles name intent, such as text, surface, border and elevation, and each one points at a primitive from Foundations. Collider builds them in six families and checks every contrast pair as it goes.

Six families

Colour, spacing, radius, typography, opacity, elevation. Each is generated and reviewed on its own, and a family your product does not need can be skipped.

A role points; it never holds

Every semantic role aliases a primitive. Not a copy of the primitive's value, an alias. Change color/grey/900 and every role aimed at it moves with it, in every mode, everywhere in the file.

Collider will not write a raw value into a role, including when it is repairing something. If a role needs a different colour, it is re-aimed at a different primitive.

Contrast, pair by pair

Every text-on-background pair the system implies is measured against its contrast floor. This is not a report produced afterwards. It happens while the layer is being built.

When a pair falls short, Collider re-aims the role at a primitive that clears the floor. It does not invent a new colour, and it does not quietly leave the pair failing. When no primitive in the ramp clears it, you are told, rather than given a number that looks fine.

Contrast findings that do not break the system are advisory. They stay visible, and you may accept them knowingly. A system where every warning blocks you is a system nobody finishes.

Both modes, always

Each role carries its value in every mode of the collection. A role that resolved in light but not in dark is not a half-built role. It is a broken one, and it is treated as such.

We use cookies. Necessary cookies keep Isotop secure and signed in. With your consent we also use analytics (Google Analytics) to improve the product. See our Cookie Policy and Privacy Policy.