← Каталог
CSS-анимации — готовые эффекты — Тряска при ошибке (shake)
Фрагмент из «CSS-анимации — готовые эффекты»: Тряска при ошибке (shake).
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Shake</title>
<style>
body {
margin: 0;
min-height: 100dvh;
display: grid;
place-items: center;
font-family: system-ui, sans-serif;
}
.field {
padding: 0.65rem 0.85rem;
border: 2px solid #ef4444;
border-radius: 8px;
font-size: 1rem;
animation: shake 0.45s ease;
}
@keyframes shake {
0%, 100% { transform: translateX(0); }
20% { transform: translateX(-8px); }
40% { transform: translateX(8px); }
60% { transform: translateX(-6px); }
80% { transform: translateX(6px); }
}
</style>
</head>
<body>
<input class="field" type="email" value="не-email" aria-invalid="true">
</body>
</html> <!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Shake</title>
<style>
body {
margin: 0;
min-height: 100dvh;
display: grid;
place-items: center;
font-family: system-ui, sans-serif;
}
.field {
padding: 0.65rem 0.85rem;
border: 2px solid #ef4444;
border-radius: 8px;
font-size: 1rem;
animation: shake 0.45s ease;
}
@keyframes shake {
0%, 100% { transform: translateX(0); }
20% { transform: translateX(-8px); }
40% { transform: translateX(8px); }
60% { transform: translateX(-6px); }
80% { transform: translateX(6px); }
}
</style>
</head>
<body>
<input class="field" type="email" value="не-email" aria-invalid="true">
</body>
</html>