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


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="woylie" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/woylie/120/38856_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  woylie
                    <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>I’m using Doggo for a side project that is not public.The styles are written with SCSS. The screenshot shows the app bar, tab navigation, table, and input components. That’s all I can show you at this time <img src="https://forum.elixirforum.com/images/emoji/apple/smile.png?v=15" title=":smile:" class="emoji" alt=":smile:" loading="lazy" width="20" height="20"></p>
<p></p><div class="lightbox-wrapper"><a class="lightbox" href="https://forum.elixirforum.com/uploads/default/original/3X/e/a/ea766ba3cf09a1929ff9429c846f2a9228ef9a8e.png" data-download-href="https://forum.elixirforum.com/uploads/default/ea766ba3cf09a1929ff9429c846f2a9228ef9a8e" title="image" rel="nofollow"><img src="https://forum.elixirforum.com/uploads/default/optimized/3X/e/a/ea766ba3cf09a1929ff9429c846f2a9228ef9a8e_2_690x284.png" alt="image" data-base62-sha1="xs9rs04bUqSZLvNUKaPLqNnzit8" width="690" height="284" srcset="https://forum.elixirforum.com/uploads/default/optimized/3X/e/a/ea766ba3cf09a1929ff9429c846f2a9228ef9a8e_2_690x284.png, https://forum.elixirforum.com/uploads/default/optimized/3X/e/a/ea766ba3cf09a1929ff9429c846f2a9228ef9a8e_2_1035x426.png 1.5x, https://forum.elixirforum.com/uploads/default/optimized/3X/e/a/ea766ba3cf09a1929ff9429c846f2a9228ef9a8e_2_1380x568.png 2x" data-dominant-color="14141B"><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">2026×834 29.2 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="331408" 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/doggo-a-collection-of-unstyled-phoenix-components/60355/22">Post #21</a>
	                </div>
	            </div>
              <div id="likers-container-331408" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="331408"
                     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="331409" data-post-id="331409">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I’m using it in a project (closed source).  With Tailwind, you can either use <code>@apply</code> (which is what I’m currently doing) or wrap everything and use utility classes, though YMMV here, I only <em>briefly</em> spiked 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="331409" 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/doggo-a-collection-of-unstyled-phoenix-components/60355/23">Post #22</a>
	                </div>
	            </div>
              <div id="likers-container-331409" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="331409"
                     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="332565" data-post-id="332565">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Thank you for your feedback. There are a number of parallel initiatives currently ongoing to provide a stack of live components and it is not always easy to keep track of them an see where they are complementary or potentially build on each other.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="332565" 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/doggo-a-collection-of-unstyled-phoenix-components/60355/24">Post #23</a>
	                </div>
	            </div>
              <div id="likers-container-332565" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="332565"
                     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="335209" data-post-id="335209">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="woylie" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/woylie/120/38856_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  woylie
                    <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>Doggo 0.6.0 is released!</p>
<p>This release brings some significant changes with it. All components have been replaced with component builder functions, which means you can now customize all modifier attributes, rename components, and also customize the modifier class names.</p>
<p>The existing hard-coded Phoenix Storybook stories have been replaced with a mix task that generates stories into your storybook folder. This means you don’t need a separate storybook route for the Doggo components any more - just at them to your existing storybook. Furthermore, the generated stories automatically render variation groups for all configured modifiers. This is done dynamically - if you change the modifier configuration, you don’t need to re-generate the stories.</p>
<h2><a name="p-335209-release-notes-1" class="anchor" href="#p-335209-release-notes-1" aria-label="Heading link" rel="nofollow"></a>Release Notes</h2>
<h3><a name="p-335209-added-2" class="anchor" href="#p-335209-added-2" aria-label="Heading link" rel="nofollow"></a>Added</h3>
<ul>
<li>Add <code>Doggo.Storybook</code> and <code>mix dog.gen.stories</code> for generating<br>
<code>Phoenix.Storybook</code> stories for the configured components. The generated<br>
stories automatically render variation groups for all configured modifiers.</li>
<li>Add <code>Doggo.modifier_classes/1</code>.</li>
<li>Add <code>Doggo.modifier_class_name/2</code>.</li>
</ul>
<h3><a name="p-335209-changed-3" class="anchor" href="#p-335209-changed-3" aria-label="Heading link" rel="nofollow"></a>Changed</h3>
<ul>
<li>Replace all function components defined in <code>Doggo</code> with build macros<br>
in <code>Doggo.Components</code>. This allows you to customize the modifier attributes,<br>
component names, base classes, and some other options at compile time.</li>
<li>Make modifier class name builder configurable.</li>
<li>Rename build macro for former <code>input</code> component to <code>field</code>.</li>
<li>Configure <code>Gettext</code> module for <code>field</code> component (formerly <code>input</code>) via<br>
compile-time option instead of global attribute.</li>
<li>Allow to set required text and required title attributes for input and label.</li>
<li>Add <code>module</code> argument to <code>mix dog.modifiers</code> that points to the module<br>
in which the Doggo components are configured.</li>
<li>Replace <code>placeholder</code> attribute with <code>placeholder_src</code> and<br>
<code>placeholder_content</code> attributes in <code>avatar</code> component.</li>
<li>Replace <code>phx-feedback-for</code> attribute in favor of<br>
<code>Phoenix.Component.used_input?/1</code>.</li>
<li>Don’t use <code>h2</code> for <code>Doggo.page_header/1</code> sub title.</li>
<li>Nest <code>vertical_nav_nested</code> component into <code>&lt;div&gt;</code>.</li>
<li>Rename <code>drawer-nav-title</code> class in <code>vertical_nav_nested</code> component to be<br>
based on configured component name (default: <code>vertical-nav-nested-title</code>).</li>
<li>Better consistency, various improvements and optimizations in all components.</li>
<li>Revise The component type classification.</li>
<li>Add maturity levels for all components (experimental, developing, refining,<br>
stable).</li>
<li>Require <code>live_view ~&gt; 1.0.0-rc.6</code>.</li>
</ul>
<h3><a name="p-335209-removed-4" class="anchor" href="#p-335209-removed-4" aria-label="Heading link" rel="nofollow"></a>Removed</h3>
<ul>
<li>Remove <code>Phoenix.Storybook</code> stories bundled in the <code>priv</code> folder in favor of<br>
<code>mix dog.gen.stories</code> and <code>Doggo.Storybook</code>.</li>
<li>Remove <code>Doggo.flash_group/1</code>.</li>
</ul>
<h3><a name="p-335209-upgrade-guide-5" class="anchor" href="#p-335209-upgrade-guide-5" aria-label="Heading link" rel="nofollow"></a>Upgrade Guide</h3>
<ol>
<li>For all Doggo components you were using, call the corresponding <code>build</code><br>
macros in <code>Doggo.Components</code> in one of your modules and update your HEEx<br>
templates to call the generated functions instead of the ones from the<br>
<code>Doggo</code> module. See readme for installation details.</li>
<li>The previous Doggo version instructed you to configure a separate Storybook<br>
that reads the stories from the <code>priv</code> folder of the dependency. Remove that<br>
second Storybook and run<br>
<code>mix dog.gen.stories -m [component-module] -o [storybook-folder] -a</code> to<br>
generate stories for the configured Doggo components in the primary<br>
Storybook.</li>
<li>If you use <code>mix dog.modifiers</code> in a script, add the <code>--module</code> argument.</li>
<li>If you were setting the <code>gettext</code> attribute on the <code>input</code> component, pass<br>
the <code>gettext_module</code> option to <code>Doggo.Components.build_field/1</code> instead.</li>
</ol>
<aside class="onebox allowlistedgeneric" data-onebox-src="https://github.com/woylie/doggo/releases/tag/0.6.0">
  <header class="source">
      <img src="https://github.githubassets.com/favicons/favicon.svg" class="site-icon" alt="" width="32" height="32">

      <a href="https://github.com/woylie/doggo/releases/tag/0.6.0" target="_blank" rel="noopener nofollow ugc">GitHub</a>
  </header>

  <article class="onebox-body">
    <div class="aspect-image" style="--aspect-ratio:690/344;"><img src="https://opengraph.githubassets.com/df7cb4736466c9cb536c7448fb8de617c9f106fa8e64600c4760762a1e9a6378/woylie/doggo/releases/tag/0.6.0" class="thumbnail" alt="" width="690" height="345"></div>

<h3><a href="https://github.com/woylie/doggo/releases/tag/0.6.0" target="_blank" rel="noopener nofollow ugc">Release 0.6.0 · woylie/doggo</a></h3>

  <p>Added

Add Doggo.Storybook and mix dog.gen.stories for generating
Phoenix.Storybook stories for the configured components. The generated
stories automatically render variation groups for all config...</p>


  </article>

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

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

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="335209" data-batch-url="/posts/batch_likers">
                        9
                      </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/doggo-a-collection-of-unstyled-phoenix-components/60355/25">Post #24</a>
	                </div>
	            </div>
              <div id="likers-container-335209" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="335209"
                     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="335357" data-post-id="335357">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="woylie" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/woylie/120/38856_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  woylie
                    <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>Quick follow-up with some internal refactoring. It also inlines dependent components into the image and field components instead of requiring the user to compile those dependencies. Consequently, the component builders for field descriptions, errors, and labels have been removed. Those were very simple components that only made sense in the context of the field component, so I doubt that anybody will miss them.</p>
<aside class="onebox allowlistedgeneric" data-onebox-src="https://github.com/woylie/doggo/releases/tag/0.7.0">
  <header class="source">
      <img src="https://github.githubassets.com/favicons/favicon.svg" class="site-icon" alt="" width="32" height="32">

      <a href="https://github.com/woylie/doggo/releases/tag/0.7.0" target="_blank" rel="noopener nofollow ugc">GitHub</a>
  </header>

  <article class="onebox-body">
    <div class="aspect-image" style="--aspect-ratio:690/344;"><img src="https://opengraph.githubassets.com/1a66d2541cc0f5e05f5ca3add0f72b126af705a4d28ca4a6b8fc3b5bcf0a9702/woylie/doggo/releases/tag/0.7.0" class="thumbnail" alt="" width="" height=""></div>

<h3><a href="https://github.com/woylie/doggo/releases/tag/0.7.0" target="_blank" rel="noopener nofollow ugc">Release 0.7.0 · woylie/doggo</a></h3>

  <p>Changed

Use private field_description, field_errors, and label components in
field component. Apply base class to field_description and field_errors
components.
Use plain div with {base_class}-fra...</p>


  </article>

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

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

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="335357" data-batch-url="/posts/batch_likers">
                        4
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/doggo-a-collection-of-unstyled-phoenix-components/60355/26">Post #25</a>
	                </div>
	            </div>
              <div id="likers-container-335357" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="335357"
                     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="340894" data-post-id="340894">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="woylie" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/woylie/120/38856_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  woylie
                    <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>I just released Doggo 0.9.0. Since I didn’t announce the releases in between, just a brief summary:</p>
<ul>
<li>Various components have seen improvements, including documentation, stories, and customizability, and bumps in maturity levels.</li>
<li>Example CSS has been added for some components and will be added for the remaining components in the future. Links to the CSS files have been added to the component docs on Hex.</li>
<li>The demo application has been deployed and is available at <a href="https://woylie-doggo.fly.dev/" rel="noopener nofollow ugc">https://woylie-doggo.fly.dev/</a>.</li>
<li><code>mix dog.classes</code> and <code>Doggo.classes/1</code> have been added to retrieve all classes used in the configured components. Unlike the previous <code>mix dog.modifiers</code> and <code>Doggo.modifier_classes/1</code>, the output includes the base classes, the nested classes based on the base class, customizable additional classes, and configured modifier classes.</li>
</ul>
<aside class="onebox allowlistedgeneric" data-onebox-src="https://doggo.hexdocs.pm/changelog.html">
  <header class="source">

      <a href="https://doggo.hexdocs.pm/changelog.html" target="_blank" rel="noopener nofollow ugc">doggo.hexdocs.pm</a>
  </header>

  <article class="onebox-body">
    

<h3><a href="https://doggo.hexdocs.pm/changelog.html" target="_blank" rel="noopener nofollow ugc">Changelog — Doggo v0.14.6</a></h3>



  </article>

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

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

<aside class="onebox allowlistedgeneric" data-onebox-src="https://github.com/woylie/doggo/releases/tag/0.8.0">
  <header class="source">
      <img src="https://github.githubassets.com/favicons/favicon.svg" class="site-icon" alt="" width="32" height="32">

      <a href="https://github.com/woylie/doggo/releases/tag/0.8.0" target="_blank" rel="noopener nofollow ugc">GitHub</a>
  </header>

  <article class="onebox-body">
    <div class="aspect-image" style="--aspect-ratio:690/344;"><img src="https://opengraph.githubassets.com/fa0454a67e1fe18042498255d91ddf4e5c8cebc0ee635c31fa1130e4571fe666/woylie/doggo/releases/tag/0.8.0" class="thumbnail" alt="" width="690" height="345"></div>

<h3><a href="https://github.com/woylie/doggo/releases/tag/0.8.0" target="_blank" rel="noopener nofollow ugc">Release 0.8.0 · woylie/doggo</a></h3>

  <p>Added

Set up design tokens and CSS for demo application based on Barker. Styles for
all components will be added in the future.

Changed
General

Add documentation for the compile-time options of ...</p>


  </article>

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

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

<aside class="onebox allowlistedgeneric" data-onebox-src="https://github.com/woylie/doggo/releases/tag/0.8.1">
  <header class="source">
      <img src="https://github.githubassets.com/favicons/favicon.svg" class="site-icon" alt="" width="32" height="32">

      <a href="https://github.com/woylie/doggo/releases/tag/0.8.1" target="_blank" rel="noopener nofollow ugc">GitHub</a>
  </header>

  <article class="onebox-body">
    <div class="aspect-image" style="--aspect-ratio:690/344;"><img src="https://opengraph.githubassets.com/c796bd90bcb1aad7cdbf9035fae6dce28884d38327e12092885b41a1e8cd8c98/woylie/doggo/releases/tag/0.8.1" class="thumbnail" alt="" width="690" height="345"></div>

<h3><a href="https://github.com/woylie/doggo/releases/tag/0.8.1" target="_blank" rel="noopener nofollow ugc">Release 0.8.1 · woylie/doggo</a></h3>

  <p>Fixed

Declare phoenix_storybook as required dependency.</p>


  </article>

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

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

<aside class="onebox allowlistedgeneric" data-onebox-src="https://github.com/woylie/doggo/releases/tag/0.8.2">
  <header class="source">
      <img src="https://github.githubassets.com/favicons/favicon.svg" class="site-icon" alt="" width="32" height="32">

      <a href="https://github.com/woylie/doggo/releases/tag/0.8.2" target="_blank" rel="noopener nofollow ugc">GitHub</a>
  </header>

  <article class="onebox-body">
    <div class="aspect-image" style="--aspect-ratio:690/344;"><img src="https://opengraph.githubassets.com/61344b7d13f22c551e58623a3e61fcba761490fa0c8b4c20b2a7f032c124ffff/woylie/doggo/releases/tag/0.8.2" class="thumbnail" alt="" width="690" height="345"></div>

<h3><a href="https://github.com/woylie/doggo/releases/tag/0.8.2" target="_blank" rel="noopener nofollow ugc">Release 0.8.2 · woylie/doggo</a></h3>

  <p>Fixed

Ensure storybook module and components module are loaded before checking
whether module exports function.
Fix menu stories not compiling under certain circumstances.</p>


  </article>

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

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

<aside class="onebox allowlistedgeneric" data-onebox-src="https://github.com/woylie/doggo/releases/tag/0.9.0">
  <header class="source">
      <img src="https://github.githubassets.com/favicons/favicon.svg" class="site-icon" alt="" width="32" height="32">

      <a href="https://github.com/woylie/doggo/releases/tag/0.9.0" target="_blank" rel="noopener nofollow ugc">GitHub</a>
  </header>

  <article class="onebox-body">
    <div class="aspect-image" style="--aspect-ratio:690/344;"><img src="https://opengraph.githubassets.com/432be08199bef8ae592f1a7eeae6556f3c213deb62c569819009c87e626b5643/woylie/doggo/releases/tag/0.9.0" class="thumbnail" alt="" width="690" height="345"></div>

<h3><a href="https://github.com/woylie/doggo/releases/tag/0.9.0" target="_blank" rel="noopener nofollow ugc">Release 0.9.0 · woylie/doggo</a></h3>

  <p>Changed

Rename Doggo.modifier_classes/1 to Doggo.classes/1 and mix dog.modifiers
to mix dog.classes. The function and mix task return all base classes,
nested classes, and additional customizable ...</p>


  </article>

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

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

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="340894" data-batch-url="/posts/batch_likers">
                        11
                      </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/doggo-a-collection-of-unstyled-phoenix-components/60355/27">Post #26</a>
	                </div>
	            </div>
              <div id="likers-container-340894" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="340894"
                     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="393966" data-post-id="393966">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="woylie" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/woylie/120/38856_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  woylie
                    <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>I skipped a couple of releases here. 0.15.0 is a big one.</p>
<p>It adds hooks for all components that need them, implement all the required keyboard interaction, roving tab indexes, etc., as described in the <a href="https://www.w3.org/WAI/ARIA/apg/" rel="noopener nofollow ugc">ARIA Authoring Practices Guide</a>. All hooks should survive LiveView patches.</p>
<p>The hooks are included in the Hex package, but also published separately as an npm package.</p>
<p>Included hooks:</p>
<ul>
<li>accordion</li>
<li>action_bar</li>
<li>alert_dialog</li>
<li>combobox</li>
<li>menu</li>
<li>menu_bar</li>
<li>menu_button</li>
<li>modal</li>
<li>split_pane</li>
<li>tabs</li>
<li>toolbar</li>
<li>tooltip</li>
<li>tree</li>
<li>tree_item</li>
</ul>
<p>The modal uses <code>showModal()</code> now, which provides proper modal semantics, allows to style the backdrop with the <code>::backdrop</code> pseudo element, and lets the browser handle scroll lock behind the modal. The <code>field</code> component can be extended with custom types. And lots of other improvements.</p>
<p>Storybook: <a href="https://doggo.wlyx.dev" rel="noopener nofollow ugc">https://doggo.wlyx.dev</a>. I haven’t gotten around to adding presentable styles yet, but at least everything should be functional now.</p>
<p>This version also added HTML snapshot tests. You can find the snapshots <a href="https://github.com/woylie/doggo/tree/0.15.0/test/fixtures" rel="noopener nofollow ugc">here</a>. They will make writing your CSS a bit easier, and from the next release version, it will also be easier to review markup changes this way.</p>
<aside class="onebox allowlistedgeneric" data-onebox-src="https://github.com/woylie/doggo/releases/tag/0.15.0">
  <header class="source">
      <img src="https://github.githubassets.com/favicons/favicon.svg" class="site-icon" alt="" width="32" height="32">

      <a href="https://github.com/woylie/doggo/releases/tag/0.15.0" target="_blank" rel="noopener nofollow ugc">GitHub</a>
  </header>

  <article class="onebox-body">
    <div class="aspect-image" style="--aspect-ratio:690/344;"><img src="https://opengraph.githubassets.com/297520dafae9ac67b1618b38f007f1832cbf849db0184ca6d0fc10c1ba34f5cf/woylie/doggo/releases/tag/0.15.0" class="thumbnail" alt="" width="690" height="345"></div>

<h3><a href="https://github.com/woylie/doggo/releases/tag/0.15.0" target="_blank" rel="noopener nofollow ugc">Release 0.15.0 · woylie/doggo</a></h3>

  <p>Added

Publish the JavaScript hooks as ES modules, on npm as @woylie/doggo and in
the Hex package under assets/js. See the README for both install routes.
Add hooks and keyboard support for the acc...</p>


  </article>

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

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

<aside class="onebox allowlistedgeneric" data-onebox-src="https://www.npmjs.com/package/@woylie/doggo">
  <header class="source">
      <img src="https://static-production.npmjs.com/f1c1c1c0922247b9630c1edb1e6f31b2.png" class="site-icon" alt="" width="32" height="32">

      <a href="https://www.npmjs.com/package/@woylie/doggo" target="_blank" rel="noopener nofollow ugc">npm</a>
  </header>

  <article class="onebox-body">
    <div class="aspect-image" style="--aspect-ratio:690/362;"><img src="https://static-production.npmjs.com/a12c728e90758ccd16976b394b964317.png" class="thumbnail" alt="" width="690" height="362"></div>

<h3><a href="https://www.npmjs.com/package/@woylie/doggo" target="_blank" rel="noopener nofollow ugc">@woylie/doggo</a></h3>

  <p>JavaScript hooks for the Doggo component library. Latest version: 0.15.0, last published: 3 minutes ago. Start using @woylie/doggo in your project by running `npm i @woylie/doggo`. There are no other projects in the npm registry using @woylie/doggo.</p>


  </article>

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

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

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="393966" data-batch-url="/posts/batch_likers">
                        5
                      </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/doggo-a-collection-of-unstyled-phoenix-components/60355/28">Post #27</a>
	                </div>
	            </div>
              <div id="likers-container-393966" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="393966"
                     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="394532" data-post-id="394532">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="woylie" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/woylie/120/38856_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  woylie
                    <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>0.16.0 adds example CSS styles for all remaining components, improves the stories, introduces a new color scheme for the <a href="https://doggo.wlyx.dev" rel="noopener nofollow ugc">demo</a>.</p>
<aside class="onebox allowlistedgeneric" data-onebox-src="https://github.com/woylie/doggo/releases/tag/0.16.0">
  <header class="source">
      <img src="https://github.githubassets.com/favicons/favicon.svg" class="site-icon" alt="" width="32" height="32">

      <a href="https://github.com/woylie/doggo/releases/tag/0.16.0" target="_blank" rel="noopener nofollow ugc">GitHub</a>
  </header>

  <article class="onebox-body">
    <div class="aspect-image" style="--aspect-ratio:690/344;"><img src="https://opengraph.githubassets.com/58c55e63cb599c3a31ed2467d94a297c6dc0694e73d73ab62a50cb88d787454a/woylie/doggo/releases/tag/0.16.0" class="thumbnail" alt="" width="" height=""></div>

<h3><a href="https://github.com/woylie/doggo/releases/tag/0.16.0" target="_blank" rel="noopener nofollow ugc">Release 0.16.0 · woylie/doggo</a></h3>

  <p>Added

Add CSS examples for all remaining components.
Add label attribute to table to name the scroll container.

Changed

Name the landmarks that app_bar, callout and drawer render.
Render callout...</p>


  </article>

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

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

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="394532" 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/doggo-a-collection-of-unstyled-phoenix-components/60355/29">Post #28</a>
	                </div>
	            </div>
              <div id="likers-container-394532" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="394532"
                     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>