add hiding menu bar example
This commit is contained in:
@@ -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;
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
63
examples/Components/Routes/HidingMenuBar/index.vue
Normal file
63
examples/Components/Routes/HidingMenuBar/index.vue
Normal 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>
|
||||||
@@ -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
|
||||||
|
|||||||
@@ -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({
|
||||||
|
|||||||
Reference in New Issue
Block a user