{# @description A row of anything, moving across the page without end, like a conveyor belt. It stops under the pointer, while anything in it has focus, and when its pause control is pressed. #} {# @prop speed:number | default:"1" | description:"How quickly the row travels, as a multiple: 2 is twice as fast, 0.5 half. At 1 the row passes once in forty seconds, however much it holds." #} {# @prop reverse:boolean | default:False | description:"Travel from left to right" #} {# @prop gap:select['sm', 'md', 'lg'] | default:"md" | description:"The room between one item and the next" #} {# @prop fade:boolean | default:True | description:"Fade the row out at both ends, so items arrive and leave instead of being cut off" #} {# @prop controls:boolean | default:True | description:"Draw the pause control. Turn it off only when the page gives another way to stop the movement: without one, a keyboard or touch-screen visitor cannot." #} {# @prop pause:text | description:"The name of the pause control, for a screen reader. Say what is moving: Pause the sponsors' logos. Left empty, it is a translated Pause the movement." #} {# @prop class:text | description:"Extra classes on the outer element" #} {# @slot Django 6.1Python 3.13daisyUI 5 — The items. Anything at all: logos, cards, badges. Written once, in the order they pass. #} {% comment %} The items are written out twice, and each copy slides left by its own width plus one gap, which is exactly where the other copy started: no seam and no script. The second copy is `inert`, so its links are not reached twice. Each copy is at least as wide as the row, so three items spread across it rather than passing in a clump with a hole behind them. Under reduced motion there is one copy, holding still, wrapped and centred. A marquee inside an element carrying `data-marquee-group` leaves its pause control to the group's, which stops every row in it. {% endcomment %}
{{ slot }}
{% if controls %}{% endif %}