I’m heavily relying on View Transition Types on page-transitions.style. The CSS is leveraging the types to isolate the styles for each type of transition.
I’m heavily relying on View Transition Types on page-transitions.style. The CSS is leveraging the types to isolate the styles for each type of transition.
Imagine clicking the next or previous page in a pagination sequence. Depending on whether you are going up or down the sequence, you might want to slide the contents in a different direction.
Imagine clicking the next or previous page in a pagination sequence. Depending on whether you are going up or down the sequence, you might want to slide the contents in a different direction.
“[...] we would welcome contributions to integrate a performant and memory-safe JPEG XL decoder in Chromium. In order to enable it by default in Chromium we would need a commitment to long-term maintenance.”
groups.google.com/a/chromium.o...
“[...] we would welcome contributions to integrate a performant and memory-safe JPEG XL decoder in Chromium. In order to enable it by default in Chromium we would need a commitment to long-term maintenance.”
groups.google.com/a/chromium.o...
From then on, anchoring will resolve against the bounding box of the transformed anchor.
Demo: codepen.io/bramus/pen/p...
From then on, anchoring will resolve against the bounding box of the transformed anchor.
Demo: codepen.io/bramus/pen/p...
The flow goes like this:
- Click a link
- VT into the loading screen
- Fetch the data of the new page in the background
- VT into the new page
The flow goes like this:
- Click a link
- VT into the loading screen
- Fetch the data of the new page in the background
- VT into the new page
The reason I’m thinking of separate input is for the pattern in the screenshot. Clicking + allows you to pick _any_ emoji, on top of the predefined set. By having a dedicated input, you also get change events and stuff.
The reason I’m thinking of separate input is for the pattern in the screenshot. Clicking + allows you to pick _any_ emoji, on top of the predefined set. By having a dedicated input, you also get change events and stuff.
The thing I am thinking of is this one right here: on top of a set of predefined options, you can also chose _any_ emoji.
Instead of having to build your own emoji picker, it’d be nice to just trigger the native one.
The thing I am thinking of is this one right here: on top of a set of predefined options, you can also chose _any_ emoji.
Instead of having to build your own emoji picker, it’d be nice to just trigger the native one.
Clicking that + would trigger the emoji picker.
Clicking that + would trigger the emoji picker.
See this Google Chat screenshot. I think that + icon there could be an `<input type=emoji>`, triggering the native emoji picker.
I think custom emoji are a related but separate problem.
See this Google Chat screenshot. I think that + icon there could be an `<input type=emoji>`, triggering the native emoji picker.
I think custom emoji are a related but separate problem.
Upon clicking that button, the native emoji picker would get shown.
Upon clicking that button, the native emoji picker would get shown.
The UI I’m thinking of is something like this here, in which there is a list of pre-defined recations, but hitting that + icon allows you to pick a custom one. Clicking the + would trigger the emoji picker.
The UI I’m thinking of is something like this here, in which there is a list of pre-defined recations, but hitting that + icon allows you to pick a custom one. Clicking the + would trigger the emoji picker.
From Chrome 144.0.7512.0 onwards, the `::view-transition-group(*)` animations run¹ on the compositor! Yay! 🎉
(¹ When their `width` and `height` don’t change)
From Chrome 144.0.7512.0 onwards, the `::view-transition-group(*)` animations run¹ on the compositor! Yay! 🎉
(¹ When their `width` and `height` don’t change)
💡 If they don’t change, then we don’t need Layout, so then we don’t need to force it on the Main Thread.
💡 If they don’t change, then we don’t need Layout, so then we don’t need to force it on the Main Thread.
One of those is a check for the presence of `width` or `height` in the keyframes. If you are animating those, the animation is forced to run on the Main Thread.
One of those is a check for the presence of `width` or `height` in the keyframes. If you are animating those, the animation is forced to run on the Main Thread.
(It’s more getting in the way than helping me, so better to just get rid of it all together)
(It’s more getting in the way than helping me, so better to just get rid of it all together)
Because I don’t have a CSP violations reporting endpoint set up (like most websites), there’s no CSP-noise on the console 😊
Because I don’t have a CSP violations reporting endpoint set up (like most websites), there’s no CSP-noise on the console 😊
You can try it out yourself in Chrome Canary with the experimental Web Platform Features Flag enabled: codepen.io/bramus/pen/q...
The feature is expected to ship to Chrome Stable in Chrome 144.
You can try it out yourself in Chrome Canary with the experimental Web Platform Features Flag enabled: codepen.io/bramus/pen/q...
The feature is expected to ship to Chrome Stable in Chrome 144.
This one remembers the last direction you scrolled into, which you can use to build “hidey bars”: when scrolling down (or having scrolled down), the hidey bar hides itself. When then scrolling back up, the hidey bar reveals itself.
This one remembers the last direction you scrolled into, which you can use to build “hidey bars”: when scrolling down (or having scrolled down), the hidey bar hides itself. When then scrolling back up, the hidey bar reveals itself.
To help with that, I created this VT Feature Explorer (powered by View Transitions)
web.dev/blog/same-do...
To help with that, I created this VT Feature Explorer (powered by View Transitions)
web.dev/blog/same-do...
As you might have guessed/expected, I’ll be spreading the word on View Transitions 😊
As you might have guessed/expected, I’ll be spreading the word on View Transitions 😊
It unlocks the multi-handle range slider, a pattern you might have already seen when picking a price-range.
Feedback Form (with links to the explainer and demos): docs.google.com/forms/u/0/d/...
It unlocks the multi-handle range slider, a pattern you might have already seen when picking a price-range.
Feedback Form (with links to the explainer and demos): docs.google.com/forms/u/0/d/...