Можно стилизовать через box-shadow, имитируя кольцо без сдвига. Главное — не снимать focus-индикатор через outline: none без замены. border на :focus хуже тем, что «прыгает» вёрстка и сложнее совместить с уже существующей рамкой компонента.
Чем `outline` отличается от `border` для focus-стилей? · Sobeso