
GITHUB . COM {
}
Detected CMS Systems:
- Wordpress (2 occurrences)
- MyBB (1 occurrences)
Title:
[css-values] nested `calc()` is not defined by its grammar · Issue #6506 · w3c/csswg-drafts
Description:
Hello, The grammar of <calc-value> (Mathematical expressions - Syntax, CSS Values) does not seem to allow calc() to be used recursively and in other math functions. This is only possible with simple blocks. <calc-sum> = <calc-product> [ ...
Website Age:
17 years and 8 months (reg. 2007-10-09).
Matching Content Categories {📚}
- Education
- Insurance
- Dating & Relationships
Content Management System {📝}
What CMS is github.com built with?
Github.com uses WORDPRESS.
But there are also traces of other content systems on the page (myBB).
Traffic Estimate {📈}
What is the average monthly size of github.com audience?
🚀🌠 Tremendous Traffic: 10M - 20M visitors per month
Based on our best estimate, this website will receive around 10,000,019 visitors per month in the current month.
However, some sources were not loaded, we suggest to reload the page to get complete results.
check SE Ranking
check Ahrefs
check Similarweb
check Ubersuggest
check Semrush
How Does Github.com Make Money? {💸}
Subscription Packages {💳}
We've located a dedicated page on github.com that might include details about subscription plans or recurring payments. We identified it based on the word pricing in one of its internal links. Below, you'll find additional estimates for its monthly recurring revenues.How Much Does Github.com Make? {💰}
Subscription Packages {💳}
Prices on github.com are in US Dollars ($).
They range from $4.00/month to $21.00/month.
We estimate that the site has approximately 4,989,889 paying customers.
The estimated monthly recurring revenue (MRR) is $20,957,532.
The estimated annual recurring revenues (ARR) are $251,490,385.
Wordpress Themes and Plugins {🎨}
What WordPress theme does this site use?
It is strange but we were not able to detect any theme on the page.
What WordPress plugins does this website use?
It is strange but we were not able to detect any plugins on the page.
Keywords {🔍}
function, string, math, values, number, grammar, calcsum, calculation, round, calc, procedure, root, step, tabatkins, issue, calcvalue, represents, product, css, functions, numeric, written, component, strings, cssvalues, dimension, node, type, defined, cdoublev, calcproduct, run, argument, syntax, percentage, arguments, tree, consecutive, commented, quotes, calcconstant, return, term, correct, steps, attr, dont, production, sign, nested,
Topics {✒️}
activity cdoublev changed [css-values-4] simplification 3fdc9ef tabatkins removed css type representing tabatkins added telcon agenda announcement resolved years ago lingering issues brought comment metadata assignees product data structure closely-related issue math function represents reading technical specs css values calc-operator nodes calc simplification text standard english meaning relative dimension units immediately preceding step represent real numbers type projects projects milestone literal strings implicitly normal css math function term content spells text predates round css component w3c members calculation tree calculation tree math functions values separated consecutive values functional values math function numeric values numeric values product node content technical feedback mathematical function number values token productions simple blocks plain numbers grammar covers operator node open generic production
Payment Methods {📊}
- Braintree
Questions {❓}
- Already have an account?
- Am I right to think that the above definition was written after adding round() to the specification?
- Are you referring to round() and its keyword argument?
- Do they mean different things?
- Does it really matter?
- EDIT 1: or maybe the following change, to also allow other math functions?
- If you're referring to anything else, can you provide an example?
- Is it about to avoid writing the grammar of
with | [ ['*' | '/'] ]? - Is it about to avoid writing the grammar of with | [ ['*' | '/'] ]?
- Is it correct that root can only be a math function?
- Is it correct that this means that a Product data structure is different from a component value matching the grammar of
? - Is it correct that this means that a Product data structure is different from a component value matching the grammar of ?
- Return root is missing?
- The round() function accepts a component value that is not a calculation as its arguments:
= round( ? - What is a "run" in "every consecutive run of values"?
- Would the following change be appropriate?
- It can not replace a function argument that expects a
? - It can not replace a function argument that expects a ?
Schema {🗺️}
DiscussionForumPosting:
context:https://schema.org
headline:[css-values] nested `calc()` is not defined by its grammar
articleBody:Hello,
The grammar of `<calc-value>` ([Mathematical expressions - Syntax, CSS Values](https://drafts.csswg.org/css-values-4/#calc-syntax)) does not seem to allow `calc()` to be used recursively and in other math functions. This is only possible with simple blocks.
```
<calc-sum> = <calc-product> [ [ '+' | '-' ] <calc-product> ]*
<calc-product> = <calc-value> [ [ '*' | '/' ] <calc-value> ]*
<calc-value> = <number> | <dimension> | <percentage> | <calc-constant> | ( <calc-sum> )
<calc()> = calc( <calc-sum> )
<min()> = min( <calc-sum># )
... other math functions
```
Would the following change be appropriate?
```diff
- <calc-value> = <number> | <dimension> | <percentage> | <calc-constant> | ( <calc-sum> )
+ <calc-value> = <number> | <dimension> | <percentage> | <calc-constant> | ( <calc-sum> ) | <calc()>
```
**EDIT 1:** or maybe the following change, to also allow other math functions?
```diff
- <calc-value> = <number> | <dimension> | <percentage> | <calc-constant> | ( <calc-sum> )
+ <calc-value> = <number> | <dimension> | <percentage> | <calc-constant> | ( <calc-sum> ) | <math-function>
+ <math-function> = <calc()> | <min()> | <max()> | <clamp()> | ...
```
**EDIT 2:** and now I realize that the following part answer this (part of my) issue.
> A math function represents a numeric value [...] and can be used wherever such a value would be valid.
**EDIT 3:** duplicate of https://github.com/w3c/csswg-drafts/issues/1781.
---
To be honest, I'm creating this issue as a pretext to ask for clarifications about other math functions related parts of the specification that I'm not sure to understand correctly. I hope I will not waste anyone's time by asking stupid questions, and that they will help to improve some parts instead.
In the introduction of [The internal representation](https://drafts.csswg.org/css-values-4/#calc-internal) (of math functions), it is written:
> The internal representation [of any math function other than `calc()`] is an operator node with the same name as the function, **whose children are the result of parsing a calculation from each of the function’s arguments**, in the order they appear.
The `round()` function accepts a component value that is not a calculation as its arguments: `<round()> = round( <rounding-strategy>?, <calc-sum>, <calc-sum> )`. Am I right to think that the above definition was written after adding `round()` to the specification? `round()` does not seem to be handled also in the procedure to serialize a math function, which starts with *"If the root of the calculation tree `fn` represents is a numeric value [...]"*.
For step 3 of [the procedure to parse a calculation](https://drafts.csswg.org/css-values-4/#parse-a-calculation), it is written:
> For every consecutive run of value items in values separated by "*" or "/" operators: [...]
What is a "run" in "every consecutive run of values"? Is it different from "every consecutive values"? Should `1 * 2 * 3 * 4` be reduced to a Product `[[1, 2], [3, 4]]`, `[[[[1, 2], 3], 4]`, or `[1, 2, 3, 4]`? Does it really matter? I believe that the procedure to simplify a calculation tree will be able to process and return the same result for these 3 different structures anyway, but I'm just not sure why this "consecutive run" term is used.
For step 4 of this same procedure, it is written:
> If `values` has only one item, and it is a Product node or a parenthesized simple block [...]
Given the grammar of `<calc-sum>`, theoretically a sum can only receive `<calc-product>`. Is it correct that this means that a Product data structure is different from a component value matching the grammar of `<calc-product>`? If so, that's quite confusing to me. Is it about to avoid writing the grammar of `<calc-sum>` with `<calc-value> | <calc-product> [ ['*' | '/'] <calc-product> ]`?
In step 4 of the [procedure to simplify a calculation tree](https://drafts.csswg.org/css-values-4/#simplify-a-calculation-tree), it is written:
> If root is an operator node that’s not one of the calc-operator nodes, and all of its children are numeric values with enough information to compute the operation root represents [...]
Is it correct that `root` can only be a math function? If so, what is the reason for not using the `math function` term instead of *an operator node that’s not one of the calc-operator nodes*?
Also, it seems that none of the remaining steps of this procedure handle a math function containing non numeric values. Does a step *10. Return `root`* is missing?
I see this note above the procedure to [serialize a mathematical function](https://drafts.csswg.org/css-values-4/#calc-serialize):
> This section is still [under discussion](https://lists.w3.org/Archives/Member/w3c-css-wg/2016AprJun/0239.html).
But access to the link target is restricted to W3C members. Is it possible to give me clues for the following terms that appear in the different steps of this procedure:
- *the root of the calculation tree `fn` represents*
- *`fn` represents*
- *the calculation tree’s `root` node is*
Do they mean different things?
author:
url:https://github.com/cdoublev
type:Person
name:cdoublev
datePublished:2021-08-10T13:59:52.000Z
interactionStatistic:
type:InteractionCounter
interactionType:https://schema.org/CommentAction
userInteractionCount:6
url:https://github.com/6506/csswg-drafts/issues/6506
context:https://schema.org
headline:[css-values] nested `calc()` is not defined by its grammar
articleBody:Hello,
The grammar of `<calc-value>` ([Mathematical expressions - Syntax, CSS Values](https://drafts.csswg.org/css-values-4/#calc-syntax)) does not seem to allow `calc()` to be used recursively and in other math functions. This is only possible with simple blocks.
```
<calc-sum> = <calc-product> [ [ '+' | '-' ] <calc-product> ]*
<calc-product> = <calc-value> [ [ '*' | '/' ] <calc-value> ]*
<calc-value> = <number> | <dimension> | <percentage> | <calc-constant> | ( <calc-sum> )
<calc()> = calc( <calc-sum> )
<min()> = min( <calc-sum># )
... other math functions
```
Would the following change be appropriate?
```diff
- <calc-value> = <number> | <dimension> | <percentage> | <calc-constant> | ( <calc-sum> )
+ <calc-value> = <number> | <dimension> | <percentage> | <calc-constant> | ( <calc-sum> ) | <calc()>
```
**EDIT 1:** or maybe the following change, to also allow other math functions?
```diff
- <calc-value> = <number> | <dimension> | <percentage> | <calc-constant> | ( <calc-sum> )
+ <calc-value> = <number> | <dimension> | <percentage> | <calc-constant> | ( <calc-sum> ) | <math-function>
+ <math-function> = <calc()> | <min()> | <max()> | <clamp()> | ...
```
**EDIT 2:** and now I realize that the following part answer this (part of my) issue.
> A math function represents a numeric value [...] and can be used wherever such a value would be valid.
**EDIT 3:** duplicate of https://github.com/w3c/csswg-drafts/issues/1781.
---
To be honest, I'm creating this issue as a pretext to ask for clarifications about other math functions related parts of the specification that I'm not sure to understand correctly. I hope I will not waste anyone's time by asking stupid questions, and that they will help to improve some parts instead.
In the introduction of [The internal representation](https://drafts.csswg.org/css-values-4/#calc-internal) (of math functions), it is written:
> The internal representation [of any math function other than `calc()`] is an operator node with the same name as the function, **whose children are the result of parsing a calculation from each of the function’s arguments**, in the order they appear.
The `round()` function accepts a component value that is not a calculation as its arguments: `<round()> = round( <rounding-strategy>?, <calc-sum>, <calc-sum> )`. Am I right to think that the above definition was written after adding `round()` to the specification? `round()` does not seem to be handled also in the procedure to serialize a math function, which starts with *"If the root of the calculation tree `fn` represents is a numeric value [...]"*.
For step 3 of [the procedure to parse a calculation](https://drafts.csswg.org/css-values-4/#parse-a-calculation), it is written:
> For every consecutive run of value items in values separated by "*" or "/" operators: [...]
What is a "run" in "every consecutive run of values"? Is it different from "every consecutive values"? Should `1 * 2 * 3 * 4` be reduced to a Product `[[1, 2], [3, 4]]`, `[[[[1, 2], 3], 4]`, or `[1, 2, 3, 4]`? Does it really matter? I believe that the procedure to simplify a calculation tree will be able to process and return the same result for these 3 different structures anyway, but I'm just not sure why this "consecutive run" term is used.
For step 4 of this same procedure, it is written:
> If `values` has only one item, and it is a Product node or a parenthesized simple block [...]
Given the grammar of `<calc-sum>`, theoretically a sum can only receive `<calc-product>`. Is it correct that this means that a Product data structure is different from a component value matching the grammar of `<calc-product>`? If so, that's quite confusing to me. Is it about to avoid writing the grammar of `<calc-sum>` with `<calc-value> | <calc-product> [ ['*' | '/'] <calc-product> ]`?
In step 4 of the [procedure to simplify a calculation tree](https://drafts.csswg.org/css-values-4/#simplify-a-calculation-tree), it is written:
> If root is an operator node that’s not one of the calc-operator nodes, and all of its children are numeric values with enough information to compute the operation root represents [...]
Is it correct that `root` can only be a math function? If so, what is the reason for not using the `math function` term instead of *an operator node that’s not one of the calc-operator nodes*?
Also, it seems that none of the remaining steps of this procedure handle a math function containing non numeric values. Does a step *10. Return `root`* is missing?
I see this note above the procedure to [serialize a mathematical function](https://drafts.csswg.org/css-values-4/#calc-serialize):
> This section is still [under discussion](https://lists.w3.org/Archives/Member/w3c-css-wg/2016AprJun/0239.html).
But access to the link target is restricted to W3C members. Is it possible to give me clues for the following terms that appear in the different steps of this procedure:
- *the root of the calculation tree `fn` represents*
- *`fn` represents*
- *the calculation tree’s `root` node is*
Do they mean different things?
author:
url:https://github.com/cdoublev
type:Person
name:cdoublev
datePublished:2021-08-10T13:59:52.000Z
interactionStatistic:
type:InteractionCounter
interactionType:https://schema.org/CommentAction
userInteractionCount:6
url:https://github.com/6506/csswg-drafts/issues/6506
Person:
url:https://github.com/cdoublev
name:cdoublev
url:https://github.com/cdoublev
name:cdoublev
InteractionCounter:
interactionType:https://schema.org/CommentAction
userInteractionCount:6
interactionType:https://schema.org/CommentAction
userInteractionCount:6
External Links {🔗}(11)
- How much revenue does https://github.blog bring in?
- How much revenue does https://drafts.csswg.org/css-values-4/#calc-syntax generate?
- How much profit is https://drafts.csswg.org/css-values-4/#calc-internal making per month?
- Monthly income for https://drafts.csswg.org/css-values-4/#parse-a-calculation
- What's the revenue for https://drafts.csswg.org/css-values-4/#simplify-a-calculation-tree?
- How much profit does https://drafts.csswg.org/css-values-4/#calc-serialize make?
- How profitable is https://lists.w3.org/Archives/Member/w3c-css-wg/2016AprJun/0239.html?
- How much does https://drafts.csswg.org/css-values-4/#number-value make?
- Profit of https://drafts.csswg.org/css-values-4/#strings
- What is the earnings of https://drafts.csswg.org/css-content/#typedef-content-content-list?
- What's the financial intake of https://www.githubstatus.com/?
Analytics and Tracking {📊}
- Site Verification - Google
Libraries {📚}
- Clipboard.js
- D3.js
- Lodash
Emails and Hosting {✉️}
Mail Servers:
- aspmx.l.google.com
- alt1.aspmx.l.google.com
- alt2.aspmx.l.google.com
- alt3.aspmx.l.google.com
- alt4.aspmx.l.google.com
Name Servers:
- dns1.p08.nsone.net
- dns2.p08.nsone.net
- dns3.p08.nsone.net
- dns4.p08.nsone.net
- ns-1283.awsdns-32.org
- ns-1707.awsdns-21.co.uk
- ns-421.awsdns-52.com
- ns-520.awsdns-01.net