Focus
Un indicatore immediato e condiviso, additivo agli stati reali e governato da Base UI quando il focus si trasferisce tra superfici.
@qoovex/ui/styles/base.cssLifecycle canonico
Il focus non è un’animazione. Segui il percorso con Tab, Shift+Tab, Enter, Spazio ed Escape: ogni fase usa focus DOM reale.
Percorso tastiera reale
Outline opaco da 2px con offset 2px. Non cambia la box geometry, non transiziona e resta separato da hover, pressed e stato persistente.
Inserisci il codice completo.
Lo stato open resta indipendente dal focus.
Composizione e precedenza
Focus-visible è sempre additivo quando l’elemento resta focusabile; availability e semantica sottostante non vengono riscritte.
Transfer e restoration (Overlay)
Quando si apre un dialog, Base UI cattura il focus, lo indirizza al primo controllo interno e impedisce la fuoriuscita da tastiera (Focus Trap). Alla chiusura o premendo Escape, il focus viene ripristinato sul trigger.
Specimen Interattivo: Dialog Transfer
Focus not obscured (WCAG 2.2 SC 2.4.11 / 2.4.12)
Gli elementi sticky (come topbar o intestazioni di sezione) non devono coprire o nascondere i controlli quando ricevono il focus da tastiera. La combinazione di scroll-padding-top sul contenitore e scroll-margin-top sul target riserva lo spazio visivo necessario.
Scrollport Padding: Il contenitore con scroll definisce scroll-py-14 con spazio sufficiente per la barra sticky di questo specimen.
Target Margin: L'elemento interattivo possiede scroll-m-14. Quando l'utente naviga con Tab, il browser calcola la posizione arrestando lo scroll prima che il controllo finisca sotto l'header.
<div className="scroll-py-14 overflow-y-auto">
<header className="sticky top-0 z-10">...</header>
<button className="scroll-m-14">Azione</button>
</div>Specimen Interattivo: Scrollport con Sticky Header
Verifica quote di altezza scatole di derivazione secondo schema esecutivo.
Prova di pressione a 6 bar registrata nel registro di cantiere.