Skip to content

Commit

Permalink
feat : 사이드바 템플릿
Browse files Browse the repository at this point in the history
  • Loading branch information
thalals committed Aug 1, 2024
1 parent d12d662 commit db5e778
Show file tree
Hide file tree
Showing 6 changed files with 120 additions and 35 deletions.
2 changes: 2 additions & 0 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
<link rel="icon" href="/favicon.ico">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Vite App</title>
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">

</head>
<body>
<div id="app"></div>
Expand Down
29 changes: 15 additions & 14 deletions src/App.vue
Original file line number Diff line number Diff line change
@@ -1,23 +1,24 @@
<script setup>
import { RouterLink, RouterView } from 'vue-router'
</script>

<template>
<header>
<img alt="Vue logo" class="logo" src="@/assets/falling_logo.png" width="125" height="125" />

<nav>
<router-link to="/">Home</router-link> |
<router-link to="/grid-system">About</router-link>
</nav>
<div class="app">
<side-bar />
</div>

<div class="main">
<router-link to="/">Home</router-link>
|
<router-link to="/grid-system">About</router-link>
</div>

</header>
<router-view />

<router-view />
</template>

<style lang="scss">
<script setup>
import { RouterLink, RouterView } from 'vue-router'
import SideBar from '@/components/SideBar.vue'
</script>

<style lang="scss">
</style>
19 changes: 0 additions & 19 deletions src/assets/main.css

This file was deleted.

41 changes: 41 additions & 0 deletions src/assets/main.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
:root {
--primary: #4ade80;
--primary-alt: #22c55e;
--grey: #64748b;
--dark: #1e293b;
--dark-alt: #334155;
--light: #f1f5f9;
--sidebar-width: 300px;
}

* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: 'Fira sans', sans-serif;
}

body {
background: var(--light);
}

button {
cursor: pointer;
appearance: none;
border: none;
outline: none;
background: none;
}

.app {
display: flex;

main {
flex: 1 1 0;
padding: 2rem;

@media (max-width: 1024px) {
padding-left: 6rem;
}
}
}
59 changes: 59 additions & 0 deletions src/components/SideBar.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
<template>
<aside :class="`${is_expanded ? 'is-expanded' : ''}`">
<div class="logo">
<img :src="logoURL" alt="Vue" />
</div>

<div class="menu-toggle-wrap">
<button class="menu-toggle" @click="ToggleMenu">
<span class="material-icons">keyboard_double_arrow_right</span>
</button>
</div>

<h3>Menu</h3>
<div class="menu">
<router-link to="/" class="button">
<span class="material-icons">home</span>
<span class="text">Home</span>
</router-link>
<router-link to="/about" class="button">
<span class="material-icons">description</span>
<span class="text">About</span>
</router-link>
<router-link to="/team" class="button">
<span class="material-icons">group</span>
<span class="text">Team</span>
</router-link>
<router-link to="/contact" class="button">
<span class="material-icons">email</span>
<span class="text">Contact</span>
</router-link>
</div>

<div class="flex"></div>

<div class="menu">
<router-link to="/logout" class="button">
<span class="material-icons">logout</span>
<span class="text">logout</span>
</router-link>
</div>
</aside>
</template>

<script setup>
import { ref } from 'vue'
import logoURL from '../assets/falling_logo.png'
const is_expanded = ref(localStorage.getItem("is_expanded") === "true")
const ToggleMenu = () => {
is_expanded.value = !is_expanded.value
localStorage.setItem("is_expanded", is_expanded.value)
}
</script>

<style lang="scss" scoped>
@import "../assets/css/SideBar.scss";
</style>
5 changes: 3 additions & 2 deletions src/main.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import './assets/main.css'
import './assets/main.scss'

import { createApp } from 'vue'
import App from './App.vue'
Expand All @@ -8,7 +8,8 @@ import router from './router'
import BootstrapVue3 from 'bootstrap-vue-3'
import 'bootstrap/dist/css/bootstrap.css'
import 'bootstrap-vue-3/dist/bootstrap-vue-3.css'
import "./assets/scss/common.scss";

// import "./assets/scss/common.scss";

const app = createApp(App)

Expand Down

0 comments on commit db5e778

Please sign in to comment.