From d694c33c873f766cbeafbe8f8dfdc4a0c762e8ad Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Tue, 28 Jul 2020 15:04:42 +0200 Subject: invert nav color if background is black --- animism-align/frontend/app/types.js | 3 +- .../frontend/app/views/viewer/nav/eflux.chrome.js | 14 ++++--- .../frontend/app/views/viewer/nav/eflux.css | 25 ++++++++++++- .../frontend/app/views/viewer/nav/eflux.icons.js | 43 ++++++++++++++++++++++ .../frontend/app/views/viewer/nav/nav.css | 5 +++ .../frontend/app/views/viewer/nav/nav.parent.js | 2 +- .../app/views/viewer/player/player.fullscreen.js | 10 +++++ .../frontend/app/views/viewer/viewer.actions.js | 4 ++ .../frontend/app/views/viewer/viewer.container.js | 2 +- .../frontend/app/views/viewer/viewer.reducer.js | 7 ++++ 10 files changed, 105 insertions(+), 10 deletions(-) create mode 100644 animism-align/frontend/app/views/viewer/nav/eflux.icons.js (limited to 'animism-align/frontend') diff --git a/animism-align/frontend/app/types.js b/animism-align/frontend/app/types.js index 8418bb5..6822d20 100644 --- a/animism-align/frontend/app/types.js +++ b/animism-align/frontend/app/types.js @@ -25,7 +25,8 @@ export const audio = with_type('audio', [ ]) export const viewer = with_type('viewer', [ - 'load_sections', 'toggle_component', 'set_current_section', + 'load_sections', 'toggle_component', + 'set_current_section', 'set_nav_style', ]) export const site = with_type('site', [ diff --git a/animism-align/frontend/app/views/viewer/nav/eflux.chrome.js b/animism-align/frontend/app/views/viewer/nav/eflux.chrome.js index 8d04e8b..c66cf21 100644 --- a/animism-align/frontend/app/views/viewer/nav/eflux.chrome.js +++ b/animism-align/frontend/app/views/viewer/nav/eflux.chrome.js @@ -1,18 +1,22 @@ import React from 'react' -const EfluxChrome = React.memo(() => ( -
+import { + EfluxLogo, EfluxClose, EfluxMenu +} from './eflux.icons' + +const EfluxChrome = React.memo(({ navStyle }) => ( +
- + {EfluxLogo}
- + {EfluxClose} - + {EfluxMenu}
diff --git a/animism-align/frontend/app/views/viewer/nav/eflux.css b/animism-align/frontend/app/views/viewer/nav/eflux.css index 93c9449..d04b85c 100644 --- a/animism-align/frontend/app/views/viewer/nav/eflux.css +++ b/animism-align/frontend/app/views/viewer/nav/eflux.css @@ -10,7 +10,12 @@ top: 20px; left: 28px; } -.eflux-logo img { +.eflux-logo svg { +/* + width: 218.3px; + height: 65px; +*/ + width: 94px; height: 28px; } .eflux-nav { @@ -18,7 +23,23 @@ top: 23px; right: 32px; } -.eflux-nav img { +.eflux-nav svg { + width: 26px; height: 20px; margin-left: 34px; } + +.eflux-header svg path { + fill: #000; + transition: fill 0.5s; +} +.eflux-header svg line { + stroke: #000; + transition: stroke 0.5s; +} +.eflux-header.black svg path { + fill: #fff; +} +.eflux-header.black svg line { + stroke: #fff; +} diff --git a/animism-align/frontend/app/views/viewer/nav/eflux.icons.js b/animism-align/frontend/app/views/viewer/nav/eflux.icons.js new file mode 100644 index 0000000..96e2b30 --- /dev/null +++ b/animism-align/frontend/app/views/viewer/nav/eflux.icons.js @@ -0,0 +1,43 @@ +import React from 'react' + +export const EfluxLogo = ( + + + + + + + + + + + + +) + +export const EfluxClose = ( + + + + + + +) + +export const EfluxMenu = ( + + + + + + + +) diff --git a/animism-align/frontend/app/views/viewer/nav/nav.css b/animism-align/frontend/app/views/viewer/nav/nav.css index a6c74d5..74ea3bf 100644 --- a/animism-align/frontend/app/views/viewer/nav/nav.css +++ b/animism-align/frontend/app/views/viewer/nav/nav.css @@ -6,6 +6,9 @@ font-size: 18px; transition: all 0.2s; } +.viewer-nav.black .main-nav { + color: white; +} .main-nav { transition: all 0.2s; transform: translateZ(0) translateY(0); @@ -104,6 +107,8 @@ .viewer-nav .arrow polygon { fill: #000; } +.viewer-nav.black .arrow path, +.viewer-nav.black .arrow polygon, .viewer-nav .main-nav:hover .arrow path, .viewer-nav .main-nav:hover .arrow polygon, .nav-open .viewer-nav .arrow path, diff --git a/animism-align/frontend/app/views/viewer/nav/nav.parent.js b/animism-align/frontend/app/views/viewer/nav/nav.parent.js index 5697d88..9cb4e93 100644 --- a/animism-align/frontend/app/views/viewer/nav/nav.parent.js +++ b/animism-align/frontend/app/views/viewer/nav/nav.parent.js @@ -10,7 +10,7 @@ class NavParent extends Component { render() { const { viewer } = this.props return ( -
+
actions.viewer.toggleComponent('nav')}> diff --git a/animism-align/frontend/app/views/viewer/player/player.fullscreen.js b/animism-align/frontend/app/views/viewer/player/player.fullscreen.js index 55b350d..5683418 100644 --- a/animism-align/frontend/app/views/viewer/player/player.fullscreen.js +++ b/animism-align/frontend/app/views/viewer/player/player.fullscreen.js @@ -27,6 +27,16 @@ class PlayerFullscreen extends Component { const elements = timeline.filter(element => ( floatInRange(element.start_ts, play_ts, element.fade_out_start_ts + 0.1) )) + if (elements.length) { + const lastElement = elements[elements.length - 1] + if (lastElement.color && lastElement.color.textColor === '#ffffff') { + actions.viewer.setNavStyle('black') + } else { + actions.viewer.setNavStyle('white') + } + } else { + actions.viewer.setNavStyle('white') + } this.setState({ elements }) } diff --git a/animism-align/frontend/app/views/viewer/viewer.actions.js b/animism-align/frontend/app/views/viewer/viewer.actions.js index 679cafc..f03b16d 100644 --- a/animism-align/frontend/app/views/viewer/viewer.actions.js +++ b/animism-align/frontend/app/views/viewer/viewer.actions.js @@ -147,6 +147,10 @@ export const setCurrentSection = section => dispatch => { dispatch({ type: types.viewer.set_current_section, section }) } +export const setNavStyle = color => dispatch => { + dispatch({ type: types.viewer.set_nav_style, color }) +} + export const showComponent = key => dispatch => { dispatch({ type: types.viewer.toggle_component, key, value: true }) } diff --git a/animism-align/frontend/app/views/viewer/viewer.container.js b/animism-align/frontend/app/views/viewer/viewer.container.js index 66e9e3d..225055c 100644 --- a/animism-align/frontend/app/views/viewer/viewer.container.js +++ b/animism-align/frontend/app/views/viewer/viewer.container.js @@ -73,7 +73,7 @@ class ViewerContainer extends Component { return (
- +
diff --git a/animism-align/frontend/app/views/viewer/viewer.reducer.js b/animism-align/frontend/app/views/viewer/viewer.reducer.js index 73a961f..e2ed779 100644 --- a/animism-align/frontend/app/views/viewer/viewer.reducer.js +++ b/animism-align/frontend/app/views/viewer/viewer.reducer.js @@ -7,6 +7,7 @@ const initialState = { sections: { loading: true }, fullscreenTimeline: [], currentSection: null, + navStyle: 'white', options: { } } @@ -33,6 +34,12 @@ export default function viewerReducer(state = initialState, action) { currentSection: action.section, } + case types.viewer.set_nav_style: + return { + ...state, + navStyle: action.color, + } + default: return state } -- cgit v1.2.3-70-g09d2