about summary refs log tree commit diff stats
path: root/src/css/layout.nim
Commit message (Collapse)AuthorAgeFilesLines
* css: resolve units to px before layoutbptato2024-12-161-87/+80
| | | | Lets us skip a couple pointless multiplications/divisions during layout.
* layout: do not allow canpx for scFitContentbptato2024-12-151-2/+2
| | | | | The test case attached is undefined in CSS 2.1, but css-sizing-3 wants us to just ignore the width property (I think).
* layout: also propagate xminwidth from table captionbptato2024-12-151-0/+1
| | | | | | | this is necessary too, now that I think of it (well, table caption sizing is still half-broken, but that's a problem for another day...)
* layout: set table intrinsic min width to specified widthbptato2024-12-151-0/+3
|
* layout: do not trust specified table cell heightbptato2024-12-151-3/+4
| | | | | If the contents are larger than the specified cell height, then it is simply ignored.
* lunit: remove redundant codebptato2024-12-131-1/+1
| | | | | | using div instead of / is sort of weird, but it makes it clearer if we're dividing floats or layoutunits (and is already what the code uses).
* css: CSSComputedValue -> CSSValuebptato2024-12-121-50/+50
| | | | | "Computed" was redundant; other types of values don't have a common type.
* layout: small cleanupbptato2024-12-101-60/+60
|
* layout: override table cell width if its min width is greaterbptato2024-12-101-0/+2
| | | | We can do this now that xminwidth is more accurate.
* layout: proper min width clampingbptato2024-12-101-73/+70
| | | | better
* layout: another min width clamping hackbptato2024-12-101-20/+29
| | | | still not quite right, but it's slowly taking shape
* layout: another xminwidth kludgebptato2024-12-081-0/+4
| | | | yeah idk
* layout: round inline block padding to cellsbptato2024-12-071-1/+7
| | | | | Seems more compatible with websites that use smaller fonts + padding for styled code tags.
* pager, term: use cell offset with kitty imagesbptato2024-12-031-1/+1
| | | | | | | | Gets rid of rounding errors when positioning images. Theoretically this is possible with Sixel too, but as always, it's ten times as difficult to implement as with Kitty, so I'll leave it for later.
* cssvalues: optimize CSSComputedValues sizebptato2024-12-031-3/+3
| | | | | | | | Roughly halves the object's size, and gets rid of a large number of allocations. It could be compressed further into a bitmap, but I'm not sure if it's worth the complexity.
* layout: temporary hack to fix xminwidth + flexbptato2024-12-021-0/+12
| | | | | | | | | | | | ugly, but better than the status quo. the core issue is that width, min-width should clamp xminwidth too, but it doesn't. this hadn't been an issue until recently, but since I made <pre> stretch out xminwidth too it had the unfortunate result that you now have to scroll on pages that nest pre in a flex. this still isn't a proper fix, in particular it won't work if min-width is set to 0, but on the sites I tried it happens to work anyway.
* layout: remove mystery startOffset adjustmentbptato2024-11-281-2/+0
| | | | | | | | Probably a remnant from back when startOffset meant (and was used for) something different. Interestingly, there was already a test case for this, but it was also wrong.
* twtstr: add mypairsbptato2024-11-281-2/+2
| | | | | This couldn't get into system.nim for technical reasons, but it's still pretty useful when iterating over non-mutable openArrays.
* layout, term, url: misc cleanupbptato2024-11-281-1/+0
|
* layout: support br clearbptato2024-11-271-28/+34
|
* layout: another intrinsic min width fixbptato2024-11-241-2/+4
| | | | forgot about word-break
* layout: fix intrinsic min width for words with wrapping opportunitiesbptato2024-11-241-11/+18
| | | | | | | This broke CJK combined with table layouts. (Inline layout's state dependencies between procs are getting a bit scary...)
* layout: fix intrinsic min width with whitespace: prebptato2024-11-191-0/+1
|
* layout: fix indefinitely sized flex items with boundsbptato2024-11-191-1/+8
| | | | maybe I'll get it right one of these days
* layout: fix crash on overlapping rowspan/colspanbptato2024-11-171-2/+3
| | | | | The rowspan filler must get a smaller colspan if its first cells are occupied by another cell with a colspan > 1.
* cssvalues: reduce CSSComputedValue sizebptato2024-11-141-26/+33
| | | | | | | far from perfect, but it's something. (ideally, we should store enums in a bitmap instead of allocating a GC'ed property for each of them.)
* layout: fix another flex sizing bugbptato2024-11-141-1/+8
|
* layout: remove inline paddingbptato2024-11-131-24/+5
| | | | like line height, this caused more trouble than it was worth
* layout -> cssbptato2024-11-101-0/+3402
as much as I wish it weren't, layout *is* css.