View source: R/bid_quick_suggest.R
| bid_quick_suggest | R Documentation |
Provides a streamlined, single-step workflow for R dashboard developers who need quick UX suggestions without going through the full 5-stage BID framework. This function internally leverages the BID framework stages but presents results in a simple, actionable format. Works with both Shiny applications and Quarto dashboards.
Unlike the full BID workflow (Interpret -> Notice -> Anticipate -> Structure -> Validate), this function provides immediate suggestions based on a problem description. Use this for rapid prototyping or when you need quick guidance. For comprehensive UX redesign projects, use the full BID workflow.
bid_quick_suggest(
problem,
context = NULL,
package = NULL,
limit = 10,
min_score = 0.7,
quiet = NULL
)
problem |
Required. A character string describing the UX problem. Examples: "Users can't find the download button", "Information overload on dashboard", "Mobile interface is hard to navigate". |
context |
Optional. Additional context about the application or users. This helps refine suggestions to your specific situation. |
package |
Optional. Filter suggestions to specific package ("bslib", "shiny", "reactable", "DT", "plotly", "leaflet", etc.). If NULL, returns suggestions for all relevant packages. Note: bslib, plotly, DT, reactable, and leaflet components work in both Shiny apps and Quarto dashboards. |
limit |
Optional. Maximum number of suggestions to return (default: 10). Set to Inf to return all suggestions. |
min_score |
Optional. Minimum relevance score 0-1 (default: 0.7). Higher values return only the most relevant suggestions. |
quiet |
Optional. Logical indicating whether to suppress informational messages. If NULL, uses getOption("bidux.quiet", FALSE). |
How it works:
The function analyzes your problem description using keyword matching and semantic analysis to:
Identify relevant UX concepts (cognitive load, navigation, visual hierarchy, etc.)
Detect appropriate layout patterns (grid, card, breathable, etc.)
Generate ranked suggestions with specific component recommendations
Filter and sort by relevance score
Problem Analysis Keywords:
"overload", "overwhelm", "too many" -> Cognitive Load Theory
"find", "search", "navigate" -> Information Scent
"cluttered", "messy", "disorganized" -> Visual Hierarchy
"mobile", "touch", "responsive" -> Fitts's Law
"confusing", "unclear", "complex" -> Progressive Disclosure
When to use this vs full BID workflow:
Use bid_quick_suggest(): Quick fixes, prototyping, single issues
Use full workflow: Comprehensive redesigns, complex projects, team collaboration
Quarto Dashboard Compatibility:
Component suggestions include both Shiny-specific (shiny::) and framework-agnostic
components. For static Quarto dashboards or OJS-based interactivity, focus on
bslib, DT, plotly, reactable, and leaflet suggestions. Shiny-prefixed components
require server: shiny in Quarto dashboards or a traditional Shiny app.
A tibble with columns:
title |
Brief actionable description of the suggestion |
details |
Specific implementation guidance |
components |
R dashboard component recommendations (character vector). Components prefixed with 'shiny::' require Shiny runtime; bslib, DT, plotly, reactable, and leaflet components work in both Shiny and Quarto dashboards. |
concept |
UX concept the suggestion is based on |
score |
Relevance score (0-1, higher is more relevant) |
difficulty |
Implementation difficulty (easy/moderate/advanced) |
rationale |
1-2 sentence explanation of why this helps |
# Basic usage
suggestions <- bid_quick_suggest(
problem = "Users can't find the download button"
)
print(suggestions)
# With additional context
suggestions <- bid_quick_suggest(
problem = "Dashboard has too many charts and metrics",
context = "Financial analysts need quick insights but get overwhelmed",
limit = 5
)
# Filter to specific package
bslib_suggestions <- bid_quick_suggest(
problem = "Mobile interface is hard to use",
package = "bslib",
min_score = 0.8
)
# Navigation issues
nav_suggestions <- bid_quick_suggest(
problem = "Users get lost in multi-tab interface",
context = "Application has 10+ tabs with nested content"
)
# Information overload
overload_suggestions <- bid_quick_suggest(
problem = "Too many filters and options on the sidebar",
context = "Beginners find the interface overwhelming"
)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.