Makes the grey placeholder on its own, with no output in it. You do not
need this for a Shiny output, because withBones() makes the
placeholder for you. Use this function where there is no Shiny output:
for example, inside a renderUI() while you get data, or to look at a
shape while you design a page.
Arguments
- type
The shape:
"text","table","plot","cards","value", or one of the chart or table shapes above.- rows
The number of body rows, for
type = "table"and the table package shapes.- cols
The number of columns, for
type = "table"and the table package shapes.- lines
The number of lines, for
type = "text".- n
The number of cards or values, for
type = "cards"and"value".- height
A CSS height for the placeholder, or a number of pixels.
NULLgives a default for the type, the same one thatwithBones()uses.
Value
An htmltools::tag, with the stylesheet attached.
Details
The skeleton uses the animation and the colours from bones_defaults().
Chart shapes
A chart has a shape for each common kind: "bar", "line",
"scatter", "area", "histogram", "pie", "heatmap", "map",
"network", "timeline" and "wordcloud". "plot" is the same as
"bar". withBones() finds the shape of a map, network, timeline or
word cloud widget from its output. plotOutput() cannot say which kind it will
hold, because renderPlot() decides that later, on the server. So you
name the kind yourself.
Table shapes
A table from a table package has a shape that copies that package:
"dt", "reactable", "gt" and "rhandsontable". withBones() finds
it from the output by itself.
Examples
bones_skeleton("text", lines = 4)
#> <div class="bones-skeleton bones-skeleton-text bones-anim-wave" aria-hidden="true" style="height: 96px;">
#> <div class="bones-bar" style="width: 100%;"></div>
#> <div class="bones-bar" style="width: 94%;"></div>
#> <div class="bones-bar" style="width: 98%;"></div>
#> <div class="bones-bar" style="width: 62%;"></div>
#> </div>
bones_skeleton("table", rows = 8, cols = 5)
#> <div class="bones-skeleton bones-skeleton-table bones-anim-wave" aria-hidden="true" style="height: 306px;">
#> <div class="bones-row">
#> <div class="bones-bar bones-bar-strong" style="width: 100%;"></div>
#> <div class="bones-bar bones-bar-strong" style="width: 80%;"></div>
#> <div class="bones-bar bones-bar-strong" style="width: 92%;"></div>
#> <div class="bones-bar bones-bar-strong" style="width: 70%;"></div>
#> <div class="bones-bar bones-bar-strong" style="width: 100%;"></div>
#> </div>
#> <div class="bones-row">
#> <div class="bones-bar" style="width: 100%;"></div>
#> <div class="bones-bar" style="width: 80%;"></div>
#> <div class="bones-bar" style="width: 92%;"></div>
#> <div class="bones-bar" style="width: 70%;"></div>
#> <div class="bones-bar" style="width: 100%;"></div>
#> </div>
#> <div class="bones-row">
#> <div class="bones-bar" style="width: 100%;"></div>
#> <div class="bones-bar" style="width: 80%;"></div>
#> <div class="bones-bar" style="width: 92%;"></div>
#> <div class="bones-bar" style="width: 70%;"></div>
#> <div class="bones-bar" style="width: 100%;"></div>
#> </div>
#> <div class="bones-row">
#> <div class="bones-bar" style="width: 100%;"></div>
#> <div class="bones-bar" style="width: 80%;"></div>
#> <div class="bones-bar" style="width: 92%;"></div>
#> <div class="bones-bar" style="width: 70%;"></div>
#> <div class="bones-bar" style="width: 100%;"></div>
#> </div>
#> <div class="bones-row">
#> <div class="bones-bar" style="width: 100%;"></div>
#> <div class="bones-bar" style="width: 80%;"></div>
#> <div class="bones-bar" style="width: 92%;"></div>
#> <div class="bones-bar" style="width: 70%;"></div>
#> <div class="bones-bar" style="width: 100%;"></div>
#> </div>
#> <div class="bones-row">
#> <div class="bones-bar" style="width: 100%;"></div>
#> <div class="bones-bar" style="width: 80%;"></div>
#> <div class="bones-bar" style="width: 92%;"></div>
#> <div class="bones-bar" style="width: 70%;"></div>
#> <div class="bones-bar" style="width: 100%;"></div>
#> </div>
#> <div class="bones-row">
#> <div class="bones-bar" style="width: 100%;"></div>
#> <div class="bones-bar" style="width: 80%;"></div>
#> <div class="bones-bar" style="width: 92%;"></div>
#> <div class="bones-bar" style="width: 70%;"></div>
#> <div class="bones-bar" style="width: 100%;"></div>
#> </div>
#> <div class="bones-row">
#> <div class="bones-bar" style="width: 100%;"></div>
#> <div class="bones-bar" style="width: 80%;"></div>
#> <div class="bones-bar" style="width: 92%;"></div>
#> <div class="bones-bar" style="width: 70%;"></div>
#> <div class="bones-bar" style="width: 100%;"></div>
#> </div>
#> <div class="bones-row">
#> <div class="bones-bar" style="width: 100%;"></div>
#> <div class="bones-bar" style="width: 80%;"></div>
#> <div class="bones-bar" style="width: 92%;"></div>
#> <div class="bones-bar" style="width: 70%;"></div>
#> <div class="bones-bar" style="width: 100%;"></div>
#> </div>
#> </div>
bones_skeleton("plot", height = "300px")
#> <div class="bones-skeleton bones-skeleton-plot bones-skeleton-chart bones-anim-wave" aria-hidden="true" style="height: 300px;">
#> <div class="bones-plot-area">
#> <div class="bones-bar bones-bar-column" style="height: 45%;"></div>
#> <div class="bones-bar bones-bar-column" style="height: 72%;"></div>
#> <div class="bones-bar bones-bar-column" style="height: 58%;"></div>
#> <div class="bones-bar bones-bar-column" style="height: 88%;"></div>
#> <div class="bones-bar bones-bar-column" style="height: 64%;"></div>
#> <div class="bones-bar bones-bar-column" style="height: 40%;"></div>
#> <div class="bones-bar bones-bar-column" style="height: 76%;"></div>
#> <div class="bones-bar bones-bar-column" style="height: 52%;"></div>
#> </div>
#> <div class="bones-axis"></div>
#> </div>
bones_skeleton("scatter", height = "300px")
#> <div class="bones-skeleton bones-skeleton-scatter bones-skeleton-chart bones-anim-wave" aria-hidden="true" style="height: 300px;">
#> <div class="bones-plot-area bones-plot-area-free">
#> <div class="bones-bar bones-dot" style="left: 5%; bottom: 25.1%;"></div>
#> <div class="bones-bar bones-dot" style="left: 9%; bottom: 17.6%;"></div>
#> <div class="bones-bar bones-dot" style="left: 14%; bottom: 35.7%;"></div>
#> <div class="bones-bar bones-dot" style="left: 18%; bottom: 26.2%;"></div>
#> <div class="bones-bar bones-dot" style="left: 22%; bottom: 38.6%;"></div>
#> <div class="bones-bar bones-dot" style="left: 27%; bottom: 25.7%;"></div>
#> <div class="bones-bar bones-dot" style="left: 31%; bottom: 39.2%;"></div>
#> <div class="bones-bar bones-dot" style="left: 35%; bottom: 49.7%;"></div>
#> <div class="bones-bar bones-dot" style="left: 40%; bottom: 37.8%;"></div>
#> <div class="bones-bar bones-dot" style="left: 44%; bottom: 51.3%;"></div>
#> <div class="bones-bar bones-dot" style="left: 49%; bottom: 40.4%;"></div>
#> <div class="bones-bar bones-dot" style="left: 53%; bottom: 53.9%;"></div>
#> <div class="bones-bar bones-dot" style="left: 58%; bottom: 65%;"></div>
#> <div class="bones-bar bones-dot" style="left: 62%; bottom: 52.4%;"></div>
#> <div class="bones-bar bones-dot" style="left: 67%; bottom: 64.5%;"></div>
#> <div class="bones-bar bones-dot" style="left: 71%; bottom: 52%;"></div>
#> <div class="bones-bar bones-dot" style="left: 76%; bottom: 73.1%;"></div>
#> <div class="bones-bar bones-dot" style="left: 80%; bottom: 65.6%;"></div>
#> <div class="bones-bar bones-dot" style="left: 85%; bottom: 76.7%;"></div>
#> <div class="bones-bar bones-dot" style="left: 90%; bottom: 66.8%;"></div>
#> <div class="bones-bar bones-dot" style="left: 94%; bottom: 79.3%;"></div>
#> </div>
#> <div class="bones-axis"></div>
#> </div>
bones_skeleton("dt", rows = 10, cols = 5)
#> <div class="bones-skeleton bones-skeleton-dt bones-anim-wave" aria-hidden="true" style="height: 556px;">
#> <div class="bones-dt">
#> <div class="bones-dt-top">
#> <div class="bones-dt-length">
#> <div class="bones-bar" style="width: 2.5rem;"></div>
#> <div class="bones-bar bones-dt-select"></div>
#> <div class="bones-bar" style="width: 3rem;"></div>
#> </div>
#> <div class="bones-dt-search">
#> <div class="bones-bar" style="width: 3rem;"></div>
#> <div class="bones-dt-input"></div>
#> </div>
#> </div>
#> <div class="bones-dt-table">
#> <div class="bones-row bones-dt-row bones-dt-head">
#> <div class="bones-bar bones-bar-strong" style="width: 100%;"></div>
#> <div class="bones-bar bones-bar-strong" style="width: 80%;"></div>
#> <div class="bones-bar bones-bar-strong" style="width: 92%;"></div>
#> <div class="bones-bar bones-bar-strong" style="width: 70%;"></div>
#> <div class="bones-bar bones-bar-strong" style="width: 100%;"></div>
#> </div>
#> <div class="bones-row bones-dt-row">
#> <div class="bones-bar" style="width: 100%;"></div>
#> <div class="bones-bar" style="width: 80%;"></div>
#> <div class="bones-bar" style="width: 92%;"></div>
#> <div class="bones-bar" style="width: 70%;"></div>
#> <div class="bones-bar" style="width: 100%;"></div>
#> </div>
#> <div class="bones-row bones-dt-row">
#> <div class="bones-bar" style="width: 100%;"></div>
#> <div class="bones-bar" style="width: 80%;"></div>
#> <div class="bones-bar" style="width: 92%;"></div>
#> <div class="bones-bar" style="width: 70%;"></div>
#> <div class="bones-bar" style="width: 100%;"></div>
#> </div>
#> <div class="bones-row bones-dt-row">
#> <div class="bones-bar" style="width: 100%;"></div>
#> <div class="bones-bar" style="width: 80%;"></div>
#> <div class="bones-bar" style="width: 92%;"></div>
#> <div class="bones-bar" style="width: 70%;"></div>
#> <div class="bones-bar" style="width: 100%;"></div>
#> </div>
#> <div class="bones-row bones-dt-row">
#> <div class="bones-bar" style="width: 100%;"></div>
#> <div class="bones-bar" style="width: 80%;"></div>
#> <div class="bones-bar" style="width: 92%;"></div>
#> <div class="bones-bar" style="width: 70%;"></div>
#> <div class="bones-bar" style="width: 100%;"></div>
#> </div>
#> <div class="bones-row bones-dt-row">
#> <div class="bones-bar" style="width: 100%;"></div>
#> <div class="bones-bar" style="width: 80%;"></div>
#> <div class="bones-bar" style="width: 92%;"></div>
#> <div class="bones-bar" style="width: 70%;"></div>
#> <div class="bones-bar" style="width: 100%;"></div>
#> </div>
#> <div class="bones-row bones-dt-row">
#> <div class="bones-bar" style="width: 100%;"></div>
#> <div class="bones-bar" style="width: 80%;"></div>
#> <div class="bones-bar" style="width: 92%;"></div>
#> <div class="bones-bar" style="width: 70%;"></div>
#> <div class="bones-bar" style="width: 100%;"></div>
#> </div>
#> <div class="bones-row bones-dt-row">
#> <div class="bones-bar" style="width: 100%;"></div>
#> <div class="bones-bar" style="width: 80%;"></div>
#> <div class="bones-bar" style="width: 92%;"></div>
#> <div class="bones-bar" style="width: 70%;"></div>
#> <div class="bones-bar" style="width: 100%;"></div>
#> </div>
#> <div class="bones-row bones-dt-row">
#> <div class="bones-bar" style="width: 100%;"></div>
#> <div class="bones-bar" style="width: 80%;"></div>
#> <div class="bones-bar" style="width: 92%;"></div>
#> <div class="bones-bar" style="width: 70%;"></div>
#> <div class="bones-bar" style="width: 100%;"></div>
#> </div>
#> <div class="bones-row bones-dt-row">
#> <div class="bones-bar" style="width: 100%;"></div>
#> <div class="bones-bar" style="width: 80%;"></div>
#> <div class="bones-bar" style="width: 92%;"></div>
#> <div class="bones-bar" style="width: 70%;"></div>
#> <div class="bones-bar" style="width: 100%;"></div>
#> </div>
#> <div class="bones-row bones-dt-row">
#> <div class="bones-bar" style="width: 100%;"></div>
#> <div class="bones-bar" style="width: 80%;"></div>
#> <div class="bones-bar" style="width: 92%;"></div>
#> <div class="bones-bar" style="width: 70%;"></div>
#> <div class="bones-bar" style="width: 100%;"></div>
#> </div>
#> </div>
#> <div class="bones-dt-bottom">
#> <div class="bones-bar" style="width: 30%;"></div>
#> <div class="bones-dt-pages">
#> <div class="bones-bar bones-dt-page"></div>
#> <div class="bones-bar bones-dt-page"></div>
#> <div class="bones-bar bones-dt-page"></div>
#> <div class="bones-bar bones-dt-page"></div>
#> </div>
#> </div>
#> </div>
#> </div>
