|
4 | 4 | align-items: center; |
5 | 5 | justify-content: center; |
6 | 6 | padding: clamp(0.3rem, 0.5vw, 0.6rem) clamp(0.6rem, 1vw, 0.8rem); |
| 7 | + margin: var(--space-4) auto; |
7 | 8 | font-size: clamp(0.65rem, 1vw, 0.8rem); |
8 | 9 | font-weight: 500; |
9 | 10 | line-height: 1; |
|
13 | 14 | text-transform: uppercase; |
14 | 15 | white-space: nowrap; |
15 | 16 | transition: background-color 0.3s, color 0.3s, box-shadow 0.3s; |
16 | | - box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1); /* Slight shadow for depth */ |
| 17 | + box-shadow: var(--shadow-sm); /* Slight shadow for depth */ |
17 | 18 | } |
18 | 19 |
|
19 | | -/* Variants */ |
20 | | -.badge-primary { --badge-bg: var(--primary); --badge-color: #fff; } |
21 | | -.badge-secondary { --badge-bg: var(--secondary); --badge-color: #fff; } |
22 | | -.badge-success { --badge-bg: var(--success); --badge-color: #fff; } |
23 | | -.badge-danger { --badge-bg: var(--danger); --badge-color: #fff; } |
24 | | -.badge-warning { --badge-bg: var(--warning); --badge-color: #fff; } |
25 | | -.badge-info { --badge-bg: var(--info); --badge-color: #fff; } |
| 20 | +/* Badge Variants */ |
| 21 | +.badge[data-variant="primary"] { --badge-bg: var(--primary); --badge-color: #fff; } |
| 22 | +.badge[data-variant="secondary"] { --badge-bg: var(--secondary); --badge-color: #fff; } |
| 23 | +.badge[data-variant="success"] { --badge-bg: var(--success); --badge-color: #fff; } |
| 24 | +.badge[data-variant="danger"] { --badge-bg: var(--danger); --badge-color: #fff; } |
| 25 | +.badge[data-variant="warning"] { --badge-bg: var(--warning); --badge-color: #fff; } |
| 26 | +.badge[data-variant="info"] { --badge-bg: var(--info); --badge-color: #fff; } |
26 | 27 |
|
27 | 28 | /* Outline Badge Variant */ |
28 | | -.badge-outline { |
| 29 | +.badge[data-variant="outline"] { |
29 | 30 | --badge-bg: transparent; |
30 | | - color: var(--badge-color, var(--primary)); |
31 | 31 | box-shadow: inset 0 0 0 1.5px currentColor; |
| 32 | + color: var(--badge-color, var(--primary)); |
32 | 33 | } |
33 | | -.badge-outline.badge-primary { --badge-color: var(--primary); } |
34 | | -.badge-outline.badge-secondary { --badge-color: var(--secondary); } |
35 | | -.badge-outline.badge-success { --badge-color: var(--success); } |
36 | | -.badge-outline.badge-danger { --badge-color: var(--danger); } |
37 | | -.badge-outline.badge-warning { --badge-color: var(--warning); } |
38 | | -.badge-outline.badge-info { --badge-color: var(--info); } |
| 34 | +.badge[data-variant="outline"][data-color="primary"] { --badge-color: var(--primary); } |
| 35 | +.badge[data-variant="outline"][data-color="secondary"] { --badge-color: var(--secondary); } |
| 36 | +.badge[data-variant="outline"][data-color="success"] { --badge-color: var(--success); } |
| 37 | +.badge[data-variant="outline"][data-color="danger"] { --badge-color: var(--danger); } |
| 38 | +.badge[data-variant="outline"][data-color="warning"] { --badge-color: var(--warning); } |
| 39 | +.badge[data-variant="outline"][data-color="info"] { --badge-color: var(--info); } |
39 | 40 |
|
40 | 41 | /* Soft Badge Variant (Lighter Background) */ |
41 | | -.badge-soft { |
| 42 | +.badge[data-variant="soft"] { |
42 | 43 | background-color: var(--badge-bg-light, rgba(255, 255, 255, 0.1)); |
43 | 44 | color: var(--badge-bg); |
44 | 45 | } |
45 | | -.badge-primary.badge-soft { --badge-bg-light: rgba(0, 123, 255, 0.15); } |
46 | | -.badge-secondary.badge-soft { --badge-bg-light: rgba(108, 117, 125, 0.15); } |
47 | | -.badge-success.badge-soft { --badge-bg-light: rgba(40, 167, 69, 0.15); } |
48 | | -.badge-danger.badge-soft { --badge-bg-light: rgba(220, 53, 69, 0.15); } |
49 | | -.badge-warning.badge-soft { --badge-bg-light: rgba(255, 193, 7, 0.15); } |
50 | | -.badge-info.badge-soft { --badge-bg-light: rgba(23, 162, 184, 0.15); } |
| 46 | +.badge[data-color="primary"][data-variant="soft"] { --badge-bg-light: rgba(0, 123, 255, 0.15); } |
| 47 | +.badge[data-color="secondary"][data-variant="soft"] { --badge-bg-light: rgba(108, 117, 125, 0.15); } |
| 48 | +.badge[data-color="success"][data-variant="soft"] { --badge-bg-light: rgba(40, 167, 69, 0.15); } |
| 49 | +.badge[data-color="danger"][data-variant="soft"] { --badge-bg-light: rgba(220, 53, 69, 0.15); } |
| 50 | +.badge[data-color="warning"][data-variant="soft"] { --badge-bg-light: rgba(255, 193, 7, 0.15); } |
| 51 | +.badge[data-color="info"][data-variant="soft"] { --badge-bg-light: rgba(23, 162, 184, 0.15); } |
51 | 52 |
|
52 | 53 | /* Dot Badge for Notification Indicators */ |
53 | 54 | .badge-dot { |
|
60 | 61 | margin-left: 0.25rem; |
61 | 62 | } |
62 | 63 |
|
63 | | -/* Sizes */ |
64 | | -.badge-sm { |
| 64 | +/* Badge Sizes */ |
| 65 | +.badge[data-size="sm"] { |
65 | 66 | padding: 0.2rem 0.4rem; |
66 | 67 | font-size: 0.65rem; |
67 | 68 | } |
68 | 69 |
|
69 | | -.badge-lg { |
| 70 | +.badge[data-size="lg"] { |
70 | 71 | padding: 0.4rem 0.8rem; |
71 | 72 | font-size: 0.9rem; |
72 | 73 | } |
73 | 74 |
|
74 | | -/* Shapes */ |
75 | | -.badge-rounded { border-radius: var(--radius-full); } |
76 | | -.badge-square { border-radius: 0; } |
77 | | -.badge-pill { border-radius: 9999px; } |
| 75 | +/* Badge Shapes */ |
| 76 | +.badge[data-shape="rounded"] { border-radius: var(--radius-full); } |
| 77 | +.badge[data-shape="square"] { border-radius: 0; } |
| 78 | +.badge[data-shape="pill"] { border-radius: 9999px; } |
78 | 79 |
|
79 | 80 | /* Icon Badges */ |
80 | | -.badge-icon { |
| 81 | +.badge[data-icon="left"] { |
81 | 82 | display: inline-flex; |
82 | 83 | align-items: center; |
83 | 84 | gap: 0.3rem; |
84 | 85 | } |
85 | | -.badge-icon svg { width: 1em; height: 1em; } |
86 | | - |
87 | | -/* Icon Position */ |
88 | | -.badge-icon-left .badge-icon { order: -1; } |
89 | | -.badge-icon-right .badge-icon { order: 1; } |
| 86 | +.badge[data-icon="left"] svg { order: -1; width: 1em; height: 1em; } |
| 87 | +.badge[data-icon="right"] svg { order: 1; width: 1em; height: 1em; margin-left: 4px; } |
90 | 88 |
|
91 | 89 | /* Badge Grouping and Stacking */ |
92 | 90 | .badge-group { |
|
98 | 96 | position: relative; |
99 | 97 | } |
100 | 98 |
|
101 | | -.badge-stacked .badge-dot { |
102 | | - position: absolute; |
103 | | - top: 0; |
104 | | - right: 0; |
105 | | - transform: translate(25%, -25%); |
106 | | -} |
107 | | - |
108 | 99 | /* Responsive Adjustments */ |
109 | 100 | @media (max-width: 768px) { |
110 | 101 | .badge { |
|
0 commit comments