Re: [csswg-drafts] [css-pseudo-4] Enabling carousel design patterns in CSS (#9745)

The CSS Working Group just discussed `[css-pseudo-4] Enabling carousel design patterns in CSS`.

<details><summary>The full IRC log of that discussion</summary>
&lt;TabAtkins> flackr: [introduces self]<br>
&lt;TabAtkins> flackr: I've been doing a lot of exploration into new UI patterns on the web, one of which is carousels.<br>
&lt;TabAtkins> flackr: if you look up "should I use a carousel", the common answer is no<br>
&lt;TabAtkins> flackr: session complete<br>
&lt;TabAtkins> flackr: this website goes into a bunch of pitfalls people often run into when they write carousels<br>
&lt;TabAtkins> flackr: This particular example is a bad carousel too, it auto advances, I can't swipe, etc<br>
&lt;TabAtkins> flackr: despite the fact that they're often done poorly, there are many many carousel components<br>
&lt;TabAtkins> [tech issues]<br>
&lt;TabAtkins> flackr: this is bootstrap, for example<br>
&lt;TabAtkins> flackr: OpenUI has done a long exploration of carousel pattern<br>
&lt;TabAtkins> flackr: Adam created a demo showing all the different "shapes" for a carousel<br>
&lt;TabAtkins> flackr: dots, thumbnails, no page markers, no arrows, previews of the next item<br>
&lt;TabAtkins> flackr: you can have shopping carousels, where you move be3tween *pages* of items<br>
&lt;TabAtkins> flackr: whether we like them or not, devs create carousels, so we should make them better<br>
&lt;TabAtkins> flackr: looking at most of these, there's some common features<br>
&lt;TabAtkins> flackr: CSS today comes pretty close to letting you build something like this in a scrolling elmeent<br>
&lt;TabAtkins> flackr: with Scroll Snap you can make something that slides from pane to pane, supports touch<br>
&lt;TabAtkins> flackr: because eit's just a scroll, any scrolling mechanism works, better than explicit event handlers<br>
&lt;TabAtkins> flackr: you just have to roll a few pieces yourself<br>
&lt;TabAtkins> flackr: that's what Adam did on his site, making a few extra bits in JS<br>
&lt;TabAtkins> flackr: so I looked into what we can do better, so it's just scrolling, we can accelerate that, and navigate it in the browser so it's more accessible<br>
&lt;TabAtkins> flackr: I have an explainer where I touch on these features<br>
&lt;TabAtkins> flackr: you have scroll-snap, as mentioned<br>
&lt;TabAtkins> flackr: you often have buttons to scroll between items/pages<br>
&lt;flackr> demo: https://gui-challenges.web.app/carousel/dist/<br>
&lt;TabAtkins> flackr: there's often a progress indicator<br>
&lt;TabAtkins> flackr: the progress updates as you scroll<br>
&lt;TabAtkins> flackr: and if you have all of these things, you can make a carousel<br>
&lt;TabAtkins> flackr: you can change where these things are positioned, you can make vertical carousels, any combo<br>
&lt;TabAtkins> flackr: breaking these down, I think we can make it possible to express in css<br>
&lt;TabAtkins> flackr: i've outline a set of features i'd like to dive into, to explain what part each is offering and how it's used to build a carousel<br>
&lt;TabAtkins> flackr: first, some form of stylable fragmentation<br>
&lt;TabAtkins> flackr: to create automatic pagination<br>
&lt;TabAtkins> flackr: if you use multicol fragmentation, columns:1<br>
&lt;TabAtkins> flackr: you'll get a layout with one page of content per fragment<br>
&lt;TabAtkins> flackr: you'll get a long list of columns, split up into "pages"<br>
&lt;TabAtkins> flackr: if we let yous corll-snap to that, you get a paginated experience<br>
&lt;TabAtkins> flackr: scroll markers if about those progress indicators<br>
&lt;TabAtkins> flackr: skipping the "flow into Grid areas" temporarily<br>
&lt;TabAtkins> flackr: scroll buttons are the next/prev buttons<br>
&lt;TabAtkins> flackr: You can roll them on your own, but it would be convenient to auto create them<br>
&lt;TabAtkins> flackr: finally, inert<br>
&lt;TabAtkins> flackr: the ARIA authoring guidelines for carousels recommend that tonly the onscreen content is present in tab order, and the next/prev buttons are used to bring up the next slide<br>
&lt;TabAtkins> flackr: so you don't trap people in a long list of slide contents<br>
&lt;TabAtkins> flackr: currently authors have to do this manually, updating the inert attribute on each slide<br>
&lt;TabAtkins> flackr: but you could imagine updating this automatically as you scroll or click the buttons<br>
&lt;TabAtkins> flackr: so that's a quick overview, I want to dive into some of them<br>
</details>


-- 
GitHub Notification of comment by css-meeting-bot
Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/9745#issuecomment-2375337556 using your GitHub account


-- 
Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config

Received on Wednesday, 25 September 2024 21:58:55 UTC