logo
导航

TeamMember

简介

TeamMember组件用于展示团队成员的详细信息,支持头像、姓名、职位、描述文本和社交媒体链接等内容的展示。

组件特性:

  • 支持头像图片展示
  • 可显示姓名、职位和描述文本
  • 支持添加社交媒体链接
  • 提供多个样式自定义选项
  • 响应式设计,适配不同屏幕尺寸
  • 可组合使用,展示完整团队

基础用法

最简单的团队成员信息展示:

张三's avatar

张三

产品设计师

专注于用户体验设计,拥有5年产品设计经验

---
/**
 * @component TeamMember.Basic
 *
 * @description
 * 基础的团队成员展示组件示例,展示最简单的成员信息展示方式。
 */
import '../../style.ts';
import TeamMember from './TeamMember.astro';
import { getExampleImage } from '../../src/utils/image.ts';

const avatar = getExampleImage({
  width: 200,
  height: 200,
  provider: 'robohash',
  randomSeed: 'member1',
});
---

<TeamMember
  name="张三"
  role="产品设计师"
  avatar={avatar}
  bio="专注于用户体验设计,拥有5年产品设计经验"
/>

社交媒体链接

通过socialLinks属性添加社交媒体链接:

李四's avatar

李四

高级开发工程师

全栈开发专家,热爱开源项目,专注于前端框架和性能优化

---
/**
 * @component TeamMember.WithSocial
 *
 * @description
 * 带社交媒体链接的团队成员展示组件示例,展示如何添加社交媒体链接。
 */
import '../../style.ts';
import TeamMember from './TeamMember.astro';
import { getExampleImage } from '../../src/utils/image.ts';

const avatar = getExampleImage({
  width: 200,
  height: 200,
  provider: 'robohash',
  randomSeed: 'member2',
});
---

<TeamMember
  name="李四"
  role="高级开发工程师"
  avatar={avatar}
  bio="全栈开发专家,热爱开源项目,专注于前端框架和性能优化"
  socialLinks={[
    { platform: 'github', url: 'https://github.com' },
    { platform: 'twitter', url: 'https://twitter.com' },
    { platform: 'linkedin', url: 'https://linkedin.com' },
  ]}
/>

自定义样式

使用class属性自定义成员卡片样式:

王五's avatar

王五

市场总监

负责产品市场策略和品牌推广,拥有丰富的市场营销经验

---
/**
 * @component TeamMember.CustomStyle
 *
 * @description
 * 自定义样式的团队成员展示组件示例,展示如何使用class属性自定义样式。
 */
import '../../style.ts';
import TeamMember from './TeamMember.astro';
import { getExampleImage } from '../../src/utils/image.ts';

const avatar = getExampleImage({
  width: 200,
  height: 200,
  provider: 'robohash',
  randomSeed: 'member3',
});
---

<TeamMember
  name="王五"
  role="市场总监"
  avatar={avatar}
  bio="负责产品市场策略和品牌推广,拥有丰富的市场营销经验"
  class="cosy:bg-gradient-to-r cosy:from-purple-100 cosy:to-pink-100 cosy:shadow-lg cosy:w-72"
/>

团队展示

组合多个TeamMember组件展示完整团队:

张三's avatar

张三

产品设计师

专注于用户体验设计,拥有5年产品设计经验

李四's avatar

李四

高级开发工程师

全栈开发专家,热爱开源项目,专注于前端框架和性能优化

王五's avatar

王五

市场总监

负责产品市场策略和品牌推广,拥有丰富的市场营销经验

---
/**
 * @component TeamMember.Group
 *
 * @description
 * 团队成员组展示组件示例,展示如何组合多个团队成员。
 */
import '../../style.ts';
import TeamMember from './TeamMember.astro';
import { getExampleImage } from '../../src/utils/image.ts';

const members = [
  {
    name: '张三',
    title: '产品设计师',
    avatar: getExampleImage({
      width: 200,
      height: 200,
      provider: 'robohash',
      randomSeed: 'member1',
    }),
    description: '专注于用户体验设计,拥有5年产品设计经验',
  },
  {
    name: '李四',
    title: '高级开发工程师',
    avatar: getExampleImage({
      width: 200,
      height: 200,
      provider: 'robohash',
      randomSeed: 'member2',
    }),
    description: '全栈开发专家,热爱开源项目,专注于前端框架和性能优化',
  },
  {
    name: '王五',
    title: '市场总监',
    avatar: getExampleImage({
      width: 200,
      height: 200,
      provider: 'robohash',
      randomSeed: 'member3',
    }),
    description: '负责产品市场策略和品牌推广,拥有丰富的市场营销经验',
  },
];
---

<div class="cosy:grid cosy:grid-cols-3 md:cosy:grid-cols-3 cosy:gap-8">
  {
    members.map((member) => (
      <TeamMember
        name={member.name}
        role={member.title}
        avatar={member.avatar}
        bio={member.description}
      />
    ))
  }
</div>