Thanks @rickhurlbatt for showing me your solution. Looks like there are a few threads in this forum that are already discussing a similar question. I think I just wasn’t using the right search keywords to find them.
Ideally, I would like the cards to be automatically and dynamically created for however many number of records that are returned from the database. Because of this, a Repeating Panel appears to be the most appropriate for this. From looking over the other discussions, I think all I need to do is change the CSS to display the Repeating Panels as a column grid (side-by-side) instead of stacked (one on top of the other). I’ll explore this option and see if I can achieve what I want. If this doesn’t work, then I will look at programmatically adding each card one by one like you suggested.
Thanks again for your help and pointing me to other discussion threads similar to this topic. It would be nice if a learning tutorial were created for something like this since there appears to be a bit of interest in this interface. It certainly is a common UI for a lot of web apps.