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


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="garrison" src="/assets/icons/user-9f439610.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  garrison
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="Eiji" data-post="20" data-topic="72408">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/eiji/48/36743_2.png" class="avatar"> Eiji:</div>
<blockquote>
<p>Overuse of a single attribute makes markup terribly long, hard to read and maintain</p>
</blockquote>
</aside>
<p>You are preaching to the choir. Even the most diehard tailwind adherents are fully aware that the class syntax is disgusting. The Tailwind marketing page literally used to open with “if you can suppress the urge to retch for long enough…”.</p>
<p>For many, the benefits outweigh the drawbacks. It is completely unproductive to beat this dead horse any further. The path forward is “post a better solution or gtfo”. I have already argued in favor of mine (scoped styles), and I welcome others to do the same.</p>
<aside class="quote no-group" data-username="Eiji" data-post="20" data-topic="72408">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/eiji/48/36743_2.png" class="avatar"> Eiji:</div>
<blockquote>
<p>Algorithms have often a problem with context, so even if you write <code>Tailwind p</code> then you may not found the expected result in your personalised search</p>
</blockquote>
</aside>
<p>Lol did you actually <em>try</em> searching for this?</p>
<aside class="quote no-group" data-username="Eiji" data-post="20" data-topic="72408">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/eiji/48/36743_2.png" class="avatar"> Eiji:</div>
<blockquote>
<p>Why even mentioning <code>oklch</code>?</p>
</blockquote>
</aside>
<p>Because it produces more even colors (perceptually), the problem that the Tailwind colors were previously solving (by hand). If you want to learn more just look it up, there are tons of resources on the topic.</p>
<aside class="quote no-group" data-username="Eiji" data-post="20" data-topic="72408">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/eiji/48/36743_2.png" class="avatar"> Eiji:</div>
<blockquote>
<p>Do you know what you are saying? Do you values everything based only on popularity?</p>
</blockquote>
</aside>
<p>Yes of course I know what I’m saying. I was refuting a specific point (that Tailwind is popular due to LLMs) which is <em>obviously</em> untrue. I don’t see how going off on a tangent about ELIZA or whatever has anything to do with my post.</p>
<aside class="quote no-group" data-username="Eiji" data-post="20" data-topic="72408">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/eiji/48/36743_2.png" class="avatar"> Eiji:</div>
<blockquote>
<p>It only removes the <code>mix</code> dependency and it’s configuration. All generated and newly generated templates still have “utility classes” that could conflict with existing styles if not removed carefully.</p>
</blockquote>
</aside>
<p>This is unfortunate but my solution is to delete all of that stuff and never use the generators (shrug).</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="373314" 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/do-you-prefer-to-use-tailwind-in-your-phoenix-projects-poll/72408/22">Post #21</a>
	                </div>
	            </div>
              <div id="likers-container-373314" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="373314"
                     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 #21"></div>
  </section>
</div>
    <div class="postbit" id="373316" data-post-id="373316">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>On point 1, if you put your templates in <code>priv/templates/[phx.gen.[live|json|html]/</code> you can use your own templates for the generators.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="373316" 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/do-you-prefer-to-use-tailwind-in-your-phoenix-projects-poll/72408/23">Post #22</a>
	                </div>
	            </div>
              <div id="likers-container-373316" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="373316"
                     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 #22"></div>
  </section>
</div>
    <div class="postbit" id="373317" data-post-id="373317">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="garrison" data-post="22" data-topic="72408">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/letter_avatar_proxy/v4/letter/g/3bc359/48.png" class="avatar"> garrison:</div>
<blockquote>
<p>Lol did you actually <em>try</em> searching for this?</p>
</blockquote>
</aside>
<p>Here is a search on main <code>Tailwind</code> page:<br>
</p><div class="lightbox-wrapper"><a class="lightbox" href="https://forum.elixirforum.com/uploads/default/original/3X/f/a/fa8f692795dc8bebacc5bd6eb545691ad359bf72.jpeg" data-download-href="https://forum.elixirforum.com/uploads/default/fa8f692795dc8bebacc5bd6eb545691ad359bf72" title="obraz" rel="nofollow"><img src="https://forum.elixirforum.com/uploads/default/optimized/3X/f/a/fa8f692795dc8bebacc5bd6eb545691ad359bf72_2_690x388.jpeg" alt="obraz" data-base62-sha1="zKyCFGSjYz2ALHIcq1RRRgZRn4S" width="690" height="388" srcset="https://forum.elixirforum.com/uploads/default/optimized/3X/f/a/fa8f692795dc8bebacc5bd6eb545691ad359bf72_2_690x388.jpeg, https://forum.elixirforum.com/uploads/default/optimized/3X/f/a/fa8f692795dc8bebacc5bd6eb545691ad359bf72_2_1035x582.jpeg 1.5x, https://forum.elixirforum.com/uploads/default/optimized/3X/f/a/fa8f692795dc8bebacc5bd6eb545691ad359bf72_2_1380x776.jpeg 2x" data-dominant-color="172234"><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">obraz</span><span class="informations">2560×1440 50.6 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>
<p>Some of terrible results from <code>Google</code> for search <code>Tailwind p</code>:<br>
</p><div class="lightbox-wrapper"><a class="lightbox" href="https://forum.elixirforum.com/uploads/default/original/3X/c/4/c4d9723ef662bbc837c647b5c11815bef1c0a783.png" data-download-href="https://forum.elixirforum.com/uploads/default/c4d9723ef662bbc837c647b5c11815bef1c0a783" title="obraz" rel="nofollow"><img src="https://forum.elixirforum.com/uploads/default/optimized/3X/c/4/c4d9723ef662bbc837c647b5c11815bef1c0a783_2_690x148.png" alt="obraz" data-base62-sha1="s5psyVFdcKrK2J4FiJbCbcolYen" width="690" height="148" srcset="https://forum.elixirforum.com/uploads/default/optimized/3X/c/4/c4d9723ef662bbc837c647b5c11815bef1c0a783_2_690x148.png, https://forum.elixirforum.com/uploads/default/original/3X/c/4/c4d9723ef662bbc837c647b5c11815bef1c0a783.png 1.5x, https://forum.elixirforum.com/uploads/default/original/3X/c/4/c4d9723ef662bbc837c647b5c11815bef1c0a783.png 2x" data-dominant-color="272828"><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">obraz</span><span class="informations">996×215 27 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><br>
<div class="lightbox-wrapper"><a class="lightbox" href="https://forum.elixirforum.com/uploads/default/original/3X/6/a/6a1486f33d431542a567618fb10f1870fe44a57e.png" data-download-href="https://forum.elixirforum.com/uploads/default/6a1486f33d431542a567618fb10f1870fe44a57e" title="obraz" rel="nofollow"><img src="https://forum.elixirforum.com/uploads/default/optimized/3X/6/a/6a1486f33d431542a567618fb10f1870fe44a57e_2_690x148.png" alt="obraz" data-base62-sha1="f8qAE7i3BDeZuWyZF4JaWgvwkvY" width="690" height="148" srcset="https://forum.elixirforum.com/uploads/default/optimized/3X/6/a/6a1486f33d431542a567618fb10f1870fe44a57e_2_690x148.png, https://forum.elixirforum.com/uploads/default/original/3X/6/a/6a1486f33d431542a567618fb10f1870fe44a57e.png 1.5x, https://forum.elixirforum.com/uploads/default/original/3X/6/a/6a1486f33d431542a567618fb10f1870fe44a57e.png 2x" data-dominant-color="28292A"><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">obraz</span><span class="informations">996×215 34 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><br>
<div class="lightbox-wrapper"><a class="lightbox" href="https://forum.elixirforum.com/uploads/default/original/3X/0/2/026075db847fbb4cfa1c0625ff12de1adb3c14de.png" data-download-href="https://forum.elixirforum.com/uploads/default/026075db847fbb4cfa1c0625ff12de1adb3c14de" title="obraz" rel="nofollow"><img src="https://forum.elixirforum.com/uploads/default/optimized/3X/0/2/026075db847fbb4cfa1c0625ff12de1adb3c14de_2_690x148.png" alt="obraz" data-base62-sha1="l1CsDEp6ARNg7yZol2Y3hFgFY2" width="690" height="148" srcset="https://forum.elixirforum.com/uploads/default/optimized/3X/0/2/026075db847fbb4cfa1c0625ff12de1adb3c14de_2_690x148.png, https://forum.elixirforum.com/uploads/default/original/3X/0/2/026075db847fbb4cfa1c0625ff12de1adb3c14de.png 1.5x, https://forum.elixirforum.com/uploads/default/original/3X/0/2/026075db847fbb4cfa1c0625ff12de1adb3c14de.png 2x" data-dominant-color="272728"><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">obraz</span><span class="informations">996×215 30.7 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>
<p>So <strong>yes</strong> - I was <strong>actually</strong> trying to search for this.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="373317" 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/do-you-prefer-to-use-tailwind-in-your-phoenix-projects-poll/72408/24">Post #23</a>
	                </div>
	            </div>
              <div id="likers-container-373317" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="373317"
                     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 #23"></div>
  </section>
</div>
    <div class="postbit" id="373318" data-post-id="373318">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I did not remember or not know it at all. Does it work if I want to replace just a single file or do I have to copy-paste entire <code>priv</code> directory?</p>
<p><strong>Edit</strong>: I read about that already! Just completely forgot it …</p>
<blockquote>
<p>If we put one or more customized template files in <code>priv/templates/MIX-TASK-NAME/</code> then the mix task will look for the file in our project first. Any files we don’t include there will fall back to the Phoenix generator.</p>
<p>Source: <a href="https://fly.io/phoenix-files/customizing-phoenix-generators/" class="inline-onebox" rel="noopener nofollow ugc">Customizing Phoenix Generators · The Phoenix Files</a></p>
</blockquote>
<p>That’s amazing feature! Many thanks for reminding this! <img src="https://forum.elixirforum.com/images/emoji/apple/heart.png?v=15" title=":heart:" class="emoji" alt=":heart:" 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="373318" 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/do-you-prefer-to-use-tailwind-in-your-phoenix-projects-poll/72408/25">Post #24</a>
	                </div>
	            </div>
              <div id="likers-container-373318" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="373318"
                     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 #24"></div>
  </section>
</div>
    <div class="postbit" id="373319" data-post-id="373319">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="garrison" src="/assets/icons/user-9f439610.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  garrison
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Fair enough, it was the top result for me but I will acknowledge that search engines ain’t what they used to be!</p>
<p>I suppose everyone else nowadays is using the aforementioned LLMs <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="373319" 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/do-you-prefer-to-use-tailwind-in-your-phoenix-projects-poll/72408/26">Post #25</a>
	                </div>
	            </div>
              <div id="likers-container-373319" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="373319"
                     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 #25"></div>
  </section>
</div>
    <div class="postbit" id="373320" data-post-id="373320">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="garrison" data-post="19" data-topic="72408">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/letter_avatar_proxy/v4/letter/g/3bc359/48.png" class="avatar"> garrison:</div>
<blockquote>
<p>Styles should be co-located with components</p>
</blockquote>
</aside>
<p>Whatever works for you, but I disagree with that statement.</p>
<aside class="quote no-group" data-username="garrison" data-post="19" data-topic="72408">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/letter_avatar_proxy/v4/letter/g/3bc359/48.png" class="avatar"> garrison:</div>
<blockquote>
<p>Styles should be composable (no name conflicts)</p>
</blockquote>
</aside>
<p>And how does the Tailwind solve that? Naming scheme is up to you, and with semantic styling you do not have names that can conflict.</p>
<aside class="quote no-group" data-username="garrison" data-post="19" data-topic="72408">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/letter_avatar_proxy/v4/letter/g/3bc359/48.png" class="avatar"> garrison:</div>
<blockquote>
<p>There should be a configurable design system that works out of the box</p>
</blockquote>
</aside>
<p>And I do not find Tailwind configurable that much. With proper CSS I can make everything super configurable just by using some CSS variables without problem.</p>
<aside class="quote no-group" data-username="garrison" data-post="19" data-topic="72408">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/letter_avatar_proxy/v4/letter/g/3bc359/48.png" class="avatar"> garrison:</div>
<blockquote>
<p>There is no way to co-locate styles with components (the <code>style</code> attribute is bad)</p>
</blockquote>
</aside>
<p>That is no problem for me, as I prefer semantic styles in single place, so whole sytem is consistently styled in one place. And I do not know what is so bad about <code>&lt;style&gt;</code>, especially with new <code>@scope</code> rule.</p>
<aside class="quote no-group" data-username="garrison" data-post="19" data-topic="72408">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/letter_avatar_proxy/v4/letter/g/3bc359/48.png" class="avatar"> garrison:</div>
<blockquote>
<p>Nesting does not solve the naming problem and also <em>still</em> does not compose properly (think about what would happen if you used HEEX slots)</p>
</blockquote>
</aside>
<p>I do not get what is the problem there. I use slots and I <em>do not care</em> how it should be styled, because that is not my concern when I write <em>content</em>.</p>
<aside class="quote no-group" data-username="garrison" data-post="19" data-topic="72408">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/letter_avatar_proxy/v4/letter/g/3bc359/48.png" class="avatar"> garrison:</div>
<blockquote>
<p>The only genuine improvement here is oklch, and that’s a <em>stretch</em>.</p>
</blockquote>
</aside>
<p>Why? I can do stuff like <code>oklch(from red l c calc(h + 90))</code> to change hue by 90 degrees. That allows me to setup whole colour scheme using single variable (main colour) and it will compute all derivatives for me. No need for checking out Adobe Kuler or stuff like that. And Tailwind do not solve that problem either. It picks some colours for you, that is true, but that doesn’t change the fact, that you still need to find proper colour pairings, Tailwind doesn’t fix that. Especially it doesn’t fix the problem of a11y, as the values do not provide you a way to think about contrast in any way.</p>
<aside class="quote no-group" data-username="garrison" data-post="19" data-topic="72408">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/letter_avatar_proxy/v4/letter/g/3bc359/48.png" class="avatar"> garrison:</div>
<blockquote>
<p>It’s literally just a scale.</p>
</blockquote>
</aside>
<p>But the only reference for that scale is itself. I cannot relate it to any other value in my design. It is just floating in the void.</p>
<aside class="quote no-group" data-username="garrison" data-post="19" data-topic="72408">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/letter_avatar_proxy/v4/letter/g/3bc359/48.png" class="avatar"> garrison:</div>
<blockquote>
<p>What does <code>rem</code> mean?</p>
</blockquote>
</aside>
<p>Font size at the root, <code>em</code> is font size for the element. I do not care about exact pixels (especially that CSS <code>px</code> is not 1 physical pixel either), but I care about relations with other components (especially text). Tailwind <code>1</code> relates to nothing except of itself for me. Especially when fonts are defined using different units.</p>
<aside class="quote no-group" data-username="garrison" data-post="19" data-topic="72408">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/letter_avatar_proxy/v4/letter/g/3bc359/48.png" class="avatar"> garrison:</div>
<blockquote>
<p>Tailwind became mega-popular well before the LLM apocalypse</p>
</blockquote>
</aside>
<p>That do not change my statement that it <em>seems</em> like designed for it. Still, for me it is attribute styling once again, just with cryptic names.</p>
<aside class="quote no-group" data-username="garrison" data-post="19" data-topic="72408">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/letter_avatar_proxy/v4/letter/g/3bc359/48.png" class="avatar"> garrison:</div>
<blockquote>
<p>But does <code>--no-tailwind</code> not work anymore?</p>
</blockquote>
</aside>
<p>It never did work properly, as default component will be generated with Tailwind cruft anyway, irrelevant to the provided flags. This mean that I still need to go through whole generated codebase with broom to sweep it from unwanted dust.</p>
<p>And if I need to do that, it reduces the initial usability and just causes irritation.</p>
<hr>
<p>Another big downside of Tailwind is that it <em>requires</em> compilation step to do tree shaking of styles. Especially when you use custom values like <code>bg-[light-dark(var(--color-white),var(--color-gray-950))]</code>. With “just CSS” I can just place files in repo, and I do not need any bundler or anything. It will just work. I do not need any browser tooling to analyse what does the classes names mean, I can just by hand edit there, and then just copy paste styles from browser dev tools to my project.</p>
<hr>
<p>I get why people are using Tailwind - they are just lazy, and shushing everything into glorified <code>style=</code> attribute is their way of lazying around. It is simpler to just slap bunch of classes and call it a day. Semantics of my content? What the hell is that? I want to make it pretty and if someone is visually impaired, then it is their problem, not mine.</p>
<hr>
<aside class="quote no-group" data-username="Zurga" data-post="23" data-topic="72408" 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/zurga/48/38832_2.png" class="avatar"> Zurga:</div>
<blockquote>
<p>On point 1, if you put your templates in <code>priv/templates/[phx.gen.[live|json|html]/</code> you can use your own templates for the generators.</p>
</blockquote>
</aside>
<p>I simply learned how to live without Phoenix generators, because these always produce more noise than useful code for me. The only generator I use is for Ecto migrations (but it is Ecto generator, not Phoenix) to not need to deal with filenames.</p>
<p>Generators are the weakest and the most irritating part of Phoenix out there. It is just not worth the hassle.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="373320" 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/do-you-prefer-to-use-tailwind-in-your-phoenix-projects-poll/72408/27">Post #26</a>
	                </div>
	            </div>
              <div id="likers-container-373320" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="373320"
                     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 #26"></div>
  </section>
</div>
    <div class="postbit" id="373321" data-post-id="373321">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>You can just put in a single file. So if you just want to edit the <code>index.live</code> you only need to add:<code>priv/templates/phx.gen.live/index.live</code>.</p>
<p>The generators call Mix.Phoenix.generator_paths to get all roots, then use that to call Mix.Phoenix.copy_from which greedily copy a template if it exists at a root. By default <code>generator_paths</code> returns <code>[ “.”, “phoenix”]</code>.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="373321" 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/do-you-prefer-to-use-tailwind-in-your-phoenix-projects-poll/72408/28">Post #27</a>
	                </div>
	            </div>
              <div id="likers-container-373321" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="373321"
                     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 #27"></div>
  </section>
</div>
    <div class="postbit" id="373323" data-post-id="373323">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Yup, updated my post even before your comment. Once again thanks for reminding me this one!</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="373323" 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/do-you-prefer-to-use-tailwind-in-your-phoenix-projects-poll/72408/29">Post #28</a>
	                </div>
	            </div>
              <div id="likers-container-373323" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="373323"
                     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 #28"></div>
  </section>
</div>
    <div class="postbit" id="373324" data-post-id="373324">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="hauleth" data-post="27" data-topic="72408">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/hauleth/48/18942_2.png" class="avatar"> hauleth:</div>
<blockquote>
<p>I simply learned how to live without Phoenix generators, because these always produce more noise than useful code for me. The only generator I use is for Ecto migrations (but it is Ecto generator, not Phoenix) to not need to deal with filenames.</p>
<p>Generators are the weakest and the most irritating part of Phoenix out there. It is just not worth the hassle.</p>
</blockquote>
</aside>
<p>I agree, that is why I decided to roll my own flavor of Phoenix. Heavy use of generators to take out all the hassle of adding assocs to forms or changesets and tests. Now everything works nearly out of the box and I can just run all the generators to have a working CRUD app. Adding EctoSync and I have real-time updates propagated to all the sessions.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="373324" 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/do-you-prefer-to-use-tailwind-in-your-phoenix-projects-poll/72408/30">Post #29</a>
	                </div>
	            </div>
              <div id="likers-container-373324" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="373324"
                     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 #29"></div>
  </section>
</div>
    <div class="postbit" id="373325" data-post-id="373325">
  <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">
								<aside class="quote no-group" data-username="hauleth" data-post="27" data-topic="72408">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/hauleth/48/18942_2.png" class="avatar"> hauleth:</div>
<blockquote>
<p>I get why people are using Tailwind - they are just lazy, and shushing everything into glorified <code>style=</code> attribute is their way of lazying around. It is simpler to just slap bunch of classes and call it a day. Semantics of my content? What the hell is that? I want to make it pretty and if someone is visually impaired, then it is their problem, not mine.</p>
</blockquote>
</aside>
<p>LOL so needlessly combative and generally false.  Effin’ up a11y is not a Tailwind-specific problem, it’s a “90% of people who do web design” problem, regardless of the tech they are using.  And the lazy argument is needlessly insulting.  That’s certainly not how I approach Tailwind-use.</p>
<aside class="quote no-group" data-username="hauleth" data-post="27" data-topic="72408">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/hauleth/48/18942_2.png" class="avatar"> hauleth:</div>
<blockquote>
<p>I simply learned how to live without Phoenix generators, because these always produce more noise than useful code for me. The only generator I use is for Ecto migrations (but it is Ecto generator, not Phoenix) to not need to deal with filenames.</p>
</blockquote>
</aside>
<p>Absolutely.  The only ones I use are phx.new, phx.gen.auth, and ecto.gen.migration.  I don’t really see a point in using any of the others other than for prototyping.  They seem like they are made more with showing different features of LV than something you would actually want.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="373325" 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/do-you-prefer-to-use-tailwind-in-your-phoenix-projects-poll/72408/31">Post #30</a>
	                </div>
	            </div>
              <div id="likers-container-373325" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="373325"
                     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 #30"></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/72408/load_more?page=4">Load more posts (20 remaining)</a>
</div></template></turbo-stream>