@dolanske/vui 1.3.0 → 1.4.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/LICENSE +1 -1
- package/package.json +2 -2
- package/src/App.vue +8 -0
- package/src/components/Accordion/Accordion.vue +10 -3
- package/src/components/Accordion/accordion.scss +18 -3
- package/src/components/Button/Button.vue +5 -4
- package/src/components/Button/button.scss +9 -1
- package/src/components/ButtonGroup/button-group.scss +2 -2
- package/src/components/Calendar/calendar.scss +5 -0
- package/src/components/Card/Card.vue +1 -1
- package/src/components/CopyClipboard/copy-clipboard.scss +1 -1
- package/src/components/Dropdown/dropdown-item.scss +1 -1
- package/src/components/Dropdown/dropdown.scss +2 -2
- package/src/components/Grid/Grid.vue +3 -0
- package/src/components/Input/input.scss +3 -3
- package/src/components/OTP/otp.scss +3 -3
- package/src/components/Popout/popout.scss +1 -1
- package/src/components/Progress/progress.scss +1 -1
- package/src/components/Select/Select.vue +2 -0
- package/src/components/Select/select.scss +1 -1
- package/src/components/Sidebar/sidebar.scss +1 -1
- package/src/components/Table/table.scss +2 -2
- package/src/components/Tabs/Tabs.vue +1 -1
- package/src/components/Tabs/tabs.scss +2 -2
- package/src/examples/ExampleAccordions.vue +17 -4
- package/src/examples/ExamplePalette.vue +6 -0
- package/src/examples/ExampleTabs.vue +3 -2
- package/src/internal/Backdrop/backdrop.scss +2 -2
- package/src/style/core.scss +24 -10
- package/src/style/fonts.scss +73 -0
- package/src/style/layout.scss +8 -4
- package/src/style/theme.scss +1 -1
- package/src/style/tooltip.scss +4 -4
- package/src/style/typography.scss +41 -23
- package/src/vite-env.d.ts +1 -1
- package/dist/components/Accordion/Accordion.vue.d.ts +0 -47
- package/dist/components/Accordion/AccordionGroup.vue.d.ts +0 -21
- package/dist/components/Alert/Alert.vue.d.ts +0 -36
- package/dist/components/Avatar/Avatar.vue.d.ts +0 -25
- package/dist/components/Badge/Badge.vue.d.ts +0 -22
- package/dist/components/Breadcrumbs/BreadcrumbItem.vue.d.ts +0 -22
- package/dist/components/Breadcrumbs/Breadcrumbs.vue.d.ts +0 -18
- package/dist/components/Button/Button.vue.d.ts +0 -32
- package/dist/components/ButtonGroup/ButtonGroup.vue.d.ts +0 -22
- package/dist/components/Calendar/Calendar.vue.d.ts +0 -27
- package/dist/components/Card/Card.vue.d.ts +0 -26
- package/dist/components/Checkbox/Checkbox.vue.d.ts +0 -33
- package/dist/components/CopyClipboard/CopyClipboard.vue.d.ts +0 -41
- package/dist/components/Divider/Divider.vue.d.ts +0 -23
- package/dist/components/Drawer/Drawer.vue.d.ts +0 -53
- package/dist/components/Dropdown/Dropdown.vue.d.ts +0 -177
- package/dist/components/Dropdown/DropdownItem.vue.d.ts +0 -23
- package/dist/components/Dropdown/DropdownTitle.vue.d.ts +0 -21
- package/dist/components/Flex/Flex.vue.d.ts +0 -41
- package/dist/components/Grid/Grid.vue.d.ts +0 -34
- package/dist/components/Input/Color.vue.d.ts +0 -11
- package/dist/components/Input/Counter.vue.d.ts +0 -19
- package/dist/components/Input/Dropzone.vue.d.ts +0 -193
- package/dist/components/Input/File.vue.d.ts +0 -8
- package/dist/components/Input/Input.vue.d.ts +0 -56
- package/dist/components/Input/Password.vue.d.ts +0 -6
- package/dist/components/Input/Textarea.vue.d.ts +0 -31
- package/dist/components/Kbd/Kbd.vue.d.ts +0 -23
- package/dist/components/Kbd/KbdGroup.vue.d.ts +0 -19
- package/dist/components/Modal/Confirm.vue.d.ts +0 -43
- package/dist/components/Modal/Modal.vue.d.ts +0 -58
- package/dist/components/OTP/OTP.vue.d.ts +0 -44
- package/dist/components/OTP/OTPItem.vue.d.ts +0 -5
- package/dist/components/Pagination/Pagination.vue.d.ts +0 -46
- package/dist/components/Pagination/pagination.d.ts +0 -12
- package/dist/components/Popout/Popout.vue.d.ts +0 -36
- package/dist/components/Progress/Progress.vue.d.ts +0 -33
- package/dist/components/Radio/Radio.vue.d.ts +0 -29
- package/dist/components/Radio/RadioGroup.vue.d.ts +0 -27
- package/dist/components/Select/Select.vue.d.ts +0 -35
- package/dist/components/Sheet/Sheet.vue.d.ts +0 -47
- package/dist/components/Sidebar/Sidebar.vue.d.ts +0 -70
- package/dist/components/Skeleton/Skeleton.vue.d.ts +0 -8
- package/dist/components/Spinner/Spinner.vue.d.ts +0 -6
- package/dist/components/Switch/Switch.vue.d.ts +0 -28
- package/dist/components/Table/Cell.vue.d.ts +0 -22
- package/dist/components/Table/Head.vue.d.ts +0 -30
- package/dist/components/Table/Root.vue.d.ts +0 -41
- package/dist/components/Table/SelectAll.vue.d.ts +0 -2
- package/dist/components/Table/SelectRow.vue.d.ts +0 -6
- package/dist/components/Table/index.d.ts +0 -6
- package/dist/components/Table/table.d.ts +0 -68
- package/dist/components/Tabs/Tab.vue.d.ts +0 -22
- package/dist/components/Tabs/Tabs.vue.d.ts +0 -34
- package/dist/components/Toast/Toasts.vue.d.ts +0 -2
- package/dist/components/Toast/toast.d.ts +0 -287
- package/dist/components/Tooltip/Tooltip.vue.d.ts +0 -33
- package/dist/index.d.ts +0 -56
- package/dist/internal/Backdrop/Backdrop.vue.d.ts +0 -21
- package/dist/shared/helpers.d.ts +0 -34
- package/dist/shared/slots.d.ts +0 -20
- package/dist/shared/theme.d.ts +0 -3
- package/dist/shared/types.d.ts +0 -24
- package/dist/vui.css +0 -1
- package/dist/vui.js +0 -16220
package/LICENSE
CHANGED
|
@@ -671,4 +671,4 @@ into proprietary programs. If your program is a subroutine library, you
|
|
|
671
671
|
may consider it more useful to permit linking proprietary applications with
|
|
672
672
|
the library. If this is what you want to do, use the GNU Lesser General
|
|
673
673
|
Public License instead of this License. But first, please read
|
|
674
|
-
<https://www.gnu.org/licenses/why-not-lgpl.html>.
|
|
674
|
+
<https://www.gnu.org/licenses/why-not-lgpl.html>.
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dolanske/vui",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.4.0",
|
|
5
5
|
"private": false,
|
|
6
6
|
"description": "Brother in Christ there's a new UI library",
|
|
7
7
|
"author": "dolanske",
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"sass": "src/index.scss",
|
|
10
10
|
"repository": {
|
|
11
11
|
"type": "git",
|
|
12
|
-
"url": "https://github.com/dolanske/vui.git"
|
|
12
|
+
"url": "git+https://github.com/dolanske/vui.git"
|
|
13
13
|
},
|
|
14
14
|
"keywords": [
|
|
15
15
|
"vue",
|
package/src/App.vue
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
+
import Card from './components/Card/Card.vue'
|
|
2
3
|
import Divider from './components/Divider/Divider.vue'
|
|
3
4
|
import ExampleAccordions from './examples/ExampleAccordions.vue'
|
|
4
5
|
import ExampleAlerts from './examples/ExampleAlerts.vue'
|
|
@@ -35,6 +36,13 @@ import ExampleTooltips from './examples/ExampleTooltips.vue'
|
|
|
35
36
|
<h1 class="mb-l">
|
|
36
37
|
VUI
|
|
37
38
|
</h1>
|
|
39
|
+
|
|
40
|
+
<Card class="typeface">
|
|
41
|
+
<pre><code>export function removeColorPrefix(value: string): string {
|
|
42
|
+
return value.replace('--dark', '--').replace('--light', '--')
|
|
43
|
+
}</code></pre>
|
|
44
|
+
</Card>
|
|
45
|
+
|
|
38
46
|
<p>The purpose of this page is to showcase and test every single component case</p>
|
|
39
47
|
<Divider :size="64" />
|
|
40
48
|
<ExamplePalette />
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
2
|
import { Icon } from '@iconify/vue'
|
|
3
3
|
import { useResizeObserver } from '@vueuse/core'
|
|
4
|
-
import { onMounted, ref, useTemplateRef, watch, watchEffect } from 'vue'
|
|
4
|
+
import { onBeforeMount, onMounted, ref, useTemplateRef, watch, watchEffect } from 'vue'
|
|
5
5
|
import './accordion.scss'
|
|
6
6
|
|
|
7
7
|
export interface AccordionProps {
|
|
8
8
|
open?: boolean
|
|
9
9
|
label?: string
|
|
10
10
|
card?: boolean
|
|
11
|
+
unstyled?: boolean
|
|
11
12
|
}
|
|
12
13
|
|
|
13
14
|
const props = defineProps<AccordionProps>()
|
|
@@ -58,6 +59,12 @@ defineExpose({
|
|
|
58
59
|
isOpen,
|
|
59
60
|
})
|
|
60
61
|
|
|
62
|
+
onBeforeMount(() => {
|
|
63
|
+
if (props.card && props.unstyled) {
|
|
64
|
+
console.warn('[Accordion] Both \'card\' and \'unstyled\' props are selected. Unstyled will take precedence.')
|
|
65
|
+
}
|
|
66
|
+
})
|
|
67
|
+
|
|
61
68
|
onMounted(() => {
|
|
62
69
|
useResizeObserver(contentRef, ([entry]) => {
|
|
63
70
|
if (isOpen.value && contentMaxHeight.value !== entry.contentRect.height) {
|
|
@@ -68,14 +75,14 @@ onMounted(() => {
|
|
|
68
75
|
</script>
|
|
69
76
|
|
|
70
77
|
<template>
|
|
71
|
-
<div class="vui-accordion" :class="{ 'open': isOpen, 'is-card': !!props.card }">
|
|
78
|
+
<div class="vui-accordion" :class="{ 'open': isOpen, 'is-card': !!props.card && !props.unstyled, 'is-unstyled': !!props.unstyled }">
|
|
72
79
|
<!-- Completely custom header which needs to be styled and implemented by the developer -->
|
|
73
80
|
<slot v-if="$slots.trigger" name="trigger" :open :close :toggle :is-open />
|
|
74
81
|
<button v-else class="vui-accordion-header" @click="isOpen = !isOpen">
|
|
75
82
|
<slot name="header">
|
|
76
83
|
{{ props.label }}
|
|
77
84
|
</slot>
|
|
78
|
-
<Icon icon="ph:caret-down" />
|
|
85
|
+
<Icon v-if="!props.unstyled" icon="ph:caret-down" />
|
|
79
86
|
</button>
|
|
80
87
|
|
|
81
88
|
<div
|
|
@@ -4,6 +4,19 @@
|
|
|
4
4
|
border-bottom: 1px solid var(--color-border);
|
|
5
5
|
padding-bottom: 0;
|
|
6
6
|
|
|
7
|
+
&.is-unstyled {
|
|
8
|
+
border-bottom: none;
|
|
9
|
+
|
|
10
|
+
.vui-accordion-header {
|
|
11
|
+
padding: unset;
|
|
12
|
+
text-decoration: unset;
|
|
13
|
+
|
|
14
|
+
&:hover {
|
|
15
|
+
text-decoration: unset;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
|
|
7
20
|
&.is-card {
|
|
8
21
|
border: 1px solid var(--color-border);
|
|
9
22
|
border-radius: var(--border-radius-m);
|
|
@@ -37,10 +50,12 @@
|
|
|
37
50
|
}
|
|
38
51
|
|
|
39
52
|
&.open {
|
|
40
|
-
|
|
53
|
+
&:not(.is-unstyled) {
|
|
54
|
+
padding-bottom: var(--space-m);
|
|
41
55
|
|
|
42
|
-
|
|
43
|
-
|
|
56
|
+
.vui-accordion-header svg {
|
|
57
|
+
transform: rotate(180deg);
|
|
58
|
+
}
|
|
44
59
|
}
|
|
45
60
|
|
|
46
61
|
.vui-accordion-content {
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import type { Sizes } from '../../shared/types'
|
|
3
3
|
import { Icon } from '@iconify/vue'
|
|
4
4
|
import { computed } from 'vue'
|
|
5
|
+
import { isNil } from '../../shared/helpers'
|
|
5
6
|
import { Size } from '../../shared/types'
|
|
6
7
|
import Spinner from '../Spinner/Spinner.vue'
|
|
7
8
|
import './button.scss'
|
|
@@ -42,7 +43,7 @@ const {
|
|
|
42
43
|
const height = computed(() => {
|
|
43
44
|
switch (size) {
|
|
44
45
|
case Size.s: return '28px'
|
|
45
|
-
case Size.l: return '
|
|
46
|
+
case Size.l: return '42px'
|
|
46
47
|
case Size.m:
|
|
47
48
|
default: return 'var(--interactive-el-height)'
|
|
48
49
|
}
|
|
@@ -51,7 +52,7 @@ const height = computed(() => {
|
|
|
51
52
|
const padding = computed(() => {
|
|
52
53
|
switch (size) {
|
|
53
54
|
case Size.s: return '4px'
|
|
54
|
-
case Size.l: return '
|
|
55
|
+
case Size.l: return '18px'
|
|
55
56
|
case Size.m:
|
|
56
57
|
default: return '8px'
|
|
57
58
|
}
|
|
@@ -61,7 +62,7 @@ const padding = computed(() => {
|
|
|
61
62
|
<template>
|
|
62
63
|
<button
|
|
63
64
|
class="vui-button"
|
|
64
|
-
:class="[{ loading, expand, disabled, plain, icon, square, outline }, `vui-button-variant-${variant}`]"
|
|
65
|
+
:class="[{ loading, expand, disabled, plain, icon, square, outline }, `vui-button-variant-${variant}`, `vui-button-size-${size}`]"
|
|
65
66
|
:disabled
|
|
66
67
|
role="button"
|
|
67
68
|
:style="{
|
|
@@ -70,7 +71,7 @@ const padding = computed(() => {
|
|
|
70
71
|
}"
|
|
71
72
|
:name="icon && !$slots.default ? icon.split(':')[1] : undefined"
|
|
72
73
|
>
|
|
73
|
-
<Spinner size="s" />
|
|
74
|
+
<Spinner v-if="!isNil(loading)" size="s" />
|
|
74
75
|
<div class="vui-button-slot">
|
|
75
76
|
<div class="vui-button-slot-start">
|
|
76
77
|
<slot name="start" />
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
.vui-button {
|
|
2
2
|
--button-height: var(--interactive-el-height);
|
|
3
3
|
--button-padding: 8px;
|
|
4
|
+
--button-font-size: var(--font-size-s);
|
|
5
|
+
--button-font-size-l: 1.4rem;
|
|
4
6
|
|
|
5
7
|
&.disabled {
|
|
6
8
|
// color: var(--color-text-lighter) !important;
|
|
@@ -49,6 +51,10 @@
|
|
|
49
51
|
border-style: dashed !important;
|
|
50
52
|
}
|
|
51
53
|
|
|
54
|
+
&.vui-button-size-l {
|
|
55
|
+
font-size: var(--button-font-size-l);
|
|
56
|
+
}
|
|
57
|
+
|
|
52
58
|
svg path {
|
|
53
59
|
transition: var(--transition-fast);
|
|
54
60
|
}
|
|
@@ -60,12 +66,13 @@
|
|
|
60
66
|
border-radius: var(--border-radius-s);
|
|
61
67
|
background: transparent;
|
|
62
68
|
padding-inline: var(--button-padding);
|
|
63
|
-
font-size: var(--font-size
|
|
69
|
+
font-size: var(--button-font-size);
|
|
64
70
|
position: relative;
|
|
65
71
|
transition: var(--transition-fast);
|
|
66
72
|
border: 1px solid transparent;
|
|
67
73
|
background-color: transparent;
|
|
68
74
|
color: var(--color-text);
|
|
75
|
+
font-weight: var(--font-weight-medium);
|
|
69
76
|
|
|
70
77
|
// Default gray
|
|
71
78
|
|
|
@@ -74,6 +81,7 @@
|
|
|
74
81
|
place-items: center;
|
|
75
82
|
transition: var(--transition-fast);
|
|
76
83
|
opacity: 1;
|
|
84
|
+
font-weight: var(--font-weight-medium);
|
|
77
85
|
}
|
|
78
86
|
|
|
79
87
|
.vui-button-slot-start,
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
gap: var(--space-m);
|
|
28
28
|
justify-content: space-between;
|
|
29
29
|
background-color: var(--color-bg-medium);
|
|
30
|
-
z-index:
|
|
30
|
+
z-index: var(--z-popout);
|
|
31
31
|
|
|
32
32
|
&.sticky {
|
|
33
33
|
position: sticky;
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
|
|
42
42
|
.vui-dropdown-title-end {
|
|
43
43
|
font-size: var(--font-size-s);
|
|
44
|
-
font-weight:
|
|
44
|
+
font-weight: var(--font-weight);
|
|
45
45
|
color: var(--color-text-lighter);
|
|
46
46
|
}
|
|
47
47
|
}
|
|
@@ -19,6 +19,7 @@ interface Props {
|
|
|
19
19
|
yStart?: boolean
|
|
20
20
|
yEnd?: boolean
|
|
21
21
|
yBaseline?: boolean
|
|
22
|
+
yStretch?: boolean
|
|
22
23
|
|
|
23
24
|
expand?: boolean
|
|
24
25
|
}
|
|
@@ -60,6 +61,8 @@ const aA = computed(() => {
|
|
|
60
61
|
return 'center'
|
|
61
62
|
else if (props.yBaseline)
|
|
62
63
|
return 'baseline'
|
|
64
|
+
else if (props.yStretch)
|
|
65
|
+
return 'stretch'
|
|
63
66
|
return 'flex-start'
|
|
64
67
|
})
|
|
65
68
|
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
input,
|
|
45
45
|
textarea,
|
|
46
46
|
.vui-input-style {
|
|
47
|
-
pointer-events: none;
|
|
47
|
+
// pointer-events: none;
|
|
48
48
|
color: var(--input-color-text-light);
|
|
49
49
|
border-color: var(--input-color-border-weak);
|
|
50
50
|
resize: none !important;
|
|
@@ -92,7 +92,7 @@
|
|
|
92
92
|
}
|
|
93
93
|
|
|
94
94
|
::placeholder {
|
|
95
|
-
font-weight:
|
|
95
|
+
font-weight: var(--font-weight);
|
|
96
96
|
color: var(--color-text-lighter);
|
|
97
97
|
font-family: var(--global-font);
|
|
98
98
|
}
|
|
@@ -111,7 +111,7 @@
|
|
|
111
111
|
width: 100%;
|
|
112
112
|
transition: var(--transition-fast);
|
|
113
113
|
padding-inline: var(--input-padding);
|
|
114
|
-
z-index:
|
|
114
|
+
z-index: var(--z-default);
|
|
115
115
|
|
|
116
116
|
&:has(input:focus),
|
|
117
117
|
&:focus {
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
height: var(--interactive-el-height);
|
|
15
15
|
border: 1px solid var(--color-border-strong);
|
|
16
16
|
color: var(--color-text);
|
|
17
|
-
z-index:
|
|
17
|
+
z-index: var(--z-default);
|
|
18
18
|
font-size: var(--font-size-m);
|
|
19
19
|
outline: 0 solid var(--color-text-light);
|
|
20
20
|
transition: var(--transition-fast);
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
}
|
|
50
50
|
|
|
51
51
|
&.active {
|
|
52
|
-
z-index:
|
|
52
|
+
z-index: var(--z-active);
|
|
53
53
|
outline-width: 2px;
|
|
54
54
|
|
|
55
55
|
.blinker {
|
|
@@ -79,6 +79,6 @@
|
|
|
79
79
|
outline-width: 0px;
|
|
80
80
|
opacity: 0;
|
|
81
81
|
background: transparent;
|
|
82
|
-
z-index:
|
|
82
|
+
z-index: var(--z-mask);
|
|
83
83
|
}
|
|
84
84
|
}
|
|
@@ -186,6 +186,8 @@ const id = useId()
|
|
|
186
186
|
:class="{ selected: selected?.find(v => v.value === option.value) }"
|
|
187
187
|
:icon="selected?.find(v => v.value === option.value) ? 'ph:check-bold' : ''"
|
|
188
188
|
@click="() => {
|
|
189
|
+
if (readonly) return
|
|
190
|
+
|
|
189
191
|
setValue(option)
|
|
190
192
|
// In single mode, close modal after clicking
|
|
191
193
|
if (single && !(required && selected && selected[0].value === option.value)) {
|
|
@@ -79,7 +79,7 @@
|
|
|
79
79
|
border-left: none !important;
|
|
80
80
|
transition: var(--transition-fast);
|
|
81
81
|
position: relative;
|
|
82
|
-
z-index:
|
|
82
|
+
z-index: var(--z-default);
|
|
83
83
|
|
|
84
84
|
// Fixed width, only houses a checkbox component
|
|
85
85
|
&.vui-table-interactive-cell {
|
|
@@ -115,7 +115,7 @@
|
|
|
115
115
|
display: flex;
|
|
116
116
|
align-items: center;
|
|
117
117
|
justify-content: center;
|
|
118
|
-
z-index:
|
|
118
|
+
z-index: var(--z-active);
|
|
119
119
|
position: absolute;
|
|
120
120
|
inset: 0;
|
|
121
121
|
padding: var(--space-xs);
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
&.vui-tabs-variant-filled {
|
|
10
10
|
background-color: var(--color-bg-raised);
|
|
11
11
|
border-bottom: none;
|
|
12
|
-
z-index:
|
|
12
|
+
z-index: var(--z-default);
|
|
13
13
|
border-radius: var(--border-radius-m);
|
|
14
14
|
padding-inline: 4px;
|
|
15
15
|
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
background-color: var(--color-bg-lowered);
|
|
19
19
|
top: 3px;
|
|
20
20
|
bottom: 3px;
|
|
21
|
-
z-index: -
|
|
21
|
+
z-index: var(--z-behind);
|
|
22
22
|
border-radius: var(--border-radius-m);
|
|
23
23
|
}
|
|
24
24
|
}
|
|
@@ -19,7 +19,7 @@ const dynamicAccordions = ref([
|
|
|
19
19
|
|
|
20
20
|
<Grid :columns="2" gap="xl">
|
|
21
21
|
<div>
|
|
22
|
-
<strong class="block mb-s">Base</strong>
|
|
22
|
+
<strong class="block mb-s text-semibold">Base</strong>
|
|
23
23
|
<Accordion label="Open details" class="mb-xl">
|
|
24
24
|
<p>Lorem ipsum, dolor sit amet consectetur adipisicing elit. Excepturi nostrum aspernatur nam earum vitae deleniti, odio atque esse sequi, in harum! Sint dolorum quis excepturi odio eum aspernatur aliquid harum.</p>
|
|
25
25
|
</Accordion>
|
|
@@ -29,7 +29,7 @@ const dynamicAccordions = ref([
|
|
|
29
29
|
|
|
30
30
|
<div class="mb-xl" />
|
|
31
31
|
|
|
32
|
-
<strong class="block mb-s">Group</strong>
|
|
32
|
+
<strong class="block mb-s text-semibold">Group</strong>
|
|
33
33
|
<AccordionGroup>
|
|
34
34
|
<Accordion v-for="item in dynamicAccordions" :key="item" :label="item">
|
|
35
35
|
Lorem ipsum dolor sit amet consectetur adipisicing elit. Nostrum aliquam ad dicta nesciunt exercitationem? Quas vitae suscipit aliquam numquam incidunt corporis ullam, nihil dolores perferendis ipsa velit tempora accusantium cupiditate.
|
|
@@ -37,20 +37,33 @@ const dynamicAccordions = ref([
|
|
|
37
37
|
</AccordionGroup>
|
|
38
38
|
</div>
|
|
39
39
|
<div>
|
|
40
|
-
<strong class="block mb-s">Card</strong>
|
|
40
|
+
<strong class="block mb-s text-semibold">Card</strong>
|
|
41
41
|
<Accordion label="Open details" card>
|
|
42
42
|
<p>Lorem ipsum, dolor sit amet consectetur adipisicing elit. Excepturi nostrum aspernatur nam earum vitae deleniti, odio atque esse sequi, in harum! Sint dolorum quis excepturi odio eum aspernatur aliquid harum.</p>
|
|
43
43
|
</Accordion>
|
|
44
44
|
|
|
45
45
|
<div class="mb-xl" />
|
|
46
46
|
|
|
47
|
-
<strong class="block mb-s">Card group</strong>
|
|
47
|
+
<strong class="block mb-s text-semibold">Card group</strong>
|
|
48
48
|
<AccordionGroup single>
|
|
49
49
|
<Accordion v-for="item in dynamicAccordions" :key="item" :label="item" card class="mb-xs">
|
|
50
50
|
Lorem ipsum dolor sit amet consectetur adipisicing elit. Nostrum aliquam ad dicta nesciunt exercitationem? Quas vitae suscipit aliquam numquam incidunt corporis ullam, nihil dolores perferendis ipsa velit tempora accusantium cupiditate.
|
|
51
51
|
</Accordion>
|
|
52
52
|
</AccordionGroup>
|
|
53
53
|
</div>
|
|
54
|
+
|
|
55
|
+
<div>
|
|
56
|
+
<strong class="block mb-s text-semibold">Unstyled</strong>
|
|
57
|
+
<p class="mb-m">
|
|
58
|
+
In some cases, we need a fully custom animated component which hides content.
|
|
59
|
+
</p>
|
|
60
|
+
<Accordion class="mb-xl" unstyled>
|
|
61
|
+
<template #header>
|
|
62
|
+
<p>Open details</p>
|
|
63
|
+
</template>
|
|
64
|
+
<p>Lorem ipsum, dolor sit amet consectetur adipisicing elit. Excepturi nostrum aspernatur nam earum vitae deleniti, odio atque esse sequi, in harum! Sint dolorum quis excepturi odio eum aspernatur aliquid harum.</p>
|
|
65
|
+
</Accordion>
|
|
66
|
+
</div>
|
|
54
67
|
</Grid>
|
|
55
68
|
</div>
|
|
56
69
|
</template>
|
|
@@ -75,6 +75,9 @@ import ExampleColor from './shared/ExampleColor.vue'
|
|
|
75
75
|
<ExampleColor name="Accent" color="--light-color-accent" />
|
|
76
76
|
<ExampleColor name="Bg Accent Lowered" color="--light-color-bg-accent-lowered" />
|
|
77
77
|
<ExampleColor name="Bg Accent Raised" color="--light-color-bg-accent-raised" />
|
|
78
|
+
<!-- <div class="padder" />
|
|
79
|
+
<div class="w-50 block my-m mx-auto" style="height:64px;box-shadow:var(--light-box-shadow)" />
|
|
80
|
+
<div class="w-50 block my-m mx-auto" style="height:64px;box-shadow:var(--light-box-shadow-strong)" /> -->
|
|
78
81
|
</Flex>
|
|
79
82
|
|
|
80
83
|
<Flex class="theme-wrap dark" gap="xxs" column>
|
|
@@ -124,6 +127,9 @@ import ExampleColor from './shared/ExampleColor.vue'
|
|
|
124
127
|
<ExampleColor name="Accent" color="--dark-color-accent" />
|
|
125
128
|
<ExampleColor name="Bg Accent Lowered" color="--dark-color-bg-accent-lowered" />
|
|
126
129
|
<ExampleColor name="Bg Accent Raised" color="--dark-color-bg-accent-raised" />
|
|
130
|
+
<!-- <div class="padder" />
|
|
131
|
+
<div class="w-50 block my-m mx-auto" style="height:64px;box-shadow:var(--dark-box-shadow)" />
|
|
132
|
+
<div class="w-50 block my-m mx-auto" style="height:64px;box-shadow:var(--dark-box-shadow-strong)" /> -->
|
|
127
133
|
</Flex>
|
|
128
134
|
</Grid>
|
|
129
135
|
</div>
|
|
@@ -8,6 +8,7 @@ import Tabs from '../components/Tabs/Tabs.vue'
|
|
|
8
8
|
// import Flex from '../components/Flex/Flex.vue'
|
|
9
9
|
|
|
10
10
|
const activeTab = ref('Home')
|
|
11
|
+
const noActiveNow = ref('')
|
|
11
12
|
|
|
12
13
|
// Dynamic test
|
|
13
14
|
const dynamicTabs = ref(['First', 'Second', 'Third'])
|
|
@@ -22,9 +23,9 @@ const activeDynamic = ref(dynamicTabs.value[0])
|
|
|
22
23
|
<table>
|
|
23
24
|
<tbody>
|
|
24
25
|
<tr>
|
|
25
|
-
<th>Base</th>
|
|
26
|
+
<th>Base + nothing active at first</th>
|
|
26
27
|
<td>
|
|
27
|
-
<Tabs v-model="
|
|
28
|
+
<Tabs v-model="noActiveNow">
|
|
28
29
|
<Tab value="Home" />
|
|
29
30
|
<Tab value="About" />
|
|
30
31
|
<Tab value="You" />
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
}
|
|
4
4
|
|
|
5
5
|
.vui-backdrop {
|
|
6
|
-
z-index:
|
|
6
|
+
z-index: var(--z-overlay);
|
|
7
7
|
position: fixed;
|
|
8
8
|
display: block;
|
|
9
9
|
width: 100dvw;
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
&:after {
|
|
17
17
|
content: '';
|
|
18
18
|
position: fixed;
|
|
19
|
-
z-index: -
|
|
19
|
+
z-index: var(--z-behind);
|
|
20
20
|
inset: 0;
|
|
21
21
|
background-color: var(--color-bg-lowered);
|
|
22
22
|
opacity: 0.75;
|
package/src/style/core.scss
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
// To overwrite any of these styles, simply create a style file and import it
|
|
6
6
|
// after this one
|
|
7
7
|
@use './reset.scss';
|
|
8
|
+
@use './fonts.scss';
|
|
8
9
|
@use './theme.scss';
|
|
9
10
|
|
|
10
11
|
:root {
|
|
@@ -25,7 +26,6 @@
|
|
|
25
26
|
--font-size-xxs: 1rem;
|
|
26
27
|
--font-size-xs: 1.15rem;
|
|
27
28
|
--font-size-s: 1.3rem;
|
|
28
|
-
--font-size-m: 1.45rem;
|
|
29
29
|
--font-size-m: 1.5rem;
|
|
30
30
|
--font-size-l: 1.8rem;
|
|
31
31
|
--font-size-xl: 2rem;
|
|
@@ -42,23 +42,37 @@
|
|
|
42
42
|
--space-xxl: 48px;
|
|
43
43
|
--space-xxxl: 64px;
|
|
44
44
|
|
|
45
|
-
--transition-fast: 0.
|
|
46
|
-
--transition: 0.
|
|
47
|
-
--transition-slow: 0.
|
|
45
|
+
--transition-fast: 0.055s all ease-in-out;
|
|
46
|
+
--transition: 0.1s all cubic-bezier(0.65, 0, 0.35, 1);
|
|
47
|
+
--transition-slow: 0.25s all cubic-bezier(0.65, 0, 0.35, 1);
|
|
48
48
|
|
|
49
|
-
--global-font: Inter, sans-serif;
|
|
50
|
-
--global-font-mono: 'Geist Mono', 'Courier New', Courier, monospace;
|
|
49
|
+
--global-font: 'Inter', sans-serif;
|
|
50
|
+
--global-font-mono: 'Geist Mono', 'Courier New', 'Courier', monospace;
|
|
51
51
|
|
|
52
|
-
--font-weight
|
|
53
|
-
--font-weight-light: 300;
|
|
52
|
+
--font-weight: 300;
|
|
54
53
|
--font-weight: 400;
|
|
55
54
|
--font-weight-medium: 500;
|
|
56
55
|
--font-weight-semibold: 600;
|
|
57
56
|
--font-weight-bold: 700;
|
|
58
|
-
--font-weight-extrabold:
|
|
57
|
+
--font-weight-extrabold: 800;
|
|
59
58
|
--font-weight-black: 900;
|
|
60
59
|
|
|
61
|
-
--
|
|
60
|
+
--line-height-tight: 1.125em;
|
|
61
|
+
--line-height-title: 1.25em;
|
|
62
|
+
--line-height-base: 1.4em;
|
|
63
|
+
|
|
64
|
+
--z-behind: -1;
|
|
65
|
+
--z-default: 1;
|
|
66
|
+
--z-active: 50;
|
|
67
|
+
--z-mask: 75;
|
|
68
|
+
--z-sticky: 100;
|
|
69
|
+
--z-nav: 200;
|
|
70
|
+
--z-overlay: 300;
|
|
71
|
+
--z-popout: 400;
|
|
72
|
+
--z-toast: 500;
|
|
73
|
+
--z-modal: 600;
|
|
74
|
+
|
|
75
|
+
--interactive-el-height: 36px;
|
|
62
76
|
}
|
|
63
77
|
|
|
64
78
|
// Disable motion for users who have requested it
|