/assets/text/brand.js
const brand = {
agency: {
name: 'Agency',
desc: 'Veluxi Agency - Vue Single Landing Page Template',
prefix: 'veluxi',
footerText: 'Veluxi Theme - All Rights Reserved 2023',
logoText: 'Veluxi Agency',
projectName: 'Agency Theme',
url: 'veluxi.ux-maestro.com/agency',
img: '/static/images/agency-logo.png',
notifMsg:
'Donec sit amet nulla sed arcu pulvinar ultricies commodo id ligula.'
}
}
export default brand
This template come with some variant main components that easy to use.
To change Header, Footer, and Corner component, please open in global store composables/uiTheme.js
, and just change value then all components will be updated.
Here's the available values:
Key | Type | Available Value | Example |
---|---|---|---|
Header |
String |
mixed ,
basic ,
droplist ,
mega ,
hamburger ,
navscroll ,
search
|
header: 'mixed' |
Header |
String |
basic ,
sitemap ,
blog ,
contact
|
footer: 'blog' |
Footer |
String |
chat ,
nav
|
corner: 'chat' |
Header component used for navigation and some site settings. It's more flexible with 7 type of headers:
basic
search
droplist
(it has routing navigation)mega
(it has routing navigation)hamburger
(it has scroll navigation)navscroll
(it has scroll navigation)mixed
(Scroll Navigation + Mega Menu)
In composables/uiTheme.js
you can edit header
value to change the header type.
The changes will affected to all pages containing header except Blog and Auth (login & register).
// composables/uiTheme.js
export const useHeader = () => useState(
'header',
() => 'mixed', /* available: mixed, basic, droplist, mega, hamburger, navscroll, search */
);
Mega menu and Dropdown menu have submenu that can be accessed by clicking the parent menu. But It can be accessed using hover instead of clicking by change the data.
components/Header/TopNav/MegaMenu.vue
or components/Header/TopNav/MultiLevel.vue
hover: true
Submenu
component from ./SubMenuHover
// components/Header/TopNav/MultiLevel.vue
// 1. Don't forget to import SubMenuHover for Droplist menu only. For Mega menu just skip thip step
import Submenu from './SubMenuHover'
// 2. Change the hover value to true
export default {
data() {
return {
hover: true
}
}
}
Footer component used for many purpose, such as navigation, contact, additional link, or just copyright mark. This template provide 4 Footer variants
basic
sitemap
blog
contact
In composables/uiTheme.js
you can edit footer
value to change the footer type.
The changes will affected to all pages except Maintenance and Coming Soon which doesn't uses footer.
// composables/uiTheme.js
export const useFooter = () => useState(
'footer',
() => 'sitemap', /* basic, blog, contact, sitemap */
);
The additional components for homepage placed on the bottom right corner.
There are 2 variant, Chat Panel and Single Page Navigation.
The Corner component itself imported from '@/components/Home/Corner'
<template>
<div>
<corner />
</div>
</template>
<script>
import Corner from '@/components/Home/Corner'
export default {
components: {
Corner
}
}
</script>
chat
nav
To use it, in composables/uiTheme.js
you can edit corner
value to change the corner type.
The changes only affected in homepage.
By default it's only implemented in homepage, but you can use Corner
component for another page
// composables/uiTheme.js
export const useCorner = () => useState(
'corner',
() => 'chat', /* chat, nav */
);
Banner and Slider ussualy placed on first section of hompage. And all of this template uses the Banner Slider.
The banner slider components code is in components/Home/BannerSlider
The slider containing 3 type of banners, Text-Image, Image-Text, and Text-Image-Vertical. By default it uses all type banner as horizontal slider. If you need only a single banner without slider, You have to make some modification in the code like bellow:
Text-Image
Image-Text
Text-Image-Vertical
// components/Home/BannerSlider
<div class="carousel" v-if="loaded">
<slick>
<div class="slide" id="slide1">Banner 1</div>
<div class="slide" id="slide2">Banner 2</div>
<div class="slide" id="slide3">Banner 3</div>
</slick>
</div>
Unwrap slick
component and use only one .slide
element
// components/Home/BannerSlider
<div class="carousel" v-if="loaded">
<div class="slide" id="slide1">Banner 1</div>
</div>
/config/vuetify.options.js
/config/theme.txt
theme
value.
For theme color, since nuxt.js cannot import external file in the config,
so please pick and copy manually one of theme value from /config/theme.txt
to /config/vuetify.options.js
in const palette
greenLeaf: {
primary: colors.green.base, // primary main
primarylight: colors.green.lighten4, // primary light
primarydark: colors.green.darken4, // primary dark
secondary: colors.blueGrey.base, // secondary main
secondarylight: colors.blueGrey.lighten4, // secondary light
secondarydark: colors.blueGrey.darken3, // secondary dark
anchor: colors.green.base // link
}
Key | Type | Available Value | Example |
---|---|---|---|
theme.themes: |
Object |
'...palette.oceanBlue' ,
'...palette.greenLeaf' , '...palette.greyscale' ,
'...palette.cloud' , '...palette.violet' ,
etc
|
theme = { ...palette.oceanBlue } |
If you change the palette const, don't forget to update this following files as well
** Crytpo Theme:/crypto-theme/components/GradientDeco/GradientDeco.vue
Make sure the const palette has same value as vuetify.options const palette
This template also support for RTL direction. To set RTL as default direction please follow this step.
/composables/uiTheme.js
export const useRtl = () => (useState('rtl', () => true));
/nuxt.config.ts
Then please add dir: 'rtl'
in
// nuxt.config.ts
export default defineNuxtConfig({
app: {
head: {
// the rest code
htmlAttrs: {
dir: 'rtl'
},
}
// the rest code
}
})
Artwork Illlustration as part of UI visual explanation of a text, concept or process. 3D or 2D styles are in trending now, and this template has both. To configure the style mode please follow tihs step
static/images/imgAPI.js
...img3d
...img3d
to ...img2d
, and reverse allowed as well.
// imgAPI.js
crypto: [
...img3d.main,
// rest images
],
cryptoInner: [
...img3d.inner
]
// imgAPI.js
crypto: [
...img2d.main,
// rest images
],
cryptoInner: [
...img2d.inner
]
This template use Vue Youtube a simple vue component acting as a thin layer over the YouTube IFrame Player API. To use this feature we recommend to use https in production. If not there will be some warnings in browser console related cookies and security.
You can disable this feature by open config/youtube.js
then set set use: false
.
/nuxt.config.ts
defaultLocale: 'en'
to other initial locale i.e. id
for Bahasa IndonesiavueI18n: { fallbackLocale: 'en' }
to other fallback locale i.e. id
for Bahasa Indonesiadir: 'rtl'
in app.head.htmlAttrs: { lang: 'ar', dir: 'rtl' }
composables/uiTheme.js
export const useRtl = () => (useState('rtl', () => true));
/static/lang/[localCode]/
└── lang ├── en-US.json └── de-DE.json
/lang/languages.js
export default [
{
code: 'de',
iso: 'de-DE',
name: 'Deutch',
file: 'de-DE.json',
dir: 'ltr'
},
{
code: 'en',
iso: 'eng-US',
name: 'English',
file: 'en-US.json',
dir: 'ltr'
}
]
/componens/Footer.vue
<p>
{{ $t('agencyLanding.footer_paragraph') }}
</p>
npm run dev
.