diff --git a/assets/variables.scss b/assets/variables.scss
new file mode 100644
index 00000000..5f9e5b32
--- /dev/null
+++ b/assets/variables.scss
@@ -0,0 +1,142 @@
+// assets/variables.scss
+
+// Variables you want to modify
+// $btn-border-radius: 0px;
+
+// If you need to extend Vuetify SASS lists
+// $material-light: ( cards: blue );
+
+@import '~vuetify/src/styles/styles.sass';
+
+html, body {
+ scrollbar-width: thin;
+ overflow: auto !important;
+ scrollbar-color: #FF4511 #111;
+ font-family: sans-serif;
+}
+
+li {
+ margin-left: 10px;
+}
+
+.v-dialog .theme--dark.v-card {
+ background-color: #434343;
+}
+
+.v-application .p-description.text-body-1 {
+ letter-spacing: normal !important;
+}
+
+#home {
+ max-width: 1400px;
+ padding: 0px;
+ overflow: hidden;
+}
+
+#events {
+ margin: 0 auto;
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: center;
+}
+
+#calh {
+ height: 292px;
+}
+
+.container {
+ max-width: 1400px;
+}
+
+.v-dialog {
+ width: 600px;
+ max-width: 800px;
+ &.v-dialog--fullscreen {
+ max-width: 100%;
+ }
+}
+
+.theme--dark.v-list {
+ background-color: #333;
+}
+
+.v-autocomplete__content.v-menu__content {
+ scrollbar-width: thin;
+ scrollbar-color: #FF4511 #111;
+}
+
+// EVENT
+.event {
+ display: flex;
+ position: relative;
+ flex-direction: column;
+ width: 330px;
+ max-width: 500px !important;
+ flex-grow: 1;
+ margin-top: .4em;
+ margin-right: .4em;
+ transition: all .5s;
+ overflow: hidden;
+
+ .title {
+ display: -webkit-box;
+ overflow: hidden;
+ margin: 0.5rem 1rem 0.5rem 1rem;
+ text-overflow: ellipsis;
+ -webkit-line-clamp: 3;
+ -webkit-box-orient: vertical;
+ font-size: 1.1em !important;
+ line-height: 1.2em !important;
+ }
+
+ .body {
+ flex: 1 1 auto;
+ }
+
+ .img {
+ width: 100%;
+ max-height: 250px;
+ min-height: 160px;
+ object-fit: cover;
+ object-position: top;
+ aspect-ratio: 1.7778;
+ }
+
+ .place {
+ max-width: 100%;
+ span {
+ display: block;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ }
+ }
+ a {
+ text-decoration: none;
+ }
+}
+
+.vc-past {
+ opacity: 0.4;
+}
+
+#event {
+ max-width: 1200px;
+}
+
+.tags .v-chip .v-chip__content {
+ max-width: 120px;
+ white-space: nowrap;
+ overflow: hidden;
+ display: block;
+}
+
+
+.cursorPointer {
+ cursor: pointer;
+}
+
+pre {
+ white-space: break-spaces;
+ font-size: 13px;
+}
\ No newline at end of file
diff --git a/components/Announcement.vue b/components/Announcement.vue
index 1eb45080..7074cf3c 100644
--- a/components/Announcement.vue
+++ b/components/Announcement.vue
@@ -1,15 +1,16 @@
nuxt-link(:to='`/announcement/${announcement.id}`')
- v-alert.mb-1(border='left' type='info' color="primary" show-icon) {{announcement.title}}
+ v-alert.mb-1(border='left' type='info' color="primary" :icon='mdiInformation') {{announcement.title}}
diff --git a/components/Editor.vue b/components/Editor.vue
index 73af5e6a..74510b70 100644
--- a/components/Editor.vue
+++ b/components/Editor.vue
@@ -7,56 +7,56 @@
v-btn(icon text tabindex='-1'
:class="{ primary: isActive.bold() }"
@click="commands.bold")
- v-icon mdi-format-bold
+ v-icon(v-text='mdiFormatBold')
v-btn(icon text tabindex='-1'
:class="{ primary: isActive.underline() }"
@click="commands.underline")
- v-icon mdi-format-underline
+ v-icon(v-text='mdiFormatUnderline')
v-btn(icon text tabindex='-1'
:class="{ primary: isActive.strike() }"
@click="commands.strike")
- v-icon mdi-format-strikethrough-variant
+ v-icon(v-text='mdiFormatStrikethroughVariant')
v-btn(icon text tabindex='-1'
:class="{ primary: isActive.italic() }"
@click="commands.italic")
- v-icon mdi-format-italic
+ v-icon(v-text='mdiFormatItalic')
v-btn(icon text tabindex='-1'
:class="{ primary: isActive.heading({level: 1}) }"
@click="commands.heading({level: 1})")
- v-icon mdi-format-header-1
+ v-icon(v-text='mdiFormatHeader1')
v-btn(icon text tabindex='-1'
:class="{ primary: isActive.heading({level: 2}) }"
@click="commands.heading({level: 2})")
- v-icon mdi-format-header-2
+ v-icon(v-text='mdiFormatHeader2')
v-btn(icon text tabindex='-1'
:class="{ primary: isActive.heading({level: 3}) }"
@click="commands.heading({level: 3})")
- v-icon mdi-format-header-3
+ v-icon(v-text='mdiFormatHeader3')
v-btn(icon text tabindex='-1'
:class="{ primary: isActive.code() }"
@click="commands.code")
- v-icon mdi-code-tags
+ v-icon(v-text='mdiCodeTags')
v-btn(icon text tabindex='-1'
:class="{ primary: isActive.blockquote() }"
@click="commands.blockquote")
- v-icon mdi-format-quote-open
+ v-icon(v-text='mdiFormatQuoteOpen')
v-btn(icon text tabindex='-1'
:class="{ primary: isActive.bullet_list() }"
@click="commands.bullet_list")
- v-icon mdi-format-list-bulleted
+ v-icon(v-text='mdiFormatListBulleted')
v-btn(icon text tabindex='-1' :class='{ primary: isActive.link() }'
@click='commands.link({href: getMarkAttrs("link") && getMarkAttrs("link").href ? "" : "https://"}); $refs.link.focus();')
- v-icon mdi-link
+ v-icon(v-text='mdiLink')
v-text-field.pt-0.ml-1(v-show='isActive.link()' ref='link' @focus='focus' @blur='blur' hide-details
:value='isActive.link() && getMarkAttrs("link") && getMarkAttrs("link").href || ""'
@keypress.enter='commands.link({ href: $event.target.value}); editor.focus()')
@@ -65,6 +65,9 @@