Skip to content

Commit 47bc9d5

Browse files
authored
Update Readme.md
1 parent cb1da08 commit 47bc9d5

1 file changed

Lines changed: 54 additions & 7 deletions

File tree

Libraries/Widgets/Readme.md

Lines changed: 54 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,12 @@ The standard widget baseline does not replace the general widget architecture de
5858
Instead, it instantiates that architecture through a first published set of reusable classes with explicit public object surfaces.
5959
</p>
6060

61+
<p>
62+
The baseline also assumes that standardized widgets may be styled, skinned, and realized through compatible realization families without turning those realization choices into hidden class splits.
63+
The intrinsic class layer remains semantic and portable.
64+
Realization remains downstream and embodiment-oriented.
65+
</p>
66+
6167
<hr/>
6268

6369
<h2 id="why-this-directory-exists">2. Why this Directory Exists</h2>
@@ -220,9 +226,21 @@ It is a published portable object surface that runtimes may implement and progra
220226

221227
<p>
222228
That public surface may include semantic label-bearing or value-bearing members such as <code>label.text</code>, <code>value</code>, <code>value_display</code>, <code>text_display</code>, <code>plot_area</code>, or other public surfaces when the class requires them.
223-
However, the existence of such members does not mean that realization-side placement, styling defaults, anchors, text regions, or decorative assets become part of the intrinsic class law unless explicitly published here.
229+
However, the existence of such members does not mean that realization-side placement, styling defaults, anchors, text regions, skin resources, or decorative assets become part of the intrinsic class law unless explicitly published here.
230+
</p>
231+
232+
<p>
233+
A standard class may also expose bounded public styling or realization-selection surfaces when those surfaces are intended to be portable and inspectable.
234+
Typical examples include:
224235
</p>
225236

237+
<ul>
238+
<li>portable <code>style.*</code> properties,</li>
239+
<li><code>realization.family</code>,</li>
240+
<li><code>realization.variant</code>,</li>
241+
<li><code>realization.skin_id</code>.</li>
242+
</ul>
243+
226244
<p>
227245
The standard widget class therefore owns:
228246
</p>
@@ -242,7 +260,8 @@ Downstream realization publication owns:
242260
<li>where dynamic public surfaces are placed,</li>
243261
<li>how visual states are embodied,</li>
244262
<li>which anchors, text regions, or resource layers are used,</li>
245-
<li>which assets or host-native layers provide the embodiment.</li>
263+
<li>which assets or host-native layers provide the embodiment,</li>
264+
<li>how compatible variants and skins are selected and applied.</li>
246265
</ul>
247266

248267
<hr/>
@@ -456,6 +475,12 @@ A new class is justified only when the public contract changes in a meaningful w
456475
<li>different standardized behavior meaning.</li>
457476
</ul>
458477

478+
<p>
479+
The same rule also applies to skinning and styling.
480+
A different skin, a different compatible SVG set, a different host-native chrome, or a different compatible realization variant does not automatically create a new class.
481+
A widget remains the same standardized class as long as its public contract remains unchanged.
482+
</p>
483+
459484
<hr/>
460485

461486
<h2 id="shared-baseline-conventions">11. Shared Baseline Conventions</h2>
@@ -476,6 +501,8 @@ At minimum:
476501
<li>interactive classes use property <code>interaction.enabled</code> where applicable,</li>
477502
<li>the root part is named <code>root</code>,</li>
478503
<li>the outer framing part, when present, is named <code>frame</code>,</li>
504+
<li>portable styling surfaces, when exposed, use the <code>style.*</code> namespace,</li>
505+
<li>portable realization-selection surfaces, when exposed, use the <code>realization.*</code> namespace,</li>
479506
<li>controls typically emit <code>value_changed</code> for primary value mutation,</li>
480507
<li>indicators typically emit <code>value_rendered</code> for visible refresh-oriented notification.</li>
481508
</ul>
@@ -612,7 +639,7 @@ A class may expose <code>value</code> as a legal public property, while the exec
612639
</ul>
613640

614641
<p>
615-
Likewise, if a class exposes members such as <code>label.text</code>, axis properties, history members, or methods such as <code>append_sample(sample)</code> or <code>clear_history()</code>, this directory owns their legality and meaning, while <code>frog.ui.*</code> owns the executable primitive vocabulary used to access them.
642+
Likewise, if a class exposes members such as <code>label.text</code>, axis properties, history members, portable <code>style.*</code> surfaces, portable <code>realization.*</code> members, or methods such as <code>append_sample(sample)</code> or <code>clear_history()</code>, this directory owns their legality and meaning, while <code>frog.ui.*</code> owns the executable primitive vocabulary used to access them.
616643
</p>
617644

618645
<hr/>
@@ -632,7 +659,8 @@ A standard widget class may later be accompanied by:
632659
<li>one or more machine-readable realization packages,</li>
633660
<li>state-sensitive resource maps,</li>
634661
<li>structural part bindings,</li>
635-
<li>anchor or text-region publication for dynamic public parts.</li>
662+
<li>anchor or text-region publication for dynamic public parts,</li>
663+
<li>compatible realization variants and compatible skin identities.</li>
636664
</ul>
637665

638666
<p>
@@ -699,6 +727,10 @@ Portability does require:
699727
Where a class exposes semantic text-bearing or value-bearing public surfaces, portability also requires that runtimes preserve their public meaning even if the visual embodiment differs.
700728
</p>
701729

730+
<p>
731+
Where a class exposes portable styling or realization-selection surfaces, portability also requires that runtimes treat those surfaces as bounded public configuration surfaces rather than as permission to redefine class semantics.
732+
</p>
733+
702734
<hr/>
703735

704736
<h2 id="conformance-posture">18. Conformance Posture</h2>
@@ -729,6 +761,10 @@ Those structures may embody, place, or render the surface.
729761
They do not redefine its class meaning.
730762
</p>
731763

764+
<p>
765+
Likewise, a runtime MUST NOT use styling, skinning, or variant selection as a hidden mechanism for silently introducing a different class contract while still claiming conformance to the original published class.
766+
</p>
767+
732768
<hr/>
733769

734770
<h2 id="status">19. Status</h2>
@@ -757,6 +793,7 @@ The immediate closure direction is:
757793
<li>stabilize the intrinsic v1 widget core,</li>
758794
<li>stabilize the status of standardized support widgets relative to that core,</li>
759795
<li>stabilize the doctrine that distinct visible embodiments do not automatically create distinct classes,</li>
796+
<li>stabilize the doctrine that bounded styling and skinning remain realization-oriented unless explicitly promoted into class law,</li>
760797
<li>avoid premature expansion of the intrinsic core,</li>
761798
<li>preserve the minimum object-surface rule across all intrinsic baseline widgets,</li>
762799
<li>add near-core classes only after the intrinsic core is fully coherent.</li>
@@ -786,15 +823,25 @@ In short:
786823
<li><code>.wfrog</code> artifacts publish machine-readable widget and realization artifacts without collapsing those ownership layers.</li>
787824
</ul>
788825

826+
<p>
827+
The intrinsic baseline is intentionally semantic-first:
828+
</p>
829+
830+
<ul>
831+
<li>class law defines public meaning,</li>
832+
<li>realization defines embodiment,</li>
833+
<li>skins and variants remain compatible realization choices unless public class law explicitly diverges.</li>
834+
</ul>
835+
789836
<p>
790837
The next most coherent file to handle after this rewrite is:
791838
</p>
792839

793840
<ul>
794-
<li><code>Libraries/Realizations/Default/Readme.md</code></li>
841+
<li><code>Libraries/Realizations/Default/Package.md</code></li>
795842
</ul>
796843

797844
<p>
798-
That file is the next strongest consolidation point because it should explicitly mirror the same doctrine:
799-
small semantic class core, realization-side embodiment variants, and no accidental creation of new classes from purely visible differences.
845+
That file is the next strongest consolidation point because it should now mirror the same doctrine in machine-readable publication form:
846+
portable class-owned semantics, explicit realization-owned embodiment, explicit variant and skin selection posture, and no semantic drift hidden inside resource selection.
800847
</p>

0 commit comments

Comments
 (0)