diff --git a/.babelrc.json b/.babelrc.json
deleted file mode 100644
index 7895cad..0000000
--- a/.babelrc.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "presets": ["@vue/cli-plugin-babel/preset"]
-}
diff --git a/.nowignore b/.vercelignore
similarity index 55%
rename from .nowignore
rename to .vercelignore
index 34b9277..1f0f1ea 100644
--- a/.nowignore
+++ b/.vercelignore
@@ -1,6 +1,6 @@
#
-# .nowignore
+# .vercelignore
#
/docs/
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
new file mode 100644
index 0000000..676025a
--- /dev/null
+++ b/CONTRIBUTING.md
@@ -0,0 +1,12 @@
+# CONTRIBUTING.md
+
+Thank you for contributing to Fretboarder! PRs are welcomed, but please consider
+**opening an issue before submitting any sizable PR**.
+
+### Code style
+ * use [smart tabs](https://www.emacswiki.org/emacs/SmartTabs) (tablatures for
+ indentation, spaces for presentation)
+ * place block-opening curly quotes on their own lines (expect for objects and
+ CSS blocks)
+ * write comments and commit messages in the imperative style, with an
+ uppercase letter at the beginning and no full stop at the end
diff --git a/README.md b/README.md
index 8225b73..205e28c 100644
--- a/README.md
+++ b/README.md
@@ -9,30 +9,55 @@
+
## Highlights
-**🎸 Customize the instrument**
+#### 🎸 Customize the instrument
+
Choose between a variety of instruments (from ukulele to 11-string guitar) and
tunings, set the length of the fretboard, and switch between left- and
right-handed fretting.
-**🎨 Overlay scales and arpeggios**
+#### 🎨 Overlay scales and arpeggios
+
The main feature that distinguishes Fretboarder from other similar apps is the
ability to display several sequences of notes on the same fretboard. You can
-overlap scales and arpeggios, display their intersections and select specific
+overlap scales and arpeggios, display their intersections and select specific
positions on the neck.
-**💻 Use on any device**
+#### 💻 Use on any device
+
The UI has been designed to be simple and intuitive, and to work on both desktop
and mobile devices. Dark mode included!
+
+## Contributing
+
+Contributions are welcomed! See [CONTRIBUTING.md](CONTRIBUTING.md).
+
+
+## Supporting the app
+
+You can support my work on Fretboarder by donating on my [Patreon](https://www.patreon.com/cheap_glitch)
+or my [PayPal](https://paypal.me/CheapGlitch) page. Plenty of cool features are coming, such as:
+ * an audio player to listen to the scales
+ * a tool to help learn & practice positions
+ * a chord chart builder to follow along with backtracks
+ * and more!
+
+
## Credits & acknowledgements
+
The dark mode colorscheme is heavily borrowed from the [Vue Dark Mode](https://www.growthbunker.dev/vuedarkmode) project.
+
## License
+
This software is distributed under the [Mozilla Public License 2.0](https://www.mozilla.org/en-US/MPL/2.0).
+
## Other related tools & resources
+
* [All Guitar Chords](http://www.all-guitar-chords.com): a compilation of scales, chords, arpeggios, licks, and more
* [ChordMaster 2000](http://chordmaster.tardate.com): a tool to practice and memorize chords
* [ChordPic](https://chordpic.com): a chord diagram generator, with lots of options to fine-tune the looks
diff --git a/package-lock.json b/package-lock.json
index 6125d76..e0e2e77 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1285,9 +1285,9 @@
}
},
"@popperjs/core": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.4.0.tgz",
- "integrity": "sha512-NMrDy6EWh9TPdSRiHmHH2ye1v5U0gBD7pRYwSwJvomx7Bm4GG04vu63dYiVzebLOx2obPpJugew06xVP0Nk7hA=="
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.4.2.tgz",
+ "integrity": "sha512-JlGTGRYHC2QK+DDbePyXdBdooxFq2+noLfWpRqJtkxcb/oYWzOF0kcbfvvbWrwevCC1l6hLUg1wHYT+ona5BWQ=="
},
"@sindresorhus/is": {
"version": "0.14.0",
@@ -13903,14 +13903,67 @@
"integrity": "sha512-oEqYpXKaFN+TaXU+mRLEx8dX0ah85aAJEe61mpdoUrq0Bhe/6sWhyZX1JjMQLhVsHAkncyhedhmCdDVSasUtDw=="
},
"vue-cli-plugin-sitemap": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/vue-cli-plugin-sitemap/-/vue-cli-plugin-sitemap-2.1.1.tgz",
- "integrity": "sha512-Gk5juyRy9gqH17jlqpR04pxMv5xe2UPcJqWMJ8KeNF1Y8s2/pfW3fehEaQM6DLJZy6aLStqnv05nY1U7t0wwlw==",
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/vue-cli-plugin-sitemap/-/vue-cli-plugin-sitemap-2.1.2.tgz",
+ "integrity": "sha512-so/RxKrOeMGGyZ9vvpFC73v1UCKxTTH4Z/3rUpq8CoVQABPvvSPgvPiGNUeZtbYkjyMhAZQhux8qVkW/VuAn3Q==",
"dev": true,
"requires": {
- "ajv": "^6.12.0",
+ "ajv": "^6.12.2",
"ajv-keywords": "^3.4.1",
- "better-ajv-errors": "^0.6.7"
+ "better-ajv-errors": "^0.6.7",
+ "chalk": "^4.0.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
+ "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
+ "dev": true,
+ "requires": {
+ "@types/color-name": "^1.1.1",
+ "color-convert": "^2.0.1"
+ }
+ },
+ "chalk": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz",
+ "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
+ "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ }
}
},
"vue-css-modifiers": {
diff --git a/package.json b/package.json
index e0ce102..4323a1b 100644
--- a/package.json
+++ b/package.json
@@ -36,7 +36,7 @@
"@fortawesome/fontawesome-svg-core": "^1.2.28",
"@fortawesome/free-brands-svg-icons": "^5.13.0",
"@fortawesome/vue-fontawesome": "^0.1.9",
- "@popperjs/core": "^2.4.0",
+ "@popperjs/core": "^2.4.2",
"core-js": "^3.6.5",
"file-saver": "^2.0.2",
"register-service-worker": "^1.7.1",
@@ -73,7 +73,7 @@
"sass": "^1.26.8",
"sass-loader": "^8.0.2",
"sass-mq": "^5.0.1",
- "vue-cli-plugin-sitemap": "^2.1.1",
+ "vue-cli-plugin-sitemap": "^2.1.2",
"vue-template-compiler": "^2.6.11",
"webpack-bundle-analyzer": "^3.8.0"
}
diff --git a/src/components/FretboardTools.vue b/src/components/FretboardTools.vue
index b6649b0..75c30c0 100644
--- a/src/components/FretboardTools.vue
+++ b/src/components/FretboardTools.vue
@@ -70,7 +70,7 @@ div.FretboardTools
//- Toggle fret numbers
VButton(
- :icon="['fal', 'list-ol']"
+ icon="list-ol"
title="Show numbers"
:is-active="isShowingFretNbs"
diff --git a/vercel.json b/vercel.json
index ec3ee14..e50e722 100644
--- a/vercel.json
+++ b/vercel.json
@@ -1,6 +1,8 @@
{
"build": {
- "env": { "NPM_RC": "@npmrc" }
+ "env": {
+ "NPM_RC": "@npmrc"
+ }
},
"github": {
diff --git a/vue.config.js b/vue.config.js
index ebf16b7..e384fa0 100644
--- a/vue.config.js
+++ b/vue.config.js
@@ -68,13 +68,8 @@ module.exports = {
'mandolin': 'pro-regular',
// Header
- 'twitter': 'free-brands',
- 'github': 'free-brands',
- 'paper-plane': 'pro-regular',
- 'heart': 'pro-regular',
- 'external-link-square-alt': 'pro-regular',
'sun': 'pro-solid',
- 'moon': ['pro-regular', 'pro-solid'],
+ 'moon': ['pro-solid', 'pro-regular'],
// Tools & settings
'cog': 'pro-regular',
@@ -95,6 +90,13 @@ module.exports = {
'intersection': 'pro-solid',
'copy': 'pro-regular',
'times-circle': 'pro-regular',
+
+ // Footer
+ 'twitter': 'free-brands',
+ 'github': 'free-brands',
+ 'paper-plane': 'pro-regular',
+ 'heart': 'pro-regular',
+ 'external-link-square-alt': 'pro-regular',
}
},