From 62a7fcb2dce7362c887db9e20d22c8adab79a9ad Mon Sep 17 00:00:00 2001 From: Troplo Date: Thu, 28 Jan 2021 18:35:37 +1100 Subject: [PATCH] Working on Forums --- src/assets/scss/variables.scss | 255 ++++++++++++++++++++++++++++++++ src/router/index.js | 10 ++ src/views/ForumThread.vue | 55 +++++++ src/views/ForumThreadCreate.vue | 15 ++ src/views/Forums.vue | 167 +++++++++++++++++---- src/views/Home.vue | 88 ++++++----- 6 files changed, 526 insertions(+), 64 deletions(-) create mode 100644 src/assets/scss/variables.scss create mode 100644 src/views/ForumThread.vue create mode 100644 src/views/ForumThreadCreate.vue diff --git a/src/assets/scss/variables.scss b/src/assets/scss/variables.scss new file mode 100644 index 0000000..9531b29 --- /dev/null +++ b/src/assets/scss/variables.scss @@ -0,0 +1,255 @@ +$font--role-default: 'Lato', sans-serif; +$font--role-emphasis: 'Lato', sans-serif; + +$color__text--primary: rgba(0, 0, 0, 0.87); +$color__text--secondary: rgba(0, 0, 0, 0.54); + +$color__lightgray--primary: #F5F5F5; +$color__lightgray--darker: #EEEEEE; +$color__lightgray--darkest: #E0E0E0; + +$color__gray--primary: #e7e2e2; +$color__gray--darker: #E0E0E0; +$color__gray--darkest: #BDBDBD; + +$color__darkgray--primary: #757575; +$color__darkgray--darker: #525252; +$color__darkgray--darkest: #424242; + +$color__orange--primary: #F57C00; +$color__orange--darker: #EF6C00; +$color__orange--darkest: #de621c; + +$color__green--primary: rgba(76, 175, 80, 0.86); +$color__green--darker: #349238; +$color__green--darkest: #1B5E20; + +$color__blue--primary: #0a8bff; +$color__blue--darker: #0079E5; +$color__blue--darkest: #0D47A1; + +$color__red--primary: #e74860; +$color__red--darker: #B71C1C; + +// Kaverti Extras +$primary: #24a2dc; +$booster: #fa6ef6; +$booster-alt: #e655d4; + +//Breakpoints +$breakpoint--large_screen: 1200px; +$breakpoint--tablet: 870px; +$breakpoint--phone: 550px; + +//Breakpoints +$breakpoint--large_screen-thread: 1150px; +$breakpoint--tablet-thread: 850px; +$breakpoint--phone-thread: 500px; + +@mixin thread_mobile_breakpoint ($selector) { + @media (max-width: 1150px) and (min-width: $breakpoint--tablet-thread) { + #{selector} { + width: calc(80% - 5rem); + } + } + @media (max-width: $breakpoint--phone-thread) { + #{$selector} { + border-radius: 0; + border-left: 0; + border-right: 0; + } + } + @media (min-width: $breakpoint--tablet-thread) and (max-width: 1150px) { + #{$selector} { + width: calc(80% - 5rem); + } + } + @media (min-width: $breakpoint--phone-thread) and (max-width: $breakpoint--tablet-thread) { + #{$selector} { + margin-left: 2rem; + margin-riɡht: 2rem; + width: calc(100% - 4rem); + } + } + @media (max-width: $breakpoint--phone-thread) { + #{$selector} { + width: 100%; + border-left: 0; + border-right: 0; + border-radius: 0; + } + } +} + +@keyframes flash { + 0% { + background-color: $color__gray--darker; + } + 50% { + background-color: $color__lightgray--darkest; + } + 75% { + background-color: $color__gray--primary; + } + to { + background-color: $color__gray--darker; + } +} + +@mixin flash { + animation-name: flash; + animation-duration: 1s; + animation-iteration-count: infinite; + animation-timing-function: linear; +} + +@mixin loading-overlay($background-color: #fff, $border-radius: 0.25rem) { + width: 100%; + height: 100%; + position: absolute; + background-color: $background-color; + z-index: 1; + top: 0; + position: absolute; + display: flex; + align-items: center; + justify-content: center; + opacity: 0; + pointer-events: none; + transition: all 0.2s; + @include user-select(none); + cursor: default; + border-radius: $border-radius; + + @at-root #{&}--show { + opacity: 1; + pointer-events: all; + } + + @at-root #{&}__message { + font-size: 1.5rem; + color: #fff; + font-style: italic; + } +} + +@mixin text($family: $font--role-default, $size: 1rem, $weight: 300) { + font-family: $family; + font-size: $size; + font-weight: $weight; +} + +@mixin optional-at-root($sel) { + @at-root #{if(not &, $sel, selector-append(&, $sel))} { + @content; + } +} + +@mixin placeholder { + @include optional-at-root('::-webkit-input-placeholder') { + @content; + } + + @include optional-at-root(':-moz-placeholder') { + @content; + } + + @include optional-at-root('::-moz-placeholder') { + @content; + } + + @include optional-at-root(':-ms-input-placeholder') { + @content; + } +} + +@mixin user-select($select) { + @each $pre in -webkit-, -moz-, -ms-, -o- { + #{$pre + user-select}: #{$select}; + } + #{user-select}: #{$select}; +} + +.shadow_border { + box-shadow: 0 0 0.3rem rgba(175, 175, 175, 0.25); +} +.shadow_border--hover { + box-shadow: 0 0 0.3rem rgba(175, 175, 175, 0.25), 0 0.2rem 0.35rem rgba(175, 175, 175, 0.25); +} + + +.tab_button { + padding: 0.5rem 0.75rem; + border-radius: 3rem; + cursor: pointer; + transition: all 0.2s; + margin-right: 0.5rem; + display: inline-block; + position: relative; + top: -0.1rem; + + @include user-select(none); + + &:hover { + background-color: $color__lightgray--darker; + } + &:active { + background-color: #dcdcdc; + } + + &::after { + content: ''; + position: absolute; + background-color: $color__blue--primary; + width: calc(100% - 1rem); + left: 0.5rem; + bottom: -0.3rem; + height: 0.2rem; + opacity: 0; + transition: opacity 0.2s; + } + + @at-root #{&}--selected { + cursor: default; + font-weight: bold; + + &:active, &:hover { + background-color: transparent; + } + + &::after { + opacity: 1; + } + } +} + +//Colours +$gray-hover: #F5F5F5; //on hover for background-color from white +$gray-0: #EEEEEE; //off-white +$gray-1: #E0E0E0; //lightest +$gray-2: #BDBDBD; //lighter +$gray-3: #9E9E9E; //default +$gray-4: #757575; //darker +$gray-5: #424242; //darkest + +$blue-1: #64B5F6; +$blue-2: #2196F3; +$blue-3: #1E88E5; +$blue-4: #1976D2; +$blue-5: #115cd0; + +$red-0: #EF5350; +$red-1: #F44336; +$red-2: #E53935; +$red-3: #D32F2F; +$red-4: #C62828; +$red-5: #B71C1C; + + + +//Text colours +$text-primary: rgba(black, 0.87); +$text-secondary: rgba(black, 0.54); + +//Font +$font-family: 'Lato', sans-serif; diff --git a/src/router/index.js b/src/router/index.js index f91ba74..ea535ec 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -72,6 +72,16 @@ const routes = [ name: 'Forums', component: route('Forums') }, + { + path: '/forums/thread/:id', + name: 'ForumThread', + component: route('ForumThread') + }, + { + path: '/forums/create', + name: 'ForumThreadCreate', + component: route('ForumThreadCreate') + }, { path: '/roadmap', name: 'Roadmap', diff --git a/src/views/ForumThread.vue b/src/views/ForumThread.vue new file mode 100644 index 0000000..4cfddbc --- /dev/null +++ b/src/views/ForumThread.vue @@ -0,0 +1,55 @@ + + + \ No newline at end of file diff --git a/src/views/ForumThreadCreate.vue b/src/views/ForumThreadCreate.vue new file mode 100644 index 0000000..55ddb6c --- /dev/null +++ b/src/views/ForumThreadCreate.vue @@ -0,0 +1,15 @@ + + + + + \ No newline at end of file diff --git a/src/views/Forums.vue b/src/views/Forums.vue index 26026da..256d6d9 100644 --- a/src/views/Forums.vue +++ b/src/views/Forums.vue @@ -1,8 +1,8 @@ \ No newline at end of file + + diff --git a/src/views/Home.vue b/src/views/Home.vue index c9e63fc..d7bc3a2 100644 --- a/src/views/Home.vue +++ b/src/views/Home.vue @@ -1,12 +1,12 @@