feat(ui): add accent badge variant
This commit is contained in:
parent
b3a012cbdd
commit
56e8a4f7d7
3 changed files with 17 additions and 3 deletions
|
|
@ -25,3 +25,9 @@
|
||||||
[data-component="tag"][data-high-contrast] {
|
[data-component="tag"][data-high-contrast] {
|
||||||
border-color: var(--v2-border-border-strong);
|
border-color: var(--v2-border-border-strong);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[data-component="tag"][data-variant="accent"] {
|
||||||
|
border: 0;
|
||||||
|
background: var(--v2-background-bg-accent);
|
||||||
|
color: var(--v2-text-text-inverse);
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -8,10 +8,11 @@ Use alongside headings or lists for quick metadata.
|
||||||
|
|
||||||
### API
|
### API
|
||||||
- Accepts standard span props.
|
- Accepts standard span props.
|
||||||
|
- Optional: \`variant\` is \`neutral\` (default) or \`accent\`.
|
||||||
- Optional: \`data-high-contrast\` attribute for stronger border contrast.
|
- Optional: \`data-high-contrast\` attribute for stronger border contrast.
|
||||||
|
|
||||||
### Variants and states
|
### Variants and states
|
||||||
- Single size style.
|
- Neutral and accent variants.
|
||||||
- Optional high-contrast border style.
|
- Optional high-contrast border style.
|
||||||
|
|
||||||
### Behavior
|
### Behavior
|
||||||
|
|
@ -52,3 +53,7 @@ export const HighContrast = {
|
||||||
</div>
|
</div>
|
||||||
),
|
),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export const Accent = {
|
||||||
|
render: () => <Tag variant="accent">New</Tag>,
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,17 @@
|
||||||
import { type ComponentProps, splitProps } from "solid-js"
|
import { type ComponentProps, splitProps } from "solid-js"
|
||||||
import "./badge-v2.css"
|
import "./badge-v2.css"
|
||||||
|
|
||||||
export interface TagProps extends ComponentProps<"span"> {}
|
export interface TagProps extends ComponentProps<"span"> {
|
||||||
|
variant?: "neutral" | "accent"
|
||||||
|
}
|
||||||
|
|
||||||
export function Tag(props: TagProps) {
|
export function Tag(props: TagProps) {
|
||||||
const [split, rest] = splitProps(props, ["class", "classList", "children"])
|
const [split, rest] = splitProps(props, ["class", "classList", "children", "variant"])
|
||||||
return (
|
return (
|
||||||
<span
|
<span
|
||||||
{...rest}
|
{...rest}
|
||||||
data-component="tag"
|
data-component="tag"
|
||||||
|
data-variant={split.variant ?? "neutral"}
|
||||||
classList={{
|
classList={{
|
||||||
...split.classList,
|
...split.classList,
|
||||||
[split.class ?? ""]: !!split.class,
|
[split.class ?? ""]: !!split.class,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue