diff --git a/hyperglass/ui/components/ColorModeToggle.js b/hyperglass/ui/components/ColorModeToggle.js
new file mode 100644
index 0000000..84d85a1
--- /dev/null
+++ b/hyperglass/ui/components/ColorModeToggle.js
@@ -0,0 +1,76 @@
+import * as React from "react";
+import { forwardRef } from "react";
+import { Button, useColorMode } from "@chakra-ui/core";
+
+const Sun = ({ color, size = "1.5rem", ...props }) => (
+
+);
+
+const Moon = ({ color, size = "1.5rem", ...props }) => (
+
+);
+
+const iconMap = { dark: Moon, light: Sun };
+const outlineColor = { dark: "primary.300", light: "primary.600" };
+
+export const ColorModeToggle = forwardRef((props, ref) => {
+ const { colorMode, toggleColorMode } = useColorMode();
+ const Icon = iconMap[colorMode];
+
+ const label = `Switch to ${colorMode === "light" ? "dark" : "light"} mode`;
+
+ return (
+
+ );
+});
diff --git a/hyperglass/ui/components/Header.js b/hyperglass/ui/components/Header.js
index 8c92891..064882e 100644
--- a/hyperglass/ui/components/Header.js
+++ b/hyperglass/ui/components/Header.js
@@ -1,10 +1,11 @@
import React from "react";
-import { Flex, IconButton, useColorMode } from "@chakra-ui/core";
+import { Flex, useColorMode } from "@chakra-ui/core";
import { motion, AnimatePresence } from "framer-motion";
import ResetButton from "~/components/ResetButton";
import useMedia from "~/components/MediaProvider";
import useConfig, { useHyperglassState } from "~/components/HyperglassProvider";
import Title from "~/components/Title";
+import { ColorModeToggle } from "~/components/ColorModeToggle";
const AnimatedFlex = motion.custom(Flex);
const AnimatedResetButton = motion.custom(ResetButton);
@@ -56,13 +57,13 @@ const resetButtonMl = { true: [null, 2, 2, 2], false: null };
const widthMap = {
text_only: "100%",
- logo_only: ["90%", "90%", "25%", "25%"],
- logo_subtitle: ["90%", "90%", "25%", "25%"],
- all: ["90%", "90%", "25%", "25%"]
+ logo_only: ["90%", "90%", "50%", "50%"],
+ logo_subtitle: ["90%", "90%", "50%", "50%"],
+ all: ["90%", "90%", "50%", "50%"]
};
const Header = ({ layoutRef, ...props }) => {
- const { colorMode, toggleColorMode } = useColorMode();
+ const { colorMode } = useColorMode();
const { web } = useConfig();
const { mediaSize } = useMedia();
const { isSubmitting, resetForm } = useHyperglassState();
@@ -125,16 +126,7 @@ const Header = ({ layoutRef, ...props }) => {
mb={[null, "auto"]}
mr={isSubmitting ? null : 2}
>
-
+
);
const layout = {