aboutsummaryrefslogtreecommitdiffstats
path: root/packages/website/ts/@next/components/hamburger.tsx
diff options
context:
space:
mode:
authorFred Carlsen <fred@sjelfull.no>2018-12-10 18:19:20 +0800
committerFred Carlsen <fred@sjelfull.no>2018-12-10 18:19:20 +0800
commitc99558606347682c6c5c9bb20d37aa4fbe8ab6be (patch)
tree3b6927cac22415c7139dc9a2463664aa1dada1a3 /packages/website/ts/@next/components/hamburger.tsx
parent8dd738629ad3bc6e07de7499272e3528a26091a3 (diff)
downloaddexon-0x-contracts-c99558606347682c6c5c9bb20d37aa4fbe8ab6be.tar.gz
dexon-0x-contracts-c99558606347682c6c5c9bb20d37aa4fbe8ab6be.tar.zst
dexon-0x-contracts-c99558606347682c6c5c9bb20d37aa4fbe8ab6be.zip
WIP mobile header + developer dropdown
Diffstat (limited to 'packages/website/ts/@next/components/hamburger.tsx')
-rw-r--r--packages/website/ts/@next/components/hamburger.tsx68
1 files changed, 68 insertions, 0 deletions
diff --git a/packages/website/ts/@next/components/hamburger.tsx b/packages/website/ts/@next/components/hamburger.tsx
new file mode 100644
index 000000000..0eac4a53f
--- /dev/null
+++ b/packages/website/ts/@next/components/hamburger.tsx
@@ -0,0 +1,68 @@
+import * as React from 'react';
+import styled from 'styled-components';
+
+interface Props {
+ isOpen: boolean;
+ onClick?: () => void;
+}
+
+export const Hamburger: React.FunctionComponent<Props> = (props: Props) => {
+ return (
+ <StyledHamburger isOpen={props.isOpen} onClick={props.onClick}>
+ <span />
+ <span />
+ <span />
+ </StyledHamburger>
+ );
+};
+
+const StyledHamburger = styled.button<Props>`
+ background: none;
+ border: 0;
+ width: 22px;
+ height: 16px;
+ position: relative;
+ z-index: 2;
+ padding: 0;
+ outline: none;
+ user-select: none;
+
+ @media (min-width: 768px) {
+ display: none;
+ }
+
+ span {
+ display: block;
+ background-color: #fff;
+ width: 100%;
+ height: 2px;
+ margin-bottom: 5px;
+ transform-origin: 4px 0px;
+ transition: transform 0.5s cubic-bezier(0.77,0.2,0.05,1.0),
+ background-color 0.5s cubic-bezier(0.77,0.2,0.05,1.0),
+ opacity 0.55s ease;
+
+ &:first-child {
+ //transform-origin: 0% 0%;
+ }
+
+ &:last-child {
+ //transform-origin: 0% 100%;
+ }
+
+ ${props => props.isOpen && `
+ opacity: 1;
+ transform: rotate(45deg) translate(0, 1px);
+ background-color: #fff;
+
+ &:nth-child(2) {
+ opacity: 0;
+ transform: rotate(0deg) scale(0.2, 0.2);
+ }
+
+ &:last-child {
+ transform: rotate(-45deg) translate(1px, -4px);
+ }
+ `}
+ }
+`;