Add tertiary button color

This commit is contained in:
Paul Frazee
2024-03-09 11:08:18 -08:00
parent 6ac4b6be5c
commit 944d4c6a82
2 changed files with 72 additions and 1 deletions
+71
View File
@@ -20,6 +20,7 @@ export type ButtonVariant = 'solid' | 'outline' | 'ghost' | 'gradient'
export type ButtonColor = export type ButtonColor =
| 'primary' | 'primary'
| 'secondary' | 'secondary'
| 'tertiary'
| 'negative' | 'negative'
| 'gradient_sky' | 'gradient_sky'
| 'gradient_midnight' | 'gradient_midnight'
@@ -224,6 +225,43 @@ export function Button({
}) })
} }
} }
} else if (color === 'tertiary') {
if (variant === 'solid') {
if (!disabled) {
baseStyles.push({
backgroundColor: t.palette.contrast_25,
})
hoverStyles.push({
backgroundColor: t.palette.contrast_50,
})
} else {
baseStyles.push({
backgroundColor: t.palette.contrast_50,
})
}
} else if (variant === 'outline') {
baseStyles.push(a.border, t.atoms.bg, {
borderWidth: 1,
})
if (!disabled) {
baseStyles.push(a.border, {
borderColor: t.palette.contrast_200,
})
hoverStyles.push(t.atoms.bg_contrast_25)
} else {
baseStyles.push(a.border, {
borderColor: t.palette.contrast_100,
})
}
} else if (variant === 'ghost') {
if (!disabled) {
baseStyles.push(t.atoms.bg)
hoverStyles.push({
backgroundColor: t.palette.contrast_50,
})
}
}
} else if (color === 'negative') { } else if (color === 'negative') {
if (variant === 'solid') { if (variant === 'solid') {
if (!disabled) { if (!disabled) {
@@ -323,6 +361,7 @@ export function Button({
const gradient = { const gradient = {
primary: tokens.gradients.sky, primary: tokens.gradients.sky,
secondary: tokens.gradients.sky, secondary: tokens.gradients.sky,
tertiary: tokens.gradients.sky,
negative: tokens.gradients.sky, negative: tokens.gradients.sky,
gradient_sky: tokens.gradients.sky, gradient_sky: tokens.gradients.sky,
gradient_midnight: tokens.gradients.midnight, gradient_midnight: tokens.gradients.midnight,
@@ -480,6 +519,38 @@ export function useSharedButtonTextStyles() {
}) })
} }
} }
} else if (color === 'tertiary') {
if (variant === 'solid' || variant === 'gradient') {
if (!disabled) {
baseStyles.push({
color: t.palette.contrast_700,
})
} else {
baseStyles.push({
color: t.palette.contrast_400,
})
}
} else if (variant === 'outline') {
if (!disabled) {
baseStyles.push({
color: t.palette.contrast_500,
})
} else {
baseStyles.push({
color: t.palette.contrast_300,
})
}
} else if (variant === 'ghost') {
if (!disabled) {
baseStyles.push({
color: t.palette.contrast_400,
})
} else {
baseStyles.push({
color: t.palette.contrast_200,
})
}
}
} else if (color === 'negative') { } else if (color === 'negative') {
if (variant === 'solid' || variant === 'gradient') { if (variant === 'solid' || variant === 'gradient') {
if (!disabled) { if (!disabled) {
+1 -1
View File
@@ -20,7 +20,7 @@ export function Buttons() {
<H1>Buttons</H1> <H1>Buttons</H1>
<View style={[a.flex_row, a.flex_wrap, a.gap_md, a.align_start]}> <View style={[a.flex_row, a.flex_wrap, a.gap_md, a.align_start]}>
{['primary', 'secondary', 'negative'].map(color => ( {['primary', 'secondary', 'tertiary', 'negative'].map(color => (
<View key={color} style={[a.gap_md, a.align_start]}> <View key={color} style={[a.gap_md, a.align_start]}>
{['solid', 'outline', 'ghost'].map(variant => ( {['solid', 'outline', 'ghost'].map(variant => (
<React.Fragment key={variant}> <React.Fragment key={variant}>