added navigation tilebar

fix_layout
roberts 2023-04-28 08:10:47 +02:00
parent 99b4bda8fa
commit 8a047ae683
30 changed files with 168 additions and 267 deletions

1
dist/assets/BackView-b6732768.js vendored Normal file
View File

@ -0,0 +1 @@
import{_ as a,o as s,c as n,a as c}from"./index-eae96017.js";const o={},r={class:"back"},t=[c("h1",null,"Back",-1)];const e=a(o,[["render",function(a,c){return s(),n("div",r,t)}]]);export{e as default};

1
dist/assets/BicepsView-5fec685b.js vendored Normal file
View File

@ -0,0 +1 @@
import{_ as s,o as a,c as e,a as n}from"./index-eae96017.js";const c={},o={class:"biceps"},r=[n("h1",null,"Biceps",-1)];const t=s(c,[["render",function(s,n){return a(),e("div",o,r)}]]);export{t as default};

1
dist/assets/ChestView-9d092818.js vendored Normal file
View File

@ -0,0 +1 @@
import{_ as s,o as t,c as a,a as e}from"./index-eae96017.js";const n={},o={class:"chest"},r=[e("h1",null,"Chest",-1)];const c=s(n,[["render",function(s,e){return t(),a("div",o,r)}]]);export{c as default};

1
dist/assets/LegsView-71ded274.js vendored Normal file
View File

@ -0,0 +1 @@
import{_ as s,o as a,c as e,a as n}from"./index-eae96017.js";const o={},r={class:"legs"},t=[n("h1",null,"Legs",-1)];const c=s(o,[["render",function(s,n){return a(),e("div",r,t)}]]);export{c as default};

View File

@ -1 +0,0 @@
import{_ as a,o as s,c as n,a as o}from"./index-62554207.js";const t={},e={class:"about"},r=[o("h1",null,"This is an about page",-1)];const i=a(t,[["render",function(a,o){return s(),n("div",e,r)}]]);export{i as default};

1
dist/assets/ShoulderView-81107708.js vendored Normal file
View File

@ -0,0 +1 @@
import{_ as s,o,c as r,a}from"./index-eae96017.js";const e={},n={class:"shoulder"},t=[a("h1",null,"Shoulder",-1)];const d=s(e,[["render",function(s,a){return o(),r("div",n,t)}]]);export{d as default};

1
dist/assets/TricepsView-a41aee7a.js vendored Normal file
View File

@ -0,0 +1 @@
import{_ as s,o as n,c as t,a as r}from"./index-eae96017.js";const a={},e={class:"triceps"},o=[r("h1",null,[r("button",null,"Triceps")],-1)];const c=s(a,[["render",function(s,r){return n(),t("div",e,o)}]]);export{c as default};

File diff suppressed because one or more lines are too long

2
dist/assets/index-eae96017.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 261.76 226.69"><path d="M161.096.001l-30.225 52.351L100.647.001H-.005l130.877 226.688L261.749.001z" fill="#41b883"/><path d="M161.096.001l-30.225 52.351L100.647.001H52.346l78.526 136.01L209.398.001z" fill="#34495e"/></svg>

Before

Width:  |  Height:  |  Size: 276 B

2
dist/index.html vendored
View File

@ -1 +1 @@
<!doctype html><html lang="en"><head><meta charset="UTF-8"><link rel="icon" href="./favicon.ico"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Hello_World_Vue 01</title><script type="module" crossorigin src="./assets/index-62554207.js"></script></head><body><div id="app"></div></body></html>
<!doctype html><html lang="en"><head><meta charset="UTF-8"><link rel="icon" href="./favicon.ico"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Hello_World_Vue 01</title><script type="module" crossorigin src="./assets/index-eae96017.js"></script></head><body><div id="app"></div></body></html>

9
package-lock.json generated
View File

@ -9,6 +9,7 @@
"version": "0.0.0",
"dependencies": {
"pinia": "^2.0.32",
"uuid": "^9.0.0",
"vite-plugin-css-injected-by-js": "^3.1.0",
"vite-plugin-html": "^3.2.0",
"vue": "^3.2.47",
@ -3735,6 +3736,14 @@
"integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
"dev": true
},
"node_modules/uuid": {
"version": "9.0.0",
"resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz",
"integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==",
"bin": {
"uuid": "dist/bin/uuid"
}
},
"node_modules/vite": {
"version": "4.2.2",
"resolved": "https://registry.npmjs.org/vite/-/vite-4.2.2.tgz",

View File

@ -14,6 +14,7 @@
},
"dependencies": {
"pinia": "^2.0.32",
"uuid": "^9.0.0",
"vite-plugin-css-injected-by-js": "^3.1.0",
"vite-plugin-html": "^3.2.0",
"vue": "^3.2.47",

View File

@ -1,39 +1,26 @@
<script setup>
import { RouterLink, RouterView } from 'vue-router'
import HelloWorld from './components/HelloWorld.vue'
import { NavigationModel, Nav } from '@/components';
</script>
<template>
<header>
<img alt="Vue logo" class="logo" src="@/assets/logo.svg" width="125" height="125" />
<div class="wrapper">
<nav>
<RouterLink to="/">Home</RouterLink>
<RouterLink to="/chest">Chest</RouterLink>
<RouterLink to="/shoulder">Shoulder</RouterLink>
<RouterLink to="/legs">Legs</RouterLink>
<RouterLink to="/back">Back</RouterLink>
<RouterLink to="/biceps">Biceps</RouterLink>
<RouterLink to="/triceps">Triceps</RouterLink>
</nav>
<div class="app-container">
<NavigationModel />
<!-- <Nav /> -->
<div class="container pt-4 pb-4">
<router-view />
</div>
</div>
</header>
<RouterView />
</template>
<style scoped>
<style scoped lang="scss">
@import '/css/head.scss';
header {
line-height: 1.5;
max-height: 100vh;
}
.logo {
display: block;
margin: 0 auto 2rem;
}
nav {
width: 100%;
font-size: 12px;
@ -62,12 +49,8 @@ nav a:first-of-type {
@media (min-width: 1024px) {
header {
display: flex;
place-items: center;
padding-right: calc(var(--section-gap) / 2);
}
.logo {
margin: 0 2rem 0 0;
place-items: top;
padding-right: calc(var(--section-gap));
}
header .wrapper {
@ -77,8 +60,8 @@ nav a:first-of-type {
}
nav {
text-align: right;
margin-left: -1rem;
text-align: center;
margin-left: 2rem;
font-size: 1rem;
padding: 1rem 0;

View File

@ -1,43 +0,0 @@
<script setup>
defineProps({
msg: {
type: String,
required: true
}
})
</script>
<template>
<div class="greetings">
<h1 class="green">{{ msg }}</h1>
<h3>
Youve successfully created a project with
<a href="https://vitejs.dev/" target="_blank" rel="noopener">Vite</a> +
<a href="https://vuejs.org/" target="_blank" rel="noopener">Vue 3</a>.
</h3>
</div>
</template>
<style scoped>
h1 {
font-weight: 500;
font-size: 2.6rem;
top: -10px;
}
h3 {
font-size: 1.2rem;
}
.greetings h1,
.greetings h3 {
text-align: center;
}
@media (min-width: 1024px) {
.greetings h1,
.greetings h3 {
text-align: left;
}
}
</style>

2
src/components/Index.js Normal file
View File

@ -0,0 +1,2 @@
export { default as NavigationModel } from './NavigationModel.vue';
export { default as Nav } from './Nav.vue';

13
src/components/Nav.vue Normal file
View File

@ -0,0 +1,13 @@
<script setup>
</script>
<template>
<nav v-show="true" class="navbar navbar-expand navbar-dark bg-dark">
<div class="navbar-nav">
<router-link to="/" class="nav-item nav-link">Home</router-link>
<router-link to="/users" class="nav-item nav-link">Users</router-link>
<button @click="authStore.logout()" class="btn btn-link nav-item nav-link">Logout</button>
</div>
</nav>
</template>

View File

@ -0,0 +1,17 @@
<script setup>
</script>
<template>
<nav v-show="true" class="navbar navbar-expand navbar-dark bg-dark">
<div class="navbar-nav">
<router-link to="/" class="nav-item nav-link">HomeView</router-link>
<router-link to="/Muscles" class="nav-item nav-link">Legs</router-link>
<router-link to="/Muscles" class="nav-item nav-link">Back</router-link>
<router-link to="/Muscles" class="nav-item nav-link">Chest</router-link>
<router-link to="/Muscles" class="nav-item nav-link">Shoulder</router-link>
<router-link to="/Muscles" class="nav-item nav-link">Triceps</router-link>
<router-link to="/Muscles" class="nav-item nav-link">Bicepts</router-link>
</div>
</nav>
</template>

View File

@ -1,86 +0,0 @@
<script setup>
import WelcomeItem from './WelcomeItem.vue'
import DocumentationIcon from './icons/IconDocumentation.vue'
import ToolingIcon from './icons/IconTooling.vue'
import EcosystemIcon from './icons/IconEcosystem.vue'
import CommunityIcon from './icons/IconCommunity.vue'
import SupportIcon from './icons/IconSupport.vue'
</script>
<template>
<WelcomeItem>
<template #icon>
<DocumentationIcon />
</template>
<template #heading>Documentation</template>
Vues
<a href="https://vuejs.org/" target="_blank" rel="noopener">official documentation</a>
provides you with all information you need to get started.
</WelcomeItem>
<WelcomeItem>
<template #icon>
<ToolingIcon />
</template>
<template #heading>Tooling</template>
This project is served and bundled with
<a href="https://vitejs.dev/guide/features.html" target="_blank" rel="noopener">Vite</a>. The
recommended IDE setup is
<a href="https://code.visualstudio.com/" target="_blank" rel="noopener">VSCode</a> +
<a href="https://github.com/johnsoncodehk/volar" target="_blank" rel="noopener">Volar</a>. If
you need to test your components and web pages, check out
<a href="https://www.cypress.io/" target="_blank" rel="noopener">Cypress</a> and
<a href="https://on.cypress.io/component" target="_blank">Cypress Component Testing</a>.
<br />
More instructions are available in <code>README.md</code>.
</WelcomeItem>
<WelcomeItem>
<template #icon>
<EcosystemIcon />
</template>
<template #heading>Ecosystem</template>
Get official tools and libraries for your project:
<a href="https://pinia.vuejs.org/" target="_blank" rel="noopener">Pinia</a>,
<a href="https://router.vuejs.org/" target="_blank" rel="noopener">Vue Router</a>,
<a href="https://test-utils.vuejs.org/" target="_blank" rel="noopener">Vue Test Utils</a>, and
<a href="https://github.com/vuejs/devtools" target="_blank" rel="noopener">Vue Dev Tools</a>. If
you need more resources, we suggest paying
<a href="https://github.com/vuejs/awesome-vue" target="_blank" rel="noopener">Awesome Vue</a>
a visit.
</WelcomeItem>
<WelcomeItem>
<template #icon>
<CommunityIcon />
</template>
<template #heading>Community</template>
Got stuck? Ask your question on
<a href="https://chat.vuejs.org" target="_blank" rel="noopener">Vue Land</a>, our official
Discord server, or
<a href="https://stackoverflow.com/questions/tagged/vue.js" target="_blank" rel="noopener"
>StackOverflow</a
>. You should also subscribe to
<a href="https://news.vuejs.org" target="_blank" rel="noopener">our mailing list</a> and follow
the official
<a href="https://twitter.com/vuejs" target="_blank" rel="noopener">@vuejs</a>
twitter account for latest news in the Vue world.
</WelcomeItem>
<WelcomeItem>
<template #icon>
<SupportIcon />
</template>
<template #heading>Support Vue</template>
As an independent project, Vue relies on community backing for its sustainability. You can help
us by
<a href="https://vuejs.org/sponsor/" target="_blank" rel="noopener">becoming a sponsor</a>.
</WelcomeItem>
</template>

View File

@ -1,87 +0,0 @@
<template>
<div class="item">
<i>
<slot name="icon"></slot>
</i>
<div class="details">
<h3>
<slot name="heading"></slot>
</h3>
<slot>
<p></p>
</slot>
</div>
</div>
</template>
<style scoped>
.item {
margin-top: 2rem;
display: flex;
}
.details {
flex: 1;
margin-left: 1rem;
}
i {
display: flex;
place-items: center;
place-content: center;
width: 32px;
height: 32px;
color: var(--color-text);
}
h3 {
font-size: 1.2rem;
font-weight: 500;
margin-bottom: 0.4rem;
color: var(--color-heading);
}
@media (min-width: 1024px) {
.item {
margin-top: 0;
padding: 0.4rem 0 1rem calc(var(--section-gap) / 2);
}
i {
top: calc(50% - 25px);
left: -26px;
position: absolute;
border: 1px solid var(--color-border);
background: var(--color-background);
border-radius: 8px;
width: 50px;
height: 50px;
}
.item:before {
content: ' ';
border-left: 1px solid var(--color-border);
position: absolute;
left: 0;
bottom: calc(50% + 25px);
height: calc(50% - 25px);
}
.item:after {
content: ' ';
border-left: 1px solid var(--color-border);
position: absolute;
left: 0;
top: calc(50% + 25px);
height: calc(50% - 25px);
}
.item:first-of-type:before {
display: none;
}
.item:last-of-type:after {
display: none;
}
}
</style>

View File

@ -7,8 +7,10 @@ import router from './router'
import './assets/main.css'
const app = createApp(App)
app.use(createPinia())
app.use(router)
app.mount('#app')
window.addEventListener
('load',
() => app.mount('#app')
)

View File

@ -15,7 +15,7 @@ const router = createRouter({
// route level code-splitting
// this generates a separate chunk (About.[hash].js) for this route
// which is lazy-loaded when the route is visited.
component: () => import('../views/PushView.vue')
component: () => import('../views/Muscles/ChestView.vue')
},
{
path: '/shoulder',
@ -23,7 +23,7 @@ const router = createRouter({
// route level code-splitting
// this generates a separate chunk (About.[hash].js) for this route
// which is lazy-loaded when the route is visited.
component: () => import('../views/PushView.vue')
component: () => import('../views/Muscles/ShoulderView.vue')
},
{
path: '/legs',
@ -31,7 +31,7 @@ const router = createRouter({
// route level code-splitting
// this generates a separate chunk (About.[hash].js) for this route
// which is lazy-loaded when the route is visited.
component: () => import('../views/PushView.vue')
component: () => import('../views/Muscles/LegsView.vue')
},
{
path: '/back',
@ -39,7 +39,7 @@ const router = createRouter({
// route level code-splitting
// this generates a separate chunk (About.[hash].js) for this route
// which is lazy-loaded when the route is visited.
component: () => import('../views/PushView.vue')
component: () => import('../views/Muscles/BackView.vue')
},
{
path: '/biceps',
@ -47,15 +47,15 @@ const router = createRouter({
// route level code-splitting
// this generates a separate chunk (About.[hash].js) for this route
// which is lazy-loaded when the route is visited.
component: () => import('../views/PushView.vue')
component: () => import('../views/Muscles/BicepsView.vue')
},
{
path: '/triceps',
name: 'teiceps',
name: 'triceps',
// route level code-splitting
// this generates a separate chunk (About.[hash].js) for this route
// which is lazy-loaded when the route is visited.
component: () => import('../views/PushView.vue')
component: () => import('../views/Muscles/TricepsView.vue')
},
]
})

View File

@ -1,9 +1,9 @@
<script setup>
import TheWelcome from '../components/TheWelcome.vue'
</script>
<template>
<main>
<TheWelcome />
<h1 HomeView h1/>
</main>
</template>

View File

@ -0,0 +1,16 @@
<template>
<div class="back">
<h1>Back</h1>
</div>
</template>
<style>
@media (min-width: 1024px) {
.about {
min-height: 100vh;
display: flex;
align-items: center;
}
}
</style>

View File

@ -0,0 +1,16 @@
<template>
<div class="biceps">
<h1>Biceps</h1>
</div>
</template>
<style>
@media (min-width: 1024px) {
.about {
min-height: 100vh;
display: flex;
align-items: center;
}
}
</style>

View File

@ -1,6 +1,10 @@
<script setup>
</script>
<template>
<div class="about">
<h1>This is an about page</h1>
<div class="chest">
<h1>Chest</h1>
</div>
</template>

View File

@ -0,0 +1,16 @@
<template>
<div class="legs">
<h1>Legs</h1>
</div>
</template>
<style>
@media (min-width: 1024px) {
.about {
min-height: 100vh;
display: flex;
align-items: center;
}
}
</style>

View File

@ -0,0 +1,16 @@
<template>
<div class="shoulder">
<h1>Shoulder</h1>
</div>
</template>
<style>
@media (min-width: 1024px) {
.about {
min-height: 100vh;
display: flex;
align-items: center;
}
}
</style>

View File

@ -0,0 +1,16 @@
<template>
<div class="triceps">
<h1><button>Triceps</button></h1>
</div>
</template>
<style>
@media (min-width: 1024px) {
.about {
min-height: 100vh;
display: flex;
align-items: center;
}
}
</style>

View File

@ -21,7 +21,9 @@ export default defineConfig({
},
resolve: {
alias: {
'@': fileURLToPath(new URL('./src', import.meta.url))
'@': fileURLToPath(new URL('./src', import.meta.url)),
'/css': fileURLToPath(new URL('./src/css', import.meta.url)),
'config': fileURLToPath(new URL('./src/css/_config.scss', import.meta.url)),
}
}
})