Remix.run Logo
crooked-v 11 hours ago

You can't actually control the open state properly from markup (the `open` attribute only sets the default state), which is why I haven't bothered with them.

bikeshaving 11 hours ago | parent | next [-]

I’m not sure this is correct. The DOM class HTMLDetailsElement has the `open` property, which you can use to read/write the details element’s state. If you’re using setAttribute/getAttribute just switch to the property.

https://developer.mozilla.org/en-US/docs/Web/API/HTMLDetails...

crooked-v 6 hours ago | parent [-]

Having to use the property on the element instance, rather than the actual HTML attribute, is exactly the kind of wrapper code I want to avoid if I'm using a built-in.

WickyNilliams 2 hours ago | parent | next [-]

You need some JS to change an attribute as much as you need JS to change a property. What am I missing?

I hope the command attribute (https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/...) will eventually support this out of the box. In the meanwhile you can write a single custom --toggle command which is generic and works with any toggleable element

_heimdall 2 hours ago | parent | prev [-]

What kind of control are you looking for?

`open` works just like checked for a checkbox input. You can set the initial state in HTML and CSS can respond to changes in the attribute if a user clicks it. Markup won't have programmatic control over the attribute by design, that's always done in JS by modifying the element instance.

rhdunn 7 hours ago | parent | prev | next [-]

If you specify the same name on each `details` element they behave like an accordion automatically [1], no need for JavaScript. If you set one of them to open that one will be initially open.

[1] https://developer.mozilla.org/en-US/blog/html-details-exclus...

6510 42 minutes ago | parent | next [-]

different things with the same name? O_O

crooked-v 6 hours ago | parent | prev [-]

It's not about using it as an accordion, it's about controlling the open/closed state from other interactions.

subdavis 11 hours ago | parent | prev [-]

Out of curiosity, why have you needed to? This has never come up for me.

crooked-v 6 hours ago | parent [-]

For a simple example, imagine buttons that opens a modal with a particular arrangement of open/closed accordions for each button.