@dolanske/vui 0.2.0 → 0.3.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/README.md +3 -0
- package/dist/components/Avatar/Avatar.vue.d.ts +1 -3
- package/dist/components/Calendar/Calendar.vue.d.ts +1 -1
- package/dist/components/Flex/Flex.vue.d.ts +2 -2
- package/dist/components/Grid/Grid.vue.d.ts +2 -2
- package/dist/index.d.ts +3 -1
- package/dist/shared/types.d.ts +11 -0
- package/dist/style.css +1 -1
- package/dist/vui.js +4318 -4251
- package/package.json +6 -2
- package/src/App.vue +24 -4
- package/src/components/Alert/alert.scss +1 -1
- package/src/components/Avatar/Avatar.vue +7 -21
- package/src/components/Avatar/avatar.scss +2 -2
- package/src/components/Button/Button.vue +6 -9
- package/src/components/Divider/Divider.vue +9 -9
- package/src/components/Drawer/Drawer.vue +8 -2
- package/src/components/Drawer/drawer.scss +1 -1
- package/src/components/Dropdown/Dropdown.vue +6 -6
- package/src/components/Dropdown/dropdown.scss +4 -0
- package/src/components/Flex/Flex.vue +14 -17
- package/src/components/Grid/Grid.vue +9 -14
- package/src/components/Input/Textarea.vue +5 -7
- package/src/components/OTP/otp.scss +1 -2
- package/src/components/Progress/Progress.vue +6 -8
- package/src/components/Skeleton/Skeleton.vue +7 -9
- package/src/components/Spinner/Spinner.vue +7 -9
- package/src/components/Table/table.scss +1 -1
- package/src/components/Tabs/Tab.vue +1 -1
- package/src/components/Tabs/Tabs.vue +1 -0
- package/src/components/Toast/toast.ts +0 -24
- package/src/components/Tooltip/Tooltip.vue +5 -2
- package/src/index.ts +4 -0
- package/src/shared/types.ts +12 -0
- package/src/style/core.scss +24 -14
- package/src/style/fonts.scss +23 -0
- package/src/style/layout.scss +131 -3
- package/src/style/typography.scss +9 -9
- package/src/style/utils.scss +13 -0
- package/dist/shared/composables.d.ts +0 -3
- package/src/shared/composables.ts +0 -18
package/src/style/core.scss
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
@use 'sass:meta';
|
|
1
2
|
// Core of the UI library, it should only contain styles which are relevant to
|
|
2
3
|
// the library and each component should import it
|
|
3
4
|
|
|
@@ -7,32 +8,39 @@
|
|
|
7
8
|
@use './fonts.scss';
|
|
8
9
|
|
|
9
10
|
:root {
|
|
11
|
+
--container-xs: 360px;
|
|
10
12
|
--container-s: 498px;
|
|
11
13
|
--container-m: 856px;
|
|
12
14
|
--container-l: 1140px;
|
|
13
15
|
--container-xl: 1540px;
|
|
16
|
+
--container-xxl: 1920px;
|
|
14
17
|
|
|
15
18
|
--border-radius-xs: 2px;
|
|
16
19
|
--border-radius-s: 4px;
|
|
17
20
|
--border-radius-m: 8px;
|
|
18
21
|
--border-radius-l: 12px;
|
|
19
22
|
|
|
23
|
+
--font-size-xxs: 1rem;
|
|
20
24
|
--font-size-xs: 1.15rem;
|
|
21
25
|
--font-size-s: 1.3rem;
|
|
22
26
|
--font-size-ms: 1.45rem;
|
|
23
27
|
--font-size-m: 1.6rem;
|
|
24
|
-
--font-size-l: 1.
|
|
28
|
+
--font-size-l: 1.8rem;
|
|
29
|
+
--font-size-xl: 2rem;
|
|
30
|
+
--font-size-xxl: 2.6rem;
|
|
31
|
+
--font-size-xxxl: 3.4rem;
|
|
32
|
+
--font-size-xxxxl: 4.8rem;
|
|
25
33
|
|
|
26
34
|
--space-xxs: 4px;
|
|
27
35
|
--space-xs: 8px;
|
|
28
36
|
--space-s: 12px;
|
|
29
37
|
--space-m: 18px;
|
|
30
|
-
--space-l:
|
|
31
|
-
--space-xl:
|
|
32
|
-
--space-xxl:
|
|
38
|
+
--space-l: 24px;
|
|
39
|
+
--space-xl: 34px;
|
|
40
|
+
--space-xxl: 48px;
|
|
33
41
|
--space-xxxl: 64px;
|
|
34
42
|
|
|
35
|
-
--transition-
|
|
43
|
+
--transition-fast: 0.08s all ease-in-out;
|
|
36
44
|
--transition: 0.14s all ease-in-out;
|
|
37
45
|
--transition-slow: 0.3s all ease-in-out;
|
|
38
46
|
|
|
@@ -43,6 +51,7 @@
|
|
|
43
51
|
--color-text: rgb(231, 231, 231);
|
|
44
52
|
--color-text-light: rgb(158, 158, 158);
|
|
45
53
|
--color-text-lighter: rgb(100, 100, 100);
|
|
54
|
+
--color-text-lightest: rgb(65, 65, 65);
|
|
46
55
|
--color-text-invert: rgb(17, 17, 17);
|
|
47
56
|
|
|
48
57
|
--color-button-gray: rgb(28, 28, 28);
|
|
@@ -74,10 +83,10 @@
|
|
|
74
83
|
--color-border-weak: rgb(36, 36, 36);
|
|
75
84
|
|
|
76
85
|
--color-accent: rgb(56, 214, 219);
|
|
77
|
-
--color-accent-disabled: hsl(from var(--color-accent) calc(h) calc(s * 0.
|
|
86
|
+
--color-accent-disabled: hsl(from var(--color-accent) calc(h) calc(s * 0.4) calc(l));
|
|
78
87
|
--color-bg-accent-lowered: hsl(from var(--color-accent) calc(h) s calc(l * 0.2));
|
|
79
|
-
--color-bg-accent-raised: hsl(from var(--color-accent) calc(h) s calc(l * 0.
|
|
80
|
-
--color-border-accent: hsl(from var(--color-accent) calc(h) s calc(l * 0.
|
|
88
|
+
--color-bg-accent-raised: hsl(from var(--color-accent) calc(h) s calc(l * 0.5));
|
|
89
|
+
--color-border-accent: hsl(from var(--color-accent) calc(h) s calc(l * 0.4));
|
|
81
90
|
|
|
82
91
|
--box-shadow: 0 2px 12px rgba(8, 8, 8, 0.2);
|
|
83
92
|
--box-shadow-strong: 0 4px 15px rgba(8, 8, 8, 0.4);
|
|
@@ -122,10 +131,11 @@ body {
|
|
|
122
131
|
min-height: 100dvh;
|
|
123
132
|
}
|
|
124
133
|
|
|
125
|
-
@
|
|
126
|
-
@
|
|
127
|
-
@
|
|
128
|
-
@
|
|
129
|
-
@
|
|
134
|
+
@include meta.load-css('typography.scss');
|
|
135
|
+
@include meta.load-css('layout.scss');
|
|
136
|
+
@include meta.load-css('animation.scss');
|
|
137
|
+
@include meta.load-css('tooltip.scss');
|
|
138
|
+
@include meta.load-css('utils.scss');
|
|
139
|
+
@include meta.load-css('fonts.scss');
|
|
130
140
|
|
|
131
|
-
@
|
|
141
|
+
@include meta.load-css('media-query.scss');
|
package/src/style/fonts.scss
CHANGED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
$sizes: 'xxs', 'xs', 's', 'ms', 'm', 'l', 'xl', 'xxl', 'xxxl', 'xxxxl';
|
|
2
|
+
|
|
3
|
+
@each $size in $sizes {
|
|
4
|
+
.text-#{$size} {
|
|
5
|
+
font-size: var(--font-size-#{$size});
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
.text-color {
|
|
10
|
+
color: var(--color-text);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.text-color-accent {
|
|
14
|
+
color: var(--color-accent);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
$colors: 'light', 'lighter', 'lightest', 'red', 'green', 'yellow', 'blue';
|
|
18
|
+
|
|
19
|
+
@each $color in $colors {
|
|
20
|
+
.text-color-#{$color} {
|
|
21
|
+
font-size: var(--color-text-#{$color});
|
|
22
|
+
}
|
|
23
|
+
}
|
package/src/style/layout.scss
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
//
|
|
1
|
+
// Container layout styling
|
|
2
|
+
$containers: 'xs', 's', 'm', 'l', 'xl', 'xxl';
|
|
2
3
|
|
|
3
4
|
.container {
|
|
4
5
|
display: block;
|
|
@@ -6,8 +7,135 @@
|
|
|
6
7
|
width: 100%;
|
|
7
8
|
padding-inline: var(--space-m);
|
|
8
9
|
max-width: var(--container-l);
|
|
10
|
+
|
|
11
|
+
@each $container in $containers {
|
|
12
|
+
&.container-#{$container} {
|
|
13
|
+
max-width: var(--container-#{$container});
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
&.container-full {
|
|
18
|
+
max-width: 100%;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
// Sizes
|
|
23
|
+
|
|
24
|
+
// Paddings & margins
|
|
25
|
+
|
|
26
|
+
.mx-auto {
|
|
27
|
+
margin-inline: auto;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.my-auto {
|
|
31
|
+
margin-block: auto;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.m-auto {
|
|
35
|
+
margin: auto;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
// Generate layout classes from size styles
|
|
39
|
+
$sizes: 'xxs', 'xs', 's', 'm', 'l', 'xl', 'xxl', 'xxxl';
|
|
40
|
+
|
|
41
|
+
@each $size in $sizes {
|
|
42
|
+
// Margin
|
|
43
|
+
.mb-#{$size} {
|
|
44
|
+
margin-bottom: var(--space-#{$size});
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
.mr-#{$size} {
|
|
48
|
+
margin-right: var(--space-#{$size});
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
.ml-#{$size} {
|
|
52
|
+
margin-left: var(--space-#{$size});
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
.mt-#{$size} {
|
|
56
|
+
margin-top: var(--space-#{$size});
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
.mx-#{$size} {
|
|
60
|
+
margin-inline: var(--space-#{$size});
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
.my-#{$size} {
|
|
64
|
+
margin-block: var(--space-#{$size});
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
.m-#{$size} {
|
|
68
|
+
margin: var(--space-#{$size});
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
// Padding
|
|
72
|
+
.pb-#{$size} {
|
|
73
|
+
padding-bottom: var(--space-#{$size});
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
.pr-#{$size} {
|
|
77
|
+
padding-right: var(--space-#{$size});
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
.pl-#{$size} {
|
|
81
|
+
padding-left: var(--space-#{$size});
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
.pt-#{$size} {
|
|
85
|
+
padding-top: var(--space-#{$size});
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
.px-#{$size} {
|
|
89
|
+
padding-inline: var(--space-#{$size});
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
.py-#{$size} {
|
|
93
|
+
padding-block: var(--space-#{$size});
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
.p-#{$size} {
|
|
97
|
+
padding: var(--space-#{$size});
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
// Gap
|
|
101
|
+
.g-#{$size} {
|
|
102
|
+
gap: var(--space-#{$size});
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
.g-y-#{$size} {
|
|
106
|
+
row-gap: var(--space-#{$size});
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
.g-x-#{$size} {
|
|
110
|
+
column-gap: var(--space-#{$size});
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
// Z-index
|
|
115
|
+
.z-0 {
|
|
116
|
+
z-index: 0;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
.z-10 {
|
|
120
|
+
z-index: 10;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
.z-20 {
|
|
124
|
+
z-index: 20;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
.z-30 {
|
|
128
|
+
z-index: 30;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
.z-40 {
|
|
132
|
+
z-index: 40;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
.z-50 {
|
|
136
|
+
z-index: 50;
|
|
9
137
|
}
|
|
10
138
|
|
|
11
|
-
.
|
|
12
|
-
|
|
139
|
+
.z-auto {
|
|
140
|
+
z-index: auto;
|
|
13
141
|
}
|
|
@@ -15,27 +15,27 @@ h6 {
|
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
h1 {
|
|
18
|
-
font-size:
|
|
18
|
+
font-size: var(--font-size-xxxxl);
|
|
19
19
|
}
|
|
20
20
|
|
|
21
21
|
h2 {
|
|
22
|
-
font-size:
|
|
22
|
+
font-size: var(--font-size-xxxl);
|
|
23
23
|
}
|
|
24
24
|
|
|
25
25
|
h3 {
|
|
26
|
-
font-size:
|
|
26
|
+
font-size: var(--font-size-xxl);
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
h4 {
|
|
30
|
-
font-size:
|
|
30
|
+
font-size: var(--font-size-xl);
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
h5 {
|
|
34
|
-
font-size:
|
|
34
|
+
font-size: var(--font-size-l);
|
|
35
35
|
}
|
|
36
36
|
|
|
37
37
|
h6 {
|
|
38
|
-
font-size:
|
|
38
|
+
font-size: var(--font-size-m);
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
figcaption,
|
|
@@ -62,7 +62,7 @@ p {
|
|
|
62
62
|
}
|
|
63
63
|
|
|
64
64
|
code {
|
|
65
|
-
border-radius:
|
|
65
|
+
border-radius: var(--border-radius-xs);
|
|
66
66
|
background-color: var(--color-bg-raised);
|
|
67
67
|
color: var(--color-text);
|
|
68
68
|
border: 1px solid var(--color-border);
|
|
@@ -96,7 +96,7 @@ p {
|
|
|
96
96
|
blockquote {
|
|
97
97
|
display: block;
|
|
98
98
|
padding-block: var(--space-s);
|
|
99
|
-
padding-left:
|
|
99
|
+
padding-left: var(--space-l);
|
|
100
100
|
border-left: 3px solid var(--color-border);
|
|
101
101
|
}
|
|
102
102
|
|
|
@@ -327,7 +327,7 @@ article,
|
|
|
327
327
|
|
|
328
328
|
figure {
|
|
329
329
|
img {
|
|
330
|
-
margin-bottom:
|
|
330
|
+
margin-bottom: var(--space-xs);
|
|
331
331
|
}
|
|
332
332
|
|
|
333
333
|
figcaption {
|
package/src/style/utils.scss
CHANGED
|
@@ -20,3 +20,16 @@ mark {
|
|
|
20
20
|
padding: 1px;
|
|
21
21
|
border-radius: 2px;
|
|
22
22
|
}
|
|
23
|
+
|
|
24
|
+
.counter {
|
|
25
|
+
display: inline-flex;
|
|
26
|
+
align-items: center;
|
|
27
|
+
justify-content: center;
|
|
28
|
+
min-width: 20px;
|
|
29
|
+
height: 20px;
|
|
30
|
+
border-radius: 10px;
|
|
31
|
+
font-size: var(--font-size-xs);
|
|
32
|
+
color: var(--color-text);
|
|
33
|
+
background-color: var(--color-button-gray-hover);
|
|
34
|
+
font-weight: 400;
|
|
35
|
+
}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import type { ComputedRef } from 'vue'
|
|
2
|
-
import type { Sizes } from './types'
|
|
3
|
-
import { computed } from 'vue'
|
|
4
|
-
import { Size } from './types'
|
|
5
|
-
|
|
6
|
-
// Some files may share the same properties
|
|
7
|
-
export function useActualGap(gap?: Sizes | number): ComputedRef<string> {
|
|
8
|
-
return computed(() => {
|
|
9
|
-
if (typeof gap === 'number')
|
|
10
|
-
return `${gap}px`
|
|
11
|
-
switch (gap) {
|
|
12
|
-
case Size.s: return '4px'
|
|
13
|
-
case Size.l: return '16px'
|
|
14
|
-
case Size.m:
|
|
15
|
-
default: return '8px'
|
|
16
|
-
}
|
|
17
|
-
})
|
|
18
|
-
}
|