Skip to content

Commit f00628f

Browse files
feat(/lib/theme): add Tailwind CSS colors to <Badge>s (#617)
* docs(badge.stories.tsx): inline-radio with all FlowbiteColors on storybook * feat(badge.tsx): add FlowbiteColors support to badge added all non-existing colors from FlowbiteColors to Badge --------- Co-authored-by: Ricardo Lüders <ricardo@luders.com.br>
1 parent 3f115c6 commit f00628f

File tree

3 files changed

+21
-7
lines changed

3 files changed

+21
-7
lines changed

src/lib/components/Badge/Badge.stories.tsx

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,18 @@
11
import type { Meta, Story } from '@storybook/react/types-6-0';
22
import { HiCheck } from 'react-icons/hi';
3+
import theme from '../../theme/default';
34
import type { BadgeProps } from './Badge';
45
import { Badge } from './Badge';
56

67
export default {
78
title: 'Components/Badge',
89
component: Badge,
10+
argTypes: {
11+
color: {
12+
options: Object.keys(theme.badge.root.color),
13+
control: { type: 'inline-radio' },
14+
},
15+
},
916
} as Meta;
1017

1118
const Template: Story<BadgeProps> = (args) => (

src/lib/components/Badge/Badge.tsx

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ export interface FlowbiteBadgeTheme {
1212

1313
export interface FlowbiteBadgeRootTheme {
1414
base: string;
15-
color: BadgeColors;
15+
color: FlowbiteColors;
1616
href: string;
1717
size: BadgeSizes;
1818
}
@@ -21,17 +21,12 @@ export interface FlowbiteBadgeIconTheme extends FlowbiteBoolean {
2121
size: BadgeSizes;
2222
}
2323

24-
export interface BadgeColors
25-
extends Pick<FlowbiteColors, 'failure' | 'gray' | 'indigo' | 'info' | 'pink' | 'purple' | 'success'> {
26-
[key: string]: string;
27-
}
28-
2924
export interface BadgeSizes extends Pick<FlowbiteSizes, 'xs' | 'sm'> {
3025
[key: string]: string;
3126
}
3227

3328
export interface BadgeProps extends PropsWithChildren<Omit<ComponentProps<'span'>, 'color'>> {
34-
color?: keyof BadgeColors;
29+
color?: keyof FlowbiteColors;
3530
href?: string;
3631
icon?: FC<ComponentProps<'svg'>>;
3732
size?: keyof BadgeSizes;

src/lib/theme/default.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,18 @@ const theme: FlowbiteTheme = {
165165
purple:
166166
'bg-purple-100 text-purple-800 dark:bg-purple-200 dark:text-purple-900 group-hover:bg-purple-200 dark:group-hover:bg-purple-300',
167167
pink: 'bg-pink-100 text-pink-800 dark:bg-pink-200 dark:text-pink-900 group-hover:bg-pink-200 dark:group-hover:bg-pink-300',
168+
blue: 'bg-blue-100 text-blue-800 dark:bg-blue-200 dark:text-blue-900 group-hover:bg-blue-200 dark:group-hover:bg-blue-300',
169+
cyan: 'bg-cyan-100 text-cyan-800 dark:bg-cyan-200 dark:text-cyan-900 group-hover:bg-cyan-200 dark:group-hover:bg-cyan-300',
170+
dark: 'bg-gray-600 text-gray-100 dark:bg-gray-900 dark:text-gray-200 group-hover:bg-gray-500 dark:group-hover:bg-gray-700',
171+
light:
172+
'bg-gray-200 text-gray-800 dark:bg-gray-400 dark:text-gray-900 group-hover:bg-gray-300 dark:group-hover:bg-gray-500',
173+
green:
174+
'bg-green-100 text-green-800 dark:bg-green-200 dark:text-green-900 group-hover:bg-green-200 dark:group-hover:bg-green-300',
175+
lime: 'bg-lime-100 text-lime-800 dark:bg-lime-200 dark:text-lime-900 group-hover:bg-lime-200 dark:group-hover:bg-lime-300',
176+
red: 'bg-red-100 text-red-800 dark:bg-red-200 dark:text-red-900 group-hover:bg-red-200 dark:group-hover:bg-red-300',
177+
teal: 'bg-teal-100 text-teal-800 dark:bg-teal-200 dark:text-teal-900 group-hover:bg-teal-200 dark:group-hover:bg-teal-300',
178+
yellow:
179+
'bg-yellow-100 text-yellow-800 dark:bg-yellow-200 dark:text-yellow-900 group-hover:bg-yellow-200 dark:group-hover:bg-yellow-300',
168180
},
169181
href: 'group',
170182
size: {

0 commit comments

Comments
 (0)