2 variants
Citation Answer
An answer whose inline markers are real buttons, each lighting up the source it came from.
Citation answer
An answer whose inline markers are real buttons, each lighting up the source it came from.
Animating height forces the browser to lay the element out again on every frame, which is why transform and opacity are the only two properties worth animating in a list . A grid template rows interpolation is the exception people reach for, because it is a native CSS animation the browser lays out once per change rather than once per frame . Either way, anything that moves needs a reduced motion path .
import { CitationAnswer } from "@/components/registry/citation-answer";
export function Answer() {
return (
<CitationAnswer
text="Transform and opacity are the only two worth animating [1]."
sources={[
{ publisher: "web.dev", title: "Animations and performance", url: "https://web.dev/animations-guide/" },
]}
/>
);
}155 more lines ship with an easeUI Pro license.
Buy a licenseInstall
Source cards
Sources laid out as cards above the answer, the way search answers show them. Pointing at a marker or a card lights up both.
Sources · 4
- web.devAnimating grid-template-rows for smooth collapses
- caniuseCSS grid animation support tables
- emil.designDurations that feel fast without feeling abrupt
- MDNprefers-reduced-motion media feature
Grid track interpolation lets a row collapse without measuring its height , and it is supported in every current browser . Keep the animation under 300ms so it reads as a response rather than a wait , and skip it entirely under reduced motion .
import { CitationSources } from "@/components/registry/citation-sources";
export function Answer() {
return (
<CitationSources
text="Grid tracks collapse without measuring [1]."
sources={[{ publisher: "web.dev", title: "Animating grid rows", url: "https://web.dev" }]}
/>
);
}123 more lines ship with an easeUI Pro license.
Buy a license