diff --git a/client/modules/App/App.js b/client/modules/App/App.js
index 0c69c4e6..5598225d 100644
--- a/client/modules/App/App.js
+++ b/client/modules/App/App.js
@@ -1,12 +1,10 @@
import React, { PropTypes } from 'react';
import { connect } from 'react-redux';
import DevTools from './components/DevTools';
-import classNames from 'classnames';
class App extends React.Component {
constructor(props, context) {
super(props, context);
- console.log(props);
this.state = { isMounted: false };
}
@@ -15,14 +13,8 @@ class App extends React.Component {
}
render() {
- const theme = this.props.route.theme;
- const appClass = classNames({
- app: true,
- light: theme === 'light',
- dark: theme === 'dark'
- });
return (
-
+
{this.state.isMounted && !window.devToolsExtension && process.env.NODE_ENV === 'development' && }
{this.props.children}
@@ -31,10 +23,7 @@ class App extends React.Component {
}
App.propTypes = {
- children: PropTypes.object,
- route: PropTypes.shape({
- theme: PropTypes.string.isRequired
- }).isRequired
+ children: PropTypes.object
};
export default connect()(App);
diff --git a/client/modules/IDE/pages/IDEView.js b/client/modules/IDE/pages/IDEView.js
index 1db87882..3f1eaaf3 100644
--- a/client/modules/IDE/pages/IDEView.js
+++ b/client/modules/IDE/pages/IDEView.js
@@ -27,6 +27,7 @@ import SplitPane from 'react-split-pane';
import Overlay from '../../App/components/Overlay';
import SketchList from '../components/SketchList';
import About from '../components/About';
+import classNames from 'classnames';
class IDEView extends React.Component {
constructor(props) {
@@ -156,156 +157,163 @@ class IDEView extends React.Component {
}
render() {
+ let ideClass = classNames({
+ ide: true,
+ light: this.props.preferences.theme === 'light',
+ dark: this.props.preferences.theme === 'dark',
+ });
return (
-
- {this.props.toast.isVisible &&
}
-
-
-
-
-
-
+
+
+ {this.props.toast.isVisible &&
}
+
+
+
+
(this.refs.overlay.style.display = 'block')}
- onDragFinished={() => (this.refs.overlay.style.display = 'none')}
+ defaultSize={this.sidebarSize}
+ ref="sidebarPane"
+ onDragFinished={this._handleSidebarPaneOnDragFinished}
+ allowResize={this.props.ide.sidebarIsExpanded}
+ minSize={20}
>
+
(this.refs.overlay.style.display = 'block')}
+ onDragFinished={() => (this.refs.overlay.style.display = 'none')}
>
-
-
-
-
-
-
+
+
+
+
- {(() => {
- if ((this.props.preferences.textOutput && this.props.ide.isPlaying) || this.props.ide.isTextOutputPlaying) {
- return (
-
- );
- }
- return '';
- })()}
+
+
+
+ {(() => {
+ if ((this.props.preferences.textOutput && this.props.ide.isPlaying) || this.props.ide.isTextOutputPlaying) {
+ return (
+
+ );
+ }
+ return '';
+ })()}
+
+
+ }
+ isPlaying={this.props.ide.isPlaying}
+ isTextOutputPlaying={this.props.ide.isTextOutputPlaying}
+ textOutput={this.props.preferences.textOutput}
+ dispatchConsoleEvent={this.props.dispatchConsoleEvent}
+ />
-
- }
- isPlaying={this.props.ide.isPlaying}
- isTextOutputPlaying={this.props.ide.isTextOutputPlaying}
- textOutput={this.props.preferences.textOutput}
- dispatchConsoleEvent={this.props.dispatchConsoleEvent}
- />
-
+
-
+
{(() => {
if (this.props.ide.modalIsVisible) {
diff --git a/client/routes.js b/client/routes.js
index f4549ed7..b47056bc 100644
--- a/client/routes.js
+++ b/client/routes.js
@@ -14,7 +14,7 @@ const checkAuth = (store) => {
const routes = (store) =>
(
-
+
diff --git a/client/styles/abstracts/_placeholders.scss b/client/styles/abstracts/_placeholders.scss
index 2ad442eb..4b4a66fb 100644
--- a/client/styles/abstracts/_placeholders.scss
+++ b/client/styles/abstracts/_placeholders.scss
@@ -111,10 +111,12 @@
}
%modal {
- background-color: $light-modal-background-color;
- border: 1px solid $light-modal-border-color;
+ @include themify() {
+ background-color: getThemifyVariable('modal-background-color');
+ border: 1px solid getThemifyVariable('modal-border-color');
+ box-shadow: 0 12px 12px getThemifyVariable('shadow-color');
+ }
border-radius: 2px;
- box-shadow: 0 12px 12px $light-shadow-color;
z-index: 20;
}
diff --git a/client/styles/base/_base.scss b/client/styles/base/_base.scss
index 4883cc52..7fbb393b 100644
--- a/client/styles/base/_base.scss
+++ b/client/styles/base/_base.scss
@@ -13,22 +13,20 @@ body, input, button {
font-family: 'Avenir Next', Montserrat, sans-serif;
}
-body {
- background-color: $light-background-color;
-}
-
.root-app, .app {
min-height: 100%;
height: 100%;
}
a {
- text-decoration: none;
- color: $light-inactive-text-color;
- cursor: pointer;
- &:hover {
+ @include themify() {
text-decoration: none;
- color: $light-primary-text-color;
+ color: getThemifyVariable('inactive-text-color');
+ cursor: pointer;
+ &:hover {
+ text-decoration: none;
+ color: getThemifyVariable('primary-text-color');
+ }
}
}
diff --git a/client/styles/layout/_ide.scss b/client/styles/layout/_ide.scss
index 7312f78d..c1eb8b3e 100644
--- a/client/styles/layout/_ide.scss
+++ b/client/styles/layout/_ide.scss
@@ -1,8 +1,17 @@
.ide {
- display: flex;
- flex-direction: column;
height: 100%;
- flex-wrap: wrap;
+ width: 100%;
+}
+
+.ide-content {
+ display: flex;
+ flex-direction: column;
+ height: 100%;
+ flex-wrap: wrap;
+ @include themify() {
+ color: getThemifyVariable('primary-text-color');
+ background-color: getThemifyVariable('background-color');
+ }
}
.editor-preview-container {