sounds-on-the-web
raphaelsalaja/skill · Agent Skill
Ses geri bildirimi arayüzünü UX kalitesi, erişilebilirlik ve pratik uygulama kalıpları açısından kontrol edin.
Kuruluma geç ↓Genel bakış
| Yayıncı | |
|---|---|
| Depo | raphaelsalaja/skill ↗ |
| Skill klasörü | sounds-on-the-web |
| Yıldız | 42 |
| Fork | 5 |
| Dosyalar | 1 |
| Lisans | MIT |
| Son güncelleme | 17 Mart 2026 |
| Bağlantılar | Skill kaynağı ↗ · Depo ↗ |
Mozgi kontrolü
Skill dosyalarında bulduklarımız. Ayrıntılar abonelikle.
Kurulum
Skill, SKILL.md dosyası içeren bir klasördür. Ajanınızı seçin ve komutları proje kökünde bir terminalde çalıştırın (macOS, Linux veya Windows'ta Git Bash).
Promptu Claude, Codex veya başka bir asistana yapıştırın: skill'i inceleyip sizin için kuracaktır.
Install the “sounds-on-the-web” skill from mozgi.io (https://mozgi.io/skills/raphaelsalaja-sounds-on-the-web/) for me. 1. Download the archive: https://mozgi.io/skills/raphaelsalaja-sounds-on-the-web/download If it fails, take the skill folder from the source: https://github.com/raphaelsalaja/skill/tree/main/skills/sounds-on-the-web 2. Read SKILL.md and the other files. Check the skill is safe: no hidden commands, no sending data elsewhere, no scripts doing something other than described. If anything looks suspicious, stop and tell me. 3. Put the “sounds-on-the-web” folder into your agent's skills folder: .claude/skills/ for Claude Code, .agents/skills/ for Codex, .cursor/skills/ for Cursor, .gemini/skills/ for Gemini CLI. Inside the project if we are in one, otherwise in the home folder (~/.claude/skills/ etc.). 4. Make sure <skills folder>/sounds-on-the-web/SKILL.md exists. 5. Briefly tell me what this skill does and offer to try it on my task. If you cannot do a step yourself, tell me what to click or type.
git clone --depth 1 --branch main https://github.com/raphaelsalaja/skill.git /tmp/skill mkdir -p .claude/skills cp -r /tmp/skill/skills/sounds-on-the-web .claude/skills/sounds-on-the-web
Claude Code'u yeniden başlatın — skill listede görünür; elle çağırmak için /sounds-on-the-web. Tüm projeler için ~/.claude/skills.
git clone --depth 1 --branch main https://github.com/raphaelsalaja/skill.git /tmp/skill mkdir -p .agents/skills cp -r /tmp/skill/skills/sounds-on-the-web .agents/skills/sounds-on-the-web
Codex skill'leri geçerli klasörden depo köküne kadar .agents/skills içinde arar; /skills veya $sounds-on-the-web ile çağırın. Tüm projeler için ~/.agents/skills.
git clone --depth 1 --branch main https://github.com/raphaelsalaja/skill.git /tmp/skill mkdir -p .cursor/skills cp -r /tmp/skill/skills/sounds-on-the-web .cursor/skills/sounds-on-the-web
Cursor skill'i açılışta yükler; Agent sohbetinde “/” ile çağırın. Cursor .claude/skills ve .agents/skills klasörlerini de okur. Tüm projeler için ~/.cursor/skills.
git clone --depth 1 --branch main https://github.com/raphaelsalaja/skill.git /tmp/skill mkdir -p .gemini/skills cp -r /tmp/skill/skills/sounds-on-the-web .gemini/skills/sounds-on-the-web
Gemini CLI, görev uyduğunda skill'i etkinleştirmeyi önerir — siz onaylarsınız. Tüm projeler için ~/.gemini/skills.
Kurulumdan önce SKILL.md ve eşlik eden dosyaları inceleyin. Önizleme için dosyaya tıklayın.
SKILL.md içeriği
Yazarın orijinal metni · salt okunurSounds on the Web
Review UI code for audio feedback best practices and accessibility.
How It Works
1. Read the specified files (or prompt user for files/pattern)
2. Check against all rules below
3. Output findings in file:line format
Rule Categories
| Priority | Category | Prefix |
|----------|----------|--------|
| 1 | Accessibility | a11y- |
| 2 | Appropriateness | appropriate- |
| 3 | Implementation | impl- |
| 4 | Weight Matching | weight- |
Rules
Accessibility Rules
a11y-visual-equivalent
Every audio cue must have a visual equivalent; sound never replaces visual feedback.
Fail:
function SubmitButton({ onClick }) {
const handleClick = () => {
playSound("success");
onClick(); // No visual confirmation
};
}
Pass:
function SubmitButton({ onClick }) {
const [status, setStatus] = useState("idle");
const handleClick = () => {
playSound("success");
setStatus("success"); // Visual feedback too
onClick();
};
return <button data-status={status}>Submit</button>;
}
a11y-toggle-setting
Provide explicit toggle to disable sounds in settings.
Fail:
// No way to disable sounds
function App() {
return <SoundProvider>{children}</SoundProvider>;
}
Pass:
function App() {
const { soundEnabled } = usePreferences();
return (
<SoundProvider enabled={soundEnabled}>
{children}
</SoundProvider>
);
}
a11y-reduced-motion-check
Respect prefers-reduced-motion as proxy for sound sensitivity.
Fail:
function playSound(name: string) {
audio.play(); // Plays regardless of preferences
}
Pass:
function playSound(name: string) {
const prefersReducedMotion = window.matchMedia(
"(prefers-reduced-motion: reduce)"
).matches;
if (prefersReducedMotion) return;
audio.play();
}
a11y-volume-control
Allow volume adjustment independent of system volume.
Fail:
function playSound() {
audio.volume = 1; // Always full volume
audio.play();
}
Pass:
function playSound() {
const { volume } = usePreferences();
audio.volume = volume; // User-controlled
audio.play();
}
Appropriateness Rules
appropriate-no-high-frequency
Do not add sound to high-frequency interactions (typing, keyboard navigation).
Fail:
function Input({ onChange }) {
const handleChange = (e) => {
playSound("keystroke"); // Annoying on every keystroke
onChange(e);
};
}
Pass:
function Input({ onChange }) {
// No sound on typing - visual feedback only
return <input onChange={onChange} />;
}
appropriate-confirmations-only
Sound is appropriate for confirmations: payments, uploads, form submissions.
Pass:
async function handlePayment() {
await processPayment();
playSound("success"); // Appropriate - significant action
showConfirmation();
}
appropriate-errors-warnings
Sound is appropriate for errors and warnings that can't be overlooked.
Pass:
function handleError(error: Error) {
playSound("error"); // Appropriate - needs attention
showErrorToast(error.message);
}
appropriate-no-decorative
Do not add sound to decorative moments with no informational value.
Fail:
function Card({ onHover }) {
return (
<div onMouseEnter={() => playSound("hover")}> {/* Decorative, no value */}
{children}
</div>
);
}
appropriate-no-punishing
Sound should inform, not punish; avoid harsh sounds for user mistakes.
Fail:
function ValidationError() {
playSound("loud-buzzer"); // Punishing
return <span>Invalid input</span>;
}
Pass:
function ValidationError() {
playSound("gentle-alert"); // Informative but not harsh
return <span>Invalid input</span>;
}
Implementation Rules
impl-preload-audio
Preload audio files to avoid playback delay.
Fail:
function playSound(name: string) {
const audio = new Audio(`/sounds/${name}.mp3`); // Loads on demand
audio.play();
}
Pass:
const sounds = {
success: new Audio("/sounds/success.mp3"),
error: new Audio("/sounds/error.mp3"),
};
// Preload on app init
Object.values(sounds).forEach(audio => audio.load());
function playSound(name: keyof typeof sounds) {
sounds[name].currentTime = 0;
sounds[name].play();
}
impl-default-subtle
Default volume should be subtle, not loud.
Fail:
const DEFAULT_VOLUME = 1.0; // Too loud
Pass:
const DEFAULT_VOLUME = 0.3; // Subtle default
impl-reset-current-time
Reset audio currentTime before replay to allow rapid triggering.
Fail:
function playSound() {
audio.play(); // Won't replay if already playing
}
Pass:
function playSound() {
audio.currentTime = 0;
audio.play();
}
Weight Matching Rules
weight-match-action
Sound weight should match action importance.
Fail:
// Loud fanfare for minor action
function handleToggle() {
playSound("triumphant-fanfare");
setEnabled(!enabled);
}
Pass:
// Subtle click for minor action
function handleToggle() {
playSound("soft-click");
setEnabled(!enabled);
}
// Richer sound for significant action
function handlePurchase() {
playSound("success-chime");
completePurchase();
}
weight-duration-matches-action
Sound duration should match action duration.
Fail:
// 2-second sound for instant action
function handleClick() {
playSound("long-whoosh"); // 2000ms
// Action completes immediately
}
Pass:
// Short sound for instant action
function handleClick() {
playSound("click"); // 50ms
}
// Longer sound for process
function handleUpload() {
playSound("upload-progress"); // Matches upload duration
}
Output Format
When reviewing files, output findings as:
file:line - [rule-id] description of issue
Example:
components/input/index.tsx:23 - [appropriate-no-high-frequency] Playing sound on every keystroke
lib/sounds.ts:45 - [a11y-reduced-motion-check] Not checking prefers-reduced-motion
Summary Table
After findings, output a summary:
| Rule | Count | Severity |
|------|-------|----------|
| a11y-visual-equivalent | 2 | HIGH |
| appropriate-no-high-frequency | 1 | HIGH |
| impl-preload-audio | 3 | MEDIUM |
Sound Appropriateness Matrix
| Interaction | Sound? | Reason |
|-------------|--------|--------|
| Payment success | Yes | Significant confirmation |
| Form submission | Yes | User needs assurance |
| Error state | Yes | Can't be overlooked |
| Notification | Yes | May not be looking at screen |
| Button click | Maybe | Only for significant buttons |
| Typing | No | Too frequent |
| Hover | No | Decorative only |
| Scroll | No | Too frequent |
| Navigation | No | Keyboard nav would be noisy |
References
Sık sorulan sorular
sounds-on-the-web skill'i ne yapar?
Ses geri bildirimi arayüzünü UX kalitesi, erişilebilirlik ve pratik uygulama kalıpları açısından kontrol edin.
sounds-on-the-web nasıl kurulur?
Bu sayfadaki “Kurulum” bölümünü açın ve ajanınızı seçin — Claude Code, Codex, Cursor veya Gemini CLI: skill klasörünü doğru yere kopyalayan hazır komutlar orada. Ya da “Asistanla” sekmesindeki promptu kopyalayın; asistan skill'i inceleyip kuracaktır.
sounds-on-the-web hangi yapay zekâlarla çalışır?
Skill'ler düz Markdown talimatlarıdır (Agent Skills formatı), bu yüzden sounds-on-the-web SKILL.md okuyan her ajanla çalışır: Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode ve diğerleri. Model talimatları yalnızca görev skill açıklamasına uyduğunda yükler.
sounds-on-the-web ücretsiz mi?
Skill, raphaelsalaja tarafından açık olarak yayımlandı (MIT lisansı). Skill'in kendisi ücretsizdir — yalnızca kullandığınız token'lar için yapay zekâ sağlayıcınıza ödeme yaparsınız.
Skill kurmak güvenli mi?
Skill, ajanınızın izleyeceği talimatlardır; kurmadan önce SKILL.md ve eşlik eden dosyaları okuyun. Skill klasöründeki betikler yalnızca ajanınız çalıştırırsa çalışır — ne yaptığını izleyin ve gereksiz izin vermeyin.
Skill, MCP sunucusu veya eklentiden nasıl farklıdır?
MCP sunucusu veya eklenti modele yeni araçlar verir — çalışıp sonuç döndüren kod. Skill ise bilgi ve süreç verir: göreve nasıl yaklaşılacağı, hangi adımların izleneceği ve iyi sonucun neye benzediği. Sunucu veya API anahtarı gerekmez.