- From: Andrew Fedoniouk <andrew.fedoniouk@gmail.com>
- Date: Wed, 20 Dec 2017 21:40:13 -0800
- To: www-style@w3.org
- Message-ID: <CAK_5K6_CGS6+0QeRUdUd9WwPnBZLLKJephwSZyT0mn5N05aKSw@mail.gmail.com>
Problems:
1. pretty much each module uses its own unique syntax of defining
properties…
2. property namespace pollution, example: several modules have concept of
'column' and these are different columns.
As a solution: I am proposing to extend existing “functional” notation to
support named parameters:
foo(no-name-value, param1: value1, param2: value2, …)
It supports as exiting use cases like rgb(1,2,3) with anonymous parameters
as new, property alike notation.
Having this in place we can define color-mod function [1] for example as
this:
background: color-mod(#abc, desaturate:20%, lighten:40% );
Existing modules can benefit of named parameters too. For example bunch of
grid parameters can be combined into
single group applied as "either-all-or-none"
#grid {
display: grid( columns: 150px 1fr,
rows:50px 1fr 50px );
}
rather than current approach
#grid {
display: grid;
grid-template-columns: 150px 1fr;
grid-template-rows: 50px 1fr 50px;
}
Tomorrow some module will want to have its own 'grid-template-columns' but
the name is taken by some other module.
So is this functional notation as natural namespace separation syntax.
[1] https://drafts.csswg.org/css-color/#modifying-colors
Andrew Fedoniouk
http://sciter.com
Received on Thursday, 21 December 2017 19:45:33 UTC