Eidetic

Team Card

Data Display
Block

Card components for displaying team members with permissions and role management.

Team Role Card

Manage team member permissions

Team Member
LP

Laura P.

Project Manager

AG

Arthur G.

Design Lead

AB

Amir B.

Founder

L
A
A

Members

+8 People

Team Platform Card

Browse team members with platform access

Team Member
Platform list (3)
LP

Laura P.

Project Manager

AG

Arthur G.

Design Lead

Platform list (2)

Side by Side

Both variants together

Team Member
LP

Laura P.

Project Manager

AG

Arthur G.

Design Lead

AB

Amir B.

Founder

L
A
A

Members

+8 People

Team Member
Platform list (3)
LP

Laura P.

Project Manager

AG

Arthur G.

Design Lead

Platform list (2)

Without Group Row

TeamCard without the members group

Team Member
LP

Laura P.

Project Manager

AG

Arthur G.

Design Lead

AB

Amir B.

Founder

Custom Permissions

Custom permission options

Team Member
LP

Laura P.

Project Manager

AG

Arthur G.

Design Lead

AB

Amir B.

Founder

L
A
A

Members

+8 People

TeamCard Props

TeamCard API reference

PropTypeDefaultDescription
titlestring'Team Member'Card title
membersTeamMember[][]Array of team members
permissionOptionsstring[]['Admin', 'Editor', 'Writer', 'View', 'Restricted']Available permission options
onPermissionChange(memberId, permission) => voidPermission change callback
showMembersGroupbooleantrueShow members group row
additionalMembersCountnumber8Additional members count in group
groupPermissionstring'Restricted'Group permission value
onGroupPermissionChange(permission) => voidGroup permission change callback
classNamestringAdditional CSS classes

TeamPlatformCard Props

TeamPlatformCard API reference

PropTypeDefaultDescription
titlestring'Team Member'Card title
membersTeamMember[][]Array of team members
platforms{ id, name, color }[][]Array of platforms
onProfileClick(memberId) => voidProfile button click callback
onPlatformClick(platformId) => voidPlatform click callback
classNamestringAdditional CSS classes

TeamMember Type

Team member data structure

interface TeamMember {
id: string | number
name: string
role?: string
avatar?: string // Image URL
color?: string // Fallback avatar color (hex)
permission?: string
}

Usage

Import and implementation examples

import { TeamCard, TeamPlatformCard } from '@/blocks/data-display/team-card'
// TeamCard with permissions
<TeamCard
title="Team Members"
members={[
{ id: 1, name: 'Laura P.', role: 'Project Manager', permission: 'Admin', color: '#14b8a6' },
{ id: 2, name: 'Arthur G.', role: 'Design Lead', permission: 'View', color: '#f59e0b' },
{ id: 3, name: 'Amir B.', role: 'Founder', permission: 'Writer', color: '#6366f1' },
]}
onPermissionChange={(memberId, permission) => {
updatePermission(memberId, permission)
}}
onGroupPermissionChange={(permission) => {
updateGroupPermission(permission)
}}
/>
// TeamPlatformCard with carousel
<TeamPlatformCard
members={teamMembers}
platforms={[
{ id: 1, name: 'Marketing Site', color: '#fbbf24' },
{ id: 2, name: 'Documentation', color: '#14b8a6' },
]}
onProfileClick={(memberId) => router.push(`/team/${memberId}`)}
onPlatformClick={(platformId) => router.push(`/platforms/${platformId}`)}
/>
// Custom permission options
<TeamCard
members={members}
permissionOptions={['Owner', 'Admin', 'Member', 'Guest']}
showMembersGroup={false}
/>

Built With

3 components

This block uses the following UI components from the design system:

Features

Built-in functionality

  • Permission management: Built-in select for role permissions
  • Avatar support: Images or color-coded fallback initials
  • Avatar stack: Overlapping avatars for member groups
  • Member carousel: Paginated member cards (TeamPlatformCard)
  • Platform list: Clickable platform items with indicators
  • Custom permissions: Configurable permission option list
  • Group permissions: Bulk permission management row
  • Dark mode: Full dark mode support

Accessibility

Accessibility considerations

ARIA Attributes

Selects have proper labelsButtons have accessible namesAvatar fallbacks use initials

Keyboard Navigation

KeyAction
TabNavigate through selects and buttons
Space/EnterOpen selects, activate buttons
Arrow keysNavigate select options
EscapeClose select dropdown

Notes

  • Permission changes are immediate
  • Carousel navigation has clear indicators
  • Color alone does not convey permission level

Related Components