@code-coaching/vuetiful 0.4.1 → 0.5.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 (40) hide show
  1. package/dist/types/components/molecules/VDrawer.vue.d.ts +0 -18
  2. package/dist/types/services/drawer.service.d.ts +2 -3
  3. package/dist/vuetiful.es.mjs +22 -22
  4. package/dist/vuetiful.umd.js +9 -9
  5. package/package.json +2 -1
  6. package/src/assets/main.css +6 -6
  7. package/src/components/molecules/VDrawer.vue +7 -13
  8. package/src/env.d.ts +4 -4
  9. package/src/services/drawer.service.ts +15 -12
  10. package/src/styles/core.css +49 -49
  11. package/src/styles/elements/alerts.css +13 -13
  12. package/src/styles/elements/badges.css +24 -24
  13. package/src/styles/elements/breadcrumbs.css +19 -19
  14. package/src/styles/elements/buttons.css +86 -86
  15. package/src/styles/elements/cards.css +22 -22
  16. package/src/styles/elements/chips.css +17 -17
  17. package/src/styles/elements/forms.css +237 -236
  18. package/src/styles/elements/lists.css +39 -39
  19. package/src/styles/elements/logo-clouds.css +21 -21
  20. package/src/styles/elements/modals.css +3 -3
  21. package/src/styles/elements/placeholders.css +10 -10
  22. package/src/styles/elements/popups.css +7 -7
  23. package/src/styles/elements/tables.css +73 -73
  24. package/src/styles/elements.css +13 -13
  25. package/src/styles/highlight-js.css +33 -33
  26. package/src/styles/typography.css +97 -97
  27. package/src/styles/variants.css +145 -145
  28. package/src/themes/theme-rocket.css +104 -104
  29. package/src/themes/theme-sahara.css +111 -111
  30. package/src/themes/theme-seafoam.css +110 -109
  31. package/src/themes/theme-seasonal.css +101 -101
  32. package/src/themes/theme-skeleton.css +102 -102
  33. package/src/themes/theme-vintage.css +109 -109
  34. package/src/themes/theme-vuetiful-0.0.1.css +110 -110
  35. package/src/types/index.ts +1 -1
  36. package/src/types/tailwind.ts +21 -2
  37. package/src/utils/code-block/highlight.service.test.ts +1 -1
  38. package/src/utils/index.test.ts +1 -1
  39. package/src/utils/platform/platform.service.ts +3 -5
  40. package/src/utils/theme/theme.service.test.ts +2 -3
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@code-coaching/vuetiful",
3
- "version": "0.4.1",
3
+ "version": "0.5.0",
4
4
  "scripts": {
5
5
  "dev": "onchange 'src/**/*.vue' 'src/**/*.ts' 'src/**/*.css' -- npm run build",
6
6
  "prebuild": "node 'scripts/intellisense.js'",
@@ -9,6 +9,7 @@
9
9
  "docs:dev": "cd docs && npm run dev",
10
10
  "docs:build": "cd docs && npm run build",
11
11
  "docs:serve": "cd docs && npm run serve",
12
+ "format": "prettier --write \"**/*.{js,ts,vue,css,html,md,json}\" --ignore-path .gitignore",
12
13
  "test": "vitest",
13
14
  "coverage": "vitest run --coverage"
14
15
  },
@@ -1,15 +1,15 @@
1
1
  @font-face {
2
- font-family: 'myfont';
3
- src: url('fonts/myfont.woff');
2
+ font-family: "myfont";
3
+ src: url("fonts/myfont.woff");
4
4
  }
5
5
 
6
- [class^='icon-'],
7
- [class*=' icon-'] {
8
- font-family: 'myfont' !important;
6
+ [class^="icon-"],
7
+ [class*=" icon-"] {
8
+ font-family: "myfont" !important;
9
9
  }
10
10
 
11
11
  .icon-heart:before {
12
- content: '\e9da';
12
+ content: "\e9da";
13
13
  }
14
14
 
15
15
  .global-example {
@@ -8,15 +8,6 @@ const attrs = useAttrs();
8
8
 
9
9
  // #region Props
10
10
  const props = defineProps({
11
- position: {
12
- type: String as () => "left" | "top" | "right" | "bottom",
13
- default: "left",
14
- },
15
- duration: {
16
- type: Number as () => 150 | 300,
17
- default: 300,
18
- },
19
-
20
11
  // Regions
21
12
  regionBackdrop: {
22
13
  type: String as () => CssClasses,
@@ -39,7 +30,7 @@ const props = defineProps({
39
30
  });
40
31
 
41
32
  // prettier-ignore
42
- const { position, duration, regionBackdrop, regionDrawer, labelledby, describedby } = toRefs(props);
33
+ const { regionBackdrop, regionDrawer, labelledby, describedby } = toRefs(props);
43
34
  // prettier-ignore
44
35
  const presets = {
45
36
  top: { alignment: 'top-0', width: 'w-full', height: 'h-[50%]', rounded: 'rounded-bl-container-token rounded-br-container-token' },
@@ -47,7 +38,10 @@ const presets = {
47
38
  left: { alignment: 'lef-0', width: 'w-[90%]', height: 'h-full', rounded: 'rounded-tr-container-token rounded-br-container-token' },
48
39
  right: { alignment: 'right-0', width: 'w-[90%]', height: 'h-full', rounded: 'rounded-tl-container-token rounded-bl-container-token' }
49
40
  };
50
- const preset = computed(() => presets[position.value]);
41
+ const preset = computed(() => {
42
+ const position = drawer.position || "left";
43
+ return presets[position];
44
+ });
51
45
  // #endregion
52
46
 
53
47
  // #region template refs
@@ -70,7 +64,7 @@ onMounted(() => {
70
64
  </script>
71
65
 
72
66
  <template>
73
- <transition :name="`slide-${position}-${duration}`">
67
+ <transition :name="`slide-${drawer.position}-${drawer.duration}`">
74
68
  <div
75
69
  v-if="drawer.open"
76
70
  ref="elemDrawer"
@@ -83,7 +77,7 @@ onMounted(() => {
83
77
  <slot />
84
78
  </div>
85
79
  </transition>
86
- <transition :name="`fade-${duration}`">
80
+ <transition :name="`fade-${drawer.duration}`">
87
81
  <div
88
82
  v-if="drawer.open"
89
83
  ref="elemBackdrop"
package/src/env.d.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  /// <reference types="vite/client" />
2
2
 
3
- declare module '*.vue' {
4
- import { DefineComponent } from 'vue'
3
+ declare module "*.vue" {
4
+ import { DefineComponent } from "vue";
5
5
  // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/ban-types
6
- const component: DefineComponent<{}, {}, any>
7
- export default component
6
+ const component: DefineComponent<{}, {}, any>;
7
+ export default component;
8
8
  }
@@ -1,10 +1,10 @@
1
- import { reactive, readonly } from 'vue';
1
+ import { reactive, readonly } from "vue";
2
2
 
3
3
  export interface DrawerSettings {
4
4
  id?: string;
5
5
  open?: boolean;
6
6
 
7
- position?: 'left' | 'top' | 'right' | 'bottom';
7
+ position?: "left" | "top" | "right" | "bottom";
8
8
  duration?: 150 | 300;
9
9
 
10
10
  regionBackdrop?: string;
@@ -14,29 +14,32 @@ export interface DrawerSettings {
14
14
  }
15
15
 
16
16
  const drawer = reactive<DrawerSettings>({
17
- id: 'default',
17
+ id: "default",
18
18
  open: false,
19
+ position: "left",
20
+ duration: 300,
21
+ regionBackdrop: "",
22
+ regionDrawer: "",
19
23
  });
20
24
 
21
25
  const useDrawer = () => {
22
26
  const open = (settings?: DrawerSettings) => {
23
27
  drawer.open = true;
24
- if (settings) {
25
- Object.keys(settings).forEach((key: string) => {
26
- drawer[key] = settings[key];
27
- });
28
- }
28
+ drawer.id = settings?.id ?? "default";
29
+ drawer.duration = settings?.duration ?? 300;
30
+ drawer.regionBackdrop = settings?.regionBackdrop ?? "";
31
+ drawer.regionDrawer = settings?.regionDrawer ?? "";
32
+ drawer.position = settings?.position ?? "left";
29
33
  };
30
34
 
31
- const close = () => (drawer.open = false);
32
-
33
- const toggle = () => (drawer.open = !drawer.open);
35
+ const close = () => {
36
+ drawer.open = false;
37
+ };
34
38
 
35
39
  return {
36
40
  drawer: readonly(drawer),
37
41
  open,
38
42
  close,
39
- toggle,
40
43
  };
41
44
  };
42
45
 
@@ -1,65 +1,65 @@
1
1
  /* Stylesheet: core.css */
2
2
 
3
3
  @layer base {
4
- /* === Body Styles === */
4
+ /* === Body Styles === */
5
5
 
6
- body {
7
- @apply bg-surface-50-900-token;
8
- }
6
+ body {
7
+ @apply bg-surface-50-900-token;
8
+ }
9
9
 
10
- /* === Selection === */
10
+ /* === Selection === */
11
11
 
12
- ::selection {
13
- @apply bg-primary-500/30;
14
- }
12
+ ::selection {
13
+ @apply bg-primary-500/30;
14
+ }
15
15
 
16
- /* === Focus === */
16
+ /* === Focus === */
17
17
 
18
- /* Outline (do not change) */
19
- /* http://www.outlinenone.com/ */
18
+ /* Outline (do not change) */
19
+ /* http://www.outlinenone.com/ */
20
20
 
21
- /* Mobile tap highlight */
22
- /* https://developer.mozilla.org/en-US/docs/Web/CSS/-webkit-tap-highlight-color */
23
- html {
24
- -webkit-tap-highlight-color: rgba(128, 128, 128, 0.5);
25
- }
21
+ /* Mobile tap highlight */
22
+ /* https://developer.mozilla.org/en-US/docs/Web/CSS/-webkit-tap-highlight-color */
23
+ html {
24
+ -webkit-tap-highlight-color: rgba(128, 128, 128, 0.5);
25
+ }
26
26
 
27
- /* === Scrollbars === */
27
+ /* === Scrollbars === */
28
28
 
29
- ::-webkit-scrollbar {
30
- @apply w-2;
31
- }
32
- ::-webkit-scrollbar-track {
33
- @apply !bg-surface-50-900-token px-[1px];
34
- }
35
- ::-webkit-scrollbar-thumb {
36
- @apply rounded-token bg-surface-400-500-token;
37
- }
29
+ ::-webkit-scrollbar {
30
+ @apply w-2;
31
+ }
32
+ ::-webkit-scrollbar-track {
33
+ @apply px-[1px] !bg-surface-50-900-token;
34
+ }
35
+ ::-webkit-scrollbar-thumb {
36
+ @apply bg-surface-400-500-token rounded-token;
37
+ }
38
38
 
39
- /* Firefox */
40
- /* https://developer.mozilla.org/en-US/docs/Web/CSS/scrollbar-color#browser_compatibility */
41
- html {
42
- scrollbar-color: rgba(0, 0, 0, 0.2) rgba(255, 255, 255, 0.05);
43
- }
44
- html.dark {
45
- scrollbar-color: rgba(255, 255, 255, 0.1) rgba(0, 0, 0, 0.05);
46
- }
39
+ /* Firefox */
40
+ /* https://developer.mozilla.org/en-US/docs/Web/CSS/scrollbar-color#browser_compatibility */
41
+ html {
42
+ scrollbar-color: rgba(0, 0, 0, 0.2) rgba(255, 255, 255, 0.05);
43
+ }
44
+ html.dark {
45
+ scrollbar-color: rgba(255, 255, 255, 0.1) rgba(0, 0, 0, 0.05);
46
+ }
47
47
 
48
- /* Hide Scrollbars */
49
- .hide-scrollbar::-webkit-scrollbar {
50
- display: none;
51
- }
52
- .hide-scrollbar {
53
- -ms-overflow-style: none; /* IE/Edge */
54
- scrollbar-width: none; /* Firefox */
55
- }
48
+ /* Hide Scrollbars */
49
+ .hide-scrollbar::-webkit-scrollbar {
50
+ display: none;
51
+ }
52
+ .hide-scrollbar {
53
+ -ms-overflow-style: none; /* IE/Edge */
54
+ scrollbar-width: none; /* Firefox */
55
+ }
56
56
 
57
- /* === Horizontal Rules === */
57
+ /* === Horizontal Rules === */
58
58
 
59
- hr:not(.divider) {
60
- @apply block border-t border-solid border-surface-300-600-token;
61
- }
62
- .divider-vertical {
63
- @apply inline-block border-l border-solid border-surface-300-600-token min-h-[10px] mx-auto;
64
- }
59
+ hr:not(.divider) {
60
+ @apply block border-t border-solid border-surface-300-600-token;
61
+ }
62
+ .divider-vertical {
63
+ @apply mx-auto inline-block min-h-[10px] border-l border-solid border-surface-300-600-token;
64
+ }
65
65
  }
@@ -1,17 +1,17 @@
1
1
  /* Tailwind Elements: alerts.css */
2
2
 
3
3
  @layer components {
4
- .alert {
5
- @apply flex flex-col items-start lg:items-center lg:flex-row p-4 space-y-4 lg:space-y-0 lg:space-x-4;
6
- /* Text */
7
- @apply text-surface-900-50-token;
8
- /* Rounded */
9
- @apply rounded-container-token;
10
- }
11
- .alert-message {
12
- @apply flex-auto space-y-2;
13
- }
14
- .alert-actions {
15
- @apply flex items-center space-x-2;
16
- }
4
+ .alert {
5
+ @apply flex flex-col items-start space-y-4 p-4 lg:flex-row lg:items-center lg:space-y-0 lg:space-x-4;
6
+ /* Text */
7
+ @apply text-surface-900-50-token;
8
+ /* Rounded */
9
+ @apply rounded-container-token;
10
+ }
11
+ .alert-message {
12
+ @apply flex-auto space-y-2;
13
+ }
14
+ .alert-actions {
15
+ @apply flex items-center space-x-2;
16
+ }
17
17
  }
@@ -1,31 +1,31 @@
1
1
  /* Tailwind Elements: badges.css */
2
2
 
3
3
  @layer components {
4
- .badge {
5
- /* Core */
6
- @apply inline-flex justify-center items-center space-x-2 whitespace-nowrap;
7
- /* Text */
8
- @apply font-semibold text-xs;
9
- /* Padding */
10
- @apply px-2 py-1;
11
- /* Theme: Rounded */
12
- @apply rounded-token;
13
- }
4
+ .badge {
5
+ /* Core */
6
+ @apply inline-flex items-center justify-center space-x-2 whitespace-nowrap;
7
+ /* Text */
8
+ @apply text-xs font-semibold;
9
+ /* Padding */
10
+ @apply px-2 py-1;
11
+ /* Theme: Rounded */
12
+ @apply rounded-token;
13
+ }
14
14
 
15
- .badge-icon {
16
- /* Core */
17
- @apply w-5 h-5 flex justify-center items-center rounded-full;
18
- /* Text */
19
- @apply font-semibold text-xs;
20
- /* Shadow */
21
- @apply shadow;
22
- }
15
+ .badge-icon {
16
+ /* Core */
17
+ @apply flex h-5 w-5 items-center justify-center rounded-full;
18
+ /* Text */
19
+ @apply text-xs font-semibold;
20
+ /* Shadow */
21
+ @apply shadow;
22
+ }
23
23
 
24
- /* === Variants === */
24
+ /* === Variants === */
25
25
 
26
- /* Glass */
27
- .badge-glass {
28
- @apply bg-surface-500/20 dark:bg-surface-500/20 backdrop-blur-lg;
29
- @apply ring-[1px] ring-neutral-900/5 dark:ring-neutral-50/5 ring-inset;
30
- }
26
+ /* Glass */
27
+ .badge-glass {
28
+ @apply bg-surface-500/20 backdrop-blur-lg dark:bg-surface-500/20;
29
+ @apply ring-[1px] ring-inset ring-neutral-900/5 dark:ring-neutral-50/5;
30
+ }
31
31
  }
@@ -1,26 +1,26 @@
1
1
  /* Tailwind Elements: breadcrumbs.css */
2
2
 
3
3
  @layer components {
4
- .breadcrumb,
5
- .breadcrumb-nonresponsive {
6
- @apply flex items-center space-x-4 w-full hide-scrollbar overflow-x-auto;
7
- }
4
+ .breadcrumb,
5
+ .breadcrumb-nonresponsive {
6
+ @apply hide-scrollbar flex w-full items-center space-x-4 overflow-x-auto;
7
+ }
8
8
 
9
- .crumb {
10
- @apply flex justify-center items-center space-x-2;
11
- }
12
- .crumb-separator {
13
- @apply flex text-surface-700-200-token opacity-50;
14
- }
9
+ .crumb {
10
+ @apply flex items-center justify-center space-x-2;
11
+ }
12
+ .crumb-separator {
13
+ @apply flex opacity-50 text-surface-700-200-token;
14
+ }
15
15
 
16
- /* === Auto-Responsive === */
16
+ /* === Auto-Responsive === */
17
17
 
18
- .breadcrumb li {
19
- @apply hidden md:block;
20
- }
21
- .breadcrumb li:nth-last-child(3),
22
- .breadcrumb li:nth-last-child(2),
23
- .breadcrumb li:nth-last-child(1) {
24
- @apply block;
25
- }
18
+ .breadcrumb li {
19
+ @apply hidden md:block;
20
+ }
21
+ .breadcrumb li:nth-last-child(3),
22
+ .breadcrumb li:nth-last-child(2),
23
+ .breadcrumb li:nth-last-child(1) {
24
+ @apply block;
25
+ }
26
26
  }
@@ -1,103 +1,103 @@
1
1
  /* Tailwind Elements: button.css */
2
2
 
3
3
  @layer components {
4
- /* === States === */
4
+ /* === States === */
5
5
 
6
- button:disabled {
7
- @apply !opacity-50 !cursor-not-allowed active:scale-100 hover:brightness-100;
8
- }
6
+ button:disabled {
7
+ @apply !cursor-not-allowed !opacity-50 hover:brightness-100 active:scale-100;
8
+ }
9
9
 
10
- .button-base-styles {
11
- /* Size (match base) */
12
- @apply text-base px-5 py-[9px];
13
- /* Core */
14
- @apply text-center whitespace-nowrap;
15
- /* Flex Columns */
16
- @apply inline-flex justify-center items-center space-x-2;
17
- /* States */
18
- @apply hover:brightness-[1.15];
19
- /* Transitions */
20
- @apply transition-all;
21
- }
10
+ .button-base-styles {
11
+ /* Size (match base) */
12
+ @apply px-5 py-[9px] text-base;
13
+ /* Core */
14
+ @apply whitespace-nowrap text-center;
15
+ /* Flex Columns */
16
+ @apply inline-flex items-center justify-center space-x-2;
17
+ /* States */
18
+ @apply hover:brightness-[1.15];
19
+ /* Transitions */
20
+ @apply transition-all;
21
+ }
22
22
 
23
- /* === Button === */
24
- /* Standard button/anchor tag elements. */
23
+ /* === Button === */
24
+ /* Standard button/anchor tag elements. */
25
25
 
26
- .btn {
27
- @apply button-base-styles rounded-token active:scale-[95%] active:brightness-90;
28
- }
26
+ .btn {
27
+ @apply button-base-styles rounded-token active:scale-[95%] active:brightness-90;
28
+ }
29
29
 
30
- /* Button: Sizes */
31
- /* Note: Default values are built into `.btn` */
32
- .btn-sm {
33
- @apply text-sm px-3 py-1.5;
34
- }
35
- .btn-lg {
36
- @apply text-lg px-7 py-3;
37
- }
38
- .btn-xl {
39
- @apply text-xl px-9 py-4;
40
- }
30
+ /* Button: Sizes */
31
+ /* Note: Default values are built into `.btn` */
32
+ .btn-sm {
33
+ @apply px-3 py-1.5 text-sm;
34
+ }
35
+ .btn-lg {
36
+ @apply px-7 py-3 text-lg;
37
+ }
38
+ .btn-xl {
39
+ @apply px-9 py-4 text-xl;
40
+ }
41
41
 
42
- /* === Icon Button === */
43
- /* A circular button meant for housing icons. */
42
+ /* === Icon Button === */
43
+ /* A circular button meant for housing icons. */
44
44
 
45
- .btn-icon {
46
- /* Extend Base Button Clases */
47
- @apply btn;
48
- /* Size (match base) */
49
- @apply text-base aspect-square w-[43px];
50
- /* Rounded */
51
- @apply rounded-full;
52
- }
45
+ .btn-icon {
46
+ /* Extend Base Button Clases */
47
+ @apply btn;
48
+ /* Size (match base) */
49
+ @apply aspect-square w-[43px] text-base;
50
+ /* Rounded */
51
+ @apply rounded-full;
52
+ }
53
53
 
54
- /* Icon Button: Size */
55
- .btn-icon-sm {
56
- @apply text-sm aspect-square w-[33px];
57
- }
58
- .btn-icon-base {
59
- @apply text-base aspect-square w-[43px];
60
- }
61
- .btn-icon-lg {
62
- @apply text-lg aspect-square w-[53px];
63
- }
64
- .btn-icon-xl {
65
- @apply text-xl aspect-square w-[63px];
66
- }
54
+ /* Icon Button: Size */
55
+ .btn-icon-sm {
56
+ @apply aspect-square w-[33px] text-sm;
57
+ }
58
+ .btn-icon-base {
59
+ @apply aspect-square w-[43px] text-base;
60
+ }
61
+ .btn-icon-lg {
62
+ @apply aspect-square w-[53px] text-lg;
63
+ }
64
+ .btn-icon-xl {
65
+ @apply aspect-square w-[63px] text-xl;
66
+ }
67
67
 
68
- /* File Input Button */
69
- input[type='file']:not(.file-dropzone-input)::file-selector-button {
70
- @apply border-0 btn variant-filled btn-sm mr-2;
71
- }
68
+ /* File Input Button */
69
+ input[type="file"]:not(.file-dropzone-input)::file-selector-button {
70
+ @apply btn variant-filled btn-sm mr-2 border-0;
71
+ }
72
72
 
73
- /* === Button Groups === */
73
+ /* === Button Groups === */
74
74
 
75
- .btn-group {
76
- @apply inline-flex flex-row space-x-0 overflow-hidden rounded-token;
77
- /* Safari: hover overflow fix for border radius */
78
- isolation: isolate;
79
- }
80
- .btn-group-vertical {
81
- @apply btn-group flex-col space-y-0 rounded-container-token;
82
- /* Safari: hover overflow fix for border radius */
83
- isolation: isolate;
84
- }
75
+ .btn-group {
76
+ @apply inline-flex flex-row space-x-0 overflow-hidden rounded-token;
77
+ /* Safari: hover overflow fix for border radius */
78
+ isolation: isolate;
79
+ }
80
+ .btn-group-vertical {
81
+ @apply btn-group flex-col space-y-0 rounded-container-token;
82
+ /* Safari: hover overflow fix for border radius */
83
+ isolation: isolate;
84
+ }
85
85
 
86
- /* Button / Anchors */
87
- .btn-group button,
88
- .btn-group a,
89
- .btn-group-vertical button,
90
- .btn-group-vertical a {
91
- @apply button-base-styles hover:bg-surface-50/[3%] active:bg-surface-900/[3%];
92
- /* Reset Anchor Styles */
93
- @apply !no-underline !text-inherit;
94
- }
86
+ /* Button / Anchors */
87
+ .btn-group button,
88
+ .btn-group a,
89
+ .btn-group-vertical button,
90
+ .btn-group-vertical a {
91
+ @apply button-base-styles hover:bg-surface-50/[3%] active:bg-surface-900/[3%];
92
+ /* Reset Anchor Styles */
93
+ @apply !text-inherit !no-underline;
94
+ }
95
95
 
96
- /* Set Neutral Divider */
97
- .btn-group * + * {
98
- @apply border-t-0 border-l border-surface-500/20;
99
- }
100
- .btn-group-vertical * + * {
101
- @apply border-t border-l-0 border-surface-500/20;
102
- }
96
+ /* Set Neutral Divider */
97
+ .btn-group * + * {
98
+ @apply border-t-0 border-l border-surface-500/20;
99
+ }
100
+ .btn-group-vertical * + * {
101
+ @apply border-t border-l-0 border-surface-500/20;
102
+ }
103
103
  }
@@ -1,32 +1,32 @@
1
1
  /* Tailwind Elements: cards.css */
2
2
 
3
3
  @layer components {
4
- .card {
5
- /* background */
6
- @apply bg-surface-100-800-token;
7
- /* Ring */
8
- @apply ring-outline-token;
9
- /* Theme: Rounded */
10
- @apply rounded-container-token;
11
- }
4
+ .card {
5
+ /* background */
6
+ @apply bg-surface-100-800-token;
7
+ /* Ring */
8
+ @apply ring-outline-token;
9
+ /* Theme: Rounded */
10
+ @apply rounded-container-token;
11
+ }
12
12
 
13
- /* === Regions === */
13
+ /* === Regions === */
14
14
 
15
- .card-header {
16
- @apply p-4 pb-0;
17
- }
15
+ .card-header {
16
+ @apply p-4 pb-0;
17
+ }
18
18
 
19
- .card-footer {
20
- @apply p-4 pt-0;
21
- }
19
+ .card-footer {
20
+ @apply p-4 pt-0;
21
+ }
22
22
 
23
- /* === States === */
23
+ /* === States === */
24
24
 
25
- a.card {
26
- @apply transition-all hover:brightness-105;
27
- }
25
+ a.card {
26
+ @apply transition-all hover:brightness-105;
27
+ }
28
28
 
29
- .card-hover {
30
- @apply transition-all hover:scale-[101%] hover:shadow-xl;
31
- }
29
+ .card-hover {
30
+ @apply transition-all hover:scale-[101%] hover:shadow-xl;
31
+ }
32
32
  }