Countdown Timer for Bubble Mobile

Demo to preview the plugin:

Introduction

The Countdown Timer Native plugin allows users to easily add countdown timers to their Bubble.io applications. This plugin provides a simple way to track time with a visual timer element that can be started, paused, and reset. Users can specify the countdown duration and even set a warning threshold to trigger events when the timer is about to expire.
This is a perfect solution for applications that require timed activities, such as quizzes, games, booking systems, or any other scenario where time tracking is essential.

Prerequisites

This plugin is designed specifically for the mobile version of the Bubble editor. To test the plugin on your mobile device, use the TestFlight app available at: https://testflight.apple.com/join/4fXUggud

Notes

  • Use "Instance ID" when you have several Timer or Stopwatch elements, otherwise they share the same saved state.
  • Actions called before the element is loaded (e.g. on "Page is loaded") are executed as soon as the element appears. Only the last such action is kept.
  • In Web Preview, the timer state is not saved between reloads, and the circular ring may be shown as text only. On a real device both work fully.
Image without caption

How to setup

Setting up the Countdown Timer Native plugin is straightforward:
  1. Install the plugin from the Bubble.io plugin marketplace
  1. Add the “Timer” element to your page
  1. Configure the timer settings (countdown time and optional warning time)
  1. Use the provided actions to control the timer (Start, Pause, Reset)
  1. Optionally, set up workflows that respond to the timer events (Time Up, Time Warning)
No additional configuration or external APIs are required.

Plugin Element Properties - Timer

The plugin contains a visual Timer element that should be used on a page.
Image without caption

Fields

Title
Description
Type
Countdown Time
Time in the format HH:MM:SS (MM:SS and SS are also accepted). Ignored if "Duration (ms)" is set
Text
Warning time
The threshold in seconds until the timer ends (triggers the “Time Warning” event)
Number
Timer Mode
Choose between • countdown (from time to 0) • count-up (from 0 to time)
Dropdown
Step Interval (seconds)
Time interval for each step (e.g., 1 for every second, 2 for every 2 seconds)
Number
Display Mode
Choose display style: • headless (logic only) • circular (visual timer with progress ring)
Dropdown
Circular mode
Border Thickness
Progress border width in pixels
Number
Progress Ring
Progress ring color in hex format
Color
Ring Color
Background circle color in hex format
Color
Start Position
Starting position for progress animation
Dropdown
Direction
Progress animation direction
Dropdown
Show Text
Show/hide time text
Yes/No
Progress Update Mode
• Instant: progress updates in steps. • Smooth: progress updates continuously with linear animation
Dropdown
Duration (ms)
Timer duration in milliseconds (e.g. 90000 = 1 min 30 sec). If set and greater than 0, overrides "Countdown Time"
Number
Warning time (ms)
Warning threshold in milliseconds before the timer ends (triggers the "Time Warning" event). If set and greater than 0, overrides "Warning time"
Number
Instance ID
Unique ID used to save the timer state between app sessions. Set a different value for each timer if you have more than one on a page
Text

Element Actions

Start Timer
Reset Timer
Pause Timer

Exposed states

Name
Description
Type
Time Left
The remaining time displayed in format HH:MM:SS
Text
Time Left Seconds
The remaining time in seconds (legacy, use "Time Left Ms" instead)
Number
Time Left Ms
The remaining time in milliseconds (same unit as the Stopwatch). In count-up mode, the elapsed time
Number

Element Events

Name
Description
Time Up
Triggered when the countdown reaches zero (or, in count-up mode, when the target time is reached)
Time Warning
Triggered when the remaining time reaches the warning threshold (countdown mode only)

Plugin Element Properties - Stopwatch

Image without caption

Fields

Title
Description
Type
Update Interval
How often the stopwatch states are updated, in milliseconds. Default: 100. Minimum: 16
Number
Instance ID
Unique ID used to save the stopwatch state (time and laps) between app sessions. Set a different value for each stopwatch if you have more than one in the app
Text

Element Actions

Start/Resume Stopwatch
Stop/Pause Stopwatch
Reset Stopwatch
New Lap
Clear Laps
Add/Subtract Time
Set Time

Exposed states

Name
Description
Type
Total Elapsed Time Ms
Total elapsed time in milliseconds
Number
Formatted Total Elapsed Time
Formatted elapsed time as HH:MM:SS
Text
Is Running
Whether the stopwatch is currently running
Yes/No
Lap Times
Array of lap times in milliseconds
List of Number
Lap Formatted Times
Array of formatted lap times (HH:MM:SS)
List of Text
Current Lap Time
Current lap time in milliseconds
Number
Current Lap Formatted Time
Current lap formatted time as HH:MM:SS
Text

Element Events

Name
Description
Stopwatch Started
Triggered When the stopwatch starts
Stopwatch Stopped
Triggered When the stopwatch stops
Registered New Lap
Triggered When a new lap is recorded

Workflow example

Here’s an example of how you might use the Countdown Timer Native plugin in a quiz application:
  1. Setup the Quiz Timer:
      • Add the Timer element to your quiz page
      • Set the Countdown Time to “00:05:00” (5 minutes)
      • Set the Warning Time to 60 (seconds)
  1. Start the Quiz:
      • When the user clicks “Start Quiz,” use the “Start Timer” action
      • Display the timer’s “Time Left” state to show the user how much time remains
  1. Configure Warning Event:
      • When the “Time Warning” event triggers, change the timer’s appearance to red
      • Show a message to the user: “1 minute remaining!”
  1. Handle Time Up Event:
      • When the “Time Up” event triggers, automatically submit the quiz
      • Display a message: “Time’s up! Your answers have been submitted.”
  1. Pause Functionality:
      • Add a “Pause” button that triggers the “Pause Timer” action
      • This could be useful if the user needs to temporarily stop the quiz
Image without caption

Changelogs