- From: Clint Hill <clint.hill@gmail.com>
- Date: Wed, 30 Jan 2013 08:31:34 -0700
- To: Brian Kardell <bkardell@gmail.com>
- CC: www-style list <www-style@w3.org>, Bobby Mozumder <mozumder@futureclaw.com>
- Message-ID: <CD2E8A9B.473B%clint.hill@gmail.com>
Bobby: You should also look to join the Extensible Web community group - http://prollyfill.org/. We're always looking for things like this in that group. From: Brian Kardell <bkardell@gmail.com> Date: Wednesday, January 30, 2013 8:28 AM To: Clint Hill <clint.hill@gmail.com> Cc: www-style list <www-style@w3.org>, Bobby Mozumder <mozumder@futureclaw.com> Subject: Re: Programmable state-machines in CSS proposal Quick note: bess was a poc clint and I did a few years ago at work which we just recently got cleared to move to open source...it isn't currently in a great state as we are still in the process of refactoring out of concepts from the work code. Brian Kardell :: @briankardell :: hitchjs.com <http://hitchjs.com> On Jan 30, 2013 10:20 AM, "Clint Hill" <clint.hill@gmail.com> wrote: > Bobby: This is something that Brian and I have wanted to tackle as well. We > created a project called Behavior Stylesheets nicknamed "bess"[1]. This > library provides nearly exactly the feature you describe here but with a > different approach in the syntax (targeting is done via selector functions in > properties). We would love for you to take a look and give us some feedback. A > related project that we have is called Hitch where we look to extend the > ability of CSS and provide the author the ability to do things with CSS that > aren't achievable in it's native implementations[2]. Our ultimate goal is to > move these two projects into a unified system. > > We'd really love to get some feedback about these projects. > > [1]https://github.com/bkardell/bess > [2]http://hitchjs.com/ > > From: Bobby Mozumder <mozumder@futureclaw.com> > Date: Tuesday, January 29, 2013 5:59 PM > To: www-style list <www-style@w3.org> > Subject: Programmable state-machines in CSS proposal > Resent-From: <www-style@w3.org> > Resent-Date: Wed, 30 Jan 2013 10:51:37 +0000 > > Hi, > > A problem I've been dealing with in design is that the pseudo-class selector > :hover signals a state of an element, and that element is the only object that > style can be applied to. > > For example, i can only affect the element that :hover applies to: > > #myImage { > color: #000000 ; > } > > #myImage:hover { > color: #fffff; > } > > > I can't apply it to affect another completely separate element: > > #myImage --> #myOtherImage { > color: #000000 ; > } > #myImage:hover --> #myOtherImage { > color: #fffff; > } > > I would need to Javascript for this to happen. > > This leads me to think that :hover should be a state definition instead of a > pseudo-class. Which leads me to think that CSS should include state > definitions in general. > > So, what's everyone's thoughts on separating state from style element, and > implementing a programmable state machine as part of CSS? (I have a hardware > background so I speak in terms of state machines..) > > A lot of jQuery scripts are based around elements affecting other elements, > for example, interactive elements that affect style of other elements like > scrollbars, graphs, buttons, etc.. > > Being able to measure state of one element and have it affect another element > would be tremendously useful in reducing all this jQuery scripting. Having > CSS implement a state machine as part of its syntax would pretty much make it > programmable. The state machine would test not just for :hover pseudo-class, > but for any CSS property, or each element could define its own properties. > This really needs programmable variables for it to work. > > As a rough guideline start (that's very broken), the syntax would be along the > lines of: > > [element] { condition } --> [element] { newProperty } > > The :hover pseudo-class should be a state property instead, and the above > example should actually be: > > #myImage { mouse != hover } --> #myOtherImage { > color: #000000 ; > } > #myImage { mouse == hover } --> #myOtherImage { > color: #fffff; > } > > Couple of other examples: > > - Click on/off > > #myImage{ mouse == click } && #myOtherImage{ visibility == visible } --> > #myOtherImage { > visibility:hidden; > } > #myImage { mouse == click} && #myOtherImage { visibility == hidden } --> > #myOtherImage { > visibility:visible; > } > > - Animation (assuming some default timer) > > #myImage { opacity < 1 } --> #myImage { > opacity: #myImage{opacity} + ..01; > } > > Anyways, a programmable CSS system is needed, as I fear Javascript is too slow > & power inefficient to handle complex interaction with high frame rates for > upcoming high complexity app-sites. I could do everything with > Javascript/Jquery, but frame rates would be much slower while consuming more > power than if the browser could be programmed through CSS. > > -bobby > --- > Bobby Mozumder > Editor-in-Chief > FutureClaw Magazine > mozumder@futureclaw.com > 1-240-745-5287 <tel:1-240-745-5287> > www.futureclaw.com <http://www.futureclaw.com> > www.twitter.com/futureclaw <http://www.twitter.com/futureclaw> >
Received on Wednesday, 30 January 2013 15:32:06 UTC