- From: Florian Rivoal <florian@rivoal.net>
- Date: Fri, 23 Dec 2016 16:55:39 +0900
- To: fantasai <fantasai.lists@inkedblade.net>
- Cc: Theresa O'Connor <eoconnor@apple.com>, www-style list <www-style@w3.org>
Oops. Didn't notice there was a github issue for the same topic. Reposted my comment there: https://github.com/w3c/csswg-drafts/issues/727#issuecomment-268945879 Anybody who wants to repond, please respond there. —Florian > On Dec 23, 2016, at 16:40, Florian Rivoal <florian@rivoal.net> wrote: > > >> On Dec 23, 2016, at 00:31, fantasai <fantasai.lists@inkedblade.net> wrote: >> >> On 02/14/2014 03:55 AM, Theresa O'Connor wrote: >>> Hi, >>> >>> The initial value of `text-decoration-skip' is currently `objects'. >>> However, the default platform text decoration behavior on OS X and iOS >>> is equivalent to `ink'. We'd like to be able to match the system >>> behavior by default in WebKit. >>> >>> I propose we add an `auto' value to `text-decoration-skip'. While its >>> definition would give UAs broad leeway, the spec should have a >>> non-normative note encouraging UAs to match platform conventions for >>> `auto'. >>> >>> Once `text-decoration-skip: auto' is defined, we should change the >>> initial value of `text-decoration-skip' to be `auto'. >>> >>> WDYT? >> >> I think this could be easily handled by a UA stylesheet rule >> rather than a new UA-dependent initial value. :) WDYT? >> >> :root { text-decoration-skip: objects ink; } > > > Text decoration level 4 also wants to add more than just "objects" to > the initial value. It calls or "objects leading-spaces trailing-spaces" > > It makes sense to me to combine the two, and aim for > "objects leading-spaces trailing-spaces ink" as the default > > I think whether we should do so by having a verbose initial value, > introducing an "auto" value, or going via the UA stylesheet, can be > informed by trying to solve one other problematic aspect of this property. > Essentially, it is a list of independent toggles, but you > cannot easily add or remove one while keeping whatever else would be > there intact. > > Say I want to add leading-spaces and trailing-spaces to the default > behavior, and put this in my author stylesheet: > > :root { text-decoration-skip: objects leading-spaces trailing-spaces; } > > Bam, I've just accidentally killed safari's by-default ink-skipping > that I wasn't even aware of. > > Or say I go the other way around, and like safari's by-default ink-skipping > and add it to my author stylesheet to do the same in other browsers. Now > if/when browsers add leading-spaces and trailing-spaces to the default value, > I miss out. > > Similarly, say I want to remove object-skipping for a particular element, > <del> for example how do I do that if I don't want to affect whatever else > was being skipped, whether it came from default values, UA styles, or some > other style I wrote myself? > > I think the only precedent we have for this is the font-variant property, > which is also a list of switches. If we apply the same model to > text-decoration-skip, we'd have something like this (verbosity and > bikesheding aside): > > longhands: > text-decoration-skip-objects: none | objects > text-decoration-skip-spaces: none | [leading-spaces || trailing-spaces] | spaces > text-decoration-skip-ink: none | ink > text-decoration-skip-edges: none | edges > text-decoration-skip-box-decoration: none | box-decoration > > shorthand: > text-decoration-skip: none | auto | > [ > objects || > [ spaces | [ leading-spaces || trailing-spaces ] || > ink || > edges || > box-decoration > ] > > `none' sets all longhands to `none', `auto' is the initial value, and sets > longhands to something smart (`object ink leading-spaces trailing-spaces'?), > and other values are passed to through to the corresponding longhands and > set all others longhands to none. > > Alternatively, since we have no compat baggage to worry about and we > would want authors to use these longhands to avoid the traps I mentioned > at the beginning, maybe the shorthand should only have `none' and `auto'. > Actually I think I'd prefer that. Here's a possible bikesheeding: > > text-decoration-skip: none | auto > > text-decoration-skip-objects: none | all > text-decoration-skip-spaces: none | [leading || trailing] | all > text-decoration-skip-ink: none | all > text-decoration-skip-edges: none | all > text-decoration-skip-box-decoration: none | all > > I know that's a breaking change and the spec is already in CR, but if > you all agree it's a good idea, I wouldn't feel bad about doing it > given the lack of implementations. > > — Florian
Received on Friday, 23 December 2016 07:56:06 UTC