- {period}
+ {period}
{company}
{stack.length > 0 && (
{stack.map((tech) => (
-
+
{tech}
-
+
))}
)}
diff --git a/src/shared/ui/Badge/index.ts b/src/shared/ui/Badge/index.ts
index 774798f..ed8eed9 100644
--- a/src/shared/ui/Badge/index.ts
+++ b/src/shared/ui/Badge/index.ts
@@ -1,2 +1,2 @@
-export type { BadgeVariant } from './ui/Badge';
+export type { BadgeSize, BadgeVariant } from './ui/Badge';
export { Badge } from './ui/Badge';
diff --git a/src/shared/ui/Badge/ui/Badge.test.tsx b/src/shared/ui/Badge/ui/Badge.test.tsx
index aa1469b..8cb88bf 100644
--- a/src/shared/ui/Badge/ui/Badge.test.tsx
+++ b/src/shared/ui/Badge/ui/Badge.test.tsx
@@ -42,6 +42,23 @@ describe('Badge', () => {
});
});
+ describe('sizes', () => {
+ it('defaults to sm size', () => {
+ render(Tag);
+ expect(screen.getByText('Tag')).toHaveClass('px-3', 'py-1', 'text-xs');
+ });
+
+ it('applies sm size classes', () => {
+ render(Tag);
+ expect(screen.getByText('Tag')).toHaveClass('px-3', 'py-1', 'text-xs');
+ });
+
+ it('applies md size classes', () => {
+ render(Tag);
+ expect(screen.getByText('Tag')).toHaveClass('px-4', 'py-2', 'text-sm');
+ });
+ });
+
describe('className passthrough', () => {
it('merges custom className', () => {
render(Tag);
diff --git a/src/shared/ui/Badge/ui/Badge.tsx b/src/shared/ui/Badge/ui/Badge.tsx
index f8dac9d..657cc3a 100644
--- a/src/shared/ui/Badge/ui/Badge.tsx
+++ b/src/shared/ui/Badge/ui/Badge.tsx
@@ -2,6 +2,7 @@ import type { ReactNode } from 'react';
import { cn } from '$shared/lib';
export type BadgeVariant = 'default' | 'primary' | 'secondary' | 'outline';
+export type BadgeSize = 'sm' | 'md';
interface Props {
/**
@@ -13,6 +14,11 @@ interface Props {
* @default 'default'
*/
variant?: BadgeVariant;
+ /**
+ * Size preset
+ * @default 'sm'
+ */
+ size?: BadgeSize;
/**
* Additional CSS classes
*/
@@ -26,12 +32,17 @@ const VARIANTS: Record = {
outline: 'brutal-border bg-transparent text-blue',
};
+const SIZES: Record = {
+ sm: 'px-3 py-1 text-xs',
+ md: 'px-4 py-2 text-sm',
+};
+
/**
* Small label for categorization or status.
*/
-export function Badge({ children, variant = 'default', className }: Props) {
+export function Badge({ children, variant = 'default', size = 'sm', className }: Props) {
return (
-
+
{children}
);
diff --git a/src/shared/ui/index.ts b/src/shared/ui/index.ts
index 70b4117..c19f36e 100644
--- a/src/shared/ui/index.ts
+++ b/src/shared/ui/index.ts
@@ -1,4 +1,4 @@
-export type { BadgeVariant } from './Badge';
+export type { BadgeSize, BadgeVariant } from './Badge';
export { Badge } from './Badge';
export type { ButtonSize, ButtonVariant } from './Button';
export { Button } from './Button';