Shiny Basic系列:
参考教程:https://mastering-shiny.org/
(1)IO控件
(2)Layout布局
(3)Reactive用法
(4)Feedback提醒
(5)Module模块
Shiny Package系列:
(1)shinyWidgets
(2)shinyJS
(5)bslib
(6)Other pkgs
bslib
包与shinydashboard
包类似,提供了大量定制化的排版布局函数,方便快速搭建简洁的app。
|
|
1. 基本UI
1.1 Card面板
-
主要由
card_header()
)与card_body()
两部分组成; -
一个card可以包括多个body;一个body内部可以由复杂的多个UI元素排版。
-
card内的元素默认是fillable(自适应填充),即根据其内容,自动调整其高度;可通过参数限制其最大最小高度(scroll滚动栏)
|
|
1.2 Value box
- https://rstudio.github.io/bslib/articles/value-boxes/index.html
- 定制化布局的面板,用于展示关键的数字与文字
- 其中value参数的值可动态更新
|
|
1.3 窗口弹出提示
- https://rstudio.github.io/bslib/articles/tooltips-popovers/index.html
tooltip()
: 悬浮式文字弹出—适用于文本帮助信息提示
|
|
popover()
: 点击触发弹出—适用于放置一些输入控件用以设置绘图参数等
|
|
2. 布局排版
2.1 侧边栏式面板
-
https://rstudio.github.io/bslib/articles/sidebars/index.html
-
layout_sidebar()/sidebar()
-
使用可弹出式的侧边栏增加控件展示的灵活性
-
此外,也可以作为card()的body部分
|
|
2.2 column列式面板
-
https://rstudio.github.io/bslib/articles/column-layout/index.html
-
将card()基本元素按照列column排版。其特点之一是在整体page宽度调整过程中,一行的多列card若太“拥挤”,会自动调整为2行
-
layout_columns()
: 指定每个card的宽度
|
|
layout_column_wrap()
:每个card等宽,等高布局
|
|
2.3 navset多面板组合
-
https://rstudio.github.io/bslib/reference/navset.html#details
-
navset_xxx()一般由多个
nav_panel()
组成;可通过nav_menu()/nav_item()
设置二级子面板
|
|
2.4 accordion手风琴式
accordion()/accordion_panel()
将多个面板折叠式堆放open
以及multiple
参数可设置初始的面板打开状态
|
|
2.5 Page-level排版
|
|
主题设置:
bs_theme()