- From: Taylor Hunt via GitHub <sysbot+gh@w3.org>
- Date: Tue, 18 Jan 2022 00:39:21 +0000
- To: public-css-archive@w3.org
tigt has just created a new issue for https://github.com/w3c/csswg-drafts:
== [css-sizing-3] Use-case for intrinsic multicolumn sizes ==
Addressing [this part in the 2021-12-17 document status](https://www.w3.org/TR/2021/WD-css-sizing-3-20211217/#sotd):
> The following features are at-risk, and may be dropped during the CR period:
>
> - Additions to `column-width`
I recently styled a layout of [a rather long unordered list](https://code.ti.gt/ptv/dex/cleffa-family/) where `column-width: max-content` would have been exactly what I was looking for:
<details>
<summary>Screenshots of layout across viewport widths</summary>
<img alt="widest" src="https://user-images.githubusercontent.com/8072522/149790312-05856502-f2a6-40cd-93bd-fae4453bba14.png" width="720" height="212">
<img alt="wide" src="https://user-images.githubusercontent.com/8072522/149790311-3517068a-7194-48b2-b976-5d44d38a1339.png" width="688" height="242">
<img alt="middle" src="https://user-images.githubusercontent.com/8072522/149790309-343e117a-37ac-4470-b37d-33d35732ca1d.png" width="476" height="350">
<img alt="narrow" src="https://user-images.githubusercontent.com/8072522/149790308-bdf33955-918d-4e42-9e6b-27552f9e446b.png" width="243" height="545">
<img alt="narrowest" src="https://user-images.githubusercontent.com/8072522/149790307-782e548b-5529-44ee-a885-43fc0dea55dc.png" width="157" height="703">
</details>
<details>
<summary>Source code</summary>
```css
.mon_moves {
display: flex;
flex-wrap: wrap;
align-items: flex-start;
}
.tutor-moves {
flex: 1;
}
.tutor-moves_heading {
margin: 0;
}
.tutor-moves_list {
margin: 0;
padding: 0;
list-style: inside;
columns: max-content;
}
li { /* specifically for CSS multicolumn fragmentation, but good for printing too */
break-inside: avoid;
}
```
```html
<section class=mon_moves>
<h3 class=moves_heading>Moves</h3>
<table class=moves_table>
<thead>
<th>Level<th>Learns
</thead>
<tr><th>1
<td><a href=/ptv/moves/#pound>Pound</a>, <a href=/ptv/moves/#sing>Sing</a>, <a
href=/ptv/moves/#copycat>Copycat</a>, <a href=/ptv/moves/#defense-curl>Defense Curl</a>
<tr><th>2
<td><a href=/ptv/moves/#sweet-kiss>Sweet Kiss</a>
<tr><th>3
<td><a href=/ptv/moves/#disarming-voice>Disarming Voice</a>
<!-- … -->
<tr><th>14
<td><a href=/ptv/moves/#astral-barrage>Astral Barrage</a>
</table>
<section class=tutor-moves>
<h4 class=tutor-moves_heading>Tutor Moves</h4>
<ul class=tutor-moves_list>
<li><a href=/ptv/moves/#ally-switch>Ally Switch</a>
<li><a href=/ptv/moves/#amnesia>Amnesia</a>
<!-- … -->
<li><a href=/ptv/moves/#zen-headbutt>Zen Headbutt</a>
</ul>
</section>
</section>
```
</details>
Right now I use a magic number instead with `columns: 8em`, but that can waste space if the item names are short, and wraps in an ugly way for item names that are too long. These issues are exacerbated by (auto-)translation — CJK ideographics always look like they’re wasting space, and German almost always triggers the ugly wrapping.
I tried flexbox and grid, but neither have desirable behavior: Grid’s `repeat(auto-* …)` wrapping doesn’t (yet?) allow truly intrinsic sizing either and fills the items ltr-tb instead of tb-ltr, and flexbox needs explicit height to wrap in the way I want — which largely defeats the point of handling unknown amounts of content across unknown viewports.
I know the “at-risk” status mostly has to do with implementer appetite, but I figured a good real use-case can only help.
Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/6961 using your GitHub account
--
Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config
Received on Tuesday, 18 January 2022 00:39:23 UTC