source-foundry / Hack

A typeface designed for source code
http://sourcefoundry.org/hack/
Other
16.39k stars 613 forks source link

[U+0028, U+0029] Made parentheses `(` and `)` rounder #433

Closed jdw1996 closed 6 years ago

jdw1996 commented 6 years ago

I made the parentheses rounder in all weights and styles to improve legibility and distinguish them from other types of brackets.


@chrissimpkins edits below:

TODO

jdw1996 commented 6 years ago

This PR addresses issue #424.

chrissimpkins commented 6 years ago

ty! Will try to build these PR's tonight so that we can begin to look at the new designs

chrissimpkins commented 6 years ago

These changes are built as v4.000; [e2d8e94e7]-dev.

Available in this archive for testing:

ttf.tar.gz

chrissimpkins commented 6 years ago

Windows users can use this development build installer:

https://github.com/source-foundry/Hack-Test-Win-Installer/releases/tag/v1.2.103

chrissimpkins commented 6 years ago

Seems to render a bit asymmetric at top of right parenthesis for me. Can't quite place issue but seeing it on rendering in code. Will take a look at the glyphs. Are these mirrored off of one design or did you work on changes individually? I really like the wider curvature. Looking at spacing vs adjacent glyphs as well.

jdw1996 commented 6 years ago

Glad to hear you like the basic shape!

I didn't know how to automatically mirror the one glyph into the other, but I did mirror them manually. In particular, for the bold and regular versions at least, the four "corners" of each glyph match up with the end "corners" of the corresponding square brackets. I figured it would make sense to align those for the sake of uniformity.

So, my guess is that it's a rendering issue, but if there's not a clear fix there, I can take another look at the glyphs.

Also, for what it's worth, I've been using a custom-built version with my altered parentheses since I created them, and haven't noticed any rendering issues on Xubuntu 17.10.

chrissimpkins commented 6 years ago

let me have a look at the curves and see if there is anything that shows up.

chrissimpkins commented 6 years ago

I think that what I am seeing as "abnormal" is just a bit too rapid of a taper in width (and maybe a bit too much taper altogether with the current shape) at each end of the strokes.

qello-image

In the regular set, the width in green is 184 units. The width in red drops by 40 units and the taper appears to begin at ~the orange lines. Thoughts about decreasing that taper by 15 or 20 units and see where we wind up with that? If you make these changes and push the designs for one of the glyphs in each of the sets, I can rotate it for the other one if you don't have the ability to do this in your editor.

Also, sidebearings are off by a few units between the two glyphs. Let's make sure that the internal (RSB on left parens + LSB on right parens) spacing adjacent to other glyphs are the same dimensions.

chrissimpkins commented 6 years ago

Alternatively, you could try making the ends of each stroke perpendicular to the curves. That may take care of it as well (?)

jdw1996 commented 6 years ago

OK, I see what you're saying now. I will work on a fix and let you know once I've got it. I do like the vertical ends, but I'll see how they look if they're a bit wider.

chrissimpkins commented 6 years ago

Overall looks very good! Look forward to seeing what you come up with.

jdw1996 commented 6 years ago

I increased the widths of the ends of the regular and bold left parentheses, to see if that was sufficient. It's a very subtle change, but I think it may be enough. Let me know if you think it needs a bit more tweaking.

screenshot_2018-05-31_21-26-13

As for the italics, I'm not sure whether or not anything needs to be changed in them. They are thinner than the corresponding upright glyphs, and have less of a taper, it seems to me. Let me know what you think though, I trust your eye for detail over mine in this case.

chrissimpkins commented 6 years ago

Looks good! Mind pushing those changes so that I can build a set that we can install and view in code? Will make them available to anyone else out there who might be interested in having a look as well.

jdw1996 commented 6 years ago

Thanks! I just pushed the changes. I didn't modify the right parentheses, thoughโ€”I can't seem to figure out how to mirror a glyph in FontForge, so I would appreciate if you could take care of that, to ensure the right parentheses are properly symmetrical.

chrissimpkins commented 6 years ago

Will do! Going to try to get this done over the weekend.

chrissimpkins commented 6 years ago

Sorry for the delay. Was tied up with the release of another project. Will get to this in the next few days. Look forward to having a look at these!

chrissimpkins commented 6 years ago

I made the contralateral glyphs in the regular and bold sets. I think that the changes that you made in the tapers were perfect. These shapes look better.

Some (very) minor curve cleanup and lots of attention to the vertical and horizontal spacing and here is where we are:

s6xu3-image

I modified the spacing in your designs with the following:

I really like the new glyph shapes. I need to work in these designs a bit to make sure that the spacing adjustments feel right. Will review in a variety of source types to check with a variety of idioms that use the parentheses glyphs.

Let me know what you think. Be interested in thoughts from others out there who might wander across this thread. Great work here Joseph. This is an improvement!

Build Version 4.000;[394b8b04e]-dev attached if you'd like to install:

hack-394b8b04e-dev.tar.gz

jdw1996 commented 6 years ago

They look good to me. Thanks so much for working on the spacing! I'm glad that they will be more consistent now.

One thing I noticed at first glance is that the parentheses now sit higher on the line than the square brackets or curly braces. When they're not next to each other, it's not a problem, though they are in things like Markdown links:

[This is a link.](https://example.com)

And functions called on arrays in Python, for instance:

my_array_fn([1,2,3])

I do like the idea of having the parentheses centred around numerals, though. Perhaps the solution would be to raise the square brackets and curly braces correspondingly?

chrissimpkins commented 6 years ago

I think that you are right :) As I made these changes, I realized that I just added more work onto the TODO list...

Let's confirm that we like these as is and, if so, we can adjust the brackets/braces with same vertical orientation. You are more than welcome to do this work if you'd like. These will be simple spacing changes and we can add them as part of v4.000 as well.

I would like to look at your < / > PR and then I need to move on to the planned work on the bold / bold italic zero fills. I am still struggling with what to do with that and have been dragging my feet on the work. My goal is to roll v4.000 out in late June.

chrissimpkins commented 6 years ago

Added TODO list to your OP

jdw1996 commented 6 years ago

Sounds good! I'm in a pretty busy period right now, so I unfortunately don't think I'll be able to help with adjusting the spacing of the other brackets, but I am happy to help test any changes, since I'll be using the font as I work anyway.

chrissimpkins commented 6 years ago

Sounds good!

chrissimpkins commented 6 years ago

I started work on the brace / bracket spacing.

chrissimpkins commented 6 years ago

๐Ÿ‘ ๐Ÿ‘ ๐Ÿ‘ Love it!

0ru1c-image

hack-989cd5e32-dev.tar.gz

jdw1996 commented 6 years ago

OK, I'm using a version with these modifications now. They look good so far!

chrissimpkins commented 6 years ago

Agree! Using these builds in multiple languages over the next few days. Have explored so far in C/C++, Go and I really like the changes. The parentheses look great. I really like your new design.

burodepeper commented 6 years ago

I'm just weighing in, quite late I'm aware of it ;) Can someone post a before/after comparison?

chrissimpkins commented 6 years ago

@burodepeper try this https://github.com/source-foundry/pre-post

chrissimpkins commented 6 years ago

@jdw1996 I reviewed these changes across all of the languages that we include in the code-corpora repository. LGTM. If you want to see all of the glyphs in action close to each other, have a look in JavaScript. It seems to be one of the languages where all of the glyphs that we've modified during the discussion in this PR are close to each other for comparison.

I am going to fix the U+002D '-' vertical alignment issue that we discussed in #434 and then I am prepared to merge these changes and the ones in https://github.com/source-foundry/Hack/pull/434 to the dev branch for release in v4.000.

@burodepeper let us know if you have any feedback when you've had a chance to view the changes.

burodepeper commented 6 years ago

I've installed the latest build, and in my opinion, they are not an improvement. I like the new shape when they're on their own, or when they're really big. In context however, they are punctuation and as such in my opinion they should separate tokens, which requires them to breathe a little. What @chrissimpkins did earlier, move them a bit off-center to create that extra space, I'm missing that.

I do like the idea of having the parentheses centred around numerals, though. Perhaps the solution would be to raise the square brackets and curly braces correspondingly?

Haha, if you're going that route, you'll end up with an entirely new typeface ;) I know from experience...

jdw1996 commented 6 years ago

To my eye, they separate tokens just by virtue of their height and how distinct the shapes are from any letter, but I realize that's not the case for everyone.

Have you tried out the version @chrissimpkins posted above, with the raised parens/brackets/braces? I've been using it the last couple days and none of the glyphs look strange or out of place to me.

chrissimpkins commented 6 years ago

@burodepeper

Here is where we are at the moment with the shape diff:

3h1rm-image

The glyph is actually slightly shifted further away from the contents of the parentheses. I think that the top / bottom ends of the strokes encroaching on the contents may be responsible for that sense though I didn't get the same feel from the changes and the internal spacing decision was intentional + desired in the original designs.

What language are you viewing them in? Mind copy/pasting a block of code into the thread so that I can see what you are seeing?

Here are views with the metrics:

7kt9c-image hg500-image

chrissimpkins commented 6 years ago

@jdw1996 I reviewed these shapes in 15 languages across macOS and Microsoft Windows platforms. I don't have any further recommendations. IMO they look fantastic. Merging to dev branch with plans to release these shapes in v4.000.

@burodepeper if you have further thoughts or want to revise the design, please open a new issue report or pull request. Happy to do further work here if you have any other ideas.

vl4dimir commented 6 years ago

@burodepeper @chrissimpkins @jdw1996 Check out https://github.com/source-foundry/alt-hack/pull/41 when you get a chance, I did an alternate take on these glyphs.

burodepeper commented 6 years ago

@vl4dimir They are not my personal preference, but I'm okay with them ;)

chrissimpkins commented 6 years ago

@vl4dimir Let's open a new issue report for this Vladimir. Or feel free to open a PR and we can discuss there. Answered you on the alt-hack thread where you submitted the PR. Thanks again for this iteration on the design. Hopefully we are getting close!

vl4dimir commented 6 years ago

@chrissimpkins Done. https://github.com/source-foundry/Hack/pull/452

chrissimpkins commented 6 years ago

@jdw1996 thoughts about changes here? shall I build a set for all of us to view?

jdw1996 commented 6 years ago

They look good to me. If you want to build a set so we can all try it out, that would be great.

chrissimpkins commented 6 years ago

Waiting for the conversion from UFO v2 to v3 files requested in the PR thread. Will build when updated.