git ssb

16+

Dominic / patchbay



Commit c0bb55d9b169c5943cb5dfabbd5a58a241a238af

new styles setup

mix irving committed on 2/21/2017, 10:22:50 PM
Parent: 4ed25d0653cf7fe85f8e3eb411723ec297f60638

Files changed

package.jsonchanged
styles/css.jsadded
styles/mcss.jsadded
package.jsonView
@@ -24,10 +24,12 @@
2424 "electro": "^2.0.3",
2525 "electron": "^1.4.15",
2626 "hypertabs": "^4.1.1",
2727 "insert-css": "^2.0.0",
28+ "libnested": "^1.2.1",
2829 "micro-css": "^1.0.0",
2930 "mutant": "^3.14.2",
3031 "open-external": "^0.1.1",
32+ "read-directory": "^2.0.0",
3133 "setimmediate": "^1.0.5"
3234 }
3335 }
styles/css.jsView
@@ -1,0 +1,37 @@
1+const { assign } = Object
2+const { each, map } = require('libnested')
3+const nest = require('depnest')
4+
5+exports.gives = nest('styles.css')
6+
7+exports.needs = {
8+ styles: {
9+ mcss: 'reduce',
10+ mixins: 'reduce'
11+ }
12+}
13+
14+exports.create = (api) => (sofar = {}) => {
15+ const mcssObj = api.styles.mcss()
16+ const mixinObj = api.styles.mixins()
17+
18+ const mcssMixinsStr = mixinsToMcss(mixinObj)
19+ const cssObj = mcssToCss(mcssObj, mcssMixinsStr)
20+ return assign(sofar, cssObj)
21+}
22+
23+function mixinsToMcss (mixinsObj) {
24+ var mcss = ''
25+ each(mixinsObj, (mixinStr, [name]) => {
26+ // QUESTION: are mixins mcss specific or should we convert to mcss here?
27+ // as in, mixins are dom style objects and we use something like `inline-style` package
28+ mcss += mixinStr +'\n'
29+ })
30+ return mcss
31+}
32+
33+function mcssToCss (mcssObj, mixinsStr) {
34+ return map(mcssObj, (mcssStr, [name]) => {
35+ return compile(mixinsStr + '\n' + mcssStr)
36+ })
37+}
styles/mcss.jsView
@@ -1,0 +1,18 @@
1+const { basename } = require('path')
2+const readDirectory = require('read-directory')
3+const { each } = require('libnested')
4+const nest = require('depnest')
5+
6+const contents = readDirectory.sync(__dirname, {
7+ extensions: false,
8+ filter: '**/*.mcss'
9+})
10+
11+exports.gives = nest('styles.mcss')
12+exports.create = () => (sofar = {}) => {
13+ each(contents, (content, [filename]) => {
14+ const name = basename(filename)
15+ sofar[name] = content
16+ })
17+ return sofar
18+}

Built with git-ssb-web