Revision Difference
custom-style-properties#546304
<cat>Dev.UI</cat>
<title>Custom Style Properties</title>
We've added a few custom style properties to our implementation of css. Your editor might complain that these don't exist, but they do.
Here's what we added
| Name | Description / Notes |
|-------------------|-----|
| aspect-ratio | float: Added by Facebook Flexbox. Element tries to keep its aspect ratio. |
| background-image-tint | Color: multiplies the background image by this color |
| sound-in | The name of a sound to play when this style is applied to an element for the first time. This is useful to put on a:hover style to play a sound when hovering. |
| sound-out | The name of a sound to play when this style is removed from an element for the first time |
| pixel-snap | If set to 1 we'll snap the UI to pixels. If your element is on screen, you probably want to snap to pixels. If it's something like an over-head name tag, something that follows the position of something in the world, you want to set this to 0. This property cascades automatically and defaults to 1. | ⤶
| pixel-snap | If set to 1 we'll snap the UI to pixels. If your element is on screen, you probably want to snap to pixels. If it's something like an over-head name tag, something that follows the position of something in the world, you want to set this to 0. This property cascades automatically and defaults to 1. |⤶
| text-stroke | This will put an outline around text. This property is the same as the non-standard [-webkit-text-stroke property](https://developer.mozilla.org/en-US/docs/Web/CSS/-webkit-text-stroke), and follows the same syntax: `text-stroke: size colour` |⤶
# Custom pseudo-classes
There are also some custom pseudo-classes for applying transitions when an element is created or deleted.
* `:intro` - is removed when the element is created, things will transition away from this.
* `:outro` - is added when Panel.Delete() is called, the Panel waits for all transitions to finish before actually deleting itself.
```
mypanel {
transition: all 2s ease-out;
transform: scale( 1 );
// When the element is created make it expand from nothing.
&:intro {
transform: scale( 0 );
}
// When the element is deleted make it double in size before being deleted.
&:outro {
transform: scale( 2 );
}
}
```