Home/Rows/Row Animation
Rows

Row Animation

One switch for the motion the grid uses when a toggle reveals content. On by default, instant on collapse, and skipped automatically for readers who ask their system for reduced motion.

Open a row — the panel slides in. Close it: collapse is always instant.
#
First Name
Last Name
Department
Salary
Status
1
Alice
Smith
Engineering
$40,000
Inactive
2
Ben
Haddad
Marketing
$43,500
Active
3
Carla
Novak
Support
$47,000
Active
4
Dmitri
Okafor
Legal
$50,500
Inactive
5
Elena
Smith
Operations
$54,000
Active
6
Farid
Haddad
Engineering
$57,500
Active
7
Greta
Novak
Marketing
$61,000
Inactive
8
Hana
Okafor
Support
$64,500
Active
9
Idris
Smith
Legal
$68,000
Active
10
Jo
Haddad
Operations
$71,500
Inactive
1–10 of 20

What the option covers

animateRows governs the brief enter transition applied to content a toggle reveals — the detail panel above is the one you can drive on this page. It is a single grid-level switch rather than a per-surface one, so everything that appears on expand shares one motion language instead of drifting apart as the grid grows.

It is on by default. Turning it off is one line, and it changes nothing else: the same content appears in the same place, just without the transition.

Collapse is always instant

Only the reveal is animated. Closing a panel removes it immediately, whatever the option is set to — waiting for content to fade out before the row settles reads as lag rather than polish, and it makes rapid open/close feel unresponsive. Try it above with the switch on: opening moves, closing does not.

Reduced motion is respected automatically

If the reader's system asks for reduced motion, the transition does not run — regardless of what you set. You do not have to detect the preference or pass anything: leaving animateRows at its default is already the accessible choice, and setting it to false is about your product's feel rather than about accessibility.

That means the two settings differ only for readers who have not asked for reduced motion. If you are testing and see no animation at all, check the system preference before checking the config.

What is not animated

Sorting, filtering, paging and scrolling all repaint without motion. Rows do not slide when the order changes, and scrolling never animates — at scale that would be the difference between a grid that keeps up with the scrollbar and one that does not. What you get instead is an instant repaint and a stable frame rate.

For drawing attention to values that changed rather than content that appeared, see Live Updates, which briefly highlights the cells a transaction touched. The two are separate options and can be used together.

Turning it off everywhere

Set it once in your application config instead of on each grid:

// app.config.ts
providers: [
  provideGridDefaults({ animateRows: false }),
]

A single grid can still opt back in with config.animateRows: true. See Global Configuration for how the two levels combine.

The transition is CSS-driven and runs on the compositor, so it costs nothing per row and does not hold up rendering. Turning it off is a stylistic choice, not a performance one.

Row animation options

PropertyTypeDefaultDescription
config.animateRowsbooleantrueAnimate content revealed by an expand/collapse toggle. Collapse is always instant, and the animation is suppressed automatically when the reader prefers reduced motion.
config.rowExpandRowExpandConfig—Turns on the detail panel this page animates. See Row Expansion.
provideGridDefaults({ animateRows })Partial<GridConfig>—Sets the default for every grid in the app; a single grid can still override it.