Skip to content

Commit

Permalink
Make loading disabled buttons colorful (#4666)
Browse files Browse the repository at this point in the history
  • Loading branch information
denieler authored Feb 12, 2025
1 parent 6a1957b commit bb47d73
Show file tree
Hide file tree
Showing 5 changed files with 23 additions and 8 deletions.
9 changes: 9 additions & 0 deletions .changeset/nice-games-beg.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
'@toptal/picasso-button': patch
---

---

### Button

- use the button's variant color when displaying the loading indicator in a disabled button, instead of the default grey
1 change: 1 addition & 0 deletions packages/base/Button/src/Button/Button.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -131,6 +131,7 @@ export const Button: OverridableComponent<Props> = forwardRef<
focused,
hovered,
active,
loading,
})
const sizeClassNames = createSizeClassNames(size)

Expand Down
12 changes: 7 additions & 5 deletions packages/base/Button/src/Button/styles.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,13 @@ export const createVariantClassNames = (
focused,
hovered,
active,
loading,
}: {
disabled?: boolean
focused?: boolean
hovered?: boolean
active?: boolean
loading?: boolean
}
): string[] => {
const variantClassNames = []
Expand All @@ -39,7 +41,7 @@ export const createVariantClassNames = (
variantClassNames.push('text-white')
variantClassNames.push('visited:text-white')

if (disabled) {
if (disabled && !loading) {
variantClassNames.push('bg-gray-400')
} else {
variantClassNames.push('hover:bg-[#4269D6]')
Expand All @@ -60,7 +62,7 @@ export const createVariantClassNames = (
variantClassNames.push('text-white')
variantClassNames.push('visited:text-white')

if (disabled) {
if (disabled && !loading) {
variantClassNames.push('bg-gray-400')
} else {
variantClassNames.push('hover:bg-[#DB466B]')
Expand All @@ -80,7 +82,7 @@ export const createVariantClassNames = (
variantClassNames.push('text-white')
variantClassNames.push('visited:text-white')

if (disabled) {
if (disabled && !loading) {
variantClassNames.push('bg-gray-400')
} else {
variantClassNames.push('hover:bg-[#27D496]')
Expand All @@ -98,7 +100,7 @@ export const createVariantClassNames = (
case 'secondary':
variantClassNames.push('border border-solid')

if (disabled) {
if (disabled && !loading) {
variantClassNames.push('text-gray-500')
variantClassNames.push('visited:text-gray-500')
variantClassNames.push('border-gray-500')
Expand Down Expand Up @@ -127,7 +129,7 @@ export const createVariantClassNames = (
break
case 'transparent':
variantClassNames.push('border border-solid')
if (disabled) {
if (disabled && !loading) {
variantClassNames.push('text-white/[0.32]')
variantClassNames.push('border-white/[0.32]')
variantClassNames.push('bg-transparent')
Expand Down
1 change: 1 addition & 0 deletions packages/base/Button/src/ButtonCircular/ButtonCircular.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ export const ButtonCircular: OverridableComponent<Props> = forwardRef<
focused,
hovered,
active,
loading,
})

const finalClassName = cx(
Expand Down
8 changes: 5 additions & 3 deletions packages/base/Button/src/ButtonCircular/styles.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,11 +28,13 @@ export const createVariantClassNames = (
focused,
hovered,
active,
loading,
}: {
disabled?: boolean
focused?: boolean
hovered?: boolean
active?: boolean
loading?: boolean
}
): string[] => {
const variantClassNames = []
Expand All @@ -43,7 +45,7 @@ export const createVariantClassNames = (
variantClassNames.push('text-white')
variantClassNames.push('visited:text-white')

if (disabled) {
if (disabled && !loading) {
variantClassNames.push('bg-gray-400')
} else {
variantClassNames.push('hover:bg-[#4269D6]')
Expand All @@ -69,7 +71,7 @@ export const createVariantClassNames = (
variantClassNames.push('border-none')
variantClassNames.push('text-graphite-700')

if (disabled) {
if (disabled && !loading) {
variantClassNames.push('text-graphite-700')
variantClassNames.push('opacity-[0.48]')
variantClassNames.push('bg-transparent')
Expand Down Expand Up @@ -97,7 +99,7 @@ export const createVariantClassNames = (
variantClassNames.push('border-none')
variantClassNames.push('text-white')

if (disabled) {
if (disabled && !loading) {
variantClassNames.push('text-white/[0.48]')
variantClassNames.push('bg-transparent')
} else {
Expand Down

0 comments on commit bb47d73

Please sign in to comment.