> **R013 outcome:** the user approved adoption. Values now live in the shared Sass tokens and fields.html. The old proposal URL forwards to that single standard. Final measurements also required a stronger modal ring and dark error border; see [current field rules](fields-usage.md). The proposal details below are historical decision evidence, not a second API.

# M3 field contrast review — R012

## Outcome

The WSDMM-matched field default remains intact. A separate [contrast proposal page](../fields-contrast.html) and review-only [override stylesheet](../contrast-review.css) provide a concrete alternative. Nothing in this proposal is emitted into shared theme.css or fields.css; no reference app was modified. The user-requested source placeholder colors are preserved on fields.html until a different direction is accepted.

[Light baseline versus proposal](reference/contrast-comparison-light.png) · [Dark baseline versus proposal](reference/contrast-comparison-dark.png). Left is current, right is proposed. The hostname is focused, with identical entered text. These are actual browser captures of existing field components.

## Measured comparison

| Sample | Current | Proposal |
|---|---|---|
| Light placeholder on white field | 2.60:1 | 4.83:1 |
| Dark card hostname placeholder | 1.98–1.99:1 | 5.52–5.58:1 |
| Dark card hostname entered text | 3.96–4.02:1 | 6.70–6.78:1 |
| Dark card select entered/empty-option text | 3.86–3.96:1 | 6.59–6.69:1 |
| Light enabled resting contour versus outside | approximately 1.36–1.47:1 | approximately 3.17–3.43:1 |
| Dark enabled resting contour versus outside | approximately 1.98–2.26:1 | approximately 3.85–4.95:1 |

These sampled values use desktop 1200px and mobile 390px screens. The gradients, opacity and blur make location relevant: the standalone state matrix is darker than fields nested inside the card. Treat source matching and accessibility as separate findings. Native select options have no placeholder pseudo-state; their empty option uses entered-value colors.

Chromium platform-font inspection confirmed custom Noto Sans on every sampled control, including placeholder-only controls. Pseudo-element typography was measured independently of the declared family. Disabled states are included in raw evidence but are excluded from the enabled-boundary ranges; inactive controls have different contrast requirements.

## Scope of proposed changes

- Light: placeholder #6b7280, resting contour #858b94, focus #0073b1.
- Dark: field fill black/20 instead of white/10, placeholder white/80, resting contour white/65, focus #7dd3fc.
- Keep field geometry, 1px border / 2px ring, primary/modal distinctions, Lucide caret, native controls, fonts and wizard page/card surfaces.
- Error/disabled roles and modal lighter focus ring remain their current values. These need separate final contrast review; this page is not a blanket conformance claim.

The stronger focus is a single ring around the existing border. It does not introduce a stacked dark-blue border. The review-only dark field fill intentionally departs from the wizard to improve text contrast. Do not describe this proposal as exact source fidelity.

## Verification and limits

[Baseline contrast samples](reference/field-contrast-baseline.json), [proposal samples](reference/field-contrast-proposal.json), [raw typography/platform-font observations](reference/field-contrast-measurements.json), [proposal functional results](reference/field-contrast-functional.json).

Screenshot pixels supply actual local fill, border and outside colors. Computed foreground RGBA is composited onto the sampled fill, then standard relative-luminance contrast is calculated. Samples use a flat portion of the top border and a fill point 5px below it, away from text. This is evidence from those rendered points, not a minimum across every gradient pixel, zoom setting or browser. Focus appearance is visually captured and behavior-checked; focus contrast was not exhaustively quantified here.

The proposal passed existing geometry/native validation/recovery/reset, keyboard select/Tab, readonly editing/FormData, disabled exclusion, reduced motion, forced-colors focus and 320px reflow checks. No writes or page exceptions were observed. No shared Sass change was made in this run, so earlier Sass build checks are not represented as a new execution.

## Review decision and next step

Choose whether the shared standard should adopt the proposed contrast refinements or retain source-matched colors with the documented limitations. After that decision, update shared Sass from the accepted values, verify error/modal/focus contrast on the real surfaces and finish M3. Do not advance to buttons/cards merely because field geometry matches.
