---
title: "`ease-in` used for an entrance or hover (lint/ease-in-enter)"
description: "lint/ease-in-enter: `ease-in` starts slowly, so the UI feels laggy right when the user expects a response."
canonical: https://void-design.vercel.app/rules/lint/ease-in-enter
lastModified: 2026-09-16
---

# `ease-in` used for an entrance or hover

`lint/ease-in-enter` · severity **info** · category Lint · detected by `void lint` and `void audit`

## Why it matters

`ease-in` starts slowly, so the UI feels laggy right when the user expects a response. Entrances and interactions should start fast and settle (ease-out).

## How to fix it

Use an ease-out curve (`cubic-bezier(0.16, 1, 0.3, 1)` / the `--ease-out` token) for enter and hover; keep `ease-in` for exits only.

## Example

```css
.menu[data-open] { transition: opacity 150ms var(--ease-out), transform 150ms var(--ease-out); }
```

## References

- https://emilkowal.ski/ui/good-vs-great-animations

## More lint rules

`void lint` reports 67 rules in this category. Static source checks with no browser: Tailwind v4 silent failures, Next.js 16 API traps, React render-body bugs, accessibility markup, SEO files and motion hygiene.

- `animate-layout-prop` Animation of layout properties (width/height/top/left/margin/padding) — [lint/animate-layout-prop](https://void-design.vercel.app/rules/lint/animate-layout-prop)
- `outline-none-no-replacement` Focus outline removed without a visible replacement — [lint/outline-none-no-replacement](https://void-design.vercel.app/rules/lint/outline-none-no-replacement)
- `scale-zero-entry` Element enters from `scale(0)` — [lint/scale-zero-entry](https://void-design.vercel.app/rules/lint/scale-zero-entry)
- `scroll-timeline-no-fallback` Base rule hides an element; only an `@supports (animation-timeline: …)` block undoes it — [lint/scroll-timeline-no-fallback](https://void-design.vercel.app/rules/lint/scroll-timeline-no-fallback)
- `long-ui-duration` UI feedback transition longer than 500ms — [lint/long-ui-duration](https://void-design.vercel.app/rules/lint/long-ui-duration)
- `no-reduced-motion` Animations present but no `prefers-reduced-motion` handling anywhere — [lint/no-reduced-motion](https://void-design.vercel.app/rules/lint/no-reduced-motion)
- `overflow-x-hidden-sticky` `overflow-x: hidden` on html/body/root wrapper breaks `position: sticky` — [lint/overflow-x-hidden-sticky](https://void-design.vercel.app/rules/lint/overflow-x-hidden-sticky)
- `vh-hero` Hero sized with `100vh` / `h-screen` — [lint/vh-hero](https://void-design.vercel.app/rules/lint/vh-hero)

Detected by `void lint` and `void audit`. Explain it in a terminal: `void rules lint/ease-in-enter`
