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


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="grych" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/grych/120/5610_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  grych
                    <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 class="user-title">
									<span>Creator of Drab</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="afulki" data-post="91" data-topic="3277" data-full="true">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/afulki/48/4586_2.png" class="avatar"> afulki:</div>
<blockquote>
<p>I installed the library, looks interesting, I want to use it but am tied to Materialize rather than Bootstrap, will it work without bootstrap?</p>
</blockquote>
</aside>
<p>Yes. You won’t be able to use only Drab.Modal, which depends on bootstrap+jquery</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="35679" 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/drab-remote-controlled-frontend-framework-for-phoenix/3277/92">Post #91</a>
	                </div>
	            </div>
              <div id="likers-container-35679" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="35679"
                     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 #91"></div>
  </section>
</div>
    <div class="postbit" id="35681" data-post-id="35681">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Thank you!  Don’t suppose you know how to fix the issue with</p>

  $(document).ready(function() {
    $('.chips-autocomplete').material_chip({

getting a Uncaught ReferenceError: $ is not defined, error (this only started after I modified my config to use the npm setting in the brunch config) 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="35681" 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/drab-remote-controlled-frontend-framework-for-phoenix/3277/93">Post #92</a>
	                </div>
	            </div>
              <div id="likers-container-35681" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="35681"
                     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 #92"></div>
  </section>
</div>
    <div class="postbit" id="35684" data-post-id="35684">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="grych" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/grych/120/5610_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  grych
                    <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 class="user-title">
									<span>Creator of Drab</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="afulki" data-post="93" data-topic="3277">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/afulki/48/4586_2.png" class="avatar"> afulki:</div>
<blockquote>
<p>Uncaught ReferenceError: $ is not defined</p>
</blockquote>
</aside>
<p>I am not very familiar with Material, but it looks like you don’t have jQuery defined as a global. You can set it up in the brunch config like:</p>
<pre><code>"dependencies": {
  "jquery": "&gt;= 3.1.1",...

npm: {globals: {
  $: 'jquery',...
</code></pre> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="35684" 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/drab-remote-controlled-frontend-framework-for-phoenix/3277/94">Post #93</a>
	                </div>
	            </div>
              <div id="likers-container-35684" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="35684"
                     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 #93"></div>
  </section>
</div>
    <div class="postbit" id="35688" data-post-id="35688">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I do (did) have npm set up as you directed in the git readme, but wasn’t able to get it to work, will fork my code and  transition over to bootstrap, see how i like it <img src="https://forum.elixirforum.com/images/emoji/apple/slight_smile.png?v=15" title=":slight_smile:" class="emoji" alt=":slight_smile:" loading="lazy" width="20" height="20"></p>
<p>Thanks for the help</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="35688" 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/drab-remote-controlled-frontend-framework-for-phoenix/3277/95">Post #94</a>
	                </div>
	            </div>
              <div id="likers-container-35688" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="35688"
                     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 #94"></div>
  </section>
</div>
    <div class="postbit" id="36510" data-post-id="36510">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="grych" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/grych/120/5610_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  grych
                    <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 class="user-title">
									<span>Creator of Drab</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Hi all,<br>
<code>Drab.Live</code> update: attributes goes live!</p>
<pre><code>&lt;a href="&lt;%= @href %&gt;" class="&lt;%= @classes %&gt;"&gt;&lt;%= @link %&gt;&lt;/a&gt;
</code></pre>
<p>Now, you may update any of this assigns in the Commander to immediate update it on the page</p>
<pre><code>def button_clicked(socket, _sender) do
  classes = peek(socket, :classes) &lt;&gt; " red-big-button"
  poke socket, href: "https://tg.pl/drab", classes: classes
end
</code></pre>
<h3><a name="p-36510-demo-1" class="anchor" href="#p-36510-demo-1" aria-label="Heading link" rel="nofollow"></a>Demo</h3>
<p>I’ve made a small <a href="https://tg.pl/drab/live#attributes" rel="noopener nofollow ugc">demo here</a>. You may type down a Bootstrap class to observe how it changes, live.</p>
<h3><a name="p-36510-how-does-it-work-2" class="anchor" href="#p-36510-how-does-it-work-2" aria-label="Heading link" rel="nofollow"></a>How Does it Work</h3>
<p>Drab actually updates the attribute. It does not re-render or replace the tag, so if you’ve done any updates with JS, it would be kept. But, who needs JS when you have Drab? <img src="https://forum.elixirforum.com/images/emoji/apple/slight_smile.png?v=15" title=":slight_smile:" class="emoji" alt=":slight_smile:" loading="lazy" width="20" height="20"></p>
<h3><a name="p-36510-limitations-3" class="anchor" href="#p-36510-limitations-3" aria-label="Heading link" rel="nofollow"></a>Limitations</h3>
<p>It works only with named attributes. So constructions like:</p>
<pre><code>&lt;tag &lt;%= attr %&gt;&gt;
</code></pre>
<p>are prohibited. For now, such code does not compile as a Drab Template (but will show a friendly messages during compile time). I still how no idea how I could handle it, so I will leave it as it is. Do you think it is worth to make an effort to make it work?</p>
<h3><a name="p-36510-story-4" class="anchor" href="#p-36510-story-4" aria-label="Heading link" rel="nofollow"></a>Story</h3>
<p>Again, the goal is to find the best, Phoenix-like API to update the page on the fly. I believe this is a good way to do it, as you need only minimal (or none) changes to your Phoenix templates to go live with Drab.</p>
<h3><a name="p-36510-todo-5" class="anchor" href="#p-36510-todo-5" aria-label="Heading link" rel="nofollow"></a>TODO</h3>
<ul>
<li>work on partials, propagate poke changes only into selected partials</li>
<li>have a values of the  fields directly in the Commander Event Handler Function</li>
<li>a handy way to update the url bar</li>
</ul> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="36510" 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/drab-remote-controlled-frontend-framework-for-phoenix/3277/96">Post #95</a>
	                </div>
	            </div>
              <div id="likers-container-36510" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="36510"
                     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 #95"></div>
  </section>
</div>
    <div class="postbit" id="36544" data-post-id="36544">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Whoo looks awesome!  <img src="https://forum.elixirforum.com/images/emoji/apple/slight_smile.png?v=15" title=":slight_smile:" class="emoji" alt=":slight_smile:" loading="lazy" width="20" height="20"></p>
<aside class="quote no-group" data-username="grych" data-post="96" data-topic="3277">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/grych/48/5610_2.png" class="avatar"> grych:</div>
<blockquote>
<p>Limitations</p>
<p>It works only with named attributes. So constructions like:</p>
<p>&lt;tag &lt;%= attr %&gt;&gt;</p>
<p>are prohibited. For now, such code does not compile as a Drab Template (but will show a friendly messages during compile time). I still how no idea how I could handle it, so I will leave it as it is. Do you think it is worth to make an effort to make it work?</p>
</blockquote>
</aside>
<p>Hmm, there are cases, but maybe signifying it via a delimiter of some form?  Like Polymer does <code>blah="{{variable}}"</code> to set the <em>property</em> on the element named <code>blah</code> to the contents of <code>variable</code>, and it uses <code>blah$="{{variable}}" to set the *attribute*.  A difference is if it is explicitly </code>false<code>then it removes the attribute entirely, if it is non-false then it sets the attribute to that value with the special case of if that value is</code>true<code>(not the string</code>"true"<code>but the boolean</code>true<code>then it just sets it as a true attribute (think the</code>required` attribute on input boxes).  You <em>have</em> to have some way to differentiate between property and attribute setting as they can do very <em>very</em> different things depending on the DOM node being updated.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="36544" 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/drab-remote-controlled-frontend-framework-for-phoenix/3277/97">Post #96</a>
	                </div>
	            </div>
              <div id="likers-container-36544" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="36544"
                     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 #96"></div>
  </section>
</div>
    <div class="postbit" id="36593" data-post-id="36593">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="grych" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/grych/120/5610_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  grych
                    <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 class="user-title">
									<span>Creator of Drab</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="OvermindDL1" data-post="97" data-topic="3277">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/overminddl1/48/2677_2.png" class="avatar"> OvermindDL1:</div>
<blockquote>
<p>You have to have some way to differentiate between property and attribute setting as they can do very very different things depending on the DOM node being updated.</p>
</blockquote>
</aside>
<p>True. I would like to be compatible with “normal” Phoenix tempate, so I would rather do <code>foo=&lt;%=@bar%&gt;</code> for attribute and <code>foo$=&lt;%=@bar%&gt;</code> for the property.</p>
<p>So far I’ve found the following ways to deal with nodes:</p>
<h4><a name="p-36593-helper-functions-and-changeset-1" class="anchor" href="#p-36593-helper-functions-and-changeset-1" aria-label="Heading link" rel="nofollow"></a>Helper functions and changeset</h4>
<p>Something like below, query for the selector, do a changes on the specific node(s) and push the modified node:</p>
<pre><code>node = query(socket, "#selector")
node = set_property(node, "property", false)
node = set_attribute(node, "other", "blah")
push socket, node
</code></pre>
<h4><a name="p-36593-bound-property-to-assign-in-js-2" class="anchor" href="#p-36593-bound-property-to-assign-in-js-2" aria-label="Heading link" rel="nofollow"></a>Bound property to assign in JS</h4>
<pre><code>&lt;script&gt;
  node.some_property = &lt;%= @assign %&gt;
&lt;/script&gt;
</code></pre>
<p>Each time the <code>@assign</code> is poked from the Commander, script is re-evaluated. This must be done anyway, for other cases.</p>
<h4><a name="p-36593-template-polymer-styla-3" class="anchor" href="#p-36593-template-polymer-styla-3" aria-label="Heading link" rel="nofollow"></a>Template (Polymer styla)</h4>
<pre><code>&lt;tag attribute=&lt;%= @attribute %&gt; property$=&lt;%= @property %&gt;&gt;
</code></pre>
<p>This would bound the the property with the assign.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="36593" 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/drab-remote-controlled-frontend-framework-for-phoenix/3277/98">Post #97</a>
	                </div>
	            </div>
              <div id="likers-container-36593" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="36593"
                     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 #97"></div>
  </section>
</div>
    <div class="postbit" id="36670" data-post-id="36670">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="grych" data-post="98" data-topic="3277">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/grych/48/5610_2.png" class="avatar"> grych:</div>
<blockquote>
<p>True. I would like to be compatible with “normal” Phoenix tempate, so I would rather do foo=&lt;%=<span class="mention">@bar</span>%&gt; for attribute and foo$=&lt;%=<span class="mention">@bar</span>%&gt; for the property.</p>
</blockquote>
</aside>
<p>Hear hear, as long as can still be used within templates too.  <img src="https://forum.elixirforum.com/images/emoji/apple/slight_smile.png?v=15" title=":slight_smile:" class="emoji" alt=":slight_smile:" loading="lazy" width="20" height="20"></p>
<aside class="quote no-group" data-username="grych" data-post="98" data-topic="3277">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/grych/48/5610_2.png" class="avatar"> grych:</div>
<blockquote>
<p>&lt;tag attribute=&lt;%= <span class="mention">@attribute</span> %&gt; property$=&lt;%= <span class="mention">@property</span> %&gt;&gt;</p>
</blockquote>
</aside>
<p>That is backwards from Polymer and other template libraries where <code>$</code> is used for attributes and without <code>$</code> is used for properties (properties are a <em>lot</em> more used than attributes).  <img src="https://forum.elixirforum.com/images/emoji/apple/slight_smile.png?v=15" title=":slight_smile:" class="emoji" alt=":slight_smile:" loading="lazy" width="20" height="20"></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="36670" 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/drab-remote-controlled-frontend-framework-for-phoenix/3277/99">Post #98</a>
	                </div>
	            </div>
              <div id="likers-container-36670" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="36670"
                     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 #98"></div>
  </section>
</div>
    <div class="postbit" id="37637" data-post-id="37637">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>This idea is great and please keep up the momentum!</p>
<p>Looking through this and firing up the demo I was wondering what the security implications of this are?</p>
<aside class="quote no-group" data-username="grych" data-post="90" data-topic="3277">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/grych/48/5610_2.png" class="avatar"> grych:</div>
<blockquote>
<p>I’d like to create something which is intuitive to Phoenix programmer. Less API, more Magic</p>
</blockquote>
</aside>
<p>While magic can be great ,it can be a problem for folks learning/reading the library when there is too much magic (perl, rails)…  Please make the magic optional and try to document it if possible.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="37637" 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/drab-remote-controlled-frontend-framework-for-phoenix/3277/100">Post #99</a>
	                </div>
	            </div>
              <div id="likers-container-37637" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="37637"
                     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 #99"></div>
  </section>
</div>
    <div class="postbit" id="37656" data-post-id="37656">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="jschoch" data-post="100" data-topic="3277">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/jschoch/48/16709_2.png" class="avatar"> jschoch:</div>
<blockquote>
<p>Please make the magic optional and try to document it if possible.</p>
</blockquote>
</aside>
<p>Drab is made in such a way that everything is compartmentalized.  I’m not even using any of it’s main accessors right now as I’ve built’ish my own to work with the Unpoly.js library.  <img src="https://forum.elixirforum.com/images/emoji/apple/slight_smile.png?v=15" title=":slight_smile:" class="emoji" alt=":slight_smile:" loading="lazy" width="20" height="20"></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="37656" 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/drab-remote-controlled-frontend-framework-for-phoenix/3277/101">Post #100</a>
	                </div>
	            </div>
              <div id="likers-container-37656" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="37656"
                     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 #100"></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/3277/load_more?page=11">Load more posts (388 remaining)</a>
</div></template></turbo-stream>