<turbo-stream action="append" target="posts_list"><template>    <div class="postbit" id="313692" data-post-id="313692">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="westmark" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/westmark/120/29853_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  westmark
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I always reach for <a href="https://dndkit.com" rel="noopener nofollow ugc">https://dndkit.com</a> myself.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="313692" data-batch-url="/posts/batch_likers">
                        4
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/whats-a-great-modern-drag-and-drop-javascript-library-you-recommend/60806/12">Post #11</a>
	                </div>
	            </div>
              <div id="likers-container-313692" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="313692"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #11"></div>
  </section>
</div>
    <div class="postbit" id="320735" data-post-id="320735">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="tlietz" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/tlietz/120/26920_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  tlietz
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Shopify’s <a href="https://github.com/Shopify/draggable" rel="noopener nofollow ugc">draggable</a> is pretty good. Documentation is a bit sparse.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="320735" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/whats-a-great-modern-drag-and-drop-javascript-library-you-recommend/60806/13">Post #12</a>
	                </div>
	            </div>
              <div id="likers-container-320735" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="320735"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #12"></div>
  </section>
</div>
    <div class="postbit" id="320736" data-post-id="320736">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="sodapopcan" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/sodapopcan/120/34668_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  sodapopcan
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Says “built for React” and all examples are React.  Does it work without?</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="320736" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/whats-a-great-modern-drag-and-drop-javascript-library-you-recommend/60806/14">Post #13</a>
	                </div>
	            </div>
              <div id="likers-container-320736" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="320736"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #13"></div>
  </section>
</div>
    <div class="postbit" id="320749" data-post-id="320749">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="westmark" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/westmark/120/29853_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  westmark
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I never tried, but it doesn’t look like it</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="320749" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/whats-a-great-modern-drag-and-drop-javascript-library-you-recommend/60806/15">Post #14</a>
	                </div>
	            </div>
              <div id="likers-container-320749" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="320749"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #14"></div>
  </section>
</div>
    <div class="postbit" id="321278" data-post-id="321278">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="tlietz" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/tlietz/120/26920_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  tlietz
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>After many hours of research, I have finally found a dnd library that is built for vanillajs first, is actually performant (uses webworkers), has a good auto scroll out of the box, and is used in production applications:</p>
<aside class="onebox allowlistedgeneric" data-onebox-src="https://muuri.dev/">
  <header class="source">
      <img src="https://muuri.dev/muuri-icon.svg" class="site-icon" alt="" width="550" height="400">

      <a href="https://muuri.dev/" target="_blank" rel="noopener nofollow ugc">muuri.dev</a>
  </header>

  <article class="onebox-body">
    

<h3><a href="https://muuri.dev/" target="_blank" rel="noopener nofollow ugc">Muuri - Infinite layouts with batteries included</a></h3>

  <p>Muuri is a JavaScript library that creates responsive, sortable, filterable and draggable grid layouts.</p>


  </article>

  <div class="onebox-metadata">
    
    
  </div>

  <div style="clear: both"></div>
</aside>

<p>Additionally, it doesn’t use the native drag and drop web api, which means that it doesn’t over-scroll in a glitchy way on mobile, and the dragged element can be constrained to a certain axis since it doesn’t need to follow the cursor.</p>
<p>It’s more of a layout engine, but there are Kanban examples that can easily be pared down to do what scrollablejs does.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="321278" data-batch-url="/posts/batch_likers">
                        10
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/whats-a-great-modern-drag-and-drop-javascript-library-you-recommend/60806/16">Post #15</a>
	                </div>
	            </div>
              <div id="likers-container-321278" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="321278"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #15"></div>
  </section>
</div>
    <div class="postbit" id="322416" data-post-id="322416">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="jeffdaley" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/jeffdaley/120/34161_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  jeffdaley
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Hey y’all. I’m not an Elixer dev but I came across this thread while searching for drag-and-drop libraries.</p>
<p><a href="https://atlassian.design/components/pragmatic-drag-and-drop/about" rel="noopener nofollow ugc">Pragmatic Drag and Drop</a> by Atlassian is worth a look. It’s a low-level library so you might have to do more setup than, e.g., Dragula, but the documentation is extensive.</p>
<p>Cheers!</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="322416" data-batch-url="/posts/batch_likers">
                        2
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/whats-a-great-modern-drag-and-drop-javascript-library-you-recommend/60806/17">Post #16</a>
	                </div>
	            </div>
              <div id="likers-container-322416" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="322416"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #16"></div>
  </section>
</div>
    <div class="postbit" id="322417" data-post-id="322417">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="dimitarvp" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/dimitarvp/120/38664_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  dimitarvp
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="jeffdaley" data-post="17" data-topic="60806">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/jeffdaley/48/34161_2.png" class="avatar"> jeffdaley:</div>
<blockquote>
<p>I’m not an Elixer dev</p>
</blockquote>
</aside>
<p>Elixir**</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="322417" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/whats-a-great-modern-drag-and-drop-javascript-library-you-recommend/60806/18">Post #17</a>
	                </div>
	            </div>
              <div id="likers-container-322417" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="322417"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #17"></div>
  </section>
</div>
    <div class="postbit" id="322467" data-post-id="322467">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="_jonas" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/_jonas/120/34169_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  _jonas
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>This one looks interesting.<br>
I’m still looking for something like react-beautiful-dnd (also from Atlassian), but not tied to React.<br>
It seems that Pragmatic DnD also uses the web platform’s drag and drop API instead of controlling the dragged items movement which I guess is more performant but it somehow just feels less “smooth”.</p>
<p>There is nothing I’ve seen that feels as pleasant to use (to me) as the standard react-beautifu-dnd example here:</p><aside class="onebox allowlistedgeneric" data-onebox-src="https://react-beautiful-dnd.netlify.app/iframe.html?id=board--simple">
  <header class="source">

      <a href="https://react-beautiful-dnd.netlify.app/iframe.html?id=board--simple" target="_blank" rel="noopener nofollow ugc">react-beautiful-dnd.netlify.app</a>
  </header>

  <article class="onebox-body">
    

<h3><a href="https://react-beautiful-dnd.netlify.app/iframe.html?id=board--simple" target="_blank" rel="noopener nofollow ugc">Storybook</a></h3>



  </article>

  <div class="onebox-metadata">
    
    
  </div>

  <div style="clear: both"></div>
</aside>
 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="322467" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/whats-a-great-modern-drag-and-drop-javascript-library-you-recommend/60806/19">Post #18</a>
	                </div>
	            </div>
              <div id="likers-container-322467" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="322467"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #18"></div>
  </section>
</div>
    <div class="postbit" id="322541" data-post-id="322541">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="slouchpie" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/slouchpie/120/34819_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  slouchpie
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I was looking at Muuri today and trying to get the Kanban example working. <a href="https://docs.muuri.dev/examples.html" class="inline-onebox" rel="noopener nofollow ugc">Examples | Muuri Docs</a> It took me some time to turn the CSS into tailwind and break the HTML into small functions so I am pasting what I did here. Hopefully it helps somebody else get started with Muuri + Phoenix.</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">defmodule MyAppWeb.MuuriLive.Kanban do
  @moduledoc false
  use MyAppWeb, :html

  def kanban(assigns) do
    ~H"""
    &lt;div id="muuri-kanban-demo" phx-hook="KanbanHook"&gt;
      &lt;div class={["drag-container", "fixed top-0 left-0", "z-[1000]"]}&gt;&lt;/div&gt;
      &lt;div class={["board", "relative"]}&gt;
        &lt;.board_column header="Todo" indexes={1..5} /&gt;
        &lt;.board_column header="Working" indexes={6..10} /&gt;
        &lt;.board_column header="Done" indexes={11..15} /&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    """
  end

  attr :header, :string
  attr :indexes, :integer

  defp board_column(assigns) do
    ~H"""
    &lt;div class={[
      "board-column done",
      "absolute top-0 left-0",
      "py-0 px-[10px]",
      "w-1/3",
      "z-[1] muuri-item-releasing:z-[2] muuri-item-dragging:z-[3] muuri-item-dragging:cursor-move"
    ]}&gt;
      &lt;div class={[
        "board-column-container",
        "w-full h-full"
      ]}&gt;
        &lt;div class={[
          "board-column-header",
          "relative",
          "h-[50px] leading-[50px]",
          "overflow-hidden",
          "py-0 px-[20px]",
          "text-center",
          "bg-green-500",
          "text-white",
          "rounded-sm",
          "font-bold",
          "tracking-[0.5px]",
          "uppercase"
        ]}&gt;
          &lt;%= @header %&gt;
        &lt;/div&gt;
        &lt;div class={[
          "board-column-content-wrapper",
          "relative",
          "p-[8px]",
          "bg-blue-700",
          "h-screen",
          "overflow-y-auto",
          "rounded-sm"
        ]}&gt;
          &lt;div class={["board-column-content", "relative min-h-full"]}&gt;
            &lt;.board_item :for={index &lt;- @indexes} index={index} /&gt;
          &lt;/div&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    """
  end

  attr :index, :integer

  defp board_item(assigns) do
    ~H"""
    &lt;div class={[
      "board-item",
      "absolute w-full m-[8px]",
      "muuri-item-releasing:z-[9998] muuri-item-dragging:z-[9999]",
      "muuri-item-dragging:cursor-move",
      "muuri-item-hidden:z-[0]"
    ]}&gt;
      &lt;div class={[
        "board-item-content",
        "relative p-[20px]",
        "bg-white",
        "rounded-[4px]",
        "text-[17px]",
        "cursor-pointer"
      ]}&gt;
        &lt;span&gt;Item #&lt;/span&gt;&lt;%= @index %&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    """
  end
end
</code></pre>
<p>and the hook</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">import Muuri from "../../vendor/muuri";

const KanbanHook = {
  mounted() {
    var dragContainer = document.querySelector(".drag-container");
    var itemContainers = [].slice.call(
      document.querySelectorAll(".board-column-content"),
    );
    var columnGrids = [];
    var boardGrid;

    // Init the column grids so we can drag those items around.
    itemContainers.forEach(function (container) {
      var grid = new Muuri(container, {
        items: ".board-item",
        dragEnabled: true,
        dragSort: function () {
          return columnGrids;
        },
        dragContainer: dragContainer,
        dragAutoScroll: {
          targets: (item) =&gt; {
            return [
              { element: window, priority: 0 },
              { element: item.getGrid().getElement().parentNode, priority: 1 },
            ];
          },
        },
      })
        .on("dragInit", function (item) {
          item.getElement().style.width = item.getWidth() + "px";
          item.getElement().style.height = item.getHeight() + "px";
        })
        .on("dragReleaseEnd", function (item) {
          item.getElement().style.width = "";
          item.getElement().style.height = "";
          item.getGrid().refreshItems([item]);
        })
        .on("layoutStart", function () {
          boardGrid.refreshItems().layout();
        });

      columnGrids.push(grid);
    });

    // Init board grid so we can drag those columns around.
    boardGrid = new Muuri(".board", {
      dragEnabled: true,
      dragHandle: ".board-column-header",
    });
  },
};
export { KanbanHook };
</code></pre>
<p>I will be changing the JS to use <code>this.el</code>. For now, it is identical to the JS given in their example.</p>
<p>It works nice. It “feels” better than sortable, which was my go-to for drag-n-drop</p>
<pre data-code-wrap="elixir"><code class="lang-elixir"></code></pre>
<p>The tailwind modifiers I added like this:</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">    plugin(({ addVariant }) =&gt; addVariant("muuri", [".muuri&amp;", ".muuri &amp;"])),
    plugin(({ addVariant }) =&gt; addVariant("muuri", [".muuri&amp;", ".muuri &amp;"])),
    plugin(({ addVariant }) =&gt;
      addVariant("muuri-item", [".muuri-item&amp;", ".muuri-item &amp;"]),
    ),
    plugin(({ addVariant }) =&gt;
      addVariant("muuri-item-shown", [
        ".muuri-item-shown&amp;",
        ".muuri-item-shown &amp;",
      ]),
    ),
    plugin(({ addVariant }) =&gt;
      addVariant("muuri-item-hidden", [
        ".muuri-item-hidden&amp;",
        ".muuri-item-hidden &amp;",
      ]),
    ),
    plugin(({ addVariant }) =&gt;
      addVariant("muuri-item-positioning", [
        ".muuri-item-positioning&amp;",
        ".muuri-item-positioning &amp;",
      ]),
    ),
    plugin(({ addVariant }) =&gt;
      addVariant("muuri-item-dragging", [
        ".muuri-item-dragging&amp;",
        ".muuri-item-dragging &amp;",
      ]),
    ),
    plugin(({ addVariant }) =&gt;
      addVariant("muuri-item-releasing", [
        ".muuri-item-releasing&amp;",
        ".muuri-item-releasing &amp;",
      ]),
    ),
    plugin(({ addVariant }) =&gt;
      addVariant("muuri-item-placeholder", [
        ".muuri-item-placeholder&amp;",
        ".muuri-item-placeholder &amp;",
      ]),
    ),

</code></pre>
<p>in tailwind config js.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="322541" data-batch-url="/posts/batch_likers">
                        7
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/whats-a-great-modern-drag-and-drop-javascript-library-you-recommend/60806/20">Post #19</a>
	                </div>
	            </div>
              <div id="likers-container-322541" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="322541"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #19"></div>
  </section>
</div>
    <div class="postbit" id="322550" data-post-id="322550">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="cmo" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/cmo/120/19618_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  cmo
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Looking at muuri I noticed the author was/is writing a new set of libraries, one of which is <a href="https://github.com/niklasramo/dragdoll" class="inline-onebox" rel="noopener nofollow ugc">GitHub - niklasramo/dragdoll: Modular and extensible drag and drop system. · GitHub</a>.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="322550" data-batch-url="/posts/batch_likers">
                        7
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/whats-a-great-modern-drag-and-drop-javascript-library-you-recommend/60806/21">Post #20</a>
	                </div>
	            </div>
              <div id="likers-container-322550" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="322550"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #20"></div>
  </section>
</div>
</template></turbo-stream><turbo-stream action="replace" target="load-more-container"><template><div id="load-more-container" class="load-more-container">
    <a class="load-more-button" data-turbo-stream="true" href="/topics/60806/load_more?page=3">Load more posts (5 remaining)</a>
</div></template></turbo-stream>