{countdown} now uses {prismatic} for color calculations.
The JavaScript implementation of countdown has been completely rewritten. It now supports a wide range of new interactions:
Start, pause, and reset the timer (click, click again, double click).
+
or -
buttons to bump timer up or
down.
Keyboard shortcuts: Space/Enter to start/stop, Escape to reset, and up/down arrows to bump timer.
The timers now work on mobile devices (in particular in xaringan slides).
countdown timers can now be used in or controlled by Shiny apps:
Use countdown_update()
to update key initial timer
settings.
Use countdown_action()
to trigger common action:
start, stop, reset, bump up or bump down.
State changes are reported back to the Shiny app, e.g. Shiny apps
can use input$timer
to receive event data from the timer
with id = "timer"
.
countdown_shiny_example()
runs a Shiny app that
demonstrates key Shiny app features.
Timers can now start immediately by setting the argument
start_immediately = TRUE
. When TRUE
, timers
will start as soon as they are visible. This feature works in xaringan
slides, Quarto slides and general HTML web pages (thanks @Dr-Joe-Roberts,
@davidkane9,
#12).
The countdown_app()
now supports bookmarking, making
it possible to share pre-configured timer URLs. This feature improves
the usability of the timer available at https://apps.garrickadenbuie.com/countdown.
Any sound file hosted online can no be played in place of the
default sound by setting play_sound
to the absolute or
relative URL of the sound file.
The default CSS styles were updated for better automatic vertical centering of the countdown digits.
Added .countdown-time
class to
<code>
element of timer. Renamed .digits
class to .countdown-digits
. This ensures that it’s possible
to write CSS rules with high specificity values (#10).
Added style
argument to countdown()
for
inlining CSS rules to the parent div
of the timer.
Added a warning state to the coundown timer that is enabled by
setting warn_when = N
. The warning
class is
applied to the timer for the last N
seconds, and the colors
of this state are configured with the arguments with
color_warning_
prefix (thanks @hadley, #5).
Added a new convenience function for full-screen (and
stand-alone) countdown timers, countdown_fullscreen()
. This
function’s defaults work best when called from RStudio, in xaringan
slides it will still be necessary to fiddle with font_size
,
margin
, and padding
(thanks @hadley, #6).
Add countdown_app()
to launch an interactive Shiny
app with a full-screen countdown timer.
Added update_every
argument to
countdown()
to only update the timer every N seconds.
Normal updating (second-by-second) is always used for the last two
periods of the countdown time. Thanks @mine-cetinkaya-rundel for the
suggestion.
Added blink_colon
argument to
countdown()
to animate the :
in the countdown
timer colon to blink every second. Enabled by default when the
update_every
interval is greater than 1 to provide feedback
that the timer is running.