← Corpus / astro-knots / other
Team Spans Page Spec
Specification for a responsive grid layout displaying team members grouped by roles in contiguous spans with CSS Grid and consistent card styling.
- Path
- sitemap/pages/team/Team-Spans-Page-Spec.md
- Authors
- Michael Staton
- Tags
- Team-Pages · CSS-Grid · Responsive-Layout · Components
Team Spans Page - Specification
Overview
Create a responsive grid layout that displays team members grouped by their roles in contiguous spans. Each span consists of a role header followed by associated team member cards, with multiple spans potentially appearing on the same row if space allows.
Components
Span Components
Create the following Astro components in /src/components/team/:
ManagingPartnersSpan.astroVerticalPartnersSpan.astroTrusteesSpan.astroAdvisoryBoardSpan.astroFoundingTeamSpan.astroActiveFellowsSpan.astroPhilanthropiesSpan.astro
Page Layout
- Single responsive grid container
- Grid items flow from left to right
- No forced line breaks between spans
- Responsive column count based on viewport width
Requirements
Grid Behavior
- Contiguous Spans: Each role group must maintain its cards together in a single span
- Horizontal Flow: Spans should flow left-to-right, top-to-bottom
- Responsive: Adjust number of columns based on viewport width
- No Gaps: Continuous flow without unnecessary white space between spans
Span Structure
Each span component should:
- Display a role title as a header
- Show all team members for that role as cards
- Maintain consistent styling across all spans
- Be self-contained and independent of other spans
Visual Design
- Role Header: Prominently displayed above the first card of each span
- Cards: Uniform styling with consistent spacing
- Responsive: Cards should resize appropriately for different screen sizes
- Accessibility: Proper heading hierarchy and ARIA attributes
Implementation Notes
- Use CSS Grid for the main layout
- Each span should be a self-contained component
- Maintain consistent spacing and alignment
- Ensure proper responsive behavior
- Optimize for performance with lazy loading where appropriate
Example Structure
<main class="team-grid">
<!-- Managing Partners -->
<div class="team-span">
<h2 class="role-header">Managing Partners</h2>
<div class="person-cards">
<!-- Person cards go here -->
</div>
</div>
<!-- Next span continues in the same row if space allows -->
<div class="team-span">
<h2 class="role-header">Advisory Board</h2>
<div class="person-cards">
<!-- Person cards go here -->
</div>
</div>
</main>
Acceptance Criteria
- All team members are displayed in their respective role groups
- Grid flows continuously without unnecessary breaks
- Layout is fully responsive
- No PersonCard is unreasonably large.
- All spans maintain consistent styling
- Performance is optimized for all device sizes