{"id":14067227,"url":"https://github.com/nteetor/cascadess","last_synced_at":"2025-10-17T00:02:06.984Z","repository":{"id":39908767,"uuid":"237712298","full_name":"nteetor/cascadess","owner":"nteetor","description":"A style pronoun for {htmltools} tags","archived":false,"fork":false,"pushed_at":"2024-10-22T01:48:07.000Z","size":2401,"stargazers_count":18,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-10-25T09:58:35.130Z","etag":null,"topics":["bootstrap-5","css","r","shiny"],"latest_commit_sha":null,"homepage":"https://nteetor.github.io/cascadess","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/nteetor.png","metadata":{"files":{"readme":"README.md","changelog":"NEWS.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"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":"2020-02-02T03:23:05.000Z","updated_at":"2024-10-22T01:41:08.000Z","dependencies_parsed_at":"2024-10-22T23:46:55.501Z","dependency_job_id":null,"html_url":"https://github.com/nteetor/cascadess","commit_stats":{"total_commits":114,"total_committers":3,"mean_commits":38.0,"dds":"0.49122807017543857","last_synced_commit":"657cda04260714b76c02cba31c2d9cccc46a2948"},"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nteetor%2Fcascadess","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nteetor%2Fcascadess/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nteetor%2Fcascadess/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nteetor%2Fcascadess/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nteetor","download_url":"https://codeload.github.com/nteetor/cascadess/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238386305,"owners_count":19463339,"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":["bootstrap-5","css","r","shiny"],"created_at":"2024-08-13T07:05:29.477Z","updated_at":"2025-10-17T00:02:01.938Z","avatar_url":"https://github.com/nteetor.png","language":"R","funding_links":[],"categories":["Theming","R"],"sub_categories":["Theme Customization"],"readme":"# cascadess\n\n[![Lifecycle: maturing](https://img.shields.io/badge/lifecycle-maturing-blue.svg)](https://lifecycle.r-lib.org/articles/stages.html#maturing)\n![r-cmd-check](https://github.com/nteetor/cascadess/workflows/r-cmd-check/badge.svg)\n[![codecov](https://codecov.io/github/nteetor/cascadess/branch/main/graph/badge.svg?token=iqPqX81732)](https://app.codecov.io/github/nteetor/cascadess)\n[![CRAN status](https://www.r-pkg.org/badges/version/cascadess)](https://CRAN.R-project.org/package=cascadess)\n\nA style pronoun and utilities for {[htmltools](https://github.com/rstudio/htmltools)} tags, {[bslib](https://github.com/rstudio/bslib)}, and {[shiny](https://github.com/rstudio/shiny)}.\n\n## What can I use cascadess for?\n\n* Change background colors\n* Vertically stack action buttons\n* Optimize layouts for smaller screens\n* Affix an element to the top of the webpage\n* Increase or decrease space between html elements\n* Force text to upper, lower, or title case\n\nImportantly, cascadess's styles can be used with any shiny related package. The\nstyles applied by cascadess are based upon the Bootstrap CSS framework. So,\nrather than conflict, the applied styles are designed to blend with those\napplied by bslib.\n\n## Why a pronoun?\n\nCascadess defines a style pronoun, `.style`, usable inside `htmltools::tags`\nHTML builder functions. With `.style` you can specify styling directly within a\nfunction call to help a reader understand how the HTML tag element will be\nstyled. Without the `.style` pronoun, styling is applied after a function call.\n\n```R\ninput_button(\n  .style |\u003e\n    margin_all(2) |\u003e\n    background_color(\"primary\"),\n  id = \"go\",\n  label = \"Go!\"\n)\n\n# vs\n\ninput_button(\n  id = \"go\",\n  label = \"Go!\"\n) |\u003e\n  margin_all(2) |\u003e\n  background_color(\"primary\")\n```\n\n## Usage\n\nTo see the CSS styles, either include a call to `cascadess_dependencies()` somewhere in the UI of the application or use the bslib package.\n\n``` R\ndiv(\n  cascadess_dependencies(),\n  div(\n    .style |\u003e\n      margin_all(3) |\u003e\n      shadow(\"lg\"),\n    \"For a standalone report or simple shiny app\"\n  )\n)\n```\n\n```R\npage(\n  card(\n    .style |\u003e\n      margin_all(3) |\u003e\n      border_color(theme_info()) |\u003e\n      font_color(theme_info()),\n    \"When using bslib, the necessary CSS styles are already included\"\n  )\n)\n```\n\n## Installation\n\nInstall the package from CRAN with,\n\n``` R\ninstall.packages(\"cascadess\")\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnteetor%2Fcascadess","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnteetor%2Fcascadess","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnteetor%2Fcascadess/lists"}