@dolanske/vui 0.3.2 → 0.3.4

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.
Files changed (108) hide show
  1. package/LICENSE +673 -673
  2. package/README.md +40 -40
  3. package/dist/components/Avatar/Avatar.vue.d.ts +1 -0
  4. package/dist/style.css +1 -1
  5. package/dist/vui.js +825 -809
  6. package/package.json +68 -68
  7. package/src/App.vue +175 -160
  8. package/src/components/Accordion/Accordion.vue +91 -91
  9. package/src/components/Accordion/AccordionGroup.vue +43 -43
  10. package/src/components/Accordion/accordion.scss +80 -80
  11. package/src/components/Alert/Alert.vue +53 -53
  12. package/src/components/Alert/alert.scss +80 -80
  13. package/src/components/Avatar/Avatar.vue +50 -43
  14. package/src/components/Avatar/avatar.scss +52 -50
  15. package/src/components/Badge/Badge.vue +21 -21
  16. package/src/components/Badge/badge.scss +89 -89
  17. package/src/components/Breadcrumbs/BreadcrumbItem.vue +26 -26
  18. package/src/components/Breadcrumbs/Breadcrumbs.vue +33 -33
  19. package/src/components/Breadcrumbs/breadcrumbs.scss +30 -30
  20. package/src/components/Button/Button.vue +90 -90
  21. package/src/components/Button/button.scss +176 -176
  22. package/src/components/ButtonGroup/ButtonGroup.vue +25 -25
  23. package/src/components/ButtonGroup/button-group.scss +51 -51
  24. package/src/components/Calendar/Calendar.vue +60 -60
  25. package/src/components/Calendar/calendar.scss +56 -56
  26. package/src/components/Card/Card.vue +48 -48
  27. package/src/components/Card/card.scss +53 -53
  28. package/src/components/Checkbox/Checkbox.vue +52 -52
  29. package/src/components/Checkbox/checkbox.scss +66 -66
  30. package/src/components/CopyClipboard/CopyClipboard.vue +82 -82
  31. package/src/components/CopyClipboard/copy-clipboard.scss +17 -17
  32. package/src/components/Divider/Divider.vue +44 -44
  33. package/src/components/Divider/divider.scss +35 -35
  34. package/src/components/Drawer/Drawer.vue +97 -97
  35. package/src/components/Drawer/drawer.scss +36 -36
  36. package/src/components/Dropdown/Dropdown.vue +111 -110
  37. package/src/components/Dropdown/DropdownItem.vue +29 -29
  38. package/src/components/Dropdown/DropdownTitle.vue +8 -8
  39. package/src/components/Dropdown/dropdown.scss +117 -116
  40. package/src/components/Flex/Flex.vue +106 -106
  41. package/src/components/Grid/Grid.vue +54 -54
  42. package/src/components/Input/Counter.vue +70 -70
  43. package/src/components/Input/Dropzone.vue +65 -65
  44. package/src/components/Input/File.vue +15 -15
  45. package/src/components/Input/Input.vue +121 -121
  46. package/src/components/Input/Password.vue +47 -47
  47. package/src/components/Input/Textarea.vue +76 -76
  48. package/src/components/Input/input.scss +208 -208
  49. package/src/components/Kbd/Kbd.vue +48 -48
  50. package/src/components/Kbd/KbdGroup.vue +31 -31
  51. package/src/components/Kbd/kbd.scss +18 -18
  52. package/src/components/Modal/Confirm.vue +56 -56
  53. package/src/components/Modal/Modal.vue +91 -91
  54. package/src/components/Modal/modal.scss +49 -49
  55. package/src/components/OTP/OTP.vue +133 -133
  56. package/src/components/OTP/OTPItem.vue +37 -37
  57. package/src/components/OTP/otp.scss +83 -83
  58. package/src/components/Pagination/Pagination.vue +74 -74
  59. package/src/components/Pagination/pagination.ts +78 -78
  60. package/src/components/Popout/Popout.vue +42 -39
  61. package/src/components/Popout/popout.scss +8 -8
  62. package/src/components/Progress/Progress.vue +90 -90
  63. package/src/components/Progress/progress.scss +41 -41
  64. package/src/components/Radio/Radio.vue +36 -36
  65. package/src/components/Radio/RadioGroup.vue +40 -40
  66. package/src/components/Radio/radio.scss +59 -59
  67. package/src/components/Select/Select.vue +180 -180
  68. package/src/components/Select/select.scss +44 -44
  69. package/src/components/Sheet/Sheet.vue +92 -92
  70. package/src/components/Sheet/sheet.scss +60 -60
  71. package/src/components/Skeleton/Skeleton.vue +43 -43
  72. package/src/components/Skeleton/skeleton.scss +14 -14
  73. package/src/components/Spinner/Spinner.vue +42 -42
  74. package/src/components/Spinner/spinner.scss +46 -46
  75. package/src/components/Switch/Switch.vue +30 -30
  76. package/src/components/Switch/switch.scss +52 -52
  77. package/src/components/Table/Cell.vue +23 -23
  78. package/src/components/Table/Header.vue +59 -59
  79. package/src/components/Table/Row.vue +9 -9
  80. package/src/components/Table/SelectAll.vue +23 -23
  81. package/src/components/Table/SelectRow.vue +29 -29
  82. package/src/components/Table/Table.vue +66 -66
  83. package/src/components/Table/table.scss +134 -134
  84. package/src/components/Table/table.ts +244 -244
  85. package/src/components/Tabs/Tab.vue +27 -27
  86. package/src/components/Tabs/Tabs.vue +82 -80
  87. package/src/components/Tabs/tabs.scss +79 -79
  88. package/src/components/Toast/Toasts.vue +47 -47
  89. package/src/components/Toast/toast.scss +41 -41
  90. package/src/components/Toast/toast.ts +68 -68
  91. package/src/components/Tooltip/Tooltip.vue +86 -84
  92. package/src/components/Tooltip/tooltip.scss +4 -4
  93. package/src/index.scss +1 -1
  94. package/src/index.ts +119 -119
  95. package/src/internal/Backdrop/Backdrop.vue +22 -22
  96. package/src/internal/Backdrop/backdrop.scss +28 -28
  97. package/src/main.ts +5 -5
  98. package/src/shared/helpers.ts +74 -74
  99. package/src/shared/types.ts +29 -29
  100. package/src/style/animation.scss +21 -21
  101. package/src/style/core.scss +148 -146
  102. package/src/style/fonts.scss +53 -53
  103. package/src/style/layout.scss +136 -136
  104. package/src/style/media-query.scss +29 -29
  105. package/src/style/reset.scss +135 -135
  106. package/src/style/tooltip.scss +128 -128
  107. package/src/style/typography.scss +338 -338
  108. package/src/style/utils.scss +36 -36
@@ -1,33 +1,33 @@
1
- <script setup lang='ts'>
2
- import type { VNode } from 'vue'
3
- import type { BreadcrumbItemProps } from './BreadcrumbItem.vue'
4
- import { Icon } from '@iconify/vue'
5
- import './breadcrumbs.scss'
6
-
7
- interface Props {
8
- separator?: string
9
- }
10
-
11
- const {
12
- separator = 'ph:caret-right',
13
- } = defineProps<Props>()
14
-
15
- const slots = defineSlots<{
16
- default: () => Array<VNode & { props: BreadcrumbItemProps }>
17
- }>()
18
- </script>
19
-
20
- <template>
21
- <ul class="vui-breadcrumbs">
22
- <template v-for="(vnode, index) of slots.default()" :key="vnode.props.label">
23
- <component
24
- :is="vnode"
25
- v-bind="vnode.props"
26
- />
27
- <template v-if="index !== slots.default().length - 1">
28
- <Icon v-if="separator.length > 1 && separator.includes(':')" class="vui-breadcrumb-custom-separator" :icon="separator" />
29
- <span v-else class="vui-breadcrumb-custom-separator">{{ separator }}</span>
30
- </template>
31
- </template>
32
- </ul>
33
- </template>
1
+ <script setup lang='ts'>
2
+ import type { VNode } from 'vue'
3
+ import type { BreadcrumbItemProps } from './BreadcrumbItem.vue'
4
+ import { Icon } from '@iconify/vue'
5
+ import './breadcrumbs.scss'
6
+
7
+ interface Props {
8
+ separator?: string
9
+ }
10
+
11
+ const {
12
+ separator = 'ph:caret-right',
13
+ } = defineProps<Props>()
14
+
15
+ const slots = defineSlots<{
16
+ default: () => Array<VNode & { props: BreadcrumbItemProps }>
17
+ }>()
18
+ </script>
19
+
20
+ <template>
21
+ <ul class="vui-breadcrumbs">
22
+ <template v-for="(vnode, index) of slots.default()" :key="vnode.props.label">
23
+ <component
24
+ :is="vnode"
25
+ v-bind="vnode.props"
26
+ />
27
+ <template v-if="index !== slots.default().length - 1">
28
+ <Icon v-if="separator.length > 1 && separator.includes(':')" class="vui-breadcrumb-custom-separator" :icon="separator" />
29
+ <span v-else class="vui-breadcrumb-custom-separator">{{ separator }}</span>
30
+ </template>
31
+ </template>
32
+ </ul>
33
+ </template>
@@ -1,30 +1,30 @@
1
- .vui-breadcrumbs {
2
- display: flex;
3
- gap: var(--space-m);
4
- align-items: center;
5
-
6
- .vui-breadcrumb-custom-separator {
7
- color: var(--color-text-lighter);
8
- }
9
-
10
- li {
11
- font-size: var(--font-size-s);
12
- color: var(--color-text-lighter);
13
-
14
- .vui-breadcrumb-text-simple {
15
- color: var(--color-text-lighter);
16
- }
17
-
18
- .vui-breadcrumb-link {
19
- color: var(--color-text);
20
- background: transparent;
21
- text-underline-offset: 4px;
22
- text-decoration: none;
23
-
24
- &:hover {
25
- text-decoration: underline;
26
- }
27
- // cursor: pointer;
28
- }
29
- }
30
- }
1
+ .vui-breadcrumbs {
2
+ display: flex;
3
+ gap: var(--space-m);
4
+ align-items: center;
5
+
6
+ .vui-breadcrumb-custom-separator {
7
+ color: var(--color-text-lighter);
8
+ }
9
+
10
+ li {
11
+ font-size: var(--font-size-s);
12
+ color: var(--color-text-lighter);
13
+
14
+ .vui-breadcrumb-text-simple {
15
+ color: var(--color-text-lighter);
16
+ }
17
+
18
+ .vui-breadcrumb-link {
19
+ color: var(--color-text);
20
+ background: transparent;
21
+ text-underline-offset: 4px;
22
+ text-decoration: none;
23
+
24
+ &:hover {
25
+ text-decoration: underline;
26
+ }
27
+ // cursor: pointer;
28
+ }
29
+ }
30
+ }
@@ -1,90 +1,90 @@
1
- <script setup lang="ts">
2
- import type { Sizes } from '../../shared/types'
3
- import { Icon } from '@iconify/vue'
4
- import { computed } from 'vue'
5
- import { Size } from '../../shared/types'
6
- import Spinner from '../Spinner/Spinner.vue'
7
- import './button.scss'
8
-
9
- export type Variants = 'default' | 'danger' | 'success' | 'link' | 'blue' | 'accent'
10
-
11
- interface Props {
12
- // Provide URL to turn button into anchor
13
- // href?: string
14
- // target?: string
15
-
16
- // State props
17
- loading?: boolean
18
- expand?: boolean
19
- square?: boolean
20
- dashed?: boolean
21
- disabled?: boolean
22
- size?: Sizes
23
- /**
24
- * Sets the hover styling property
25
- */
26
- active?: boolean
27
- /**
28
- * No styling applied to the button unless hovered
29
- */
30
- plain?: boolean
31
- variant?: Variants
32
- /**
33
- * The children will be set to an icon and the icon will become a square
34
- */
35
- icon?: string
36
- }
37
-
38
- const {
39
- loading,
40
- disabled,
41
- expand,
42
- size = 'm',
43
- variant = 'default',
44
- icon,
45
- dashed,
46
- } = defineProps<Props>()
47
-
48
- const height = computed(() => {
49
- switch (size) {
50
- case Size.s: return '24px'
51
- case Size.l: return '40px'
52
- case Size.m:
53
- default: return '34px'
54
- }
55
- })
56
-
57
- const padding = computed(() => {
58
- switch (size) {
59
- case Size.s: return '5px'
60
- case Size.l: return '16px'
61
- case Size.m:
62
- default: return '8px'
63
- }
64
- })
65
- </script>
66
-
67
- <template>
68
- <button
69
- class="vui-button"
70
- :class="[{ loading, expand, disabled, plain, active, icon, square, dashed }, `vui-button-variant-${variant}`]"
71
- :disabled
72
- role="button"
73
- :style="{
74
- '--button-height': height,
75
- '--button-padding': padding,
76
- }"
77
- >
78
- <Spinner size="s" />
79
- <div class="vui-button-slot">
80
- <div class="vui-button-slot-start">
81
- <slot name="start" />
82
- </div>
83
- <Icon v-if="icon" :icon="icon" />
84
- <slot v-else />
85
- <div class="vui-button-slot-end">
86
- <slot name="end" />
87
- </div>
88
- </div>
89
- </button>
90
- </template>
1
+ <script setup lang="ts">
2
+ import type { Sizes } from '../../shared/types'
3
+ import { Icon } from '@iconify/vue'
4
+ import { computed } from 'vue'
5
+ import { Size } from '../../shared/types'
6
+ import Spinner from '../Spinner/Spinner.vue'
7
+ import './button.scss'
8
+
9
+ export type Variants = 'default' | 'danger' | 'success' | 'link' | 'blue' | 'accent'
10
+
11
+ interface Props {
12
+ // Provide URL to turn button into anchor
13
+ // href?: string
14
+ // target?: string
15
+
16
+ // State props
17
+ loading?: boolean
18
+ expand?: boolean
19
+ square?: boolean
20
+ dashed?: boolean
21
+ disabled?: boolean
22
+ size?: Sizes
23
+ /**
24
+ * Sets the hover styling property
25
+ */
26
+ active?: boolean
27
+ /**
28
+ * No styling applied to the button unless hovered
29
+ */
30
+ plain?: boolean
31
+ variant?: Variants
32
+ /**
33
+ * The children will be set to an icon and the icon will become a square
34
+ */
35
+ icon?: string
36
+ }
37
+
38
+ const {
39
+ loading,
40
+ disabled,
41
+ expand,
42
+ size = 'm',
43
+ variant = 'default',
44
+ icon,
45
+ dashed,
46
+ } = defineProps<Props>()
47
+
48
+ const height = computed(() => {
49
+ switch (size) {
50
+ case Size.s: return '24px'
51
+ case Size.l: return '40px'
52
+ case Size.m:
53
+ default: return '34px'
54
+ }
55
+ })
56
+
57
+ const padding = computed(() => {
58
+ switch (size) {
59
+ case Size.s: return '5px'
60
+ case Size.l: return '16px'
61
+ case Size.m:
62
+ default: return '8px'
63
+ }
64
+ })
65
+ </script>
66
+
67
+ <template>
68
+ <button
69
+ class="vui-button"
70
+ :class="[{ loading, expand, disabled, plain, active, icon, square, dashed }, `vui-button-variant-${variant}`]"
71
+ :disabled
72
+ role="button"
73
+ :style="{
74
+ '--button-height': height,
75
+ '--button-padding': padding,
76
+ }"
77
+ >
78
+ <Spinner size="s" />
79
+ <div class="vui-button-slot">
80
+ <div class="vui-button-slot-start">
81
+ <slot name="start" />
82
+ </div>
83
+ <Icon v-if="icon" :icon="icon" />
84
+ <slot v-else />
85
+ <div class="vui-button-slot-end">
86
+ <slot name="end" />
87
+ </div>
88
+ </div>
89
+ </button>
90
+ </template>
@@ -1,176 +1,176 @@
1
- .vui-button {
2
- --button-height: 34px;
3
- --button-padding: 8px;
4
-
5
- &.disabled {
6
- pointer-events: none;
7
- color: var(--color-text-lighter) !important;
8
- cursor: not-allowed !important;
9
- filter: saturate(50%) opacity(0.65);
10
-
11
- svg path {
12
- color: var(--color-text-lighter) !important;
13
- }
14
- }
15
-
16
- &.expand {
17
- width: 100%;
18
- }
19
-
20
- &.loading {
21
- .vui-spinner {
22
- opacity: 1;
23
- }
24
-
25
- .vui-button-slot {
26
- opacity: 0;
27
- }
28
- }
29
-
30
- &.icon {
31
- width: var(--button-height);
32
- padding: 0;
33
-
34
- .vui-button-slot {
35
- svg {
36
- width: 18px;
37
- height: 18px;
38
- }
39
- }
40
- }
41
-
42
- &.square {
43
- width: var(--button-height);
44
- padding: 0;
45
- }
46
-
47
- &.dashed {
48
- border-style: dashed;
49
- }
50
-
51
- height: var(--button-height);
52
- display: flex;
53
- align-items: center;
54
- justify-content: center;
55
- border-radius: var(--border-radius-s);
56
- background: transparent;
57
- padding-inline: var(--button-padding);
58
- font-size: var(--font-size-s);
59
- position: relative;
60
- transition: var(--transition);
61
- border: 1px solid transparent;
62
- background-color: transparent;
63
- color: var(--color-text);
64
-
65
- // Default gray
66
-
67
- .vui-button-slot {
68
- display: flex;
69
- place-items: center;
70
- transition: var(--transition);
71
- opacity: 1;
72
- }
73
-
74
- .vui-button-slot-start,
75
- .vui-button-slot-end {
76
- display: flex;
77
- place-items: center;
78
- }
79
-
80
- .vui-button-slot-start {
81
- margin-right: 6px;
82
- }
83
-
84
- .vui-button-slot-end {
85
- margin-left: 6px;
86
- }
87
-
88
- .vui-spinner {
89
- transition: var(--transition);
90
- opacity: 0;
91
- position: absolute;
92
- pointer-events: none;
93
- }
94
-
95
- // Variants
96
- &.vui-button-variant-default {
97
- &:not(.plain) {
98
- color: var(--color-text);
99
- background-color: var(--color-button-gray);
100
- border: 1px solid var(--color-border);
101
- }
102
-
103
- &.active,
104
- &:hover {
105
- background-color: var(--color-button-gray-hover);
106
- }
107
- }
108
-
109
- &.vui-button-variant-danger {
110
- &:not(.plain) {
111
- color: var(--color-text);
112
- background-color: var(--color-bg-red-lowered);
113
- border: 1px solid var(--color-border-red);
114
- }
115
-
116
- &.active,
117
- &:hover {
118
- border: 1px solid var(--color-bg-red-raised);
119
- background-color: var(--color-bg-red-raised);
120
- }
121
- }
122
-
123
- &.vui-button-variant-success {
124
- &:not(.plain) {
125
- color: var(--color-text);
126
- background-color: var(--color-bg-green-lowered);
127
- border: 1px solid var(--color-border-green);
128
- }
129
-
130
- &.active,
131
- &:hover {
132
- border: 1px solid var(--color-bg-green-raised);
133
- background-color: var(--color-bg-green-raised);
134
- }
135
- }
136
-
137
- &.vui-button-variant-blue {
138
- &:not(.plain) {
139
- color: var(--color-text);
140
- background-color: var(--color-bg-blue-lowered);
141
- border: 1px solid var(--color-border-blue);
142
- }
143
-
144
- &.active,
145
- &:hover {
146
- border: 1px solid var(--color-bg-blue-raised);
147
- background-color: var(--color-bg-blue-raised);
148
- }
149
- }
150
-
151
- &.vui-button-variant-accent {
152
- &:not(.plain) {
153
- color: var(--color-text);
154
- background-color: var(--color-bg-accent-lowered);
155
- border: 1px solid var(--color-border-accent);
156
- }
157
-
158
- &.active,
159
- &:hover {
160
- border: 1px solid var(--color-bg-accent-raised);
161
- background-color: var(--color-bg-accent-raised);
162
- }
163
- }
164
-
165
- &.vui-button-variant-link {
166
- color: var(--color-text);
167
- background: transparent;
168
- text-underline-offset: 4px;
169
- cursor: pointer;
170
-
171
- &.active,
172
- &:hover {
173
- text-decoration: underline;
174
- }
175
- }
176
- }
1
+ .vui-button {
2
+ --button-height: 34px;
3
+ --button-padding: 8px;
4
+
5
+ &.disabled {
6
+ pointer-events: none;
7
+ color: var(--color-text-lighter) !important;
8
+ cursor: not-allowed !important;
9
+ filter: saturate(50%) opacity(0.65);
10
+
11
+ svg path {
12
+ color: var(--color-text-lighter) !important;
13
+ }
14
+ }
15
+
16
+ &.expand {
17
+ width: 100%;
18
+ }
19
+
20
+ &.loading {
21
+ .vui-spinner {
22
+ opacity: 1;
23
+ }
24
+
25
+ .vui-button-slot {
26
+ opacity: 0;
27
+ }
28
+ }
29
+
30
+ &.icon {
31
+ width: var(--button-height);
32
+ padding: 0;
33
+
34
+ .vui-button-slot {
35
+ svg {
36
+ width: 18px;
37
+ height: 18px;
38
+ }
39
+ }
40
+ }
41
+
42
+ &.square {
43
+ width: var(--button-height);
44
+ padding: 0;
45
+ }
46
+
47
+ &.dashed {
48
+ border-style: dashed;
49
+ }
50
+
51
+ height: var(--button-height);
52
+ display: flex;
53
+ align-items: center;
54
+ justify-content: center;
55
+ border-radius: var(--border-radius-s);
56
+ background: transparent;
57
+ padding-inline: var(--button-padding);
58
+ font-size: var(--font-size-s);
59
+ position: relative;
60
+ transition: var(--transition);
61
+ border: 1px solid transparent;
62
+ background-color: transparent;
63
+ color: var(--color-text);
64
+
65
+ // Default gray
66
+
67
+ .vui-button-slot {
68
+ display: flex;
69
+ place-items: center;
70
+ transition: var(--transition);
71
+ opacity: 1;
72
+ }
73
+
74
+ .vui-button-slot-start,
75
+ .vui-button-slot-end {
76
+ display: flex;
77
+ place-items: center;
78
+ }
79
+
80
+ .vui-button-slot-start {
81
+ margin-right: 6px;
82
+ }
83
+
84
+ .vui-button-slot-end {
85
+ margin-left: 6px;
86
+ }
87
+
88
+ .vui-spinner {
89
+ transition: var(--transition);
90
+ opacity: 0;
91
+ position: absolute;
92
+ pointer-events: none;
93
+ }
94
+
95
+ // Variants
96
+ &.vui-button-variant-default {
97
+ &:not(.plain) {
98
+ color: var(--color-text);
99
+ background-color: var(--color-button-gray);
100
+ border: 1px solid var(--color-border);
101
+ }
102
+
103
+ &.active,
104
+ &:hover {
105
+ background-color: var(--color-button-gray-hover);
106
+ }
107
+ }
108
+
109
+ &.vui-button-variant-danger {
110
+ &:not(.plain) {
111
+ color: var(--color-text);
112
+ background-color: var(--color-bg-red-lowered);
113
+ border: 1px solid var(--color-border-red);
114
+ }
115
+
116
+ &.active,
117
+ &:hover {
118
+ border: 1px solid var(--color-bg-red-raised);
119
+ background-color: var(--color-bg-red-raised);
120
+ }
121
+ }
122
+
123
+ &.vui-button-variant-success {
124
+ &:not(.plain) {
125
+ color: var(--color-text);
126
+ background-color: var(--color-bg-green-lowered);
127
+ border: 1px solid var(--color-border-green);
128
+ }
129
+
130
+ &.active,
131
+ &:hover {
132
+ border: 1px solid var(--color-bg-green-raised);
133
+ background-color: var(--color-bg-green-raised);
134
+ }
135
+ }
136
+
137
+ &.vui-button-variant-blue {
138
+ &:not(.plain) {
139
+ color: var(--color-text);
140
+ background-color: var(--color-bg-blue-lowered);
141
+ border: 1px solid var(--color-border-blue);
142
+ }
143
+
144
+ &.active,
145
+ &:hover {
146
+ border: 1px solid var(--color-bg-blue-raised);
147
+ background-color: var(--color-bg-blue-raised);
148
+ }
149
+ }
150
+
151
+ &.vui-button-variant-accent {
152
+ &:not(.plain) {
153
+ color: var(--color-text);
154
+ background-color: var(--color-bg-accent-lowered);
155
+ border: 1px solid var(--color-border-accent);
156
+ }
157
+
158
+ &.active,
159
+ &:hover {
160
+ border: 1px solid var(--color-bg-accent-raised);
161
+ background-color: var(--color-bg-accent-raised);
162
+ }
163
+ }
164
+
165
+ &.vui-button-variant-link {
166
+ color: var(--color-text);
167
+ background: transparent;
168
+ text-underline-offset: 4px;
169
+ cursor: pointer;
170
+
171
+ &.active,
172
+ &:hover {
173
+ text-decoration: underline;
174
+ }
175
+ }
176
+ }