@code-coaching/vuetiful 0.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/README.md +143 -0
  2. package/dist/style.css +1 -0
  3. package/dist/styles/all.css +4645 -0
  4. package/dist/types/components/atoms/VButton.vue.d.ts +86 -0
  5. package/dist/types/components/atoms/index.d.ts +2 -0
  6. package/dist/types/components/index.d.ts +2 -0
  7. package/dist/types/constants/MyConstants.d.ts +1 -0
  8. package/dist/types/constants/index.d.ts +2 -0
  9. package/dist/types/index.d.ts +12 -0
  10. package/dist/types/types/index.d.ts +1 -0
  11. package/dist/types/types/tailwind.d.ts +4 -0
  12. package/dist/types/utils/MyUtil.d.ts +5 -0
  13. package/dist/types/utils/dark-mode/dark-mode.d.ts +18 -0
  14. package/dist/types/utils/dark-mode/dark-mode.vue.d.ts +91 -0
  15. package/dist/types/utils/index.d.ts +6 -0
  16. package/dist/types/utils/platform/platform.d.ts +4 -0
  17. package/dist/types/utils/theme/theme-switcher.vue.d.ts +106 -0
  18. package/dist/types/utils/theme/theme.d.ts +9 -0
  19. package/dist/vuetiful.es.mjs +515 -0
  20. package/dist/vuetiful.umd.js +17 -0
  21. package/package.json +47 -0
  22. package/src/assets/fonts/myfont.woff +0 -0
  23. package/src/assets/main.css +17 -0
  24. package/src/components/atoms/VButton.vue +78 -0
  25. package/src/components/atoms/index.ts +3 -0
  26. package/src/components/index.ts +3 -0
  27. package/src/constants/MyConstants.ts +1 -0
  28. package/src/constants/index.ts +5 -0
  29. package/src/env.d.ts +8 -0
  30. package/src/index.ts +29 -0
  31. package/src/styles/all.css +21 -0
  32. package/src/styles/core.css +65 -0
  33. package/src/styles/elements/alerts.css +17 -0
  34. package/src/styles/elements/badges.css +31 -0
  35. package/src/styles/elements/breadcrumbs.css +26 -0
  36. package/src/styles/elements/buttons.css +103 -0
  37. package/src/styles/elements/cards.css +32 -0
  38. package/src/styles/elements/chips.css +22 -0
  39. package/src/styles/elements/forms.css +268 -0
  40. package/src/styles/elements/lists.css +48 -0
  41. package/src/styles/elements/logo-clouds.css +29 -0
  42. package/src/styles/elements/modals.css +15 -0
  43. package/src/styles/elements/placeholders.css +17 -0
  44. package/src/styles/elements/popups.css +16 -0
  45. package/src/styles/elements/tables.css +102 -0
  46. package/src/styles/elements.css +19 -0
  47. package/src/styles/highlight-js.css +116 -0
  48. package/src/styles/tailwind.css +16 -0
  49. package/src/styles/typography.css +101 -0
  50. package/src/styles/variants.css +156 -0
  51. package/src/tailwind/core.cjs +37 -0
  52. package/src/tailwind/generated/intellisense-classes.cjs +558 -0
  53. package/src/tailwind/intellisense.cjs +21 -0
  54. package/src/tailwind/settings.cjs +20 -0
  55. package/src/tailwind/theme/colors.cjs +20 -0
  56. package/src/tailwind/tokens/backgrounds.cjs +48 -0
  57. package/src/tailwind/tokens/border-radius.cjs +21 -0
  58. package/src/tailwind/tokens/borders.cjs +24 -0
  59. package/src/tailwind/tokens/fills.cjs +20 -0
  60. package/src/tailwind/tokens/rings.cjs +50 -0
  61. package/src/tailwind/tokens/text.cjs +35 -0
  62. package/src/tailwind/vuetiful.cjs +19 -0
  63. package/src/themes/theme-modern.css +127 -0
  64. package/src/themes/theme-rocket.css +119 -0
  65. package/src/themes/theme-sahara.css +128 -0
  66. package/src/themes/theme-seafoam.css +121 -0
  67. package/src/themes/theme-seasonal.css +115 -0
  68. package/src/themes/theme-vintage.css +125 -0
  69. package/src/themes/theme-vuetiful.css +118 -0
  70. package/src/types/index.ts +1 -0
  71. package/src/types/tailwind.ts +7 -0
  72. package/src/utils/MyUtil.ts +7 -0
  73. package/src/utils/dark-mode/dark-mode.ts +90 -0
  74. package/src/utils/dark-mode/dark-mode.vue +133 -0
  75. package/src/utils/index.ts +7 -0
  76. package/src/utils/platform/platform.ts +10 -0
  77. package/src/utils/theme/theme-switcher.vue +155 -0
  78. package/src/utils/theme/theme.ts +65 -0
@@ -0,0 +1,29 @@
1
+ /* Tailwind Elements: logo-clouds.css */
2
+
3
+ @layer components {
4
+ .logo-cloud {
5
+ @apply grid overflow-hidden;
6
+ /* Theme: Rounded */
7
+ @apply rounded-container-token;
8
+ }
9
+
10
+ /* === Logo Item (Child) === */
11
+
12
+ .logo-item {
13
+ @apply: flex-auto text-center space-x-4 shadow;
14
+ /* Center Contents */
15
+ @apply flex justify-center items-center space-x-4;
16
+ /* Background */
17
+ @apply bg-surface-100-800-token;
18
+ /* Text */
19
+ @apply text-base font-bold text-black dark:text-white;
20
+ /* Padding */
21
+ @apply py-4 md:py-8;
22
+ }
23
+
24
+ /* === States === */
25
+
26
+ a.logo-item {
27
+ @apply hover:brightness-110;
28
+ }
29
+ }
@@ -0,0 +1,15 @@
1
+ /* Tailwind Elements: modals.css */
2
+
3
+ /* === Modal (helpers) === */
4
+
5
+ .w-modal-slim {
6
+ @apply w-full max-w-[400px];
7
+ }
8
+
9
+ .w-modal {
10
+ @apply w-full max-w-[640px];
11
+ }
12
+
13
+ .w-modal-wide {
14
+ @apply w-full max-w-[80%];
15
+ }
@@ -0,0 +1,17 @@
1
+ /* Tailwind Elements: placeholders.css */
2
+
3
+ @layer components {
4
+ /* === Base === */
5
+
6
+ .placeholder {
7
+ @apply bg-surface-300-600-token h-5;
8
+ /* Theme: Rounded */
9
+ @apply rounded-token;
10
+ }
11
+
12
+ /* === Shapes === */
13
+
14
+ .placeholder-circle {
15
+ @apply bg-surface-300-600-token aspect-square rounded-full;
16
+ }
17
+ }
@@ -0,0 +1,16 @@
1
+ /* Tailwind Elements: popups.css */
2
+
3
+ /* === Popup === */
4
+
5
+ [data-popup] {
6
+ /* https://floating-ui.com/docs/computeposition#usage */
7
+ @apply absolute top-0 left-0; /* max-w-max */
8
+ /* Set hidden on page load */
9
+ @apply hidden;
10
+ /* Transitions */
11
+ @apply transition-opacity duration-200;
12
+ }
13
+
14
+ [data-popup] .arrow {
15
+ @apply absolute rotate-45 w-2 h-2;
16
+ }
@@ -0,0 +1,102 @@
1
+ /* Elements: tables.css */
2
+
3
+ @layer components {
4
+ .table-container {
5
+ @apply overflow-x-auto w-full rounded-container-token;
6
+ }
7
+
8
+ .table {
9
+ @apply w-full overflow-hidden table-auto;
10
+ /* background */
11
+ @apply bg-surface-100-800-token;
12
+ /* Theme: Rounded */
13
+ @apply rounded-container-token;
14
+ }
15
+
16
+ /* === Hover Styles ==== */
17
+
18
+ .table-hover tbody tr {
19
+ @apply hover:bg-surface-500/20 even:hover:bg-surface-500/20;
20
+ }
21
+
22
+ .table-interactive tbody tr {
23
+ @apply hover:bg-primary-hover-token even:hover:bg-primary-hover-token cursor-pointer;
24
+ }
25
+
26
+ /* === Sort Styles ==== */
27
+
28
+ [data-sort] {
29
+ @apply hover:bg-primary-hover-token cursor-pointer;
30
+ /* Sort Icon - invisible by default */
31
+ @apply after:opacity-0 after:!ml-2 after:!content-['↓'];
32
+ }
33
+
34
+ .table-sort-asc {
35
+ @apply after:opacity-50 after:!content-['↓'];
36
+ }
37
+
38
+ .table-sort-dsc {
39
+ @apply after:opacity-50 after:!content-['↑'];
40
+ }
41
+
42
+ /* === Table Head === */
43
+
44
+ .table thead {
45
+ @apply bg-surface-200-700-token border-b border-surface-500/20;
46
+ }
47
+
48
+ .table thead tr {
49
+ @apply capitalize text-left;
50
+ }
51
+
52
+ .table thead th {
53
+ @apply font-bold p-4;
54
+ }
55
+
56
+ /* === Table Body === */
57
+
58
+ .table tbody tr {
59
+ @apply border-b border-surface-500/20 even:bg-surface-500/5;
60
+ }
61
+
62
+ .table tbody td {
63
+ /* NOTE: removed this to allow wrapping */
64
+ @apply text-sm px-3 py-4 align-top whitespace-nowrap lg:whitespace-normal;
65
+ }
66
+
67
+ .table-compact tbody td {
68
+ @apply !py-3;
69
+ }
70
+
71
+ .table-comfortable tbody td {
72
+ @apply !py-5;
73
+ }
74
+
75
+ /* === Table Foot === */
76
+
77
+ .table tfoot {
78
+ @apply bg-surface-100-800-token;
79
+ }
80
+
81
+ .table tfoot tr {
82
+ @apply capitalize text-left;
83
+ }
84
+
85
+ .table tfoot th,
86
+ .table tfoot td {
87
+ @apply p-4;
88
+ }
89
+
90
+ /* === Rows Specific === */
91
+
92
+ .table-row-checked {
93
+ @apply !bg-secondary-500/20;
94
+ }
95
+
96
+ /* === Cells Specific === */
97
+
98
+ /* Source: https://stackoverflow.com/questions/11267154/fit-cell-width-to-content */
99
+ .table-cell-fit {
100
+ @apply w-[1%] whitespace-nowrap;
101
+ }
102
+ }
@@ -0,0 +1,19 @@
1
+ /* Stylesheet: elements.css */
2
+ /* Import AFTER your theme, but BEFORE your global stylesheet. */
3
+ /* Recommended as the LAST stylesheet in the set */
4
+
5
+ @import 'elements/alerts.css';
6
+ @import 'elements/badges.css';
7
+ @import 'elements/breadcrumbs.css';
8
+ @import 'elements/buttons.css';
9
+ @import 'elements/cards.css';
10
+ @import 'elements/chips.css';
11
+ @import 'elements/forms.css';
12
+ @import 'elements/lists.css';
13
+ @import 'elements/logo-clouds.css';
14
+ @import 'elements/placeholders.css';
15
+ @import 'elements/tables.css';
16
+
17
+ /* Utilities */
18
+ @import 'elements/modals.css';
19
+ @import 'elements/popups.css';
@@ -0,0 +1,116 @@
1
+ /* Skeleton Highlight.js Theme */
2
+
3
+ /* Red */
4
+ .hljs-doctag,
5
+ .hljs-keyword,
6
+ .hljs-meta .hljs-keyword,
7
+ .hljs-template-tag,
8
+ .hljs-template-variable,
9
+ .hljs-type,
10
+ .hljs-variable.language_ {
11
+ /* color: #ff7b72; */
12
+ @apply text-red-400;
13
+ }
14
+
15
+ /* Purple */
16
+ .hljs-title,
17
+ .hljs-title.class_,
18
+ .hljs-title.class_.inherited__,
19
+ .hljs-title.function_ {
20
+ /* color: #d2a8ff; */
21
+ @apply text-purple-400;
22
+ }
23
+
24
+ /* Sky */
25
+ .hljs-attr,
26
+ .hljs-attribute,
27
+ .hljs-literal,
28
+ .hljs-meta,
29
+ .hljs-number,
30
+ .hljs-operator,
31
+ .hljs-selector-attr,
32
+ .hljs-selector-class,
33
+ .hljs-selector-id,
34
+ .hljs-variable {
35
+ /* color: #79c0ff; */
36
+ @apply text-sky-300;
37
+ }
38
+
39
+ /* Blue */
40
+ .hljs-meta .hljs-string,
41
+ .hljs-regexp,
42
+ .hljs-string {
43
+ /* color: #a5d6ff; */
44
+ @apply text-blue-400;
45
+ }
46
+
47
+ /* Amber (types) */
48
+ .hljs-built_in,
49
+ .hljs-symbol {
50
+ /* color: #ffa657; */
51
+ @apply text-amber-400;
52
+ }
53
+
54
+ /* Gray (Medium) */
55
+ .hljs-code,
56
+ .hljs-comment,
57
+ .hljs-formula {
58
+ /* color: #8b949e; */
59
+ @apply text-neutral-500;
60
+ }
61
+
62
+ /* Green (Tags) */
63
+ .hljs-name,
64
+ .hljs-quote,
65
+ .hljs-selector-pseudo,
66
+ .hljs-selector-tag {
67
+ /* color: #7ee787; */
68
+ @apply text-green-400;
69
+ }
70
+
71
+ /* Pink (Light) */
72
+ .hljs-subst {
73
+ /* color: #c9d1d9; */
74
+ @apply text-pink-300;
75
+ }
76
+
77
+ /* Sky */
78
+ .hljs-section {
79
+ /* color: #1f6feb; */
80
+ /* font-weight: 700; */
81
+ @apply font-bold text-sky-400;
82
+ }
83
+
84
+ /* Yellow */
85
+ .hljs-bullet {
86
+ /* color: #f2cc60; */
87
+ @apply text-yellow-400;
88
+ }
89
+
90
+ /* Gray (Light) */
91
+ .hljs-emphasis {
92
+ /* color: #c9d1d9; */
93
+ /* font-style: italic; */
94
+ @apply italic text-neutral-200;
95
+ }
96
+
97
+ /* Gray (Light) */
98
+ .hljs-strong {
99
+ /* color: #c9d1d9; */
100
+ /* font-weight: 700; */
101
+ @apply font-bold text-neutral-200;
102
+ }
103
+
104
+ /* Lime / Green */
105
+ .hljs-addition {
106
+ /* color: #aff5b4; */
107
+ /* background-color: #033a16; */
108
+ @apply text-lime-300 bg-green-700;
109
+ }
110
+
111
+ /* Pink / Red */
112
+ .hljs-deletion {
113
+ /* color: #ffdcd7; */
114
+ /* background-color: #67060c; */
115
+ @apply text-rose-300 bg-rose-700;
116
+ }
@@ -0,0 +1,16 @@
1
+ /* Stylesheet: tailwind.css */
2
+
3
+ /*
4
+ https://tailwindcss.com/docs/functions-and-directives
5
+
6
+ IMPORTANT:
7
+ Be sure to remove these directives from your global CSS stylesheet.
8
+
9
+ Tailwind directives should only be included ONCE per project.
10
+ These directives should preceed ALL Skeleton stylesheets.
11
+ */
12
+
13
+ @tailwind base;
14
+ @tailwind components;
15
+ @tailwind utilities;
16
+ @tailwind variants;
@@ -0,0 +1,101 @@
1
+ /* Stylesheet: typography.css */
2
+
3
+ @layer base {
4
+ body {
5
+ @apply font-token text-token;
6
+ }
7
+
8
+ /* === Headings === */
9
+
10
+ h1:not(.unstyled):is(:not(.prose *)) {
11
+ @apply font-heading-token text-3xl md:text-5xl;
12
+ }
13
+ h2:not(.unstyled):is(:not(.prose *)) {
14
+ @apply font-heading-token text-2xl md:text-4xl;
15
+ }
16
+ h3:not(.unstyled):is(:not(.prose *)) {
17
+ @apply font-heading-token text-xl md:text-2xl;
18
+ }
19
+ h4:not(.unstyled):is(:not(.prose *)) {
20
+ @apply font-heading-token text-lg md:text-xl;
21
+ }
22
+ h5:not(.unstyled):is(:not(.prose *)) {
23
+ @apply font-heading-token text-base md:text-lg;
24
+ }
25
+ h6:not(.unstyled):is(:not(.prose *)) {
26
+ @apply font-heading-token text-sm md:text-base;
27
+ }
28
+
29
+ /* === Elements === */
30
+
31
+ p:not(.unstyled):is(:not(.prose *)) {
32
+ /* NOTE: do not hardcode a text color style here. It makes color overrides difficult. */
33
+ @apply text-base;
34
+ }
35
+
36
+ a:not(.unstyled):not(.permalink):is(:not(.prose *)):not(.btn):not(.btn-icon):not(.app-bar a):not(.logo-item):not(a.card):not(
37
+ .list-nav a
38
+ ) {
39
+ @apply text-primary-700 dark:text-primary-500 hover:brightness-110 underline;
40
+ }
41
+
42
+ blockquote:not(.unstyled):is(:not(.prose *)) {
43
+ @apply text-token text-base italic border-l-8 border-l-secondary-500 px-4 pl-4;
44
+ }
45
+
46
+ /* Keyboard */
47
+ kbd:not(.unstyled):is(:not(.prose *)) {
48
+ @apply font-sans font-bold text-sm;
49
+ @apply bg-surface-300-600-token px-1.5 py-[3px] rounded;
50
+ @apply ring-[1px] ring-surface-900 ring-inset;
51
+ @apply border-b-2 border-surface-900;
52
+ }
53
+
54
+ /* === Code Blocks === */
55
+ /* For use outside of Skeleton's CodeBlock component */
56
+
57
+ pre:not(.unstyled):not(.code-block pre):is(:not(.prose *)) {
58
+ @apply font-mono text-base bg-neutral-900/90 text-white p-4 whitespace-pre-wrap overflow-x-auto rounded-container-token;
59
+ }
60
+
61
+ code:not(.unstyled):is(:not(.prose *)):is(:not(pre *)) {
62
+ @apply font-mono text-xs text-primary-700 dark:text-primary-400 whitespace-nowrap;
63
+ @apply bg-primary-500/30 dark:bg-primary-500/20;
64
+ @apply py-0.5 px-1 rounded;
65
+ }
66
+
67
+ /* === Insertions / Deletions ==== */
68
+ /* https://developer.mozilla.org/en-US/docs/Web/HTML/Element/ins */
69
+ /* https://developer.mozilla.org/en-US/docs/Web/HTML/Element/del */
70
+
71
+ ins:not(.unstyled):is(:not(.prose *)),
72
+ del:not(.unstyled):is(:not(.prose *)) {
73
+ @apply block relative p-0.5 pl-5;
74
+ text-decoration: none;
75
+ }
76
+
77
+ ins:not(.unstyled):is(:not(.prose *))::before,
78
+ del:not(.unstyled):is(:not(.prose *))::before {
79
+ @apply absolute left-1 font-mono;
80
+ }
81
+ ins:not(.unstyled):is(:not(.prose *))::before {
82
+ content: '+';
83
+ }
84
+ del:not(.unstyled):is(:not(.prose *))::before {
85
+ content: '−';
86
+ }
87
+
88
+ ins:not(.unstyled):is(:not(.prose *)) {
89
+ @apply font-mono bg-success-500 text-on-success-token;
90
+ }
91
+ del:not(.unstyled):is(:not(.prose *)) {
92
+ @apply font-mono bg-error-500 text-on-error-token;
93
+ }
94
+
95
+ /* === Date/Time === */
96
+ /* Useful for displaying timestamps */
97
+
98
+ time:not(.unstyled):is(:not(.prose *)) {
99
+ @apply text-sm text-surface-500 dark:text-surface-400;
100
+ }
101
+ }
@@ -0,0 +1,156 @@
1
+ /* === Variants === */
2
+ /* A canned set of reusabled variant styles. */
3
+
4
+ @layer components {
5
+ /* Outline -- supports ringed and host variants */
6
+ .variant-outline-primary {
7
+ @apply ring-[1px] ring-primary-500 dark:ring-primary-500 ring-inset;
8
+ }
9
+ .variant-outline-secondary {
10
+ @apply ring-[1px] ring-secondary-500 dark:ring-secondary-500 ring-inset;
11
+ }
12
+ .variant-outline-tertiary {
13
+ @apply ring-[1px] ring-tertiary-500 dark:ring-tertiary-500 ring-inset;
14
+ }
15
+ .variant-outline-success {
16
+ @apply ring-[1px] ring-success-500 dark:ring-success-500 ring-inset;
17
+ }
18
+ .variant-outline-warning {
19
+ @apply ring-[1px] ring-warning-500 dark:ring-warning-500 ring-inset;
20
+ }
21
+ .variant-outline-error {
22
+ @apply ring-[1px] ring-error-500 dark:ring-error-500 ring-inset;
23
+ }
24
+ .variant-outline,
25
+ .variant-outline-surface {
26
+ @apply ring-[1px] ring-surface-500 dark:ring-surface-500 ring-inset;
27
+ }
28
+
29
+ /* ------------------------ */
30
+
31
+ /* Filled */
32
+ .variant-filled {
33
+ @apply bg-surface-900-50-token text-surface-50-900-token;
34
+ }
35
+ .variant-filled-primary {
36
+ @apply bg-primary-500 dark:bg-primary-500 text-on-primary-token dark:text-on-primary-token;
37
+ }
38
+ .variant-filled-secondary {
39
+ @apply bg-secondary-500 dark:bg-secondary-500 text-on-secondary-token dark:text-on-secondary-token;
40
+ }
41
+ .variant-filled-tertiary {
42
+ @apply bg-tertiary-500 dark:bg-tertiary-500 text-on-tertiary-token dark:text-on-tertiary-token;
43
+ }
44
+ .variant-filled-success {
45
+ @apply bg-success-500 dark:bg-success-500 text-on-success-token dark:text-on-success-token;
46
+ }
47
+ .variant-filled-warning {
48
+ @apply bg-warning-500 dark:bg-warning-500 text-on-warning-token dark:text-on-warning-token;
49
+ }
50
+ .variant-filled-error {
51
+ @apply bg-error-500 dark:bg-error-500 text-on-error-token dark:text-on-error-token;
52
+ }
53
+ .variant-filled-surface {
54
+ @apply bg-surface-400-500-token text-on-surface-token dark:text-on-surface-token;
55
+ }
56
+
57
+ /* Ringed */
58
+ .variant-ringed {
59
+ @apply bg-transparent dark:bg-transparent variant-outline;
60
+ }
61
+ .variant-ringed-primary {
62
+ @apply bg-transparent dark:bg-transparent variant-outline-primary;
63
+ }
64
+ .variant-ringed-secondary {
65
+ @apply bg-transparent dark:bg-transparent variant-outline-secondary;
66
+ }
67
+ .variant-ringed-tertiary {
68
+ @apply bg-transparent dark:bg-transparent variant-outline-tertiary;
69
+ }
70
+ .variant-ringed-success {
71
+ @apply bg-transparent dark:bg-transparent variant-outline-success;
72
+ }
73
+ .variant-ringed-warning {
74
+ @apply bg-transparent dark:bg-transparent variant-outline-warning;
75
+ }
76
+ .variant-ringed-error {
77
+ @apply bg-transparent dark:bg-transparent variant-outline-error;
78
+ }
79
+ .variant-ringed-surface {
80
+ @apply bg-transparent dark:bg-transparent variant-outline-surface;
81
+ }
82
+
83
+ /* Ghost */
84
+ .variant-ghost-primary {
85
+ @apply bg-primary-500/20 dark:bg-primary-500/20 variant-outline-primary;
86
+ }
87
+ .variant-ghost-secondary {
88
+ @apply bg-secondary-500/20 dark:bg-secondary-500/20 variant-outline-secondary;
89
+ }
90
+ .variant-ghost-tertiary {
91
+ @apply bg-tertiary-500/20 dark:bg-tertiary-500/20 variant-outline-tertiary;
92
+ }
93
+ .variant-ghost-success {
94
+ @apply bg-success-500/20 dark:bg-success-500/20 variant-outline-success;
95
+ }
96
+ .variant-ghost-warning {
97
+ @apply bg-warning-500/20 dark:bg-warning-500/20 variant-outline-warning;
98
+ }
99
+ .variant-ghost-error {
100
+ @apply bg-error-500/20 dark:bg-error-500/20 variant-outline-error;
101
+ }
102
+ .variant-ghost,
103
+ .variant-ghost-surface {
104
+ @apply bg-surface-500/20 dark:bg-surface-500/20 variant-outline-surface;
105
+ }
106
+
107
+ /* Soft */
108
+ .variant-soft-primary {
109
+ @apply bg-primary-400/20 dark:bg-primary-500/20 text-primary-700-200-token !ring-0;
110
+ }
111
+ .variant-soft-secondary {
112
+ @apply bg-secondary-400/20 dark:bg-secondary-500/20 text-secondary-700-200-token !ring-0;
113
+ }
114
+ .variant-soft-tertiary {
115
+ @apply bg-tertiary-400/20 dark:bg-tertiary-500/20 text-tertiary-700-200-token !ring-0;
116
+ }
117
+ .variant-soft-success {
118
+ @apply bg-success-400/20 dark:bg-success-500/20 text-success-700-200-token !ring-0;
119
+ }
120
+ .variant-soft-warning {
121
+ @apply bg-warning-400/20 dark:bg-warning-500/20 text-warning-700-200-token !ring-0;
122
+ }
123
+ .variant-soft-error {
124
+ @apply bg-error-400/20 dark:bg-error-500/20 text-error-700-200-token !ring-0;
125
+ }
126
+ .variant-soft,
127
+ .variant-soft-surface {
128
+ @apply bg-surface-400/20 dark:bg-surface-500/20 text-surface-700-200-token !ring-0;
129
+ }
130
+
131
+ /* Glass */
132
+ .variant-glass-primary {
133
+ @apply bg-primary-500/20 dark:bg-primary-500/20 backdrop-blur-lg;
134
+ }
135
+ .variant-glass-secondary {
136
+ @apply bg-secondary-500/20 dark:bg-secondary-500/20 backdrop-blur-lg;
137
+ }
138
+ .variant-glass-tertiary {
139
+ @apply bg-tertiary-500/20 dark:bg-tertiary-500/20 backdrop-blur-lg;
140
+ }
141
+ .variant-glass-success {
142
+ @apply bg-success-500/20 dark:bg-success-500/20 backdrop-blur-lg;
143
+ }
144
+ .variant-glass-warning {
145
+ @apply bg-warning-500/20 dark:bg-warning-500/20 backdrop-blur-lg;
146
+ }
147
+ .variant-glass-error {
148
+ @apply bg-error-500/20 dark:bg-error-500/20 backdrop-blur-lg;
149
+ }
150
+ .variant-glass-surface {
151
+ @apply bg-surface-500/20 dark:bg-surface-500/20 backdrop-blur-lg;
152
+ }
153
+ .variant-glass {
154
+ @apply bg-surface-50/30 dark:bg-surface-900/30 backdrop-blur-lg;
155
+ }
156
+ }
@@ -0,0 +1,37 @@
1
+ // The Vuetiful Tailwind Plugin
2
+ // Tailwind Docs: https://tailwindcss.com/docs/plugins
3
+ // Vuetiful Docs: https://www.vuetiful.dev/docs/get-started
4
+
5
+ const plugin = require("tailwindcss/plugin");
6
+
7
+ // Vuetiful Theme Modules
8
+ const themeColors = require("./theme/colors.cjs");
9
+ // Vuetiful Design Token Modules
10
+ const tokensBackgrounds = require("./tokens/backgrounds.cjs");
11
+ const tokensBorders = require("./tokens/borders.cjs");
12
+ const tokensBorderRadius = require("./tokens/border-radius.cjs");
13
+ const tokensFills = require("./tokens/fills.cjs");
14
+ const tokensText = require("./tokens/text.cjs");
15
+ const tokensRings = require("./tokens/rings.cjs");
16
+
17
+ module.exports = plugin(
18
+ ({ addUtilities }) => {
19
+ addUtilities({
20
+ // Implement Vuetiful design token classes
21
+ ...tokensBackgrounds(),
22
+ ...tokensBorders(),
23
+ ...tokensBorderRadius(),
24
+ ...tokensFills(),
25
+ ...tokensText(),
26
+ ...tokensRings(),
27
+ });
28
+ },
29
+ {
30
+ theme: {
31
+ extend: {
32
+ // Implement Vuetiful theme colors
33
+ colors: themeColors(),
34
+ },
35
+ },
36
+ }
37
+ );