Skip to content

Commit

Permalink
Add dark theme with toggle
Browse files Browse the repository at this point in the history
  • Loading branch information
mdcfe committed Jan 5, 2020
1 parent e7f8174 commit c4925b8
Show file tree
Hide file tree
Showing 7 changed files with 151 additions and 3 deletions.
10 changes: 9 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,11 @@
"author": "md678685",
"license": "MIT",
"dependencies": {
"autoprefixer": "^9.7.3",
"axios": "^0.19.0",
"buefy": "^0.7.7",
"bulma-prefers-dark": "^0.1.0-beta.0",
"css-prefers-color-scheme": "^4.0.0",
"git-state": "^4.1.0",
"saber": "^0.6.8",
"saber-plugin-netlify-redirect": "^0.0.6",
Expand All @@ -20,10 +23,15 @@
"@fortawesome/free-solid-svg-icons": "^5.9.0",
"@fortawesome/vue-fontawesome": "^0.1.6",
"@types/": "fortawesome/vue-fontawesome",
"@types/autoprefixer": "^9.6.1",
"@types/axios": "^0.14.0",
"@types/sass": "^1.16.0",
"markdown-it-wikilinks": "^1.0.1",
"sass": "^1.21.0",
"sass-loader": "^7.1.0"
}
},
"browserslist": [
"ie > 8",
"last 2 versions"
]
}
6 changes: 6 additions & 0 deletions postcss.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
module.exports = {
plugins: [
require("css-prefers-color-scheme/postcss")({ preserve: false }),
require("autoprefixer")()
]
}
7 changes: 7 additions & 0 deletions src/components/Footer.vue
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,9 @@
<a :href="commitLink" class="tag is-white-bis">{{ commitHash }}</a>
</div>
</b-tooltip>
<b-tooltip class="control" multilined label="Change the website theme">
<theme-toggle></theme-toggle>
</b-tooltip>
</div>
</div>
<br />
Expand All @@ -53,6 +56,7 @@

<script>
import axios from "axios";
import ThemeToggle from "./ThemeToggle";
export default {
props: ["page"],
Expand Down Expand Up @@ -81,6 +85,9 @@ export default {
membersHover() {
return this.external.discord.members || "Over 1000";
}
},
components: {
ThemeToggle
}
}
Expand Down
31 changes: 31 additions & 0 deletions src/components/ThemeToggle.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
<template>
<div class="tags" @click="dark = !dark">
<div class="tag is-light">
<fa-icon :icon="currentIcon"></fa-icon>
</div>
</div>
</template>

<script>
import initPreference from "css-prefers-color-scheme";
const schemePref = initPreference();
export default {
data() {
return {
dark: schemePref.scheme === "dark"
}
},
computed: {
currentIcon() {
return this.dark ? "moon" : "sun";
}
},
watch: {
dark(to) {
console.log(schemePref);
schemePref.scheme = to ? "dark" : "light";
}
}
}
</script>
4 changes: 2 additions & 2 deletions src/saber-browser.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,15 @@ import Buefy from "buefy";
import "./style/main.scss";

import { library } from "@fortawesome/fontawesome-svg-core"
import { faSync, faExternalLinkSquareAlt, faDownload, faChevronDown, faChevronUp, faUsers, faCheckCircle, faTools } from "@fortawesome/free-solid-svg-icons";
import { faSync, faExternalLinkSquareAlt, faDownload, faChevronDown, faChevronUp, faUsers, faCheckCircle, faTools, faSun, faMoon } from "@fortawesome/free-solid-svg-icons";
import { faGithub, faDiscord, faPatreon } from "@fortawesome/free-brands-svg-icons";
import { FontAwesomeIcon } from "@fortawesome/vue-fontawesome";

import KonamiCode from "vue-konami-code";

import ExternalData from "./mixins/external-data";

library.add(faSync, faUsers, faExternalLinkSquareAlt, faChevronDown, faChevronUp, faGithub, faDiscord, faDownload, faPatreon, faCheckCircle, faTools);
library.add(faSync, faUsers, faExternalLinkSquareAlt, faChevronDown, faChevronUp, faGithub, faDiscord, faDownload, faPatreon, faCheckCircle, faTools, faSun, faMoon);
Vue.component('fa-icon', FontAwesomeIcon);

Vue.use(Buefy, {
Expand Down
3 changes: 3 additions & 0 deletions src/style/main.scss
Original file line number Diff line number Diff line change
Expand Up @@ -51,3 +51,6 @@ $footer-padding: 2rem 1.5rem 1rem;
// Import Bulma and Buefy styles
@import "~bulma";
@import "~buefy/src/scss/buefy";

// Import dark theme
@import "~bulma-prefers-dark/bulma-prefers-dark.sass";
93 changes: 93 additions & 0 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -713,13 +713,26 @@
version "0.1.6"
resolved "https://codeload.github.com/fortawesome/vue-fontawesome/tar.gz/e88a6e3773a70c28f936a4d67a304e43d764cebb"

"@types/autoprefixer@^9.6.1":
version "9.6.1"
resolved "https://registry.yarnpkg.com/@types/autoprefixer/-/autoprefixer-9.6.1.tgz#8bfaf43d18f5cd59a269b7a2364e690cadcdf210"
integrity sha512-9aofAxm/OWxzu/Fq7lU/m2rX03f9Sr1OXF/3kEp6FNFYRFLgFcIUjxhNGgWqc5KMpXbkqxlJmc7wfab7jFj2dw==
dependencies:
"@types/browserslist" "*"
postcss "7.x.x"

"@types/axios@^0.14.0":
version "0.14.0"
resolved "https://registry.yarnpkg.com/@types/axios/-/axios-0.14.0.tgz#ec2300fbe7d7dddd7eb9d3abf87999964cafce46"
integrity sha1-7CMA++fX3d1+udOr+HmZlkyvzkY=
dependencies:
axios "*"

"@types/browserslist@*":
version "4.4.0"
resolved "https://registry.yarnpkg.com/@types/browserslist/-/browserslist-4.4.0.tgz#e2a5f7f8c7e97afb39f50812a77e5230d3ca2353"
integrity sha512-hrIjWSu7Hh96/rKlpChe58qHEwIZ0+F5Zf4QNdvSVP5LUXbaJM04g9tBjo702VTNqPZr5znEJeqNR3nAV3vJPg==

"@types/node@*":
version "12.0.8"
resolved "https://registry.yarnpkg.com/@types/node/-/node-12.0.8.tgz#551466be11b2adc3f3d47156758f610bd9f6b1d8"
Expand Down Expand Up @@ -1083,6 +1096,19 @@ atob@^2.1.1:
resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9"
integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==

autoprefixer@^9.7.3:
version "9.7.3"
resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.7.3.tgz#fd42ed03f53de9beb4ca0d61fb4f7268a9bb50b4"
integrity sha512-8T5Y1C5Iyj6PgkPSFd0ODvK9DIleuPKUPYniNxybS47g2k2wFgLZ46lGQHlBuGKIAEV8fbCDfKCCRS1tvOgc3Q==
dependencies:
browserslist "^4.8.0"
caniuse-lite "^1.0.30001012"
chalk "^2.4.2"
normalize-range "^0.1.2"
num2fraction "^1.2.2"
postcss "^7.0.23"
postcss-value-parser "^4.0.2"

axios@*, axios@^0.19.0:
version "0.19.0"
resolved "https://registry.yarnpkg.com/axios/-/axios-0.19.0.tgz#8e09bff3d9122e133f7b8101c8fbdd00ed3d2ab8"
Expand Down Expand Up @@ -1258,6 +1284,15 @@ browserslist@^4.0.0, browserslist@^4.6.0, browserslist@^4.6.2:
electron-to-chromium "^1.3.164"
node-releases "^1.1.23"

browserslist@^4.8.0:
version "4.8.3"
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.8.3.tgz#65802fcd77177c878e015f0e3189f2c4f627ba44"
integrity sha512-iU43cMMknxG1ClEZ2MDKeonKE1CCrFVkQK2AqO2YWFmvIrx4JWrvQ4w4hQez6EpVI8rHTtqh/ruHHDHSOKxvUg==
dependencies:
caniuse-lite "^1.0.30001017"
electron-to-chromium "^1.3.322"
node-releases "^1.1.44"

buefy@^0.7.7:
version "0.7.7"
resolved "https://registry.yarnpkg.com/buefy/-/buefy-0.7.7.tgz#0e0dea84e776959bf2c23110541d67a94eaaa1de"
Expand Down Expand Up @@ -1289,6 +1324,11 @@ builtin-status-codes@^3.0.0:
resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8"
integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=

bulma-prefers-dark@^0.1.0-beta.0:
version "0.1.0-beta.0"
resolved "https://registry.yarnpkg.com/bulma-prefers-dark/-/bulma-prefers-dark-0.1.0-beta.0.tgz#646350738ed00ac66d0f84ec6821a677aa1a66c5"
integrity sha512-EeDW8pQrkYEOXo2l3WykfghbUzi8jlQWGI+Cu2HwmXwQHMcoGF6yiKYCNShttN+8z3atq8fLWh3B7pqXUV4fBA==

[email protected]:
version "0.7.5"
resolved "https://registry.yarnpkg.com/bulma/-/bulma-0.7.5.tgz#35066c37f82c088b68f94450be758fc00a967208"
Expand Down Expand Up @@ -1373,6 +1413,11 @@ caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000975:
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000975.tgz#d4e7131391dddcf2838999d3ce75065f65f1cdfc"
integrity sha512-ZsXA9YWQX6ATu5MNg+Vx/cMQ+hM6vBBSqDeJs8ruk9z0ky4yIHML15MoxcFt088ST2uyjgqyUGRJButkptWf0w==

caniuse-lite@^1.0.30001012, caniuse-lite@^1.0.30001017:
version "1.0.30001019"
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001019.tgz#857e3fccaad2b2feb3f1f6d8a8f62d747ea648e1"
integrity sha512-6ljkLtF1KM5fQ+5ZN0wuyVvvebJxgJPTmScOMaFuQN2QuOzvRJnWSKfzQskQU5IOU4Gap3zasYPIinzwUjoj/g==

chalk@^1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
Expand Down Expand Up @@ -1715,6 +1760,13 @@ css-loader@^2.1.0:
postcss-value-parser "^3.3.0"
schema-utils "^1.0.0"

css-prefers-color-scheme@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/css-prefers-color-scheme/-/css-prefers-color-scheme-4.0.0.tgz#76ad893393c8cde3014b7f897f3417c59a9be5b3"
integrity sha512-uOfDoQlUt3ExPwb3UCKWgp8eGwQisQi/EEqaGBZG8l0xOBgICyvyYpZ8WyW4L099sMxVFum0PqfUqZE+RUVgYw==
dependencies:
postcss "^7.0.16"

css-select-base-adapter@^0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7"
Expand Down Expand Up @@ -2028,6 +2080,11 @@ electron-to-chromium@^1.3.164:
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.165.tgz#51864c9e3c9bd9e1c020b9493fddcc0f49888e3a"
integrity sha512-iIS8axR524EAnvUtWUNnREnYjQrS0zUvutIKYgTVuN3MzcjrV31EuJYKw7DGOtFO9DQw+JiXeaVDPQWMskG1wQ==

electron-to-chromium@^1.3.322:
version "1.3.325"
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.325.tgz#885a7d2a0c89784e0f0bfd1a61428476aea29108"
integrity sha512-fc2oa74paAVcf4i6fEHxi0xtnmyWtLuhERmux48icCYzBQyysjDtmDbXQ6JCdiDSYSNlKBcSbT7H4WIbrvxQ6g==

elliptic@^6.0.0:
version "6.4.1"
resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.1.tgz#c2d0b7776911b86722c632c3c06c60f2f819939a"
Expand Down Expand Up @@ -3418,6 +3475,13 @@ node-releases@^1.1.23:
dependencies:
semver "^5.3.0"

node-releases@^1.1.44:
version "1.1.44"
resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.44.tgz#cd66438a6eb875e3eb012b6a12e48d9f4326ffd7"
integrity sha512-NwbdvJyR7nrcGrXvKAvzc5raj/NkoJudkarh2yIpJ4t0NH4aqjUDz/486P+ynIW5eokKOfzGNRdYoLfBlomruw==
dependencies:
semver "^6.3.0"

nopt@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d"
Expand All @@ -3438,6 +3502,11 @@ normalize-path@^3.0.0:
resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==

normalize-range@^0.1.2:
version "0.1.2"
resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942"
integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=

normalize-url@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-2.0.1.tgz#835a9da1551fa26f70e92329069a23aa6574d7e6"
Expand Down Expand Up @@ -3482,6 +3551,11 @@ nth-check@^1.0.2:
dependencies:
boolbase "~1.0.0"

num2fraction@^1.2.2:
version "1.2.2"
resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede"
integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=

number-is-nan@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
Expand Down Expand Up @@ -4041,6 +4115,20 @@ postcss-value-parser@^3.0.0, postcss-value-parser@^3.3.0, postcss-value-parser@^
resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281"
integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==

postcss-value-parser@^4.0.2:
version "4.0.2"
resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.0.2.tgz#482282c09a42706d1fc9a069b73f44ec08391dc9"
integrity sha512-LmeoohTpp/K4UiyQCwuGWlONxXamGzCMtFxLq4W1nZVGIQLYvMCJx3yAF9qyyuFpflABI9yVdtJAqbihOsCsJQ==

[email protected], postcss@^7.0.16, postcss@^7.0.23:
version "7.0.26"
resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.26.tgz#5ed615cfcab35ba9bbb82414a4fa88ea10429587"
integrity sha512-IY4oRjpXWYshuTDFxMVkJDtWIk2LhsTlu8bZnbEJA4+bYT16Lvpo8Qv6EvDumhYRgzjZl489pmsY3qVgJQ08nA==
dependencies:
chalk "^2.4.2"
source-map "^0.6.1"
supports-color "^6.1.0"

postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.5, postcss@^7.0.6:
version "7.0.17"
resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.17.tgz#4da1bdff5322d4a0acaab4d87f3e782436bad31f"
Expand Down Expand Up @@ -4520,6 +4608,11 @@ semver@^6.1.1:
resolved "https://registry.yarnpkg.com/semver/-/semver-6.1.1.tgz#53f53da9b30b2103cd4f15eab3a18ecbcb210c9b"
integrity sha512-rWYq2e5iYW+fFe/oPPtYJxYgjBm8sC4rmoGdUOgBB7VnwKt6HrL793l2voH1UlsyYZpJ4g0wfjnTEO1s1NP2eQ==

semver@^6.3.0:
version "6.3.0"
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==

[email protected]:
version "0.17.1"
resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8"
Expand Down

0 comments on commit c4925b8

Please sign in to comment.