shadcn.io is not affiliated with official shadcn/ui
Podcasts Team Block for React
A podcast host's own show: the latest episode in a framed cell with a drawn waveform and a Listen link, over earlier episodes as rows with a length bar and a Newest or Longest switch.
Installation
Overview
A team podcast section for React with Base UI, written for Sedbergh, a fictional company that hosts podcasts. A compact header says which episode is the latest and how many came before it. Under it the latest episode sits in a framed cell with corner + marks: its number, its title, the speakers (an initials avatar stack and their names), a drawn waveform with the length under it, and one Listen button, the page's Shine Button. Below, a band holds the heading "Earlier episodes" and a Newest or Longest switch, and four earlier episodes follow as rows rail to rail that end the block. Each row has the number, the title as a link, who spoke, and a bar scaled to the longest of the four. Switching re-orders the rows in place and they share one height, so nothing moves. Nothing plays: the waveform is a drawing, and Listen and every title are links to the episode. It is built from Avatar, Segment Group, Shine Button and Guides with your theme's tokens. The show, the episodes and the speakers are made up for the example.
FAQ
How do I change the episodes?
Edit EPISODES at the top of the file, newest first: a number, a title, the speakers (a name and a role each) and the length in minutes. The first is the featured episode; the rest are the earlier rows. The bar lengths are worked out from the longest of the earlier episodes, and the sort is computed from the same data.
Does anything play?
No. The waveform is a drawing, a row of bars from a list of heights, hidden from assistive technology. Listen and each episode title are plain links (href="#"): point them at your host's page, your feed or a player of your own. The length is written out as text, so it doesn't depend on the drawing.
How does the Newest and Longest switch work?
It is a radio group named "Order earlier episodes": Tab moves into it and the arrow keys move between the two choices, choosing as they go. The rows re-order straight away, a polite status line says which order is showing, and the page keeps its height because every row is the same height.
Where does the Listen button go?
It is a link.
The button renders the link it's given with render, with nativeButton={false}.
Related
- Pro
Podcast Show Notes About
Press and recognitionShow notes for a podcast hosting company's own show: a scrolling vertical list of eight episodes at the start and the chosen episode's notes at the end, with a summary, chapters drawn to scale and listed with time stamps, and a Listen link.
- Pro
Speaking Events Team
Interests and clubsUpcoming and Past tabs over talk rows led by a calendar tile, each opening to topics, an abstract and, for past talks, a Slides link; Upcoming ends in an invitation to book a speaker and Past is a two-column archive.
- Pro
Meetups Team
Interests and clubsFour community organisers as rows with a twelve-month cadence strip, filled where a meetup ran, plus the next topic, when the group meets, its members and a Remind me toggle.
- Pro
Book Club Team
Interests and clubsA split showing a bookshop's current club read, with a chapter progress bar, the members reading along and the next meeting, beside a drawn cover plate, over a band that opens the past reads.
- Pro
Agenda Schedule Blog
Archives by dateA newsroom's upcoming posts as an agenda grouped by day, with a Select that shows every time in UTC, New York or Tokyo, in place.
- Pro
Reading Picks Team
Interests and clubsOne teammate's three recommendations, a book, an article and a talk, as hairline rows with a kind badge, a link, a one-line reason and a Save toggle that counts how many colleagues saved it.