rework LP, better docker
16
.babelrc
@ -1,16 +0,0 @@
|
||||
{
|
||||
"env": {
|
||||
"test": {
|
||||
"presets": [
|
||||
[
|
||||
"@babel/preset-env",
|
||||
{
|
||||
"targets": {
|
||||
"node": "current"
|
||||
}
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -3,7 +3,7 @@ root = true
|
||||
|
||||
[*]
|
||||
indent_style = space
|
||||
indent_size = 4
|
||||
indent_size = 2
|
||||
end_of_line = lf
|
||||
charset = utf-8
|
||||
trim_trailing_whitespace = true
|
||||
|
||||
13
.eslintrc.js
@ -4,18 +4,15 @@ module.exports = {
|
||||
browser: true,
|
||||
node: true
|
||||
},
|
||||
parserOptions: {
|
||||
parser: 'babel-eslint'
|
||||
},
|
||||
extends: [
|
||||
'@nuxtjs/eslint-config-typescript',
|
||||
'prettier',
|
||||
'prettier/vue',
|
||||
'plugin:prettier/recommended',
|
||||
'@nuxtjs',
|
||||
'plugin:nuxt/recommended'
|
||||
],
|
||||
plugins: [
|
||||
'prettier'
|
||||
],
|
||||
// add your custom rules here
|
||||
rules: {
|
||||
'nuxt/no-cjs-in-config': 'off'
|
||||
}
|
||||
rules: {}
|
||||
}
|
||||
|
||||
@ -1,5 +0,0 @@
|
||||
{
|
||||
"semi": false,
|
||||
"arrowParens": "always",
|
||||
"singleQuote": true
|
||||
}
|
||||
28
Dockerfile
@ -1,21 +1,13 @@
|
||||
FROM node:slim
|
||||
|
||||
RUN mkdir -p /home/node/app/node_modules && chown -R node:node /home/node/app
|
||||
|
||||
WORKDIR /home/node/app
|
||||
|
||||
# build stage
|
||||
FROM node:lts-alpine as build-stage
|
||||
WORKDIR /app
|
||||
COPY package*.json ./
|
||||
|
||||
USER node
|
||||
|
||||
RUN npm install
|
||||
COPY . .
|
||||
RUN npm run generate
|
||||
|
||||
COPY --chown=node:node . .
|
||||
|
||||
ENV HOST 0.0.0.0
|
||||
|
||||
RUN npm run build
|
||||
|
||||
EXPOSE 3000
|
||||
|
||||
CMD ["npm", "run", "start"]
|
||||
# production stage
|
||||
FROM nginx:stable-alpine as production-stage
|
||||
COPY --from=build-stage /app/dist /usr/share/nginx/html
|
||||
EXPOSE 80
|
||||
CMD ["nginx", "-g", "daemon off;"]
|
||||
|
||||
@ -1,6 +1,4 @@
|
||||
# Landing Page *TheGolem.cz*
|
||||
|
||||
> One server to host them all!
|
||||
# golem-landing-page
|
||||
|
||||
## Build Setup
|
||||
|
||||
|
||||
@ -1,90 +1,26 @@
|
||||
<template>
|
||||
<svg class="NuxtLogo" enable-background="new 0 0 1109 1097" height="347" id="Layer_1" version="1.1"
|
||||
viewBox="0 0 1109 1097"
|
||||
width="350" x="0px" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" y="0px">
|
||||
<ellipse cx="604.776" cy="152.5" fill="none" rx="25" ry="30" stroke="#000000" stroke-miterlimit="10" stroke-width="5"/>
|
||||
<ellipse cx="604.776" cy="152.5" fill="none" rx="2.5" ry="3" stroke="#000000" stroke-miterlimit="10"
|
||||
stroke-width="5"/>
|
||||
<ellipse cx="515.776" cy="152.5" fill="none" rx="25" ry="30" stroke="#000000" stroke-miterlimit="10"
|
||||
stroke-width="5"/>
|
||||
<ellipse cx="515.776" cy="152.5" fill="none" rx="2.5" ry="3" stroke="#000000" stroke-miterlimit="10"
|
||||
stroke-width="5"/>
|
||||
<path d="M530.443,285.875
|
||||
c0,8.061,13.343,14.583,29.833,14.583" fill="none" stroke="#000000" stroke-linejoin="bevel" stroke-miterlimit="10"
|
||||
stroke-width="5"/>
|
||||
<path d="M590.109,285.875
|
||||
c0,8.061-13.343,14.583-29.833,14.583" fill="none" stroke="#000000" stroke-linecap="square" stroke-miterlimit="10"
|
||||
stroke-width="5"/>
|
||||
<g>
|
||||
<polygon points="1062.776,145 1035.276,145 735.276,145 717.776,145 717.776,102.5 717.776,50 717.776,45 712.776,45 685.276,45
|
||||
560.276,45 435.276,45 407.776,45 402.776,45 402.776,50 402.776,102.5 402.776,145 385.276,145 85.276,145 57.776,145 52.776,145
|
||||
52.776,150 52.776,202.5 52.776,802.5 52.776,855 52.776,860 57.776,860 85,860 85.276,860 135,860 185,860 202.5,860 202.5,902.5
|
||||
202.5,1002.5 202.5,1055 202.5,1060 207.5,1060 235,1060 485,1060 512.5,1060 517.5,1060 517.5,1055 517.5,1002.5 512.5,1002.5
|
||||
512.5,1055 485,1055 235,1055 207.5,1055 207.5,1002.5 207.5,902.5 207.5,855 202.5,855 185,855 135,855 85.276,855 85,855
|
||||
57.776,855 57.776,802.5 57.776,202.5 57.776,150 85.276,150 385.276,150 402.776,150 407.776,150 407.776,102.5 407.776,50
|
||||
435.276,50 560.276,50 685.276,50 712.776,50 712.776,102.5 712.776,150 717.776,150 735.276,150 1035.276,150 1062.776,150
|
||||
1062.776,202.5 1062.776,802.5 1062.776,855 1035.552,855 1035.276,855 985.552,855 935.552,855 918.052,855 913.052,855
|
||||
913.052,902.5 913.052,1002.5 913.052,1055 885.552,1055 885.552,1055 635.552,1055 635.552,1060 885.552,1060 885.552,1060
|
||||
913.052,1060 918.052,1060 918.052,1055 918.052,1002.5 918.052,902.5 918.052,860 935.552,860 985.552,860 1035.276,860
|
||||
1035.552,860 1062.776,860 1067.776,860 1067.776,855 1067.776,802.5 1067.776,202.5 1067.776,150 1067.776,145 "/>
|
||||
<path d="M560.276,400h125h17.5h5v-47.5v-150v-100V55h-5h-17.5h-125h-125h-17.5h-5v47.5v100v150V400h5h17.5H560.276z M417.776,352.5
|
||||
v-150v-100V60h17.5h125h125h17.5v42.5v100v150V395h-17.5h-125h-125h-17.5V352.5z"/>
|
||||
<polygon points="963.052,802.5 963.052,850 968.052,850 985.552,850 1003.052,850 1008.052,850 1008.052,802.5 1003.052,802.5
|
||||
1003.052,845 985.552,845 968.052,845 968.052,802.5 "/>
|
||||
<polygon points="913.052,802.5 913.052,850 918.052,850 935.552,850 953.052,850 958.052,850 958.052,802.5 953.052,802.5
|
||||
953.052,845 935.552,845 918.052,845 918.052,802.5 "/>
|
||||
<polygon points="908.052,802.5 903.052,802.5 903.052,845 885.552,845 868.052,845 868.052,802.5 863.052,802.5 863.052,850
|
||||
868.052,850 885.552,850 903.052,850 908.052,850 "/>
|
||||
<polygon points="818.052,402.5 813.052,402.5 813.052,802.5 813.052,850 818.052,850 835.552,850 853.052,850 858.052,850
|
||||
858.052,802.5 853.052,802.5 853.052,845 835.552,845 818.052,845 818.052,802.5 "/>
|
||||
<polygon points="903.052,1002.5 903.052,1045 885.552,1045 885.552,1045 635.552,1045 635.552,1050 885.552,1050 885.552,1050
|
||||
903.052,1050 908.052,1050 908.052,1002.5 908.052,902.5 908.052,855 903.052,855 885.552,855 835.552,855 808.052,855
|
||||
808.052,802.5 808.052,402.5 803.052,402.5 803.052,802.5 803.052,855 803.052,860 808.052,860 835.552,860 885.552,860
|
||||
903.052,860 903.052,902.5 "/>
|
||||
<polygon points="402.776,160 402.776,202.5 402.776,352.5 402.776,405 402.776,410 407.776,410 435.276,410 560.276,410
|
||||
685.276,410 712.776,410 717.776,410 717.776,405 717.776,352.5 717.776,202.5 717.776,160 735.276,160 1035.276,160 1052.776,160
|
||||
1052.776,202.5 1052.776,802.5 1052.776,845 1035.552,845 1035.276,845 1018.052,845 1018.052,802.5 1013.052,802.5 1013.052,850
|
||||
1018.052,850 1035.276,850 1035.552,850 1052.776,850 1057.776,850 1057.776,802.5 1057.776,202.5 1057.776,155 1052.776,155
|
||||
1035.276,155 735.276,155 717.776,155 712.776,155 712.776,202.5 712.776,352.5 712.776,405 685.276,405 560.276,405 435.276,405
|
||||
407.776,405 407.776,352.5 407.776,202.5 407.776,155 402.776,155 385.276,155 85.276,155 67.776,155 62.776,155 62.776,202.5
|
||||
62.776,802.5 62.776,850 67.776,850 85,850 85.276,850 102.5,850 107.5,850 107.5,802.5 102.5,802.5 102.5,845 85.276,845 85,845
|
||||
67.776,845 67.776,802.5 67.776,202.5 67.776,160 85.276,160 385.276,160 "/>
|
||||
<polygon
|
||||
points="618.052,1002.5 613.052,1002.5 613.052,1050 618.052,1050 635.552,1050 635.552,1045 618.052,1045 "/>
|
||||
<polygon points="608.052,1002.5 603.052,1002.5 603.052,1055 603.052,1060 608.052,1060 635.552,1060 635.552,1055 608.052,1055
|
||||
"/>
|
||||
<polygon points="603.052,902.5 603.052,902.5 603.052,1002.5 608.052,1002.5 608.052,902.5 608.052,902.5 608.052,855 603.052,855
|
||||
585.552,855 535,855 517.5,855 512.5,855 512.5,902.5 512.5,902.5 512.5,1002.5 517.5,1002.5 517.5,902.5 517.5,902.5 517.5,860
|
||||
535,860 585.552,860 603.052,860 "/>
|
||||
<polygon points="507.5,902.5 507.5,902.5 507.5,850 535,850 585.552,850 613.052,850 613.052,902.5 613.052,902.5 613.052,1002.5
|
||||
618.052,1002.5 618.052,902.5 618.052,902.5 618.052,850 618.052,845 613.052,845 585.552,845 535,845 507.5,845 502.5,845
|
||||
502.5,850 502.5,902.5 502.5,902.5 502.5,1002.5 507.5,1002.5 "/>
|
||||
<polygon points="112.5,802.5 112.5,850 117.5,850 135,850 152.5,850 157.5,850 157.5,802.5 152.5,802.5 152.5,845 135,845
|
||||
117.5,845 117.5,802.5 "/>
|
||||
<polygon points="162.5,802.5 162.5,850 167.5,850 185,850 202.5,850 207.5,850 207.5,802.5 202.5,802.5 202.5,845 185,845
|
||||
167.5,845 167.5,802.5 "/>
|
||||
<polygon points="212.5,802.5 212.5,850 217.5,850 235,850 252.5,850 257.5,850 257.5,802.5 252.5,802.5 252.5,845 235,845
|
||||
217.5,845 217.5,802.5 "/>
|
||||
<polygon points="262.5,802.5 262.5,850 267.5,850 285,850 302.5,850 307.5,850 307.5,802.5 307.5,402.5 302.5,402.5 302.5,802.5
|
||||
302.5,845 285,845 267.5,845 267.5,802.5 "/>
|
||||
<polygon points="235,1050 485,1050 502.5,1050 507.5,1050 507.5,1002.5 502.5,1002.5 502.5,1045 485,1045 235,1045 217.5,1045
|
||||
217.5,1002.5 217.5,902.5 217.5,860 235,860 285,860 312.5,860 317.5,860 317.5,855 317.5,802.5 317.5,402.5 312.5,402.5
|
||||
312.5,802.5 312.5,855 285,855 235,855 217.5,855 212.5,855 212.5,902.5 212.5,1002.5 212.5,1050 217.5,1050 "/>
|
||||
</g>
|
||||
</svg>
|
||||
<img class="logo max-w-md" :src="imgSrc" alt="golem">
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'Logo',
|
||||
props: ['imgSrc']
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.NuxtLogo {
|
||||
.logo {
|
||||
animation: 2s appear;
|
||||
margin: auto;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes appear {
|
||||
@keyframes appear {
|
||||
0% {
|
||||
opacity: 0;
|
||||
}
|
||||
100% {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
61
components/darkmode/DarkModeToggle.vue
Normal file
@ -0,0 +1,61 @@
|
||||
<template>
|
||||
<div class="flex flex-row">
|
||||
<img class="icon" :src="iconLightSrc">
|
||||
<Toggle ref="toggle" class="mx-2" @change="toggleMode" />
|
||||
<img class="icon" :src="iconDarkSrc">
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import Toggle from '@/components/darkmode/Toggle'
|
||||
|
||||
export default {
|
||||
name: 'DarkModeToggle',
|
||||
components: {
|
||||
Toggle
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
iconLightSrc: '/icon/sun.svg',
|
||||
iconDarkSrc: '/icon/moon.svg'
|
||||
}
|
||||
},
|
||||
mounted () {
|
||||
const initDarkMode = this.isDarkEnabled()
|
||||
this.$refs.toggle.value = initDarkMode
|
||||
this.updateTheme()
|
||||
this.updateIcons(initDarkMode)
|
||||
this.$emit('darkModeChange', initDarkMode)
|
||||
},
|
||||
methods: {
|
||||
toggleMode (darkMode) {
|
||||
localStorage.theme = darkMode ? 'dark' : 'light'
|
||||
this.updateTheme()
|
||||
this.updateIcons(darkMode)
|
||||
this.$emit('darkModeChange', darkMode)
|
||||
},
|
||||
updateTheme () {
|
||||
if (this.isDarkEnabled()) {
|
||||
document.querySelector('html').classList.add('mode-dark')
|
||||
} else {
|
||||
document.querySelector('html').classList.remove('mode-dark')
|
||||
}
|
||||
},
|
||||
isDarkEnabled () {
|
||||
return (localStorage.theme === 'dark' || (!('theme' in localStorage) && window.matchMedia('(prefers-color-scheme: dark)').matches))
|
||||
},
|
||||
updateIcons (darkMode) {
|
||||
this.iconDarkSrc = darkMode ? '/icon/moon-white.svg' : '/icon/moon.svg'
|
||||
this.iconLightSrc = darkMode ? '/icon/sun-white.svg' : '/icon/sun.svg'
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.icon {
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
margin: auto;
|
||||
}
|
||||
</style>
|
||||
81
components/darkmode/Toggle.vue
Normal file
@ -0,0 +1,81 @@
|
||||
<template>
|
||||
<div>
|
||||
<label class="switch">
|
||||
<input v-model="value" type="checkbox" @change="$emit('change', $event.target.checked)">
|
||||
<span class="slider round" />
|
||||
</label>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'Toggle',
|
||||
data () {
|
||||
return {
|
||||
value: false
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
/* The switch - the box around the slider */
|
||||
.switch {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
width: 60px;
|
||||
height: 34px;
|
||||
}
|
||||
|
||||
/* Hide default HTML checkbox */
|
||||
.switch input {
|
||||
opacity: 0;
|
||||
width: 0;
|
||||
height: 0;
|
||||
}
|
||||
|
||||
/* The slider */
|
||||
.slider {
|
||||
position: absolute;
|
||||
cursor: pointer;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
-webkit-transition: .4s;
|
||||
transition: .4s;
|
||||
@apply bg-gray-dark;
|
||||
}
|
||||
|
||||
.slider:before {
|
||||
position: absolute;
|
||||
content: "";
|
||||
height: 26px;
|
||||
width: 26px;
|
||||
left: 4px;
|
||||
bottom: 4px;
|
||||
background-color: white;
|
||||
-webkit-transition: .4s;
|
||||
transition: .4s;
|
||||
}
|
||||
|
||||
input:checked + .slider {
|
||||
@apply bg-gray-DEFAULT
|
||||
}
|
||||
|
||||
input:checked + .slider:before {
|
||||
-webkit-transform: translateX(26px);
|
||||
-ms-transform: translateX(26px);
|
||||
transform: translateX(26px);
|
||||
}
|
||||
|
||||
/* Rounded sliders */
|
||||
.slider.round {
|
||||
border-radius: 34px;
|
||||
}
|
||||
|
||||
.slider.round:before {
|
||||
border-radius: 50%;
|
||||
}
|
||||
</style>
|
||||
11
docker-compose.yml
Normal file
@ -0,0 +1,11 @@
|
||||
version: "3"
|
||||
|
||||
services:
|
||||
frontend-web:
|
||||
image: golem/golem-lp:latest
|
||||
build: .
|
||||
container_name: golem-lp
|
||||
ports:
|
||||
- 3333:80
|
||||
volumes:
|
||||
- ./config/nginx.conf:/etc/nginx/nginx.conf
|
||||
@ -1,23 +0,0 @@
|
||||
module.exports = {
|
||||
moduleNameMapper: {
|
||||
'^@/(.*)$': '<rootDir>/$1',
|
||||
'^~/(.*)$': '<rootDir>/$1',
|
||||
'^vue$': 'vue/dist/vue.common.js'
|
||||
},
|
||||
moduleFileExtensions: [
|
||||
'ts',
|
||||
'js',
|
||||
'vue',
|
||||
'json'
|
||||
],
|
||||
transform: {
|
||||
'^.+\\.ts$': 'ts-jest',
|
||||
'^.+\\.js$': 'babel-jest',
|
||||
'.*\\.(vue)$': 'vue-jest'
|
||||
},
|
||||
collectCoverage: true,
|
||||
collectCoverageFrom: [
|
||||
'<rootDir>/components/**/*.vue',
|
||||
'<rootDir>/pages/**/*.vue'
|
||||
]
|
||||
}
|
||||
@ -1,61 +1,31 @@
|
||||
<template>
|
||||
<div>
|
||||
<nuxt/>
|
||||
<Nuxt />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style>
|
||||
|
||||
@font-face {
|
||||
@font-face {
|
||||
font-family: GolemAscend;
|
||||
src: url(https://thegolem.cz/font/GolemAscend.ttf);
|
||||
}
|
||||
src: url(https://thegolem.cz/public/font/GolemAscend.ttf);
|
||||
}
|
||||
|
||||
html {
|
||||
font-family: GolemAscend, 'Source Sans Pro', -apple-system, BlinkMacSystemFont, 'Segoe UI',
|
||||
Roboto, 'Helvetica Neue', Arial, sans-serif;
|
||||
html {
|
||||
font-family: GolemAscend, sans-serif;
|
||||
font-size: 16px;
|
||||
word-spacing: 1px;
|
||||
-ms-text-size-adjust: 100%;
|
||||
-webkit-text-size-adjust: 100%;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
}
|
||||
|
||||
*,
|
||||
*:before,
|
||||
*:after {
|
||||
*,
|
||||
*::before,
|
||||
*::after {
|
||||
box-sizing: border-box;
|
||||
margin: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.button--green {
|
||||
display: inline-block;
|
||||
border-radius: 4px;
|
||||
border: 1px solid #3b8070;
|
||||
color: #3b8070;
|
||||
text-decoration: none;
|
||||
padding: 10px 30px;
|
||||
}
|
||||
|
||||
.button--green:hover {
|
||||
color: #fff;
|
||||
background-color: #3b8070;
|
||||
}
|
||||
|
||||
.button--grey {
|
||||
display: inline-block;
|
||||
border-radius: 4px;
|
||||
border: 1px solid #35495e;
|
||||
color: #35495e;
|
||||
text-decoration: none;
|
||||
padding: 10px 30px;
|
||||
margin-left: 15px;
|
||||
}
|
||||
|
||||
.button--grey:hover {
|
||||
color: #fff;
|
||||
background-color: #35495e;
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -1,64 +1,55 @@
|
||||
module.exports = {
|
||||
mode: 'universal',
|
||||
/*
|
||||
** Headers of the page
|
||||
*/
|
||||
export default {
|
||||
// Disable server-side rendering (https://go.nuxtjs.dev/ssr-mode)
|
||||
ssr: false,
|
||||
|
||||
// Target (https://go.nuxtjs.dev/config-target)
|
||||
target: 'static',
|
||||
|
||||
// Global page headers (https://go.nuxtjs.dev/config-head)
|
||||
head: {
|
||||
title: 'TheGolem.cz',
|
||||
meta: [
|
||||
{ charset: 'utf-8' },
|
||||
{ name: 'viewport', content: 'width=device-width, initial-scale=1' },
|
||||
{ hid: 'description', name: 'description', content: process.env.npm_package_description || '' }
|
||||
{ hid: 'description', name: 'description', content: '' }
|
||||
],
|
||||
script: [{
|
||||
src: 'analytics.js'
|
||||
}],
|
||||
link: [
|
||||
{ rel: 'icon', type: 'image/x-icon', href: '/icon_golem.png' }
|
||||
],
|
||||
script: [
|
||||
{ src: '/analytics.js', async: true }
|
||||
{ rel: 'icon', type: 'image/png', href: '/favicon.png' }
|
||||
]
|
||||
},
|
||||
/*
|
||||
** Customize the progress-bar color
|
||||
*/
|
||||
loading: { color: '#fff' },
|
||||
/*
|
||||
** Global CSS
|
||||
*/
|
||||
css: [],
|
||||
/*
|
||||
** Plugins to load before mounting the App
|
||||
*/
|
||||
plugins: [],
|
||||
/*
|
||||
** Nuxt.js dev-modules
|
||||
*/
|
||||
|
||||
// Global CSS (https://go.nuxtjs.dev/config-css)
|
||||
css: [
|
||||
],
|
||||
|
||||
// Plugins to run before rendering page (https://go.nuxtjs.dev/config-plugins)
|
||||
plugins: [
|
||||
],
|
||||
|
||||
// Auto import components (https://go.nuxtjs.dev/config-components)
|
||||
components: true,
|
||||
|
||||
// Modules for dev and build (recommended) (https://go.nuxtjs.dev/config-modules)
|
||||
buildModules: [
|
||||
'@nuxt/typescript-build'
|
||||
// https://go.nuxtjs.dev/eslint
|
||||
'@nuxtjs/eslint-module',
|
||||
// https://go.nuxtjs.dev/tailwindcss
|
||||
'@nuxtjs/tailwindcss'
|
||||
],
|
||||
/*
|
||||
** Nuxt.js modules
|
||||
*/
|
||||
|
||||
// Modules (https://go.nuxtjs.dev/config-modules)
|
||||
modules: [
|
||||
// Doc: https://bootstrap-vue.js.org
|
||||
'bootstrap-vue/nuxt',
|
||||
// Doc: https://axios.nuxtjs.org/usage
|
||||
'@nuxtjs/axios',
|
||||
// Doc: https://github.com/nuxt-community/dotenv-module
|
||||
'@nuxtjs/dotenv'
|
||||
// https://go.nuxtjs.dev/axios
|
||||
'@nuxtjs/axios'
|
||||
],
|
||||
/*
|
||||
** Axios module configuration
|
||||
** See https://axios.nuxtjs.org/options
|
||||
*/
|
||||
|
||||
// Axios module configuration (https://go.nuxtjs.dev/config-axios)
|
||||
axios: {},
|
||||
/*
|
||||
** Build configuration
|
||||
*/
|
||||
|
||||
// Build Configuration (https://go.nuxtjs.dev/config-build)
|
||||
build: {
|
||||
/*
|
||||
** You can extend webpack config here
|
||||
*/
|
||||
extend(config, ctx) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
10857
package-lock.json
generated
45
package.json
@ -1,41 +1,28 @@
|
||||
{
|
||||
"name": "thegolem_landing_page",
|
||||
"name": "golem-landing-page",
|
||||
"version": "1.0.0",
|
||||
"description": "Landing page for TheGolem.cz",
|
||||
"author": "Dan Šuster",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"dev": "cross-env NODE_ENV=development nodemon server/index.js --watch server",
|
||||
"dev": "nuxt",
|
||||
"build": "nuxt build",
|
||||
"start": "cross-env NODE_ENV=production node server/index.js",
|
||||
"start": "nuxt start",
|
||||
"generate": "nuxt generate",
|
||||
"lint": "eslint --ext .js,.vue --ignore-path .gitignore .",
|
||||
"test": "jest"
|
||||
"lint:js": "eslint --ext .js,.vue --ignore-path .gitignore .",
|
||||
"lint": "npm run lint:js"
|
||||
},
|
||||
"dependencies": {
|
||||
"nuxt": "^2.0.0",
|
||||
"cross-env": "^5.2.0",
|
||||
"express": "^4.16.4",
|
||||
"bootstrap-vue": "^2.0.0",
|
||||
"bootstrap": "^4.1.3",
|
||||
"@nuxtjs/axios": "^5.3.6",
|
||||
"@nuxtjs/dotenv": "^1.4.0"
|
||||
"@nuxtjs/axios": "^5.12.2",
|
||||
"core-js": "^3.6.5",
|
||||
"nuxt": "^2.14.6",
|
||||
"tailwindcss-dark-mode": "^1.1.7"
|
||||
},
|
||||
"devDependencies": {
|
||||
"nodemon": "^1.18.9",
|
||||
"@nuxt/typescript-build": "^0.6.0",
|
||||
"@nuxtjs/eslint-config-typescript": "^1.0.0",
|
||||
"@nuxtjs/eslint-module": "^1.0.0",
|
||||
"babel-eslint": "^10.0.1",
|
||||
"eslint": "^6.1.0",
|
||||
"eslint-plugin-nuxt": ">=0.4.2",
|
||||
"eslint-config-prettier": "^6.10.0",
|
||||
"eslint-plugin-prettier": "^3.1.2",
|
||||
"prettier": "^1.19.1",
|
||||
"@vue/test-utils": "^1.0.0-beta.27",
|
||||
"babel-jest": "^24.1.0",
|
||||
"jest": "^24.1.0",
|
||||
"vue-jest": "^4.0.0-0",
|
||||
"ts-jest": "^25.0.0"
|
||||
"@nuxt/types": "^2.14.12",
|
||||
"@nuxtjs/eslint-config": "^3.1.0",
|
||||
"@nuxtjs/eslint-module": "^2.0.0",
|
||||
"@nuxtjs/tailwindcss": "^3.1.0",
|
||||
"babel-eslint": "^10.1.0",
|
||||
"eslint": "^7.10.0",
|
||||
"eslint-plugin-nuxt": "^1.0.0"
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,69 +1,48 @@
|
||||
<template>
|
||||
<div class="container">
|
||||
<div>
|
||||
<logo/>
|
||||
<h1 class="title">
|
||||
<template xmlns:div="http://www.w3.org/1999/html">
|
||||
<div class="flex flex-col h-screen w-screen bg-white dark:bg-gray-darkest">
|
||||
<div class="absolute inset-0 flex flex-col">
|
||||
<div class="m-auto text-center">
|
||||
<Logo class="m-0" :img-src="iconGolemSrc" />
|
||||
<h1 class="text-4xl md:text-6xl text-gray-darkest dark:text-gray-lightest">
|
||||
TheGolem.cz
|
||||
</h1>
|
||||
<h2 class="subtitle">
|
||||
<h2 class="text-2xl md:text-4xl text-gray-darkest dark:text-gray-lightest">
|
||||
One server to host them all!
|
||||
</h2>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="z-10 h-full flex flex-col">
|
||||
<div class="ml-auto mr-4 mt-4">
|
||||
<DarkModeToggle @darkModeChange="darkModeChange" />
|
||||
</div>
|
||||
<div class="ml-auto mt-auto mr-2 mb-2 text-gray-darkest dark:text-gray-lightest">
|
||||
contact us at: <a href="mailto:info@thegolem.cz">info@thegolem.cz</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts">
|
||||
import Vue from 'vue'
|
||||
import Logo from '~/components/Logo.vue'
|
||||
<script>
|
||||
import DarkModeToggle from '@/components/darkmode/DarkModeToggle'
|
||||
|
||||
export default Vue.extend({
|
||||
export default {
|
||||
components: {
|
||||
Logo
|
||||
DarkModeToggle
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
iconGolemSrc: '/icon/golem.svg'
|
||||
}
|
||||
})
|
||||
},
|
||||
methods: {
|
||||
darkModeChange (darkMode) {
|
||||
this.iconGolemSrc = darkMode ? '/icon/golem-white.svg' : '/icon/golem.svg'
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.container {
|
||||
margin: 0 auto;
|
||||
min-height: 100vh;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.title {
|
||||
font-family: GolemAscend, 'Quicksand', 'Source Sans Pro', -apple-system, BlinkMacSystemFont,
|
||||
'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
|
||||
display: block;
|
||||
font-weight: 300;
|
||||
font-size: 100px;
|
||||
color: #35495e;
|
||||
letter-spacing: 1px;
|
||||
}
|
||||
|
||||
.subtitle {
|
||||
font-family: GolemAscend, 'Quicksand', 'Source Sans Pro', -apple-system, BlinkMacSystemFont,
|
||||
'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
|
||||
font-weight: 300;
|
||||
font-size: 42px;
|
||||
color: #526488;
|
||||
word-spacing: 5px;
|
||||
padding-bottom: 15px;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 700px) {
|
||||
.title {
|
||||
font-size: 50px;
|
||||
}
|
||||
|
||||
.subtitle {
|
||||
font-size: 30px;
|
||||
}
|
||||
}
|
||||
|
||||
.links {
|
||||
padding-top: 15px;
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -1,34 +0,0 @@
|
||||
const express = require('express')
|
||||
const consola = require('consola')
|
||||
const { Nuxt, Builder } = require('nuxt')
|
||||
const app = express()
|
||||
|
||||
// Import and Set Nuxt.js options
|
||||
const config = require('../nuxt.config.js')
|
||||
config.dev = process.env.NODE_ENV !== 'production'
|
||||
|
||||
async function start() {
|
||||
// Init Nuxt.js
|
||||
const nuxt = new Nuxt(config)
|
||||
|
||||
const { host, port } = nuxt.options.server
|
||||
|
||||
await nuxt.ready()
|
||||
// Build only in dev mode
|
||||
if (config.dev) {
|
||||
const builder = new Builder(nuxt)
|
||||
await builder.build()
|
||||
}
|
||||
|
||||
// Give nuxt middleware to express
|
||||
app.use(nuxt.render)
|
||||
|
||||
// Listen the server
|
||||
app.listen(port, host)
|
||||
consola.ready({
|
||||
message: `Server listening on http://${host}:${port}`,
|
||||
badge: true
|
||||
})
|
||||
}
|
||||
|
||||
start()
|
||||
|
Before Width: | Height: | Size: 1.4 KiB |
BIN
static/favicon.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
45
static/icon/golem-white.svg
Normal file
@ -0,0 +1,45 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 17.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
width="1109px" height="1097px" viewBox="0 0 1109 1097" enable-background="new 0 0 1109 1097" xml:space="preserve">
|
||||
<ellipse fill="none" stroke="#FFFFFF" stroke-width="5" stroke-miterlimit="10" cx="604.776" cy="152.5" rx="25" ry="30"/>
|
||||
<ellipse fill="#FFFFFF" stroke="#FFFFFF" stroke-width="5" stroke-miterlimit="10" cx="604.776" cy="152.5" rx="2.5" ry="3"/>
|
||||
<ellipse fill="none" stroke="#FFFFFF" stroke-width="5" stroke-miterlimit="10" cx="515.776" cy="152.5" rx="25" ry="30"/>
|
||||
<ellipse fill="#FFFFFF" stroke="#FFFFFF" stroke-width="5" stroke-miterlimit="10" cx="515.776" cy="152.5" rx="2.5" ry="3"/>
|
||||
<path fill="none" stroke="#FFFFFF" stroke-width="5" stroke-miterlimit="10" d="M530.443,285.875
|
||||
c0,8.061,13.388,14.583,29.933,14.583"/>
|
||||
<path fill="none" stroke="#FFFFFF" stroke-width="5" stroke-miterlimit="10" d="M590.109,285.875
|
||||
c0,8.061-13.343,14.583-29.833,14.583"/>
|
||||
<g>
|
||||
<path fill="#FFFFFF" d="M1062.776,145h-27.5h-300h-17.5v-42.5V50v-5h-5h-27.5h-125h-125h-27.5h-5v5v52.5V145h-17.5h-300h-27.5h-5v5
|
||||
v52.5v600V855v5h5H85h0.276H135h50h17.5v42.5v100v52.5v5h5H235h250h27.5h5v-5v-52.5v-100V860H535h50.552h17.5v42.5v100v52.5v5h5
|
||||
h27.5h250h27.5h5v-5v-52.5v-100V860h17.5h50h49.724h0.276h27.224h5v-5v-52.5v-600V150v-5H1062.776z M407.776,352.5v-150V155v-5
|
||||
v-47.5V50h27.5h125h125h27.5v52.5V150v5v47.5v150V405h-27.5h-125h-125h-27.5V352.5z M913.052,902.5v100v52.5h-27.5h-250h-27.5
|
||||
v-52.5v-100V855h-5h-17.5H535h-17.5h-5v47.5v100v52.5H485H235h-27.5v-52.5v-100V860h5v42.5v100v47.5h5H235h250h17.5h5v-47.5v-100
|
||||
V850H535h50.552h27.5v52.5v100v47.5h5h17.5h250h17.5h5v-47.5v-100V860h5V902.5z M1062.776,202.5v600V855h-27.224h-0.276h-49.724
|
||||
h-50h-17.5h-5h-5h-5h-17.5h-50h-27.5v-52.5v-400h-5v400V855v5h5h27.5h50h17.5v42.5v100v42.5h-17.5h-250h-17.5v-42.5v-100V850v-5h-5
|
||||
h-27.5H535h-27.5h-5v5v52.5v100v42.5H485H235h-17.5v-42.5v-100V860H235h50h27.5h5v-5v-52.5v-400h-5v400V855H285h-50h-17.5h-5h-5h-5
|
||||
H185h-50H85.276H85H57.776v-52.5v-600V150h27.5h300h17.5v5h-17.5h-300h-17.5h-5v47.5v600V850h5H85h0.276H102.5h5v-47.5h-5V845
|
||||
H85.276H85H67.776v-42.5v-600V160h17.5h300h17.5v42.5v150V405v5h5h27.5h125h125h27.5h5v-5v-52.5v-150V160h17.5h300h17.5v42.5v600
|
||||
V845h-17.224h-0.276h-17.224v-42.5h-5V850h5h17.224h0.276h17.224h5v-47.5v-600V155h-5h-17.5h-300h-17.5v-5h17.5h300h27.5V202.5z"/>
|
||||
<path fill="#FFFFFF" d="M560.276,400h125h17.5h5v-47.5v-150v-100V55h-5h-17.5h-125h-125h-17.5h-5v47.5v100v150V400h5h17.5H560.276z
|
||||
M417.776,352.5v-150v-100V60h17.5h125h125h17.5v42.5v100v150V395h-17.5h-125h-125h-17.5V352.5z"/>
|
||||
<polygon fill="#FFFFFF" points="1003.052,845 985.552,845 968.052,845 968.052,802.5 963.052,802.5 963.052,850 968.052,850
|
||||
985.552,850 1003.052,850 1008.052,850 1008.052,802.5 1003.052,802.5 "/>
|
||||
<polygon fill="#FFFFFF" points="953.052,845 935.552,845 918.052,845 918.052,802.5 913.052,802.5 913.052,850 918.052,850
|
||||
935.552,850 953.052,850 958.052,850 958.052,802.5 953.052,802.5 "/>
|
||||
<polygon fill="#FFFFFF" points="903.052,845 885.552,845 868.052,845 868.052,802.5 863.052,802.5 863.052,850 868.052,850
|
||||
885.552,850 903.052,850 908.052,850 908.052,802.5 903.052,802.5 "/>
|
||||
<polygon fill="#FFFFFF" points="853.052,845 835.552,845 818.052,845 818.052,802.5 818.052,402.5 813.052,402.5 813.052,802.5
|
||||
813.052,850 818.052,850 835.552,850 853.052,850 858.052,850 858.052,802.5 853.052,802.5 "/>
|
||||
<polygon fill="#FFFFFF" points="152.5,845 135,845 117.5,845 117.5,802.5 112.5,802.5 112.5,850 117.5,850 135,850 152.5,850
|
||||
157.5,850 157.5,802.5 152.5,802.5 "/>
|
||||
<polygon fill="#FFFFFF" points="202.5,845 185,845 167.5,845 167.5,802.5 162.5,802.5 162.5,850 167.5,850 185,850 202.5,850
|
||||
207.5,850 207.5,802.5 202.5,802.5 "/>
|
||||
<polygon fill="#FFFFFF" points="252.5,845 235,845 217.5,845 217.5,802.5 212.5,802.5 212.5,850 217.5,850 235,850 252.5,850
|
||||
257.5,850 257.5,802.5 252.5,802.5 "/>
|
||||
<polygon fill="#FFFFFF" points="302.5,802.5 302.5,845 285,845 267.5,845 267.5,802.5 262.5,802.5 262.5,850 267.5,850 285,850
|
||||
302.5,850 307.5,850 307.5,802.5 307.5,402.5 302.5,402.5 "/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.3 KiB |
212
static/icon/golem.svg
Normal file
@ -0,0 +1,212 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- Generator: Adobe Illustrator 17.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
width="1109px" height="1097px" viewBox="0 0 1109 1097" style="enable-background:new 0 0 1109 1097;" xml:space="preserve">
|
||||
<g>
|
||||
<polygon points="1035.276,155 1035.276,160 1052.776,160 1052.776,202.5 1057.776,202.5 1057.776,155 1052.776,155 "/>
|
||||
<polygon points="1062.776,145 1035.276,145 1035.276,150 1062.776,150 1062.776,202.5 1067.776,202.5 1067.776,150 1067.776,145
|
||||
"/>
|
||||
</g>
|
||||
<g>
|
||||
<rect x="735.276" y="155" width="300" height="5"/>
|
||||
<rect x="735.276" y="145" width="300" height="5"/>
|
||||
</g>
|
||||
<g>
|
||||
<polygon points="685.276,55 685.276,60 702.776,60 702.776,102.5 707.776,102.5 707.776,55 702.776,55 "/>
|
||||
<polygon points="712.776,45 685.276,45 685.276,50 712.776,50 712.776,102.5 717.776,102.5 717.776,50 717.776,45 "/>
|
||||
</g>
|
||||
<g>
|
||||
<rect x="560.276" y="55" width="125" height="5"/>
|
||||
<rect x="560.276" y="45" width="125" height="5"/>
|
||||
</g>
|
||||
<g>
|
||||
<rect x="1052.776" y="202.5" width="5" height="600"/>
|
||||
<rect x="1062.776" y="202.5" width="5" height="600"/>
|
||||
</g>
|
||||
<g>
|
||||
<polygon points="1057.776,850 1057.776,802.5 1052.776,802.5 1052.776,845 1035.276,845 1035.276,850 1052.776,850 "/>
|
||||
<polygon points="1062.776,802.5 1062.776,855 1035.276,855 1035.276,860 1062.776,860 1067.776,860 1067.776,855 1067.776,802.5
|
||||
"/>
|
||||
</g>
|
||||
<g>
|
||||
<polygon points="1008.052,850 1008.052,802.5 1003.052,802.5 1003.052,845 985.552,845 985.552,850 1003.052,850 "/>
|
||||
<rect x="985.552" y="855" width="50" height="5"/>
|
||||
<polygon points="1018.052,845 1018.052,802.5 1013.052,802.5 1013.052,850 1018.052,850 1035.552,850 1035.552,845 "/>
|
||||
</g>
|
||||
<g>
|
||||
<polygon points="958.052,850 958.052,802.5 953.052,802.5 953.052,845 935.552,845 935.552,850 953.052,850 "/>
|
||||
<rect x="935.552" y="855" width="50" height="5"/>
|
||||
<polygon points="968.052,845 968.052,802.5 963.052,802.5 963.052,850 968.052,850 985.552,850 985.552,845 "/>
|
||||
</g>
|
||||
<g>
|
||||
<polygon points="903.052,845 885.552,845 885.552,850 903.052,850 908.052,850 908.052,802.5 903.052,802.5 "/>
|
||||
<polygon points="913.052,855 913.052,902.5 918.052,902.5 918.052,860 935.552,860 935.552,855 918.052,855 "/>
|
||||
<polygon points="885.552,855 885.552,860 903.052,860 903.052,902.5 908.052,902.5 908.052,855 903.052,855 "/>
|
||||
<polygon points="918.052,845 918.052,802.5 913.052,802.5 913.052,850 918.052,850 935.552,850 935.552,845 "/>
|
||||
</g>
|
||||
<g>
|
||||
<polygon points="858.052,850 858.052,802.5 853.052,802.5 853.052,845 835.552,845 835.552,850 853.052,850 "/>
|
||||
<rect x="835.552" y="855" width="50" height="5"/>
|
||||
<polygon points="868.052,845 868.052,802.5 863.052,802.5 863.052,850 868.052,850 885.552,850 885.552,845 "/>
|
||||
</g>
|
||||
<g>
|
||||
<polygon points="835.552,850 835.552,845 818.052,845 818.052,802.5 813.052,802.5 813.052,850 818.052,850 "/>
|
||||
<polygon points="808.052,860 835.552,860 835.552,855 808.052,855 808.052,802.5 803.052,802.5 803.052,855 803.052,860 "/>
|
||||
</g>
|
||||
<g>
|
||||
<rect x="803.052" y="402.5" width="5" height="400"/>
|
||||
<rect x="813.052" y="402.5" width="5" height="400"/>
|
||||
</g>
|
||||
<g>
|
||||
<rect x="702.776" y="102.5" width="5" height="100"/>
|
||||
<polygon points="712.776,155 712.776,202.5 717.776,202.5 717.776,160 735.276,160 735.276,155 717.776,155 "/>
|
||||
<polygon points="717.776,145 717.776,102.5 712.776,102.5 712.776,150 717.776,150 735.276,150 735.276,145 "/>
|
||||
</g>
|
||||
<g>
|
||||
<rect x="702.776" y="202.5" width="5" height="150"/>
|
||||
<rect x="712.776" y="202.5" width="5" height="150"/>
|
||||
</g>
|
||||
<g>
|
||||
<polygon points="707.776,400 707.776,352.5 702.776,352.5 702.776,395 685.276,395 685.276,400 702.776,400 "/>
|
||||
<polygon points="712.776,352.5 712.776,405 685.276,405 685.276,410 712.776,410 717.776,410 717.776,405 717.776,352.5 "/>
|
||||
</g>
|
||||
<g>
|
||||
<rect x="560.276" y="405" width="125" height="5"/>
|
||||
<rect x="560.276" y="395" width="125" height="5"/>
|
||||
</g>
|
||||
<g>
|
||||
<rect x="903.052" y="902.5" width="5" height="100"/>
|
||||
<rect x="913.052" y="902.5" width="5" height="100"/>
|
||||
</g>
|
||||
<g>
|
||||
<polygon points="908.052,1050 908.052,1002.5 903.052,1002.5 903.052,1045 885.552,1045 885.552,1050 903.052,1050 "/>
|
||||
<polygon points="913.052,1002.5 913.052,1055 885.552,1055 885.552,1060 913.052,1060 918.052,1060 918.052,1055 918.052,1002.5
|
||||
"/>
|
||||
</g>
|
||||
<g>
|
||||
<rect x="635.552" y="1055" width="250" height="5"/>
|
||||
<rect x="635.552" y="1045" width="250" height="5"/>
|
||||
</g>
|
||||
<g>
|
||||
<rect x="603.052" y="902.5" width="5" height="100"/>
|
||||
<rect x="613.052" y="902.5" width="5" height="100"/>
|
||||
</g>
|
||||
<g>
|
||||
<polygon points="635.552,1050 635.552,1045 618.052,1045 618.052,1002.5 613.052,1002.5 613.052,1050 618.052,1050 "/>
|
||||
<polygon points="608.052,1060 635.552,1060 635.552,1055 608.052,1055 608.052,1002.5 603.052,1002.5 603.052,1055 603.052,1060
|
||||
"/>
|
||||
</g>
|
||||
<g>
|
||||
<polygon points="585.552,855 585.552,860 603.052,860 603.052,902.5 608.052,902.5 608.052,855 603.052,855 "/>
|
||||
<polygon points="613.052,845 585.552,845 585.552,850 613.052,850 613.052,902.5 618.052,902.5 618.052,850 618.052,845 "/>
|
||||
</g>
|
||||
<ellipse style="fill:none;stroke:#000000;stroke-width:5;stroke-miterlimit:10;" cx="604.776" cy="152.5" rx="25" ry="30"/>
|
||||
<ellipse style="fill:#FFFFFF;stroke:#000000;stroke-width:5;stroke-miterlimit:10;" cx="604.776" cy="152.5" rx="2.5" ry="3"/>
|
||||
<g>
|
||||
<polygon points="85.276,155 85.276,160 67.776,160 67.776,202.5 62.776,202.5 62.776,155 67.776,155 "/>
|
||||
<polygon points="57.776,145 85.276,145 85.276,150 57.776,150 57.776,202.5 52.776,202.5 52.776,150 52.776,145 "/>
|
||||
</g>
|
||||
<g>
|
||||
<rect x="85.276" y="155" width="300" height="5"/>
|
||||
<rect x="85.276" y="145" width="300" height="5"/>
|
||||
</g>
|
||||
<g>
|
||||
<polygon points="435.276,55 435.276,60 417.776,60 417.776,102.5 412.776,102.5 412.776,55 417.776,55 "/>
|
||||
<polygon points="407.776,45 435.276,45 435.276,50 407.776,50 407.776,102.5 402.776,102.5 402.776,50 402.776,45 "/>
|
||||
</g>
|
||||
<g>
|
||||
<rect x="435.276" y="55" width="125" height="5"/>
|
||||
<rect x="435.276" y="45" width="125" height="5"/>
|
||||
</g>
|
||||
<g>
|
||||
<rect x="62.776" y="202.5" width="5" height="600"/>
|
||||
<rect x="52.776" y="202.5" width="5" height="600"/>
|
||||
</g>
|
||||
<g>
|
||||
<polygon points="62.776,850 62.776,802.5 67.776,802.5 67.776,845 85.276,845 85.276,850 67.776,850 "/>
|
||||
<polygon points="57.776,802.5 57.776,855 85.276,855 85.276,860 57.776,860 52.776,860 52.776,855 52.776,802.5 "/>
|
||||
</g>
|
||||
<g>
|
||||
<polygon points="112.5,850 112.5,802.5 117.5,802.5 117.5,845 135,845 135,850 117.5,850 "/>
|
||||
<rect x="85" y="855" width="50" height="5"/>
|
||||
<polygon points="102.5,845 102.5,802.5 107.5,802.5 107.5,850 102.5,850 85,850 85,845 "/>
|
||||
</g>
|
||||
<g>
|
||||
<polygon points="162.5,850 162.5,802.5 167.5,802.5 167.5,845 185,845 185,850 167.5,850 "/>
|
||||
<rect x="135" y="855" width="50" height="5"/>
|
||||
<polygon points="152.5,845 152.5,802.5 157.5,802.5 157.5,850 152.5,850 135,850 135,845 "/>
|
||||
</g>
|
||||
<g>
|
||||
<polygon points="217.5,845 235,845 235,850 217.5,850 212.5,850 212.5,802.5 217.5,802.5 "/>
|
||||
<polygon points="207.5,855 207.5,902.5 202.5,902.5 202.5,860 185,860 185,855 202.5,855 "/>
|
||||
<polygon points="235,855 235,860 217.5,860 217.5,902.5 212.5,902.5 212.5,855 217.5,855 "/>
|
||||
<polygon points="202.5,845 202.5,802.5 207.5,802.5 207.5,850 202.5,850 185,850 185,845 "/>
|
||||
</g>
|
||||
<g>
|
||||
<polygon points="262.5,850 262.5,802.5 267.5,802.5 267.5,845 285,845 285,850 267.5,850 "/>
|
||||
<rect x="235" y="855" width="50" height="5"/>
|
||||
<polygon points="252.5,845 252.5,802.5 257.5,802.5 257.5,850 252.5,850 235,850 235,845 "/>
|
||||
</g>
|
||||
<g>
|
||||
<polygon points="285,850 285,845 302.5,845 302.5,802.5 307.5,802.5 307.5,850 302.5,850 "/>
|
||||
<polygon points="312.5,860 285,860 285,855 312.5,855 312.5,802.5 317.5,802.5 317.5,855 317.5,860 "/>
|
||||
</g>
|
||||
<g>
|
||||
<rect x="312.5" y="402.5" width="5" height="400"/>
|
||||
<rect x="302.5" y="402.5" width="5" height="400"/>
|
||||
</g>
|
||||
<g>
|
||||
<rect x="412.776" y="102.5" width="5" height="100"/>
|
||||
<polygon points="407.776,155 407.776,202.5 402.776,202.5 402.776,160 385.276,160 385.276,155 402.776,155 "/>
|
||||
<polygon points="402.776,145 402.776,102.5 407.776,102.5 407.776,150 402.776,150 385.276,150 385.276,145 "/>
|
||||
</g>
|
||||
<g>
|
||||
<rect x="412.776" y="202.5" width="5" height="150"/>
|
||||
<rect x="402.776" y="202.5" width="5" height="150"/>
|
||||
</g>
|
||||
<g>
|
||||
<polygon points="412.776,400 412.776,352.5 417.776,352.5 417.776,395 435.276,395 435.276,400 417.776,400 "/>
|
||||
<polygon points="407.776,352.5 407.776,405 435.276,405 435.276,410 407.776,410 402.776,410 402.776,405 402.776,352.5 "/>
|
||||
</g>
|
||||
<g>
|
||||
<rect x="435.276" y="405" width="125" height="5"/>
|
||||
<rect x="435.276" y="395" width="125" height="5"/>
|
||||
</g>
|
||||
<g>
|
||||
<rect x="212.5" y="902.5" width="5" height="100"/>
|
||||
<rect x="202.5" y="902.5" width="5" height="100"/>
|
||||
</g>
|
||||
<g>
|
||||
<polygon points="212.5,1050 212.5,1002.5 217.5,1002.5 217.5,1045 235,1045 235,1050 217.5,1050 "/>
|
||||
<polygon points="207.5,1002.5 207.5,1055 235,1055 235,1060 207.5,1060 202.5,1060 202.5,1055 202.5,1002.5 "/>
|
||||
</g>
|
||||
<g>
|
||||
<rect x="235" y="1055" width="250" height="5"/>
|
||||
<rect x="235" y="1045" width="250" height="5"/>
|
||||
</g>
|
||||
<g>
|
||||
<rect x="512.5" y="902.5" width="5" height="100"/>
|
||||
<rect x="502.5" y="902.5" width="5" height="100"/>
|
||||
</g>
|
||||
<g>
|
||||
<polygon points="485,1050 485,1045 502.5,1045 502.5,1002.5 507.5,1002.5 507.5,1050 502.5,1050 "/>
|
||||
<polygon points="512.5,1060 485,1060 485,1055 512.5,1055 512.5,1002.5 517.5,1002.5 517.5,1055 517.5,1060 "/>
|
||||
</g>
|
||||
<g>
|
||||
<polygon points="535,855 535,860 517.5,860 517.5,902.5 512.5,902.5 512.5,855 517.5,855 "/>
|
||||
<polygon points="507.5,845 535,845 535,850 507.5,850 507.5,902.5 502.5,902.5 502.5,850 502.5,845 "/>
|
||||
</g>
|
||||
<ellipse style="fill:none;stroke:#000000;stroke-width:5;stroke-miterlimit:10;" cx="515.776" cy="152.5" rx="25" ry="30"/>
|
||||
<ellipse style="fill:#FFFFFF;stroke:#000000;stroke-width:5;stroke-miterlimit:10;" cx="515.776" cy="152.5" rx="2.5" ry="3"/>
|
||||
<path style="fill:none;stroke:#000000;stroke-width:5;stroke-miterlimit:10;" d="M530.443,285.875
|
||||
c0,8.061,13.388,14.583,29.933,14.583"/>
|
||||
<path style="fill:none;stroke:#000000;stroke-width:5;stroke-miterlimit:10;" d="M590.109,285.875
|
||||
c0,8.061-13.343,14.583-29.833,14.583"/>
|
||||
<rect x="535" y="845" width="50.552" height="5"/>
|
||||
<rect x="535" y="855" width="50.552" height="5"/>
|
||||
<rect x="908.052" y="855" width="5" height="5"/>
|
||||
<rect x="207.5" y="855" width="5" height="5"/>
|
||||
<rect x="402.776" y="150" width="5" height="5"/>
|
||||
<rect x="712.776" y="150" width="5" height="5"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 10 KiB |
1
static/icon/moon-white.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#efefef" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-moon"><path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path></svg>
|
||||
|
After Width: | Height: | Size: 276 B |
1
static/icon/moon.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#181818" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-moon"><path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path></svg>
|
||||
|
After Width: | Height: | Size: 276 B |
1
static/icon/sun-white.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#efefef" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-sun"><circle cx="12" cy="12" r="5"></circle><line x1="12" y1="1" x2="12" y2="3"></line><line x1="12" y1="21" x2="12" y2="23"></line><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line><line x1="1" y1="12" x2="3" y2="12"></line><line x1="21" y1="12" x2="23" y2="12"></line><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line></svg>
|
||||
|
After Width: | Height: | Size: 645 B |
1
static/icon/sun.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#181818" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-sun"><circle cx="12" cy="12" r="5"></circle><line x1="12" y1="1" x2="12" y2="3"></line><line x1="12" y1="21" x2="12" y2="23"></line><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line><line x1="1" y1="12" x2="3" y2="12"></line><line x1="21" y1="12" x2="23" y2="12"></line><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line></svg>
|
||||
|
After Width: | Height: | Size: 645 B |
|
Before Width: | Height: | Size: 6.0 KiB |
39
tailwind.config.js
Normal file
@ -0,0 +1,39 @@
|
||||
module.exports = {
|
||||
darkMode: 'media',
|
||||
experimental: {
|
||||
darkModeVariant: true
|
||||
},
|
||||
purge: [
|
||||
'./components/**/*.{vue,js}',
|
||||
'./layouts/**/*.vue',
|
||||
'./pages/**/*.vue',
|
||||
'./plugins/**/*.{js,ts}',
|
||||
'./nuxt.config.{js,ts}'
|
||||
],
|
||||
theme: {
|
||||
extend: {},
|
||||
colors: {
|
||||
transparent: 'transparent',
|
||||
current: 'currentColor',
|
||||
gray: {
|
||||
darkest: '#181818',
|
||||
dark: '#202020',
|
||||
DEFAULT: '#4f4f4f',
|
||||
light: '#c0c0c0',
|
||||
lightest: '#efefef'
|
||||
}
|
||||
}
|
||||
},
|
||||
variants: {
|
||||
extend: {
|
||||
backgroundColor: ['checked'],
|
||||
borderColor: ['checked'],
|
||||
inset: ['checked'],
|
||||
zIndex: ['hover', 'active']
|
||||
}
|
||||
},
|
||||
plugins: [require('tailwindcss-dark-mode')()],
|
||||
future: {
|
||||
purgeLayersByDefault: true
|
||||
}
|
||||
}
|
||||
@ -1,9 +0,0 @@
|
||||
import { mount } from '@vue/test-utils'
|
||||
import Logo from '@/components/Logo.vue'
|
||||
|
||||
describe('Logo', () => {
|
||||
test('is a Vue instance', () => {
|
||||
const wrapper = mount(Logo)
|
||||
expect(wrapper.isVueInstance()).toBeTruthy()
|
||||
})
|
||||
})
|
||||
@ -1,36 +0,0 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"target": "es2018",
|
||||
"module": "esnext",
|
||||
"moduleResolution": "node",
|
||||
"lib": [
|
||||
"esnext",
|
||||
"esnext.asynciterable",
|
||||
"dom"
|
||||
],
|
||||
"esModuleInterop": true,
|
||||
"allowJs": true,
|
||||
"sourceMap": true,
|
||||
"strict": true,
|
||||
"noEmit": true,
|
||||
"experimentalDecorators": true,
|
||||
"baseUrl": ".",
|
||||
"paths": {
|
||||
"~/*": [
|
||||
"./*"
|
||||
],
|
||||
"@/*": [
|
||||
"./*"
|
||||
]
|
||||
},
|
||||
"types": [
|
||||
"@types/node",
|
||||
"@nuxt/types"
|
||||
]
|
||||
},
|
||||
"exclude": [
|
||||
"node_modules",
|
||||
".nuxt",
|
||||
"dist"
|
||||
]
|
||||
}
|
||||