Skip to contents

muiMaterial brings MUI Material UI, the world’s most popular React UI framework, to R and Shiny.

Why muiMaterial?

Most Shiny apps follow the same template: a sidebar on the left, tabs on top, content in the middle. muiMaterial lets you go further. It gives you access to Material UI’s rich component library, so you can build apps and reports that look and feel truly unique.

  • Works with Shiny and Quarto — use Material UI components in Shiny apps, Quarto or on its own for fully customized HTML pages.
  • Built for AI — AI tools like Claude, ChatGPT, or Copilot know MUI well. Ask an AI to generate MUI code, adapt it to R, and you’re done. No React or CSS knowledge needed. See the AI-Assisted Development vignette.
  • Multi-page apps — pair with reactRouter to build apps where each page has its own shareable URL, deployable to GitHub Pages, Netlify, or Posit Connect.
  • Rich ecosystem — extend with muiDataGrid (data tables), muiCharts (charts) and muiTreeView (tree navigation).

See a live example: MUI template dashboard.

muiMaterial::muiMaterialExample("mui-template-dashboard")

Quick start

remotes::install_github("lgnbhl/muiMaterial") # v0.2.0 (SOON ON CRAN)
install.packages("muiMaterial") # v0.1.3
library(shiny)
library(muiMaterial)

ui <- muiMaterialPage(
  Box(
    sx = list(p = 2),
    Typography("Hello Material UI!", variant = "h4")
  )
)

server <- function(input, output, session) {}

shinyApp(ui, server)

Explore the Getting Started vignette, or run the showcase:

muiMaterial::muiMaterialExample("showcase")

Acknowledgements

muiMaterial is built on top of shiny.react, the R package by Appsilon that makes it possible to use React components in Shiny and Quarto.

Contributing

Found a bug or have a feature request? Open an issue. Pull requests are welcome.

Follow Felix Luginbuhl on LinkedIn for updates.

License

This package is released under the MIT License.