rstudio / bslib

Tools for theming Shiny and R Markdown via Bootstrap 3, 4, or 5.
https://rstudio.github.io/bslib/
Other
443 stars 50 forks source link

Make `card()` a custom element #1009

Open cpsievert opened 4 months ago

cpsievert commented 4 months ago

This is a minimal take on having card() leverage the benefits of custom elements (namely, connectedCallback() and disconnectedCallback() hooks). This allows us to immediately get rid of some hacky initialization logic, as well as putting us in a better place to handle situations like #1005.

The largest risk with this change is that we're introducing a container around the actual <div class="card"> container. This has the outside chance of breaking some CSS, and maybe some R/Python code digging into $children/.children, but it seems better to rip that band-aid now vs later. We'll also need to update Quarto's dashboarding code to wrap <div class="card"> markup into a <bslib-card> container.

I don't think we should take on this PR for this immediate release, but ideally we'll do it immediately after and as a precursor to #1005.