Do tej pory, aby wykonać animację po przejściu z display: none na inną wartość (pozwalającą wyrenderować element) konieczne było użycie dodatkowych trików. Dzięki regule @starting-style ten krok jest już zbędny i można uzyskać ten sam efekt, stosując jedynie CSS.
Przykład:
.popup{display:none;transition:display0.7s,translate0.7s;}.popup.open{display:block;translate:00;@starting-style{/*
Tutaj definiujemy początkowy styl elementu zaraz
po przejściu z display: none na display:block
*/translate:050vh;}}
Analogicznie możemy postępować z elementami, które domyślnie mają ustawione display: none takimi jak popover czy dialog.
Przykład:
<buttonpopovertarget="popover">Open Popover</button><divpopoverid="popover">Popover</div><style>#popover::backdrop{background:black;opacity:.5;}#popover{transition:background3s;background:red;}#popover:popover-open{/*
Gdybyśmy po prostu ustawili tutaj background na blue, element
wyświetliłby się niebieski pomijając animacje
background: blue;
*/@starting-style{background:blue;}}</style>