diff --git a/components/MemberCard.css b/components/MemberCard.css new file mode 100644 index 0000000..b89e63f --- /dev/null +++ b/components/MemberCard.css @@ -0,0 +1,49 @@ +.components__member_card { + display: grid; + grid-template-rows: 1fr 5rem; + min-width: 15rem; + aspect-ratio: 1; + box-shadow: 0 0 0.4rem 0.2rem var(--_translucent); + border: var(--_border-size) solid transparent; + background-size: cover; + background-repeat: no-repeat; + + &:has(a:focus-visible), + &:hover { + border: var(--_border-size) solid var(--_accent-color); + } + + & h3 { + margin: 0; + } + + & a { + outline: none; + } +} + +.components__member_card__icon { + height: 100%; + object-fit: cover; + overflow: hidden; +} + +.components__member_card__content { + background-color: var(--_translucent); + backdrop-filter: blur(var(--_blur)); + display: flex; + flex-direction: column; + padding: var(--_gap-half); + gap: var(--_gap-half); +} + +.components__member_card__groups { + display: flex; + flex-wrap: wrap; + gap: var(--_gap-half); + + & span { + padding: var(--_gap-half); + background-color: var(--_translucent); + } +} diff --git a/components/MemberCard.tsx b/components/MemberCard.tsx new file mode 100644 index 0000000..477242d --- /dev/null +++ b/components/MemberCard.tsx @@ -0,0 +1,47 @@ +type MemberCardProps = { + id: string + icon: string + name: string + groups: string[] +} + +export function MemberCard( + { id, icon, name, groups }: MemberCardProps, +) { + return ( +