diff options
| author | Furkan Sahin <furkan-dev@proton.me> | 2021-04-13 12:49:14 -0500 |
|---|---|---|
| committer | Furkan Sahin <furkan-dev@proton.me> | 2021-04-13 12:49:14 -0500 |
| commit | 65d0dbb9b3388e03c312c1dd456feeef740289e0 (patch) | |
| tree | 9916793d0b760eb62b4102ca151c4802ea6e44ee /src | |
| parent | 6a152d5cf5f35bc58fc4b659fe6edcb6f94f760c (diff) | |
Start styling and add initial dark mode support
Diffstat (limited to 'src')
| -rw-r--r-- | src/App.vue | 15 | ||||
| -rw-r--r-- | src/components/ActionBar.vue | 27 | ||||
| -rw-r--r-- | src/components/EditorLists.vue | 5 | ||||
| -rw-r--r-- | src/components/FileUpload.vue | 8 | ||||
| -rw-r--r-- | src/components/List.vue | 8 | ||||
| -rw-r--r-- | src/router/index.ts | 6 | ||||
| -rw-r--r-- | src/views/About.vue | 31 | ||||
| -rw-r--r-- | src/views/Editor.vue | 14 | ||||
| -rw-r--r-- | src/views/Start.vue | 53 |
9 files changed, 113 insertions, 54 deletions
diff --git a/src/App.vue b/src/App.vue index 34945a9..481fa7d 100644 --- a/src/App.vue +++ b/src/App.vue @@ -3,16 +3,27 @@ </template> <style> +*, *:before, *:after { + box-sizing: inherit; +} + html { box-sizing: border-box; } -*, *:before, *:after { - box-sizing: inherit; +html, body { + margin: 0; + padding: 0; } #app { height: 100vh; max-height: 100vh; } + +@media (prefers-color-scheme: dark) { + body { + background-color: #121212; + } +} </style> diff --git a/src/components/ActionBar.vue b/src/components/ActionBar.vue index 96dbaae..da70b8a 100644 --- a/src/components/ActionBar.vue +++ b/src/components/ActionBar.vue @@ -1,25 +1,26 @@ <template> - <div> - <file-upload + <div id="action-bar"> + <FileUpload + :accept="'application/json'" + @fileChanged="handleLabChange">Import Lab Schedule</FileUpload> + <FileUpload :accept="'text/plain'" :multiple="true" - @file-changed="handlePtChange">Upload PT Schedule</file-upload> - <file-upload - :accept="'application/json'" - @file-changed="handleLabChange">Upload Lab Schedule</file-upload> - <button @click="save">Export</button> + @fileChanged="handlePtChange">Upload PT Schedule</FileUpload> + <UIButton @click="save">Export</UIButton> </div> </template> <script> import FileUpload from '@/components/FileUpload.vue'; - import { parseLabFile, parsePtSchedule } from '@/features/parser'; +import UIButton from '@/components/UIButton.vue'; export default { name: 'ActionBar', components: { FileUpload, + UIButton, }, methods: { handleLabChange(files) { @@ -73,3 +74,13 @@ export default { }, }; </script> + +<style> +#action-bar > * { + margin-left: 0.5rem; +} + +#action-bar > *:first-child { + margin-left: 0; +} +</style> diff --git a/src/components/EditorLists.vue b/src/components/EditorLists.vue index ae0aa22..26e0ecc 100644 --- a/src/components/EditorLists.vue +++ b/src/components/EditorLists.vue @@ -1,5 +1,5 @@ <template> - <div id="editor"> + <div id="editor-lists"> <div class="column"> <list :items="peerTeachers" @selection-changed="handlePtClick" #default="pt"> {{ pt.item.name }} <button @click.stop="deletePeerTeacher(pt.item.id)">X</button> @@ -84,9 +84,10 @@ export default defineComponent({ </script> <style> -#editor { +#editor-lists { display: flex; max-height: inherit; + min-height: 0; } .column { diff --git a/src/components/FileUpload.vue b/src/components/FileUpload.vue index b2fdb14..a70e18d 100644 --- a/src/components/FileUpload.vue +++ b/src/components/FileUpload.vue @@ -30,7 +30,7 @@ export default { background-color: #500000; color: white; font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; - padding: 5px; + padding: 0.5em; text-align: center; } @@ -38,4 +38,10 @@ export default { color: grey; cursor: pointer; } + +@media (prefers-color-scheme: dark) { + .file-upload-lbl { + background-color: #81302b; + } +} </style> diff --git a/src/components/List.vue b/src/components/List.vue index 031f708..843370e 100644 --- a/src/components/List.vue +++ b/src/components/List.vue @@ -28,7 +28,6 @@ export default { } .list-item { - border: 1px solid grey; border-radius: 5px; margin: 5px 0; padding: 0.15em; @@ -38,4 +37,11 @@ export default { .list-item:hover { background-color: rgb(182, 182, 182); } + +@media (prefers-color-scheme: dark) { + .list-item { + background-color: #303030; + color: white; + } +} </style> diff --git a/src/router/index.ts b/src/router/index.ts index 7a598b3..a36cb7e 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -1,12 +1,12 @@ import { createRouter, createWebHashHistory } from 'vue-router'; import Editor from '../views/Editor.vue'; -import About from '../views/About.vue'; +import Start from '../views/Start.vue'; const routes = [ { path: '/', - name: 'About', - component: About, + name: 'Start', + component: Start, }, { path: '/editor', diff --git a/src/views/About.vue b/src/views/About.vue deleted file mode 100644 index ac2bde1..0000000 --- a/src/views/About.vue +++ /dev/null @@ -1,31 +0,0 @@ -<template> - <div class="about"> - <router-link to="/editor">Create new database</router-link> - <file-upload - :accept="'application/json'" - @file-changed="handleDatabaseChange">Use existing database</file-upload> - </div> -</template> - -<script lang="ts"> -import { defineComponent } from 'vue'; -import FileUpload from '../components/FileUpload.vue'; - -import { parsePtDatabase } from '../features/parser'; - -export default defineComponent({ - name: 'About', - components: { - FileUpload, - }, - methods: { - handleDatabaseChange(files: File[]) { - parsePtDatabase(files[0]).then((result) => { - this.$store.commit('setLabs', result.labs); - this.$store.commit('setPeerTeachers', result.peerTeachers); - this.$router.push({ name: 'Editor' }); - }); - }, - }, -}); -</script> diff --git a/src/views/Editor.vue b/src/views/Editor.vue index b4a2e8e..982ff90 100644 --- a/src/views/Editor.vue +++ b/src/views/Editor.vue @@ -1,16 +1,16 @@ <template> - <div id="home"> - <action-bar /> - <editor-lists :peerTeachers="peerTeachers" :labs="labs" /> + <div id="editor"> + <ActionBar /> + <EditorLists :peerTeachers="peerTeachers" :labs="labs" /> </div> </template> <script lang="ts"> -import { defineComponent } from 'vue'; import ActionBar from '@/components/ActionBar.vue'; +import { defineComponent } from 'vue'; import EditorLists from '@/components/EditorLists.vue'; -import PeerTeacher from '@/models/PeerTeacher'; import Lab from '@/models/Lab'; +import PeerTeacher from '@/models/PeerTeacher'; export default defineComponent({ name: 'Editor', @@ -32,7 +32,9 @@ export default defineComponent({ </script> <style> -#home { +#editor { + display: flex; + flex-direction: column; max-height: inherit; } </style> diff --git a/src/views/Start.vue b/src/views/Start.vue new file mode 100644 index 0000000..567582d --- /dev/null +++ b/src/views/Start.vue @@ -0,0 +1,53 @@ +<template> + <div id="start"> + <router-link to="/editor"> + <UIButton>Create new database</UIButton> + </router-link> + <FileUpload + :accept="'application/json'" + @fileChanged="handleDatabaseChange">Use existing database</FileUpload> + </div> +</template> + +<script lang="ts"> +import { defineComponent } from 'vue'; +import FileUpload from '@/components/FileUpload.vue'; +import { parsePtDatabase } from '@/features/parser'; +import UIButton from '@/components/UIButton.vue'; + +export default defineComponent({ + name: 'Start', + components: { + FileUpload, + UIButton, + }, + methods: { + handleDatabaseChange(files: File[]) { + parsePtDatabase(files[0]).then((result) => { + this.$store.commit('setLabs', result.labs); + this.$store.commit('setPeerTeachers', result.peerTeachers); + this.$router.push({ name: 'Editor' }); + }); + }, + }, +}); +</script> + +<style> +#start { + align-items: center; + display: flex; + flex-direction: column; + font-size: 1.5rem; + height: 100vh; + justify-content: center; +} + +#start > * { + margin-top: 1em; +} + +#start > *:first-child { + margin-top: 0; +} +</style> |
