- From: Dael Jackson <daelcss@gmail.com>
- Date: Sun, 27 Aug 2017 14:57:01 -0400
- To: www-style@w3.org
========================================= These are the official CSSWG minutes. Unless you're correcting the minutes, Please respond by starting a new thread with an appropriate subject line. ========================================= Inert ----- - nianar let the group know Chrome was planning to ship an experimental version of inert behind a flag. Motion Path ----------- - RESOLVED: Eric Willigers is now a co-editor on Motion Path Sizing ------ - RESOLVED: height:stretch behave as align-self:stretch when possible, otherwise revert to auto - RESOLVED: Take the change "However, in the case of a replaced box with a percentage-based width/max-width/height/ max-height, the percentage is resolved to zero when calculating the min-content contribution in the corresponding axis." Step Function Parameter Names ----------------------------- - RESOLVED: Use steps() function with the <integer> being number of visible frames during the animation duration - The names for the properties are still undecided. A github issue will be opened for bikeshedding. Intrinsic Sizing of No Intrinsic Size Images -------------------------------------------- - RESOLVED: Replaced elements with only an intrinsic aspect ratio has a min-content size of 0 and a max-content size of 300px wide and 300*aspect-ratio height. - RESOLVED: In vertical WM, replaced elements with only an intrinsic aspect ratio use a 150px height and 150*aspect ratio width, instead. ===== FULL MINUTES BELOW ====== Agenda: https://wiki.csswg.org/planning/paris-2017#topics Scribe: tantek Inert ===== <nainar> Inert spec: https://github.com/WICG/inert/blob/master/README.md astearns: So this also doesn't have a gh issue. nainar: Currently we have inert shipping behind a flag in Chrome. nainar: Alice said there was feedback to have it affect(ed by) visibility? nainar: We can potentially do visibility later. dbaron: Who wanted that? nainar: Microsoft dbaron: Those sound like pretty different things. TabAtkins: Where was MSFT opinion documented? nainar: All I have is Alice's word. Rossen: We did discuss this in last TPAC Rossen: last September. Rossen: She did explain, at the time, my recollection of the conversation was that that was me responding in 5 min of thinking about this, not really thinking through any of the consequences. Rossen: The general idea wasn't crazy, I think historically some of the pushback used to be around the interaction between tabbing ... focus ... inert Rossen: Someone used to have an issue with that, I don't know who. Rossen: Going off of memory. I don't recall asking for it, or requesting it. Rossen: So to your question as to whether you should go ahead and experiment and see what happens, I have no objection to it. Rossen: Given that it is going to be shipped as an attribute that doesn't impact CSS. nainar: I can go back to Alice and get context. dbaron: Experiment or release? nainar: Experimental web platform feature - behind a flag. Rossen: Maybe it was Alex on the Mozilla side? dbaron: ok astearns: Confirming experimental only. Motion Path =========== <ericwilligers> https://drafts.fxtf.org/motion-1/ astearns: We got through today's agenda, skipping a few things astearns: One additional thing was adding Eric W. as another editor on motion path spec. Rossen: Current set of editors is- Rossen: dirk, shane, and jihye astearns: As far as I know dirk is still interested but has very little time. TabAtkins: He has come back to making some edits. Rossen: He cannot commit to making phone calls unless explicitly requested for a particular issue. Rossen: He can still keep editing on gh. astearns: any concerns about adding editor? RESOLVED: Eric Willigers is now a co-editor on Motion Path <ericwilligers> my github username: ewilligers Sizing ====== astearns: There are four sizing issues that I didn't get anywhere in the agenda. astearns: There are also the alignment issues we didn't get to this morning. astearns: We need to return to those based on some side discussions? Rossen: No I think the issues were just not short Rossen: baseline ... and baseline .... TabAtkins: In both of those we made some insight with some of yesterday's post meeting stuff. TabAtkins: I'd prefer to defer until we discuss and put together some evidence. fantasai: We should try and sort these out today or so, so when we run into problems it's while people are here to help us solve them. Rossen: Shall we fold in with grid discussions? fantasai: Yes let's do that. TabAtkins: there is #1614 `height: stretch` should just behave as `height: auto` ------------------------------------------------------ github: https://github.com/w3c/csswg-drafts/issues/1614 TabAtkins: The stretch keyword is defined for width, except for height, it tries to do the same thing except with the additional constraints that height has. TabAtkins: The effect is that we go up the tree looking for a definite height, and we just add up all the MBP between the element and the ancestor, essentially trying to make it as big as possible without overflowing the parent. TabAtkins: This causes at least two problems: TabAtkins: 1 what happens if two descendants want height stretch TabAtkins: 2 second problem, if no ancestor is definite height, then we hit the ICB which is the height of the screen TabAtkins: So it's confusing that a height stretch element ends up being one screen height. fantasai: Or you ate it all up with MBP. TabAtkins: Yeah MBP would be subtracted from the ICB height as well. fantasai: It accumulates them all the way to the root. TabAtkins: Two possibility, height stretch acts like height auto. The other possibility, in layout moves that allow you to set a line with justify-*? TabAtkins: It does give you good behavior when ... TabAtkins: It does most of what was actually requested TabAtkins: In the layout modes where it does not make sense, like block, it just becomes auto. [fremy mentioned how we came up with stretch because align:stretch didn't work out for images with aspect ratio; fantasai pointed out this was "contain" not "stretch" though both are similar] fremy: That was not the reason that this was introduced fremy: because we cannot use the alignment so we came up with stretch. fremy: It does not solve the problem why we created it in the first place fantasai: Different issue. fremy: Oh ok not contains. fremy: nm. fantasai: What we want is comments from the WG on this, what do you think of this proposal, any other ideas how should we interpret stretch in the block axis. fantasai: We know how it should work in the inline axis. iank: ... fantasai: This and contain have certainly similarities. fantasai: Contain on something that does not have an aspect ratio is going to behave as stretch, so whatever stretch does has to be appropriate for that interaction with contain. TabAtkins: We haven't fully defined that anyway. fantasai: We did. <fantasai> https://drafts.csswg.org/css-sizing-4/#contain-sizing Rossen: You were saying height stretch wouldn't behave the same as justify-self or align-self, in layout modes that are ... TabAtkins: all kinds, we just don't care in .... ? Rossen: like table cells, it would act as height: auto Rossen: for absolute positioning ... TabAtkins: Stretch has a value which is that it fills the containing block without offsets Florian: ... TabAtkins: There are a few reasons. TabAtkins: We really want width:stretch, because there are times you want to invoke that behavior but width: auto does something different. Bert: Would it be more easy to set the stretch on the margin or padding? TabAtkins: You can already do margin control but setting those to auto. Bert: This I assume to anywhere you have fixed height? TabAtkins: Anywhere where alignment properties .... ? Bert: Like a case like columns, you have multiple columns, you have the height of the elements, but you don't know which of the elements will be at the bottom of the columns. TabAtkins: Can't do that now, block flow, but ... Bert: I want to avoid setting it on height because the element might be broken across columns. Bert: I still want it stretched to the bottom (edge) but ... Bert: you can just set stretch on the margin at the top or bottom. TabAtkins: We did make it work on margins with flexbox. TabAtkins: Focusing just on height:stretch, any different ideas? any objections? fremy: Is your proposal to say that in the cases that ... know, that you will behave as align stretch or in all cases? astearns: Proposal is for height:stretch to behave as align-self of stretch in those layout modes that define align-self of stretch and fallback to height auto otherwise. fremy: When you have nested stretch? when you have scrollable containers? TabAtkins: Doesn't solve either of the initial problems, e.g. two sibling elements stretch. TabAtkins: Align-self: stretch knows how to handle itself. TabAtkins: Grid and flexbox know how to handle multiple align self stretch elements. TabAtkins: I don't want to define a feature that causes horrible amounts of overflow. TabAtkins: A lot of the use-cases are addressed by just using flex or grid. fremy: Then why? TabAtkins: It's frustratingly confusing if height and width allow different keywords, and there is reasonable behavior we can define for height: stretch TabAtkins: except no reasonable way to define it for a block. fremy: Still not entirely sure. fremy: It's not useful but it's allowing ... ? TabAtkins: The other bit of it there was a discussion in an earlier telcon about what the fallback value for stretch should be when there is a max-height keeping it from being full height. TabAtkins: You set height:stretch, then just use align-self as normal to set the fallback TabAtkins: helps us avoid having to have a specific flag. fremy: ok fair. TabAtkins: If they know how height-stretch works. astearns: Any objections having height:stretch behave as align self stretch when possible, otherwise revert to auto? astearns: Hearing no objections. RESOLVED: height:stretch behave as align self stretch when possible, otherwise revert to auto astearns: Any other issues that we could ... ? fantasai: I think I can do 765 [max-]width|height and intrinsic sizes -------------------------------------- github: https://github.com/w3c/csswg-drafts/issues/765 TabAtkins: Intrinsic size of some elements with a percentage width or height. fantasai: Special behavior that images and form controls have fantasai: if you specify their width as a %, then their min-content size is assigned as if 0 sized. fantasai: So this behavior has not been spec'd anywhere and should be spec'd. fantasai: The one open consideration, form controls did not do this for max-width, but images did. so images responded to max-width, but form controls didn't. fantasai: TabAtkins and I decided to do min and max for both images and form controls fantasai: The only affected case would be you have specified max width percent on a form control, and the form control is inside shrink-wrapped container, and the form control is affecting the size of the shrink-wrapped container. fantasai: Seems like a really obscure case and I haven't found any. There may be some out there. fantasai: After talking with dbaron it seems that would be ok. We want wg resolution to make changes to the spec. astearns: I want to see the changes in the spec so we can see them in the spec astearns: and discuss them there. dbaron: To be clear, the thing that browsers do today isn't in the spec. dbaron: tab & fantasai are proposing something simpler but still fairly consistent. astearns: Are you interested in changing your behavior? dbaron: Willing to. Have been running with a patch and haven't found anything broken yet. <fantasai> Proposed text is "However, in the case of a replaced box with a percentage-based width/max-width/height/ max-height, the percentage is resolved to zero when calculating the min-content contribution in the corresponding axis." <fantasai> in https://drafts.csswg.org/css-sizing/#intrinsic-contribution dbaron: Other part hard here is defining replaced elements. TabAtkins: Apparently a commit went in today to HTML to define them. <TabAtkins> https://github.com/whatwg/html/pull/2857 PR to define replaced elements fremy: On some we are even more inconsistent. fantasai: For the sake of sanity we'd like to have consistency. fremy: e.g. video element with a slider fremy: all browser but edge, the default size of the control fremy: meanwhile in edge, default size of 0. fremy: There was a slider for the video element which was sized with max-width %. fremy: In edge since do we apply ... to this size, the minimum size was ... px, and the author provided size was 41px. fremy: In other browsers, they just use the normal default size of the control which was bigger than 41px. fremy: I do believe the edge behavior is what the author wanted. astearns: If we take this change then ... fremy: All browsers will behave as edge is behaving. astearns: any objections to taking this change? dbaron: FWIW I just checked the WHATWG HTML defined and it's not the one we want. dbaron: It's the stricter one. dbaron: It doesn't count form elements dbaron: only images, iframes, input type=image <dbaron> and a bunch of other things astearns: I'm hearing no objection to making the change <fantasai> I think we need to add "(including form controls)" here RESOLVED: take the change "However, in the case of a replaced box with a percentage-based width/max-width/height/ max-height, the percentage is resolved to zero when calculating the min-content contribution in the corresponding axis." <dbaron> applet that represents a plugin, audio that is exposing a user interface, canvas that represents embedded content, embed, iframe, img, input with Image type, object that represents an image plugin or nested browsing context, and video <dbaron> from https://html.spec.whatwg.org/multipage/rendering.html#replaced-elements Rossen: birtles did you have a chance to figure out? birtles: fantasai and I talked about. dbaron: I don't think the resolution is actually right dbaron: I think it is a subset of replaced boxes, not all of them. but a subset of a superset of the WHATWG definition dbaron: actually it does include iframe. dbaron: Replaced boxes may need some caveats. dbaron: One definition of replaced that is a more strict definition, is the thing things that obey the CSS sizing rules for replaced elements. dbaron: We just need to figure out which replaced boxes it means. Intrinsic Sizing of No Intrinsic Size Images -------------------------------------------- Scribe: TabAtkins GitHub: https://github.com/w3c/csswg-drafts/issues/951#issuecomment-316535854 fantasai: This issue is about a replaced element with an aspect ratio and no intrinsic size. fantasai: No intrinsic width or height, just ratio. What size will it be? fantasai: If you're not trying to compute intrinsic size, you use containing block width. fantasai: Stretch it to that, then use aspect-ratio to find the height. fantasai: But if you're shrinkwrapping around it, that's not usable. fantasai: So we need some kind of size to fall back to for this case. [pausing to talk to Amelia] fantasai: There's a number of solutions we could use, some aren't good, some are better. fantasai: The ones you were listing were: first, use 0, I agree it's bad. fantasai: Second is to inflate to the nearest container, but that requires doing layout, and dbaron said it's apparently insane and should not be followed. fantasai: Third you listed is to use 300px as width and calculate height from the aspect ratio. I think that's the first possible option. fantasai: Another option is to use the height or width of the ICB. fantasai: Another is to use the nearest container with any fixed size. fantasai: Another is nearest scroll container with a fixed size. fantasai: We have a similar problem for writing modes, where we need to find a default size when we have an orthogonal flow. fantasai: So it doesn't have an infinite inline size. fantasai: We originally specified using ICB height, but it was pointed out that's not the most useful thing if you're in a smaller scrolling container. fantasai: And so maybe we should use the height of the nearest scrolling container with a fixed height. fantasai: We could use that same solution here. TabAtkins: Find the nearest container options are similar to height: stretch problems TabAtkins: So might be as bad as that, not sure. Myles: Why not zero? fantasai: We try to avoid dataloss by default. TabAtkins: Seems like 300px would be the easiest. fantasai: Scrollport seems more useful. TabAtkins: Well, minus intervening mbp, right? fantasai: No, just the mbp on the element itself. TabAtkins: That'll often overflow then. fantasai: Yes, but you can scroll to see it. Rossen: Usually. fantasai: But you can fit the image within the scrollport at least if you scroll it into place. AmeliaBR: Even though 300/150 is totally arbitrary, it is already being used in other cases where you don't have an aspect ratio at all. <tantek> like iframes fantasai: It's there because there had to be something, not because it's in any way useful. Rossen: but is going to be obstructed by scrollbars in cases of auto scrollbars depending on when the size is resolved. AmeliaBR: Yeah, but creating different rules means increasing the number of behavior differences, where you change one thing and the result dramatically changes. AmeliaBR: So "stick with what we already have" has some predictability to it. TabAtkins: Agree. dbaron: Other thing about 300/150 means it'll show up, and if it's not what you wanted, you can change it to something else. TabAtkins: As opposed to shrinking it to 0. <Rossen> and this is also a very new and random behavior that is even different than height/width: stretch dbaron: Yes. fantasai: Yeah, 0 is the worst option. Rossen: Yup, the 300px isn't great, but it's reliable and common, and if people don't like it, they can set the values explicitly. Florian: And while it's not useful, it's not dangerous; it won't usually cause overflow. fantasai: One thing for sure is that min-content size should be 0. fantasai: Choosing an arbitrary min-content size prevents it from shrinking below that size, but the whole point of an image without intrinsic dimensions is that it can shrink. TabAtkins: I agree with that. fremy: So a float would shrink it to 0? TabAtkins: Opposite - it'll be as large as possible there. Floats are *limited* to min-content below, but they try to be max-content size. RESOLVED: Replaced elements with only an intrinsic aspect ratio has a min-content size of 0 and a max-content size of 300px wide and 300*aspect-ratio height. AmeliaBR: Qualification is that it should be defined as inline size, not width. fantasai: Images actually are always upright, they don't respond to writing mode. AmeliaBR: Like in vertical text, use 150px height, then 150*aspect ratio for width. fantasai: Not sure we want to have the sizing behavior change between horizontal and vertical WM. dbaron: Does css-writing-modes say how it revises CSS2 10.3.2 and 10.6.2? Should it? astearns: I think we should keep the resolution as-is, and have test-cases for it in WM to see what the behavior actually is, if we're interoperable. fantasai: WM does say how it revises those sections. fantasai: Currently this case is undefined in CSS2, so that's fine. fantasai: What it says about the case that is defined, is that it's analogous - you treat widths as the inline axis, etc, and translate the chapter 10 algos accordingly. fantasai: But it does say that images don't rotate and their intrinsic dimensions don't rotate. fremy: I checked in Edge, if you're using vertical text, we do use 150px height and 150*AR width. Florian: Is it annoying to have the intrinsic dimensions depend on something like WM? RESOLVED: In vertical WM, replaced elements with only an intrinsic aspect ratio use a 150px height and 150*aspect ratio width, instead. Florian: I ran into these sorts of bugs with testing box-sizing/svg /aspect ratio, and browsers behave different for aspect-ratio+height vs width+height. TabAtkins: Oh, that's bad. Having any 2 should be equivalent to having all 3. dbaron: Did you file bugs? Florian: I think I did where we had less than 2 correct cases. dbaron: Is there a test suite in WPT for this? Florian: Yes. Step Function Parameter Names ============================= github: https://github.com/w3c/csswg-drafts/issues/1301 TabAtkins: Strong objection to anything that resembles sizing or alignment keywords. TabAtkins: They are extremely confusing. TabAtkins: We have start and end already. TabAtkins: Imply dropping start or end step TabAtkins: we should come up with two keywords that fit that model. astearns: One of the reasons I proposed both and neither. Florian: it depends what what the step is, flat or vertical. TabAtkins: flat fantasai: vertical TabAtkins: I think for most authors the intuitive model is number of values received scribe: fantasai birtles: If you have say, steps(2, start) birtles: this is what you see as the timing function. birtles: If you're repeating this, you just see those two values, but if you apply this to a transition, you will see the pictures before and after the timing function. TabAtkins: The starting frame there isn't included in the value birtles: But as an author you're seeing all three values. TabAtkins: If you say I want transition to last 1s, and steps(2) and the time of the steps don't last .5s each, then it's bad. birtles: I disagree. birtles: We've already resolved we're sticking with steps() and the number is the number of jumps. <fantasai> https://github.com/w3c/csswg-drafts/issues/1301#issuecomment-310571203 TabAtkins: The argument from RachelNabors is that you can't accurately time a transition or animation that during the period shows both the start and end value TabAtkins: because right now you have to, during the transition, either the starting value is not shown and you jump immediately or TabAtkins: During a single transition, if you want to see both start and end there, which is a use case RachelNabors brought up, you have to do some non-intuitive duration-manipulation to make it show correctly. TabAtkins: If you want a 3-step frame-based cartoon that lasts 3s then... birtles: We're talking cross-purposes. birtles: We're all agreeing that this timing function exists birtles: we're just talking about the syntax for it. birtles: We went over the number of steps this morning birtles: and resolved on that aspect. dino: I think we agree that there are three steps there, if we're going up a staircase, there are three steps there. fantasai: We're off-topic, the topic is the name of the keywords not the syntax of the function overall. That was resolved already. TabAtkins: I object to that fantasai: Doesn't matter, you're off-topic TabAtkins: There are 4 things being shown ! dino: 4 things shown is 3 steps TabAtkins: You're thinking about the wrong things. [rehash of arguments] TabAtkins: I'm representing RachelNabors, nobody else is! birtles: I presented the arguments on both sides, and explained why I think that the steps() syntax is the right way to go. birtles: Didn't go with frames() for two reasons birtles: First is, it's less appropriate for contexts outside of looping animations birtles: transitions and gradients being examples. birtles [gives more specific examples] birtles: The other concern was discoverability. birtles: If you start with steps() and it's not quite right, then can't discover frames() behavior by adjusting arguments, and also need to change how you count birtles: or vice versa. fremy: Your problem is that you count 3 here, what if instead we count 4, but keep it in the steps() function. TabAtkins: If the third one was steps(4, something) and the fourth one was steps(2, somethingelse) then it's fine. fremy: So you don't object to using steps(), just object to using 3. <Bert> ... another possibilities is to count the # of intermediate values: steps(1) would mean going from start to finish with 1 intermediate step, and steps(0) means go directly to the end value without any intermediate values... dino: So you're counting the number of places you put your foot rather than the number of times you go up. TabAtkins: Want it to be number of things you see gregwhitworth: Rachel does say that she's fine to re-use steps(). <gregwhitworth> for reference - here is the comment where RachelNabors says that: https://github.com/w3c/csswg-drafts/issues/1301#issuecomment-299749586 birtles: The tricky bit is that in the first two cases, which we have right now, it just so happens that the number of values you see also matches the number of jumps. birtles: That's why that happens to be okay. birtles: But that's only true when you're repeating birtles: If you're transitioning or using animation-fill-mode, then you see more. TabAtkins: But that's not part of the duration. dino: TabAtkins' only cases where you put your foot between the start and the end, doesn't care about what's before or after the start/end. ericwilligers: If we go with where you put your foot, then the bottom left would be steps(4, neither) and the bottom right would be steps(2, both) <dbaron> referring to the diagram in https://github.com/w3c/csswg-drafts/issues/1301#issuecomment-310571203 TabAtkins: You're showing neither start nor end during the duration TabAtkins: I think it would be better to have drop-* keywords or something. TabAtkins: but then you'd have to ... [mumbling in the corner] dbaron: I think start and end made a lot of sense for step-start and step-end, but maybe less so here TabAtkins: I agree. They are the correct start/end pairs for single steps. astearns: So I've heard people say they don't like the idea of having the bottom left be steps(4) and the bottom right be steps(2), but does anyone object to the idea of counting places to put your foot? TabAtkins: The other people talking about other interpolation stuffs also want 4 and 2. TabAtkins: So I think they're intuitive on their own. birtles: This is a frame based animation here: [birtles projects a demo birtles writes animation: slide 3s infinite steps(10, start) ] birtles: You see you miss frame 1 <birtles> http://slides.com/birtles/browser-animation-2017/live#/3/2 birtles: If I s/start/end, I start at 1, but don't set 10 birtles: If I say frames(11), then I get all the 10 frames. birtles: But to get this effect, I have to change the number. ... birtles: If you're switching between the two, then you have to change the number. dbaron: Seems like we have one solution that isn't drawing strong objections from people dbaron: which is to use the steps() function with two new keywords, and count the number of places you put your foot. Bert: Referring back, if you count the number of intermediate steps, there's only 9 intermediate steps. Bert: Some variations, you only see those 9 steps, the first and last are outside the animation itself. [everybody picks a number to shout] TabAtkins: Using values 10 11 or 9 with some yet-undecided set of keywords, using steps() function name, seems to be drawing least objections. TabAtkins: Anyone object to that, assuming good keyword names? dbaron: We need to find names that work with the numbers. astearns: Any objections to this proposal? astearns: So we'll add to this morning's resolution that we'll use steps() function with numbers that count the place where you put your foot. astearns: I'm concerned that this will prove confusing. Bert: If you allow 11 here, then 1 makes no sense. Bert: Then why not lower the number, and say it's the number of intermediate values. ... dbaron: Bert is concerned about the allowed range of integers, which will vary depending on the keyword RESOLVED: Use steps() function with the <integer> being number of visible frames during the animation duration <dbaron> 1- for the existing keywords, and 0- and 2- for the new keywords <TabAtkins> dbaron, actually I think the "intermediates only" is also 1+, not 0+. You need to have at least one "intermediate" value to show! <TabAtkins> dbaron, so the frames() use-case is 2+, the rest are 1+. <dbaron> TabAtkins, actually, maybe the new ones are both 2+ <TabAtkins> dbaron, Nah, "intermediate only" is fine to be 1 - it shows only the 50% value during the animation. astearns: What should the keywords be fantasai: If we were starting from scratch I have an idea. fantasai: ... we'd use the same kind of: fill, start-fill, end-fill, and ... we have this concept of fill. <fantasai> fill-start, fill-end, fill-between, fill-evenly <fantasai> just like alignment <fantasai> fill is time that's filled by a frame TabAtkins: I'd be ok with 4 new keywords to make a set TabAtkins: rather than adding to start+end. astearns: You could have the keywords say where you jump. So you have steps(3, start), steps(3, end), steps(4, neither), or steps(2, both). fremy: 4th one is intermediate only, only shows intermediate only fremy: 3rd one includes ... fremy: open set and closed set fremy: intermediate and TabAtkins: Intermediate is over the desired spelling level. dino: Anyone wants 4th one? TabAtkins: Yes, definitely have requests for that TabAtkins: esp for gradients. <TabAtkins> linear-gradient(red 20%, steps(5, middle-only), blue 80%) <= 5 color stripes between the red and the blue fantasai: So both and neither was ...? No, it's really confusing. TabAtkins: As dbaron was saying, the start/end keywords make sense for the step-* keywords but not so much for the steps() function. Florian: We do both and neither. fremy: So both is show both start and end, and neither is ... TabAtkins: No, that's backwards TabAtkins: because of the way start and end are defined. fremy: Screw it, we should do it this way around anyway. TabAtkins: That's okay if we have a prefix, like show-start or TabAtkins: show-end, show-start, show-both, show-neither <birtles> steps(4, frames)? (Not sure about the fourth option) astearns: So show-end is the same as start. TabAtkins: if we do show keywords we do it this way, if we do drop keywords we can match start/end. TabAtkins: But it also was pointed out that drop has some weird implications of dropping a frame TabAtkins: show-* doesn't have that problem or one of adding a frame. dbaron: stripes? :) <dbaron> (somebody said before me that frames was for animations and the other one was for gradients) birtles: steps(4, frames) steps(2, stripes) dbaron: Though they all give stripes, just a different set of stripes. <dbaron> actually 0 does work as the number for the fourth option <Bert> just thinking aloud, but how about: step(n [, show-first || show-last]?) fantasai: Oh, I like that Bert. That's better than using start/end with opposite meanings <melanierichards> +1 to Bert's idea <fantasai> although I'd still have both keyword, because it's easier to type <fantasai> and also, how do you get the 4th variant? <TabAtkins> Bert, can't make both keywords optional, unfortunately, because the "no keyword" case (steps(3)) already means steps(3, end). :( [Rossen and Tab discuss some examples] TabAtkins: Let's go back to thread with what we've concluded and ask for help astearns: maybe we should open a new issue astearns: OK, let's close this issue and open a new one on the new keywords </meeting-day>
Received on Sunday, 27 August 2017 18:57:57 UTC