@@ -771,7 +771,9 @@ Distributed Alignment: the ''<content-distribution>/stretch'', ''space-between''
771771
772772 These values are represented with the <<content-distribution>> grammar term:
773773
774- <pre class='prod'><dfn><content-distribution></dfn> = space-between | space-around | space-evenly | stretch</pre>
774+ <pre class='prod'>
775+ <dfn><content-distribution></dfn> = space-between | space-around | space-evenly | stretch
776+ </pre>
775777
776778<h3 id='overflow-values'>
777779Overflow Alignment: the ''safe'' and ''unsafe'' keywords and scroll safety limits</h3>
@@ -865,31 +867,86 @@ Overflow Alignment: the ''safe'' and ''unsafe'' keywords and scroll safety limit
865867 <dt> (no value specified)
866868 <dd>
867869 If the <a>overflow alignment</a> isn't explicitly specified,
868- the default <a>overflow alignment</a> is a blend of “safe” and “unsafe”
869- in that an overflowing <a>alignment subject</a> is allowed to overflow its <a>alignment container</a> ,
870- but if this would cause it to also overflow
871- the <a>scrollable overflow area</a> of its nearest ancestor <a>scroll container</a>
872- (thus extending into the “unscrollable” region),
873- then its overflow in that direction is limited
874- by biasing any remaining overflow to the opposite side.
875-
876- Issue: It may not be Web-compatible to implement the “smart” default behavior
877- (though we hope so, and believe it to be likely),
878- so UAs should pass any feedback on this point to the WG.
879- UAs that have not implemented the “smart” default behavior
880- must behave as ''safe'' for 'align-content' on [=block containers=]
881- and ''unsafe'' otherwise.
870+ the default <a>overflow alignment</a> is a blend of “safe” and “unsafe”.
871+ See [[#auto-safety]] for details.
882872 </dl>
883873
884874
885- <!--
886- ██████ ███████ ██ ██ ████████ ████████ ██ ██ ████████
887- ██ ██ ██ ██ ██ ██ ███ ██ ██ ██ ███ ██ ██
888- ██ ██ ██ ██ ██ ████ ██ ██ ██ ████ ██ ██
889- █████████ ███████ ██ ██ ██ ██ ██ ██ ██ ██████ ██ ██ ██ ██
890- ██ ██ ██ ██ ██ ██ ████ ██ ██ ██ ████ ██
891- ██ ██ ██ ██ ██ ██ ██ ███ ██ ██ ██ ███ ██
892- ██████ ███████ ██ ██ ██ ████████ ██ ██ ██
875+ <h4 id=auto-safety>
876+ Automatic Overflow Alignment Safety</h4>
877+
878+ If no [=overflow alignment=] mode is specified for a property,
879+ the default behavior lies somewhere between ''safe'' and ''unsafe'' ,
880+ and also varies by layout mode.
881+
882+ <h5 id=auto-safety-scroll>
883+ Content Distribution for Scroll Containers</h5>
884+
885+ The default [=overflow alignment=] behavior
886+ for [=content distribution=] on [=scroll containers=] is ''unsafe'' .
887+ Non-''normal'' values of the [=content distribution properties=] instead
888+ alter the [=scrollable overflow area=] in order to allow access to the overflowing content.
889+ See [[#overflow-scroll-position]] .
890+
891+ <h5 id=auto-safety-position>
892+ Self-Alignment for Absolutely Positioned Boxes</h5>
893+
894+ For [=absolutely positioned=] [=alignment subjects=] whose
895+
896+ * relevant [=self-alignment property=] is not ''justify-self/normal'' and
897+ * whose 'inset-area' property successfully defines an [=inset-area grid=]
898+
899+ the default [=overflow alignment=] behavior is as follows:
900+
901+ 1. If the [=alignment subject=] overflows its [=inset-modified containing block=]
902+ (its normal [=alignment container=] ),
903+ but does not overflow its [=original containing block=]
904+ align as specified (''unsafe'' ).
905+ 2. If the <em> size</em> of the [=alignment subject=]
906+ fits within its [=original containing block=] ,
907+ but its specified alignment would cause it to overflow the [=original containing block=] ,
908+ it is instead shifted the minimum amount
909+ to stay within the [=original containing block=]
910+ while honoring the alignment as much as possible
911+ (i.e., flush with the edge of the [=original containing block=]
912+ it was trying to overflow over).
913+ 3. If the size of the [=alignment subject=]
914+ overflows the [=original containing block=] ,
915+ it is instead start-aligned within the [=original containing block=]
916+ (similar to ''safe'' ).
917+
918+ (For [=absolutely-positioned=] [=alignment subjects=] that fail the above conditions,
919+ see [[#auto-safety-defaults]] .)
920+
921+ <h5 id=auto-safety-default>
922+ All Other Alignment</h5>
923+
924+ For all other elements:
925+
926+ 1. If the [=alignment subject=] overflows its [=alignment container=] ,
927+ align as specified (''unsafe'' ).
928+ 2. If the [=alignment subject=] would overflow
929+ the [=scrollable overflow area=] of its nearest ancestor [=scroll container=] ,
930+ (thus extending into the “unscrollable” region),
931+ then its overflow in that direction is limited
932+ by biasing any remaining overflow to the opposite side.
933+
934+ Issue: It may not be Web-compatible to implement the “smart” default behavior
935+ (though we hope so, and believe it to be likely),
936+ so UAs should pass any feedback on this point to the WG.
937+ UAs that have not implemented the “smart” default behavior
938+ must behave as ''safe'' for 'align-content' on [=block containers=]
939+ and ''unsafe'' otherwise.
940+
941+ <!-- Big Text: *-content
942+
943+ ███▌ ███▌ █ █▌ █████▌ █████▌ █ █▌ █████▌
944+ █ █ █▌ █▌ █▌ █▌ █▌ █▌ █▌ █▌ █▌ █▌ █▌
945+ █ █ █▌ █▌ █▌ ██▌ █▌ █▌ █▌ ██▌ █▌ █▌
946+ ███████ ████▌ █▌ █▌ █▌ █▌▐█ █▌ █▌ ████ █▌▐█ █▌ █▌
947+ █ █ █▌ █▌ █▌ █▌ ██▌ █▌ █▌ █▌ ██▌ █▌
948+ █ █ █▌ █▌ █▌ █▌ █▌ █▌ █▌ █▌ █▌ █▌ █▌
949+ ███▌ ███▌ █▌ ▐▌ █▌ █████▌ █▌ ▐▌ █▌
893950-->
894951
895952<h2 id='content-distribution'>
0 commit comments