Skip to content

Commit

Permalink
Polyfills :focus-visible; adds :focus-visible outlines
Browse files Browse the repository at this point in the history
  • Loading branch information
dzucconi committed Jul 8, 2020
1 parent 61e2cd3 commit 167b289
Show file tree
Hide file tree
Showing 5 changed files with 31 additions and 1 deletion.
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,7 @@
"fastclick": "1.0.6",
"flickity": "2.1.2",
"flickity-imagesloaded": "2.0.0",
"focus-visible": "^5.1.0",
"forever": "0.15.3",
"found": "0.4.9",
"found-relay": "0.5.0",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,18 @@ import { data as sd } from "sharify"
import { SystemContextProvider } from "v2/Artsy"
import { MediaContextProvider } from "v2/Utils/Responsive"
import { Theme } from "@artsy/palette"
import { FocusVisible } from "v2/Components/FocusVisible"

const mediator = require("desktop/lib/mediator.coffee")

export const StitchWrapper = props => {
return (
<Theme>
<SystemContextProvider user={sd.CURRENT_USER} mediator={mediator}>
<MediaContextProvider>{props.children}</MediaContextProvider>
<MediaContextProvider>
<FocusVisible />
{props.children}
</MediaContextProvider>
</SystemContextProvider>
</Theme>
)
Expand Down
2 changes: 2 additions & 0 deletions src/v2/Artsy/Router/Boot.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import { BreakpointVisualizer } from "v2/Utils/BreakpointVisualizer"
import Events from "v2/Utils/Events"
import { getENV } from "v2/Utils/getENV"
import { ErrorBoundary } from "./ErrorBoundary"
import { FocusVisible } from "v2/Components/FocusVisible"

import {
MatchingMediaQueries,
Expand Down Expand Up @@ -71,6 +72,7 @@ export const Boot = track(null, {
>
<Grid fluid maxWidth="100%">
<GlobalStyles />
<FocusVisible />
{children}
{process.env.NODE_ENV === "development" && (
<BreakpointVisualizer />
Expand Down
18 changes: 18 additions & 0 deletions src/v2/Components/FocusVisible.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import "focus-visible"
import { color } from "@artsy/palette"
import { createGlobalStyle } from "styled-components"

export const FocusVisible = createGlobalStyle`
/**
* This will hide the focus indicator if the element receives focus via the mouse,
* but it will still show up on keyboard focus. <input> tags are an exception to this.
*/
.js-focus-visible :focus:not(.focus-visible) {
outline: 0;
}
/* Custom outlines on :focus-visible */
.focus-visible {
outline: 1px solid ${color("purple100")};
}
`
5 changes: 5 additions & 0 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -10561,6 +10561,11 @@ focus-lock@^0.6.3, focus-lock@^0.6.7:
resolved "https://registry.yarnpkg.com/focus-lock/-/focus-lock-0.6.8.tgz#61985fadfa92f02f2ee1d90bc738efaf7f3c9f46"
integrity sha512-vkHTluRCoq9FcsrldC0ulQHiyBYgVJB2CX53I8r0nTC6KnEij7Of0jpBspjt3/CuNb6fyoj3aOh9J2HgQUM0og==

focus-visible@^5.1.0:
version "5.1.0"
resolved "https://registry.yarnpkg.com/focus-visible/-/focus-visible-5.1.0.tgz#4b9d40143b865f53eafbd93ca66672b3bf9e7b6a"
integrity sha512-nPer0rjtzdZ7csVIu233P2cUm/ks/4aVSI+5KUkYrYpgA7ujgC3p6J7FtFU+AIMWwnwYQOB/yeiOITxFeYIXiw==

for-each@~0.3.2:
version "0.3.2"
resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.2.tgz#2c40450b9348e97f281322593ba96704b9abd4d4"
Expand Down

0 comments on commit 167b289

Please sign in to comment.