Thanks!

On Fri, Jul 4, 2025, 7:49 AM Robert Flack <fla...@chromium.org> wrote:

> Thanks, I added an example to the spec with rationale of why you might use
> this: https://github.com/w3c/csswg-drafts/pull/12450.
>
> On Wed, Jul 2, 2025 at 11:27 AM Daniel Bratell <bratel...@gmail.com>
> wrote:
>
>> LGTM3 (there are two LGTM1 so next is 3). Note Alex' request.
>>
>> /Daniel
>> On 2025-07-02 17:26, Alex Russell wrote:
>>
>> Per conversation at today's API OWNERS, LGTM1 contingent on there being a
>> stand-alone explainer and example code. Bonus points for getting motivating
>> example code into the spec too.
>>
>> Best,
>>
>> Alex
>>
>> On Wednesday, June 25, 2025 at 1:20:00 PM UTC-7 Robert Flack wrote:
>>
>>> I've updated the chromestatus motivation to include a rough example of
>>> what developers do today compared to what this API enables. In particular,
>>> without this API developers building carousel components need to calculate
>>> the scroll offset to bring a particular slide into view and then call
>>> scrollTo or set scrollTop / scrollLeft on the scroll container directly in
>>> order to prevent highjacking the user's scroll (which can be observed in my
>>> demo link https://output.jsbin.com/rihozik in a browser which doesn't
>>> support the feature). e.g.
>>>
>>> slideList.addEventListener('click', (evt) => {
>>>   const target = evt.target.targetSlide;
>>>   let scrollLeft = target.offsetLeft;
>>>   const snapAlignInline = getComputedStyle(target).scrollSnapAlignInline;
>>>   if (snapAlignInline != 'left') {
>>>     // Adjust scrollLeft for element's snap alignment
>>>   }
>>>   // Also account for scroll padding, and scroll margin
>>>   slideScroller.scrollTo({left: scrollLeft, behavior: 'smooth'});
>>> });
>>>
>>> With this API, developers can call scrollIntoView on the target of their
>>> buttons, e.g.
>>>
>>> slideList.addEventListener('click', (evt) => {
>>>   // scrollIntoView will automatically determine the position.
>>>   evt.target.targetSlide.scrollIntoView({container: 'nearest', behavior:
>>> 'smooth'});
>>> });
>>>
>>> This has been highly upvoted on the github issue for exactly this reason
>>> - it enables developers to use scrollIntoView for these use cases without
>>> creating a disruptive experience.
>>>
>>> On Wed, Jun 25, 2025 at 11:25 AM Alex Russell <slightly...@chromium.org>
>>> wrote:
>>>
>>>> Is there an explainer or a motivating example anywhere?
>>>>
>>>> Best,
>>>>
>>>> Alex
>>>>
>>>> On Thursday, June 19, 2025 at 9:24:22 AM UTC-7 Chromestatus wrote:
>>>>
>>>>> Contact emails fla...@chromium.org
>>>>>
>>>>> Explainer None
>>>>>
>>>>> Specification
>>>>> https://drafts.csswg.org/cssom-view/#dom-scrollintoviewoptions-container
>>>>>
>>>>> Summary
>>>>>
>>>>> The ScrollIntoViewOptions container option allows developers to
>>>>> perform a scrollIntoView only scrolling the nearest ancestor scroll
>>>>> container. For example, the following snippet only scrolls the scroll
>>>>> container of target to bring target into view, but will not scroll all of
>>>>> the scroll containers to the viewport: target.scrollIntoView({container:
>>>>> 'nearest'});
>>>>>
>>>>>
>>>>> Blink component Blink>Scroll
>>>>> <https://issues.chromium.org/issues?q=customfield1222907:%22Blink%3EScroll%22>
>>>>>
>>>>> TAG review https://github.com/w3ctag/design-reviews/issues/1105
>>>>>
>>>>> TAG review status Pending
>>>>>
>>>>> Risks
>>>>>
>>>>>
>>>>> Interoperability and Compatibility
>>>>>
>>>>> None
>>>>>
>>>>>
>>>>> *Gecko*: No signal (
>>>>> https://github.com/mozilla/standards-positions/issues/1237)
>>>>>
>>>>> *WebKit*: No signal (
>>>>> https://github.com/WebKit/standards-positions/issues/502)
>>>>>
>>>>> *Web developers*: No signals
>>>>>
>>>>> *Other signals*:
>>>>>
>>>>> Ergonomics
>>>>>
>>>>> None that I can think of.
>>>>>
>>>>>
>>>>> Activation
>>>>>
>>>>> It's possible to just use this feature as a progressive enhancement
>>>>> though I expect in practice most developers will want to polyfill falling
>>>>> back to scrollTo on non-supporting browsers. Detection of the feature can
>>>>> be done in Javascript by doing a test scrollIntoView, and if done in a
>>>>> position: fixed descendant should prevent highjacking the user's scroll.
>>>>>
>>>>>
>>>>> WebView application risks
>>>>>
>>>>> Does this intent deprecate or change behavior of existing APIs, such
>>>>> that it has potentially high risk for Android WebView-based applications?
>>>>>
>>>>> None
>>>>>
>>>>>
>>>>> Debuggability
>>>>>
>>>>> None
>>>>>
>>>>>
>>>>> Will this feature be supported on all six Blink platforms (Windows,
>>>>> Mac, Linux, ChromeOS, Android, and Android WebView)? Yes
>>>>>
>>>>> Is this feature fully tested by web-platform-tests
>>>>> <https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md>
>>>>> ? Yes
>>>>>
>>>>>
>>>>> https://wpt.fyi/results/css/cssom-view/scrollIntoView-container.html?label=experimental&label=master&aligned
>>>>>
>>>>>
>>>>> Flag name on about://flags Experimental web platform features
>>>>>
>>>>> Finch feature name ScrollIntoViewNearest
>>>>>
>>>>> Rollout plan Will ship enabled for all users
>>>>>
>>>>> Requires code in //chrome? False
>>>>>
>>>>> Measurement Measured as web feature ScrollIntoViewContainerNearest
>>>>>
>>>>> Sample links
>>>>> https://output.jsbin.com/rihozik
>>>>>
>>>>> Estimated milestones
>>>>> Shipping on desktop 140
>>>>> DevTrial on desktop 138
>>>>> Shipping on Android 140
>>>>> DevTrial on Android 138
>>>>> Shipping on WebView 140
>>>>>
>>>>> Anticipated spec changes
>>>>>
>>>>> Open questions about a feature may be a source of future web compat or
>>>>> interop issues. Please list open issues (e.g. links to known github issues
>>>>> in the project for the feature specification) whose resolution may
>>>>> introduce web compat/interop risk (e.g., changing to naming or structure 
>>>>> of
>>>>> the API in a non-backward-compatible way).
>>>>> In https://github.com/w3c/csswg-drafts/issues/9452 there was
>>>>> consideration of passing an element to contain the scroll to. As discussed
>>>>> in
>>>>> https://github.com/w3c/csswg-drafts/issues/9452#issuecomment-2607879021
>>>>> we think this is easily added in a backwards compatible way if there is a
>>>>> need for it.
>>>>>
>>>>> Link to entry on the Chrome Platform Status
>>>>> https://chromestatus.com/feature/5100036528275456?gate=5140738792488960
>>>>>
>>>>> Links to previous Intent discussions Intent to Prototype:
>>>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/67ab83a2.2b0a0220.2eae12.088a.GAE%40google.com
>>>>>
>>>>>
>>>>> This intent message was generated by Chrome Platform Status
>>>>> <https://chromestatus.com>.
>>>>>
>>>> --
>> You received this message because you are subscribed to the Google Groups
>> "blink-dev" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to blink-dev+unsubscr...@chromium.org.
>> To view this discussion visit
>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/7d48c206-9e1c-4b68-9ff9-1369c0f08ae8n%40chromium.org
>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/7d48c206-9e1c-4b68-9ff9-1369c0f08ae8n%40chromium.org?utm_medium=email&utm_source=footer>
>> .
>>
>> --
> You received this message because you are subscribed to the Google Groups
> "blink-dev" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to blink-dev+unsubscr...@chromium.org.
> To view this discussion visit
> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAJh39TPqsUhQhCYUECX7g7ier6WONXb0Gyadud%2BE4kHn89Xt4Q%40mail.gmail.com
> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAJh39TPqsUhQhCYUECX7g7ier6WONXb0Gyadud%2BE4kHn89Xt4Q%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to blink-dev+unsubscr...@chromium.org.
To view this discussion visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CANh-dX%3DhKn0DeddnisMNsHi7-jxjpSUAHNM_SGMWjDiFT7torA%40mail.gmail.com.

Reply via email to