diff --git a/src/App.module.css b/src/App.module.css
index ce4b11a..d7c97be 100644
--- a/src/App.module.css
+++ b/src/App.module.css
@@ -1,4 +1,4 @@
-.appContainer {
+.appWrapper {
height: 100vh;
width: 100%;
overflow: hidden;
@@ -20,24 +20,24 @@
display: flex;
}
- .alphaZone {
+ .firstZone {
flex: 1;
}
- .betaZone {
+ .secondZone {
flex: 1;
}
- .colorPickerContainer {
+ .colorPickerWrapper {
}
- .colorValuesContainer {
+ .colorValuesWrapper {
}
- .paletteEditorContainer {
+ .paletteEditorWrapper {
}
- .paletteLibraryContainer {
+ .paletteLibraryWrapper {
}
}
@@ -61,35 +61,35 @@
.mobileRightNav {
}
- .mobileAlphaZone {
+ .mobileFirstZone {
flex: 1;
}
- .mobileBetaZone {
+ .mobileSecondZone {
flex: 1;
}
- .tabbedContainer {
+ .tabWrapper {
max-height: 100vh;
overflow-y: scroll;
scroll-snap-type: y mandatory;
}
- .tabbedContainer .tab {
+ .tabWrapper .tab {
height: 100vh;
scroll-snap-align: start;
}
- .colorPickerContainer {
+ .colorPickerWrapper {
}
- .colorValuesContainer {
+ .colorValuesWrapper {
}
- .paletteEditorContainer {
+ .paletteEditorWrapper {
}
- .paletteLibraryContainer {
+ .paletteLibraryWrapper {
}
}
@@ -119,32 +119,32 @@
margin-left: auto;
}
- .mobileAlphaZone {
+ .mobileFirstZone {
}
- .mobileBetaZone {
+ .mobileSecondZone {
}
- .tabbedContainer {
+ .tabWrapper {
display: flex;
overflow-x: scroll;
scroll-snap-type: x mandatory;
}
- .tabbedContainer .tab {
+ .tabWrapper .tab {
min-width: 100vw;
scroll-snap-align: start;
}
- .colorPickerContainer {
+ .colorPickerWrapper {
}
- .colorValuesContainer {
+ .colorValuesWrapper {
}
- .paletteEditorContainer {
+ .paletteEditorWrapper {
}
- .paletteLibraryContainer {
+ .paletteLibraryWrapper {
}
}
diff --git a/src/App.tsx b/src/App.tsx
index f8df026..dc38dae 100644
--- a/src/App.tsx
+++ b/src/App.tsx
@@ -5,86 +5,224 @@ import ColorValues from "./components/ColorValues/ColorValues";
import { LeftMenu, RightMenu } from "./components/SideMenu";
import clsx from "clsx";
+// Menu Button Components
+
+interface MenuButtonProps {
+ onClick: () => void;
+ isOpen: boolean;
+}
+
+function LeftMenuButton({ onClick, isOpen }: MenuButtonProps) {
+ return (
+
+ );
+}
+
+function RightMenuButton({ onClick, isOpen }: MenuButtonProps) {
+ return (
+
+ );
+}
+
+// Mobile Layout Components
+
+interface MenuStateProps {
+ isRightMenuOpen: boolean;
+ isLeftMenuOpen: boolean;
+ setIsRightMenuOpen: (state: boolean) => void;
+ setIsLeftMenuOpen: (state: boolean) => void;
+}
+
+function MobileTopNav({
+ onLeftMenuClick,
+ onRightMenuClick,
+ isRightMenuOpen,
+ isLeftMenuOpen,
+}: {
+ onLeftMenuClick: () => void;
+ onRightMenuClick: () => void;
+ isRightMenuOpen: boolean;
+ isLeftMenuOpen: boolean;
+}) {
+ return (
+
+ );
+}
+
+function MobileLeftNav({ onClick, isOpen }: MenuButtonProps) {
+ return (
+
+ );
+}
+
+function MobileRightNav({ onClick, isOpen }: MenuButtonProps) {
+ return (
+
+ );
+}
+
+function MobileFirstZone() {
+ return (
+