I like it! I can try to make it prettier
I’m not a fan of shades :-). Here a SVG with an idea and the code for anyone to play with:
Summary
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="210mm"
height="297mm"
viewBox="0 0 210 297"
version="1.1"
id="svg5"
sodipodi:docname="drawing.svg"
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="false"
inkscape:zoom="0.6512193"
inkscape:cx="323.2398"
inkscape:cy="260.28098"
inkscape:window-width="2526"
inkscape:window-height="1408"
inkscape:window-x="34"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" />
<defs
id="defs2">
<g
id="g3996">
<symbol
overflow="visible"
id="symbol9093">
<path
style="stroke:none;"
d=""
id="path4371" />
</symbol>
<symbol
overflow="visible"
id="symbol4785">
<path
style="stroke:none;"
d="M 7.78125 -6.59375 C 7.796875 -6.625 7.828125 -6.6875 7.828125 -6.734375 C 7.828125 -6.796875 7.8125 -6.8125 7.59375 -6.8125 L 0.703125 -6.8125 C 0.484375 -6.8125 0.46875 -6.796875 0.46875 -6.734375 C 0.46875 -6.6875 0.5 -6.625 0.515625 -6.59375 L 3.875 0.140625 C 3.953125 0.265625 3.984375 0.328125 4.140625 0.328125 C 4.3125 0.328125 4.34375 0.265625 4.421875 0.140625 Z M 1.703125 -6.09375 L 7.171875 -6.09375 L 4.453125 -0.609375 Z M 1.703125 -6.09375 "
id="path2740" />
</symbol>
</g>
</defs>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<g
inkscape:label=""
transform="matrix(5.2263378,0,0,5.2263378,-438.7394,-343.43591)"
id="g838"
style="fill:#4063d8;fill-opacity:1;stroke:#000000;stroke-width:0.191339;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.973693">
<g
id="g5147"
style="fill:#4063d8;fill-opacity:1;stroke:#000000;stroke-width:0.191339;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.973693">
<g
style="fill:#4063d8;fill-opacity:1;stroke:#000000;stroke-width:0.191339;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.973693"
id="g6466">
<g
id="use209"
style="fill:#4063d8;fill-opacity:1;stroke:#000000;stroke-width:0.191339;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.973693"
transform="translate(91.925003,81.962997)">
<path
style="stroke:#000000;stroke-width:0.191339;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.973693"
d="M 7.78125,-6.59375 C 7.796875,-6.625 7.828125,-6.6875 7.828125,-6.734375 7.828125,-6.796875 7.8125,-6.8125 7.59375,-6.8125 H 0.703125 c -0.21875,0 -0.234375,0.015625 -0.234375,0.078125 0,0.046875 0.03125,0.109375 0.046875,0.140625 L 3.875,0.140625 c 0.078125,0.125 0.109375,0.1875 0.265625,0.1875 0.171875,0 0.203125,-0.0625 0.28125,-0.1875 z m -6.078125,0.5 h 5.46875 l -2.71875,5.484375 z m 0,0"
id="path32330" />
</g>
</g>
</g>
</g>
<circle
style="fill:#389826;fill-opacity:1;stroke:#000000;stroke-width:1.001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.973693"
id="path1019"
cx="96.741776"
cy="59.120014"
r="9.2048397" />
<circle
style="fill:#cb3c33;fill-opacity:1;stroke:#000000;stroke-width:1.001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.973693"
id="circle7460"
cx="85.435707"
cy="78.720039"
r="9.2048397" />
<circle
style="fill:#9558b2;fill-opacity:1;stroke:#000000;stroke-width:1.001;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.973693"
id="circle7462"
cx="108.8783"
cy="78.734283"
r="9.2048397" />
</g>
</svg>
Here’s how it looks with Luxor.jl and the official Julia font and logo.
I think we’re starting to converge to something cool?
using Luxor
@draw begin
background("white")
translate(150, 0)
juliacircles(150)
setfont("TamilMN Bold", 630)
setcolor(Luxor.julia_blue)
settext("∇", Point(-600, 290))
end 1000 600
That is elegantly simple.
I kinda like it.
And it says “Differentiate Julia”
which is what we do.
Should we do a version with text for stickers, just saying “JuliaDiff” below?
yes, and one saying JuliaDiff to the right? as a banner sticker?
So we can look at both
I’ll get on that
The font you’re using setfont("TamilMN Bold", 630)
doesn’t have the nabla
(∇
) glyph, so you’re going to be seeing some kind of font fallback working, and these vary a lot from system to system.
On my Mac I see this with your code:
and this isn’t as nice as yours…
On Mac, “Symbol” will get you this:
but the alignment needs work.
Drawing the triangle the hard way is probably best.
Here’s what it looks like with the text
@cormullion what do you mean? How do I use Symbol
?
using Luxor
function juliadiff_logo(scaling; name_placement=nothing, name_color="black")
juliacircles(scaling * 100)
setfont("TamilMN Bold", scaling * 420)
setcolor(Luxor.julia_blue)
settext("∇", O + scaling * Point(-410, 200))
if !isnothing(name_placement)
setcolor(name_color)
setfont("TamilMN Bold", scaling * 150)
if name_placement == :below
settext("JuliaDiff", O + scaling * Point(-430, 330))
elseif name_placement == :right
settext("JuliaDiff", O + scaling * Point(200, 52))
end
end
end
@draw begin
background("white")
origin(500, 200)
juliadiff_logo(1; name_placement=:below, name_color="black")
end 800 550
Your code produces this on my Mac:
because fonts are a pain in the neck to work with, particularly on different platforms and OSes…
I can get the nabla symbol looking closer to yours on mine if I use setfont("Symbol", scaling * 420)
but again that’s probably not a cross-platform solution.
I like this a lot, but the kerning between the “D” and the “i” looks off. I parse the text as “Julia D iff”.
Is there a way to tweak the kerning in Luxor?
Haha - there’s a low-level function that can do a bit of kerning.
Kerning code
@draw begin
background("white")
origin(500, 200)
textplace("JuliaDiff", O + (-300, -100), [
(size=120, face="TamilMN-Bold"),
])
textplace("JuliaDiff", O + (-300, 0), [
(size=120, face="TamilMN-Bold"), # J
(kern=-8,), # u
(kern=-5,), # l
(kern=-7,), # i
(kern=-6,), # a
(kern=-10,), # D
(kern=-12, ), # i
(kern=-6, ), # f
(kern=-8, ), # f
])
textplace("JuliaDiff", O + (-300, 100), [
(size=120, face="Barlow-Bold"), # J
# f
])
end 800 400
but using a better font in the first place is probably easier.
It’s the official Julia font so I kinda like it?
Question about that: I need two different thicknesses so I have to draw two separate paths, but how can I get the corners to play nicely together? Something like the square linecap here
Might be better as:
@draw begin
background("white")
sethue("black")
setfillrule(:even_odd)
ngon(O, 100, 3, -π/6, action=:path)
ngon(O + (10, 0), 70, 3, -π/6, action=:path)
fillpath()
end 800 400
It’s always better to avoid line thicknesses if you can, because of scaling issues.
Do you need or want it to be drawn with code? Adjusting the details in a SVG is much easier.
I think it’s nice to use ecosystem tools like Luxor.jl, especially cause we get first class support from @cormullion. And because it makes it easier to change things programmatically
One think I like about having stroke lines in the symbols is that the contrast in dark backgrounds can be adjusted:
vs:
True but it feels slightly less “modern”?