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


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="Sebb" data-post="41" data-topic="60395">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/sebb/48/21818_2.png" class="avatar"> Sebb:</div>
<blockquote>
<p>I understand that this will be killed by LV.<br>
But what about state held in a variable inside the component?</p>
</blockquote>
</aside>
<p>What does the <strong>component</strong> here refer to? If you mean a web component, as long as the old element is not being replaced or deleted, the states associated to that element will be preserved.</p>
<p>And for the previous counter example, the actual DOM change should be just deleting the <code>data-count</code> attribute according to how morphdom works. So if it’s a custom element, the states stored inside it should just be fine.</p>
<aside class="quote no-group" data-username="Sebb" data-post="41" data-topic="60395">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/sebb/48/21818_2.png" class="avatar"> Sebb:</div>
<blockquote>
<p>So it should be possible to create LV-aware-web-components that store their internal state just like that (“sticky”)…?</p>
</blockquote>
</aside>
<p>Yeah, but interacting with the private attributes directly is a bit too hacky. So what I usually do is just execute JS Command from JavaScript.</p>
<aside class="quote no-group" data-username="Sebb" data-post="41" data-topic="60395">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/sebb/48/21818_2.png" class="avatar"> Sebb:</div>
<blockquote>
<p>Are 100% sure? If I remember correctly if a parent creates a context all childs can use it</p>
</blockquote>
</aside>
<p>Did some quick research to find out that Solid somewhat is different. <img src="https://forum.elixirforum.com/images/emoji/apple/thinking.png?v=15" title=":thinking:" class="emoji" alt=":thinking:" loading="lazy" width="20" height="20"> Solid Context actually seems to work across different web components and it is indeed can be achieved due to how Solid Signal works. Here’s an example I found: <a href="https://playground.solidjs.com/anonymous/55d0ff7b-114d-45d2-a793-d9791f500bef" rel="noopener nofollow ugc">https://playground.solidjs.com/anonymous/55d0ff7b-114d-45d2-a793-d9791f500bef</a> . Good to know that!</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="314050" 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/adobe-spectrum-2-web-components-with-liveview/60395/42">Post #41</a>
	                </div>
	            </div>
              <div id="likers-container-314050" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="314050"
                     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 #41"></div>
  </section>
</div>
    <div class="postbit" id="314053" data-post-id="314053">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I’m also hoping that the web standard could evolve for the better!</p>
<p>Adopted Stylesheet is interesting to explore, there’s already attempts to integrate it with tailwindcss-like libs: <a href="https://gourav.io/blog/tailwind-in-shadow-dom" class="inline-onebox" rel="noopener nofollow ugc">Add Tailwind styles to shadow DOM</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="314053" 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/adobe-spectrum-2-web-components-with-liveview/60395/43">Post #42</a>
	                </div>
	            </div>
              <div id="likers-container-314053" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="314053"
                     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 #42"></div>
  </section>
</div>
    <div class="postbit" id="314060" data-post-id="314060">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="TunkShif" data-post="42" data-topic="60395">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/tunkshif/48/24198_2.png" class="avatar"> TunkShif:</div>
<blockquote>
<p>due to how Solid Signal works</p>
</blockquote>
</aside>
<p>right, and that’s why I think this could also be possible in svelte 5, as that will be a completely new framework under the hood based on signals.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="314060" 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/adobe-spectrum-2-web-components-with-liveview/60395/44">Post #43</a>
	                </div>
	            </div>
              <div id="likers-container-314060" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="314060"
                     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 #43"></div>
  </section>
</div>
    <div class="postbit" id="314087" data-post-id="314087">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="adw632" src="/assets/icons/user-9f439610.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  adw632
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p><a class="mention" href="/u/tunkshif" rel="nofollow">@TunkShif</a> your post is very relevant and I have been on this journey too. Svelte 5 is in preview and I expect that it will solve the shared state aspects of web components.</p>
<p>In terms of styling, I have not had any issues styling carbon, <strong>none</strong>. It uses sass based styles so I have been able to customise all of the theme tokens and override styles on component parts very easily and implement dynamic theme switching for light and dark mode.</p>
<p>I am not a fan of using Tailwind classes on elements as it leads to hard coding style in the code. It may be fine for one off web sites but I want a theme based approach for apps.</p>
<p>Tailwind also rubs against web standards and shadow DOM parts as there is no shadow DOM parts in your markup to hang utility tags on. Sure you can use <span class="mention">@apply</span> in CSS but then it’s easier to just write the CSS you want.</p>
<p>Tailwind is the current trend and will like all things fade into “bad idea, what drugs were we all on?” Perhaps in a year or two when the next Kool Kid like <a href="https://unocss.dev/" rel="noopener nofollow ugc">UnoCSS</a> catches on.</p>
<p>I will say Shoelace is a non starter from accessibility point of view because it has always been in a state of “I don’t know, will try harder” by the maintainer when it comes to accessibility. Then the maintainer objects to including navigation components like a navbar!  The UI shell <em>is</em> a critical concern of accessibility, so in the final analysis <strong>Shoelace is a non solution</strong> to basic application requirements.  Adobe Spectrum V1 turns out to have a similar dilemma with no app shell navigation components. The hope here is for Spectrum 2 to deliver the goods.</p>
<p>That basically leaves Carbon as about the only viable accessibility focused web component library. Take a moment to read the depth of the concern just for the <a href="https://carbondesignsystem.com/components/UI-shell-header/usage/" rel="noopener nofollow ugc">UI shell navigation</a>. Check the Usage, Style and Accessibility sections on that page.</p>
<p>Some may think accessibility is nice to have. The reality is that it is table stakes for procurement in government systems and countries that have disability discrimination regulations. So without competent a11y, no one can purchase your software or solution, and yes they do have teams dedicated to evaluating conformance.</p>
<aside class="quote no-group" data-username="TunkShif" data-post="36" data-topic="60395">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/tunkshif/48/24198_2.png" class="avatar"> TunkShif:</div>
<blockquote>
<p>But once we’re managing DOM states from the client side, it finally falls into fighting with synchronizing client-side states with LiveView DOM patch.</p>
</blockquote>
</aside>
<p>LiveSvelte does deal with this, but it’s not much of a “fight”, still it is a concern that needs due consideration.</p>
<p>However Chris McCord confirmed the segregation with Shadow DOM not needing <code>phx-update="ignore"</code> in this thread:</p>
<aside class="quote group-Phoenix-Core-Team" data-username="chrismccord" data-post="17" data-topic="60395">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/chrismccord/48/24233_2.png" class="avatar"> chrismccord:</div>
<blockquote>
<p>WC can get more complex when shadowdom comes into play, but then it’s also a nice segregation from LV DOM patching so you can get around the phx-update=ignore steps. Having this available in a LV collocated/same file way would be great, but what roadblocks exist for you where WC + LV is not “easy to use” ?</p>
</blockquote>
</aside>
<p>A component that doesn’t use the shadow DOM will get fouled up on liveview updates.</p>
<p>Of course there could be cases where the entire element is replaced due some parent/ancestor mutation, then sure you will lose the UI state, so its probably a good idea to ensure elements have unique IDs to minimise replacement. Live Elements does this <a href="https://github.com/launchscout/live_elements/blob/b03c0bab32d68abbd1676ca47adc94eb913695e4/lib/live_elements/custom_elements_helpers.ex#L105" rel="noopener nofollow ugc">here</a>.</p>
<p>Given that custom elements and web components are W3C standards I think it is important to identify precisely where LiveView trips up and address these issues head on. I have no doubt I will hit some edge cases that may require some workarounds.</p>
<p>This is why I am conducting a series of experiments to understand the limitations and what the solutions are and the general feasibility. My view is that Phoenix  must work ultimately well with web components to remain viable long term, so any hiccups or shortcomings will necessarily have to be addressed.</p>
<p>I do know from my own experiments that LiveSvelte has full reactivity with a very simple hook so that both client and server reactivity worked harmoniously together. There were some other <a href="https://github.com/woutdp/live_svelte/issues/101" rel="noopener nofollow ugc">issues I discovered</a> with that solution, which is why I am not using it currently.</p>
<p>Once I have completed my experiments I will post some starter projects and guides for others to follow and clearly document any caveats, workarounds or show stoppers that I have identified.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="314087" 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/adobe-spectrum-2-web-components-with-liveview/60395/45">Post #44</a>
	                </div>
	            </div>
              <div id="likers-container-314087" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="314087"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-most-liked cat-most-liked" title="One of the top 3 liked posts in this thread!"></div>
  </section>
</div>
    <div class="postbit" id="315494" data-post-id="315494">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>How are you doing with web components? Did you decided to use Carbon or did you find something better? Did you look into HTMX with Phoenix?</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="315494" 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/adobe-spectrum-2-web-components-with-liveview/60395/46">Post #45</a>
	                </div>
	            </div>
              <div id="likers-container-315494" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="315494"
                     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 #45"></div>
  </section>
</div>
    <div class="postbit" id="325410" data-post-id="325410">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group quote-modified" data-username="TunkShif" data-post="42" data-topic="60395">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/tunkshif/48/24198_2.png" class="avatar"> TunkShif:</div>
<blockquote>
<p>Did some quick research to find out that Solid somewhat is different. <img src="https://forum.elixirforum.com/images/emoji/apple/thinking.png?v=15" title=":thinking:" class="emoji" alt=":thinking:" loading="lazy" width="20" height="20"> Solid Context actually seems to work across different web components and it is indeed can be achieved due to how Solid Signal works. Here’s an example I found: <a href="https://playground.solidjs.com/anonymous/55d0ff7b-114d-45d2-a793-d9791f500bef" rel="noopener nofollow ugc">Solid Playground </a> . Good to know that!</p>
</blockquote>
</aside>
<p>So I finally came to the conclusion, that it is not feasible to use (most) webcomponents in LV right now. Its too hacky. If I find the time I’ll write my findings down.</p>
<p>But it is possible to write LV-aware WCs, so I had a look at Solid again and can confirm that sharing context across WCs also works directly in the browser, so no JSX needed.</p>
<p>context-provider.jsx</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">import { customElement } from 'solid-element'
import { createContext  } from 'solid-js'

export const TheContext = createContext('default')

customElement('x-a', { foo: 'default foo prop' }, (props, { element }) =&gt; {
    console.log(element, props)
    return (
        &lt;fieldset&gt;
            &lt;legend&gt;A&lt;/legend&gt;
            &lt;TheContext.Provider value={props.foo}&gt;
                {props.children}
                &lt;slot&gt;&lt;/slot&gt;
            &lt;/TheContext.Provider&gt;
        &lt;/fieldset&gt;
    )
})
</code></pre>
<p>context-user.jsx</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">import { customElement } from 'solid-element'
import { useContext } from 'solid-js'
import { TheContext } from './my-context-provider'

customElement('x-b', () =&gt; {
    const ctx = useContext(TheContext)
    console.log("ctx:", ctx)
    return (
        &lt;fieldset&gt;
            &lt;legend&gt;B&lt;/legend&gt;
            {ctx}
        &lt;/fieldset&gt;
    )
})
</code></pre>
<pre data-code-wrap="elixir"><code class="lang-elixir">&lt;!DOCTYPE html&gt;
&lt;head&gt;
    &lt;script type="module" src="./dist/myContextUser.es.js"&gt;&lt;/script&gt;
    &lt;script type="module" src="./dist/myContextProvider.es.js"&gt;&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
     &lt;my-context-provider&gt;
        &lt;my-context-user&gt;&lt;/my-context-user&gt;
    &lt;/my-context-provider&gt;
    &lt;my-context-provider foo="Foo"&gt;
        &lt;my-context-user&gt;&lt;/my-context-user&gt;
    &lt;/my-context-provider&gt;
&lt;/body&gt;
&lt;/html&gt;
</code></pre>
<p></p><div class="lightbox-wrapper"><a class="lightbox" href="https://forum.elixirforum.com/uploads/default/original/3X/b/0/b01268610bcfdc535d78ac7f38d543a19384411a.png" data-download-href="https://forum.elixirforum.com/uploads/default/b01268610bcfdc535d78ac7f38d543a19384411a" title="image" rel="nofollow"><img src="https://forum.elixirforum.com/uploads/default/original/3X/b/0/b01268610bcfdc535d78ac7f38d543a19384411a.png" alt="image" data-base62-sha1="p7BtkU8yzuaHQSCTPay5PBZ1Kgq" width="448" height="378"><div class="meta"><svg class="fa d-icon d-icon-far-image svg-icon" aria-hidden="true"><use href="#far-image"></use></svg><span class="filename">image</span><span class="informations">448×378 3.94 KB</span><svg class="fa d-icon d-icon-discourse-expand svg-icon" aria-hidden="true"><use href="#discourse-expand"></use></svg></div></a></div><p></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="325410" data-batch-url="/posts/batch_likers">
                        3
                      </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/adobe-spectrum-2-web-components-with-liveview/60395/47">Post #46</a>
	                </div>
	            </div>
              <div id="likers-container-325410" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="325410"
                     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 #46"></div>
  </section>
</div>
    <div class="postbit" id="338029" data-post-id="338029">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I’m also considering using the Adobe Spectrum WC lib.</p>
<p>You said that you dismissed it because of the missing “shell”.</p>
<p>To me the <a href="https://spectrum.adobe.com/page/headers/%5D" rel="noopener nofollow ugc">headers</a> and <a href="https://opensource.adobe.com/spectrum-web-components/components/sidenav/" rel="noopener nofollow ugc">sidenav</a> is all you’ll need to make something similar to the <a href="https://carbondesignsystem.com/components/UI-shell-header/usage/" rel="noopener nofollow ugc">IBM shell</a>.</p>
<p>Am I missing something?</p>
<p>Also, how is it going so far?</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="338029" 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/adobe-spectrum-2-web-components-with-liveview/60395/48">Post #47</a>
	                </div>
	            </div>
              <div id="likers-container-338029" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="338029"
                     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 #47"></div>
  </section>
</div>
    <div class="postbit" id="340708" data-post-id="340708">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Why LV generate html? Is it not enough that just generating backend state and sync client? Then let front framework reactive these states.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="340708" 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/adobe-spectrum-2-web-components-with-liveview/60395/49">Post #48</a>
	                </div>
	            </div>
              <div id="likers-container-340708" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="340708"
                     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 #48"></div>
  </section>
</div>
    <div class="postbit" id="340772" data-post-id="340772">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p><a class="mention" href="/u/superchris" rel="nofollow">@superchris</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="340772" 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/adobe-spectrum-2-web-components-with-liveview/60395/50">Post #49</a>
	                </div>
	            </div>
              <div id="likers-container-340772" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="340772"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-last-post cat-last-post" title="Last post!"></div>
  </section>
</div>
</template></turbo-stream><turbo-stream action="replace" target="load-more-container"><template><div id="load-more-container" class="load-more-container">
    <span class="all-loaded">— All posts loaded —</span>
</div></template></turbo-stream>