diff options
author | bptato <nincsnevem662@gmail.com> | 2025-03-11 18:03:02 +0100 |
---|---|---|
committer | bptato <nincsnevem662@gmail.com> | 2025-03-11 18:07:22 +0100 |
commit | 57b8dc6ae606a0f1499349b591269d6430bb234d (patch) | |
tree | bebed0471208f91b155a4eebdfa170ff214c306e /src/css/cssvalues.nim | |
parent | dbad124ac0a3245ccfdc17363b702a8e94440944 (diff) | |
download | chawan-57b8dc6ae606a0f1499349b591269d6430bb234d.tar.gz |
layout: shim grid as flow-root
Pros: basic display on pages that depend on grid being implemented to display anything at all. Cons: breaks pages that have a fallback layout for UAs that can't do grid. (In practice, such pages must be rare - CSS for layout is painful enough that nobody in their right mind will spend time on implementing a fallback layout for the same DOM.)
Diffstat (limited to 'src/css/cssvalues.nim')
-rw-r--r-- | src/css/cssvalues.nim | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/css/cssvalues.nim b/src/css/cssvalues.nim index 468b3298..8762e864 100644 --- a/src/css/cssvalues.nim +++ b/src/css/cssvalues.nim @@ -193,6 +193,8 @@ type DisplayFlowRoot = "flow-root" DisplayFlex = "flex" DisplayInlineFlex = "inline-flex" + DisplayGrid = "grid" + DisplayInlineGrid = "inline-grid" # internal, for layout DisplayTableWrapper = "" @@ -556,10 +558,11 @@ const OverflowScrollLike* = {OverflowScroll, OverflowAuto, OverflowOverlay} const OverflowHiddenLike* = {OverflowHidden, OverflowClip} const FlexReverse* = {FlexDirectionRowReverse, FlexDirectionColumnReverse} const DisplayInlineBlockLike* = { - DisplayInlineTable, DisplayInlineBlock, DisplayInlineFlex + DisplayInlineTable, DisplayInlineBlock, DisplayInlineFlex, DisplayInlineGrid } const DisplayOuterInline* = DisplayInlineBlockLike + {DisplayInline} const DisplayInnerFlex* = {DisplayFlex, DisplayInlineFlex} +const DisplayInnerGrid* = {DisplayGrid, DisplayInlineGrid} const RowGroupBox* = { # Note: caption is not included here DisplayTableRowGroup, DisplayTableHeaderGroup, DisplayTableFooterGroup @@ -751,8 +754,7 @@ func inherited*(t: CSSPropertyType): bool = func blockify*(display: CSSDisplay): CSSDisplay = case display of DisplayBlock, DisplayTable, DisplayListItem, DisplayNone, DisplayFlowRoot, - DisplayFlex, DisplayTableWrapper: - #TODO grid + DisplayFlex, DisplayTableWrapper, DisplayGrid: return display of DisplayInline, DisplayInlineBlock, DisplayTableRow, DisplayTableRowGroup, DisplayTableColumn, @@ -763,6 +765,8 @@ func blockify*(display: CSSDisplay): CSSDisplay = return DisplayTable of DisplayInlineFlex: return DisplayFlex + of DisplayInlineGrid: + return DisplayGrid func bfcify*(overflow: CSSOverflow): CSSOverflow = if overflow == OverflowVisible: |