@robuust-digital/vue-components 1.3.2 → 2.0.0-rc.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.
Files changed (73) hide show
  1. package/README.md +47 -52
  2. package/dist/_shared/ButtonBase-CQjlJ85F.js +87 -0
  3. package/dist/_shared/ChevronDownIcon-z-5U4fIb.js +55 -0
  4. package/dist/_shared/FormInput-abFMz_J4.js +82 -0
  5. package/dist/_shared/Modal-COVlUEud.js +193 -0
  6. package/dist/_shared/Tooltip-BKXJoJ1x.js +126 -0
  7. package/dist/_shared/XMarkIcon-90mcPzBs.js +19 -0
  8. package/dist/_shared/icon-spinner-CmxIOqaK.js +26 -0
  9. package/dist/combobox/combobox.css +203 -0
  10. package/dist/combobox/index.js +349 -0
  11. package/dist/combobox/styles.css +1 -0
  12. package/dist/core/accordion.css +47 -0
  13. package/dist/core/alert.css +169 -0
  14. package/dist/core/badge.css +121 -0
  15. package/dist/core/button.css +393 -0
  16. package/dist/core/checkbox.css +60 -0
  17. package/dist/core/empty-state.css +56 -0
  18. package/dist/core/index.js +779 -0
  19. package/dist/core/input.css +92 -0
  20. package/dist/core/pagination.css +48 -0
  21. package/dist/core/radio.css +61 -0
  22. package/dist/core/select.css +81 -0
  23. package/dist/core/styles.css +92 -0
  24. package/dist/core/table.css +87 -0
  25. package/dist/core/tabs.css +74 -0
  26. package/dist/core/textarea.css +48 -0
  27. package/dist/core/theme.css +11 -0
  28. package/dist/dialogs/drawer.css +72 -0
  29. package/dist/dialogs/index.js +200 -0
  30. package/dist/dialogs/modal.css +98 -0
  31. package/dist/dialogs/styles.css +2 -0
  32. package/dist/dropdown/dropdown.css +89 -0
  33. package/dist/dropdown/index.js +136 -0
  34. package/dist/dropdown/styles.css +1 -0
  35. package/dist/lightswitch/index.js +48 -0
  36. package/dist/lightswitch/lightswitch.css +68 -0
  37. package/dist/lightswitch/styles.css +1 -0
  38. package/dist/rich-text-editor/index.js +262 -0
  39. package/dist/rich-text-editor/rich-text.css +83 -0
  40. package/dist/rich-text-editor/styles.css +1 -0
  41. package/dist/toast/index.js +100 -0
  42. package/dist/toast/styles.css +1 -0
  43. package/dist/toast/toast.css +187 -0
  44. package/dist/tooltip/index.js +5 -0
  45. package/dist/tooltip/styles.css +1 -0
  46. package/dist/tooltip/tooltip.css +69 -0
  47. package/package.json +55 -52
  48. package/dist/nuxt-module.js +0 -27
  49. package/dist/style.css +0 -1
  50. package/dist/tailwind/base/index.js +0 -72
  51. package/dist/tailwind/components/accordion.js +0 -59
  52. package/dist/tailwind/components/alert.js +0 -166
  53. package/dist/tailwind/components/badge.js +0 -119
  54. package/dist/tailwind/components/button.js +0 -292
  55. package/dist/tailwind/components/checkbox.js +0 -70
  56. package/dist/tailwind/components/combobox.js +0 -226
  57. package/dist/tailwind/components/drawer.js +0 -104
  58. package/dist/tailwind/components/dropdown.js +0 -97
  59. package/dist/tailwind/components/empty-state.js +0 -69
  60. package/dist/tailwind/components/input.js +0 -101
  61. package/dist/tailwind/components/lightswitch.js +0 -79
  62. package/dist/tailwind/components/modal.js +0 -132
  63. package/dist/tailwind/components/pagination.js +0 -62
  64. package/dist/tailwind/components/radio.js +0 -75
  65. package/dist/tailwind/components/rich-text.js +0 -100
  66. package/dist/tailwind/components/select.js +0 -88
  67. package/dist/tailwind/components/table.js +0 -109
  68. package/dist/tailwind/components/tabs.js +0 -95
  69. package/dist/tailwind/components/textarea.js +0 -53
  70. package/dist/tailwind/components/toast.js +0 -188
  71. package/dist/tailwind/components/tooltip.js +0 -74
  72. package/dist/tailwind/index.js +0 -94
  73. package/dist/vue-components.es.js +0 -2401
@@ -0,0 +1,169 @@
1
+ :root {
2
+ /* Base Alert variables */
3
+ --rvc-alert-border-radius: var(--rvc-base-border-radius);
4
+ --rvc-alert-transition-duration: var(--rvc-base-transition-duration);
5
+ --rvc-alert-transition-timing-function: var(--rvc-base-transition-timing-function);
6
+ --rvc-alert-padding-x: calc(var(--spacing) * 6);
7
+ --rvc-alert-padding-y: calc(var(--spacing) * 6);
8
+ --rvc-alert-font-size: var(--text-base);
9
+ --rvc-alert-gap: calc(var(--spacing) * 1.5);
10
+ --rvc-alert-anchor-decoration: underline;
11
+ --rvc-alert-icon-size: calc(var(--spacing) * 6);
12
+ --rvc-alert-title-font-weight: var(--font-weight-medium);
13
+ --rvc-alert-transition-property: color, background-color, border-color;
14
+
15
+ /* Default color variables */
16
+ --rvc-alert-bg-color: var(--color-blue-50);
17
+ --rvc-alert-color: var(--color-blue-700);
18
+ --rvc-alert-icon-color: var(--color-blue-400);
19
+ --rvc-alert-icon-color-hover: var(--color-blue-800);
20
+ --rvc-alert-title-color: var(--color-blue-800);
21
+ --rvc-alert-close-bg-color: var(--color-blue-100);
22
+ --rvc-alert-close-bg-color-hover: var(--color-blue-200);
23
+ --rvc-alert-anchor-color: inherit;
24
+ --rvc-alert-anchor-color-hover: var(--color-blue-600);
25
+
26
+ /* Warning variant */
27
+ --rvc-alert-bg-color-warning: var(--color-yellow-50);
28
+ --rvc-alert-color-warning: var(--color-yellow-700);
29
+ --rvc-alert-icon-color-warning: var(--color-yellow-400);
30
+ --rvc-alert-icon-color-warning-hover: var(--color-yellow-800);
31
+ --rvc-alert-title-color-warning: var(--color-yellow-800);
32
+ --rvc-alert-close-bg-color-warning: var(--color-yellow-100);
33
+ --rvc-alert-close-bg-color-warning-hover: var(--color-yellow-200);
34
+ --rvc-alert-anchor-color-warning-hover: var(--color-yellow-600);
35
+
36
+ /* Success variant */
37
+ --rvc-alert-bg-color-success: var(--color-green-50);
38
+ --rvc-alert-color-success: var(--color-green-700);
39
+ --rvc-alert-icon-color-success: var(--color-green-400);
40
+ --rvc-alert-icon-color-success-hover: var(--color-green-800);
41
+ --rvc-alert-title-color-success: var(--color-green-800);
42
+ --rvc-alert-close-bg-color-success: var(--color-green-100);
43
+ --rvc-alert-close-bg-color-success-hover: var(--color-green-200);
44
+ --rvc-alert-anchor-color-success-hover: var(--color-green-600);
45
+
46
+ /* Danger variant */
47
+ --rvc-alert-bg-color-danger: var(--color-red-50);
48
+ --rvc-alert-color-danger: var(--color-red-700);
49
+ --rvc-alert-icon-color-danger: var(--color-red-400);
50
+ --rvc-alert-icon-color-danger-hover: var(--color-red-800);
51
+ --rvc-alert-title-color-danger: var(--color-red-800);
52
+ --rvc-alert-close-bg-color-danger: var(--color-red-100);
53
+ --rvc-alert-close-bg-color-danger-hover: var(--color-red-200);
54
+ --rvc-alert-anchor-color-danger-hover: var(--color-red-600);
55
+ }
56
+
57
+ @layer components {
58
+ .rvc-alert {
59
+ gap: var(--rvc-alert-gap);
60
+ padding-inline: var(--rvc-alert-padding-x);
61
+ padding-block: var(--rvc-alert-padding-y);
62
+ border-radius: var(--rvc-alert-border-radius);
63
+ font-size: var(--rvc-alert-font-size);
64
+ background-color: var(--rvc-alert-bg-color);
65
+ color: var(--rvc-alert-color);
66
+ display: flex;
67
+ position: relative;
68
+ overflow: hidden;
69
+
70
+ a {
71
+ text-decoration: var(--rvc-alert-anchor-decoration);
72
+ transition-property: var(--rvc-alert-transition-property);
73
+ transition-duration: var(--rvc-alert-transition-duration);
74
+ transition-timing-function: var(--rvc-alert-transition-timing-function);
75
+ color: var(--rvc-alert-anchor-color);
76
+
77
+ &:hover {
78
+ color: var(--rvc-alert-anchor-color-hover);
79
+ }
80
+ }
81
+
82
+ ul, ol {
83
+ list-style-position: inside;
84
+ margin: 0;
85
+ padding-left: calc(var(--spacing) * 2);
86
+ }
87
+
88
+ ul {
89
+ list-style-type: disc;
90
+ }
91
+
92
+ ol {
93
+ list-style-type: decimal;
94
+ }
95
+
96
+ .rvc-alert-close {
97
+ background-color: var(--rvc-alert-close-bg-color);
98
+ color: var(--rvc-alert-icon-color);
99
+ border-bottom-left-radius: var(--rvc-alert-border-radius);
100
+ transition-property: var(--rvc-alert-transition-property);
101
+ transition-duration: var(--rvc-alert-transition-duration);
102
+ transition-timing-function: var(--rvc-alert-transition-timing-function);
103
+ display: inline-flex;
104
+ justify-content: center;
105
+ align-items: center;
106
+ position: absolute;
107
+ top: 0;
108
+ right: 0;
109
+ padding: calc(var(--spacing) * 1.5);
110
+
111
+ &:hover {
112
+ background-color: var(--rvc-alert-close-bg-color-hover);
113
+ color: var(--rvc-alert-icon-color-hover);
114
+ }
115
+ }
116
+
117
+ .rvc-alert-icon {
118
+ width: var(--rvc-alert-icon-size);
119
+ height: var(--rvc-alert-icon-size);
120
+ color: var(--rvc-alert-icon-color);
121
+ display: block;
122
+ flex-shrink: 0;
123
+ }
124
+
125
+ .rvc-alert-title {
126
+ color: var(--rvc-alert-title-color);
127
+ font-weight: var(--rvc-alert-title-font-weight);
128
+ display: block;
129
+ margin-bottom: calc(var(--spacing) * 2);
130
+
131
+ &:last-child {
132
+ margin-bottom: 0;
133
+ }
134
+ }
135
+
136
+ &.rvc-alert-warning {
137
+ --rvc-alert-bg-color: var(--rvc-alert-bg-color-warning);
138
+ --rvc-alert-color: var(--rvc-alert-color-warning);
139
+ --rvc-alert-icon-color: var(--rvc-alert-icon-color-warning);
140
+ --rvc-alert-icon-color-hover: var(--rvc-alert-icon-color-warning-hover);
141
+ --rvc-alert-title-color: var(--rvc-alert-title-color-warning);
142
+ --rvc-alert-close-bg-color: var(--rvc-alert-close-bg-color-warning);
143
+ --rvc-alert-close-bg-color-hover: var(--rvc-alert-close-bg-color-warning-hover);
144
+ --rvc-alert-anchor-color-hover: var(--rvc-alert-anchor-color-warning-hover);
145
+ }
146
+
147
+ &.rvc-alert-success {
148
+ --rvc-alert-bg-color: var(--rvc-alert-bg-color-success);
149
+ --rvc-alert-color: var(--rvc-alert-color-success);
150
+ --rvc-alert-icon-color: var(--rvc-alert-icon-color-success);
151
+ --rvc-alert-icon-color-hover: var(--rvc-alert-icon-color-success-hover);
152
+ --rvc-alert-title-color: var(--rvc-alert-title-color-success);
153
+ --rvc-alert-close-bg-color: var(--rvc-alert-close-bg-color-success);
154
+ --rvc-alert-close-bg-color-hover: var(--rvc-alert-close-bg-color-success-hover);
155
+ --rvc-alert-anchor-color-hover: var(--rvc-alert-anchor-color-success-hover);
156
+ }
157
+
158
+ &.rvc-alert-danger {
159
+ --rvc-alert-bg-color: var(--rvc-alert-bg-color-danger);
160
+ --rvc-alert-color: var(--rvc-alert-color-danger);
161
+ --rvc-alert-icon-color: var(--rvc-alert-icon-color-danger);
162
+ --rvc-alert-icon-color-hover: var(--rvc-alert-icon-color-danger-hover);
163
+ --rvc-alert-title-color: var(--rvc-alert-title-color-danger);
164
+ --rvc-alert-close-bg-color: var(--rvc-alert-close-bg-color-danger);
165
+ --rvc-alert-close-bg-color-hover: var(--rvc-alert-close-bg-color-danger-hover);
166
+ --rvc-alert-anchor-color-hover: var(--rvc-alert-anchor-color-danger-hover);
167
+ }
168
+ }
169
+ }
@@ -0,0 +1,121 @@
1
+ :root {
2
+ /* Base Badge variables */
3
+ --rvc-badge-height: calc(var(--spacing) * 8);
4
+ --rvc-badge-padding-x: calc(var(--spacing) * 3);
5
+ --rvc-badge-padding-y: calc(var(--spacing) * 1.5);
6
+ --rvc-badge-font-weight: var(--font-weight-medium);
7
+ --rvc-badge-border-radius: calc(infinity * 1px);
8
+ --rvc-badge-font-size: var(--text-base);
9
+ --rvc-badge-gap: calc(var(--spacing) * 1);
10
+
11
+ /* Default color variables */
12
+ --rvc-badge-bg-color: #fcffc4;
13
+ --rvc-badge-color: #576d07;
14
+
15
+ /* Gray variant */
16
+ --rvc-badge-bg-color-gray: var(--color-slate-100);
17
+ --rvc-badge-color-gray: var(--color-slate-700);
18
+
19
+ /* Red variant */
20
+ --rvc-badge-bg-color-red: var(--color-red-100);
21
+ --rvc-badge-color-red: var(--color-red-700);
22
+
23
+ /* Yellow variant */
24
+ --rvc-badge-bg-color-yellow: var(--color-yellow-100);
25
+ --rvc-badge-color-yellow: var(--color-yellow-700);
26
+
27
+ /* Green variant */
28
+ --rvc-badge-bg-color-green: var(--color-green-100);
29
+ --rvc-badge-color-green: var(--color-green-700);
30
+
31
+ /* Blue variant */
32
+ --rvc-badge-bg-color-blue: var(--color-blue-100);
33
+ --rvc-badge-color-blue: var(--color-blue-700);
34
+
35
+ /* Violet variant */
36
+ --rvc-badge-bg-color-violet: var(--color-violet-100);
37
+ --rvc-badge-color-violet: var(--color-violet-700);
38
+
39
+ /* Purple variant */
40
+ --rvc-badge-bg-color-purple: var(--color-purple-100);
41
+ --rvc-badge-color-purple: var(--color-purple-700);
42
+
43
+ /* Pink variant */
44
+ --rvc-badge-bg-color-pink: var(--color-pink-100);
45
+ --rvc-badge-color-pink: var(--color-pink-700);
46
+
47
+ /* Small variant */
48
+ --rvc-badge-height-sm: calc(var(--spacing) * 6);
49
+ --rvc-badge-padding-x-sm: calc(var(--spacing) * 2);
50
+ --rvc-badge-padding-y-sm: calc(var(--spacing) * 1);
51
+ --rvc-badge-font-size-sm: var(--text-sm);
52
+ }
53
+
54
+ @layer components {
55
+ .rvc-badge {
56
+ height: var(--rvc-badge-height);
57
+ padding-inline: var(--rvc-badge-padding-x);
58
+ padding-block: var(--rvc-badge-padding-y);
59
+ font-weight: var(--rvc-badge-font-weight);
60
+ border-radius: var(--rvc-badge-border-radius);
61
+ font-size: var(--rvc-badge-font-size);
62
+ gap: var(--rvc-badge-gap);
63
+ background-color: var(--rvc-badge-bg-color);
64
+ color: var(--rvc-badge-color);
65
+ display: inline-flex;
66
+ align-items: center;
67
+ justify-content: center;
68
+ text-align: center;
69
+ position: relative;
70
+ width: fit-content;
71
+ white-space: nowrap;
72
+ text-decoration: none;
73
+
74
+ &.rvc-badge-gray {
75
+ --rvc-badge-bg-color: var(--rvc-badge-bg-color-gray);
76
+ --rvc-badge-color: var(--rvc-badge-color-gray);
77
+ }
78
+
79
+ &.rvc-badge-red {
80
+ --rvc-badge-bg-color: var(--rvc-badge-bg-color-red);
81
+ --rvc-badge-color: var(--rvc-badge-color-red);
82
+ }
83
+
84
+ &.rvc-badge-yellow {
85
+ --rvc-badge-bg-color: var(--rvc-badge-bg-color-yellow);
86
+ --rvc-badge-color: var(--rvc-badge-color-yellow);
87
+ }
88
+
89
+ &.rvc-badge-green {
90
+ --rvc-badge-bg-color: var(--rvc-badge-bg-color-green);
91
+ --rvc-badge-color: var(--rvc-badge-color-green);
92
+ }
93
+
94
+ &.rvc-badge-blue {
95
+ --rvc-badge-bg-color: var(--rvc-badge-bg-color-blue);
96
+ --rvc-badge-color: var(--rvc-badge-color-blue);
97
+ }
98
+
99
+ &.rvc-badge-violet {
100
+ --rvc-badge-bg-color: var(--rvc-badge-bg-color-violet);
101
+ --rvc-badge-color: var(--rvc-badge-color-violet);
102
+ }
103
+
104
+ &.rvc-badge-purple {
105
+ --rvc-badge-bg-color: var(--rvc-badge-bg-color-purple);
106
+ --rvc-badge-color: var(--rvc-badge-color-purple);
107
+ }
108
+
109
+ &.rvc-badge-pink {
110
+ --rvc-badge-bg-color: var(--rvc-badge-bg-color-pink);
111
+ --rvc-badge-color: var(--rvc-badge-color-pink);
112
+ }
113
+
114
+ &.rvc-badge-sm {
115
+ --rvc-badge-height: var(--rvc-badge-height-sm);
116
+ --rvc-badge-padding-x: var(--rvc-badge-padding-x-sm);
117
+ --rvc-badge-padding-y: var(--rvc-badge-padding-y-sm);
118
+ --rvc-badge-font-size: var(--rvc-badge-font-size-sm);
119
+ }
120
+ }
121
+ }
@@ -0,0 +1,393 @@
1
+ :root {
2
+ /* Base Button variables */
3
+ --rvc-button-border-radius: var(--rvc-base-border-radius);
4
+ --rvc-button-transition-duration: var(--rvc-base-transition-duration);
5
+ --rvc-button-transition-timing-function: var(--rvc-base-transition-timing-function);
6
+ --rvc-button-icon-loading-animation: var(--rvc-base-loading-animation);
7
+ --rvc-button-border-width: var(--rvc-base-border-width);
8
+ --rvc-button-box-shadow: var(--rvc-base-box-shadow);
9
+ --rvc-button-height: calc(var(--spacing) * 9);
10
+ --rvc-button-padding-x: calc(var(--spacing) * 3);
11
+ --rvc-button-gap: calc(var(--spacing) * 1.5);
12
+ --rvc-button-font-weight: var(--font-weight-semibold);
13
+ --rvc-button-font-size: var(--text-base);
14
+ --rvc-button-transition-property: color, background-color, border-color;
15
+ --rvc-button-icon-size: calc(var(--spacing) * 5);
16
+ --rvc-button-icon-loading-size: calc(var(--spacing) * 4);
17
+ --rvc-button-bg-color: var(--color-primary-500);
18
+ --rvc-button-color: var(--color-black);
19
+ --rvc-button-bg-color-hover: var(--color-primary-600);
20
+ --rvc-button-color-hover: var(--color-black);
21
+ --rvc-button-border-color: transparent;
22
+ --rvc-button-border-color-hover: transparent;
23
+ --rvc-button-icon-color: var(--color-slate-500);
24
+ --rvc-button-icon-color-hover: var(--color-slate-950);
25
+
26
+ /* Secondary variant */
27
+ --rvc-button-bg-color-secondary: var(--color-secondary-600);
28
+ --rvc-button-color-secondary: var(--color-white);
29
+ --rvc-button-bg-color-secondary-hover: var(--color-secondary-500);
30
+ --rvc-button-color-secondary-hover: var(--color-white);
31
+ --rvc-button-border-color-secondary: transparent;
32
+ --rvc-button-border-color-secondary-hover: transparent;
33
+ --rvc-button-icon-color-secondary: --alpha(var(--color-white) / 80%);
34
+ --rvc-button-icon-color-secondary-hover: var(--color-white);
35
+
36
+ /* Tertiary variant */
37
+ --rvc-button-bg-color-tertiary: var(--color-tertiary-600);
38
+ --rvc-button-color-tertiary: var(--color-white);
39
+ --rvc-button-bg-color-tertiary-hover: var(--color-tertiary-500);
40
+ --rvc-button-color-tertiary-hover: var(--color-white);
41
+ --rvc-button-border-color-tertiary: transparent;
42
+ --rvc-button-border-color-tertiary-hover: transparent;
43
+ --rvc-button-icon-color-tertiary: --alpha(var(--color-white) / 80%);
44
+ --rvc-button-icon-color-tertiary-hover: var(--color-white);
45
+
46
+ /* Light variant */
47
+ --rvc-button-bg-color-light: var(--color-white);
48
+ --rvc-button-color-light: var(--color-black);
49
+ --rvc-button-bg-color-light-hover: var(--color-slate-50);
50
+ --rvc-button-color-light-hover: var(--color-black);
51
+ --rvc-button-border-color-light: var(--color-slate-200);
52
+ --rvc-button-border-color-light-hover: var(--color-slate-200);
53
+ --rvc-button-icon-color-light: var(--color-slate-500);
54
+ --rvc-button-icon-color-light-hover: var(--color-slate-950);
55
+
56
+ /* Dark variant */
57
+ --rvc-button-bg-color-dark: var(--color-slate-950);
58
+ --rvc-button-color-dark: var(--color-white);
59
+ --rvc-button-bg-color-dark-hover: var(--color-slate-800);
60
+ --rvc-button-color-dark-hover: var(--color-white);
61
+ --rvc-button-border-color-dark: transparent;
62
+ --rvc-button-border-color-dark-hover: transparent;
63
+ --rvc-button-icon-color-dark: --alpha(var(--color-white) / 80%);
64
+ --rvc-button-icon-color-dark-hover: var(--color-white);
65
+
66
+ /* Red variant */
67
+ --rvc-button-bg-color-red: var(--color-red-600);
68
+ --rvc-button-color-red: var(--color-white);
69
+ --rvc-button-bg-color-red-hover: var(--color-red-500);
70
+ --rvc-button-color-red-hover: var(--color-white);
71
+ --rvc-button-border-color-red: transparent;
72
+ --rvc-button-border-color-red-hover: transparent;
73
+ --rvc-button-icon-color-red: --alpha(var(--color-white) / 80%);
74
+ --rvc-button-icon-color-red-hover: var(--color-white);
75
+
76
+ /* Red-soft variant */
77
+ --rvc-button-bg-color-red-soft: var(--color-red-50);
78
+ --rvc-button-color-red-soft: var(--color-red-700);
79
+ --rvc-button-bg-color-red-soft-hover: var(--color-red-200);
80
+ --rvc-button-color-red-soft-hover: var(--color-red-700);
81
+ --rvc-button-border-color-red-soft: var(--color-red-200);
82
+ --rvc-button-border-color-red-soft-hover: var(--color-red-200);
83
+ --rvc-button-icon-color-red-soft: var(--color-red-500);
84
+ --rvc-button-icon-color-red-soft-hover: var(--color-red-700);
85
+
86
+ /* Yellow variant */
87
+ --rvc-button-bg-color-yellow: var(--color-yellow-300);
88
+ --rvc-button-color-yellow: var(--color-slate-950);
89
+ --rvc-button-bg-color-yellow-hover: var(--color-yellow-400);
90
+ --rvc-button-color-yellow-hover: var(--color-slate-950);
91
+ --rvc-button-border-color-yellow: transparent;
92
+ --rvc-button-border-color-yellow-hover: transparent;
93
+ --rvc-button-icon-color-yellow: var(--color-slate-700);
94
+ --rvc-button-icon-color-yellow-hover: var(--color-slate-950);
95
+
96
+ /* Yellow-soft variant */
97
+ --rvc-button-bg-color-yellow-soft: var(--color-yellow-50);
98
+ --rvc-button-color-yellow-soft: var(--color-yellow-700);
99
+ --rvc-button-bg-color-yellow-soft-hover: var(--color-yellow-200);
100
+ --rvc-button-color-yellow-soft-hover: var(--color-yellow-700);
101
+ --rvc-button-border-color-yellow-soft: var(--color-yellow-200);
102
+ --rvc-button-border-color-yellow-soft-hover: var(--color-yellow-200);
103
+ --rvc-button-icon-color-yellow-soft: var(--color-yellow-500);
104
+ --rvc-button-icon-color-yellow-soft-hover: var(--color-yellow-700);
105
+
106
+ /* Green variant */
107
+ --rvc-button-bg-color-green: var(--color-green-600);
108
+ --rvc-button-color-green: var(--color-white);
109
+ --rvc-button-bg-color-green-hover: var(--color-green-500);
110
+ --rvc-button-color-green-hover: var(--color-white);
111
+ --rvc-button-border-color-green: transparent;
112
+ --rvc-button-border-color-green-hover: transparent;
113
+ --rvc-button-icon-color-green: --alpha(var(--color-white) / 80%);
114
+ --rvc-button-icon-color-green-hover: var(--color-white);
115
+
116
+ /* Green-soft variant */
117
+ --rvc-button-bg-color-green-soft: var(--color-green-50);
118
+ --rvc-button-color-green-soft: var(--color-green-700);
119
+ --rvc-button-bg-color-green-soft-hover: var(--color-green-200);
120
+ --rvc-button-color-green-soft-hover: var(--color-green-700);
121
+ --rvc-button-border-color-green-soft: var(--color-green-200);
122
+ --rvc-button-border-color-green-soft-hover: var(--color-green-200);
123
+ --rvc-button-icon-color-green-soft: var(--color-green-500);
124
+ --rvc-button-icon-color-green-soft-hover: var(--color-green-700);
125
+
126
+ /* Blue variant */
127
+ --rvc-button-bg-color-blue: var(--color-blue-600);
128
+ --rvc-button-color-blue: var(--color-white);
129
+ --rvc-button-bg-color-blue-hover: var(--color-blue-500);
130
+ --rvc-button-color-blue-hover: var(--color-white);
131
+ --rvc-button-border-color-blue: transparent;
132
+ --rvc-button-border-color-blue-hover: transparent;
133
+ --rvc-button-icon-color-blue: --alpha(var(--color-white) / 80%);
134
+ --rvc-button-icon-color-blue-hover: var(--color-white);
135
+
136
+ /* Blue-soft variant */
137
+ --rvc-button-bg-color-blue-soft: var(--color-blue-50);
138
+ --rvc-button-color-blue-soft: var(--color-blue-700);
139
+ --rvc-button-bg-color-blue-soft-hover: var(--color-blue-200);
140
+ --rvc-button-color-blue-soft-hover: var(--color-blue-700);
141
+ --rvc-button-border-color-blue-soft: var(--color-blue-200);
142
+ --rvc-button-border-color-blue-soft-hover: var(--color-blue-200);
143
+ --rvc-button-icon-color-blue-soft: var(--color-blue-500);
144
+ --rvc-button-icon-color-blue-soft-hover: var(--color-blue-700);
145
+
146
+ /* Clear variant */
147
+ --rvc-button-bg-color-clear: transparent;
148
+ --rvc-button-color-clear: var(--color-indigo-600);
149
+ --rvc-button-bg-color-clear-hover: transparent;
150
+ --rvc-button-color-clear-hover: var(--color-indigo-700);
151
+ --rvc-button-border-color-clear: transparent;
152
+ --rvc-button-border-color-clear-hover: transparent;
153
+ --rvc-button-icon-color-clear: var(--color-indigo-600);
154
+ --rvc-button-icon-color-clear-hover: var(--color-indigo-700);
155
+
156
+ /* Small variant */
157
+ --rvc-button-height-sm: 1.875rem;
158
+ --rvc-button-padding-x-sm: calc(var(--spacing) * 2.5);
159
+ --rvc-button-font-size-sm: var(--text-sm);
160
+ --rvc-button-icon-size-sm: calc(var(--spacing) * 4);
161
+ --rvc-button-icon-loading-size-sm: calc(var(--spacing) * 3);
162
+ }
163
+
164
+ @layer components {
165
+ .rvc-button {
166
+ height: var(--rvc-button-height);
167
+ border-width: var(--rvc-button-border-width);
168
+ border-color: var(--rvc-button-border-color);
169
+ transition-property: var(--rvc-button-transition-property);
170
+ transition-duration: var(--rvc-button-transition-duration);
171
+ transition-timing-function: var(--rvc-button-transition-timing-function);
172
+ padding-inline: var(--rvc-button-padding-x);
173
+ gap: var(--rvc-button-gap);
174
+ border-radius: var(--rvc-button-border-radius);
175
+ font-weight: var(--rvc-button-font-weight);
176
+ font-size: var(--rvc-button-font-size);
177
+ background-color: var(--rvc-button-bg-color);
178
+ color: var(--rvc-button-color);
179
+ box-shadow: var(--rvc-button-box-shadow);
180
+ appearance: none;
181
+ cursor: pointer;
182
+ display: inline-flex;
183
+ align-items: center;
184
+ justify-content: center;
185
+ text-align: center;
186
+ border-style: solid;
187
+ position: relative;
188
+ white-space: nowrap;
189
+
190
+ &:hover {
191
+ background-color: var(--rvc-button-bg-color-hover);
192
+ color: var(--rvc-button-color-hover);
193
+ border-color: var(--rvc-button-border-color-hover);
194
+
195
+ & .rvc-button-icon {
196
+ color: var(--rvc-button-icon-color-hover);
197
+ }
198
+ }
199
+
200
+ &:disabled {
201
+ pointer-events: none;
202
+ opacity: 0.5;
203
+ }
204
+
205
+ .rvc-button-icon {
206
+ width: var(--rvc-button-icon-size);
207
+ height: var(--rvc-button-icon-size);
208
+ color: var(--rvc-button-icon-color);
209
+ transition-property: var(--rvc-button-transition-property);
210
+ transition-duration: var(--rvc-button-transition-duration);
211
+ transition-timing-function: var(--rvc-button-transition-timing-function);
212
+ display: block;
213
+ flex-shrink: 0;
214
+ }
215
+
216
+ .rvc-button-icon.rvc-button-icon-loading {
217
+ width: var(--rvc-button-icon-loading-size);
218
+ height: var(--rvc-button-icon-loading-size);
219
+ animation: var(--rvc-button-icon-loading-animation);
220
+ }
221
+
222
+ &.rvc-button-icon-only {
223
+ padding: 0;
224
+ aspect-ratio: 1 / 1;
225
+ }
226
+
227
+ &.rvc-button-reverse {
228
+ flex-direction: row-reverse;
229
+ }
230
+
231
+ &.rvc-button-secondary {
232
+ --rvc-button-bg-color: var(--rvc-button-bg-color-secondary);
233
+ --rvc-button-color: var(--rvc-button-color-secondary);
234
+ --rvc-button-bg-color-hover: var(--rvc-button-bg-color-secondary-hover);
235
+ --rvc-button-color-hover: var(--rvc-button-color-secondary-hover);
236
+ --rvc-button-border-color: var(--rvc-button-border-color-secondary);
237
+ --rvc-button-border-color-hover: var(--rvc-button-border-color-secondary-hover);
238
+ --rvc-button-icon-color: var(--rvc-button-icon-color-secondary);
239
+ --rvc-button-icon-color-hover: var(--rvc-button-icon-color-secondary-hover);
240
+ }
241
+
242
+ &.rvc-button-tertiary {
243
+ --rvc-button-bg-color: var(--rvc-button-bg-color-tertiary);
244
+ --rvc-button-color: var(--rvc-button-color-tertiary);
245
+ --rvc-button-bg-color-hover: var(--rvc-button-bg-color-tertiary-hover);
246
+ --rvc-button-color-hover: var(--rvc-button-color-tertiary-hover);
247
+ --rvc-button-border-color: var(--rvc-button-border-color-tertiary);
248
+ --rvc-button-border-color-hover: var(--rvc-button-border-color-tertiary-hover);
249
+ --rvc-button-icon-color: var(--rvc-button-icon-color-tertiary);
250
+ --rvc-button-icon-color-hover: var(--rvc-button-icon-color-tertiary-hover);
251
+ }
252
+
253
+ &.rvc-button-light {
254
+ --rvc-button-bg-color: var(--rvc-button-bg-color-light);
255
+ --rvc-button-color: var(--rvc-button-color-light);
256
+ --rvc-button-bg-color-hover: var(--rvc-button-bg-color-light-hover);
257
+ --rvc-button-color-hover: var(--rvc-button-color-light-hover);
258
+ --rvc-button-border-color: var(--rvc-button-border-color-light);
259
+ --rvc-button-border-color-hover: var(--rvc-button-border-color-light-hover);
260
+ --rvc-button-icon-color: var(--rvc-button-icon-color-light);
261
+ --rvc-button-icon-color-hover: var(--rvc-button-icon-color-light-hover);
262
+ }
263
+
264
+ &.rvc-button-dark {
265
+ --rvc-button-bg-color: var(--rvc-button-bg-color-dark);
266
+ --rvc-button-color: var(--rvc-button-color-dark);
267
+ --rvc-button-bg-color-hover: var(--rvc-button-bg-color-dark-hover);
268
+ --rvc-button-color-hover: var(--rvc-button-color-dark-hover);
269
+ --rvc-button-border-color: var(--rvc-button-border-color-dark);
270
+ --rvc-button-border-color-hover: var(--rvc-button-border-color-dark-hover);
271
+ --rvc-button-icon-color: var(--rvc-button-icon-color-dark);
272
+ --rvc-button-icon-color-hover: var(--rvc-button-icon-color-dark-hover);
273
+ }
274
+
275
+ &.rvc-button-red {
276
+ --rvc-button-bg-color: var(--rvc-button-bg-color-red);
277
+ --rvc-button-color: var(--rvc-button-color-red);
278
+ --rvc-button-bg-color-hover: var(--rvc-button-bg-color-red-hover);
279
+ --rvc-button-color-hover: var(--rvc-button-color-red-hover);
280
+ --rvc-button-border-color: var(--rvc-button-border-color-red);
281
+ --rvc-button-border-color-hover: var(--rvc-button-border-color-red-hover);
282
+ --rvc-button-icon-color: var(--rvc-button-icon-color-red);
283
+ --rvc-button-icon-color-hover: var(--rvc-button-icon-color-red-hover);
284
+ }
285
+
286
+ &.rvc-button-red-soft {
287
+ --rvc-button-bg-color: var(--rvc-button-bg-color-red-soft);
288
+ --rvc-button-color: var(--rvc-button-color-red-soft);
289
+ --rvc-button-bg-color-hover: var(--rvc-button-bg-color-red-soft-hover);
290
+ --rvc-button-color-hover: var(--rvc-button-color-red-soft-hover);
291
+ --rvc-button-border-color: var(--rvc-button-border-color-red-soft);
292
+ --rvc-button-border-color-hover: var(--rvc-button-border-color-red-soft-hover);
293
+ --rvc-button-icon-color: var(--rvc-button-icon-color-red-soft);
294
+ --rvc-button-icon-color-hover: var(--rvc-button-icon-color-red-soft-hover);
295
+ }
296
+
297
+ &.rvc-button-yellow {
298
+ --rvc-button-bg-color: var(--rvc-button-bg-color-yellow);
299
+ --rvc-button-color: var(--rvc-button-color-yellow);
300
+ --rvc-button-bg-color-hover: var(--rvc-button-bg-color-yellow-hover);
301
+ --rvc-button-color-hover: var(--rvc-button-color-yellow-hover);
302
+ --rvc-button-border-color: var(--rvc-button-border-color-yellow);
303
+ --rvc-button-border-color-hover: var(--rvc-button-border-color-yellow-hover);
304
+ --rvc-button-icon-color: var(--rvc-button-icon-color-yellow);
305
+ --rvc-button-icon-color-hover: var(--rvc-button-icon-color-yellow-hover);
306
+ }
307
+
308
+ &.rvc-button-yellow-soft {
309
+ --rvc-button-bg-color: var(--rvc-button-bg-color-yellow-soft);
310
+ --rvc-button-color: var(--rvc-button-color-yellow-soft);
311
+ --rvc-button-bg-color-hover: var(--rvc-button-bg-color-yellow-soft-hover);
312
+ --rvc-button-color-hover: var(--rvc-button-color-yellow-soft-hover);
313
+ --rvc-button-border-color: var(--rvc-button-border-color-yellow-soft);
314
+ --rvc-button-border-color-hover: var(--rvc-button-border-color-yellow-soft-hover);
315
+ --rvc-button-icon-color: var(--rvc-button-icon-color-yellow-soft);
316
+ --rvc-button-icon-color-hover: var(--rvc-button-icon-color-yellow-soft-hover);
317
+ }
318
+
319
+ &.rvc-button-green {
320
+ --rvc-button-bg-color: var(--rvc-button-bg-color-green);
321
+ --rvc-button-color: var(--rvc-button-color-green);
322
+ --rvc-button-bg-color-hover: var(--rvc-button-bg-color-green-hover);
323
+ --rvc-button-color-hover: var(--rvc-button-color-green-hover);
324
+ --rvc-button-border-color: var(--rvc-button-border-color-green);
325
+ --rvc-button-border-color-hover: var(--rvc-button-border-color-green-hover);
326
+ --rvc-button-icon-color: var(--rvc-button-icon-color-green);
327
+ --rvc-button-icon-color-hover: var(--rvc-button-icon-color-green-hover);
328
+ }
329
+
330
+ &.rvc-button-green-soft {
331
+ --rvc-button-bg-color: var(--rvc-button-bg-color-green-soft);
332
+ --rvc-button-color: var(--rvc-button-color-green-soft);
333
+ --rvc-button-bg-color-hover: var(--rvc-button-bg-color-green-soft-hover);
334
+ --rvc-button-color-hover: var(--rvc-button-color-green-soft-hover);
335
+ --rvc-button-border-color: var(--rvc-button-border-color-green-soft);
336
+ --rvc-button-border-color-hover: var(--rvc-button-border-color-green-soft-hover);
337
+ --rvc-button-icon-color: var(--rvc-button-icon-color-green-soft);
338
+ --rvc-button-icon-color-hover: var(--rvc-button-icon-color-green-soft-hover);
339
+ }
340
+
341
+ &.rvc-button-blue {
342
+ --rvc-button-bg-color: var(--rvc-button-bg-color-blue);
343
+ --rvc-button-color: var(--rvc-button-color-blue);
344
+ --rvc-button-bg-color-hover: var(--rvc-button-bg-color-blue-hover);
345
+ --rvc-button-color-hover: var(--rvc-button-color-blue-hover);
346
+ --rvc-button-border-color: var(--rvc-button-border-color-blue);
347
+ --rvc-button-border-color-hover: var(--rvc-button-border-color-blue-hover);
348
+ --rvc-button-icon-color: var(--rvc-button-icon-color-blue);
349
+ --rvc-button-icon-color-hover: var(--rvc-button-icon-color-blue-hover);
350
+ }
351
+
352
+ &.rvc-button-blue-soft {
353
+ --rvc-button-bg-color: var(--rvc-button-bg-color-blue-soft);
354
+ --rvc-button-color: var(--rvc-button-color-blue-soft);
355
+ --rvc-button-bg-color-hover: var(--rvc-button-bg-color-blue-soft-hover);
356
+ --rvc-button-color-hover: var(--rvc-button-color-blue-soft-hover);
357
+ --rvc-button-border-color: var(--rvc-button-border-color-blue-soft);
358
+ --rvc-button-border-color-hover: var(--rvc-button-border-color-blue-soft-hover);
359
+ --rvc-button-icon-color: var(--rvc-button-icon-color-blue-soft);
360
+ --rvc-button-icon-color-hover: var(--rvc-button-icon-color-blue-soft-hover);
361
+ }
362
+
363
+ &.rvc-button-clear {
364
+ --rvc-button-bg-color: var(--rvc-button-bg-color-clear);
365
+ --rvc-button-color: var(--rvc-button-color-clear);
366
+ --rvc-button-bg-color-hover: var(--rvc-button-bg-color-clear-hover);
367
+ --rvc-button-color-hover: var(--rvc-button-color-clear-hover);
368
+ --rvc-button-border-color: var(--rvc-button-border-color-clear);
369
+ --rvc-button-border-color-hover: var(--rvc-button-border-color-clear-hover);
370
+ --rvc-button-icon-color: var(--rvc-button-icon-color-clear);
371
+ --rvc-button-icon-color-hover: var(--rvc-button-icon-color-clear-hover);
372
+
373
+ padding-inline: 0;
374
+ box-shadow: none;
375
+
376
+ &:hover {
377
+ text-decoration: underline;
378
+ }
379
+ }
380
+
381
+ &.rvc-button-sm {
382
+ --rvc-button-height: var(--rvc-button-height-sm);
383
+ --rvc-button-padding-x: var(--rvc-button-padding-x-sm);
384
+ --rvc-button-font-size: var(--rvc-button-font-size-sm);
385
+ --rvc-button-icon-size: var(--rvc-button-icon-size-sm);
386
+ --rvc-button-icon-loading-size: var(--rvc-button-icon-loading-size-sm);
387
+
388
+ &.rvc-button-icon-only {
389
+ padding: 0;
390
+ }
391
+ }
392
+ }
393
+ }