Page layout
Below is an example of the 3F Design page layout. Have a look at the markup under the Code tab.
Required markup
To enable the page layout use the following required application markup:
<div class="app" v-app v-cloak>
<v-layout>
<template #navigation>
<!-- Navigation components here -->
</template>
<v-content>
<!-- Page content here -->
</v-content>
<!-- Footer components here -->
</v-layout>
</div>
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
API: v-navbar-logo
Name | Type | Description | Default |
---|---|---|---|
href | String | Specifies the URL of the page the link goes to. | - |
target | String | Specifies where to open the linked document. | - |
title | String | HTML title Attribute. | - |
API: v-language-selector
Name | Type | Description | Default |
---|---|---|---|
locales | Object | An object that associate locales with urls | {} |
API: v-navbar-search
Name | Type | Description | Default |
---|---|---|---|
url | String | URL called asynchronously to fetch search results based on the user's search query. The supplied url must contain a {query} placeholder. | - |
label | String | Names the object property used to display a search result. | - |
option-id | String | Names the object property used to identify individual search results. The property must thus be unique across all results. | - |
popular-topics | Array | Data used to display popular search topics | [] |
placeholder | String | Placeholder text shown when the search input field is empty. | - |
@select | Event | Event triggered when a selection has been made. The selected value can be found in the $event object. | - |
@search-result | Event | Event triggered when a search with results has completed. The query value can be found in the $event object. | - |
@search-no-result | Event | Same as @search-result but without results. | - |
API: v-navbar-navigation-item
Name | Type | Description | Default |
---|---|---|---|
href | String | Specifies the URL of the page the link goes to. | - |
target | String | Specifies where to open the linked document. | - |
title | String | HTML title Attribute. | - |
active | Boolean | Specifies if item is active. | false |
API: v-navbar-menu-item
Name | Type | Description | Default |
---|---|---|---|
icon | String | Specifies which icon to show. Should only be used on top-level. | - |
href | String | Specifies the URL of the page the link goes to. | - |
target | String | Specifies where to open the linked document. | - |
title | String | HTML title Attribute. | - |
active | Boolean | Specifies if item is active. | false |
slot: items | Slot | Insert child v-navbar-menu-item components here. Will be shown in dropdown. | - |
Notice
The v-app
attribute and the css class app
is required to bootstrap your application. The v-layout
component acts as an application wrapper and needs to be a direct descendant of v-app
.
Page content
All page specific content should be placed in the v-content
component, which also has a #sidebar
slot available to hold secondary navigation.
API: v-content
Name | Type | Description | Default |
---|---|---|---|
full-width | Boolean | Specifies whether or not content should take up full width. | false |
slot: sidebar | Slot | Insert v-sidebar components for secondary navigation here | No sidebar |
Navigation, hero and footer
Navigation and other common layout components are documented separately:
<v-footer-contact
img-src="/assets/3f-manden.png"
:tabs="[{id: 'tab-1-title', title: 'Tab 1 title'}, {id: 'tab-2-title', title: 'Tab 2 title'}, {id: 'tab-3-title', title: 'Tab 3 title'}, {id: 'tab-4-title', title: 'Tab 4 title'}]">
<template v-slot:tab-1>Tab 1 content</template>
<template v-slot:tab-2>Tab 2 content</template>
<template v-slot:tab-3>Tab 3 content</template>
<template v-slot:tab-4>Tab 4 content</template>
</v-footer-contact>
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
API
Name | Type | Description | Default |
---|---|---|---|
img-src | String | Adds an image to the element. Valid value: Image URL | - |
tabs | Array | Use to specify tab ids and titles | - |
slot:tab-1-4 | Slot | Use these slots to specify tab content | - |
v-footer-links
API
Name | Type | Description | Default |
---|---|---|---|
slot:col-1-5 | Slot | Use these slots to specify column content | - |
v-footer-address
API
Name | Type | Description | Default |
---|---|---|---|
slot:social | Slot | Place social media icons here | - |
slot:address | Slot | Insert address content here | - |
slot:language-selector | Slot | Insert language-selector-component component here | - |