Skip to content

Commit 6d72b42

Browse files
committed
feat: align how to use a DBCard as button or anchor
1 parent 57aeb60 commit 6d72b42

File tree

4 files changed

+45
-15
lines changed

4 files changed

+45
-15
lines changed

packages/components/src/components/card/card.scss

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,10 @@
33
@use "@db-ux/core-foundations/build/styles/helpers";
44
@use "../../styles/internal/component";
55

6+
:is(a, button):has(.db-card) {
7+
all: unset;
8+
}
9+
610
.db-card {
711
@extend %default-card;
812

showcases/angular-showcase/src/app/components/card/card.component.html

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,24 @@
1010
let-exampleIndex="exampleIndex"
1111
let-variantIndex="variantIndex"
1212
>
13-
<db-card
14-
[behavior]="exampleProps?.behavior"
15-
[elevationLevel]="exampleProps?.elevationLevel"
16-
[spacing]="exampleProps?.spacing"
17-
>
18-
<strong>{{ exampleName }}</strong>
19-
</db-card>
13+
@if (exampleProps?.behavior === "interactive") {
14+
<button>
15+
<db-card
16+
[behavior]="exampleProps?.behavior"
17+
[elevationLevel]="exampleProps?.elevationLevel"
18+
[spacing]="exampleProps?.spacing"
19+
>
20+
<strong>{{ exampleName }}</strong>
21+
</db-card>
22+
</button>
23+
} @else {
24+
<db-card
25+
[behavior]="exampleProps?.behavior"
26+
[elevationLevel]="exampleProps?.elevationLevel"
27+
[spacing]="exampleProps?.spacing"
28+
>
29+
<strong>{{ exampleName }}</strong>
30+
</db-card>
31+
}
2032
</ng-template>
2133
</app-default-component>

showcases/react-showcase/src/components/card/index.tsx

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,18 @@ const getCard = ({
1010
children,
1111
spacing,
1212
elevationLevel
13-
}: DBCardProps) => (
14-
<DBCard
15-
behavior={behavior}
16-
spacing={spacing}
17-
elevationLevel={elevationLevel}>
18-
<strong>{children}</strong>
19-
</DBCard>
20-
);
13+
}: DBCardProps) => {
14+
const card = (
15+
<DBCard
16+
behavior={behavior}
17+
spacing={spacing}
18+
elevationLevel={elevationLevel}>
19+
<strong>{children}</strong>
20+
</DBCard>
21+
);
22+
23+
return behavior === 'interactive' ? <button>{card}</button> : card;
24+
};
2125

2226
const CardComponent = (props: BaseComponentProps) => {
2327
return (

showcases/vue-showcase/src/components/card/Card.vue

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,17 @@ import DefaultComponent from "../DefaultComponent.vue";
99
<template
1010
#example="{ exampleIndex, variantIndex, exampleName, exampleProps }"
1111
>
12+
<button v-if="exampleProps?.behavior === 'interactive'">
13+
<DBCard
14+
:behavior="exampleProps?.behavior"
15+
:elevationLevel="exampleProps?.elevationLevel"
16+
:spacing="exampleProps?.spacing"
17+
>
18+
<strong>{{ exampleName }}</strong>
19+
</DBCard>
20+
</button>
1221
<DBCard
22+
v-if="exampleProps?.behavior !== 'interactive'"
1323
:behavior="exampleProps?.behavior"
1424
:elevationLevel="exampleProps?.elevationLevel"
1525
:spacing="exampleProps?.spacing"

0 commit comments

Comments
 (0)