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).