From a5b3608938b1d385c5b0080f2ee184e00170a5cf Mon Sep 17 00:00:00 2001 From: Benjamin Canac Date: Wed, 19 Jun 2024 13:03:43 +0200 Subject: [PATCH] chore(Button): improve variants Resolves #118 --- playground/app/pages/button.vue | 2 + src/theme/button.ts | 22 +- .../__snapshots__/Alert.spec.ts.snap | 4 +- .../__snapshots__/Button.spec.ts.snap | 6 +- .../__snapshots__/CommandPalette.spec.ts.snap | 4 +- .../__snapshots__/Modal.spec.ts.snap | 28 +- .../__snapshots__/Pagination.spec.ts.snap | 654 +++++++++--------- .../__snapshots__/Slideover.spec.ts.snap | 32 +- .../__snapshots__/Toast.spec.ts.snap | 32 +- 9 files changed, 397 insertions(+), 387 deletions(-) diff --git a/playground/app/pages/button.vue b/playground/app/pages/button.vue index 1a48e4c9..4a2621ba 100644 --- a/playground/app/pages/button.vue +++ b/playground/app/pages/button.vue @@ -33,6 +33,7 @@ const variants = Object.keys(theme.variants.variant)
+
@@ -41,6 +42,7 @@ const variants = Object.keys(theme.variants.variant)
+
diff --git a/src/theme/button.ts b/src/theme/button.ts index e6476645..155cb441 100644 --- a/src/theme/button.ts +++ b/src/theme/button.ts @@ -94,15 +94,19 @@ export default (options: Required) => ({ })), ...options.colors.map((color: string) => ({ color, variant: 'link', - class: `text-${color}-500 hover:text-${color}-600 disabled:text-${color}-500 dark:text-${color}-400 dark:hover:text-${color}-500 dark:disabled:text-${color}-400 underline-offset-4 hover:underline focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-${color}-500 dark:focus-visible:ring-${color}-400` + class: `text-${color}-500 hover:text-${color}-600 disabled:text-${color}-500 dark:text-${color}-400 dark:hover:text-${color}-500 dark:disabled:text-${color}-400 focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-${color}-500 dark:focus-visible:ring-${color}-400` })), { color: 'white', variant: 'solid', - class: 'shadow-sm ring ring-inset ring-gray-300 dark:ring-gray-700 text-gray-900 dark:text-white bg-white hover:bg-gray-50 disabled:bg-white dark:bg-gray-900 dark:hover:bg-gray-800/50 dark:disabled:bg-gray-900 focus-visible:ring-2 focus-visible:ring-primary-500 dark:focus-visible:ring-primary-400' + class: 'shadow-sm ring ring-inset ring-gray-300 dark:ring-gray-700 text-gray-900 dark:text-white bg-white hover:bg-gray-50 disabled:bg-white dark:bg-gray-900 dark:hover:bg-gray-800 dark:disabled:bg-gray-900 focus-visible:ring-2 focus-visible:ring-primary-500 dark:focus-visible:ring-primary-400' }, { color: 'white', variant: 'ghost', - class: 'text-gray-900 dark:text-white hover:bg-white dark:hover:bg-gray-900 focus-visible:ring-inset focus-visible:ring-2 focus-visible:ring-primary-500 dark:focus-visible:ring-primary-400' + class: 'text-gray-900 dark:text-white hover:bg-white disabled:bg-transparent dark:hover:bg-gray-900 dark:disabled:bg-transparent focus-visible:ring-inset focus-visible:ring-2 focus-visible:ring-primary-500 dark:focus-visible:ring-primary-400' + }, { + color: 'white', + variant: 'link', + class: 'text-gray-900 hover:text-gray-500 disabled:text-gray-900 dark:text-white dark:hover:text-gray-400 dark:disabled:text-white focus-visible:ring-inset focus-visible:ring-2 focus-visible:ring-primary-500 dark:focus-visible:ring-primary-400' }, { color: 'gray', variant: 'solid', @@ -110,19 +114,23 @@ export default (options: Required) => ({ }, { color: 'gray', variant: 'ghost', - class: 'text-gray-700 dark:text-gray-200 hover:text-gray-900 dark:hover:text-white hover:bg-gray-50 dark:hover:bg-gray-800 focus-visible:ring-inset focus-visible:ring-2 focus-visible:ring-primary-500 dark:focus-visible:ring-primary-400' + class: 'text-gray-700 dark:text-gray-200 hover:bg-gray-50 disabled:bg-transparent dark:hover:bg-gray-800 dark:hover:disabled:bg-transparent focus-visible:ring-inset focus-visible:ring-2 focus-visible:ring-primary-500 dark:focus-visible:ring-primary-400' }, { color: 'gray', variant: 'link', - class: 'text-gray-500 dark:text-gray-400 hover:text-gray-700 dark:hover:text-gray-200 underline-offset-4 hover:underline focus-visible:ring-inset focus-visible:ring-2 focus-visible:ring-primary-500 dark:focus-visible:ring-primary-400' + class: 'text-gray-500 hover:text-gray-700 disabled:text-gray-500 dark:text-gray-400 dark:hover:text-gray-200 dark:disabled:text-gray-400 focus-visible:ring-inset focus-visible:ring-2 focus-visible:ring-primary-500 dark:focus-visible:ring-primary-400' }, { color: 'black', variant: 'solid', - class: 'shadow-sm text-white dark:text-gray-900 bg-gray-900 hover:bg-gray-800 disabled:bg-gray-900 dark:bg-white dark:hover:bg-gray-100 dark:disabled:bg-white focus-visible:ring-inset focus-visible:ring-2 focus-visible:ring-primary-500 dark:focus-visible:ring-primary-400' + class: 'shadow-sm text-white dark:text-gray-900 bg-gray-900 hover:bg-gray-800 disabled:bg-gray-900 dark:bg-white dark:hover:bg-gray-200 dark:disabled:bg-white focus-visible:ring-inset focus-visible:ring-2 focus-visible:ring-primary-500 dark:focus-visible:ring-primary-400' + }, { + color: 'black', + variant: 'ghost', + class: 'text-gray-900 hover:text-white disabled:text-gray-900 dark:text-white dark:hover:text-gray-900 dark:disabled:text-white hover:bg-gray-900 disabled:bg-transparent dark:hover:bg-white dark:disabled:bg-transparent focus-visible:ring-inset focus-visible:ring-2 focus-visible:ring-primary-500 dark:focus-visible:ring-primary-400' }, { color: 'black', variant: 'link', - class: 'text-gray-900 dark:text-white underline-offset-4 hover:underline focus-visible:ring-inset focus-visible:ring-2 focus-visible:ring-primary-500 dark:focus-visible:ring-primary-400' + class: 'text-gray-900 hover:text-gray-500 disabled:text-gray-900 dark:text-white dark:hover:text-gray-400 dark:disabled:text-white focus-visible:ring-inset focus-visible:ring-2 focus-visible:ring-primary-500 dark:focus-visible:ring-primary-400' }, { size: 'xs', square: true, diff --git a/test/components/__snapshots__/Alert.spec.ts.snap b/test/components/__snapshots__/Alert.spec.ts.snap index 952881ad..b1b4642f 100644 --- a/test/components/__snapshots__/Alert.spec.ts.snap +++ b/test/components/__snapshots__/Alert.spec.ts.snap @@ -43,7 +43,7 @@ exports[`Alert > renders with close correctly 1`] = `
-
@@ -70,7 +70,7 @@ exports[`Alert > renders with closeIcon correctly 1`] = ` -
diff --git a/test/components/__snapshots__/Button.spec.ts.snap b/test/components/__snapshots__/Button.spec.ts.snap index 5cbef038..558fff3c 100644 --- a/test/components/__snapshots__/Button.spec.ts.snap +++ b/test/components/__snapshots__/Button.spec.ts.snap @@ -10,7 +10,7 @@ exports[`Button > renders with block correctly 1`] = ` exports[`Button > renders with class correctly 1`] = `""`; exports[`Button > renders with color black correctly 1`] = ` -"" @@ -45,7 +45,7 @@ exports[`Button > renders with color red correctly 1`] = ` `; exports[`Button > renders with color white correctly 1`] = ` -"" @@ -187,7 +187,7 @@ exports[`Button > renders with variant ghost correctly 1`] = ` `; exports[`Button > renders with variant link correctly 1`] = ` -"" diff --git a/test/components/__snapshots__/CommandPalette.spec.ts.snap b/test/components/__snapshots__/CommandPalette.spec.ts.snap index 6e949946..5263fc83 100644 --- a/test/components/__snapshots__/CommandPalette.spec.ts.snap +++ b/test/components/__snapshots__/CommandPalette.spec.ts.snap @@ -128,7 +128,7 @@ exports[`CommandPalette > renders with class correctly 1`] = ` exports[`CommandPalette > renders with close correctly 1`] = ` "
-
@@ -253,7 +253,7 @@ exports[`CommandPalette > renders with close slot correctly 1`] = ` exports[`CommandPalette > renders with closeIcon correctly 1`] = ` "
-
diff --git a/test/components/__snapshots__/Modal.spec.ts.snap b/test/components/__snapshots__/Modal.spec.ts.snap index ad9267cf..77e31e03 100644 --- a/test/components/__snapshots__/Modal.spec.ts.snap +++ b/test/components/__snapshots__/Modal.spec.ts.snap @@ -9,7 +9,7 @@ exports[`Modal > renders with body slot correctly 1`] = ` @@ -431,31 +431,31 @@ exports[`Pagination > renders with as correctly 1`] = ` exports[`Pagination > renders with class correctly 1`] = ` "
@@ -662,31 +662,31 @@ exports[`Pagination > renders with color white correctly 1`] = ` exports[`Pagination > renders with defaultPage correctly 1`] = ` "
@@ -1523,7 +1523,7 @@ exports[`Pagination > renders with variant outline correctly 1`] = ` diff --git a/test/components/__snapshots__/Slideover.spec.ts.snap b/test/components/__snapshots__/Slideover.spec.ts.snap index 51ad0747..bf73ea00 100644 --- a/test/components/__snapshots__/Slideover.spec.ts.snap +++ b/test/components/__snapshots__/Slideover.spec.ts.snap @@ -9,7 +9,7 @@ exports[`Slideover > renders with body slot correctly 1`] = `
-
-
-
-
-
-
-
-
-