Skip to content

Commit 0c64cfc

Browse files
committed
Synchronized build
1 parent ccbf99e commit 0c64cfc

File tree

2 files changed

+26
-30
lines changed

2 files changed

+26
-30
lines changed

blog/entries/2025-10-06-refactoring-the-cc-chooser-pt-2/index.html

Lines changed: 13 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -212,9 +212,8 @@ <h2 id="turning-scope-into-technical-methods">Turning scope into technical metho
212212
<p>Everything else can be assumed to be unknown (non matching).</p>
213213
<p>This gives us a starting point to set up a simple state machine, and check
214214
against routinely at specific events and provide recommendations and/or update
215-
the interface.
216-
Reducing the JavaScript footprint and overhead</p>
217-
<p>Once we no longer needed a complex state management engine because we only have
215+
the interface.</p>
216+
<h2 id="reducing-the-javascript-footprint-and-overhead">Reducing the JavaScript footprint and overhead</h2><p>Once we no longer needed a complex state management engine because we only have
218217
14 possible correct “states” we’d like to handle, we could move away from
219218
the need for a larger more complex state management framework like Vue.js.</p>
220219
<p>The 2020 beta Chooser utilized Vue.js and its dependency chain, the newer 2025
@@ -240,9 +239,8 @@ <h2 id="turning-scope-into-technical-methods">Turning scope into technical metho
240239
<p>The state paths and smaller footprint means that we are left with a minimal
241240
amount of logic required to alter the visual state of the UX, and to allow a
242241
user to move through the stepper, the attribution fields, and the various
243-
marking formats and their individual functionalities.
244-
Embrace native support and semantics</p>
245-
<p>As the decision stepper is the main interaction element, the new markup was
242+
marking formats and their individual functionalities.</p>
243+
<h2 id="embrace-native-support-and-semantics">Embrace native support and semantics</h2><p>As the decision stepper is the main interaction element, the new markup was
246244
first built from there, setting up a semantic form, grouped into fieldsets, and
247245
labelled accordingly.</p>
248246
<p>The classes in particular let the markup describe each component in a way that
@@ -255,7 +253,7 @@ <h2 id="turning-scope-into-technical-methods">Turning scope into technical metho
255253
from which more robust Web Components could be utilized later if such a need
256254
arose, giving us a stable path of complexity to follow down the line.</p>
257255
<p>We also opted to avoid the use of popup modals and tabs, and instead leaned on
258-
<code>&lt;summary&gt;/&lt;details&gt;</code> elements instead to accomplish similar behavior without
256+
<code>&lt;summary&gt;</code>/<code>&lt;details&gt;</code> elements instead to accomplish similar behavior without
259257
the
260258
need for JS based behavior. Once again keeping our JS footprint much smaller.</p>
261259
<h2 id="improving-the-ux">Improving the UX</h2><h3 id="reducing-friction">Reducing friction</h3><p>We tried to reduce redundancy and better control friction within the UX
@@ -273,11 +271,12 @@ <h2 id="improving-the-ux">Improving the UX</h2><h3 id="reducing-friction">Reduci
273271
“Reset” button as well, since moving backwards through the fieldsets will
274272
reset lower fieldset values automatically. We also get a boost in accessibility
275273
with its removal, since it’s not advised as a solid use case within
276-
accessible interfaces, due to it being too easily clicked.</p>
277-
<p>“The Web would be a happier place if virtually all Reset buttons were
278-
removed. This button almost never helps users, but often hurts them.” (Reset
279-
and Cancel Buttons - NN/G)</p>
280-
<p>We also removed the final Done button and its adjacent shaking behavior. The
274+
accessible interfaces, <a href="https://www.nngroup.com/articles/reset-and-cancel-buttons/">due to it being too easily clicked</a>.</p>
275+
<blockquote><p>“The Web would be a happier place if virtually all Reset buttons were
276+
removed. This button almost never helps users, but often hurts them.” (<a href="https://www.nngroup.com/articles/reset-and-cancel-buttons/">Reset
277+
and Cancel Buttons - NN/G</a>)</p>
278+
</blockquote>
279+
<p>We also removed the final "Done" button and its adjacent shaking behavior. The
281280
“Done” button had an erroneous purpose, since the recommendation was
282281
already available on the right, and it was unclear why the “Done” button
283282
would be necessary to reach a final UX state.</p>
@@ -307,9 +306,8 @@ <h3 id="adding-friction">Adding friction</h3><p>To make the UX more usable we al
307306
<p>We also leaned more on the “Need Help?” section to provide deeper
308307
explanations rather than adding more information in other areas. This
309308
section’s newer placement lets it serve as a way to drill down further,
310-
without having to increase the density of information in the fieldsets.
311-
Better related UX element binding and separation</p>
312-
<p>Despite being a rather simple interface the Chooser offers several overlapping
309+
without having to increase the density of information in the fieldsets.</p>
310+
<h3 id="better-related-ux-element-binding-and-separation">Better related UX element binding and separation</h3><p>Despite being a rather simple interface the Chooser offers several overlapping
313311
use cases, and as such we tried to find subtle ways to bind distinct areas of
314312
input to related areas of output either with attention focus, or with some
315313
measure of connective mechanisms.</p>

blog/feed.xml

Lines changed: 13 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -65,9 +65,8 @@ particular recommendation can be accurately made.&lt;/p&gt;
6565
&lt;p&gt;Everything else can be assumed to be unknown (non matching).&lt;/p&gt;
6666
&lt;p&gt;This gives us a starting point to set up a simple state machine, and check
6767
against routinely at specific events and provide recommendations and/or update
68-
the interface.
69-
Reducing the JavaScript footprint and overhead&lt;/p&gt;
70-
&lt;p&gt;Once we no longer needed a complex state management engine because we only have
68+
the interface.&lt;/p&gt;
69+
&lt;h2 id="reducing-the-javascript-footprint-and-overhead"&gt;Reducing the JavaScript footprint and overhead&lt;/h2&gt;&lt;p&gt;Once we no longer needed a complex state management engine because we only have
7170
14 possible correct “states” we’d like to handle, we could move away from
7271
the need for a larger more complex state management framework like Vue.js.&lt;/p&gt;
7372
&lt;p&gt;The 2020 beta Chooser utilized Vue.js and its dependency chain, the newer 2025
@@ -93,9 +92,8 @@ also flexible enough to build out newer features over time.&lt;/p&gt;
9392
&lt;p&gt;The state paths and smaller footprint means that we are left with a minimal
9493
amount of logic required to alter the visual state of the UX, and to allow a
9594
user to move through the stepper, the attribution fields, and the various
96-
marking formats and their individual functionalities.
97-
Embrace native support and semantics&lt;/p&gt;
98-
&lt;p&gt;As the decision stepper is the main interaction element, the new markup was
95+
marking formats and their individual functionalities.&lt;/p&gt;
96+
&lt;h2 id="embrace-native-support-and-semantics"&gt;Embrace native support and semantics&lt;/h2&gt;&lt;p&gt;As the decision stepper is the main interaction element, the new markup was
9997
first built from there, setting up a semantic form, grouped into fieldsets, and
10098
labelled accordingly.&lt;/p&gt;
10199
&lt;p&gt;The classes in particular let the markup describe each component in a way that
@@ -108,7 +106,7 @@ lean on existing HTML and JS functionality, and also established a foundation
108106
from which more robust Web Components could be utilized later if such a need
109107
arose, giving us a stable path of complexity to follow down the line.&lt;/p&gt;
110108
&lt;p&gt;We also opted to avoid the use of popup modals and tabs, and instead leaned on
111-
&lt;code&gt;&amp;lt;summary&amp;gt;/&amp;lt;details&amp;gt;&lt;/code&gt; elements instead to accomplish similar behavior without
109+
&lt;code&gt;&amp;lt;summary&amp;gt;&lt;/code&gt;/&lt;code&gt;&amp;lt;details&amp;gt;&lt;/code&gt; elements instead to accomplish similar behavior without
112110
the
113111
need for JS based behavior. Once again keeping our JS footprint much smaller.&lt;/p&gt;
114112
&lt;h2 id="improving-the-ux"&gt;Improving the UX&lt;/h2&gt;&lt;h3 id="reducing-friction"&gt;Reducing friction&lt;/h3&gt;&lt;p&gt;We tried to reduce redundancy and better control friction within the UX
@@ -126,11 +124,12 @@ recommendation much more quickly. This change also lets us remove the
126124
“Reset” button as well, since moving backwards through the fieldsets will
127125
reset lower fieldset values automatically. We also get a boost in accessibility
128126
with its removal, since it’s not advised as a solid use case within
129-
accessible interfaces, due to it being too easily clicked.&lt;/p&gt;
130-
&lt;p&gt;“The Web would be a happier place if virtually all Reset buttons were
131-
removed. This button almost never helps users, but often hurts them.” (Reset
132-
and Cancel Buttons - NN/G)&lt;/p&gt;
133-
&lt;p&gt;We also removed the final Done button and its adjacent shaking behavior. The
127+
accessible interfaces, &lt;a href="https://www.nngroup.com/articles/reset-and-cancel-buttons/"&gt;due to it being too easily clicked&lt;/a&gt;.&lt;/p&gt;
128+
&lt;blockquote&gt;&lt;p&gt;“The Web would be a happier place if virtually all Reset buttons were
129+
removed. This button almost never helps users, but often hurts them.” (&lt;a href="https://www.nngroup.com/articles/reset-and-cancel-buttons/"&gt;Reset
130+
and Cancel Buttons - NN/G&lt;/a&gt;)&lt;/p&gt;
131+
&lt;/blockquote&gt;
132+
&lt;p&gt;We also removed the final "Done" button and its adjacent shaking behavior. The
134133
“Done” button had an erroneous purpose, since the recommendation was
135134
already available on the right, and it was unclear why the “Done” button
136135
would be necessary to reach a final UX state.&lt;/p&gt;
@@ -160,9 +159,8 @@ given the chance to fully understand what they are doing by utilizing CC0.&lt;/p
160159
&lt;p&gt;We also leaned more on the “Need Help?” section to provide deeper
161160
explanations rather than adding more information in other areas. This
162161
section’s newer placement lets it serve as a way to drill down further,
163-
without having to increase the density of information in the fieldsets.
164-
Better related UX element binding and separation&lt;/p&gt;
165-
&lt;p&gt;Despite being a rather simple interface the Chooser offers several overlapping
162+
without having to increase the density of information in the fieldsets.&lt;/p&gt;
163+
&lt;h3 id="better-related-ux-element-binding-and-separation"&gt;Better related UX element binding and separation&lt;/h3&gt;&lt;p&gt;Despite being a rather simple interface the Chooser offers several overlapping
166164
use cases, and as such we tried to find subtle ways to bind distinct areas of
167165
input to related areas of output either with attention focus, or with some
168166
measure of connective mechanisms.&lt;/p&gt;

0 commit comments

Comments
 (0)