forked from fr/deguapp
		
	Moving to vue
This commit is contained in:
		
							
								
								
									
										118
									
								
								frontend/package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										118
									
								
								frontend/package-lock.json
									
									
									
										generated
									
									
									
								
							@@ -19,6 +19,7 @@
 | 
				
			|||||||
        "eslint": "^8.49.0",
 | 
					        "eslint": "^8.49.0",
 | 
				
			||||||
        "eslint-plugin-vue": "^9.17.0",
 | 
					        "eslint-plugin-vue": "^9.17.0",
 | 
				
			||||||
        "prettier": "^3.0.3",
 | 
					        "prettier": "^3.0.3",
 | 
				
			||||||
 | 
					        "sass": "^1.69.5",
 | 
				
			||||||
        "vite": "^5.0.5"
 | 
					        "vite": "^5.0.5"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
@@ -1451,6 +1452,19 @@
 | 
				
			|||||||
        "node": ">=4"
 | 
					        "node": ">=4"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/anymatch": {
 | 
				
			||||||
 | 
					      "version": "3.1.3",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "dependencies": {
 | 
				
			||||||
 | 
					        "normalize-path": "^3.0.0",
 | 
				
			||||||
 | 
					        "picomatch": "^2.0.4"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">= 8"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "node_modules/argparse": {
 | 
					    "node_modules/argparse": {
 | 
				
			||||||
      "version": "2.0.1",
 | 
					      "version": "2.0.1",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
 | 
				
			||||||
@@ -1472,6 +1486,15 @@
 | 
				
			|||||||
        "node": ">=0.6"
 | 
					        "node": ">=0.6"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/binary-extensions": {
 | 
				
			||||||
 | 
					      "version": "2.2.0",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">=8"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "node_modules/boolbase": {
 | 
					    "node_modules/boolbase": {
 | 
				
			||||||
      "version": "1.0.0",
 | 
					      "version": "1.0.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
 | 
				
			||||||
@@ -1614,6 +1637,45 @@
 | 
				
			|||||||
        "node": ">=4"
 | 
					        "node": ">=4"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/chokidar": {
 | 
				
			||||||
 | 
					      "version": "3.5.3",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "funding": [
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					          "type": "individual",
 | 
				
			||||||
 | 
					          "url": "https://paulmillr.com/funding/"
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      ],
 | 
				
			||||||
 | 
					      "dependencies": {
 | 
				
			||||||
 | 
					        "anymatch": "~3.1.2",
 | 
				
			||||||
 | 
					        "braces": "~3.0.2",
 | 
				
			||||||
 | 
					        "glob-parent": "~5.1.2",
 | 
				
			||||||
 | 
					        "is-binary-path": "~2.1.0",
 | 
				
			||||||
 | 
					        "is-glob": "~4.0.1",
 | 
				
			||||||
 | 
					        "normalize-path": "~3.0.0",
 | 
				
			||||||
 | 
					        "readdirp": "~3.6.0"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">= 8.10.0"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "optionalDependencies": {
 | 
				
			||||||
 | 
					        "fsevents": "~2.3.2"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/chokidar/node_modules/glob-parent": {
 | 
				
			||||||
 | 
					      "version": "5.1.2",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "dependencies": {
 | 
				
			||||||
 | 
					        "is-glob": "^4.0.1"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">= 6"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "node_modules/color-convert": {
 | 
					    "node_modules/color-convert": {
 | 
				
			||||||
      "version": "1.9.3",
 | 
					      "version": "1.9.3",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
 | 
				
			||||||
@@ -2424,6 +2486,12 @@
 | 
				
			|||||||
        "node": ">= 4"
 | 
					        "node": ">= 4"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/immutable": {
 | 
				
			||||||
 | 
					      "version": "4.3.4",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.4.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA==",
 | 
				
			||||||
 | 
					      "dev": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "node_modules/import-fresh": {
 | 
					    "node_modules/import-fresh": {
 | 
				
			||||||
      "version": "3.3.0",
 | 
					      "version": "3.3.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
 | 
				
			||||||
@@ -2465,6 +2533,18 @@
 | 
				
			|||||||
      "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
 | 
					      "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
 | 
				
			||||||
      "dev": true
 | 
					      "dev": true
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/is-binary-path": {
 | 
				
			||||||
 | 
					      "version": "2.1.0",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "dependencies": {
 | 
				
			||||||
 | 
					        "binary-extensions": "^2.0.0"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">=8"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "node_modules/is-docker": {
 | 
					    "node_modules/is-docker": {
 | 
				
			||||||
      "version": "3.0.0",
 | 
					      "version": "3.0.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz",
 | 
				
			||||||
@@ -2798,6 +2878,15 @@
 | 
				
			|||||||
      "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==",
 | 
					      "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==",
 | 
				
			||||||
      "dev": true
 | 
					      "dev": true
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/normalize-path": {
 | 
				
			||||||
 | 
					      "version": "3.0.0",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">=0.10.0"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "node_modules/npm-run-path": {
 | 
					    "node_modules/npm-run-path": {
 | 
				
			||||||
      "version": "5.1.0",
 | 
					      "version": "5.1.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz",
 | 
				
			||||||
@@ -3087,6 +3176,18 @@
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
      ]
 | 
					      ]
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/readdirp": {
 | 
				
			||||||
 | 
					      "version": "3.6.0",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "dependencies": {
 | 
				
			||||||
 | 
					        "picomatch": "^2.2.1"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">=8.10.0"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "node_modules/resolve-from": {
 | 
					    "node_modules/resolve-from": {
 | 
				
			||||||
      "version": "4.0.0",
 | 
					      "version": "4.0.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
 | 
				
			||||||
@@ -3277,6 +3378,23 @@
 | 
				
			|||||||
        "queue-microtask": "^1.2.2"
 | 
					        "queue-microtask": "^1.2.2"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/sass": {
 | 
				
			||||||
 | 
					      "version": "1.69.5",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/sass/-/sass-1.69.5.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-qg2+UCJibLr2LCVOt3OlPhr/dqVHWOa9XtZf2OjbLs/T4VPSJ00udtgJxH3neXZm+QqX8B+3cU7RaLqp1iVfcQ==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
 | 
					      "dependencies": {
 | 
				
			||||||
 | 
					        "chokidar": ">=3.0.0 <4.0.0",
 | 
				
			||||||
 | 
					        "immutable": "^4.0.0",
 | 
				
			||||||
 | 
					        "source-map-js": ">=0.6.2 <2.0.0"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "bin": {
 | 
				
			||||||
 | 
					        "sass": "sass.js"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "engines": {
 | 
				
			||||||
 | 
					        "node": ">=14.0.0"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "node_modules/semver": {
 | 
					    "node_modules/semver": {
 | 
				
			||||||
      "version": "6.3.1",
 | 
					      "version": "6.3.1",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -22,6 +22,7 @@
 | 
				
			|||||||
    "eslint": "^8.49.0",
 | 
					    "eslint": "^8.49.0",
 | 
				
			||||||
    "eslint-plugin-vue": "^9.17.0",
 | 
					    "eslint-plugin-vue": "^9.17.0",
 | 
				
			||||||
    "prettier": "^3.0.3",
 | 
					    "prettier": "^3.0.3",
 | 
				
			||||||
 | 
					    "sass": "^1.69.5",
 | 
				
			||||||
    "vite": "^5.0.5"
 | 
					    "vite": "^5.0.5"
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,85 +1,35 @@
 | 
				
			|||||||
<script setup>
 | 
					<script setup>
 | 
				
			||||||
import { RouterLink, RouterView } from 'vue-router'
 | 
					import { RouterLink, RouterView } from 'vue-router'
 | 
				
			||||||
import HelloWorld from './components/HelloWorld.vue'
 | 
					 | 
				
			||||||
</script>
 | 
					</script>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<template>
 | 
					<template>
 | 
				
			||||||
  <header>
 | 
					  <header>
 | 
				
			||||||
    <img alt="Vue logo" class="logo" src="@/assets/logo.svg" width="125" height="125" />
 | 
					    <div class="nav-left">
 | 
				
			||||||
 | 
					      <RouterLink to="/">
 | 
				
			||||||
    <div class="wrapper">
 | 
					        <!-- <img src="/img/icons/beer.svg" alt="degu app home"> -->
 | 
				
			||||||
      <HelloWorld msg="You did it!" />
 | 
					        <span>Degu App</span>
 | 
				
			||||||
 | 
					      </RouterLink>
 | 
				
			||||||
      <nav>
 | 
					    </div>
 | 
				
			||||||
        <RouterLink to="/">Home</RouterLink>
 | 
					    <div class="nav-right">
 | 
				
			||||||
        <RouterLink to="/about">About</RouterLink>
 | 
					      <div class="nav-item nav-add">
 | 
				
			||||||
      </nav>
 | 
					        <!-- <img src="/img/icons/plus.svg" alt="add beer or review"> -->
 | 
				
			||||||
 | 
					        +
 | 
				
			||||||
 | 
					      </div>
 | 
				
			||||||
 | 
					      <div class="nav-item nav-user">
 | 
				
			||||||
 | 
					        <!-- <img src="/img/icons/user.svg" alt="user icon"> -->
 | 
				
			||||||
 | 
					        <a href="#">Test Testovic</a>
 | 
				
			||||||
 | 
					      </div>
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
  </header>
 | 
					  </header>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  <RouterView />
 | 
					  <main class="content">
 | 
				
			||||||
 | 
					    <RouterView />
 | 
				
			||||||
 | 
					  </main>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  <!-- <footer>
 | 
				
			||||||
 | 
					    <a href="https://git.filiprojek.cz/fr/deguapp">Source</a>
 | 
				
			||||||
 | 
					    <a href="http://filiprojek.cz/">(c) Filip Rojek, 2023</a>
 | 
				
			||||||
 | 
					  </footer> -->
 | 
				
			||||||
</template>
 | 
					</template>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<style scoped>
 | 
					<style scoped></style>
 | 
				
			||||||
header {
 | 
					 | 
				
			||||||
  line-height: 1.5;
 | 
					 | 
				
			||||||
  max-height: 100vh;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.logo {
 | 
					 | 
				
			||||||
  display: block;
 | 
					 | 
				
			||||||
  margin: 0 auto 2rem;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
nav {
 | 
					 | 
				
			||||||
  width: 100%;
 | 
					 | 
				
			||||||
  font-size: 12px;
 | 
					 | 
				
			||||||
  text-align: center;
 | 
					 | 
				
			||||||
  margin-top: 2rem;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
nav a.router-link-exact-active {
 | 
					 | 
				
			||||||
  color: var(--color-text);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
nav a.router-link-exact-active:hover {
 | 
					 | 
				
			||||||
  background-color: transparent;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
nav a {
 | 
					 | 
				
			||||||
  display: inline-block;
 | 
					 | 
				
			||||||
  padding: 0 1rem;
 | 
					 | 
				
			||||||
  border-left: 1px solid var(--color-border);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
nav a:first-of-type {
 | 
					 | 
				
			||||||
  border: 0;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
@media (min-width: 1024px) {
 | 
					 | 
				
			||||||
  header {
 | 
					 | 
				
			||||||
    display: flex;
 | 
					 | 
				
			||||||
    place-items: center;
 | 
					 | 
				
			||||||
    padding-right: calc(var(--section-gap) / 2);
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  .logo {
 | 
					 | 
				
			||||||
    margin: 0 2rem 0 0;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  header .wrapper {
 | 
					 | 
				
			||||||
    display: flex;
 | 
					 | 
				
			||||||
    place-items: flex-start;
 | 
					 | 
				
			||||||
    flex-wrap: wrap;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  nav {
 | 
					 | 
				
			||||||
    text-align: left;
 | 
					 | 
				
			||||||
    margin-left: -1rem;
 | 
					 | 
				
			||||||
    font-size: 1rem;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    padding: 1rem 0;
 | 
					 | 
				
			||||||
    margin-top: 1rem;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
</style>
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										49
									
								
								frontend/src/assets/_general.scss
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										49
									
								
								frontend/src/assets/_general.scss
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,49 @@
 | 
				
			|||||||
 | 
					* {
 | 
				
			||||||
 | 
					  padding: 0;
 | 
				
			||||||
 | 
					  margin: 0;
 | 
				
			||||||
 | 
					  box-sizing: border-box;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					body {
 | 
				
			||||||
 | 
					  font-family: OpenSans Roboto sans-serif;
 | 
				
			||||||
 | 
					  background-color: var(--blue-space);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					a {
 | 
				
			||||||
 | 
					  text-decoration: none;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.flex {
 | 
				
			||||||
 | 
					  display: flex;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.f-row {
 | 
				
			||||||
 | 
					  display: flex;
 | 
				
			||||||
 | 
					  flex-direction: row;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.f-col {
 | 
				
			||||||
 | 
					  display: flex;
 | 
				
			||||||
 | 
					  flex-direction: column;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.f-center {
 | 
				
			||||||
 | 
					  display: flex;
 | 
				
			||||||
 | 
					  justify-content: center;
 | 
				
			||||||
 | 
					  align-items: center;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.main-wrapper {
 | 
				
			||||||
 | 
					  padding: 0 0.5rem;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.hidden {
 | 
				
			||||||
 | 
					  display: none;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.abs-center {
 | 
				
			||||||
 | 
					  position: absolute;
 | 
				
			||||||
 | 
					  transform: translateX(-50%) translateY(-50%);
 | 
				
			||||||
 | 
					  left: 50%;
 | 
				
			||||||
 | 
					  top: 50%;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										8
									
								
								frontend/src/assets/_vars.scss
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								frontend/src/assets/_vars.scss
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,8 @@
 | 
				
			|||||||
 | 
					:root {
 | 
				
			||||||
 | 
					    --black-midnight: #040506;
 | 
				
			||||||
 | 
					    --blue-space: #0a0d10;
 | 
				
			||||||
 | 
					    --blue-shadow: #162129;
 | 
				
			||||||
 | 
					    --blue-oceanic: #23455b;
 | 
				
			||||||
 | 
					    --gray-steel: #223440;
 | 
				
			||||||
 | 
					    --red-rustic: #591b12;    
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -1,86 +0,0 @@
 | 
				
			|||||||
/* color palette from <https://github.com/vuejs/theme> */
 | 
					 | 
				
			||||||
:root {
 | 
					 | 
				
			||||||
  --vt-c-white: #ffffff;
 | 
					 | 
				
			||||||
  --vt-c-white-soft: #f8f8f8;
 | 
					 | 
				
			||||||
  --vt-c-white-mute: #f2f2f2;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  --vt-c-black: #181818;
 | 
					 | 
				
			||||||
  --vt-c-black-soft: #222222;
 | 
					 | 
				
			||||||
  --vt-c-black-mute: #282828;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  --vt-c-indigo: #2c3e50;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  --vt-c-divider-light-1: rgba(60, 60, 60, 0.29);
 | 
					 | 
				
			||||||
  --vt-c-divider-light-2: rgba(60, 60, 60, 0.12);
 | 
					 | 
				
			||||||
  --vt-c-divider-dark-1: rgba(84, 84, 84, 0.65);
 | 
					 | 
				
			||||||
  --vt-c-divider-dark-2: rgba(84, 84, 84, 0.48);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  --vt-c-text-light-1: var(--vt-c-indigo);
 | 
					 | 
				
			||||||
  --vt-c-text-light-2: rgba(60, 60, 60, 0.66);
 | 
					 | 
				
			||||||
  --vt-c-text-dark-1: var(--vt-c-white);
 | 
					 | 
				
			||||||
  --vt-c-text-dark-2: rgba(235, 235, 235, 0.64);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/* semantic color variables for this project */
 | 
					 | 
				
			||||||
:root {
 | 
					 | 
				
			||||||
  --color-background: var(--vt-c-white);
 | 
					 | 
				
			||||||
  --color-background-soft: var(--vt-c-white-soft);
 | 
					 | 
				
			||||||
  --color-background-mute: var(--vt-c-white-mute);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  --color-border: var(--vt-c-divider-light-2);
 | 
					 | 
				
			||||||
  --color-border-hover: var(--vt-c-divider-light-1);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  --color-heading: var(--vt-c-text-light-1);
 | 
					 | 
				
			||||||
  --color-text: var(--vt-c-text-light-1);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  --section-gap: 160px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
@media (prefers-color-scheme: dark) {
 | 
					 | 
				
			||||||
  :root {
 | 
					 | 
				
			||||||
    --color-background: var(--vt-c-black);
 | 
					 | 
				
			||||||
    --color-background-soft: var(--vt-c-black-soft);
 | 
					 | 
				
			||||||
    --color-background-mute: var(--vt-c-black-mute);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    --color-border: var(--vt-c-divider-dark-2);
 | 
					 | 
				
			||||||
    --color-border-hover: var(--vt-c-divider-dark-1);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    --color-heading: var(--vt-c-text-dark-1);
 | 
					 | 
				
			||||||
    --color-text: var(--vt-c-text-dark-2);
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
*,
 | 
					 | 
				
			||||||
*::before,
 | 
					 | 
				
			||||||
*::after {
 | 
					 | 
				
			||||||
  box-sizing: border-box;
 | 
					 | 
				
			||||||
  margin: 0;
 | 
					 | 
				
			||||||
  font-weight: normal;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
body {
 | 
					 | 
				
			||||||
  min-height: 100vh;
 | 
					 | 
				
			||||||
  color: var(--color-text);
 | 
					 | 
				
			||||||
  background: var(--color-background);
 | 
					 | 
				
			||||||
  transition:
 | 
					 | 
				
			||||||
    color 0.5s,
 | 
					 | 
				
			||||||
    background-color 0.5s;
 | 
					 | 
				
			||||||
  line-height: 1.6;
 | 
					 | 
				
			||||||
  font-family:
 | 
					 | 
				
			||||||
    Inter,
 | 
					 | 
				
			||||||
    -apple-system,
 | 
					 | 
				
			||||||
    BlinkMacSystemFont,
 | 
					 | 
				
			||||||
    'Segoe UI',
 | 
					 | 
				
			||||||
    Roboto,
 | 
					 | 
				
			||||||
    Oxygen,
 | 
					 | 
				
			||||||
    Ubuntu,
 | 
					 | 
				
			||||||
    Cantarell,
 | 
					 | 
				
			||||||
    'Fira Sans',
 | 
					 | 
				
			||||||
    'Droid Sans',
 | 
					 | 
				
			||||||
    'Helvetica Neue',
 | 
					 | 
				
			||||||
    sans-serif;
 | 
					 | 
				
			||||||
  font-size: 15px;
 | 
					 | 
				
			||||||
  text-rendering: optimizeLegibility;
 | 
					 | 
				
			||||||
  -webkit-font-smoothing: antialiased;
 | 
					 | 
				
			||||||
  -moz-osx-font-smoothing: grayscale;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@@ -1,35 +0,0 @@
 | 
				
			|||||||
@import './base.css';
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#app {
 | 
					 | 
				
			||||||
  max-width: 1280px;
 | 
					 | 
				
			||||||
  margin: 0 auto;
 | 
					 | 
				
			||||||
  padding: 2rem;
 | 
					 | 
				
			||||||
  font-weight: normal;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
a,
 | 
					 | 
				
			||||||
.green {
 | 
					 | 
				
			||||||
  text-decoration: none;
 | 
					 | 
				
			||||||
  color: hsla(160, 100%, 37%, 1);
 | 
					 | 
				
			||||||
  transition: 0.4s;
 | 
					 | 
				
			||||||
  padding: 3px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
@media (hover: hover) {
 | 
					 | 
				
			||||||
  a:hover {
 | 
					 | 
				
			||||||
    background-color: hsla(160, 100%, 37%, 0.2);
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
@media (min-width: 1024px) {
 | 
					 | 
				
			||||||
  body {
 | 
					 | 
				
			||||||
    display: flex;
 | 
					 | 
				
			||||||
    place-items: center;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  #app {
 | 
					 | 
				
			||||||
    display: grid;
 | 
					 | 
				
			||||||
    grid-template-columns: 1fr 1fr;
 | 
					 | 
				
			||||||
    padding: 0 2rem;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
							
								
								
									
										11
									
								
								frontend/src/assets/nav.scss
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								frontend/src/assets/nav.scss
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,11 @@
 | 
				
			|||||||
 | 
					header {
 | 
				
			||||||
 | 
					  width: 100vw;
 | 
				
			||||||
 | 
					  padding: 2rem 1rem;
 | 
				
			||||||
 | 
					  background-color: var(--blue-shadow);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					header,
 | 
				
			||||||
 | 
					header > * {
 | 
				
			||||||
 | 
					  display: flex;
 | 
				
			||||||
 | 
					  justify-content: space-between;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										5
									
								
								frontend/src/components/AppHeader.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								frontend/src/components/AppHeader.vue
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,5 @@
 | 
				
			|||||||
 | 
					<template>
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					</template>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<style></style>
 | 
				
			||||||
@@ -1,5 +1,6 @@
 | 
				
			|||||||
import './assets/main.css'
 | 
					import './assets/_general.scss'
 | 
				
			||||||
 | 
					import './assets/_vars.scss'
 | 
				
			||||||
 | 
					import './assets/nav.scss'
 | 
				
			||||||
import { createApp } from 'vue'
 | 
					import { createApp } from 'vue'
 | 
				
			||||||
import App from './App.vue'
 | 
					import App from './App.vue'
 | 
				
			||||||
import router from './router'
 | 
					import router from './router'
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,13 +1,13 @@
 | 
				
			|||||||
import { createRouter, createWebHistory } from 'vue-router'
 | 
					import { createRouter, createWebHistory } from 'vue-router'
 | 
				
			||||||
import HomeView from '../views/HomeView.vue'
 | 
					import BeerView from '../views/BeerView.vue'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const router = createRouter({
 | 
					const router = createRouter({
 | 
				
			||||||
  history: createWebHistory(import.meta.env.BASE_URL),
 | 
					  history: createWebHistory(import.meta.env.BASE_URL),
 | 
				
			||||||
  routes: [
 | 
					  routes: [
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      path: '/',
 | 
					      path: '/',
 | 
				
			||||||
      name: 'home',
 | 
					      name: 'beer',
 | 
				
			||||||
      component: HomeView
 | 
					      component: BeerView
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      path: '/about',
 | 
					      path: '/about',
 | 
				
			||||||
@@ -16,6 +16,11 @@ const router = createRouter({
 | 
				
			|||||||
      // this generates a separate chunk (About.[hash].js) for this route
 | 
					      // this generates a separate chunk (About.[hash].js) for this route
 | 
				
			||||||
      // which is lazy-loaded when the route is visited.
 | 
					      // which is lazy-loaded when the route is visited.
 | 
				
			||||||
      component: () => import('../views/AboutView.vue')
 | 
					      component: () => import('../views/AboutView.vue')
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					      path: '/beer',
 | 
				
			||||||
 | 
					      name: 'beer',
 | 
				
			||||||
 | 
					      component: BeerView
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  ]
 | 
					  ]
 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										41
									
								
								frontend/src/views/BeerView.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										41
									
								
								frontend/src/views/BeerView.vue
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,41 @@
 | 
				
			|||||||
 | 
					<template>
 | 
				
			||||||
 | 
					  <section class="card-wrapper f-center" style="">
 | 
				
			||||||
 | 
					  <!-- <?php
 | 
				
			||||||
 | 
					  if(Router::getID() == null) {
 | 
				
			||||||
 | 
					  for ($i=0; $i < 8; $i++) { 
 | 
				
			||||||
 | 
					  ?> -->
 | 
				
			||||||
 | 
					  	<div class="card card-beer f-col">
 | 
				
			||||||
 | 
					  		<img width="200px" id="<?= $i ?>" src="https://live.staticflickr.com/65535/49818361653_351771faae_h.jpg" alt="beer image">
 | 
				
			||||||
 | 
					  		<h2>Beer Name</h2>
 | 
				
			||||||
 | 
					  		<p>12 Degree</p>
 | 
				
			||||||
 | 
					  	</div>
 | 
				
			||||||
 | 
					  <!-- <?php
 | 
				
			||||||
 | 
					  }} else { ?> -->
 | 
				
			||||||
 | 
					  	<div class="card card-beer f-col">
 | 
				
			||||||
 | 
					  		<img width="200px" id="<?= $i ?>" src="https://live.staticflickr.com/65535/49818361653_351771faae_h.jpg" alt="beer image">
 | 
				
			||||||
 | 
					  		<h2>Beer Name</h2>
 | 
				
			||||||
 | 
					  		<p>12 Degree</p>
 | 
				
			||||||
 | 
					  	</div>
 | 
				
			||||||
 | 
					  <!-- <?php
 | 
				
			||||||
 | 
					  }?> -->
 | 
				
			||||||
 | 
					  </section>
 | 
				
			||||||
 | 
					</template>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<style>
 | 
				
			||||||
 | 
					.main-wrapper h1 {
 | 
				
			||||||
 | 
						text-align: center;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.card-wrapper {
 | 
				
			||||||
 | 
						display: flex;
 | 
				
			||||||
 | 
						flex-wrap: wrap;
 | 
				
			||||||
 | 
						gap: 2rem;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					.card {
 | 
				
			||||||
 | 
						width: 15rem;
 | 
				
			||||||
 | 
						box-shadow: rgba(0, 0, 0, 0.24) 0px 3px 8px;
 | 
				
			||||||
 | 
						padding: .5rem;
 | 
				
			||||||
 | 
						cursor: pointer;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					</style>
 | 
				
			||||||
							
								
								
									
										5
									
								
								frontend/src/views/TestView.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								frontend/src/views/TestView.vue
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,5 @@
 | 
				
			|||||||
 | 
					<template>
 | 
				
			||||||
 | 
					  <section>
 | 
				
			||||||
 | 
					    Test Page
 | 
				
			||||||
 | 
					  </section>
 | 
				
			||||||
 | 
					</template>
 | 
				
			||||||
		Reference in New Issue
	
	Block a user