diff --git a/projects/mercury/public/public/images/icon_white.png b/projects/mercury/public/public/images/icon_white.png
new file mode 100644
index 000000000..6291bdf6a
Binary files /dev/null and b/projects/mercury/public/public/images/icon_white.png differ
diff --git a/projects/mercury/public/public/images/logo_white.png b/projects/mercury/public/public/images/logo_white.png
index 6291bdf6a..298c8e1a0 100644
Binary files a/projects/mercury/public/public/images/logo_white.png and b/projects/mercury/public/public/images/logo_white.png differ
diff --git a/projects/mercury/src/App.theme.js b/projects/mercury/src/App.theme.js
index c4280d50a..4d2fbbeef 100644
--- a/projects/mercury/src/App.theme.js
+++ b/projects/mercury/src/App.theme.js
@@ -1,10 +1,33 @@
import {createTheme} from '@mui/material';
-import {blue, indigo, pink} from '@mui/material/colors';
+import {pink} from '@mui/material/colors';
-export default createTheme({
+export const COLORS = {
+ fsBlueLight: 'rgba(106,134,232,1)',
+ fsBlueLightTransp25: 'rgba(106,134,232,0.25)',
+ fsBlueMedium: 'rgba(63,102,177,1)',
+ fsBlueDark: 'rgba(7, 59, 82, 1)'
+};
+
+const globalTheme = createTheme({
palette: {
- primary: process.env.NODE_ENV === 'development' ? blue : indigo,
- secondary: pink
+ primary: {
+ main: COLORS.fsBlueMedium,
+ light: COLORS.fsBlueLight,
+ dark: COLORS.fsBlueDark
+ },
+ secondary: pink,
+ background: {
+ default: '#d9d9d9'
+ }
+ }
+});
+
+export default createTheme({
+ ...globalTheme,
+ typography: {
+ button: {
+ textTransform: 'none'
+ }
},
components: {
MuiMenu: {
@@ -88,6 +111,18 @@ export default createTheme({
}
}
},
+ MuiButton: {
+ styleOverrides: {
+ root: {
+ background: globalTheme.palette.primary.dark,
+ borderRadius: 15,
+ borderColor: globalTheme.palette.primary.light,
+ paddingBottom: 0,
+ paddingTop: 0,
+ minHeight: 35
+ }
+ }
+ },
MuiCardHeader: {
styleOverrides: {
root: {
@@ -117,6 +152,23 @@ export default createTheme({
}
}
}
+ },
+ MuiPaper: {
+ styleOverrides: {
+ root: {
+ backgroundColor: globalTheme.palette.background.default,
+ // borderRadius: 15,
+ border: '1px solid',
+ borderColor: globalTheme.palette.primary.dark
+ }
+ }
+ },
+ MuiBox: {
+ styleOverrides: {
+ root: {
+ borderRadius: 15
+ }
+ }
}
}
});
diff --git a/projects/mercury/src/layout/Layout.js b/projects/mercury/src/layout/Layout.js
index cc53be7e8..5d4807065 100644
--- a/projects/mercury/src/layout/Layout.js
+++ b/projects/mercury/src/layout/Layout.js
@@ -3,11 +3,8 @@ import PropTypes from 'prop-types';
import withStyles from '@mui/styles/withStyles';
import Link from '@mui/material/Link';
import styles from './Layout.styles';
-import Footer from './Footer';
-import TopBar from './TopBar';
import MenuDrawer from './MenuDrawer';
import LoadingInlay from '../common/components/LoadingInlay';
-import versionInfo from '../common/VersionInfo';
import UserContext from '../users/UserContext';
import StatusContext, {VALID_USER_SESSION} from '../status/StatusContext';
import {SERVER_STATUS_UP} from '../status/StatusAPI';
@@ -16,12 +13,7 @@ import StatusAlert from '../status/StatusAlert';
const LOCAL_STORAGE_MENU_KEY = 'FAIRSPACE_MENU_EXPANDED';
const LEFT_MENU_EXPANSION_DELAY = 500;
-const Layout = ({
- classes,
- renderMenu,
- renderMain = () => {},
- renderTopbar = () =>
-}) => {
+const Layout = ({classes, renderMenu, renderMain = () => {}}) => {
const [menuExpanded, setMenuExpanded] = useState(window.localStorage.getItem(LOCAL_STORAGE_MENU_KEY) !== 'false');
const [menuOpenDueToHover, setMenuOpenDueToHover] = useState(false);
const [timeoutId, setTimeoutId] = useState();
@@ -88,7 +80,6 @@ const Layout = ({
return (
// The app itself consists of a topbar, a drawer and the actual page
<>
- {renderTopbar()}
{renderAlert()}
{renderMenu && (
)}
-
+
{renderMain()}
-
>
);
};
Layout.propTypes = {
renderMenu: PropTypes.func,
- renderMain: PropTypes.func,
- renderTopbar: PropTypes.func
+ renderMain: PropTypes.func
};
export default withStyles(styles)(Layout);
diff --git a/projects/mercury/src/layout/Layout.styles.js b/projects/mercury/src/layout/Layout.styles.js
index 9a53706c4..681a1db16 100644
--- a/projects/mercury/src/layout/Layout.styles.js
+++ b/projects/mercury/src/layout/Layout.styles.js
@@ -5,7 +5,7 @@ const styles = theme => ({
minWidth: 0, // So the Typography noWrap works
overflowY: 'scroll',
overflowX: 'hidden',
- height: 'calc(100vh - 115px)'
+ height: '100vh'
}
});
diff --git a/projects/mercury/src/layout/MainMenu.js b/projects/mercury/src/layout/MainMenu.js
index 989603a2b..cf2fc5de8 100644
--- a/projects/mercury/src/layout/MainMenu.js
+++ b/projects/mercury/src/layout/MainMenu.js
@@ -1,7 +1,8 @@
import React, {useContext} from 'react';
import withStyles from '@mui/styles/withStyles';
+import classNames from 'classnames';
import {NavLink} from 'react-router-dom';
-import {Divider, Icon, List, ListItemButton, ListItemIcon, ListItemText} from '@mui/material';
+import {Button, Icon, Stack} from '@mui/material';
import {Search, SavedSearch, Folder, FolderSpecial, OpenInNew, VerifiedUser, Widgets} from '@mui/icons-material';
import HomeIcon from '@mui/icons-material/Home';
import ServicesContext from '../common/contexts/ServicesContext';
@@ -15,23 +16,40 @@ import {getExternalMetadataSourcePathPrefix} from '../metadata/external-views/ex
import InternalMetadataSourceContext from '../metadata/metadata-sources/InternalMetadataSourceContext';
const styles = {
+ buttonStack: {
+ paddingLeft: 20,
+ paddingRight: 20
+ },
+ buttonStackCollapsed: {
+ paddingLeft: 10,
+ paddingRight: 10
+ },
mainMenuButton: {
paddingTop: 15,
- paddingBottom: 15
+ paddingBottom: 15,
+ textAlign: 'center',
+ color: 'white',
+ height: 40
+ },
+ mainMenuButtonSmall: {
+ minWidth: 40,
+ width: 40,
+ borderRadius: 20,
+ '& .MuiButton-startIcon': {
+ marginRight: 0,
+ marginLeft: 0
+ }
},
imageIcon: {
display: 'flex',
height: 'inherit',
width: 'inherit'
},
- coreMenuImageIcon: {
- opacity: 0.6
- },
iconRoot: {
textAlign: 'center'
}
};
-const MainMenu = ({classes}) => {
+const MainMenu = ({open, classes}) => {
const {pathname} = window.location;
const {services} = useContext(ServicesContext);
const {currentUser} = useContext(UserContext);
@@ -43,92 +61,91 @@ const MainMenu = ({classes}) => {
const interpolate = s => s.replace('${username}', currentUser.username);
return (
<>
-
-
+ }
>
-
-
-
-
-
-
+ }
>
-
-
-
-
-
-
+ }
>
-
-
-
-
-
+ {open && 'Collections'}
+
{externalStorages &&
externalStorages.map(storage => (
- }
>
-
-
-
-
-
+ {open && storage.label}
+
))}
{views && views.length > 0 && currentUser.canViewPublicMetadata && (
-
-
- {internalMetadataIcon ? (
+ startIcon={
+ internalMetadataIcon ? (
-
+
) : (
- )}
-
-
-
+ )
+ }
+ >
+ {open && internalMetadataLabel}
+
)}
{currentUser.canViewPublicMetadata &&
externalMetadataSources &&
externalMetadataSources.map(source => (
-
-
- {source.icon ? (
+ startIcon={
+ source.icon ? (
{
) : (
- )}
-
-
-
+ )
+ }
+ >
+ {open && source.label}
+
))}
{isAdmin(currentUser) && (
- }
>
-
-
-
-
-
+ {open && 'Users'}
+
)}
-
-
-
-
-
- {services.map(service => (
-
-
- {service.icon ? (
-
-
-
- ) : (
-
- )}
-
-
-
- ))}
-
-
+
+
+ {services.map(service => (
+
+ ))}
+
>
);
};
diff --git a/projects/mercury/src/layout/MenuDrawer.js b/projects/mercury/src/layout/MenuDrawer.js
index 0dc5b4897..814269bdb 100644
--- a/projects/mercury/src/layout/MenuDrawer.js
+++ b/projects/mercury/src/layout/MenuDrawer.js
@@ -1,7 +1,7 @@
import React from 'react';
import PropTypes from 'prop-types';
import classNames from 'classnames';
-import {Divider, Drawer, IconButton} from '@mui/material';
+import {Drawer, IconButton} from '@mui/material';
import withStyles from '@mui/styles/withStyles';
import ChevronLeftIcon from '@mui/icons-material/ChevronLeft';
import ChevronRightIcon from '@mui/icons-material/ChevronRight';
@@ -15,15 +15,21 @@ const MenuDrawer = ({open, renderMenu, toggleMenuExpansion, onMouseEnter, onMous
paper: classNames(classes.drawerPaper, open ? classes.drawerPaperOpen : classes.drawerPaperClose)
}}
>
+
+ {open ? (
+
+ ) : (
+
+ )}
+
+
+ {renderMenu(open)}
+
-
+
{open ? : }
-
-
- {renderMenu()}
-
);
diff --git a/projects/mercury/src/layout/MenuDrawer.styles.js b/projects/mercury/src/layout/MenuDrawer.styles.js
index fafd21fbd..c8812a8bf 100644
--- a/projects/mercury/src/layout/MenuDrawer.styles.js
+++ b/projects/mercury/src/layout/MenuDrawer.styles.js
@@ -2,13 +2,15 @@ const styles = theme => ({
drawerPaper: {
position: 'fixed',
whiteSpace: 'nowrap',
- width: 240,
- marginTop: '65px',
+ width: 280,
+ marginTop: '0',
overflow: 'hidden',
transition: theme.transitions.create('width', {
easing: theme.transitions.easing.sharp,
duration: theme.transitions.duration.enteringScreen
- })
+ }),
+ background: `radial-gradient(at right center, ${theme.palette.primary.main} 20%, ${theme.palette.primary.dark} 75%)`,
+ height: '100vh'
},
drawerPaperOpen: {
transition: theme.transitions.create('width', {
@@ -24,13 +26,22 @@ const styles = theme => ({
width: 62
},
toolbar: {
- backgroundColor: '#f0f0f0',
display: 'flex',
alignItems: 'center',
justifyContent: 'flex-end',
padding: '0 8px',
...theme.mixins.toolbar
},
+ toolbarIcon: {
+ color: 'white'
+ },
+ mainLogo: {
+ flexGrow: 1,
+ textAlign: 'center',
+ maxHeight: 140,
+ marginTop: 60,
+ marginBottom: 30
+ },
customerLogo: {
position: 'absolute',
bottom: 50,
diff --git a/projects/mercury/src/layout/TopBar.js b/projects/mercury/src/layout/TopBar.js
index ff057142f..81626f3b0 100644
--- a/projects/mercury/src/layout/TopBar.js
+++ b/projects/mercury/src/layout/TopBar.js
@@ -21,7 +21,7 @@ const TopBar = ({classes, children}) => (
-
+
{children}
diff --git a/projects/mercury/src/layout/WorkspaceLayout.js b/projects/mercury/src/layout/WorkspaceLayout.js
index 52e8c1379..c020edf61 100644
--- a/projects/mercury/src/layout/WorkspaceLayout.js
+++ b/projects/mercury/src/layout/WorkspaceLayout.js
@@ -39,7 +39,7 @@ const WorkspaceLayoutInner = () => {
}
+ renderMenu={open => }
renderMain={() => }
renderTopbar={() => }
/>
diff --git a/projects/pluto/src/main/resources/icons/jupyter.svg b/projects/pluto/src/main/resources/icons/jupyter.svg
index ab2550874..f5c0a3d64 100644
--- a/projects/pluto/src/main/resources/icons/jupyter.svg
+++ b/projects/pluto/src/main/resources/icons/jupyter.svg
@@ -8,37 +8,37 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -46,27 +46,27 @@
-
+
-
+
-
+
-
+
-
+
diff --git a/projects/pluto/src/main/resources/icons/metadata.svg b/projects/pluto/src/main/resources/icons/metadata.svg
index ccbefe992..8c048eb84 100644
--- a/projects/pluto/src/main/resources/icons/metadata.svg
+++ b/projects/pluto/src/main/resources/icons/metadata.svg
@@ -6,7 +6,7 @@
preserveAspectRatio="xMidYMid meet">
+fill="#FFFFFF" stroke="none">