Using postcss-modules-values with imported values failed on our current basic usage; it is apparently not mature enough to be used yet.
The syntax used by postcss-simple-vars is already familiar to most people familiar with modern CSS build systems.
* Covers parts of these issues: GUI layout panes (#69), sprite libraries (#12), import buttons (#64), menu bar (#67), and sprite info area (#53)
~ Refactored layout pane structure by removing `display: flex` from `.box`, by default. Declaring flex instead only where specifically needed. This helped fix layout quirks, and should help us avoid hard to find issues related to nested flex boxes
~ Added descriptive classnames to boxes/containers/wrappers. Moved more padding, margins + layout into these wrappers to help with component reusability.
~ Set up a spacer unit variable inside `gui.css`, to start keeping consistent padding, margins and rounded corners between panes. Used [CSS/PostCSS Modules](https://github.com/css-modules/postcss-modules-values) to avoid SCSS dependency.
~ Refactored inline styles from JSX, into CSS files. 2 reasons: a) prepping for reuse of CSS Module variables. b) Feels easier to debug complex flex layouts when all the styles are in one place vs JS/HTML/CSS syntax mixed together
~ Added menu bar into layout via new component, and sprite info header in sprite selector pane, with stubs for the labels + forms. Sprite items are correctly scrolling, while leaving the header fixed, in Chrome. Mostly working in FFx. Not working in Safari, IE yet.
~ Style pass on library modal
~ Experimenting with a few different transition styles: Logo in menu bar, sprite library items, Add buttons.
Move layout styles from component stylesheets to the GUI, or the component that is placing the component.
Add a new `Box` component to control layouts, basically giving a convenient way to lay out with flexbox.
Use `Box` as the output component for any component that may need to be passed layout options. The props passing convention allows giving layout props to the final `Box` component, making wrapping with another `Box` unnecessary in some cases.
The inline css method gives us nothing that CSS modules can't give us. This puts the project more in line with the way www works, and makes CSS actually readable.
Using class names gives us full control of the modal styles.
While doing so:
- Use ProjectLoader for loading projects
- Stop using loadEmptyProject and supply empty project data
- Move project loading to App, GUI now receives data (as a string - the vm should receive an object eventually)
- Add logging
Thanks to babel-loader and babel-eslint, we can use the same linting everywhere. This makes our imports easier since we don't need to think about the extension.
Also export things more succinctly in src/index.js