@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.
- package/dist/types/components/molecules/VDrawer.vue.d.ts +0 -18
- package/dist/types/services/drawer.service.d.ts +2 -3
- package/dist/vuetiful.es.mjs +22 -22
- package/dist/vuetiful.umd.js +9 -9
- package/package.json +2 -1
- package/src/assets/main.css +6 -6
- package/src/components/molecules/VDrawer.vue +7 -13
- package/src/env.d.ts +4 -4
- package/src/services/drawer.service.ts +15 -12
- package/src/styles/core.css +49 -49
- package/src/styles/elements/alerts.css +13 -13
- package/src/styles/elements/badges.css +24 -24
- package/src/styles/elements/breadcrumbs.css +19 -19
- package/src/styles/elements/buttons.css +86 -86
- package/src/styles/elements/cards.css +22 -22
- package/src/styles/elements/chips.css +17 -17
- package/src/styles/elements/forms.css +237 -236
- package/src/styles/elements/lists.css +39 -39
- package/src/styles/elements/logo-clouds.css +21 -21
- package/src/styles/elements/modals.css +3 -3
- package/src/styles/elements/placeholders.css +10 -10
- package/src/styles/elements/popups.css +7 -7
- package/src/styles/elements/tables.css +73 -73
- package/src/styles/elements.css +13 -13
- package/src/styles/highlight-js.css +33 -33
- package/src/styles/typography.css +97 -97
- package/src/styles/variants.css +145 -145
- package/src/themes/theme-rocket.css +104 -104
- package/src/themes/theme-sahara.css +111 -111
- package/src/themes/theme-seafoam.css +110 -109
- package/src/themes/theme-seasonal.css +101 -101
- package/src/themes/theme-skeleton.css +102 -102
- package/src/themes/theme-vintage.css +109 -109
- package/src/themes/theme-vuetiful-0.0.1.css +110 -110
- package/src/types/index.ts +1 -1
- package/src/types/tailwind.ts +21 -2
- package/src/utils/code-block/highlight.service.test.ts +1 -1
- package/src/utils/index.test.ts +1 -1
- package/src/utils/platform/platform.service.ts +3 -5
- 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.
|
|
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
|
},
|
package/src/assets/main.css
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
@font-face {
|
|
2
|
-
font-family:
|
|
3
|
-
src: url(
|
|
2
|
+
font-family: "myfont";
|
|
3
|
+
src: url("fonts/myfont.woff");
|
|
4
4
|
}
|
|
5
5
|
|
|
6
|
-
[class^=
|
|
7
|
-
[class*=
|
|
8
|
-
font-family:
|
|
6
|
+
[class^="icon-"],
|
|
7
|
+
[class*=" icon-"] {
|
|
8
|
+
font-family: "myfont" !important;
|
|
9
9
|
}
|
|
10
10
|
|
|
11
11
|
.icon-heart:before {
|
|
12
|
-
content:
|
|
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 {
|
|
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(() =>
|
|
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
|
|
4
|
-
import { DefineComponent } from
|
|
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
|
|
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?:
|
|
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:
|
|
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
|
-
|
|
25
|
-
|
|
26
|
-
|
|
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 = () =>
|
|
32
|
-
|
|
33
|
-
|
|
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
|
|
package/src/styles/core.css
CHANGED
|
@@ -1,65 +1,65 @@
|
|
|
1
1
|
/* Stylesheet: core.css */
|
|
2
2
|
|
|
3
3
|
@layer base {
|
|
4
|
-
|
|
4
|
+
/* === Body Styles === */
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
body {
|
|
7
|
+
@apply bg-surface-50-900-token;
|
|
8
|
+
}
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
/* === Selection === */
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
::selection {
|
|
13
|
+
@apply bg-primary-500/30;
|
|
14
|
+
}
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
/* === Focus === */
|
|
17
17
|
|
|
18
|
-
|
|
19
|
-
|
|
18
|
+
/* Outline (do not change) */
|
|
19
|
+
/* http://www.outlinenone.com/ */
|
|
20
20
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
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
|
-
|
|
27
|
+
/* === Scrollbars === */
|
|
28
28
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
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
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
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
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
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
|
-
|
|
57
|
+
/* === Horizontal Rules === */
|
|
58
58
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
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
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
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
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
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
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
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
|
-
|
|
24
|
+
/* === Variants === */
|
|
25
25
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
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
|
-
|
|
5
|
-
|
|
6
|
-
|
|
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
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
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
|
-
|
|
16
|
+
/* === Auto-Responsive === */
|
|
17
17
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
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
|
-
|
|
4
|
+
/* === States === */
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
button:disabled {
|
|
7
|
+
@apply !cursor-not-allowed !opacity-50 hover:brightness-100 active:scale-100;
|
|
8
|
+
}
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
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
|
-
|
|
24
|
-
|
|
23
|
+
/* === Button === */
|
|
24
|
+
/* Standard button/anchor tag elements. */
|
|
25
25
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
26
|
+
.btn {
|
|
27
|
+
@apply button-base-styles rounded-token active:scale-[95%] active:brightness-90;
|
|
28
|
+
}
|
|
29
29
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
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
|
-
|
|
43
|
-
|
|
42
|
+
/* === Icon Button === */
|
|
43
|
+
/* A circular button meant for housing icons. */
|
|
44
44
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
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
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
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
|
-
|
|
69
|
-
|
|
70
|
-
|
|
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
|
-
|
|
73
|
+
/* === Button Groups === */
|
|
74
74
|
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
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
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
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
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
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
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
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
|
-
|
|
13
|
+
/* === Regions === */
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
.card-header {
|
|
16
|
+
@apply p-4 pb-0;
|
|
17
|
+
}
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
19
|
+
.card-footer {
|
|
20
|
+
@apply p-4 pt-0;
|
|
21
|
+
}
|
|
22
22
|
|
|
23
|
-
|
|
23
|
+
/* === States === */
|
|
24
24
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
25
|
+
a.card {
|
|
26
|
+
@apply transition-all hover:brightness-105;
|
|
27
|
+
}
|
|
28
28
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
29
|
+
.card-hover {
|
|
30
|
+
@apply transition-all hover:scale-[101%] hover:shadow-xl;
|
|
31
|
+
}
|
|
32
32
|
}
|