- Selectors other than id, class & tag can now be used in CCSS when surrounded by parans:
(.section > article:not(.featured))[font-size] == 100;- Support for plural selectors on either side of a constraint operator:
.article[font-size] == .header[font-size];
@h |[.a][.b]| in(.cont) chain-width;
.container {
@h |[.itemA][.itemB]| in(::) chain-width;
}- 2D sugar props:
size,position,center,intrinsic-size,top-left,top-right,bottom-left,bottom-right
- VGL:
@grid-templateempty zones can be defined with. - VGL: added
in()to@grid-template - VGL: added
h/v/top/right/bottom/left-gap()to@grid-template
VGL is still undocumented & under heavy dev.
- VFL: Point support
- VFL: shorthands
@h&@vfor@horizontal&@vertical - VFL:
outer-gap() - VFL: Default containing element selector to
::this
With the new VFL API sugar, the following:
#container {
@h |-[#a]-[#b]-| gap(10) outer-gap(20);
}is equivalent too:
@horizontal |-20-[#a]-10-[#b]-20-| in(#container); Elements can be aligned relative to arbitrary positioned points using < Number | Constraint Variable | Element Property >
To horizontally align two buttons, each 8px from the center of the window:
/* VFL */
@h [#btn1]-<::window[center-x]>-[#btn2] gap(8);
/* Equivalent CCSS */
#btn1[right] + 8 == ::window[center-x];
::window[center-x] + 8 == #btn2[left];Alignments can be positioned within points:
/* VFL */
@h <#wall[center-x]>-[#poster]-[#clock]-<::window[right])> gap(7);
/* Equivalent CCSS */
#wall[center-x] + 7 == #poster[left];
#poster[right] + 7 == #clock[left];
::window[right] - 7 == #clock[right];Numbers, variables and arithmetic can be used:
/* VFL */
@v <100>[#box]<[row2]>;
/* Equivalent CCSS */
100 == #box[top];
#box[bottom] == [row2];
```css