- From: Laurens Holst <lholst@students.cs.uu.nl>
- Date: Sun, 14 May 2006 13:59:00 +0200
- To: Mark Birbeck <mark.birbeck@x-port.net>
- Cc: www-style@w3.org
- Message-ID: <44671B84.205@students.cs.uu.nl>
Mark Birbeck schreef:
> As I said, the 'event name' syntax is just an experiment; I don't really
> like making CSS rules aware of event names, so ideally I'd like to see
> something like this defined:
>
Yes, for ‘events’ one should utilise the CSS pseudo-classes that result
from it.
> xf\:case:select
> {
> effect : slideup(duration:0);
> }
>
> xf\:case:deselect
> {
> effect : slidedown(duration:1);
> }
>
I think the ‘slideup’ or ‘slidedown’ are particularly bad ideas -_-;;.
In my proposal you would just animate the ‘top’ or ‘bottom’ properties
from their original values to a new value, and the animation properties
have no sense of direction. Animating ‘top’ and ‘left’ at the same time
would allow animation in any direction, not just up and down.
> However, this means that you would need a 'state' (or pseudo-class) to
> reflect every event, so as a quick way of getting access to effects in our
> forms we just added this event name/function pairing.
>
Well, you should not use events directly... Basically, CSS describes the
state an element is in, and not the events that drive it. In your
example, there should be no :deselect or :select ‘event-states’, but
simply a :selected. CSS3 UI already defines a lot of these states, such
as :checked which is awkwardly named but I think basically the same as
:selected.
> To give a few more examples of the kind of thing that becomes easy in
> XForms, to get the standard 'yellow fade' effect on *any* XForms control
> whose value changes, we only have to do this:
>
> xf\:*
> {
> -event-xforms-value-changed : fx-Effect-Highlight();
> }
>
Ah, well, ‘flashing’ animations is something my proposal indeed doesn’t
catch directly. My proposal is simply to have the usual CSS styling
changes by state, but animate them instead of make them happen instantly.
I could imagine something complex that would make different kinds (e.g.)
flashing animations possible as well:
:changed {
animate-pattern: flashing;
}
@animation-pattern flashing {
@animation-position 50% {
color: yellow;
}
}
This would animate from the current colour to yellow to the current
colour again. If :changed has a color property set and
animate-properties: color, then it would animate from the old colour to
yellow to the new colour.
But maybe it should rather be something like this, where the application
changes into a state like :changed temporarily (temporarily? sounds like
a bad idea), so that accessibility applications can also act differently
on the change in state:
:changed {
animate-properties: color;
color: #ffff00;
}
Anyway, I actually think that for animations as complex as that, CSS
isn’t the place for it, and they should rather be done in SMIL or a
similar language. And if that’s not an option, they can always be
achieved using the declarative animations I specified and changing
states and classes in script.
So basically ignore the two examples I gave above, I think they should
not be in CSS :).
> Note of course the weakness of our temporary solution though, the
> duplication; a control becoming 'invalid' always receives the invalid event,
> but you don't need to monitor both the state and the event. As before, this
> should ideally be something like:
>
> :invalid
> {
> effect : highlight(startcolor: '#ff0000');
> }
>
In my proposal:
:invalid {
animate-properties: color;
color: #ff0000;
}
And it will animate from the colour that was set before it became
invalid to #ff0000, like it normally would do on UAs that wouldn’t
support this, but then without animation.
> To see what we're doing in the context of real forms, see this:
>
> <http://skimstone.x-port.net/node/105>
>
> Anyway, it's great to hear that people are talking about this kind of thing,
> and we would love to see something like this in a CSS 3 module.
Agreed :).
~Grauw
--
Ushiko-san! Kimi wa doushite, Ushiko-san!!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Laurens Holst, student, university of Utrecht, the Netherlands.
Website: www.grauw.nl. Backbase employee; www.backbase.com.
Received on Sunday, 14 May 2006 11:59:01 UTC