commit fe04ff113717a4f52ecde1eb8677170fbbd16338 Author: mirza Date: Wed Mar 12 10:20:27 2025 +0700 init project diff --git a/README.md b/README.md new file mode 100644 index 0000000..a12d4db --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +# Matdash-nuxtjs-free \ No newline at end of file diff --git a/landingpage/index.html b/landingpage/index.html new file mode 100644 index 0000000..ab02aeb --- /dev/null +++ b/landingpage/index.html @@ -0,0 +1,358 @@ + + + + + + Matdash Nuxtjs Admin Template by Adminmart + + + + + + + + + +
+
+
+ +
+ +
+ +
+
+ +
+
+
+
+
+

+ Create Userfriendly Interface for your + Applications & + Products with + + Matdash Nuxtjs Vuetify Admin +

+
+
+
+ + + +
+
+
+
+

Free Version

+
+
+ Free version +
+ +

+ If you are looking for an eye-catching and elegantly + designed free Nuxtjs admin template that comes with several + added features, then look no more. Matdash Free Vuetify + 3 Nuxtjs Admin Dashboard Template that has everything you + require to develop an amazing web app. It has a very + simple sleek design which will give your next project a + professional and engaging look. +

+
+
+
    +
  • + + 1 Basic Dashboard +
  • +
  • + 7+ Pages Template +
  • +
  • + 5+ UI Components +
  • +
  • + Vuetify 3 +
  • +
  • + Solar Icons +
  • +
  • + Google Fonts +
  • +
  • + No Support + Provided +
  • +
+
+
+
    +
  • + Code splitting +
  • +
  • + Organized Code Structure +
  • +
  • + SCSS Base CSS +
  • +
  • + Easy To Customize +
  • +
  • + Fully Responsive Pages +
  • +
  • + No + Documentation +
  • +
  • + Backlink + Required +
  • +
+
+
+
+
+
+ + + +
+
+
+
+

+ Pro Version +

+
+
+ Pro version +
+ +
+
+
    +
  • + 2+ Stunning Dashboards +
  • +
  • + 65+ Page Templates +
  • +
  • + 45+ UI Components +
  • +
  • + 15+ Integrated Plugins +
  • +
  • + Vuetify 3 +
  • +
  • + Nuxtjs Landing Page +
  • +
  • + 1 Year Premium Support +
  • + +
  • + 3400+ Font Icons +
  • +
  • + Lots of Charts Added +
  • +
  • + Vue3 Carousel Added +
  • +
  • + Fully Responsive Pages +
  • +
  • + & lots more.. +
  • +
+
+
+
    +
  • + 5+ Unique Demos +
  • +
  • + Axios - Mock API Included +
  • +
  • + 12+ Ready to Use App +
  • +
  • + 4+ Frontend Pages +
  • +
  • + i18 Vue Included +
  • +
  • + Figma file for most of pages +
  • +
  • + Documentation Provided +
  • +
  • + Lots of Widgets +
  • +
  • + Tons of Table Example +
  • +
  • + Variety of Forms Included +
  • +
  • + SCSS Base CSS +
  • +
  • + Easy to Customize +
  • +
+
+
+
+
+
+
+
+
+ +
+ All Rights Reserved by Matdash Nuxtjs Vuetify Admin. Designed and Developed + by + adminmart.com +
+
+
+ + + + diff --git a/landingpage/style.css b/landingpage/style.css new file mode 100644 index 0000000..06c8672 --- /dev/null +++ b/landingpage/style.css @@ -0,0 +1,167 @@ +@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@200..800&display=swap'); + +:root { + --bs-font-sans-serif: "Manrope", + sans-serif; + --bs-primary: #635BFF; + --bs-secondary: #14E9E2; + --bs-danger: #FA896B; + --bs-body-font-size: 0.875rem; + --bs-body-font-weight: 400; + --bs-body-line-height: 1.5; + --bs-body-color: #5A6A85; + --bs-body-bg: #fff; + --bs-border-color: #ebf1f6; + --bs-heading-color: #2A3547; + --bs-border-radius: 7px; + --bs-gutter-x: 24px; + --bs-btn-font-size: 0.875rem; + --bs-card-spacer-y: 30px; + --bs-card-spacer-x: 30px; + --bs-card-border-width: 0px; + --bs-success-rgb: 19,222,185; + --bs-primary-rgb: 99,91,255; + --bs-light-rgb: 246,249,252; + --bs-dark-rgb: 42,53,71; +} + +.btn { + --bs-btn-padding-x: 16px; + --bs-btn-padding-y: 7px; + --bs-btn-font-size: 0.875rem; +} + +.btn-primary { + --bs-btn-bg: var(--bs-primary); + --bs-btn-border-color: var(--bs-primary); + --bs-btn-hover-bg: var(--bs-primary); + --bs-btn-hover-border-color: var(--bs-primary); + --bs-btn-focus-shadow-rgb: 49,132,253; + --bs-btn-active-bg: var(--bs-primary); + --bs-btn-active-border-color: var(--bs-primary); + --bs-btn-disabled-bg: var(--bs-primary); + --bs-btn-disabled-border-color: var(--bs-primary); +} + +.btn-secondary { + --bs-btn-bg: var(--bs-secondary); + --bs-btn-border-color: var(--bs-secondary); + --bs-btn-hover-bg: var(--bs-secondary); + --bs-btn-hover-border-color: var(--bs-secondary); + --bs-btn-focus-shadow-rgb: 49,132,253; + --bs-btn-active-bg: var(--bs-secondary); + --bs-btn-active-border-color: var(--bs-secondary); + --bs-btn-disabled-bg: var(--bs-secondary); + --bs-btn-disabled-border-color: var(--bs-secondary); +} + +.btn-danger { + --bs-btn-bg: var(--bs-danger); + --bs-btn-border-color: var(--bs-danger); + --bs-btn-hover-bg: var(--bs-danger); + --bs-btn-hover-border-color: var(--bs-danger); + --bs-btn-focus-shadow-rgb: 49,132,253; + --bs-btn-active-bg: var(--bs-danger); + --bs-btn-active-border-color: var(--bs-danger); + --bs-btn-disabled-bg: var(--bs-danger); + --bs-btn-disabled-border-color: var(--bs-danger); +} + +.btn-outline-primary { + --bs-btn-color: var(--bs-primary); + --bs-btn-border-color: var(--bs-primary); + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: var(--bs-primary); + --bs-btn-hover-border-color: var(--bs-primary); + --bs-btn-focus-shadow-rgb: 13,110,253; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: var(--bs-primary); + --bs-btn-active-border-color: var(--bs-primary); + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: var(--bs-primary); + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: var(--bs-primary); +} + +/* background */ +.bg-light { + background-color: rgba(var(--bs-light-rgb),var(--bs-bg-opacity))!important; +} + +/* text colors */ +.text-success { + color: rgba(var(--bs-success-rgb),var(--bs-text-opacity))!important; +} + +.text-primary { + color: rgba(var(--bs-primary-rgb),var(--bs-text-opacity))!important; +} + +.text-dark { + color: rgba(var(--bs-dark-rgb),var(--bs-text-opacity))!important; +} + +.text-muted { + color: #5a6a85!important; +} + +/* card */ +.card { + --bs-card-spacer-y: 30px; + --bs-card-spacer-x: 30px; + --bs-card-title-color: #2A3547; + --bs-card-subtitle-color: #2A3547; + --bs-card-border-width: 0px; + --bs-card-box-shadow: rgba(145, 158, 171, 0.2) 0px 0px 2px 0px,rgba(145, 158, 171, 0.12) 0px 12px 24px -4px; + --bs-card-inner-border-radius: 7px; +} + +.container { + max-width: 1150px; +} + +/* custom */ +.spacer { + padding: 80px 0; +} + +.pro-demo { + -webkit-box-shadow: 0px 4px 45px rgb(0 0 0 / 9%); + box-shadow: 0px 4px 45px rgb(0 0 0 / 9%); +} + +.line-h33 { + line-height: 33px; +} + +.icon-circle { + background-color: rgb(var( --bs-dark-rgb)); + display: inline-block; + width: 15px; + height: 15px; + border-radius: 100%; + position: relative; +} + +.icon-circle.circle-primary { + background-color: rgb(var( --bs-primary-rgb)) !important; +} + +.icon-circle.circle-muted { + background-color: var(--bs-body-color) !important; + opacity: 0.8; +} + +.icon-circle:before { + content: ''; + position: absolute; + left: 0; + right: 0; + width: 5px; + height: 5px; + border-radius: 100%; + background-color: #fff; + display: block; + margin: 0 auto; + top: 5px; +} \ No newline at end of file diff --git a/package/.gitignore b/package/.gitignore new file mode 100644 index 0000000..438cb08 --- /dev/null +++ b/package/.gitignore @@ -0,0 +1,8 @@ +node_modules +*.log* +.nuxt +.nitro +.cache +.output +.env +dist diff --git a/package/.npmrc b/package/.npmrc new file mode 100644 index 0000000..cf04042 --- /dev/null +++ b/package/.npmrc @@ -0,0 +1,2 @@ +shamefully-hoist=true +strict-peer-dependencies=false diff --git a/package/README.md b/package/README.md new file mode 100644 index 0000000..fc29b5f --- /dev/null +++ b/package/README.md @@ -0,0 +1,48 @@ +# Matdash-nuxtjs-free +Free Nuxt 3 Admin Template with vuetify 3 + Typescript +Free Nuxt 3 Admin Template with vuetify 3 + Typescript +# Live Demo + + +# Nuxt 3 Starter + +> 💚 A Better Nuxt 3 starter template + +## Use the Template + +### Clone to local + +```bash + +$> 💿 Install dependencies with `npm install` or `yarn install` +$> +$> 🚀 Start development server with `npm run dev` or `yarn dev` +``` + +## Setup + +### Installation + +Make sure to install the dependencies + +```bash +yarn install +``` + +### Development + +Start the development server on http://localhost:3088 + +```bash +yarn dev +``` + +### Production + +Build the application for production: + +```bash +yarn build +``` + + diff --git a/package/app.vue b/package/app.vue new file mode 100644 index 0000000..f064b31 --- /dev/null +++ b/package/app.vue @@ -0,0 +1,8 @@ + \ No newline at end of file diff --git a/package/components/auth/LoginForm.vue b/package/components/auth/LoginForm.vue new file mode 100644 index 0000000..c79cc2d --- /dev/null +++ b/package/components/auth/LoginForm.vue @@ -0,0 +1,32 @@ + + + diff --git a/package/components/auth/RegisterForm.vue b/package/components/auth/RegisterForm.vue new file mode 100644 index 0000000..0168ae3 --- /dev/null +++ b/package/components/auth/RegisterForm.vue @@ -0,0 +1,24 @@ + + + diff --git a/package/components/dashboard/BlogCards.vue b/package/components/dashboard/BlogCards.vue new file mode 100644 index 0000000..f140670 --- /dev/null +++ b/package/components/dashboard/BlogCards.vue @@ -0,0 +1,45 @@ + + diff --git a/package/components/dashboard/DailyActivities.vue b/package/components/dashboard/DailyActivities.vue new file mode 100644 index 0000000..f131711 --- /dev/null +++ b/package/components/dashboard/DailyActivities.vue @@ -0,0 +1,35 @@ + + + + diff --git a/package/components/dashboard/NewCustomer.vue b/package/components/dashboard/NewCustomer.vue new file mode 100644 index 0000000..6a1c73c --- /dev/null +++ b/package/components/dashboard/NewCustomer.vue @@ -0,0 +1,21 @@ + + diff --git a/package/components/dashboard/RevenueCard.vue b/package/components/dashboard/RevenueCard.vue new file mode 100644 index 0000000..6d2c884 --- /dev/null +++ b/package/components/dashboard/RevenueCard.vue @@ -0,0 +1,115 @@ + + diff --git a/package/components/dashboard/RevenueProducts.vue b/package/components/dashboard/RevenueProducts.vue new file mode 100644 index 0000000..c90ac18 --- /dev/null +++ b/package/components/dashboard/RevenueProducts.vue @@ -0,0 +1,54 @@ + + diff --git a/package/components/dashboard/TotalIncome.vue b/package/components/dashboard/TotalIncome.vue new file mode 100644 index 0000000..c53820f --- /dev/null +++ b/package/components/dashboard/TotalIncome.vue @@ -0,0 +1,68 @@ + + diff --git a/package/components/layout/full/Main.vue b/package/components/layout/full/Main.vue new file mode 100644 index 0000000..2a0e1f9 --- /dev/null +++ b/package/components/layout/full/Main.vue @@ -0,0 +1,59 @@ + + + diff --git a/package/components/layout/full/logo/Logo.vue b/package/components/layout/full/logo/Logo.vue new file mode 100644 index 0000000..37f9c71 --- /dev/null +++ b/package/components/layout/full/logo/Logo.vue @@ -0,0 +1,3 @@ + diff --git a/package/components/layout/full/logo/LogoDark.vue b/package/components/layout/full/logo/LogoDark.vue new file mode 100644 index 0000000..19eb382 --- /dev/null +++ b/package/components/layout/full/logo/LogoDark.vue @@ -0,0 +1,10 @@ + + diff --git a/package/components/layout/full/vertical-header/NotificationDD.vue b/package/components/layout/full/vertical-header/NotificationDD.vue new file mode 100644 index 0000000..3428a66 --- /dev/null +++ b/package/components/layout/full/vertical-header/NotificationDD.vue @@ -0,0 +1,10 @@ + + diff --git a/package/components/layout/full/vertical-header/ProfileDD.vue b/package/components/layout/full/vertical-header/ProfileDD.vue new file mode 100644 index 0000000..0f2d04c --- /dev/null +++ b/package/components/layout/full/vertical-header/ProfileDD.vue @@ -0,0 +1,43 @@ + + + diff --git a/package/components/layout/full/vertical-sidebar/Icon.vue b/package/components/layout/full/vertical-sidebar/Icon.vue new file mode 100644 index 0000000..cf6d051 --- /dev/null +++ b/package/components/layout/full/vertical-sidebar/Icon.vue @@ -0,0 +1,23 @@ + + + diff --git a/package/components/layout/full/vertical-sidebar/NavGroup/index.vue b/package/components/layout/full/vertical-sidebar/NavGroup/index.vue new file mode 100644 index 0000000..3754097 --- /dev/null +++ b/package/components/layout/full/vertical-sidebar/NavGroup/index.vue @@ -0,0 +1,7 @@ + + + diff --git a/package/components/layout/full/vertical-sidebar/NavItem/index.vue b/package/components/layout/full/vertical-sidebar/NavItem/index.vue new file mode 100644 index 0000000..629f2a5 --- /dev/null +++ b/package/components/layout/full/vertical-sidebar/NavItem/index.vue @@ -0,0 +1,37 @@ + + + diff --git a/package/components/layout/full/vertical-sidebar/UpgradeBox/index.vue b/package/components/layout/full/vertical-sidebar/UpgradeBox/index.vue new file mode 100644 index 0000000..3caa08b --- /dev/null +++ b/package/components/layout/full/vertical-sidebar/UpgradeBox/index.vue @@ -0,0 +1,15 @@ + + + diff --git a/package/components/layout/full/vertical-sidebar/sidebarItem.ts b/package/components/layout/full/vertical-sidebar/sidebarItem.ts new file mode 100644 index 0000000..26e67a6 --- /dev/null +++ b/package/components/layout/full/vertical-sidebar/sidebarItem.ts @@ -0,0 +1,63 @@ + +export interface menu { + header?: string; + title?: string; + icon?: any; + to?: string; + chip?: string; + BgColor?: string; + chipBgColor?: string; + chipColor?: string; + chipVariant?: string; + chipIcon?: string; + children?: menu[]; + disabled?: boolean; + type?: string; + subCaption?: string; +} + +const sidebarItem: menu[] = [ + + { header: 'Home' }, + { + title: 'Dashboard', + icon: 'widget-add-line-duotone', + to: '/' + }, + { header: 'utilities' }, + { + title: 'Typography', + icon: 'text-circle-outline', + to: '/ui/typography' + }, + { + title: 'Shadow', + icon: 'watch-square-minimalistic-charge-line-duotone', + to: '/ui/shadow' + }, + { header: 'auth' }, + { + title: 'Login', + icon: 'login-3-line-duotone', + to: '/auth/login' + }, + { + title: 'Register', + icon: 'user-plus-rounded-line-duotone', + to: '/auth/register' + }, + { header: 'Extra' }, + { + title: 'Icons', + icon: 'sticker-smile-circle-2-line-duotone', + to: '/icons' + }, + { + title: 'Sample Page', + icon: 'planet-3-line-duotone', + to: '/sample-page' + }, + +]; + +export default sidebarItem; diff --git a/package/components/shared/CardHeaderFooter.vue b/package/components/shared/CardHeaderFooter.vue new file mode 100644 index 0000000..ad2f282 --- /dev/null +++ b/package/components/shared/CardHeaderFooter.vue @@ -0,0 +1,24 @@ + + + diff --git a/package/components/shared/UiChildCard.vue b/package/components/shared/UiChildCard.vue new file mode 100644 index 0000000..a61b3e6 --- /dev/null +++ b/package/components/shared/UiChildCard.vue @@ -0,0 +1,17 @@ + + + diff --git a/package/components/shared/UiParentCard.vue b/package/components/shared/UiParentCard.vue new file mode 100644 index 0000000..63d79a5 --- /dev/null +++ b/package/components/shared/UiParentCard.vue @@ -0,0 +1,21 @@ + + +// ===============================|| Ui Parent Card||=============================== // + diff --git a/package/components/shared/UiParentCardLogo.vue b/package/components/shared/UiParentCardLogo.vue new file mode 100644 index 0000000..0148532 --- /dev/null +++ b/package/components/shared/UiParentCardLogo.vue @@ -0,0 +1,22 @@ + + +// ===============================|| Ui Parent Card||=============================== // + diff --git a/package/components/shared/UiTableCard.vue b/package/components/shared/UiTableCard.vue new file mode 100644 index 0000000..bec85d0 --- /dev/null +++ b/package/components/shared/UiTableCard.vue @@ -0,0 +1,19 @@ + + + diff --git a/package/components/shared/UiTextfieldPrimary.vue b/package/components/shared/UiTextfieldPrimary.vue new file mode 100644 index 0000000..8133b77 --- /dev/null +++ b/package/components/shared/UiTextfieldPrimary.vue @@ -0,0 +1,9 @@ + + + diff --git a/package/components/shared/WidgetCard.vue b/package/components/shared/WidgetCard.vue new file mode 100644 index 0000000..b5cbbb3 --- /dev/null +++ b/package/components/shared/WidgetCard.vue @@ -0,0 +1,20 @@ + + + diff --git a/package/components/shared/WidgetCardv2.vue b/package/components/shared/WidgetCardv2.vue new file mode 100644 index 0000000..b11e7df --- /dev/null +++ b/package/components/shared/WidgetCardv2.vue @@ -0,0 +1,23 @@ + + + diff --git a/package/components/style-components/shadow/Shadow.vue b/package/components/style-components/shadow/Shadow.vue new file mode 100644 index 0000000..aa3f5a7 --- /dev/null +++ b/package/components/style-components/shadow/Shadow.vue @@ -0,0 +1,15 @@ + + diff --git a/package/components/style-components/typography/DefaultText.vue b/package/components/style-components/typography/DefaultText.vue new file mode 100644 index 0000000..3dfcc6a --- /dev/null +++ b/package/components/style-components/typography/DefaultText.vue @@ -0,0 +1,25 @@ + + diff --git a/package/components/style-components/typography/Heading.vue b/package/components/style-components/typography/Heading.vue new file mode 100644 index 0000000..829e8c2 --- /dev/null +++ b/package/components/style-components/typography/Heading.vue @@ -0,0 +1,49 @@ + + diff --git a/package/data/dashboard/dashboardData.ts b/package/data/dashboard/dashboardData.ts new file mode 100644 index 0000000..a6e4ca1 --- /dev/null +++ b/package/data/dashboard/dashboardData.ts @@ -0,0 +1,156 @@ +import type { RevenueProjects,BlogCards,DailyActivities } from '@/types/dashboard/index'; + +import product1 from "/images/products/dash-prd-1.jpg"; +import product2 from "/images/products/dash-prd-2.jpg"; +import product3 from "/images/products/dash-prd-3.jpg"; +import product4 from "/images/products/dash-prd-4.jpg"; + +import user1 from '/images/profile/user-1.jpg'; +import user2 from '/images/profile/user-2.jpg'; +import user3 from '/images/profile/user-3.jpg'; +import img1 from '/images/blog/blog-img1.jpg'; +import img2 from '/images/blog/blog-img2.jpg'; +import img3 from '/images/blog/blog-img3.jpg'; + +/*--Revenue Projects --*/ +const RevenueProjectsData: RevenueProjects[] = [ + { + img: product1, + leadname: "Minecraf App", + designation: "Jason Roy", + projectname: "73.2%", + statuscolor: "warning", + statustext: "Medium", + money: "$3.5K", + }, + { + img: product2, + leadname: "Web App Project", + designation: "Mathew Flintoff", + projectname: "73.2%", + statuscolor: "secondary", + statustext: "Very High", + money: "$24.5K", + }, + { + img: product3, + leadname: "Matdash Dashboard", + designation: "Anil Kumar", + projectname: "73.2%", + statuscolor: "success", + statustext: "Low", + money: "$12.8K", + }, + { + img: product4, + leadname: "Dashboard Co", + designation: "George Cruize", + projectname: "73.2%", + statuscolor: "error", + statustext: "High", + money: "$2.4K", + }, +]; + + +/*--Blog Cards--*/ +const BlogCardData: BlogCards[] = [ + { + avatar: user1, + coveravatar: img1, + read: '2 min Read', + title: 'As yen tumbles, gadget-loving Japan goes for secondhand iPhones', + link: '/', + category: 'Social', + name: 'Georgeanna Ramero', + view: '9,125', + comments: '3', + time: 'Mon, Dec 19' + }, + { + avatar: user2, + coveravatar: img2, + read: '2 min Read', + title: 'Intel loses bid to revive antitrust case against patent foe Fortress', + link: '/', + category: 'Gadget', + name: 'Georgeanna Ramero', + view: '4,150', + comments: '38', + time: 'Sun, Dec 18' + }, + { + avatar: user3, + coveravatar: img3, + read: '2 min Read', + title: 'COVID outbreak deepens as more lockdowns loom in China', + link: '/', + category: 'Health', + name: 'Georgeanna Ramero', + view: '9,480', + comments: '12', + time: 'Sat, Dec 17' + } +]; + +/*--Daily Activities--*/ +const DailyActivitiesData : DailyActivities[] = [ + { + title:'09:30 am', + subtitle:'Payment received from John Doe of $385.90', + textcolor:'primary', + boldtext:false, + line:true, + link:'', + url:'' + }, + { + title:'10:00 am', + subtitle:'New sale recorded', + textcolor:'secondary', + boldtext:true, + line:true, + link:'#ML-3467', + url:'' + }, + { + title:'12:00 am', + subtitle:'Payment was made of $64.95 to Michael', + textcolor:'success', + boldtext:false, + line:true, + link:'', + url:'' + }, + { + title:'09:30 am', + subtitle:'New sale recorded', + textcolor:'warning', + boldtext:true, + line:true, + link:'#ML-3467', + url:'' + }, + { + title:'09:30 am', + subtitle:'New arrival recorded', + textcolor:'error', + boldtext:true, + line:true, + link:'#ML-3467', + url:'' + }, + { + title:'12:00 am', + subtitle:'Payment Done', + textcolor:'success', + boldtext:false, + line:false, + link:'', + url:'' + }, +] + + + +export {RevenueProjectsData,BlogCardData,DailyActivitiesData} \ No newline at end of file diff --git a/package/error.vue b/package/error.vue new file mode 100644 index 0000000..8b99914 --- /dev/null +++ b/package/error.vue @@ -0,0 +1,22 @@ + + diff --git a/package/layouts/blank.vue b/package/layouts/blank.vue new file mode 100644 index 0000000..27526ee --- /dev/null +++ b/package/layouts/blank.vue @@ -0,0 +1,8 @@ +// ===============================|| Blank Layout ||=============================== // + + diff --git a/package/layouts/default.vue b/package/layouts/default.vue new file mode 100644 index 0000000..0b0e53a --- /dev/null +++ b/package/layouts/default.vue @@ -0,0 +1,29 @@ + + + diff --git a/package/nuxt.config.ts b/package/nuxt.config.ts new file mode 100644 index 0000000..8014937 --- /dev/null +++ b/package/nuxt.config.ts @@ -0,0 +1,29 @@ +// https://nuxt.com/docs/api/configuration/nuxt-config +export default defineNuxtConfig({ + ssr: false, + + typescript: { + shim: false + }, + + build: { + transpile: ["vuetify"], + }, + + vite: { + define: { + "process.env.DEBUG": false, + }, + }, + + nitro: { + serveStatic: true, + }, + + devServerHandlers: [], + + hooks: { + }, + + compatibilityDate: "2024-10-23", +}) \ No newline at end of file diff --git a/package/package.json b/package/package.json new file mode 100644 index 0000000..db00873 --- /dev/null +++ b/package/package.json @@ -0,0 +1,24 @@ +{ + "private": true, + "scripts": { + "build": "nuxt build", + "dev": "nuxt dev", + "generate": "nuxt generate", + "preview": "nuxt preview", + "postinstall": "nuxt prepare" + }, + "dependencies": { + "@iconify/vue": "^4.1.2", + "@nuxt/vite-builder": "^3.13.1", + "apexcharts": "3.45.2", + "sass": "1.70.0", + "vue": "3.5.7", + "vue-tabler-icons": "2.21.0", + "vue3-apexcharts": "1.5.2", + "vue3-perfect-scrollbar": "1.6.1", + "vuetify": "3.7.1" + }, + "devDependencies": { + "nuxt": "3.13.2" + } +} diff --git a/package/pages/Icons.vue b/package/pages/Icons.vue new file mode 100644 index 0000000..c980fdb --- /dev/null +++ b/package/pages/Icons.vue @@ -0,0 +1,15 @@ + + diff --git a/package/pages/Sample-Page.vue b/package/pages/Sample-Page.vue new file mode 100644 index 0000000..9cc946d --- /dev/null +++ b/package/pages/Sample-Page.vue @@ -0,0 +1,16 @@ + + diff --git a/package/pages/auth/Login.vue b/package/pages/auth/Login.vue new file mode 100644 index 0000000..21e3bff --- /dev/null +++ b/package/pages/auth/Login.vue @@ -0,0 +1,31 @@ + + diff --git a/package/pages/auth/Register.vue b/package/pages/auth/Register.vue new file mode 100644 index 0000000..013cc18 --- /dev/null +++ b/package/pages/auth/Register.vue @@ -0,0 +1,31 @@ + + diff --git a/package/pages/index.vue b/package/pages/index.vue new file mode 100644 index 0000000..340eaa3 --- /dev/null +++ b/package/pages/index.vue @@ -0,0 +1,22 @@ + + + diff --git a/package/pages/ui/Shadow.vue b/package/pages/ui/Shadow.vue new file mode 100644 index 0000000..94f7d8d --- /dev/null +++ b/package/pages/ui/Shadow.vue @@ -0,0 +1,11 @@ + + + diff --git a/package/pages/ui/Typography.vue b/package/pages/ui/Typography.vue new file mode 100644 index 0000000..b500dc5 --- /dev/null +++ b/package/pages/ui/Typography.vue @@ -0,0 +1,18 @@ + + + diff --git a/package/plugins/vuetify.ts b/package/plugins/vuetify.ts new file mode 100644 index 0000000..5c9b100 --- /dev/null +++ b/package/plugins/vuetify.ts @@ -0,0 +1,40 @@ + +import { createVuetify } from "vuetify"; +import * as components from "vuetify/components"; +import * as directives from "vuetify/directives"; +import PerfectScrollbar from 'vue3-perfect-scrollbar'; +import VueApexCharts from 'vue3-apexcharts'; +import VueTablerIcons from 'vue-tabler-icons'; +import '@/scss/style.scss'; +import { + BLUE_THEME, +} from "@/theme/LightTheme"; +export default defineNuxtPlugin((nuxtApp) => { + const vuetify = createVuetify({ + components, + directives, + theme: { + defaultTheme: "BLUE_THEME", + themes: { + BLUE_THEME, + }, + }, + defaults: { + VBtn: {}, + VCard: { + rounded: 'md' + }, + VTextField: { + rounded: 'lg' + }, + VTooltip: { + location: 'top' + } + } + }); + nuxtApp.vueApp.use(vuetify); + nuxtApp.vueApp.use(PerfectScrollbar); + nuxtApp.vueApp.use(VueApexCharts); + nuxtApp.vueApp.use(VueTablerIcons); +}); + diff --git a/package/public/favicon.ico b/package/public/favicon.ico new file mode 100644 index 0000000..32a3371 Binary files /dev/null and b/package/public/favicon.ico differ diff --git a/package/public/favicon.svg b/package/public/favicon.svg new file mode 100644 index 0000000..cf0338a --- /dev/null +++ b/package/public/favicon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/package/public/images/backgrounds/errorimg.svg b/package/public/images/backgrounds/errorimg.svg new file mode 100644 index 0000000..8f2bb44 --- /dev/null +++ b/package/public/images/backgrounds/errorimg.svg @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/package/public/images/backgrounds/rupee.png b/package/public/images/backgrounds/rupee.png new file mode 100644 index 0000000..424a2e6 Binary files /dev/null and b/package/public/images/backgrounds/rupee.png differ diff --git a/package/public/images/blog/blog-img1.jpg b/package/public/images/blog/blog-img1.jpg new file mode 100644 index 0000000..94204af Binary files /dev/null and b/package/public/images/blog/blog-img1.jpg differ diff --git a/package/public/images/blog/blog-img2.jpg b/package/public/images/blog/blog-img2.jpg new file mode 100644 index 0000000..1595772 Binary files /dev/null and b/package/public/images/blog/blog-img2.jpg differ diff --git a/package/public/images/blog/blog-img3.jpg b/package/public/images/blog/blog-img3.jpg new file mode 100644 index 0000000..b065626 Binary files /dev/null and b/package/public/images/blog/blog-img3.jpg differ diff --git a/package/public/images/logos/logo-icon.svg b/package/public/images/logos/logo-icon.svg new file mode 100644 index 0000000..cf0338a --- /dev/null +++ b/package/public/images/logos/logo-icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/package/public/images/logos/logo.svg b/package/public/images/logos/logo.svg new file mode 100644 index 0000000..2f7b3ae --- /dev/null +++ b/package/public/images/logos/logo.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/package/public/images/products/dash-prd-1.jpg b/package/public/images/products/dash-prd-1.jpg new file mode 100644 index 0000000..899655e Binary files /dev/null and b/package/public/images/products/dash-prd-1.jpg differ diff --git a/package/public/images/products/dash-prd-2.jpg b/package/public/images/products/dash-prd-2.jpg new file mode 100644 index 0000000..8f0f8d7 Binary files /dev/null and b/package/public/images/products/dash-prd-2.jpg differ diff --git a/package/public/images/products/dash-prd-3.jpg b/package/public/images/products/dash-prd-3.jpg new file mode 100644 index 0000000..0de5c01 Binary files /dev/null and b/package/public/images/products/dash-prd-3.jpg differ diff --git a/package/public/images/products/dash-prd-4.jpg b/package/public/images/products/dash-prd-4.jpg new file mode 100644 index 0000000..77be043 Binary files /dev/null and b/package/public/images/products/dash-prd-4.jpg differ diff --git a/package/public/images/profile/user-1.jpg b/package/public/images/profile/user-1.jpg new file mode 100644 index 0000000..8d54dc0 Binary files /dev/null and b/package/public/images/profile/user-1.jpg differ diff --git a/package/public/images/profile/user-2.jpg b/package/public/images/profile/user-2.jpg new file mode 100644 index 0000000..e60f75e Binary files /dev/null and b/package/public/images/profile/user-2.jpg differ diff --git a/package/public/images/profile/user-3.jpg b/package/public/images/profile/user-3.jpg new file mode 100644 index 0000000..55cbe1e Binary files /dev/null and b/package/public/images/profile/user-3.jpg differ diff --git a/package/scss/_override.scss b/package/scss/_override.scss new file mode 100644 index 0000000..cf5bee3 --- /dev/null +++ b/package/scss/_override.scss @@ -0,0 +1,21 @@ +html { + .bg-success { + color: white !important; + } + + .bg-primary { + color: $white !important; + } + + .bg-secondary { + color: $white !important; + } + + .bg-warning { + color: $white !important; + } +} +.border, +.v-divider { + border-color: rgba(var(--v-border-color), 1) !important; +} \ No newline at end of file diff --git a/package/scss/_variables.scss b/package/scss/_variables.scss new file mode 100644 index 0000000..6962e76 --- /dev/null +++ b/package/scss/_variables.scss @@ -0,0 +1,163 @@ +@use 'sass:math'; +@use 'sass:map'; +@use 'sass:meta'; +@use 'vuetify/lib/styles/tools/functions' as *; + +// Custom Variables +// colors +$white: #fff !default; + +// cards +$card-title-size: 18px !default; +$body-font-family: "Manrope", sans-serif !default; +$border-radius-root: 8px; +$btn-letter-spacing: 0 !default; +// Global Shadowsss +$box-shadow: 0px 2px 4px -1px #afb6c933; + +// Global Radius as per breakeven point + +@forward 'vuetify/settings' with ( + $color-pack: false !default, + // Global font size and border radius + $font-size-root: 1rem, + $border-radius-root: $border-radius-root, + $body-font-family: $body-font-family, + $heading-font-family: $body-font-family !default, + // 👉 Typography + $typography: + ( + //36px + 'h1': ( + 'size': 2.25rem, + 'weight': 600, + 'line-height': 3.75rem, + 'font-family': inherit + ), + //30px + 'h2': ( + 'size': 1.875rem, + 'weight': 600, + 'line-height': 2.25rem, + 'font-family': inherit + ), + //22px + 'h3': ( + 'size': 1.375rem, + 'weight': 600, + 'line-height': 2rem, + 'font-family': inherit + ), + //20px + 'h4': ( + 'size': 1.25rem, + 'weight': 600, + 'line-height': 1.6rem, + 'font-family': inherit + ), + //18px + 'h5': ( + 'size': 1.125rem, + 'weight': 600, + 'line-height': 1.6rem, + 'font-family': inherit + ), + //16px + 'h6': ( + 'size': 1rem, + 'weight': 600, + 'line-height': 1.2rem, + 'font-family': inherit + ), + //15px + 'subtitle-1': ( + 'size': 0.94rem, + 'weight': 400, + 'line-height': 1.1rem, + 'font-family': inherit, + 'letter-spacing':0rem + ), + //13px + 'subtitle-2': ( + 'size': 0.81rem, + 'weight': 400, + 'line-height': 1rem, + 'font-family': inherit, + 'letter-spacing':0rem + ), + //14px + 'body-1': ( + 'size': 0.875rem, + 'weight': 400, + 'font-family': inherit, + 'letter-spacing':0rem + ), + //12px + 'body-2': ( + 'size': 0.75rem, + 'weight': 400, + 'font-family': inherit, + 'letter-spacing':0rem + ), + //13px + 'button': ( + 'size': 0.81rem, + 'weight': 600, + 'font-family': inherit, + 'text-transform': capitalize + ), + //14px + 'caption': ( + 'size':0.875rem, + 'weight': 400, + 'font-family': inherit, + 'letter-spacing':0rem + ), + //12px + 'overline': ( + 'size': 0.75rem, + 'weight': 400, + 'font-family': inherit, + 'letter-spacing':0rem + ) + ) + !default, + // 👉 Button + $button-border-radius: 8px !default, + $button-text-letter-spacing: 0 !default, + $button-text-transform: capitalize, + $button-elevation: ( + 'default': 0, + 'hover': 4, + 'active': 8 + ) + !default, + + // 👉 Tooltip + $tooltip-background-color: #212121 !default, + $tooltip-text-color: rgb(var(--v-theme-on-primary)) !default, + $tooltip-font-size: 0.75rem !default, + $tooltip-border-radius: 4px !default, + $tooltip-padding: 4px 8px !default, + + // 👉 Rounded + $rounded: + ( + 0: 0, + 'sm': $border-radius-root - 4, + null: $border-radius-root, + 'md': $border-radius-root + 4, + 'lg': $border-radius-root * 2, + 'xl': $border-radius-root + 8, + 'pill': 9999px, + 'circle': 50% + ), + + // 👉 Card + $card-elevation: 10 !default, + $card-title-line-height: 1.6 !default, + $card-text-padding: 24px !default, + $card-item-padding: 30px 30px !default, + $card-actions-padding: 10px 24px 24px !default, + $card-subtitle-opacity: 1 !default, +); \ No newline at end of file diff --git a/package/scss/components/_VButtons.scss b/package/scss/components/_VButtons.scss new file mode 100644 index 0000000..a1ca59b --- /dev/null +++ b/package/scss/components/_VButtons.scss @@ -0,0 +1,27 @@ +// +// global + +.v-btn-group .v-btn { + height: inherit !important; +} +.v-btn { + border-radius: $border-radius-root; + text-transform: capitalize !important; + font-size: 13px !important; +} +.v-btn-group { + border-color: rgb(var(--v-theme-borderColor)) !important; +} + +.v-btn--size-large{ + font-size: 14px; +} + +.btn-white{ + background-color: rgb(var(--v-theme-surface)) !important; + padding:10px 15px; + &:hover{ + background-color: rgb(var(--v-theme-primary)) !important; + color: #fff !important; + } +} \ No newline at end of file diff --git a/package/scss/components/_VCard.scss b/package/scss/components/_VCard.scss new file mode 100644 index 0000000..bad7bf3 --- /dev/null +++ b/package/scss/components/_VCard.scss @@ -0,0 +1,60 @@ +// Outline Card +.v-card--variant-outlined { + border-color: rgba(var(--v-theme-borderColor)) !important; + background-color:rgb(var(--v-theme-surface)); ; +} + +.v-card--variant-elevated, +.v-card--variant-flat { + color: rgb(var(--v-theme-textPrimary)); +} + +.card-hover { + transition: box-shadow 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; + + &:hover { + img { + transform: scale(1.09); + transition: transform .2s; + } + } +} + +.v-card { + width: 100%; + overflow: visible; + + .color-inherits { + color: inherit; + } + + .v-card-item{ + padding: 30px !important; + } + + .feature-card { + .v-responsive__content { + height: 100%; + } + } + + .v-card-title { + line-height: normal; + margin-bottom: 8px; + } + .v-card-subtitle{ + color: rgb(var(--v-theme-textSecondary)); + } + .v-card-text{ + font-size: 14px; + } + +} + +// Theme cards +.cardBordered { + .v-card { + box-shadow: none !important; + border: 1px solid rgb(var(--v-theme-borderColor)); + } +} \ No newline at end of file diff --git a/package/scss/components/_VField.scss b/package/scss/components/_VField.scss new file mode 100644 index 0000000..5b4a881 --- /dev/null +++ b/package/scss/components/_VField.scss @@ -0,0 +1,38 @@ +.v-field--variant-outlined .v-field__outline__start.v-locale--is-ltr, +.v-locale--is-ltr .v-field--variant-outlined .v-field__outline__start { + border-radius: $border-radius-root 0 0 $border-radius-root; +} + +.v-field--variant-outlined .v-field__outline__end.v-locale--is-ltr, +.v-locale--is-ltr .v-field--variant-outlined .v-field__outline__end { + border-radius: 0 $border-radius-root $border-radius-root 0; +} + +.v-field { + font-size: 14px !important; + color: rgba(var(--v-theme-textPrimary)); +} + +// select outlined +.v-field--variant-outlined .v-field__outline__start, +.v-field--variant-outlined .v-field__outline__notch::before, +.v-field--variant-outlined .v-field__outline__notch::after, +.v-field--variant-outlined .v-field__outline__end { + opacity: 1; +} + + + +.v-text-field input { + font-size: 0.875rem; + } + .v-field__outline { + color: rgb(var(--v-theme-borderColor)); + --v-field-border-opacity: 1 !important; + } + .input { + .v-field--variant-outlined { + background-color: rgba(0, 0, 0, 0.025); + } + } + \ No newline at end of file diff --git a/package/scss/components/_VInput.scss b/package/scss/components/_VInput.scss new file mode 100644 index 0000000..b60ad03 --- /dev/null +++ b/package/scss/components/_VInput.scss @@ -0,0 +1,34 @@ +// variant +.v-input--density-default, +.v-field--variant-solo, +.v-field--variant-filled { + --v-input-control-height: 51px; + --v-input-padding-top: 14px; +} + +// comfortable +.v-input--density-comfortable { + --v-input-control-height: 44px; +} + +// compact +.v-input--density-compact { + --v-input-padding-top: 10px; +} +.v-label { + font-size: 0.875rem; + opacity: 1; +} +.v-switch .v-label, +.v-checkbox .v-label { + opacity: 1; +} + +.v-text-field__suffix { + opacity: 1; + padding-left: 20px; +} + +.shadow-none .v-field--variant-solo { + box-shadow: none !important; +} diff --git a/package/scss/components/_VNavigationDrawer.scss b/package/scss/components/_VNavigationDrawer.scss new file mode 100644 index 0000000..9994ae9 --- /dev/null +++ b/package/scss/components/_VNavigationDrawer.scss @@ -0,0 +1,3 @@ +.v-navigation-drawer__scrim.fade-transition-leave-to { + display: none; +} diff --git a/package/scss/components/_VShadow.scss b/package/scss/components/_VShadow.scss new file mode 100644 index 0000000..67ed9ac --- /dev/null +++ b/package/scss/components/_VShadow.scss @@ -0,0 +1,15 @@ +.elevation-9 { + box-shadow: rgb(0 0 0 / 5%) 0px 9px 17.5px !important; +} + +.elevation-10 { + box-shadow: $box-shadow !important; +} + +.primary-shadow { + box-shadow: rgba(var(--v-theme-primary), 0.30) 0px 12px 14px 0px; + &:hover { + box-shadow: none; + } +} + diff --git a/package/scss/components/_VTable.scss b/package/scss/components/_VTable.scss new file mode 100644 index 0000000..bf49709 --- /dev/null +++ b/package/scss/components/_VTable.scss @@ -0,0 +1,78 @@ +.v-table .v-table__wrapper>table>tbody>tr:not(:last-child)>td, +.v-table .v-table__wrapper>table>tbody>tr:not(:last-child)>th, +.v-table .v-table__wrapper>table>thead>tr:last-child>th { + border-bottom: thin solid rgba(var(--v-theme-borderColor), 0.6) !important; +} + +.v-table { + &.dark-table { + background-color: rgb(var(--v-theme-grey200)); + } +} + +.v-table { + .v-table__wrapper { + table { + tbody { + tr { + + td { + padding: 14px 24px !important; + + &:first-child { + padding-left: 0 ; + } + } + } + } + + thead { + tr { + th { + padding: 14px 24px !important; + + &:first-child { + padding-left: 0 ; + } + } + } + } + } + + } +} + +.v-table{ + &.revenue-table{ + .v-table__wrapper { + table { + tbody { + tr { + + td { + padding: 14px 24px !important; + + &:first-child { + padding-left: 0 !important; + } + } + } + } + + thead { + tr { + th { + padding: 14px 24px !important; + + &:first-child { + padding-left: 0 !important; + } + } + } + } + } + + } + } +} + diff --git a/package/scss/layout/_container.scss b/package/scss/layout/_container.scss new file mode 100644 index 0000000..f82772b --- /dev/null +++ b/package/scss/layout/_container.scss @@ -0,0 +1,38 @@ +html { + overflow-y: auto; +} + +@media (max-width: 1279px) { + .v-main { + margin: 0 10px; + } +} + + +.cursor-pointer { + cursor: pointer; +} + +.page-wrapper { + min-height: calc(100vh - 100px); + padding: 24px; + + @media screen and (max-width: 767px) { + padding: 20px 10px; + } +} + +.maxWidth { + max-width: 1200px; + margin: 0 auto; + padding: 0 20px; + + @media screen and (max-width: 1199px) { + padding: 0 8px !important; + } +} + + +.h-100vh { + height: 100vh; +} \ No newline at end of file diff --git a/package/scss/layout/_sidebar.scss b/package/scss/layout/_sidebar.scss new file mode 100644 index 0000000..6ec5850 --- /dev/null +++ b/package/scss/layout/_sidebar.scss @@ -0,0 +1,181 @@ +/*This is for the logo*/ +.leftSidebar { + box-shadow: none !important; + + .logo { + padding-left: 7px; + } + + .mini-icon { + display: none; + } + + .mini-text { + display: block; + font-size: 12px !important; + font-weight: 600 !important; + letter-spacing: 1.5px !important; + text-transform: uppercase !important; + color:inherit + } + + .v-list--density-default .v-list-subheader { + padding-inline-start: 0 !important; + } + + +} + +/*This is for the Vertical sidebar*/ +.scrollnavbar { + height: calc(100vh - 100px); + + .userbottom { + position: fixed; + bottom: 0px; + width: 100%; + } + + .smallCap { + padding: 20px 0px 10px !important; + font-size: 0.875rem; + font-weight: 500; + margin-top: 24px; + color: rgb(var(--v-theme-textPrimary)); + + &:first-child { + margin-top: 0 !important; + } + } + + + /*General Menu css*/ + + .v-list-group__items { + .v-list-item { + min-height: 35px !important; + padding-inline-start: calc(12px + var(--indent-padding) / 10) !important; + + .v-list-item__prepend .dot { + height: 6px; + width: 6px; + background-color: rgb(var(--v-theme-textSecondary)); + border-radius: 50%; + margin-inline-end: 8px !important; + } + + .v-list-item-title { + font-size: 14px !important; + } + + &:hover { + color: rgb(var(--v-theme-primary)); + + .v-list-item__prepend .dot { + background-color: rgb(var(--v-theme-primary)); + } + } + + &.v-list-item--active { + .v-list-item__prepend .dot { + background-color: rgb(var(--v-theme-primary)); + } + } + + } + } + + .v-list-group__items .v-list-item, + .v-list-item { + border-radius: $border-radius-root + 4; + color: rgba(var(--v-theme-textPrimary),0.8); + margin: 0 0 2px; + + &:hover { + color: rgb(var(--v-theme-primary)); + } + + .v-list-item__prepend { + margin-inline-end: 13px; + } + + .v-list-item__append { + font-size: 15px; + + .v-icon { + margin-inline-start: 13px; + } + } + + .v-list-item-title { + font-size: 15px; + + } + } + + /*This is for the dropdown*/ + .v-list { + color: rgb(var(--v-theme-textSecondary)); + + .v-list-subheader { + &:first-of-type { + border-top: 0; + } + + border-top: 1px solid rgb(var(--v-theme-borderColor)); + } + + + >.v-list-item.v-list-item--active, + .v-list-item--active>.v-list-item__overlay { + background: rgb(var(--v-theme-primary)); + color: white; + box-shadow: 0 17px 20px -8px rgba(var(--v-theme-primary), 0.2); + } + + >.v-list-group { + position: relative; + + >.v-list-item--active, + >.v-list-item--active:hover { + background: rgb(var(--v-theme-primary)); + color: white; + box-shadow: 0 17px 20px -8px rgba(var(--v-theme-primary), 0.2); + } + + .v-list-group__items .v-list-item.v-list-item--active, + .v-list-group__items .v-list-item.v-list-item--active>.v-list-item__overlay { + background: transparent; + color: rgb(var(--v-theme-primary)); + } + } + } +} + +.v-list-item--density-default:not(.v-list-item--nav).v-list-item--one-line { + padding-inline: 14px; +} + +.v-navigation-drawer--rail { + + .scrollnavbar .v-list .v-list-group__items, + .hide-menu { + opacity: 1; + } + + + .leftPadding { + margin-left: 0px; + } +} + + +// scrollbar +.ps__rail-y { + z-index: 9; +} + +.v-navigation-drawer { + box-shadow: none !important; + border-right: 0 !important; +} diff --git a/package/scss/layout/_topbar.scss b/package/scss/layout/_topbar.scss new file mode 100644 index 0000000..60f0b3e --- /dev/null +++ b/package/scss/layout/_topbar.scss @@ -0,0 +1,56 @@ +.v-app-bar { + .v-toolbar__content { + padding: 0 24px 0 10px; + display: flex; + gap:8px; + + >.v-btn:first-child { + margin-inline-start: 0; + } + + .v-btn { + &.custom-hover-primary{ + .iconify{ + color: rgba(var(--v-theme-textPrimary), 0.7) !important; + } + &:hover{ + background-color: rgb(var(--v-theme-lightprimary)) ; + .iconify{ + color: rgb(var(--v-theme-primary)) !important; + } + + } + + } + + } + } +} + +.mobile_popup{ + .v-btn { + &.custom-hover-primary{ + .iconify{ + color: rgba(var(--v-theme-textPrimary), 0.7) !important; + } + } + } +} + +.custom-text-primary { + &:hover { + .custom-title { + color: rgb(var(--v-theme-primary)) !important; + } + } +} + + + +@media screen and (max-width:1279px) { + .mini-sidebar { + .v-navigation-drawer.v-navigation-drawer--left { + width: 260px !important; + } + } +} \ No newline at end of file diff --git a/package/scss/pages/_dashboards.scss b/package/scss/pages/_dashboards.scss new file mode 100644 index 0000000..412fe05 --- /dev/null +++ b/package/scss/pages/_dashboards.scss @@ -0,0 +1,141 @@ +// Dashboard 1 +.welcome-img{ + max-height: 200px; + height: 200px; +} + +.labels-chart .label-1 { + position: absolute; + width: 25px; + left: 0; + right: 0; + margin: 0 auto; + top: -3px +} + +.labels-chart .label-2 { + position: absolute; + right: 0; + top: 50% +} + +.labels-chart .label-3 { + position: absolute; + width: 40px; + left: 0; + right: 0; + margin: 0 auto; + bottom: 0; + text-align: center +} + +.labels-chart .label-4 { + position: absolute; + top: 50% +} + +// Revenue Products +.revenue-products { + .v-slide-group__content { + gap: 24px; + } + + .v-btn { + background-color: rgba(var(--v-theme-grey100), 0.8); + padding: 12px 24px; + } + + .v-slide-group-item--active.v-tab--selected { + background-color: rgba(var(--v-theme-primary)); + + .v-btn__content { + color: #fff; + + .v-tab__slider { + display: none; + } + } + } +} + +// Dashboard 2 +.bg-primary-gt { + background: linear-gradient(261.23deg, rgba(var(--v-theme-primary)) .42%, #5a52ff 100%) !important; + + img { + bottom: 0; + right: 0; + z-index: -1; + } +} + +.profit-card { + .badge-custom-dark { + background-color: rgba(41, 52, 61, .2) !important; + padding: 5px 12px; + width: fit-content; + } +} + +.rounded-bars { + .apexcharts-bar-series.apexcharts-plot-series .apexcharts-series path { + clip-path: inset(0 0 5% 0 round 20px); + } +} + +.rounded-pill-bars .apexcharts-rangebar-area { + clip-path: inset(9% 0% 11% round 24px); +} + +// Annual Profit +.annual-list { + .list { + &:last-child { + border-bottom: 0 !important; + padding-bottom: 0 !important; + } + } +} + +.daily-activities { + .line { + width: 1px; + height: 50px; + margin-top: -6px; + } +} + +//Dashboard 3 +.primary-gradient { + background: linear-gradient(180deg,rgba(var(--v-theme-primary),.12) 0,rgba(var(--v-theme-primary),.03) 100%) +} + +.warning-gradient { + background: linear-gradient(180deg,rgba(var(--v-theme-warning),.12) 0,rgba(var(--v-theme-warning),.03) 100%) +} + +.secondary-gradient { + background: linear-gradient(180deg,rgba(var(--v-theme-secondary),.12) 0,rgba(var(--v-theme-secondary),.03) 100%) +} + +.error-gradient { + background: linear-gradient(180deg,rgba(var(--v-theme-error),.12) 0,rgba(var(--v-theme-error),.03) 100%) +} + +.success-gradient { + background: linear-gradient(180deg,rgba(var(--v-theme-success),.12) 0,rgba(var(--v-theme-success),.03) 100%) +} + + +.icon-grid-width{ + width: 20% !important; + @media screen and (max-width:1190px) { + width: 33% !important; + } +} + +@media screen and (max-width:1368px){ + .welcome-img { + max-height: 150px; + } +} \ No newline at end of file diff --git a/package/scss/style.scss b/package/scss/style.scss new file mode 100644 index 0000000..7252c06 --- /dev/null +++ b/package/scss/style.scss @@ -0,0 +1,15 @@ +@import url("https://fonts.googleapis.com/css2?family=Manrope:wght@200..800&display=swap"); +@import './variables'; +@import 'vuetify/styles/main.sass'; +@import './layout/container'; +@import './layout/sidebar'; +@import './layout/topbar'; +@import './components/VButtons'; +@import './components/VCard'; +@import './components/VInput'; +@import './components/VField'; +@import './components/VNavigationDrawer'; +@import './components/VShadow'; +@import './components/VTable'; +@import 'pages/dashboards'; +@import 'vue3-perfect-scrollbar/dist/vue3-perfect-scrollbar.css'; \ No newline at end of file diff --git a/package/theme/LightTheme.ts b/package/theme/LightTheme.ts new file mode 100644 index 0000000..15c71b9 --- /dev/null +++ b/package/theme/LightTheme.ts @@ -0,0 +1,39 @@ +import type { ThemeTypes } from '@/types/themeTypes/ThemeType'; + +const BLUE_THEME: ThemeTypes = { + name: 'BLUE_THEME', + dark: false, + variables: { + 'border-color': '#e0e6eb', + 'border-opacity': 1 + }, + colors: { + primary: '#635BFF', + secondary: '#14E9E2', + info: '#46caeb', + success: '#36c76c', + warning: '#ffd648', + error: '#ff6692', + lightprimary: '#D5D3FC', + lightsecondary: '#D0FBF9', + lightsuccess: '#E1F7E9', + lighterror: '#FFD9E4', + lightinfo: '#DAF4FB', + lightwarning: '#FFF7DA', + textPrimary: '#0a2540', + textSecondary: '#7b8893', + borderColor: '#e0e6eb', + containerBg: '#ffffff', + background: '#F4F7FB', + hoverColor: '#f6f9fc', + surface: '#fff', + grey100: '#EAEFF4', + grey200: '#29343d', + light: '#EFF4FA', + muted:'#526b7a' + } +}; + + + +export { BLUE_THEME}; diff --git a/package/tsconfig.json b/package/tsconfig.json new file mode 100644 index 0000000..a746f2a --- /dev/null +++ b/package/tsconfig.json @@ -0,0 +1,4 @@ +{ + // https://nuxt.com/docs/guide/concepts/typescript + "extends": "./.nuxt/tsconfig.json" +} diff --git a/package/types/dashboard/index.ts b/package/types/dashboard/index.ts new file mode 100644 index 0000000..c555603 --- /dev/null +++ b/package/types/dashboard/index.ts @@ -0,0 +1,37 @@ +/*Revenue Projects*/ +type RevenueProjects={ + img: string; + leadname: string; + designation: string; + projectname: string; + statuscolor: string; + statustext: string; + money: string; +}; + +// Daily Activities +type DailyActivities = { + title: string; + subtitle: string; + textcolor: string; + boldtext: boolean; + line: boolean; + link: string; + url: string; +}; + +/*Card types*/ +type BlogCards = { + avatar: string; + coveravatar: string; + read: string; + title: string; + link: string; + category: string; + name: string; + view: string; + comments: string; + time: string; +}; + +export type{RevenueProjects,DailyActivities,BlogCards} \ No newline at end of file diff --git a/package/types/themeTypes/ThemeType.ts b/package/types/themeTypes/ThemeType.ts new file mode 100644 index 0000000..f25ec93 --- /dev/null +++ b/package/types/themeTypes/ThemeType.ts @@ -0,0 +1,30 @@ +export type ThemeTypes = { + name: string; + dark: boolean; + variables?: object; + colors: { + primary?: string; + secondary?: string; + info?: string; + success?: string; + warning?: string; + error?: string; + lightprimary?: string; + lightsecondary?: string; + lightsuccess?: string; + lighterror?: string; + lightinfo?: string; + lightwarning?: string; + textPrimary?: string; + textSecondary?: string; + borderColor?: string; + hoverColor?: string; + containerBg?: string; + background?: string; + surface?: string; + grey100?: string; + grey200?: string; + light?:string; + muted?:string; + }; +};