- From: Christoph Daum <c.daum@apermo.de>
- Date: Sun, 16 Sep 2012 08:54:57 -0700 (PDT)
- To: www-style@w3.org
Rick Byers-2 wrote:
>
> There are lots of different discussions of how images should be handled on
> high-DPI displays, but as far as I can find there hasn't been any
> discussion about what to do with image cursors (
> http://www.w3.org/TR/css3-ui/#cursor).
>
> For compatibility, both Safari and Chrome will scale up any cursor image,
> so for example on the retina macbook (2 dppx) every cursor image is pixel
> doubled. This is necessary to prevent tiny mouse cursors, but looks ugly.
> Sites need some way to opt-into supplying high-DPI cursor images, and as
> far as I can tell no such way exists today or has been discussed publicly
> (please point me at anything I've missed).
>
> Here are some options (not all of which necessarily require a change to
> the
> spec, but included here for discussion anyway). For chromium, we're
> considering implementing at least #1 and possibly #2 (see
> http://crbug.com/136034), since they seem legitimate without any additions
> to the CSS3 standard.
>
> 1. *Extend image-set support to image cursors*
> For browsers that already support the image-set function (
> http://lists.w3.org/Archives/Public/www-style/2012Feb/1103.html) it
> makes sense to also support it in cursor declarations. eg.:
> cursor: image-set( url('hand.cur') 1x, url('hand2x.cur') 2x),
> url(hand.cur),
> pointer);
> In this case, if the user-agent supports image-set, it would choose the
> image whose scale factor most closely matches the device scale factor,
> and
> (if none match exactly) scale the image so that it's combined scale
> factor
> matches that of the device.
>
> 2. *Support multi-resolution ico and cur files*
> The ico and cur file formats already in common use for cursors support
> multiple images of different resolutions in the same file. In the case
> of
> ico files, this is already used to support high-dpi favicons. Unlike
> for
> favicons though, a user agent doesn't necessarily have any preferred
> physical size for a mouse cursor - websites are free to choose cursors
> that
> they want to appear smaller or larger than normal to the user. One
> approach here could be to use the smallest image in an ico/cur file (or
> perhaps the last one for maximum compatibility) as an indication of the
> logical size requested by the website. Then the user-agent can select
> any
> other image from the file whose physical size most closely matches the
> device scale factor, and scale it appropriately to fill the logical
> size.
>
> 3. *Extend the cursor declaration to take a <resolution>*
> The fundamental problem here is that the site doesn't communicate
> anything about the intended resolution of the cursor image (i.e. so the
> UA
> can tell when it's designed to be used on a high-dpi display without
> scaling). image-resolution (
> http://dev.w3.org/csswg/css4-images/#the-image-resolution) is almost
> exactly what we want, except as far as I can tell there's no way to
> apply
> it to an image cursor (except perhaps using the element syntax which
> seems
> too complex for the common case). Perhaps we can just add an optional
> <resolution> to the cursor declaration (perhaps requiring the hotspot
> co-ordinates to be specified). Or perhaps there should be a different
> property to specify the resolution for a cursor, eg. cursor-resolution.
> eg.
> cursor: url(hand2x.png) 5 5 2dppx
>
> *Questions*
>
> - Should any of this be in terms of CSS pixels, or strictly in an
> abstract concept of logical pixels?
> Eg. should operations such as browser zoom that impact the size of the
> CSS px impact how mouse cursors are drawn? I think I'd prefer mouse
> cursor
> size to be fixed across browser zoom, and so we should not be using the
> CSS
> px unit in this discussion.
> - How should hotspot values be applied when multiple images are
> provided?
> For both #1 and #2 the UA may need to map a single hotspot co-ordinate
> onto images of different sizes. The only reasonable solutions seems to
> be
> to treat the hotspot co-ordinates as being in the logical pixel
> co-ordinate
> space and scale them appropriately with the image scale factor. Of
> course
> a cur file can always be used to specify a distinct hotspot per image
> in
> the image co-ordinate system.
>
> Thanks,
> Rick
>
>
Hello Rick,
I just found this article because I was searching for a possibility this
issue.
As of now -webkit-image-set() is supported by Safari 6 and Chrome 20+ and it
really works very smooth just as one could wish. Are there any news about
the support for HiRes custom cursor images?
Greetings Christoph
--
View this message in context: http://old.nabble.com/-css3-ui--image-cursors-and-high-dpi-displays-tp34118675p34439356.html
Sent from the w3.org - www-style mailing list archive at Nabble.com.
Received on Monday, 17 September 2012 10:16:33 UTC