In this chapter, we looked at different ways to make your application good-looking and easy to use. We looked at the range of layout functions and how best to use them, and we looked at making input that shows, hides, and changes its contents in response to the state of the application. We also looked at making and customizing data tables, and showing progress bars and messages to your user, as well as a totally new way that Shiny applications can look based on the Material design framework from Google.
The next chapter is all about using JavaScript, all the way from using JavaScript from R code with the shinyjs package to producing a complex application that uses JavaScript to pass messages back and forth between the Shiny server and the client.