add hiding menu bar example

This commit is contained in:
Philipp Kühn
2018-08-22 16:05:44 +02:00
parent 88e56c7b27
commit e3aaa0630c
5 changed files with 78 additions and 4 deletions

View File

@@ -3,7 +3,7 @@
.page { .page {
&__content { &__content {
padding: 2rem; padding: 4rem 1rem;
} }
} }
@@ -90,10 +90,13 @@
display: flex; display: flex;
margin-bottom: 1rem; margin-bottom: 1rem;
visibility: hidden;
opacity: 0;
transition: visibility 0.2s 0.4s, opacity 0.2s 0.4s; transition: visibility 0.2s 0.4s, opacity 0.2s 0.4s;
&.is-hidden {
visibility: hidden;
opacity: 0;
}
&.is-focused { &.is-focused {
visibility: visible; visibility: visible;
opacity: 1; opacity: 1;

View File

@@ -20,6 +20,9 @@
<router-link class="navigation__link" to="/links"> <router-link class="navigation__link" to="/links">
Links Links
</router-link> </router-link>
<router-link class="navigation__link" to="/hiding-menu-bar">
Hiding Menu Bar
</router-link>
</div> </div>
</div> </div>

View File

@@ -0,0 +1,63 @@
<template>
<div>
<editor :editable="true" class="editor" @update="onUpdate">
<div class="menubar is-hidden" :class="{ 'is-focused': focused }" slot="menubar" slot-scope="{ nodes, marks, focused }">
<div v-if="nodes && marks">
<button
class="menubar__button"
:class="{ 'is-active': marks.bold.active() }"
@click="marks.bold.command"
>
<icon name="bold" />
</button>
<button
class="menubar__button"
:class="{ 'is-active': marks.italic.active() }"
@click="marks.italic.command"
>
<icon name="italic" />
</button>
<button
class="menubar__button"
@click="marks.code.command"
:class="{ 'is-active': marks.code.active() }
">
<icon name="code" />
</button>
</div>
</div>
<div class="editor__content" slot="content" slot-scope="props">
<h1>
Hiding Menu Bar
</h1>
<p>
Try to focus the editor to see the menu. It's like magic. 🔮
</p>
</div>
</editor>
</div>
</template>
<script>
import Icon from 'Components/Icon'
import { Editor } from 'tiptap'
export default {
components: {
Editor,
Icon,
},
methods: {
onUpdate(state) {
this.data = state.doc.toJSON()
},
},
}
</script>

View File

@@ -2,7 +2,7 @@
<div> <div>
<editor :editable="true" class="editor" @update="onUpdate"> <editor :editable="true" class="editor" @update="onUpdate">
<div class="menubar" :class="{ 'is-focused': focused }" slot="menubar" slot-scope="{ nodes, marks, focused }"> <div class="menubar" slot="menubar" slot-scope="{ nodes, marks }">
<div v-if="nodes && marks"> <div v-if="nodes && marks">
<button <button

View File

@@ -6,6 +6,7 @@ import App from 'Components/App'
import RouteMenuBar from 'Components/Routes/MenuBar' import RouteMenuBar from 'Components/Routes/MenuBar'
import RouteMenuBubble from 'Components/Routes/MenuBubble' import RouteMenuBubble from 'Components/Routes/MenuBubble'
import RouteLinks from 'Components/Routes/Links' import RouteLinks from 'Components/Routes/Links'
import RouteHidingMenuBar from 'Components/Routes/HidingMenuBar'
const __svg__ = { path: './assets/images/icons/*.svg', name: 'assets/images/[hash].sprite.svg' } const __svg__ = { path: './assets/images/icons/*.svg', name: 'assets/images/[hash].sprite.svg' }
svgSpriteLoader(__svg__.filename) svgSpriteLoader(__svg__.filename)
@@ -27,6 +28,10 @@ const routes = [
path: '/links', path: '/links',
component: RouteLinks, component: RouteLinks,
}, },
{
path: '/hiding-menu-bar',
component: RouteHidingMenuBar,
},
] ]
const router = new VueRouter({ const router = new VueRouter({