diff --git a/web/src/App.jsx b/web/src/App.jsx
index 5600399..4f03718 100644
--- a/web/src/App.jsx
+++ b/web/src/App.jsx
@@ -2,13 +2,15 @@ import {
BrowserRouter as Router,
Switch,
Route,
- Link
} from "react-router-dom";
+import { ThemeProvider } from "styled-components";
import {CreateUserWidget, RecentActivityWidget, SystemStatusWidget} from './components'
import {AccountManager, AdminUI, Logger} from './views'
+import theme from './theme';
function App() {
return (
+
@@ -21,6 +23,7 @@ function App() {
+
);
}
diff --git a/web/src/components/Card.jsx b/web/src/components/Card.jsx
index 28f2ff2..59aae88 100644
--- a/web/src/components/Card.jsx
+++ b/web/src/components/Card.jsx
@@ -1,20 +1,19 @@
import React from 'react'
import styled from 'styled-components'
-import { theme } from '../theme';
const CardDiv = styled.div`
flex-grow: 1;
-color: ${theme.color6};
-background: ${theme.color1};
+color: ${props=>props.theme.colours.color6};
+background: ${props=>props.theme.colours.color1};
border-radius: 1em;
padding: 1em;
margin: 1em;
h4 {
- margin: 0;
- }
+ margin: 0;
+}
`;
export default function Card({children}) {
return (
-
+
{children}
)
diff --git a/web/src/components/Card.sass b/web/src/components/Card.sass
deleted file mode 100644
index dbd4b02..0000000
--- a/web/src/components/Card.sass
+++ /dev/null
@@ -1,74 +0,0 @@
-.main
- &__card
- flex-grow: 1
- color: $color6
- background: $color1
- border-radius: 1em
- padding: 1em
- margin: 1em
- h4
- margin: 0
- &__input
- padding: 1em .2em .1em 0.2em
- display: inline-block
- flex-grow: 1
- with: auto
- z-index: 1
- border: none
- background: none
- outline: none
- font-size: 1em
- &__box
- font-size: 1.1em
- overflow: hidden
- position: relative
- margin: 0.2em 0
- display: flex
- flex-direction: row
- align-items: stretch
- background: $color6
- border-bottom: .3em solid $color5
- &:hover
- border-bottom: .3em solid $color3
- outline: auto
- >button
- position: relative
- background: $color2
- color: $color6
- border: none
- font-size: 0.8em
- font-weight: bold
- padding: 0 .5em
- transition: ease all 300ms
- z-index: 1
- &::before
- position: absolute
- display: block
- content: ''
- clip-path: polygon(0% 0%, 100% 100%, 0% 100%)
- transform: translateX(-90%) rotate(45deg)
- height: 1em
- width: 1em
- background: $color2
- transition: ease all 300ms
- &:hover
- background: $color3
- &::before
- background: $color3
- transform: translateX(-90%) rotate(45deg) scale(1.2)
-
- &__label
- padding: 0
- color: $color2
- z-index: 0
- position: absolute
- left: 0.2em
- padding-bottom: 0.2em
- bottom: 0
- transition: all ease-in-out 350ms
- &:focus + &__label, &:not(:placeholder-shown) + &__label
- color: $color5
- font-size: 0.7em
- transform: translateY(0)
- bottom: 50%
- font-weight: bold
\ No newline at end of file
diff --git a/web/src/components/CreateUserWidget.jsx b/web/src/components/CreateUserWidget.jsx
index f487392..e204e5b 100644
--- a/web/src/components/CreateUserWidget.jsx
+++ b/web/src/components/CreateUserWidget.jsx
@@ -1,20 +1,20 @@
import React, { Component } from 'react'
import TextInput from './TextInput'
+import Card from './Card'
export class CreateUserWidget extends Component {
render() {
return (
-
+
)
}
}
diff --git a/web/src/components/RecentActivityWidget.jsx b/web/src/components/RecentActivityWidget.jsx
index 961e904..1beb9a1 100644
--- a/web/src/components/RecentActivityWidget.jsx
+++ b/web/src/components/RecentActivityWidget.jsx
@@ -1,9 +1,9 @@
import React, { Component } from 'react'
-
+import Card from './Card'
export class RecentActivityWidget extends Component {
render() {
return (
-
+
Recent Activity
@@ -22,7 +22,7 @@ export class RecentActivityWidget extends Component {
-
+
)
}
}
diff --git a/web/src/components/SearchBox.jsx b/web/src/components/SearchBox.jsx
new file mode 100644
index 0000000..725f549
--- /dev/null
+++ b/web/src/components/SearchBox.jsx
@@ -0,0 +1,66 @@
+import React, { Component } from 'react'
+import styled, {withTheme,} from 'styled-components'
+export class SearchBox extends Component {
+
+
+ render() {
+ const SearchWrapper = styled.div`
+ margin: .5em;
+ border-radius: .5rem;
+ display: inline-flex;
+ white-space: nowrap;
+ margin-left: auto;
+ transition: ease-in-out all 500ms;
+ flex-grow: 0;
+ max-width: 20em;
+ &:hover {
+ box-shadow: 0 0 1em ${this.props.theme.colours.color3};
+ flex-grow: 1;
+ input {
+ flex-grow: 1;
+ }
+ }
+ input{
+ height: 2rem;
+ transition: ease all 500ms;
+ border-radius: .5rem 0 0 .5rem;
+ display: inline-flex;
+ background: ${this.props.theme.colours.color3};
+ border: none;
+ outline: none;
+ color: ${this.props.theme.colours.color6};
+ flex-grow: 0;
+ margin-left: auto;
+ width: 100%;
+ box-shadow: 0 0 .2em ${this.props.theme.colours.color5};
+ padding: .5em;
+ &:hover, &:not(:placeholder-shown){
+ transition: ease all 500ms;
+ flex-grow: 1;
+ }
+ + button{
+ height: 2rem;
+ border: none;
+ color: ${this.props.theme.colours.color6};
+ border-radius: 0 .5rem .5rem 0;
+ display: inline-flex;
+ align-items: center;
+ background: ${this.props.theme.colours.color2};
+ font-size: 1em;
+ border: .1rem inset ${this.props.theme.colours.color3};
+ border-style: solid;
+ padding: .5em;
+ &:hover{
+ background: ${this.props.theme.colours.color6};
+ color: ${this.props.theme.colours.color3};
+ }
+ }
+ }
+ `;
+ return (
+
+ )
+ }
+}
+
+export default withTheme(SearchBox)
diff --git a/web/src/components/TextInput.jsx b/web/src/components/TextInput.jsx
index 59d24fa..9718f22 100644
--- a/web/src/components/TextInput.jsx
+++ b/web/src/components/TextInput.jsx
@@ -1,36 +1,111 @@
import React, { Component } from 'react'
import styled from 'styled-components'
-import { theme } from '../theme'
-const InputWrapper = styled.div`
-font-size: 1.1em;
-overflow: hidden;
-position: relative;
-margin: 0.2em 0;
-display: -webkit-box;
-display: -ms-flexbox;
-display: flex;
--webkit-box-orient: horizontal;
--webkit-box-direction: normal;
- -ms-flex-direction: row;
- flex-direction: row;
--webkit-box-align: stretch;
- -ms-flex-align: stretch;
- align-items: stretch;
-background: #ddd9ebbf;
-border-bottom: 0.3em solid #490428c6;
-`;
-
+import { withTheme } from 'styled-components';
export class TextInput extends Component {
+
render() {
+ const InputWrapper = styled.div`
+ font-size: 1.1em;
+ overflow: hidden;
+ position: relative;
+ margin: 0.2em 0;
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-orient: horizontal;
+ -webkit-box-direction: normal;
+ -ms-flex-direction: row;
+ flex-direction: row;
+ -webkit-box-align: stretch;
+ -ms-flex-align: stretch;
+ align-items: stretch;
+ background: ${this.props.disabled===undefined ? this.props.theme.colours.color6 : this.props.theme.colours.color7};
+ border-bottom: 0.3em solid ${this.props.disabled===undefined ? this.props.theme.colours.color5 : this.props.theme.colours.color8};
+ :hover {
+ ${this.props.disabled===undefined ? "outline: auto;\nborder-bottom: 0.3em solid" + this.props.theme.colours.color3 + ";" : null};
+ button:hover{
+ ${this.props.btndisabled===undefined ?"background: "+ this.props.theme.colours.color3:""};
+ &::before{
+ ${this.props.btndisabled===undefined ?"background: "+ this.props.theme.colours.color3:""};
+ -webkit-transform: translateX(-90%) rotate(45deg) scale(1.2);
+ transform: translateX(-90%) rotate(45deg) scale(1.2);
+ }
+ }
+ }
+ input{
+ padding: 1em .2em .1em 0.2em;
+ display: inline-block;
+ -webkit-box-flex: 1;
+ -ms-flex-positive: 1;
+ flex-grow: 1;
+ z-index: 1;
+ border: none;
+ background: none;
+ outline: none;
+ font-size: 1em;
+ ${this.props.disabled!==undefined ? "user-select: none;" : null};
+ &:focus + label, &:not(:placeholder-shown) + label {
+ color: ${this.props.theme.colours.color5};
+ font-size: 0.7em;
+ -webkit-transform: translateY(0);
+ transform: translateY(0);
+ bottom: 50%;
+ font-weight: bold;
+ }
+ :disabled{
+ color: ${this.props.theme.colours.color1};
+ &:focus + label, &:not(:placeholder-shown) + label{
+
+ }
+ }
+ }
+ label{
+ padding: 0;
+ color: ${this.props.theme.colours.color2};
+ z-index: 0;
+ position: absolute;
+ left: 0.2em;
+ padding-bottom: 0.2em;
+ bottom: 0;
+ -webkit-transition: all ease-in-out 350ms;
+ transition: all ease-in-out 350ms;
+ }
+ button{
+ position: relative;
+ background: ${this.props.theme.colours.color2};
+ color: ${this.props.theme.colours.color6};
+ border: none;
+ font-size: 0.8em;
+ font-weight: bold;
+ padding: 0 .5em;
+ -webkit-transition: ease all 300ms;
+ transition: ease all 300ms;
+ z-index: 1;
+ ::before {
+ position: absolute;
+ display: block;
+ content: '';
+ -webkit-clip-path: polygon(0% 0%, 100% 100%, 0% 100%);
+ clip-path: polygon(0% 0%, 100% 100%, 0% 100%);
+ -webkit-transform: translateX(-90%) rotate(45deg);
+ transform: translateX(-90%) rotate(45deg);
+ height: 1em;
+ width: 1em;
+ background: ${this.props.theme.colours.color2};
+ -webkit-transition: ease all 300ms;
+ transition: ease all 300ms;
+ }
+ }
+ `;
return (
-
-
-
+
+ {this.props.label != null ? : ""}
+ {this.props.button != null ? : ""}
)
}
}
-export default TextInput
+export default withTheme(TextInput)
diff --git a/web/src/components/index.js b/web/src/components/index.js
index 4567f9b..6a9d2fe 100644
--- a/web/src/components/index.js
+++ b/web/src/components/index.js
@@ -1,4 +1,5 @@
import CreateUserWidget from "./CreateUserWidget";
import RecentActivityWidget from "./RecentActivityWidget";
import SystemStatusWidget from "./SystemStatusWidget";
-export { CreateUserWidget, RecentActivityWidget, SystemStatusWidget }
\ No newline at end of file
+import SearchBox from "./SearchBox";
+export { CreateUserWidget, RecentActivityWidget, SystemStatusWidget, SearchBox }
\ No newline at end of file
diff --git a/web/src/index.js b/web/src/index.js
index 4e84828..6f40616 100644
--- a/web/src/index.js
+++ b/web/src/index.js
@@ -2,10 +2,9 @@ import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';
-
ReactDOM.render(
-
+
,
document.getElementById('root')
);
diff --git a/web/src/theme/index.js b/web/src/theme/index.js
index 94da21c..71db4f9 100644
--- a/web/src/theme/index.js
+++ b/web/src/theme/index.js
@@ -1,10 +1,29 @@
-const theme = {
-color1: "#1F1E2E",
-color2: "#27283A",
-color3: "#438AF4",
-color4: "rgba(2,0,36,0.7455182756696428)",
-color5: "#490428c6",
-color6: "#ddd9ebbf",
+const colours1 = {
+ color1: "#1F1E2E",
+ color2: "#27283A",
+ color3: "#438AF4",
+ color4: "rgba(2,0,36,0.7455182756696428)",
+ color5: "#490428c6",
+ color6: "#ddd9ebbf",
+ color7: "#858192bf",
+ color8: "#3a192ae0",
+ color9: "#110d13",
+ color10: "#fff",
}
-
-export {theme}
\ No newline at end of file
+const colours2 = {
+ color1: "#1e2e2e",
+ color2: "#273a37",
+ color3: "#43f48d",
+ color4: "#012400be",
+ color5: "#254904c6",
+ color6: "#daebd9bf",
+ color7: "#839281bf",
+ color8: "#193a1be0",
+ color9: "#110d13",
+ color10: "#fff",
+}
+const theme = {
+ colours: colours1
+}
+export { theme, colours1 as colours }
+export default theme
\ No newline at end of file
diff --git a/web/src/views/AdminUI.css b/web/src/views/AdminUI.css
deleted file mode 100644
index 7f3db50..0000000
--- a/web/src/views/AdminUI.css
+++ /dev/null
@@ -1,444 +0,0 @@
-* {
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
-}
-
-html, body {
- margin: 0;
-}
-
-#root {
- min-height: 100vh;
- display: -ms-grid;
- display: grid;
- -ms-grid-columns: auto 1fr auto;
- grid-template-columns: auto 1fr auto;
- -ms-grid-rows: auto 1fr 2em;
- grid-template-rows: auto 1fr 2em;
- grid-template-areas: "header header header" " menu main ." "footer footer footer";
- background: #27283A;
- overflow: auto;
-}
-
-#header {
- position: relative;
- -ms-grid-row: 1;
- -ms-grid-column: 1;
- -ms-grid-column-span: 3;
- grid-area: header;
- display: -webkit-inline-box;
- display: -ms-inline-flexbox;
- display: inline-flex;
- -ms-flex-wrap: wrap;
- flex-wrap: wrap;
- -webkit-box-orient: horizontal;
- -webkit-box-direction: normal;
- -ms-flex-direction: row;
- flex-direction: row;
- min-height: auto;
- padding: .5em;
- -webkit-box-pack: end;
- -ms-flex-pack: end;
- justify-content: flex-end;
- -webkit-box-align: center;
- -ms-flex-align: center;
- align-items: center;
- background: #1F1E2E;
- color: #ddd9ebbf;
-}
-
-#header h1 {
- -ms-flex-wrap: nowrap;
- flex-wrap: nowrap;
- white-space: nowrap;
- display: -webkit-inline-box;
- display: -ms-inline-flexbox;
- display: inline-flex;
- font-size: 1.5em;
-}
-
-#header::after {
- -ms-grid-column-align: start;
- justify-self: start;
- position: absolute;
- display: block;
- content: '';
- left: 0;
- right: 0;
- top: 100%;
- background: #438AF4;
- height: .1em;
-}
-
-#header__search {
- margin: .5em;
- border-radius: .5rem;
- display: -webkit-inline-box;
- display: -ms-inline-flexbox;
- display: inline-flex;
- white-space: nowrap;
- margin-left: auto;
- -webkit-transition: ease-in-out all 500ms;
- transition: ease-in-out all 500ms;
- -webkit-box-flex: 0;
- -ms-flex-positive: 0;
- flex-grow: 0;
- max-width: 20em;
-}
-
-#header__search:hover {
- -webkit-box-shadow: 0 0 1em #438AF4;
- box-shadow: 0 0 1em #438AF4;
- -webkit-box-flex: 1;
- -ms-flex-positive: 1;
- flex-grow: 1;
-}
-
-#header__search:hover__input {
- -webkit-box-flex: 1;
- -ms-flex-positive: 1;
- flex-grow: 1;
-}
-
-#header__search__input {
- height: 2rem;
- -webkit-transition: ease all 500ms;
- transition: ease all 500ms;
- border-radius: .5rem 0 0 .5rem;
- display: -webkit-inline-box;
- display: -ms-inline-flexbox;
- display: inline-flex;
- background: #438AF4;
- border: none;
- outline: none;
- color: #ddd9ebbf;
- -webkit-box-flex: 0;
- -ms-flex-positive: 0;
- flex-grow: 0;
- margin-left: auto;
- width: 100%;
- -webkit-box-shadow: 0 0 0.2em #490428c6;
- box-shadow: 0 0 0.2em #490428c6;
- padding: .5em;
-}
-
-#header__search__input:hover, #header__search__input:not(:placeholder-shown) {
- -webkit-transition: ease all 500ms;
- transition: ease all 500ms;
- -webkit-box-flex: 1;
- -ms-flex-positive: 1;
- flex-grow: 1;
-}
-
-#header__search__input + button {
- height: 2rem;
- border: none;
- color: #ddd9ebbf;
- border-radius: 0 .5rem .5rem 0;
- display: -webkit-inline-box;
- display: -ms-inline-flexbox;
- display: inline-flex;
- -webkit-box-align: center;
- -ms-flex-align: center;
- align-items: center;
- background: #27283A;
- font-size: 1em;
- border: 0.1rem inset #438AF4;
- border-style: solid;
- padding: .5em;
-}
-
-#header__search__input + button:hover {
- background: #ddd9ebbf;
- color: #438AF4;
-}
-
-#header__menu {
- display: -webkit-inline-box;
- display: -ms-inline-flexbox;
- display: inline-flex;
- -ms-flex-wrap: nowrap;
- flex-wrap: nowrap;
- -ms-flex-negative: 1;
- flex-shrink: 1;
-}
-
-#header__menu ul {
- list-style: none;
- padding: 0;
-}
-
-#header__menu ul li {
- display: inline;
-}
-
-#header__menu ul li a {
- text-decoration: none;
- color: #ddd9ebbf;
- padding: .5em;
- white-space: nowrap;
-}
-
-#header__menu ul li a:hover {
- color: #438AF4;
-}
-
-#menu {
- -ms-grid-row: 2;
- -ms-grid-column: 1;
- grid-area: menu;
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- min-height: 100;
- -webkit-box-orient: vertical;
- -webkit-box-direction: normal;
- -ms-flex-direction: column;
- flex-direction: column;
- -webkit-box-align: center;
- -ms-flex-align: center;
- align-items: center;
- background: #1F1E2E;
- padding: .5em 0;
- overflow: visible;
-}
-
-#menu h3 {
- margin: 0;
- color: #ddd9ebbf;
- -webkit-text-decoration: bold;
- text-decoration: bold;
-}
-
-#menu ul {
- list-style: none;
- padding-left: 0;
- margin: .4em 0;
-}
-
-#menu ul a {
- position: relative;
- display: block;
- text-decoration: none;
- margin-left: .4em;
- color: #ddd9ebbf;
- padding: .3em .5em;
- font-size: 1.05em;
- -webkit-transition: ease all 500ms;
- transition: ease all 500ms;
-}
-
-#menu ul a::after {
- -webkit-transition: ease all 500ms;
- transition: ease all 500ms;
- position: absolute;
- top: 0;
- bottom: 0;
- right: 100%;
- width: 0em;
- content: '';
- background: #ddd9ebbf;
-}
-
-#menu ul a:hover {
- background: #438AF4;
-}
-
-#menu ul a:hover::after {
- width: 0.4em;
-}
-
-#menu ul a.menu__active {
- color: #438AF4;
-}
-
-#menu ul a.menu__active::after {
- width: 0.4em;
- background: #27283A;
-}
-
-#menu ul a.menu__active:hover {
- color: #fff;
-}
-
-#menu ul a.menu__active:hover::after {
- width: 0.4em;
- background: #ddd9ebbf;
-}
-
-#main {
- position: relative;
- -ms-grid-row: 2;
- -ms-grid-column: 2;
- grid-area: main;
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -ms-flex-line-pack: start;
- align-content: flex-start;
- -webkit-box-align: start;
- -ms-flex-align: start;
- align-items: flex-start;
- -ms-flex-wrap: wrap;
- flex-wrap: wrap;
- padding: 1em;
- border-top-left-radius: 1em;
-}
-
-.main__card {
- -webkit-box-flex: 1;
- -ms-flex-positive: 1;
- flex-grow: 1;
- color: #ddd9ebbf;
- background: #1F1E2E;
- border-radius: 1em;
- padding: 1em;
- margin: 1em;
-}
-
-.main__card h4 {
- margin: 0;
-}
-
-.main__card__input {
- padding: 1em .2em .1em 0.2em;
- display: inline-block;
- -webkit-box-flex: 1;
- -ms-flex-positive: 1;
- flex-grow: 1;
- with: auto;
- z-index: 1;
- border: none;
- background: none;
- outline: none;
- font-size: 1em;
-}
-
-.main__card__input__box {
- font-size: 1.1em;
- overflow: hidden;
- position: relative;
- margin: 0.2em 0;
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-orient: horizontal;
- -webkit-box-direction: normal;
- -ms-flex-direction: row;
- flex-direction: row;
- -webkit-box-align: stretch;
- -ms-flex-align: stretch;
- align-items: stretch;
- background: #ddd9ebbf;
- border-bottom: 0.3em solid #490428c6;
-}
-
-.main__card__input__box:hover {
- border-bottom: 0.3em solid #438AF4;
- outline: auto;
-}
-
-.main__card__input__box > button {
- position: relative;
- background: #27283A;
- color: #ddd9ebbf;
- border: none;
- font-size: 0.8em;
- font-weight: bold;
- padding: 0 .5em;
- -webkit-transition: ease all 300ms;
- transition: ease all 300ms;
- z-index: 1;
-}
-
-.main__card__input__box > button::before {
- position: absolute;
- display: block;
- content: '';
- -webkit-clip-path: polygon(0% 0%, 100% 100%, 0% 100%);
- clip-path: polygon(0% 0%, 100% 100%, 0% 100%);
- -webkit-transform: translateX(-90%) rotate(45deg);
- transform: translateX(-90%) rotate(45deg);
- height: 1em;
- width: 1em;
- background: #27283A;
- -webkit-transition: ease all 300ms;
- transition: ease all 300ms;
-}
-
-.main__card__input__box > button:hover {
- background: #438AF4;
-}
-
-.main__card__input__box > button:hover::before {
- background: #438AF4;
- -webkit-transform: translateX(-90%) rotate(45deg) scale(1.2);
- transform: translateX(-90%) rotate(45deg) scale(1.2);
-}
-
-.main__card__input__label {
- padding: 0;
- color: #27283A;
- z-index: 0;
- position: absolute;
- left: 0.2em;
- padding-bottom: 0.2em;
- bottom: 0;
- -webkit-transition: all ease-in-out 350ms;
- transition: all ease-in-out 350ms;
-}
-
-.main__card__input:focus + .main__card__input__label, .main__card__input:not(:placeholder-shown) + .main__card__input__label {
- color: #490428c6;
- font-size: 0.7em;
- -webkit-transform: translateY(0);
- transform: translateY(0);
- bottom: 50%;
- font-weight: bold;
-}
-
-#footer {
- position: relative;
- -ms-grid-row: 3;
- -ms-grid-column: 1;
- -ms-grid-column-span: 3;
- grid-area: footer;
- display: -webkit-box;
- display: -ms-flexbox;
- display: flex;
- -webkit-box-pack: center;
- -ms-flex-pack: center;
- justify-content: center;
- -webkit-box-align: center;
- -ms-flex-align: center;
- align-items: center;
- color: #ffffff67;
- text-transform: uppercase;
-}
-
-#footer::after {
- position: absolute;
- left: 0;
- right: 0;
- bottom: 0;
- height: 2em;
- widht: 100vw;
- opacity: 0.5;
- background: #000;
- background: -webkit-gradient(linear, left top, right top, from(#27283A), color-stop(#110d13), color-stop(50%, #490428c6), color-stop(65%, rgba(2, 0, 36, 0.745518)), to(#1F1E2E));
- background: linear-gradient(90deg, #27283A 0%, #110d13, #490428c6 50%, rgba(2, 0, 36, 0.745518) 65%, #1F1E2E 100%);
- content: '';
-}
-
-#footer::before {
- position: absolute;
- left: 0;
- right: 0;
- bottom: 100%;
- height: .2em;
- opacity: 0.5;
- content: '';
- background: -webkit-gradient(linear, left top, left bottom, from(#27283A), to(#438AF4));
- background: linear-gradient(#27283A, #438AF4);
-}
-/*# sourceMappingURL=AdminUI.css.map */
\ No newline at end of file
diff --git a/web/src/views/AdminUI.css.map b/web/src/views/AdminUI.css.map
deleted file mode 100644
index f06d183..0000000
--- a/web/src/views/AdminUI.css.map
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "version": 3,
- "mappings": "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",
- "sources": [
- "AdminUI.sass"
- ],
- "names": [],
- "file": "AdminUI.css"
-}
\ No newline at end of file
diff --git a/web/src/views/AdminUI.jsx b/web/src/views/AdminUI.jsx
index 72a3bf1..67057dc 100644
--- a/web/src/views/AdminUI.jsx
+++ b/web/src/views/AdminUI.jsx
@@ -1,24 +1,228 @@
import React, { Component } from 'react'
-import "./AdminUI.sass"
-import {Link, NavLink} from 'react-router-dom'
+//import "./AdminUI.sass"
+import { Link, NavLink } from 'react-router-dom'
+import styled, { createGlobalStyle, withTheme } from 'styled-components';
+import {SearchBox} from '../components';
+
export class AdminUI extends Component {
render() {
- const children = this.props.children;
+ const GlobalStyle = createGlobalStyle`
+ *{
+ box-sizing: border-box;
+ }
+ html, body{
+ margin: 0;
+ }
+ #root{
+ min-height: 100vh;
+ display: grid;
+ grid-template-columns: auto 1fr auto;
+ grid-template-rows: auto 1fr 2em;
+ grid-template-areas: "header header header" " menu main ." "footer footer footer";
+ //background: $color2
+ overflow: auto;
+ }
+ `;
+ const Header = styled.header`
+ position: relative;
+ -ms-grid-row: 1;
+ -ms-grid-column: 1;
+ -ms-grid-column-span: 3;
+ grid-area: header;
+ display: -webkit-inline-box;
+ display: -ms-inline-flexbox;
+ display: inline-flex;
+ -ms-flex-wrap: wrap;
+ flex-wrap: wrap;
+ -webkit-box-orient: horizontal;
+ -webkit-box-direction: normal;
+ -ms-flex-direction: row;
+ flex-direction: row;
+ min-height: auto;
+ padding: .5em;
+ -webkit-box-pack: end;
+ -ms-flex-pack: end;
+ justify-content: flex-end;
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ background: ${this.props.theme.colours.color1};
+ color: ${this.props.theme.colours.color7};
+ h1 {
+ -ms-flex-wrap: nowrap;
+ flex-wrap: nowrap;
+ white-space: nowrap;
+ display: -webkit-inline-box;
+ display: -ms-inline-flexbox;
+ display: inline-flex;
+ font-size: 1.5em;
+ }
+
+ &::after {
+ -ms-grid-column-align: start;
+ justify-self: start;
+ position: absolute;
+ display: block;
+ content: '';
+ left: 0;
+ right: 0;
+ top: 100%;
+ background: ${this.props.theme.colours.color3};
+ height: .2em;
+ z-index: 1;
+ }
+ nav{
+ display: inline-flex;
+ flex-wrap: nowrap;
+ flex-shrink: 1;
+ ul{
+ list-style: none;
+ padding: 0;
+ li{
+ display: inline;
+ a{
+ text-decoration: none;
+ color: ${this.props.theme.colours.color6};
+ padding: .5em;
+ white-space: nowrap;
+ &:hover{
+ color: ${this.props.theme.colours.color3};
+ }
+ }
+ }
+ }
+ }
+ `;
+ const Menu = styled.menu`
+ -ms-grid-row: 2;
+ -ms-grid-column: 1;
+ grid-area: menu;
+ margin: 0;
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ min-height: 100;
+ -webkit-box-orient: vertical;
+ -webkit-box-direction: normal;
+ -ms-flex-direction: column;
+ flex-direction: column;
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ background: ${this.props.theme.colours.color1};
+ padding: .5em 0;
+ overflow: visible;
+ h3{
+ margin: 0;
+ color: #ddd9ebbf;
+ -webkit-text-decoration: bold;
+ text-decoration: bold;
+ }
+ ul{
+ list-style: none;
+ padding-left: 0;
+ margin: .4em 0;
+ a{
+ position: relative;
+ display: block;
+ text-decoration: none;
+ margin-left: .4em;
+ color: ${this.props.theme.colours.color6};
+ padding: .3em .5em;
+ font-size: 1.05em;
+ -webkit-transition: ease all 500ms;
+ transition: ease all 500ms;
+ &::after{
+ -webkit-transition: ease all 500ms;
+ transition: ease all 500ms;
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ right: 100%;
+ width: 0em;
+ content: '';
+ background: ${this.props.theme.colours.color6};
+ }
+ &:hover{
+ background: ${this.props.theme.colours.color3};
+ &::after{
+ width: 0.4em;
+ }
+ }
+ &.menu__active{
+ color: ${this.props.theme.colours.color3};
+ &::after{
+ width: 0.4em;
+ background: ${this.props.theme.colours.color2};
+ }
+ &:hover {
+ color: ${this.props.theme.colours.color10};
+ &::after {
+ width: 0.4em;
+ background: ${this.props.theme.colours.color6};
+ }
+ }
+ }
+ }
+ }
+ `;
+ const Footer = styled.footer`
+ position: relative;
+ grid-area: footer;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ color: ${this.props.theme.colours.color10};
+ text-shadow: 0 0 .3em ${this.props.theme.colours.color2};
+ text-transform: uppercase;
+ background: ${this.props.theme.colours.color2};
+ &::after {
+ position: absolute;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ height: 2em;
+ opacity: 0.5;
+ background: linear-gradient(-10deg, ${this.props.theme.colours.color2} 0%, ${this.props.theme.colours.color9}, ${this.props.theme.colours.color6} 50%, ${this.props.theme.colours.color4} 65%, ${this.props.theme.colours.color1} 100%);
+ content: '';
+ }
+ &::before {
+ position: absolute;
+ left: 0;
+ right: 0;
+ bottom: 100%;
+ height: .2em;
+ opacity: 0.5;
+ content: '';
+ background: linear-gradient(${this.props.theme.colours.color2}, ${this.props.theme.colours.color3});
+ }
+ `;
+ const Main = styled.div`
+ position: relative;
+ grid-area: main;
+ display: flex;
+ align-content: flex-start;
+ align-items: flex-start;
+ flex-wrap: wrap;
+ padding: 1em;
+ background: ${this.props.theme.colours.color2};
+ `;
return (
<>
-
-
-
- {children}
-
-
+
+
+ {this.props.children}
+
+
>
)
}
}
-export default AdminUI
+export default withTheme(AdminUI)
diff --git a/web/src/views/AdminUI.sass b/web/src/views/AdminUI.sass
deleted file mode 100644
index adbc495..0000000
--- a/web/src/views/AdminUI.sass
+++ /dev/null
@@ -1,275 +0,0 @@
-$color1: #1F1E2E
-$color2: #27283A
-$color3: #438AF4
-$color4: rgba(2,0,36,0.7455182756696428)
-$color5: #490428c6
-$color6: #ddd9ebbf
-*
- box-sizing: border-box
-html, body
- margin: 0
-#root
- min-height: 100vh
- display: grid
- grid-template-columns: auto 1fr auto
- grid-template-rows: auto 1fr 2em
- grid-template-areas: "header header header" " menu main ." "footer footer footer"
- background: $color2
- overflow: auto
-
-#header
- position: relative
- grid-area: header
- display: inline-flex
- flex-wrap: wrap
- flex-direction: row
- min-height: auto
- padding: .5em
- justify-content: flex-end
- align-items: center
- background: $color1
- color: $color6
-
- h1
- flex-wrap: nowrap
- white-space: nowrap
- display: inline-flex
- font-size: 1.5em
- &::after
- justify-self: start
- position: absolute
- display: block
- content: ''
- left: 0
- right: 0
- top: 100%
- background: $color3
- height: .1em
-
- &__search
-
- margin: .5em
- border-radius: .5rem
- display: inline-flex
- white-space: nowrap
- margin-left: auto
- transition: ease-in-out all 500ms
- flex-grow: 0
- max-width: 20em
- &:hover
- box-shadow: 0 0 1em $color3
- flex-grow: 1
- &__input
- flex-grow: 1
- &__input
- height: 2rem
- transition: ease all 500ms
- border-radius: .5rem 0 0 .5rem
- display: inline-flex
- background: $color3
- border: none
- outline: none
- color: $color6
- flex-grow: 0
- margin-left: auto
- width: 100%
- box-shadow: 0 0 .2em $color5
- padding: .5em
- &:hover, &:not(:placeholder-shown)
- transition: ease all 500ms
- flex-grow: 1
- + button
- height: 2rem
- border: none
- color: $color6
- border-radius: 0 .5rem .5rem 0
- display: inline-flex
- align-items: center
- background: $color2
- font-size: 1em
- border: .1rem inset $color3
- border-style: solid
- padding: .5em
- &:hover
- background: $color6
- color: $color3
- &__menu
- display: inline-flex
- flex-wrap: nowrap
- flex-shrink: 1
- ul
- list-style: none
- padding: 0
- li
- display: inline
- a
- text-decoration: none
- color: $color6
- padding: .5em
- white-space: nowrap
- &:hover
- color: $color3
-#menu
- grid-area: menu
- display: flex
- min-height: 100
- flex-direction: column
- align-items: center
- background: $color1
- padding: .5em 0
- overflow: visible
- h3
- margin: 0
- color: $color6
- text-decoration: bold
- ul
- list-style: none
- padding-left: 0
- margin: .4em 0
- a
- position: relative
- display: block
- text-decoration: none
- margin-left: .4em
- color: $color6
- //margin: .5em 0
- padding: .3em .5em
- font-size: 1.05em
- transition: ease all 500ms
- &::after
- transition: ease all 500ms
- position: absolute
- top: 0
- bottom: 0
- right: 100%
- width: 0em
- content: ''
- background: $color6
- &:hover
- background: $color3
- &::after
- width: 0.4em
- &.menu__active
- color: $color3
- &::after
- width: 0.4em
- background: $color2
- &:hover
- color: #fff
-
- &::after
- width: 0.4em
- background: $color6
-
-#main
- position: relative
- grid-area: main
- display: flex
- align-content: flex-start
- align-items: flex-start
- flex-wrap: wrap
- padding: 1em
- border-top-left-radius: 1em
-.main
- &__card
- flex-grow: 1
- color: $color6
- background: $color1
- border-radius: 1em
- padding: 1em
- margin: 1em
- h4
- margin: 0
- &__input
- padding: 1em .2em .1em 0.2em
- display: inline-block
- flex-grow: 1
- with: auto
- z-index: 1
- border: none
- background: none
- outline: none
- font-size: 1em
- &__box
- font-size: 1.1em
- overflow: hidden
- position: relative
- margin: 0.2em 0
- display: flex
- flex-direction: row
- align-items: stretch
- background: $color6
- border-bottom: .3em solid $color5
- &:hover
- border-bottom: .3em solid $color3
- outline: auto
- >button
- position: relative
- background: $color2
- color: $color6
- border: none
- font-size: 0.8em
- font-weight: bold
- padding: 0 .5em
- transition: ease all 300ms
- z-index: 1
- &::before
- position: absolute
- display: block
- content: ''
- clip-path: polygon(0% 0%, 100% 100%, 0% 100%)
- transform: translateX(-90%) rotate(45deg)
- height: 1em
- width: 1em
- background: $color2
- transition: ease all 300ms
- &:hover
- background: $color3
- &::before
- background: $color3
- transform: translateX(-90%) rotate(45deg) scale(1.2)
-
- &__label
- padding: 0
- color: $color2
- z-index: 0
- position: absolute
- left: 0.2em
- padding-bottom: 0.2em
- bottom: 0
- transition: all ease-in-out 350ms
- &:focus + &__label, &:not(:placeholder-shown) + &__label
- color: $color5
- font-size: 0.7em
- transform: translateY(0)
- bottom: 50%
- font-weight: bold
-#footer
- position: relative
- grid-area: footer
- display: flex
- justify-content: center
- align-items: center
- color: #ffffff67
- text-transform: uppercase
- &::after
- position: absolute
-
- left: 0
- right: 0
- bottom: 0
- height: 2em
- widht: 100vw
- opacity: 0.5
- background: #000
- background: linear-gradient(90deg, $color2 0%, $color3% 25%, $color5 50%, $color4 65%, $color1 100%)
- content: ''
- &::before
- position: absolute
- left: 0
- right: 0
- bottom: 100%
- height: .2em
- opacity: 0.5
- content: ''
- background: linear-gradient($color2,$color3)