- From: L. David Baron <dbaron@dbaron.org>
- Date: Wed, 10 Oct 2012 16:17:10 -0700
- To: fantasai <fantasai.lists@inkedblade.net>
- Cc: "www-style@w3.org" <www-style@w3.org>
On Tuesday 2012-09-25 14:50 -0700, fantasai wrote:
> During discussions about the @font-feature-values rule syntax, there
> were several variations that came up. I wanted to bring up one of the
> other variations for comparison and hear what other people think about
> their relative merits.
>
> The @font-feature-values rule is used to bind a name to a font feature
> code in the context of a particular font. If multiple name bindings for
> the same feature type are declared, they all take effect, except when
> reusing the same name the last declared value wins.
>
> Variation A is the one in the draft. It looks like this:
>
> @font-feature-values <font-name> {
> @<feature-type> <ident> <value>, <ident> <value, ...;
> ...
> }
>
> Here's an example from the draft:
> @font-feature-values Mars Serif {
> @styleset alt-g 1,
> curly-quotes 3,
> code 4 5;
> @styleset dumb 25;
> @swash swishy 3 5;
> }
>
> Variation B uses a syntax similar to standard rule sets:
>
> @font-feature-values <font-name> {
> <feature-type> {
> <ident>: <value>;
> <ident>: <value>;
> ...
> }
> ...
> }
>
> Here's the equivalent example in this syntax:
>
> @font-feature-values Mars Serif {
> styleset { alt-g: 1;
> curly-quotes: 3;
> code: 4 5; }
> styleset { dumb: 25; }
> swash { swishy: 3 5; }
> }
I'd at least keep the @-sign in @styleset, @swash, etc. These are
CSS-defined keywords and they're setting up definitions of things
used elsewhere, which is something we tend to use @-rules for.
> The primary benefit of Variation A is that it's slightly more compact,
> since it doesn't use curly braces.
>
> The primary benefit of Variation B is that the cascading behavior of
> the name bindings behaves exactly as you would expect from the syntax:
> exactly as if the feature type were an element type selector, and the
> name declarations were property declarations.
I worry it might look a little *too* much like property
declarations, though. We haven't put user-defined names in the
property position before other than with var-*, which is clearly
marked as user-defined.
So far I haven't see anything to give me a strong opinion on either
side between variations A and B.
-David
--
𝄞 L. David Baron http://dbaron.org/ 𝄂
𝄢 Mozilla http://www.mozilla.org/ 𝄂
Received on Thursday, 11 October 2012 01:49:46 UTC