Patterns from production · Agents
Levels with a floor that never moves
Four cards, and the floor in view.
Levels with a floor that never moves
Try the controls to see the rule.
The rule
An agent’s freedom is four levels in words a person can act on (asks first, edits on its own, a second model checks, full trust), as four cards with one line each. Under them, always in view, the four things that ask at every level: spending money, a password or key, deleting something, and messaging someone new. The floor is enforced on the server, not drawn as an option.
Tokens used
size.tap44pxspace.md12pxmotion.duration.base260ms
Native spec · generated from this pattern and the shared token registry
struct OvLevelsWithAFloor: View {
let status: String
@Environment(\.accessibilityReduceMotion) private var reduceMotion
var body: some View {
HStack(spacing: OvScale.spaceMd) {
Text(status).font(.body)
}
.frame(minHeight: OvScale.sizeTap)
.animation(reduceMotion ? .none : .easeOut(duration: OvScale.motionDurationBase), value: status)
}
}
// Tokens: size.tap=44px, space.md=12px, motion.duration.base=260ms@Composable
fun OvLevelsWithAFloor(status: String, reduceMotion: Boolean) {
Row(
modifier = Modifier.defaultMinSize(minHeight = OvScale.SizeTap),
horizontalArrangement = Arrangement.spacedBy(OvScale.SpaceMd),
) {
Text(status, style = MaterialTheme.typography.bodyMedium)
}
// Apply motion only when !reduceMotion.
}
// Tokens: size.tap=44px, space.md=12px, motion.duration.base=260ms