{"id":26376329,"url":"https://github.com/appsilon/shiny.semantic","last_synced_at":"2025-05-15T21:07:39.515Z","repository":{"id":13846791,"uuid":"75114262","full_name":"Appsilon/shiny.semantic","owner":"Appsilon","description":"Shiny support for powerful Fomantic UI library.","archived":false,"fork":false,"pushed_at":"2024-05-02T14:31:10.000Z","size":87139,"stargazers_count":507,"open_issues_count":41,"forks_count":97,"subscribers_count":42,"default_branch":"develop","last_synced_at":"2025-05-15T21:07:05.382Z","etag":null,"topics":["appsilon","fomantic-ui","r","rhinoverse","semantic","semantic-components","semantic-ui","shiny"],"latest_commit_sha":null,"homepage":"http://appsilon.github.io/shiny.semantic","language":"R","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Appsilon.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-11-29T19:24:30.000Z","updated_at":"2025-05-12T03:21:33.000Z","dependencies_parsed_at":"2024-02-28T16:26:34.197Z","dependency_job_id":"3edbee85-0ffa-411c-8b1c-9eae8ed54fe2","html_url":"https://github.com/Appsilon/shiny.semantic","commit_stats":{"total_commits":728,"total_committers":44,"mean_commits":"16.545454545454547","dds":0.8090659340659341,"last_synced_commit":"5734cdd5709e4b85a64a4eb7ec3344da2e379440"},"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Appsilon%2Fshiny.semantic","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Appsilon%2Fshiny.semantic/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Appsilon%2Fshiny.semantic/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Appsilon%2Fshiny.semantic/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Appsilon","download_url":"https://codeload.github.com/Appsilon/shiny.semantic/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254422791,"owners_count":22068680,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["appsilon","fomantic-ui","r","rhinoverse","semantic","semantic-components","semantic-ui","shiny"],"created_at":"2025-03-17T03:16:57.675Z","updated_at":"2025-05-15T21:07:39.494Z","avatar_url":"https://github.com/Appsilon.png","language":"R","funding_links":[],"categories":[],"sub_categories":[],"readme":"# shiny.semantic \u003ca href=\"https://appsilon.github.io/shiny.semantic/\"\u003e\u003cimg src=\"man/figures/hexsticker.png\" align=\"right\" alt=\"semantic.dashboard logo\" style=\"height: 140px;\"\u003e\u003c/a\u003e\n\n\u003e _Fomantic (Semantic) UI wrapper for Shiny._\n\n\u003c!-- badges: start --\u003e\n[![R-CMD-check](https://github.com/Appsilon/shiny.semantic/workflows/R-CMD-check/badge.svg)](https://github.com/Appsilon/shiny.semantic/actions/workflows/main.yml)\n[![codecov](https://codecov.io/gh/Appsilon/shiny.semantic/branch/master/graph/badge.svg)](https://codecov.io/gh/Appsilon/shiny.semantic)\n[![cranlogs](https://cranlogs.r-pkg.org/badges/shiny.semantic)](https://CRAN.R-project.org/package=shiny.semantic)\n[![total](https://cranlogs.r-pkg.org/badges/grand-total/shiny.semantic)](https://CRAN.R-project.org/package=shiny.semantic)\n\u003c!-- badges: end --\u003e\n\nWith this library it is easy to wrap Shiny with **[Fomantic\nUI](https://fomantic-ui.com/)** (previously *Semantic*). Add a few\nsimple lines of code to give your UI a **fresh, modern and highly\ninteractive** look.\n\n  - **shiny**\n\n\u003cimg src=\"man/figures/ss_before.png\" alt=\"shiny\" align=\"right\" width=\"40%\" /\u003e\n\n``` r\nlibrary(shiny)\nui \u003c- fluidPage(\n  div(\n    div(\n      a(\"Link\"),\n      p(\"Lorem ipsum, lorem ipsum, lorem ipsum\"),\n      actionButton(\"button\", \"Click\")\n    )\n  )\n)\n```\n\n  - **shiny.semantic**\n\n\u003cimg src=\"man/figures/ss_after.png\" alt=\"semantic\" align=\"right\" width=\"40%\" /\u003e\n\n``` r\nlibrary(shiny.semantic)\nui \u003c- semanticPage(\n  div(class = \"ui raised segment\",\n    div(\n      a(class=\"ui green ribbon label\", \"Link\"),\n      p(\"Lorem ipsum, lorem ipsum, lorem ipsum\"),\n      actionButton(\"button\", \"Click\")\n    )\n  )\n)\n```\n\n## Shiny.semantic demos\n\n### Case studies\n\n| [:link: Churn analytics](https://demo.appsilon.ai/churn) | [:link: Fraud detection](https://demo.prod.appsilon.ai/flights_fraud_demo/) |\n| :------------------------------------------------------: | :-------------------------------------------------------: |\n| \u003cimg src=\"man/figures/churn.png\" alt=\"\" width=\"100%\" /\u003e  |  \u003cimg src=\"man/figures/fraud.png\" alt=\"\" width=\"100%\" /\u003e  |\n\n### Before and after\n\nWe show how `shiny.semantic` can be used to style an app and change it’s\nlook.\n\n| [:link: BEFORE Utah Division of Water Quality (DWQ)](https://shiny.rstudio.com/gallery/lake-profile-dashboard.html) | [:link: AFTER Utah Division of Water Quality (DWQ)](https://demo.appsilon.ai/apps/water-quality/) |\n| :-----------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------: |\n|                             \u003cimg src=\"man/figures/before_wq.png\" alt=\"\" width=\"100%\" /\u003e                             |                    \u003cimg src=\"man/figures/after_wq.png\" alt=\"\" width=\"100%\" /\u003e                     |\n\n## Component examples\n\n\u003ccenter\u003e\n\n\u003ch3\u003e\u003ca href=\"https://connect.appsilon.com/shiny-semantic-components/\"\u003eComponents live demo\u003c/a\u003e\u003c/h3\u003e\n\n\u003c/center\u003e\n\nSee more examples with code in the `examples` folder:\n\n  - [Static Semantic components\n    demo](https://github.com/Appsilon/shiny.semantic/blob/develop/examples/app.R)\n  - [Calendar date and month demo with\n    update](https://github.com/Appsilon/shiny.semantic/blob/develop/examples/calendar/app.R)\n  - [Counter button\n    demo](https://github.com/Appsilon/shiny.semantic/blob/develop/examples/counter_button/app.R)\n  - [Custom CSS\n    demo](https://github.com/Appsilon/shiny.semantic/blob/develop/examples/customcss/app.R)\n  - [Dropdown update\n    demo](https://github.com/Appsilon/shiny.semantic/blob/develop/examples/dropdown_updates/app.R)\n  - [Form inputs\n    demo](https://github.com/Appsilon/shiny.semantic/blob/develop/examples/form_inputs/app.R)\n  - [Modal\n    demos](https://github.com/Appsilon/shiny.semantic/tree/develop/examples/modal)\n  - [Multiple checkbox\n    demo](https://github.com/Appsilon/shiny.semantic/blob/develop/examples/multiple_checkbox/app.R)\n  - [Rating with update\n    demo](https://github.com/Appsilon/shiny.semantic/blob/develop/examples/rating/app.R)\n  - [Search selection\n    demos](https://github.com/Appsilon/shiny.semantic/tree/develop/examples/search_selection)\n  - [Shiny numericInput\n    demo](https://github.com/Appsilon/shiny.semantic/blob/develop/examples/shiny_syntax/numericInput.R)\n  - [Shiny selectInput\n    demo](https://github.com/Appsilon/shiny.semantic/blob/develop/examples/shiny_syntax/selectInput.R)\n  - [Shiny fileInput\n    demo](https://github.com/Appsilon/shiny.semantic/blob/develop/examples/shiny_syntax/fileInput.R)\n  - [Slider and range with update\n    demo](https://github.com/Appsilon/shiny.semantic/blob/develop/examples/shiny_syntax/selectInput.R)\n  - [Multiple tab\n    demo](https://github.com/Appsilon/shiny.semantic/blob/develop/examples/tabset/app.R)\n  - [Notification\n    demo](https://github.com/Appsilon/shiny.semantic/blob/develop/examples/toast/app.R)\n\n## How to install?\n\nYou can install a stable `shiny.semantic` release from CRAN repository:\n\n``` r\ninstall.packages(\"shiny.semantic\")\n```\n\nand the latest version with `remotes`:\n\n``` r\nremotes::install_github(\"Appsilon/shiny.semantic@develop\")\n```\n\n(`master` branch contains the stable version. Use `develop` branch for\nlatest features)\n\nTo install [previous versions]() you can run:\n\n``` r\nremotes::install_github(\"Appsilon/shiny.semantic\", ref = \"0.1.0\")\n```\n\n## How to use it?\n\nFirstly, you will have to invoke `shinyUI()` with `semanticPage()`\ninstead of standard Shiny UI definitions like e.g. `bootstrapPage()`.\nFrom now on, all components can be annotated with [Fomantic\nUI](https://fomantic-ui.com/) specific CSS classes and also you will be\nable to use [shiny.semantic\ncomponents](https://demo.appsilon.ai/semantic/).\n\nBasic example for rendering a simple button. will look like this:\n\n``` r\nlibrary(shiny)\nlibrary(shiny.semantic)\nui \u003c- semanticPage(\n      title = \"My page\",\n      div(class = \"ui button\", icon(\"user\"),  \"Icon button\")\n    )\nserver \u003c- function(input, output) {}\nshinyApp(ui, server)\n```\n\nFor better understanding it’s good to check [Fomantic UI\ndocumentation.](https://fomantic-ui.com/)\n\n**Note \\#1**\n\nAt the moment you have to pass page title in `semanticPage()`\n\n```r\nsemanticPage(title = \"Your page title\", ...)\n```\n\n**Note \\#2**\n\nThe `shiny` package works with **Bootstrap** library under the hood.\n`shiny.semantic` uses [Fomantic UI](https://fomantic-ui.com/). Sometimes\nusing both of these libraries may cause troubles with rendering specific\nUI elements. That is why by default we turn off Bootstrap dependencies.\n\nHowever, you can switch off suppressing bootstrap by calling\n`semanticPage(suppress_bootstrap = FALSE, ...)`\n\n## How to contribute?\n\nWe welcome contributions of all types\\!\n\nWe encourage typo corrections, bug reports, bug fixes and feature\nrequests. Feedback on the clarity of the documentation and examples is\nespecially valuable.\n\nIf you want to contribute to this project please submit a regular PR,\nonce you’re done with new feature or bug fix.\u003cbr\u003e\n\n**Changes in vignettes**\n\nIf you modified or added a new vignette, please rebuild them with\n`devtools::build_vignettes()`.\n\n*Important:*\n\n1)  Please follow the code style from out\n    [styleguide](https://github.com/Appsilon/shiny.semantic/blob/develop/STYLEGUIDE.md).\n\n2)  We have a Contributor [Code of Conduct](). Make sure to check it and\n    to follow it.\n\n## Troubleshooting\n\nWe used the latest versions of dependencies for this library, so please\nupdate your R environment before installation.\n\nHowever, if you encounter any problems, try the following:\n\n1.  Up-to-date R language environment\n2.  Installing specific dependent libraries versions\n\n\u003c!-- end list --\u003e\n\n  - shiny\n\n\u003c!-- end list --\u003e\n\n``` r\ninstall.packages(\"shiny\", version='1.4')\n```\n\n3.  Some bugs may be related directly to Semantic UI. In that case\n    please try to check issues on its\n    [repository.](https://github.com/fomantic/fomantic-ui)\n4.  Some bugs may be related to **Bootstrap**. Please make sure you have\n    it suppressed. Instructions are above in **How to use it?** section.\n\n## Future enhacements\n\n  - create all update functions for input components to mimic shiny as\n    close as possible\n  - add some glue code in `dsl.R` to make using this package smoother\n  - adding more semantic components\n  - new version release on CRAN\n\n## Appsilon\n\n\u003cimg src=\"https://avatars0.githubusercontent.com/u/6096772\" align=\"right\" alt=\"\" width=\"6%\" /\u003e\n\nAppsilon is a **Posit (formerly RStudio) Full Service Certified Partner**.\u003cbr/\u003e\nLearn more at [appsilon.com](https://appsilon.com).\n\nGet in touch [opensource@appsilon.com](mailto:opensource@appsilon.com)\n\nExplore the [Rhinoverse](https://rhinoverse.dev) - a family of R packages built around [Rhino](https://appsilon.github.io/rhino/)!\n\n\u003ca href = \"https://appsilon.com/careers/\" target=\"_blank\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/Appsilon/website-cdn/gh-pages/WeAreHiring1.png\" alt=\"We are hiring!\"/\u003e\u003c/a\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fappsilon%2Fshiny.semantic","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fappsilon%2Fshiny.semantic","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fappsilon%2Fshiny.semantic/lists"}