d6085e4ea6
This PR finalises the highlighter shape with new colors, sizing, and perfect freehand options. The colors are based on our existing colour palette, but take advantage of wide-gamut displays to make the highlighter highlightier. I used my [oklch color palette tool to pick the palette](https://alex.dytry.ch/toys/palette/?palette=%7B%22families%22:%5B%22black%22,%22grey%22,%22white%22,%22green%22,%22light-green%22,%22blue%22,%22light-blue%22,%22violet%22,%22light-violet%22,%22red%22,%22light-red%22,%22orange%22,%22yellow%22%5D,%22shades%22:%5B%22light-mode%22,%22dark-mode%22,%22hl-light%22,%22hl-dark%22%5D,%22colors%22:%5B%5B%5B0.2308,0,null%5D,%5B0.9097,0,null%5D,%5B0.2308,0,null%5D,%5B0.2308,0,null%5D%5D,%5B%5B0.7692,0.0145,248.02%5D,%5B0.6778,0.0118,256.72%5D,%5B0.7692,0.0145,248.02%5D,%5B0.7692,0.0145,248.02%5D%5D,%5B%5B1,0,null%5D,%5B0.2308,0,null%5D,%5B1,0,null%5D,%5B1,0,null%5D%5D,%5B%5B0.5851,0.1227,164.1%5D,%5B0.5319,0.0811,162.23%5D,%5B0.8729,0.2083,173.3%5D,%5B0.5851,0.152,173.3%5D%5D,%5B%5B0.7146,0.1835,146.44%5D,%5B0.6384,0.1262,143.36%5D,%5B0.8603,0.2438,140.11%5D,%5B0.6082,0.2286,140.11%5D%5D,%5B%5B0.5566,0.2082,268.35%5D,%5B0.4961,0.1644,270.65%5D,%5B0.7158,0.173,243.85%5D,%5B0.5573,0.178,243.85%5D%5D,%5B%5B0.718,0.1422,246.06%5D,%5B0.6366,0.1055,250.98%5D,%5B0.8615,0.1896,200.03%5D,%5B0.707,0.161,200.03%5D%5D,%5B%5B0.5783,0.2186,319.15%5D,%5B0.5043,0.1647,315.37%5D,%5B0.728,0.2001,307.45%5D,%5B0.5433,0.2927,307.45%5D%5D,%5B%5B0.7904,0.1516,319.77%5D,%5B0.6841,0.1139,315.99%5D,%5B0.812,0.21,327.8%5D,%5B0.5668,0.281,327.8%5D%5D,%5B%5B0.5928,0.2106,26.53%5D,%5B0.5112,0.1455,26.18%5D,%5B0.7326,0.21,20.59%5D,%5B0.554,0.2461,20.59%5D%5D,%5B%5B0.7563,0.146,21.1%5D,%5B0.6561,0.0982,20.86%5D,%5B0.7749,0.178,6.8%5D,%5B0.5565,0.2454,6.8%5D%5D,%5B%5B0.6851,0.1954,44.57%5D,%5B0.5958,0.1366,46.6%5D,%5B0.8207,0.175,68.62%5D,%5B0.6567,0.164,68.61%5D%5D,%5B%5B0.8503,0.1149,68.95%5D,%5B0.7404,0.0813,72.25%5D,%5B0.8939,0.2137,100.36%5D,%5B0.7776,0.186,100.36%5D%5D%5D%7D&selected=3). I'm not sure happy about these colors as they are right now - in particular, i think dark mode looks a bit rubbish and there are a few colors where the highlight and original version are much too similar (light-violet & light-red). Black uses yellow (like note shape) and grey uses light-blue. Exports are forced into srgb color space rather than P3 for maximum compatibility. ![image](https://github.com/tldraw/tldraw/assets/1489520/e3de762b-6ef7-4d17-87db-3e2b71dd8de1) ![image](https://github.com/tldraw/tldraw/assets/1489520/3bd90aa9-bdbc-4a2b-9e56-e3a83a2a877b) The size of a highlighter stroke is now based on the text size which works nicely for making the highlighter play well with text: ![image](https://github.com/tldraw/tldraw/assets/1489520/dd3184fc-decd-4db5-90ce-e9cc75edd3d6) Perfect freehands settings are very similar to the draw tool, but with the thinning turned way down. There is still some, but it's pretty minimal. ### The plan 1. initial highlighter shape/tool #1401 2. sandwich rendering for highlighter shapes #1418 3. shape styling - new colours and sizes, lightweight perfect freehand changes #1490 **>you are here<** ### Change Type - [x] `minor` — New Feature ### Test Plan 1. You can find the highlighter tool in the extended toolbar 2. You can activate the highlighter tool by pressing shift-D 3. Highlighter draws nice and vibrantly when over the page background or frame background 4. Highlighter is less vibrant but still visible when drawn over images / other fills 5. Highlighter size should nicely match the corresponding unscaled text size 6. Exports with highlighter look as expected ### Release Notes Highlighter pen is here! 🎉🎉🎉 --------- Co-authored-by: Steve Ruiz <steveruizok@gmail.com> |
||
---|---|---|
.. | ||
align-bottom-center.svg | ||
align-bottom-left.svg | ||
align-bottom-right.svg | ||
align-bottom.svg | ||
align-center-center.svg | ||
align-center-horizontal.svg | ||
align-center-left.svg | ||
align-center-right.svg | ||
align-center-vertical.svg | ||
align-left.svg | ||
align-right.svg | ||
align-top-center.svg | ||
align-top-left.svg | ||
align-top-right.svg | ||
align-top.svg | ||
arrow-left.svg | ||
arrowhead-arrow.svg | ||
arrowhead-bar.svg | ||
arrowhead-diamond.svg | ||
arrowhead-dot.svg | ||
arrowhead-none.svg | ||
arrowhead-square.svg | ||
arrowhead-triangle-inverted.svg | ||
arrowhead-triangle.svg | ||
aspect-ratio.svg | ||
avatar.svg | ||
blob.svg | ||
bring-forward.svg | ||
bring-to-front.svg | ||
check.svg | ||
checkbox-checked.svg | ||
checkbox-empty.svg | ||
chevron-down.svg | ||
chevron-left.svg | ||
chevron-right.svg | ||
chevron-up.svg | ||
chevrons-ne.svg | ||
chevrons-sw.svg | ||
clipboard-copied.svg | ||
clipboard-copy.svg | ||
code.svg | ||
collab.svg | ||
color.svg | ||
comment.svg | ||
cross-2.svg | ||
cross.svg | ||
dash-dashed.svg | ||
dash-dotted.svg | ||
dash-draw.svg | ||
dash-solid.svg | ||
discord.svg | ||
distribute-horizontal.svg | ||
distribute-vertical.svg | ||
dot.svg | ||
dots-horizontal.svg | ||
dots-vertical.svg | ||
drag-handle-dots.svg | ||
duplicate.svg | ||
edit.svg | ||
external-link.svg | ||
file.svg | ||
fill-none.svg | ||
fill-pattern.svg | ||
fill-semi.svg | ||
fill-solid.svg | ||
follow.svg | ||
following.svg | ||
font-draw.svg | ||
font-mono.svg | ||
font-sans.svg | ||
font-serif.svg | ||
geo-arrow-down.svg | ||
geo-arrow-left.svg | ||
geo-arrow-right.svg | ||
geo-arrow-up.svg | ||
geo-check-box.svg | ||
geo-diamond.svg | ||
geo-ellipse.svg | ||
geo-hexagon.svg | ||
geo-octagon.svg | ||
geo-oval.svg | ||
geo-pentagon.svg | ||
geo-rectangle.svg | ||
geo-rhombus-2.svg | ||
geo-rhombus.svg | ||
geo-star.svg | ||
geo-trapezoid.svg | ||
geo-triangle.svg | ||
geo-x-box.svg | ||
github.svg | ||
group.svg | ||
hidden.svg | ||
image.svg | ||
info-circle.svg | ||
leading.svg | ||
link.svg | ||
lock-small.svg | ||
lock.svg | ||
menu.svg | ||
minus.svg | ||
mixed.svg | ||
pack.svg | ||
page.svg | ||
plus.svg | ||
question-mark-circle.svg | ||
question-mark.svg | ||
redo.svg | ||
reset-zoom.svg | ||
rotate-ccw.svg | ||
rotate-cw.svg | ||
ruler.svg | ||
search.svg | ||
send-backward.svg | ||
send-to-back.svg | ||
settings-horizontal.svg | ||
settings-vertical-1.svg | ||
settings-vertical.svg | ||
share-1.svg | ||
share-2.svg | ||
size-extra-large.svg | ||
size-large.svg | ||
size-medium.svg | ||
size-small.svg | ||
spline-cubic.svg | ||
spline-line.svg | ||
stack-horizontal.svg | ||
stack-vertical.svg | ||
stretch-horizontal.svg | ||
stretch-vertical.svg | ||
text-align-center.svg | ||
text-align-justify.svg | ||
text-align-left.svg | ||
text-align-right.svg | ||
tool-arrow.svg | ||
tool-embed.svg | ||
tool-eraser.svg | ||
tool-frame.svg | ||
tool-hand.svg | ||
tool-highlight.svg | ||
tool-laser.svg | ||
tool-line.svg | ||
tool-media.svg | ||
tool-note.svg | ||
tool-pencil.svg | ||
tool-pointer.svg | ||
tool-text.svg | ||
trash.svg | ||
triangle-down.svg | ||
triangle-up.svg | ||
twitter.svg | ||
undo.svg | ||
ungroup.svg | ||
unlock-small.svg | ||
unlock.svg | ||
vertical-align-center.svg | ||
vertical-align-end.svg | ||
vertical-align-start.svg | ||
visible.svg | ||
warning-triangle.svg | ||
zoom-in.svg | ||
zoom-out.svg |