@@ -867,65 +867,86 @@ Overflow Alignment: the ''safe'' and ''unsafe'' keywords and scroll safety limit
867867 <dt> (no value specified)
868868 <dd>
869869 If the <a>overflow alignment</a> isn't explicitly specified,
870- the default <a>overflow alignment</a> is a blend of “safe” and “unsafe”,
871- and also varies slightly depending on layout mode.
872-
873- For [=absolutely positioned=] [=alignment subjects=]
874- which are not in [=legacy positioning mode=]
875- in the given axis:
876-
877- 1. If the [=alignment subject=] overflows its [=inset-modified containing block=]
878- (its normal [=alignment container=] ),
879- no effect.
880- 2. If the <em> size</em> of the [=alignment subject=]
881- fits within its [=original containing block=] ,
882- but its alignment would cause it to overflow the [=original containing block=] ,
883- it is instead shifted the minimum amount
884- to stay within the [=original containing block=]
885- (flush with the edge of the [=original containing block=]
886- it was trying to overflow over).
887- 3. If the size of the [=alignment subject=]
888- overflows the [=original containing block=] ,
889- it is instead start-aligned within the [=original containing block=] .
890-
891- For all other elements:
892-
893- 1. If the [=alignment subject=] overflows its [=alignment container=] ,
894- no effect.
895- 2. If the [=alignment subject=] would overflow
896- the [=scrollable overflow area=] of its nearest ancestor [=scroll container=] ,
897- (thus extending into the “unscrollable” region),
898- then its overflow in that direction is limited
899- by biasing any remaining overflow to the opposite side.
900-
901- Issue: It may not be Web-compatible to implement the “smart” default behavior
902- (though we hope so, and believe it to be likely),
903- so UAs should pass any feedback on this point to the WG.
904- UAs that have not implemented the “smart” default behavior
905- must behave as ''safe'' for 'align-content' on [=block containers=]
906- and ''unsafe'' otherwise.
870+ the default <a>overflow alignment</a> is a blend of “safe” and “unsafe”.
871+ See [[#auto-safety]] for details.
907872 </dl>
908873
909- An [=absolutely-positioned element=]
910- is in <dfn export>legacy positioning mode</dfn>
911- in a given axis
912- if all of the following are true:
913874
914- * the relevant [=self-alignment property=] is ''justify-self/normal'' on the element.
915- * the elements's 'inset-area' property does not define an [=inset-area grid=] .
916-
917- Note: A number of newer behaviors across several specifications
918- can't apply to elements in [=legacy positioning mode=] ,
919- due to backwards-compatibility constraints.
920-
921- <!--
922- ██████ ███████ ██ ██ ████████ ████████ ██ ██ ████████
923- ██ ██ ██ ██ ██ ██ ███ ██ ██ ██ ███ ██ ██
924- ██ ██ ██ ██ ██ ████ ██ ██ ██ ████ ██ ██
925- █████████ ███████ ██ ██ ██ ██ ██ ██ ██ ██████ ██ ██ ██ ██
926- ██ ██ ██ ██ ██ ██ ████ ██ ██ ██ ████ ██
927- ██ ██ ██ ██ ██ ██ ██ ███ ██ ██ ██ ███ ██
928- ██████ ███████ ██ ██ ██ ████████ ██ ██ ██
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+ ███▌ ███▌ █▌ ▐▌ █▌ █████▌ █▌ ▐▌ █▌
929950-->
930951
931952<h2 id='content-distribution'>
0 commit comments