Skip to main content

Rendering Content Visibility

Source: .agents/references/coding-standard/vercel-react-best-practices/rules/rendering-content-visibility.md

Metadata

  • title: CSS content-visibility for Long Lists
  • impact: HIGH
  • impactDescription: faster initial render
  • tags: rendering, css, content-visibility, long-lists

Content

CSS content-visibility for Long Lists

Apply content-visibility: auto to defer off-screen rendering.

CSS:

.message-item {
content-visibility: auto;
contain-intrinsic-size: 0 80px;
}

Example:

function MessageList({ messages }: { messages: Message[] }) {
return (
<div className="overflow-y-auto h-screen">
{messages.map(msg => (
<div key={msg.id} className="message-item">
<Avatar user={msg.author} />
<div>{msg.content}</div>
</div>
))}
</div>
)
}

For 1000 messages, browser skips layout/paint for ~990 off-screen items (10× faster initial render).