Symptom

After PR #416 added a 4-dot overlay to the PIN entry field to show how many digits had been entered, the actual digit characters were visible as small numbers showing through the gaps between the dot circles.

Root cause

The overlay approach used a transparent Row of Box circles drawn on top of an OutlinedTextField. In Compose, Arrangement.SpaceEvenly on 4 × 16dp circles inside a 100dp container leaves ~7.2dp gaps between each circle. The underlying OutlinedTextField was visible through those gaps.

Setting focusedTextColor = Color.Transparent is fragile: it does not suppress text rendered during selection, and on some Compose/platform versions the selection highlight or composition annotation rendering can bypass the text color and make digit shapes faintly visible. Additionally, the empty label = { Text("") } forced the floating-label animation slot even though no label text was present.

Fix

Prevention