ADR-0130 A hue is not a classification
Answers the question ADR-0121 left as the first thing its table's next row should settle.
#Context
ADR-0121 retired tag and found that the capability had not gone with it. Lozenge ships the classification role the retired record described, and that record said lozenge wants one of its own. It named a question that had to be answered first:
Lozengealso ships four decorative appearances (lime,yellow,teal,magenta) alongside its four status ones, and a budgeted Emitter either holds an allocation or does not. Whether those four are classifications the record simply has not named, or a second component wearing one name, decides whatlozenge's record can say.
Opening the component answers it, and the answer is that the question has a false premise.
Lozenge ships ten appearances, not eight: default, inprogress, success, removed, moved, new, lime, yellow, teal, magenta. Each one selects a class, and each class sets exactly two properties:
.wr-lozenge--success { background-color: var(--wr-accent-green-subtler); color: var(--wr-accent-green-bolder); }
.wr-lozenge--lime { background-color: var(--wr-accent-lime-subtler); color: var(--wr-accent-lime-bolder); }There is one mechanism here, used ten times. success reads a green the way lime reads a lime. The difference between them is not in the component, it is a convention a reader brings, and the component cannot tell the two cases apart because there is nothing in it that differs.
None of the twenty colour names it reads exists in the four-theme tier. Measured against every name the tier emits, 882 of them: all twenty are flat-surface names from wolf-rayet.css, which answers to data-theme and has two modes. The semantic tier's accent vocabulary is --wr-accent-bold and --wr-accent-subtle, two roles, not a hue wheel. So lozenge does not resolve in the theme matrix at all, and setting data-wr-theme moves nothing it draws. ADR-0124 found the docs shell in the same position and this is the same fact on a component.
§4 finishes the argument. Every attention-carrying component is designed in field-night first, where hue discrimination is unavailable, and *any component that cannot express its meaning without hue is invalid there and must be marked unavailable*. In field-night a success lozenge, a removed lozenge and a lime lozenge are one rectangle with different words in it. The hue is not reinforcing an encoding; it is the whole encoding.
The component also declares an allocation while reading none of the tier: LABEL_LEVEL puts the plain one at level 1 and every coloured one at level 2, so ten appearances share one rung and the rung is chosen by whether the appearance is default.
#Decision
A hue is not a classification, so the four decorative appearances are neither of the two things ADR-0121 asked about. They are not classifications the record has not named, because a name that is a hue names nothing to classify by. They are not a second component under one name, because they are drawn by the same rule as the other six. The split the question assumed does not exist in the artifact: there are ten hue selections, and convention attaches meaning to six of them.
lozenge takes no record yet, and now for a stated reason rather than an open one. A component tier entry is a claim about attention, and taking one means reading the tier. Lozenge reads a surface the four themes do not answer to, encodes its whole meaning in hue, and would be invalid in field-night by §4 on every one of its ten appearances. A record written against it would describe a component that cannot hold the claims a record makes.
The classification role stays unbudgeted, and the gap is the size ADR-0121 said it was. What has changed is that it is no longer waiting on a question. It is waiting on a component.
What a budgeted classification would need, so the record that does get written has somewhere to start:
- A non-hue encoding as the primary one, per §4: shape, weight, position or pattern, with hue as reinforcement. The status indicator's triangle and octagon are the worked example, and ADR-0028 is the record that argues the geometry.
- No more classifications than that non-hue vocabulary can tell apart. Ten is almost certainly more than shape can carry, and the count is an output of the encoding rather than an input to it.
- Levels 1 and 2 and no higher. The current component has the instinct right and its comment says why: a label names a thing rather than asking for the reader, so the plain one is Ambient and a coloured one is Marked, still bidding for nothing.
- The tier, read rather than bypassed.
#Consequences
Lozenge stays exactly as it is, documented by the roster as the reference's label, and outside the budget with the rest of the grouped set. Nothing about the shipped site or package changes.
ADR-0121's table has no row for lozenge and does not gain one, because lozenge was never one of its thirty-seven entries. What it gains is the answer to the question that record said the next row should settle, which turns out to settle a different thing than expected: not what lozenge's record can say, but that it cannot have one.
This is a decision not to build, and it is the second this week that the measurement made easy. The first was ADR-0128 finding six of eleven records correct as they stood. A system whose method is to measure before deciding should expect a good share of its decisions to be that nothing is owed.
#Rejected
Write the record against the six meaningful appearances and leave the four out. The shape ADR-0121 expected, and the measurement refuses it: the six are drawn by the same rule as the four and are no more expressible without hue. Recording six of ten would put a budget claim on the half a reader happens to have a convention for.
Mark lozenge unavailable in field-night and record it on that basis. §4 provides for exactly this and it is the wrong use of it. The exemption is for a component whose meaning genuinely cannot be carried without hue, and a classification's meaning is the thing most obviously carriable another way: that is what shape is for. §4 also says a component reaching for the exemption is a design smell to be interrogated before it is granted, and this would be granting it to avoid the interrogation.
Give it a record with one appearance and grow it later. It would make the tier assert that a classification label is budgeted, which a reader would then reasonably believe covers the ten appearances that ship. A record covering one tenth of a component is worse than none, because none is legible as a gap.
Rebuild Lozenge now with a shape vocabulary. The right eventual answer and not this record's to take. It is a component design with a contrast argument and a count to settle, and ADR-0121's own reasoning applies: a record for the role is an attention decision about a component this system has never budgeted, not a transcription of one being retired.