diff --git a/public/style.css b/public/style.css index 6682b9ee4..897c043a4 100644 --- a/public/style.css +++ b/public/style.css @@ -7,7 +7,7 @@ color: white !important; } -.no-underline .MuiInput-underline::before { +.no-underline [class*='MuiInput-underline-']::before{ border-bottom: none; } diff --git a/src/application/Application.tsx b/src/application/Application.tsx index eda44056e..df5e7db8f 100644 --- a/src/application/Application.tsx +++ b/src/application/Application.tsx @@ -3,6 +3,8 @@ import { hot } from 'react-hot-loader/root'; import CssBaseline from '@material-ui/core/CssBaseline'; import NeoNotificationModal from '../modal/NotificationModal'; import NeoWelcomeScreenModal from '../modal/WelcomeScreenModal'; +import { ThemeProvider } from '@material-ui/styles'; +import { lightTheme } from '../component/theme/Themes'; import { connect } from 'react-redux'; import { applicationGetConnection, @@ -101,48 +103,50 @@ const Application = ({ // Only render the dashboard component if we have an active Neo4j connection. return ( -
- - {/* TODO - clean this up. Only draw the placeholder if the connection is not established. */} - - {connected ? downloadComponentAsImage(ref)}> : <>} - {/* TODO - move all models into a pop-ups (or modals) component. */} - - - - - - - -
+ +
+ + {/* TODO - clean this up. Only draw the placeholder if the connection is not established. */} + + {connected ? downloadComponentAsImage(ref)}> : <>} + {/* TODO - move all models into a pop-ups (or modals) component. */} + + + + + + + +
+
); }; diff --git a/src/card/view/CardView.tsx b/src/card/view/CardView.tsx index 0beb0d346..d02d695df 100644 --- a/src/card/view/CardView.tsx +++ b/src/card/view/CardView.tsx @@ -11,6 +11,8 @@ import { extensionEnabled, getReportTypes } from '../../extensions/ExtensionUtil import NeoCodeViewerComponent from '../../component/editor/CodeViewerComponent'; import { NeoReportWrapper } from '../../report/ReportWrapper'; import { identifyStyleRuleParameters } from '../../extensions/styling/StyleRuleEvaluator'; +import { ThemeProvider } from '@material-ui/styles'; +import { lightTheme, darkHeaderTheme, luma } from '../../component/theme/Themes'; const NeoCardView = ({ title, @@ -70,22 +72,30 @@ const NeoCardView = ({ // @ts-ignore const reportHeader = ( - setLastRunTimestamp(Date.now())} - settings={settings} - onDownloadImage={onDownloadImage} - onToggleCardExpand={onToggleCardExpand} - expanded={expanded} - parameters={getLocalParameters(title)} - > + + setLastRunTimestamp(Date.now())} + settings={settings} + onDownloadImage={onDownloadImage} + onToggleCardExpand={onToggleCardExpand} + expanded={expanded} + parameters={getLocalParameters(title)} + > + ); // @ts-ignore @@ -102,7 +112,7 @@ const NeoCardView = ({ ) : ( <> ); - + const localParameters = { ...getLocalParameters(query), ...getLocalParameters(settings.drilldownLink) }; const reportTypes = getReportTypes(extensions); const withoutFooter = diff --git a/src/component/theme/Themes.tsx b/src/component/theme/Themes.tsx new file mode 100644 index 000000000..7cdf4e7b4 --- /dev/null +++ b/src/component/theme/Themes.tsx @@ -0,0 +1,26 @@ +import { createTheme } from '@material-ui/core/styles'; +export const lightTheme = createTheme({ + palette: { + type: 'light', + }, +}); + +export const darkHeaderTheme = createTheme({ + palette: { + text: { + primary: '#ffffff', + }, + }, +}); + +export const luma = (colorString) => { + let color = colorString.substring(1); // strip # + let rgb = parseInt(color, 16); // convert rrggbb to decimal + let r = (rgb >> 16) & 0xff; // extract red + let g = (rgb >> 8) & 0xff; // extract green + let b = (rgb >> 0) & 0xff; // extract blue + + return 0.2126 * r + 0.7152 * g + 0.0722 * b; // per ITU-R BT.709 +}; + +export default lightTheme; diff --git a/src/config/DashboardConfig.ts b/src/config/DashboardConfig.ts index ef3e58b9a..5e80ec907 100644 --- a/src/config/DashboardConfig.ts +++ b/src/config/DashboardConfig.ts @@ -37,6 +37,12 @@ export const DASHBOARD_SETTINGS = { default: 'bottom-right', helperText: 'These are the resize handle options shared across all reports. ', }, + darkLuma: { + label: 'Luma Threshold', + type: SELECTION_TYPES.NUMBER, + default: 25, + helperText: 'Background colors under this threshold will be considered as dark', + }, pagenumber: { label: 'Page Number', type: SELECTION_TYPES.NUMBER,