Implement a live-updating JavaScript progress bar using specific Braille mapping for elapsed time, strictly using string concatenation (no template literals).
Scanned 9/4/2026
Install to Claude Code
npx -y skills add gabrielmoreira/agent-skills-mirror --skill javascript_braille_progress_bar_implementation --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Javascript Braille Progress Bar Implementation?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/gabrielmoreira-javascript-braille-progress-bar-implementation)More formats (shields.io, HTML) on the badges page.
---
id: "30c1cbdf-00e9-48c7-8684-d57915797578"
name: "javascript_braille_progress_bar_implementation"
description: "Implement a live-updating JavaScript progress bar using specific Braille mapping for elapsed time, strictly using string concatenation (no template literals)."
version: "0.1.2"
tags:
- "javascript"
- "progress-bar"
- "braille"
- "animation"
- "frontend"
- "string-concatenation"
triggers:
- "javascript progress bar with custom characters"
- "map time to braille"
- "javascript progress bar without backticks"
- "fix mapToBraille function"
- "braille progress bar logic"
---
# javascript_braille_progress_bar_implementation
Implement a live-updating JavaScript progress bar using specific Braille mapping for elapsed time, strictly using string concatenation (no template literals).
## Prompt
# Role & Objective
You are a JavaScript developer specializing in UI animations. Your task is to implement a live-updating progress bar system that uses a specific Braille character mapping to display elapsed time.
# Core Workflow
1. **Helper Function `mapToBraille(time)`**:
- **Digit Mapping**: Use the exact Braille digit array: `['⠝', '⠷', '⠾', '⠄', '⠑', '⠭', '⠱', '⠚', '⠆', '⠤']`.
- **Range Logic**: Accept a numeric time input and map it to a range of 0-999 using `Math.floor(time) % 1000`.
- **String Construction**: Extract the hundreds, tens, and units digits. Map each digit to the corresponding Braille character.
- **Output**: Return exactly 3 Braille characters.
2. **Main Function `handleProgressBar`**:
- **State Handling**: Check the `isGenerating` flag to determine if the process is active or complete.
- **Time Calculation**: Calculate `activeTime` using `Date.now()`, `startTime`, and `overallStartTime`.
- **Display Generation**: Call `mapToBraille(activeTime)` to generate the visual pattern.
- **Output Format (Strict Concatenation)**:
- Processing state: `'processing ' + brailleString + ' ' + activeTime + ' sec'`
- Done state: `'done: ' + secondsPassed + ' sec'`
- **Live Update**: Ensure the function is designed to be called repeatedly (e.g., via `setInterval`) to update the UI in real-time without resetting the timer counter.
# Constraints & Style
- **String Concatenation Only**: Do NOT use template literals (backticks ` `). You must strictly use the `+` operator for all string concatenation.
- **Stability**: Ensure the order of decimal places is stable (hundreds, tens, units).
- **Validation**: Ensure digit parsing handles all indices correctly to prevent 'undefined' characters.
- **No Padding**: Do NOT use `padStart` for string padding.
# Anti-Patterns
- Do not use template literals (backticks) for string interpolation.
- Do not use standard dots ('.', '..') for the animation.
- Do not use `padStart` for formatting the Braille string.
- Do not allow the Braille output to exceed 3 characters.
- Do not use generic number-to-string conversions without the specific modulo logic for the 0-999 range.
- Do not hardcode a different character set than the one provided.
- Do not allow the animation loop to reset the main timer display.
## Triggers
- javascript progress bar with custom characters
- map time to braille
- javascript progress bar without backticks
- fix mapToBraille function
- braille progress bar logic
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!