.row
.col-sm-12.col-md-10.col-md-offset-1.col-lg-8.col-lg-offset-2
// Menu (top of page):
- // Left: hall, variants, mygames, forum (ext. link)
+ // Left: hall, variants, mygames
// Right: usermenu, settings, flag
nav
label.drawer-toggle(for="drawerControl")
input#drawerControl.drawer(type="checkbox")
- #menuBar
+ #menuBar(@click="hideDrawer($event)")
label.drawer-close(for="drawerControl")
#leftMenu
router-link(to="/")
| {{ st.tr["Variants"] }}
router-link(to="/mygames")
| {{ st.tr["My games"] }}
- a(href="https://groups.google.com/forum/#!forum/vchess-club")
- | {{ st.tr["Forum"] }}
#rightMenu
.clickable(onClick="doClick('modalUser')")
- | {{ st.user.id > 0 ? "Update" : "Login" }}
+ | {{ st.user.id > 0 ? (st.user.name || "@nonymous") : "Login" }}
.clickable(onClick="doClick('modalSettings')")
| {{ st.tr["Settings"] }}
.clickable#flagContainer(onClick="doClick('modalLang')")
router-link.menuitem(to="/about") {{ st.tr["About"] }}
p.clickable(onClick="doClick('modalContact')")
| {{ st.tr["Contact"] }}
- // TODO: add only the necessary icons to mini-css custom build
- //script(src="//unpkg.com/feather-icons")
+ a.menuitem(href="https://forum.vchess.club")
+ | {{ st.tr["Forum"] }}
</template>
<script>
-// See https://stackoverflow.com/a/35417159
import ContactForm from "@/components/ContactForm.vue";
import Language from "@/components/Language.vue";
import Settings from "@/components/Settings.vue";
import UpsertUser from "@/components/UpsertUser.vue";
import { store } from "./store.js";
+import { processModalClick } from "./utils/modalClick.js";
export default {
components: {
ContactForm,
return `/images/flags/${this.st.lang}.svg`;
},
},
+ mounted: function() {
+ let dialogs = document.querySelectorAll("div[role='dialog']");
+ dialogs.forEach(d => {
+ d.addEventListener("click", processModalClick);
+ });
+ },
+ methods: {
+ hideDrawer: function(e) {
+ if (e.target.innerText == "Forum")
+ return; //external link
+ e.preventDefault(); //TODO: why is this needed?
+ document.getElementsByClassName("drawer")[0].checked = false;
+ },
+ },
};
</script>
<style lang="sass">
+html, *
+ font-family: "Open Sans", Arial, sans-serif
+ --a-link-color: black
+ --a-visited-color: black
+
+body
+ padding: 0
+ min-width: 320px
+ --fore-color: #1c1e10 //#2c3e50
+ //--back-color: #f2f2f2
+ background-image: radial-gradient(white, #e6e6ff) //lavender)
+
#app
- font-family: "Avenir", Helvetica, Arial, sans-serif
-webkit-font-smoothing: antialiased
-moz-osx-font-smoothing: grayscale
.container
+ overflow: hidden
@media screen and (max-width: 767px)
padding: 0
.row > div
padding: 0
-.nopadding
- padding: 0
-
header
width: 100%
display: flex
.clickable
cursor: pointer
+.text-center
+ text-align: center
+
+.clearer
+ clear: both
+
nav
width: 100%
margin: 0
& > #menuBar
width: 100%
padding: 0
- & > #leftMenu
- padding: 0
- width: 50%
- display: inline-flex
- align-items: center
- justify-content: flex-start
- & > a
- display: inline-block
- color: #2c3e50
- &.router-link-exact-active
- color: #42b983
- & > #rightMenu
- padding: 0
- width: 50%
- display: inline-flex
- align-items: center
- justify-content: flex-end
- & > div
- display: inline-block
- &#flagContainer
- display: inline-flex
- & > img
- padding: 0
- width: 36px
- height: 27px
-
-// TODO: drawer, until 600px wide OK (seemingly)
-// After, zone where left and right just go on top of another
-// Then, on narrow screen put everything on one line
+ @media screen and (min-width: 768px)
+ & > #leftMenu
+ padding: 0
+ width: 50%
+ display: inline-flex
+ align-items: center
+ justify-content: flex-start
+ & > a
+ display: inline-block
+ color: #2c3e50
+ &.router-link-exact-active
+ color: #42b983
+ & > #rightMenu
+ padding: 0
+ width: 50%
+ display: inline-flex
+ align-items: center
+ justify-content: flex-end
+ & > div
+ display: inline-block
+ &#flagContainer
+ display: inline-flex
+ & > img
+ padding: 0
+ width: 36px
+ height: 27px
+ @media screen and (max-width: 767px)
+ & > #leftMenu
+ padding-bottom: 5px
+ & > a
+ color: #2c3e50
+ &.router-link-exact-active
+ color: #42b983
+ & > #rightMenu
+ padding-top: 5px
+ border-top: 1px solid darkgrey
+ & > div
+ &#flagContainer
+ display: inline-flex
+ & > img
+ padding: 0
+ width: 36px
+ height: 27px
+
+@media screen and (max-width: 767px)
+ nav
+ height: 32px
+ border: none
+ & > label.drawer-toggle
+ font-size: 1.2rem
+ //padding: 0 0 0 10px
+
[type="checkbox"].drawer+*
right: -767px
+@media screen and (max-width: 767px)
+ .button-group
+ flex-direction: row
+ button:not(:first-child)
+ border-left: 1px solid var(--button-group-border-color)
+ border-top: 0
+
footer
+ border: 1px solid #ddd
//background-color: #000033
font-size: 1rem
width: 100%
display: inline-flex
align-items: center
justify-content: center
+ & > .router-link-exact-active
+ color: #42b983 !important
+ text-decoration: none
& > .menuitem
display: inline-block
- margin: 0 10px 0 0
+ margin: 0 10px
&:link
color: #2c3e50
- &:hover
+ &:visited, &:hover
+ color: #2c3e50
text-decoration: none
& > p
display: inline-block
- margin: 0 0 0 10px
+ margin: 0 10px
+
+@media screen and (max-width: 767px)
+ footer
+ border: none
</style>