whelk-ui 0.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.vscode/extensions.json +3 -0
- package/README.md +5 -0
- package/package.json +33 -0
- package/public/vite.svg +1 -0
- package/src/components/button/ButtonComponent.vue +113 -0
- package/src/index.ts +3 -0
- package/src/styles/_accessibility.css +11 -0
- package/src/styles/main.css +84 -0
- package/src/styles/variables/_general_variables.css +84 -0
- package/src/styles/variables/_media_variables.css +10 -0
- package/tsconfig.app.json +16 -0
- package/tsconfig.json +7 -0
- package/tsconfig.node.json +25 -0
- package/vite.config.ts +50 -0
package/README.md
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
# Vue 3 + TypeScript + Vite
|
|
2
|
+
|
|
3
|
+
This template should help get you started developing with Vue 3 and TypeScript in Vite. The template uses Vue 3 `<script setup>` SFCs, check out the [script setup docs](https://v3.vuejs.org/api/sfc-script-setup.html#sfc-script-setup) to learn more.
|
|
4
|
+
|
|
5
|
+
Learn more about the recommended Project Setup and IDE Support in the [Vue Docs TypeScript Guide](https://vuejs.org/guide/typescript/overview.html#project-setup).
|
package/package.json
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "whelk-ui",
|
|
3
|
+
"private": false,
|
|
4
|
+
"version": "0.0.0",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"scripts": {
|
|
7
|
+
"dev": "vite",
|
|
8
|
+
"build": "vue-tsc -b && vite build",
|
|
9
|
+
"preview": "vite preview"
|
|
10
|
+
},
|
|
11
|
+
"dependencies": {
|
|
12
|
+
"lucide-vue-next": "^0.562.0",
|
|
13
|
+
"vue": "^3.5.24"
|
|
14
|
+
},
|
|
15
|
+
"devDependencies": {
|
|
16
|
+
"@csstools/postcss-global-data": "^3.1.0",
|
|
17
|
+
"@types/node": "^24.10.1",
|
|
18
|
+
"@vitejs/plugin-vue": "^6.0.1",
|
|
19
|
+
"@vitest/browser-playwright": "^4.0.7",
|
|
20
|
+
"@vitest/coverage-v8": "^4.0.8",
|
|
21
|
+
"@vitest/eslint-plugin": "^1.4.0",
|
|
22
|
+
"@vue/tsconfig": "^0.8.1",
|
|
23
|
+
"postcss": "^8.5.6",
|
|
24
|
+
"postcss-custom-media": "^11.0.6",
|
|
25
|
+
"postcss-nesting": "^13.0.2",
|
|
26
|
+
"typescript": "~5.9.3",
|
|
27
|
+
"vite": "^7.2.4",
|
|
28
|
+
"vite-plugin-vue-devtools": "^8.0.3",
|
|
29
|
+
"vitest": "^4.0.8",
|
|
30
|
+
"vitest-browser-vue": "^2.0.1",
|
|
31
|
+
"vue-tsc": "^3.1.4"
|
|
32
|
+
}
|
|
33
|
+
}
|
package/public/vite.svg
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="31.88" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 257"><defs><linearGradient id="IconifyId1813088fe1fbc01fb466" x1="-.828%" x2="57.636%" y1="7.652%" y2="78.411%"><stop offset="0%" stop-color="#41D1FF"></stop><stop offset="100%" stop-color="#BD34FE"></stop></linearGradient><linearGradient id="IconifyId1813088fe1fbc01fb467" x1="43.376%" x2="50.316%" y1="2.242%" y2="89.03%"><stop offset="0%" stop-color="#FFEA83"></stop><stop offset="8.333%" stop-color="#FFDD35"></stop><stop offset="100%" stop-color="#FFA800"></stop></linearGradient></defs><path fill="url(#IconifyId1813088fe1fbc01fb466)" d="M255.153 37.938L134.897 252.976c-2.483 4.44-8.862 4.466-11.382.048L.875 37.958c-2.746-4.814 1.371-10.646 6.827-9.67l120.385 21.517a6.537 6.537 0 0 0 2.322-.004l117.867-21.483c5.438-.991 9.574 4.796 6.877 9.62Z"></path><path fill="url(#IconifyId1813088fe1fbc01fb467)" d="M185.432.063L96.44 17.501a3.268 3.268 0 0 0-2.634 3.014l-5.474 92.456a3.268 3.268 0 0 0 3.997 3.378l24.777-5.718c2.318-.535 4.413 1.507 3.936 3.838l-7.361 36.047c-.495 2.426 1.782 4.5 4.151 3.78l15.304-4.649c2.372-.72 4.652 1.36 4.15 3.788l-11.698 56.621c-.732 3.542 3.979 5.473 5.943 2.437l1.313-2.028l72.516-144.72c1.215-2.423-.88-5.186-3.54-4.672l-25.505 4.922c-2.396.462-4.435-1.77-3.759-4.114l16.646-57.705c.677-2.35-1.37-4.583-3.769-4.113Z"></path></svg>
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
</script>
|
|
3
|
+
|
|
4
|
+
<template>
|
|
5
|
+
<button>
|
|
6
|
+
Hello World
|
|
7
|
+
</button>
|
|
8
|
+
</template>
|
|
9
|
+
|
|
10
|
+
<style scoped>
|
|
11
|
+
button {
|
|
12
|
+
padding: 0.5rem 1rem;
|
|
13
|
+
border: var(--border);
|
|
14
|
+
border-radius: var(--border-radius);
|
|
15
|
+
border-width: var(--border-width);
|
|
16
|
+
border-style: var(--border-style);
|
|
17
|
+
color: var(--text);
|
|
18
|
+
|
|
19
|
+
&.compact {
|
|
20
|
+
padding: 0.25rem 0.125rem;
|
|
21
|
+
font-size: 0.75rem;
|
|
22
|
+
line-height: 1rem;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
&.tiny {
|
|
26
|
+
padding: 0.125rem 0rem;
|
|
27
|
+
font-size: 0.75rem;
|
|
28
|
+
line-height: 0.75rem;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
&.primary {
|
|
32
|
+
background-color: var(--primary);
|
|
33
|
+
border-color: var(--primary);
|
|
34
|
+
|
|
35
|
+
&:hover {
|
|
36
|
+
&:enabled {
|
|
37
|
+
background-color: var(--primary-hover);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
&.secondary {
|
|
43
|
+
background-color: var(--secondary);
|
|
44
|
+
border-color: var(--secondary);
|
|
45
|
+
|
|
46
|
+
&:hover {
|
|
47
|
+
&:enabled {
|
|
48
|
+
background-color: var(--secondary-hover);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
&.danger {
|
|
54
|
+
background-color: var(--danger);
|
|
55
|
+
border-color: var(--danger);
|
|
56
|
+
|
|
57
|
+
&:hover {
|
|
58
|
+
&:enabled {
|
|
59
|
+
background-color: var(--danger-hover);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
&.warning {
|
|
65
|
+
background-color: var(--warning);
|
|
66
|
+
border-color: var(--warning);
|
|
67
|
+
|
|
68
|
+
&:hover {
|
|
69
|
+
&:enabled {
|
|
70
|
+
background-color: var(--warning-hover);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
&.success {
|
|
76
|
+
background-color: var(--success);
|
|
77
|
+
border-color: var(--success);
|
|
78
|
+
|
|
79
|
+
&:hover {
|
|
80
|
+
&:enabled {
|
|
81
|
+
background-color: var(--success-hover);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
&.info {
|
|
87
|
+
background-color: var(--info);
|
|
88
|
+
border-color: var(--info);
|
|
89
|
+
|
|
90
|
+
&:hover {
|
|
91
|
+
&:enabled {
|
|
92
|
+
background-color: var(--info-hover);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
&.loading {
|
|
98
|
+
animation: loading-animation 1s infinite linear;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
@keyframes loading-animation {
|
|
103
|
+
0% {
|
|
104
|
+
color: var(--text);
|
|
105
|
+
}
|
|
106
|
+
50% {
|
|
107
|
+
color: var(--text-muted);
|
|
108
|
+
}
|
|
109
|
+
100% {
|
|
110
|
+
color: var(--text);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
</style>
|
package/src/index.ts
ADDED
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
@import "_accessibility.css";
|
|
2
|
+
@import "@/styles/variables/_general_variables.css";
|
|
3
|
+
|
|
4
|
+
@font-face {
|
|
5
|
+
font-family: "Roboto";
|
|
6
|
+
src: url("@/assets/fonts/Roboto-Regular.ttf") format("truetype");
|
|
7
|
+
font-weight: 400;
|
|
8
|
+
font-style: normal;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
@font-face {
|
|
12
|
+
font-family: "Roboto";
|
|
13
|
+
src: url("@/assets/fonts/Roboto-Thin.ttf") format("truetype");
|
|
14
|
+
font-weight: 100;
|
|
15
|
+
font-style: normal;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
@font-face {
|
|
19
|
+
font-family: "CalSans";
|
|
20
|
+
src: url("@/assets/fonts/CalSans-Regular.ttf") format("truetype");
|
|
21
|
+
font-style: normal;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
h1, h2, h3, h4, h5, h6 {
|
|
25
|
+
margin: 0;
|
|
26
|
+
font-family: "CalSans",
|
|
27
|
+
sans-serif;
|
|
28
|
+
font-weight: normal;
|
|
29
|
+
font-style: normal;
|
|
30
|
+
color: var(--text-red);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
h1 {
|
|
34
|
+
font-size: 2rem;
|
|
35
|
+
line-height: 2.125rem;
|
|
36
|
+
font-weight: bold;
|
|
37
|
+
@media (--large-screen) {
|
|
38
|
+
font-size: 3rem;
|
|
39
|
+
line-height: 3.25rem;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
h2 {
|
|
44
|
+
font-size: 1.5rem;
|
|
45
|
+
line-height: 1.625rem;
|
|
46
|
+
font-weight: bold;
|
|
47
|
+
@media (--large-screen) {
|
|
48
|
+
font-size: 2rem;
|
|
49
|
+
line-height: 2.25rem;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
p, label, button {
|
|
54
|
+
font-size: 1.25rem;
|
|
55
|
+
font-family: "Roboto", sans-serif;
|
|
56
|
+
line-height: 1.5rem;
|
|
57
|
+
color: var(--text);
|
|
58
|
+
margin-bottom: 0;
|
|
59
|
+
@meida (--large-screen) {
|
|
60
|
+
font-size: 1rem;
|
|
61
|
+
line-height: 1.25rem;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
input, textarea {
|
|
66
|
+
font-family: "Roboto", sans-serif;
|
|
67
|
+
font-size: 1.5rem;
|
|
68
|
+
line-height: 1.75rem;
|
|
69
|
+
padding: 0.5rem;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
.sub-text {
|
|
73
|
+
font-family: "Roboto", sans-serif;
|
|
74
|
+
font-weight: 100;
|
|
75
|
+
margin: 0.5rem 0 3rem 0;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
.mt-0 {
|
|
79
|
+
margin-top: 0 !important;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
.mb-0 {
|
|
83
|
+
margin-bottom: 0 !important;
|
|
84
|
+
}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
:root { /* Set all the grid size here */
|
|
2
|
+
--xx-small-grid-width: 320px;
|
|
3
|
+
--x-small-grid-width: 400px;
|
|
4
|
+
--small-grid-width: 640px;
|
|
5
|
+
--medium-grid-width: 768px;
|
|
6
|
+
--large-grid-width: 1024px;
|
|
7
|
+
--x-large-grid-width: 1280px;
|
|
8
|
+
--xx-large-grid-width: 1536px; /* Set all variables in here for globals */
|
|
9
|
+
/*--xx-small-card-width: 320px;*/ /*--x-small-card-width: 400px;*/
|
|
10
|
+
/*--small-card-width: 640px;*/ /*--medium-card-width: 768px;*/
|
|
11
|
+
/*--large-card-width: 1024px;*/ /*--x-large-card-width: 1280px;*/
|
|
12
|
+
/*--xx-large-card-width: 1536px;*/ /* Set all the border variables here */
|
|
13
|
+
--border-radius: 5px;
|
|
14
|
+
--border-style: solid;
|
|
15
|
+
--border-width: 1px;
|
|
16
|
+
/* Set all the
|
|
17
|
+
colour variables here */
|
|
18
|
+
--bg-dark: hsl(26 53% 89%);
|
|
19
|
+
--bg: hsl(26 100% 94%);
|
|
20
|
+
--bg-light: hsl(26 100% 100%);
|
|
21
|
+
--text: hsl(16 100% 4%);
|
|
22
|
+
--text-red: hsl(8, 93%, 43%);
|
|
23
|
+
--text-muted: hsl(26 35% 27%);
|
|
24
|
+
--highlight: hsl(26 100% 99%);
|
|
25
|
+
--border: hsl(26 21% 49%);
|
|
26
|
+
--border-muted: hsl(26 27% 61%);
|
|
27
|
+
--primary: hsl(27 65% 66%);
|
|
28
|
+
--primary-hover: hsl(27 65% 76%);
|
|
29
|
+
--secondary: hsl(204 74% 68%);
|
|
30
|
+
--secondary-hover: hsl(204 74% 78%);
|
|
31
|
+
--danger: hsl(9 26% 64%);
|
|
32
|
+
--danger-hover: hsl(9 26% 74%);
|
|
33
|
+
--warning: hsl(52 19% 57%);
|
|
34
|
+
--warning-hover: hsl(52 19% 67%);
|
|
35
|
+
--success: hsl(146 17% 59%);
|
|
36
|
+
--success-hover: hsl(146 17% 69%);
|
|
37
|
+
--info: hsl(217 28% 65%);
|
|
38
|
+
--info-hover: hsl(217 28% 75%); /* Set all the object colours here */
|
|
39
|
+
--document-links: hsl(203.53, 40.8%, 24.51%);
|
|
40
|
+
--document-links-hover: hsl(203.53, 40.8%, 75.51%);
|
|
41
|
+
--customer-background: hsl(203.53, 40.8%, 75.49%);
|
|
42
|
+
--customer-text: hsl(203.53, 40.8%, 24.51%);
|
|
43
|
+
--kanban-board-background: hsl(78.26, 88.46%, 89.8%);
|
|
44
|
+
--kanban-board-text: hsl(78.26, 88.46%, 10.2%);
|
|
45
|
+
--kanban-card-background: hsl(74.12, 35.56%, 53.14%);
|
|
46
|
+
--kanban-card-text: hsl(74.12, 35.56%, 10.86%);
|
|
47
|
+
--organisation-background: hsl(52.05, 85.57%, 61.96%);
|
|
48
|
+
--organisation-text: hsl(52.05, 85.57%, 8.04%);
|
|
49
|
+
--request-for-change-background: hsl(67.61, 100%, 72.16%);
|
|
50
|
+
--request-for-change-text: hsl(67.61, 100%, 7.84%);
|
|
51
|
+
--requirement-background: hsl(200.31, 94.2%, 86.47%);
|
|
52
|
+
--requirement-text: hsl(200.31, 94.2%, 10.53%);
|
|
53
|
+
--requirement-item-background: hsl(322.8, 29.76%, 67.06%);
|
|
54
|
+
--requirement-item-text: hsl(322.8, 29.76%, 8.94%);
|
|
55
|
+
--project-background: hsl(333.62, 49.57%, 45.88%);
|
|
56
|
+
--project-text: hsl(333.62, 49.57%, 8.12%);
|
|
57
|
+
--task-background: hsl(224, 10.2%, 71.82%);
|
|
58
|
+
--task-text: hsl(224, 10.2%, 7.18%);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
.dark {
|
|
62
|
+
--bg-dark: hsl(16 100% 2%);
|
|
63
|
+
--bg: hsl(22 76% 4%);
|
|
64
|
+
--bg-light: hsl(26 50% 8%);
|
|
65
|
+
--text: hsl(26 100% 94%);
|
|
66
|
+
--text-red: hsl(8,
|
|
67
|
+
93%, 23%);
|
|
68
|
+
--text-muted: hsl(26 34% 68%);
|
|
69
|
+
--highlight: hsl(26 26% 38%);
|
|
70
|
+
--border: hsl(26 35% 27%);
|
|
71
|
+
--border-muted: hsl(27 56% 16%);
|
|
72
|
+
--primary: hsl(32 100% 20%);
|
|
73
|
+
--primary-hover: hsl(32 100% 10%);
|
|
74
|
+
--secondary: hsl(198 100% 20%);
|
|
75
|
+
--secondary-hover: hsl(198 100% 10%);
|
|
76
|
+
--danger: hsl(9 21% 41%);
|
|
77
|
+
--danger-hover: hsl(9 21% 31%);
|
|
78
|
+
--warning: hsl(52 23% 34%);
|
|
79
|
+
--warning-hover: hsl(52 23% 24%);
|
|
80
|
+
--success: hsl(147 19% 36%);
|
|
81
|
+
--success-hover: hsl(147 19% 26%);
|
|
82
|
+
--info: hsl(217 22% 41%);
|
|
83
|
+
--info-hover: hsl(217 22% 31%);
|
|
84
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/* Mobile phone screens will have a screen size smaller than 640 * Small screens
|
|
2
|
+
will have a screen size of 640px or larger * Medium screen will have a screen
|
|
3
|
+
size of 768px or larger * etc. * * Small screens are considered mobile phones *
|
|
4
|
+
Medium screens are considered tables * Large screens are considered laptops *
|
|
5
|
+
etc. */
|
|
6
|
+
@custom-media --small-screen (min-width: 640px);
|
|
7
|
+
@custom-media --medium-screen (min-width: 768px);
|
|
8
|
+
@custom-media --large-screen (min-width: 1024px);
|
|
9
|
+
@custom-media --x-large-screen (min-width: 1280px);
|
|
10
|
+
@custom-media --2x-large-screen (min-width: 1536px);
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"extends": "@vue/tsconfig/tsconfig.dom.json",
|
|
3
|
+
"compilerOptions": {
|
|
4
|
+
"tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo",
|
|
5
|
+
"types": ["vite/client"],
|
|
6
|
+
|
|
7
|
+
/* Linting */
|
|
8
|
+
"strict": true,
|
|
9
|
+
"noUnusedLocals": true,
|
|
10
|
+
"noUnusedParameters": true,
|
|
11
|
+
"erasableSyntaxOnly": true,
|
|
12
|
+
"noFallthroughCasesInSwitch": true,
|
|
13
|
+
"noUncheckedSideEffectImports": true
|
|
14
|
+
},
|
|
15
|
+
"include": ["src/**/*.ts", "src/**/*.tsx", "src/**/*.vue"]
|
|
16
|
+
}
|
package/tsconfig.json
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo",
|
|
4
|
+
"target": "ES2023",
|
|
5
|
+
"lib": ["ES2023"],
|
|
6
|
+
"module": "ESNext",
|
|
7
|
+
"types": ["node"],
|
|
8
|
+
"skipLibCheck": true,
|
|
9
|
+
|
|
10
|
+
/* Bundler mode */
|
|
11
|
+
"moduleResolution": "bundler",
|
|
12
|
+
"allowImportingTsExtensions": true,
|
|
13
|
+
// "verbatimModuleSyntax": true,
|
|
14
|
+
"noEmit": true,
|
|
15
|
+
|
|
16
|
+
/* Linting */
|
|
17
|
+
"strict": true,
|
|
18
|
+
"noUnusedLocals": true,
|
|
19
|
+
"noUnusedParameters": true,
|
|
20
|
+
"erasableSyntaxOnly": true,
|
|
21
|
+
"noFallthroughCasesInSwitch": true,
|
|
22
|
+
"noUncheckedSideEffectImports": true
|
|
23
|
+
},
|
|
24
|
+
"include": ["vite.config.ts"]
|
|
25
|
+
}
|
package/vite.config.ts
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { fileURLToPath, URL } from 'node:url'
|
|
2
|
+
import { defineConfig } from 'vite'
|
|
3
|
+
import vue from '@vitejs/plugin-vue'
|
|
4
|
+
import vueDevTools from 'vite-plugin-vue-devtools'
|
|
5
|
+
import postcssCustomMedia from 'postcss-custom-media'
|
|
6
|
+
import postcssNesting from 'postcss-nesting'
|
|
7
|
+
import postcssGlobalData from '@csstools/postcss-global-data'
|
|
8
|
+
import { resolve } from 'path'
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
// https://vite.dev/config/
|
|
12
|
+
export default defineConfig({
|
|
13
|
+
build: {
|
|
14
|
+
lib: {
|
|
15
|
+
entry: resolve(__dirname, 'src/index.ts'),
|
|
16
|
+
name: 'whelk-ui',
|
|
17
|
+
fileName: 'whelk-ui',
|
|
18
|
+
},
|
|
19
|
+
rollupOptions: {
|
|
20
|
+
external: ['vue'],
|
|
21
|
+
output: {
|
|
22
|
+
globals: {
|
|
23
|
+
vue: 'Vue',
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
css: {
|
|
29
|
+
postcss: {
|
|
30
|
+
plugins: [
|
|
31
|
+
postcssNesting,
|
|
32
|
+
postcssGlobalData({
|
|
33
|
+
files: [
|
|
34
|
+
'./src/styles/variables/_media_variables.css',
|
|
35
|
+
]
|
|
36
|
+
}),
|
|
37
|
+
postcssCustomMedia,
|
|
38
|
+
]
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
plugins: [
|
|
42
|
+
vue(),
|
|
43
|
+
vueDevTools(),
|
|
44
|
+
],
|
|
45
|
+
resolve: {
|
|
46
|
+
alias: {
|
|
47
|
+
'@': fileURLToPath(new URL('./src', import.meta.url)),
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
|
+
})
|