:focus { outline: var(--focus-width) solid var(--focus-outline); } .container:focus { // the outline causes choppy rendering on Edge and isn't visible or necessary anyway // https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/17343598/ outline: none; } /* Special class to make focus outlines easier to see in some odd * cases where the outline would be clipped. */ /* TODO: use box-sizing:border-box everywhere so we can get rid of this hack */ .focus-fix:focus { outline-offset: calc(-1 * var(--focus-width)); /* TODO: this is hacky, switch to box-sizing:border-box */ } /* Another hack to make some focus styles appear better */ .focus-after { position: relative; &:focus { outline: none; } &:focus::after { position: absolute; left: 0; right: 0; bottom: 0; top: 0; content: ''; border: var(--focus-width) solid var(--focus-outline); pointer-events: none; } } // For KaiOS, do some additional things to improve the focus styles, which don't show up well // for some reason @media (max-width: 240px) { a:not(.button):focus, span:focus { background: var(--focus-bg) !important; } button:focus, .button:focus { opacity: 0.7; } button.primary:focus, .button.primary:focus { opacity: 0.8; } // add extremely visible styles for buttons, ala .focus-after button, .button, a.main-nav-link { position: relative; &:focus { outline: none; } &:focus::after { position: absolute; left: 0; right: 0; bottom: 0; top: 0; content: ''; border: var(--focus-width) solid var(--focus-outline); pointer-events: none; } } }