General Alignment Issues/Bugs in Keynote.
Hi Everyone,
First post here so I'm unaware of the format for these types of things. At my day job I take on the roles of product designer & software architect, so I really couldn't help myself in reporting this bug. And my designer has been going a little nutty too so I felt the need to post this.
The problem is a little technical so let's start with an example so your team can replicate. Say you want to manually draw a bar graph, using shapes not the graph tool. The graph has 6 rectangular bars of varying heights (but all the same widths). Let's say the range of heights can be anywhere from 10-300pt and the width is always 76pt.
Next, for your 0 point on the Y axis draw a 1 px black line and then align all the bars manually to the bottom line. Do not group the shapes, and do not use the align tool. You will drag the bars with your mouse. You want all 6 bars to just barely touch the 1px line, so you need to do this at maximum zoom 400%.
Now, take smallest bar, lets say it has a height of 30pt, drag that as little as possible up/down (with your mouse) to get the smallest amount of change in the Y-position. You will notice that that smaller shape moved but there has been no corresponding change to the Y positional value. If you do this with the larger bar, say 200pt tall, you can only move it in increments in 1pt.
Basically, there is a problem with how Keynote is abstracting positional values. Keynote allows the user to change pt values manually by increments of 1pt but when you're dragging with your mouse, something odd is happening with smaller shapes where you get fractional values of pt. I'll be honest as an avid fan of Sketch, I'm pretty disappointed that we can't use px values instead of pt values or fractional values. Whenever you align things center, and you're using odd and even pt sized shapes, you're going to get what the user thinks are rendering issues, but really fractional values are occurring. This is more of a problem than a bug, but it's a worth mentioning.
Ok, so my technical 2 cents? Keynote isn't properly orchestrating the positional values across mouse, screen, & keynote internals/GUI. . . Here's what I mean: You have the the pt positions which everyone is aware of, but the mouse on the screen can be move to *any* pixel position. Pts =/= Pixels, so if I drag a smaller shape with a micro-mouse movement, Keynote is defaulting to pixels IF and ONLY IF the micro-movement is greater than 1px AND ALSO greater than 1% of the shape's size. It's a mouthful, and yeah at the end of the day you could "call this" a rendering issue, but I look at is as Keynote "screaming" for pixel positions (and fractions as well).
I'm attaching 3 images to demonstrate the issue. First images show the two bars of same size are clearly not aligned. 2nd and 3rd images show that their Y position is actually identical. What also makes this problem hidden is the friction that's introduced in order to easily align objects with the mouse. The friction makes it impossible to do micro-movements and I believe the smallest movement increment because 4pt not 1pt when theirs an alignment guideline showing.
If someone else has a designer pulling their hair out, there is a really time-consuming workaround. You take a smaller shape and drag it to the Y position you want. Take the shape you actually want, and then move it up/down so its not at the same pt value. Then you shift click both shapes, click on arrange tab, and then align bottom or align top, whichever you want.
See Image below for misalignment example. Both Boxes are clearly not aligned if you examine the grey reference line at the bottom.
To prove my point, see the pt positions for each shape:
First shape (left one) is highlighted,
Second shape, right one is highlighted,
==>Not aligned, yet Keynote thinks they're aligned. Closing app/reopening app they are still in the same position, so it's not a rendering issue. This problem may seem minor, but its way worse when shapes are different sizes.
There's a way to solve this problem that's super easy by the way. When we develop apps, they auto scale to the target device. We build one app and it can work on tablet, or phone and not have sizing issues. All we do is switch all code to *percentage* values (to match the mouse) and then write a small config file for conversion values for each target device. Using a similar approach, you can do something similar without having to write a ton of code to proper rendering. Pts are probably some legacy part of Keynote you've been wanting to change anyway, because the "pts" you're using aren't standard.
PS problem persists in mm or cm. I just pts as an example as that is default.