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 | - |