Drive rules
Pack-root drive: predicate → rule. Runtime auto-drivers: typing, focus, choice_open (not saved).
"drive": {
"focus": { "use": "happy", "priority": 10, "scale": 1.05 },
"typing": { "modulate": "#ffffff", "priority": 5 }
}
Usually you need
| Field | Effect |
|---|---|
use | Switch to another expression while the predicate holds |
modulate / scale | Tint / size while active |
All rule fields
| Field | Type | Effect |
|---|---|---|
use | expression id | Switch variant |
modulate | hex color | Tint |
scale | number or [sx,sy] | Scale |
offset | number or [dx,dy] | Offset |
rotation_degrees | number | Rotate |
priority | number | Higher wins when several match |
transition / _in / _out | object | Tween (duration, ease, curve, optional kind) |
Matching rules: modulate/scale multiply; offset/rotation sum.
Layer drive strings only gate visibility — Expressions and layers. Distinct from flag Binds. Characters.