incorporated require1k

This commit is contained in:
Geoff Doty 2019-07-20 19:05:55 -04:00
parent 74d9f9c9b4
commit 5797a6a80f
12 changed files with 220 additions and 133 deletions

View File

@ -19,6 +19,7 @@ What are you waiting for -- **GO FORTH AND BUILD YOUR APP, RAPIDLY!**
- `Web Components` for composable and reusable UI - `Web Components` for composable and reusable UI
- `Events` to communicate between components or other code - `Events` to communicate between components or other code
- [Riot-Route](https://riot.js.org/api/route/) the simplest way to manage URL navigation - [Riot-Route](https://riot.js.org/api/route/) the simplest way to manage URL navigation
- [Require1k](http://stuk.github.io/require1k/) tiny CommonJS module system for mixins/libs
- [Grayscale](http://n2geoff.github.io/grayscale/) Small, 2kb gzipped CSS framework with a layout focus - [Grayscale](http://n2geoff.github.io/grayscale/) Small, 2kb gzipped CSS framework with a layout focus
- [Gulp](https://gulpjs.com/) is there for when your ready for *production*. See [Build for Production](#build production) below - [Gulp](https://gulpjs.com/) is there for when your ready for *production*. See [Build for Production](#build production) below
@ -46,9 +47,9 @@ A production pipe-line should *NOT* be in your way while **developing**. You sho
2. Start coding in `public` 2. Start coding in `public`
3. run the `public/index.html` from your favorite web server\* 3. run the `public/index.html` from your favorite web server
> \* try `live-server` from `npm` or via [Visual Studio Code]() plug-in it's awesome! > try `live-server` from `npm` or via [Visual Studio Code]() plug-in it's awesome!
### Project Structure ### Project Structure
@ -56,7 +57,14 @@ A production pipe-line should *NOT* be in your way while **developing**. You sho
public/ <-- develop here public/ <-- develop here
css/ <-- your css files css/ <-- your css files
js/ <-- your javascript files js/ <-- your javascript files
app.js <-- basic routing/utils bootstrap config/ <-- configuration files used in app.js
config.js <-- global app settings, such as version
routes.js <-- routes combined
mixins.js <-- mixins combined
mixins/ <-- collection of mixins
relay.mixin.js <-- global observeable mixin
store.mixin.js <-- localStorage mixin
app.js <-- application bootstrap
images/ <-- your images images/ <-- your images
tags/ <-- web-components tags/ <-- web-components
vendor/ <-- vendor dependencies, ie code you did not write vendor/ <-- vendor dependencies, ie code you did not write
@ -105,7 +113,7 @@ Check out the [gulpfile](gulpfile.js) for all the build options if you do not wa
## Additional Documentation ## Additional Documentation
- [How Dependencies are Used](docs/dependencies.md) - [How Dependencies are Used](docs/dependencies.md)
- [Module System](docs/modules.md)
## TODO ## TODO

View File

@ -4,6 +4,7 @@ const gulp = require('gulp'),
riot = require('gulp-riot'), riot = require('gulp-riot'),
concat = require('gulp-concat'), concat = require('gulp-concat'),
minify = require('gulp-minify'), minify = require('gulp-minify'),
terser = require('gulp-terser'),
cssmin = require('gulp-clean-css'), cssmin = require('gulp-clean-css'),
ref = require('gulp-useref'); ref = require('gulp-useref');
@ -16,11 +17,10 @@ gulp.task('tags', () => {
.pipe(gulp.dest('./dist/js')); .pipe(gulp.dest('./dist/js'));
}); });
// combine javascript files // minify/move javascript files
gulp.task('javascript', () => { gulp.task('javascript', () => {
return gulp.src('./public/js/**/*.js') return gulp.src('./public/js/**/*.js')
.pipe(concat('combined.js')) .pipe(terser())
.pipe(minify({ext: {min: '.min.js'}}))
.pipe(gulp.dest('./dist/js')); .pipe(gulp.dest('./dist/js'));
}); });

174
package-lock.json generated
View File

@ -456,6 +456,23 @@
} }
} }
}, },
"clean-css": {
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.1.tgz",
"integrity": "sha512-4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g==",
"dev": true,
"requires": {
"source-map": "~0.6.0"
},
"dependencies": {
"source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"dev": true
}
}
},
"cliui": { "cliui": {
"version": "3.2.0", "version": "3.2.0",
"resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
@ -558,6 +575,12 @@
"integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==",
"dev": true "dev": true
}, },
"commander": {
"version": "2.20.0",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz",
"integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==",
"dev": true
},
"component-emitter": { "component-emitter": {
"version": "1.2.1", "version": "1.2.1",
"resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
@ -1888,26 +1911,17 @@
} }
}, },
"gulp-clean-css": { "gulp-clean-css": {
"version": "3.10.0", "version": "4.2.0",
"resolved": "https://registry.npmjs.org/gulp-clean-css/-/gulp-clean-css-3.10.0.tgz", "resolved": "https://registry.npmjs.org/gulp-clean-css/-/gulp-clean-css-4.2.0.tgz",
"integrity": "sha512-7Isf9Y690o/Q5MVjEylH1H7L8WeZ89woW7DnhD5unTintOdZb67KdOayRgp9trUFo+f9UyJtuatV42e/+kghPg==", "integrity": "sha512-r4zQsSOAK2UYUL/ipkAVCTRg/2CLZ2A+oPVORopBximRksJ6qy3EX1KGrIWT4ZrHxz3Hlobb1yyJtqiut7DNjA==",
"dev": true, "dev": true,
"requires": { "requires": {
"clean-css": "4.2.1", "clean-css": "4.2.1",
"plugin-error": "1.0.1", "plugin-error": "1.0.1",
"through2": "2.0.3", "through2": "3.0.1",
"vinyl-sourcemaps-apply": "0.2.1" "vinyl-sourcemaps-apply": "0.2.1"
}, },
"dependencies": { "dependencies": {
"clean-css": {
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.1.tgz",
"integrity": "sha512-4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g==",
"dev": true,
"requires": {
"source-map": "~0.6.0"
}
},
"plugin-error": { "plugin-error": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-1.0.1.tgz", "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-1.0.1.tgz",
@ -1920,20 +1934,13 @@
"extend-shallow": "^3.0.2" "extend-shallow": "^3.0.2"
} }
}, },
"source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"dev": true
},
"through2": { "through2": {
"version": "2.0.3", "version": "3.0.1",
"resolved": "http://registry.npmjs.org/through2/-/through2-2.0.3.tgz", "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.1.tgz",
"integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", "integrity": "sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww==",
"dev": true, "dev": true,
"requires": { "requires": {
"readable-stream": "^2.1.5", "readable-stream": "2 || 3"
"xtend": "~4.0.1"
} }
} }
} }
@ -2018,6 +2025,68 @@
} }
} }
}, },
"gulp-terser": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/gulp-terser/-/gulp-terser-1.2.0.tgz",
"integrity": "sha512-lf+jE2DALg2w32p0HRiYMlFYRYelKZPNunHp2pZccCYrrdCLOs0ItbZcN63yr2pbz116IyhUG9mD/QbtRO1FKA==",
"dev": true,
"requires": {
"plugin-error": "^1.0.1",
"terser": "^4.0.0",
"through2": "^3.0.1",
"vinyl-sourcemaps-apply": "^0.2.1"
},
"dependencies": {
"plugin-error": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-1.0.1.tgz",
"integrity": "sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA==",
"dev": true,
"requires": {
"ansi-colors": "^1.0.1",
"arr-diff": "^4.0.0",
"arr-union": "^3.1.0",
"extend-shallow": "^3.0.2"
}
},
"source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"dev": true
},
"source-map-support": {
"version": "0.5.12",
"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.12.tgz",
"integrity": "sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ==",
"dev": true,
"requires": {
"buffer-from": "^1.0.0",
"source-map": "^0.6.0"
}
},
"terser": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/terser/-/terser-4.1.2.tgz",
"integrity": "sha512-jvNoEQSPXJdssFwqPSgWjsOrb+ELoE+ILpHPKXC83tIxOlh2U75F1KuB2luLD/3a6/7K3Vw5pDn+hvu0C4AzSw==",
"dev": true,
"requires": {
"commander": "^2.20.0",
"source-map": "~0.6.1",
"source-map-support": "~0.5.12"
}
},
"through2": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/through2/-/through2-3.0.1.tgz",
"integrity": "sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww==",
"dev": true,
"requires": {
"readable-stream": "2 || 3"
}
}
}
},
"gulp-useref": { "gulp-useref": {
"version": "3.1.6", "version": "3.1.6",
"resolved": "https://registry.npmjs.org/gulp-useref/-/gulp-useref-3.1.6.tgz", "resolved": "https://registry.npmjs.org/gulp-useref/-/gulp-useref-3.1.6.tgz",
@ -2485,7 +2554,7 @@
}, },
"load-json-file": { "load-json-file": {
"version": "1.1.0", "version": "1.1.0",
"resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", "resolved": "http://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
"integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
"dev": true, "dev": true,
"requires": { "requires": {
@ -2637,9 +2706,9 @@
} }
}, },
"mixin-deep": { "mixin-deep": {
"version": "1.3.1", "version": "1.3.2",
"resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz",
"integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==",
"dev": true, "dev": true,
"requires": { "requires": {
"for-in": "^1.0.2", "for-in": "^1.0.2",
@ -2697,7 +2766,7 @@
}, },
"next-tick": { "next-tick": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", "resolved": "http://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz",
"integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=",
"dev": true "dev": true
}, },
@ -2870,7 +2939,7 @@
}, },
"os-locale": { "os-locale": {
"version": "1.4.0", "version": "1.4.0",
"resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", "resolved": "http://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
"integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=",
"dev": true, "dev": true,
"requires": { "requires": {
@ -2985,7 +3054,7 @@
}, },
"pify": { "pify": {
"version": "2.3.0", "version": "2.3.0",
"resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", "resolved": "http://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
"integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
"dev": true "dev": true
}, },
@ -3070,7 +3139,7 @@
}, },
"pretty-hrtime": { "pretty-hrtime": {
"version": "1.0.3", "version": "1.0.3",
"resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", "resolved": "http://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz",
"integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=", "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=",
"dev": true "dev": true
}, },
@ -3456,9 +3525,9 @@
"dev": true "dev": true
}, },
"set-value": { "set-value": {
"version": "2.0.0", "version": "2.0.1",
"resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz",
"integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==",
"dev": true, "dev": true,
"requires": { "requires": {
"extend-shallow": "^2.0.1", "extend-shallow": "^2.0.1",
@ -3809,7 +3878,7 @@
}, },
"strip-ansi": { "strip-ansi": {
"version": "3.0.1", "version": "3.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
"integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
"dev": true, "dev": true,
"requires": { "requires": {
@ -4022,38 +4091,15 @@
"dev": true "dev": true
}, },
"union-value": { "union-value": {
"version": "1.0.0", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz",
"integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==",
"dev": true, "dev": true,
"requires": { "requires": {
"arr-union": "^3.1.0", "arr-union": "^3.1.0",
"get-value": "^2.0.6", "get-value": "^2.0.6",
"is-extendable": "^0.1.1", "is-extendable": "^0.1.1",
"set-value": "^0.4.3" "set-value": "^2.0.1"
},
"dependencies": {
"extend-shallow": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
"integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
"dev": true,
"requires": {
"is-extendable": "^0.1.0"
}
},
"set-value": {
"version": "0.4.3",
"resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz",
"integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=",
"dev": true,
"requires": {
"extend-shallow": "^2.0.1",
"is-extendable": "^0.1.1",
"is-plain-object": "^2.0.1",
"to-object-path": "^0.3.0"
}
}
} }
}, },
"unique-stream": { "unique-stream": {
@ -4247,7 +4293,7 @@
}, },
"wrap-ansi": { "wrap-ansi": {
"version": "2.1.0", "version": "2.1.0",
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", "resolved": "http://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
"integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
"dev": true, "dev": true,
"requires": { "requires": {

View File

@ -28,10 +28,11 @@
"devDependencies": { "devDependencies": {
"frontend-dependencies": "^1.1.7", "frontend-dependencies": "^1.1.7",
"gulp": "^4.0.2", "gulp": "^4.0.2",
"gulp-clean-css": "^3.10.0", "gulp-clean-css": "^4.2.0",
"gulp-concat": "^2.6.1", "gulp-concat": "^2.6.1",
"gulp-minify": "^3.1.0", "gulp-minify": "^3.1.0",
"gulp-riot": "^1.1.5", "gulp-riot": "^1.1.5",
"gulp-terser": "^1.2.0",
"gulp-useref": "^3.1.6" "gulp-useref": "^3.1.6"
}, },
"frontendDependencies": { "frontendDependencies": {
@ -44,7 +45,12 @@
}, },
"riot-route": { "riot-route": {
"version": "3.1.4", "version": "3.1.4",
"src": "dist/route.*", "src": "dist/route.min.js",
"namespaced": true
},
"require1k": {
"version": "2.0.0",
"src": "*.min.js",
"namespaced": true "namespaced": true
}, },
"grayscale": { "grayscale": {

View File

@ -36,9 +36,7 @@
</div> </div>
</div> </div>
<!-- build:js js/combined.min.js --> <script src="vendor/require1k/require1k.min.js" data-main="./js/app"></script>
<script src="js/app.js"></script>
<!-- endbuild -->
<!-- build:js js/tags.min.js --> <!-- build:js js/tags.min.js -->
<script type="riot/tag" src="tags/layout/page.tag.html"></script> <script type="riot/tag" src="tags/layout/page.tag.html"></script>

View File

@ -1,53 +1,16 @@
'use strict'; 'use strict';
// ----------------------------------------------- const route = require('./config/routes');
// Global Application Settings const config = require('./config/config');
// -----------------------------------------------
const APP = {
DEBUG: true
};
riot.mixin(APP);
// ----------------------------------------------- // -----------------------------------------------
// Global Riot Mixins // Application Bootstrap
// ----------------------------------------------- // -----------------------------------------------
// [ global mixin ] ------------------------------
riot.mixin({ riot.mixin({
store: { app: config
get: function (key) {
return window.localStorage.getItem(key);
},
set: function (key, value) {
return window.localStorage.setItem(key, value);
},
remove: function (key) {
return window.localStorage.removeItem(key);
}
},
relay: riot.observable()
});
// -----------------------------------------------
// Routing
// -----------------------------------------------
// [ set hash base ] -----------------------------
route.base('#');
// [ define routes ] -----------------------------
// home page
route('/', function () {
riot.mount('#view', 'home');
});
// about page
route('/about', function () {
riot.mount('#view', 'about');
}); });
// [ start router ] ------------------------------ // [ start router ] ------------------------------

View File

@ -0,0 +1,8 @@
// -----------------------------------------------
// Global Application Settings
// -----------------------------------------------
module.exports = {
DEBUG: true
};

View File

@ -0,0 +1,6 @@
// -----------------------------------------------
// Global Riot Mixins
// -----------------------------------------------
module.exports = {};

View File

@ -0,0 +1,21 @@
// -----------------------------------------------
// Routing
// -----------------------------------------------
// [ set hash base ] -----------------------------
route.base('#');
// [ define routes ] -----------------------------
// home page
route('/', function () {
riot.mount('#view', 'home');
});
// about page
route('/about', function () {
riot.mount('#view', 'about');
});
module.exports = route;

View File

@ -0,0 +1,10 @@
/**
* Global Observiable Mixin
*
* simplifies communication between mutliple components
* on a single page
*/
module.exports = {
relay: riot.observable()
};

View File

@ -0,0 +1,21 @@
/**
* localStorage Mixin
*
* allows localStorage to be used as a mixin
*/
module.exports = {
store: {
get: function (key) {
return window.localStorage.getItem(key);
},
set: function (key, value) {
return window.localStorage.setItem(key, value);
},
remove: function (key) {
return window.localStorage.removeItem(key);
},
clear: function() {
return window.localStorage.clear();
}
}
};

View File

@ -9,7 +9,7 @@
"theme_color": "#BABABA", "theme_color": "#BABABA",
"description": "riotjs spa starter seed", "description": "riotjs spa starter seed",
"icons": [{ "icons": [{
"src": "images/logo.png", "src": "images/icon.png",
"sizes": "192x192", "sizes": "192x192",
"type": "image/png" "type": "image/png"
}] }]