diff --git a/website/src/components/dropdown.js b/website/src/components/dropdown.js
new file mode 100644
index 000000000..242671d09
--- /dev/null
+++ b/website/src/components/dropdown.js
@@ -0,0 +1,28 @@
+import React from 'react'
+import PropTypes from 'prop-types'
+import classNames from 'classnames'
+import { navigate } from 'gatsby'
+
+import classes from '../styles/dropdown.module.sass'
+
+const Dropdown = ({ defaultValue, className, onChange, children }) => {
+ const defaultOnChange = ({ target }) => navigate(target.value)
+ return (
+
+ )
+}
+
+Dropdown.propTypes = {
+ defaultValue: PropTypes.string,
+ className: PropTypes.string,
+ onChange: PropTypes.func,
+ children: PropTypes.node.isRequired,
+}
+
+export default Dropdown
diff --git a/website/src/components/navigation.js b/website/src/components/navigation.js
index bd83f7c44..5920d2a96 100644
--- a/website/src/components/navigation.js
+++ b/website/src/components/navigation.js
@@ -1,23 +1,19 @@
import React from 'react'
import PropTypes from 'prop-types'
import classNames from 'classnames'
-import { navigate } from 'gatsby'
import Link from './link'
import Icon from './icon'
+import Dropdown from './dropdown'
import { github } from './util'
import { ReactComponent as Logo } from '../images/logo.svg'
import classes from '../styles/navigation.module.sass'
-const Dropdown = ({ items, section }) => {
+const NavigationDropdown = ({ items, section }) => {
const active = items.find(({ text }) => text.toLowerCase() === section)
const defaultValue = active ? active.url : 'title'
return (
-
+
)
}
@@ -39,7 +35,7 @@ const Navigation = ({ title, items, section, search, children }) => {
-
+
{items.map(({ text, url }, i) => {
diff --git a/website/src/styles/dropdown.module.sass b/website/src/styles/dropdown.module.sass
new file mode 100644
index 000000000..f6afeecab
--- /dev/null
+++ b/website/src/styles/dropdown.module.sass
@@ -0,0 +1,15 @@
+.root
+ font: inherit
+ background: transparent
+ border: none
+ appearance: none
+ background-color: var(--color-back)
+ background-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%23929e9b%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E')
+ background-repeat: no-repeat
+ background-position: right 0.7em top 50%
+ background-size: 0.5em auto
+ padding: 0 1.4em 0 0.5em
+
+ &:-moz-focusring
+ text-shadow: 0 0 0 var(--color-theme)
+ color: transparent
diff --git a/website/src/styles/navigation.module.sass b/website/src/styles/navigation.module.sass
index 6e9f4cbe4..73a9f9fbb 100644
--- a/website/src/styles/navigation.module.sass
+++ b/website/src/styles/navigation.module.sass
@@ -74,23 +74,10 @@
font-weight: bold
color: var(--color-theme)
text-transform: uppercase
- background: transparent
- border: 0
margin-right: 0.5rem
- appearance: none
- background-color: var(--color-back)
- background-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%23929e9b%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E')
- background-repeat: no-repeat
- background-position: right 0.7em top 50%
- background-size: 0.5em auto
- padding: 0 1.4em 0 0.5em
border: 2px solid var(--color-back)
border-radius: 2em
- &:-moz-focusring
- text-shadow: 0 0 0 var(--color-theme)
- color: transparent
-
&:focus
border: 2px dotted var(--color-theme)
outline: none