Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

Add lofi/focus music toggle in Pomodoro timer🎵

Ouverte Adaptée aux débutants
#648 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 2 jours

Personne n'a encore pris cette issue.

Évaluation

Difficulté
2/5
Temps estimé
1-3 heures
Accessibilité débutants
68/100
Type d'issue
Fonctionnalité
Clarté
Clairement spécifiée
Activité
Active
Stack technique
javascript, react
Domaine
frontend

Piste de recherche

Commence par client/src/components/Pomodoro/PomodoroTimer.jsx, le fichier mentionné dans l’issue, et examine comment le minuteur affiche les commandes et gère l’état du composant. Ajoute un interrupteur pour le son d’ambiance en utilisant l’approche Web Audio API décrite dans l’issue ; le travail sera terminé lorsqu’il pourra être activé et désactivé sans paquet supplémentaire et que le minuteur restera utilisable.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

enhancement good first issue

Add lofi/focus music toggle in Pomodoro timer

File: client/src/components/Pomodoro/PomodoroTimer.jsx

Pomodoro timer runs silently 💀
Add ambient focus sounds using Web Audio fr!!

Fix: generate lofi-style ambient tone:
const playAmbient = () => {
const ctx = new AudioContext()

// create soft rain-like white noise:
const bufferSize = 2 * ctx.sampleRate
const buffer = ctx.createBuffer(
1, bufferSize, ctx.sampleRate
)
const data = buffer.getChannelData(0)
for (let i = 0; i < bufferSize; i++) {
data[i] = Math.random() * 2 - 1
}

const source = ctx.createBufferSource()
source.buffer = buffer
source.loop = true

// lowpass filter for "rain" effect:
const filter = ctx.createBiquadFilter()
filter.type = 'lowpass'
filter.frequency.value = 400

const gain = ctx.createGain()
gain.gain.value = 0.05 // very quiet

source.connect(filter)
filter.connect(gain)
gain.connect(ctx.destination)
source.start()

return { source, ctx }
}

const [ambient, setAmbient] = useState(null)

const toggleAmbient = () => {
if (ambient) {
ambient.source.stop()
ambient.ctx.close()
setAmbient(null)
} else {
setAmbient(playAmbient())
}
}

<button onClick={toggleAmbient}
className={text-xs transition ${ambient ? 'text-green-400' : 'text-[#555]'}}>
{ambient ? '🎵 on' : '🎵 off'}

Zero packages — pure Web Audio API ✅
~30 lines! No backend needed 🎯
People will use DevBoard JUST for this!! 🔥

Langage dominant
JavaScript
Étoiles
39
Forks
105
Merge moyen
1 j 12 h
PR mergées (30 j)
45

Préparer son environnement

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de anoopcodehack/DevBoard

Toutes les issues de anoopcodehack/DevBoard

Issues similaires

Plus d'issues JavaScript

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.