| @ -0,0 +1,12 @@ | |||
| # For more information visit http://editorconfig.org/ | |||
| root = true | |||
| [*] | |||
| end_of_line = lf | |||
| insert_final_newline = true | |||
| trim_trailing_whitespace = true | |||
| indent_style = space | |||
| indent_size = 2 | |||
| [Makefile] | |||
| indent_style = tab | |||
| @ -0,0 +1,2 @@ | |||
| temp.svg | |||
| *.png | |||
| @ -0,0 +1,51 @@ | |||
| # Variables | |||
| ifdef dark | |||
| dark_color=$(dark) | |||
| endif | |||
| ifdef light | |||
| light_color=$(light) | |||
| endif | |||
| ifdef middle | |||
| middle_color=$(middle) | |||
| endif | |||
| ifneq ($(wildcard $(dark)),) | |||
| dark_color=transparent | |||
| endif | |||
| ifneq ($(wildcard $(light)),) | |||
| light_color=transparent | |||
| endif | |||
| ifneq ($(wildcard $(middle)),) | |||
| middle_color=transparent | |||
| endif | |||
| size?=1024 | |||
| dark_color?=black | |||
| light_color?=white | |||
| middle_color?=gray | |||
| # Base targets | |||
| default: build | |||
| # Build process | |||
| build: clean logo.svg | |||
| @cp logo.svg temp.svg | |||
| @sed -i 's/fill: black/:fill1:/' temp.svg | |||
| @sed -i 's/fill: white/:fill2:/' temp.svg | |||
| @sed -i 's/fill: gray/:fill3:/' temp.svg | |||
| @sed -i 's/:fill1:/fill: $(dark_color)/' temp.svg | |||
| @sed -i 's/:fill2:/fill: $(light_color)/' temp.svg | |||
| @sed -i 's/:fill3:/fill: $(middle_color)/' temp.svg | |||
| @sed -i 's/dark.png/:image1:/' temp.svg | |||
| @sed -i 's/light.png/:image2:/' temp.svg | |||
| @sed -i 's/middle.png/:image3:/' temp.svg | |||
| @sed -i 's/:image1:/$(dark)/' temp.svg | |||
| @sed -i 's/:image2:/$(light)/' temp.svg | |||
| @sed -i 's/:image3:/$(middle)/' temp.svg | |||
| convert -background none -size $(size)x$(size) temp.svg logo.png | |||
| @rm temp.svg | |||
| clean: | |||
| @rm -f logo.png temp.svg | |||
| # Linting | |||
| lint: xmllint | |||
| xmllint: logo.svg | |||
| xmllint --noout logo.svg | |||
| @ -0,0 +1,101 @@ | |||
| <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="512" height="512" viewBox="0 0 512 512"> | |||
| <!-- Remove to show images --> | |||
| <style type="text/css"> | |||
| #dark-pattern rect { fill: black } | |||
| #light-pattern rect { fill: white } | |||
| #middle-pattern rect { fill: gray } | |||
| </style> | |||
| <defs> | |||
| <!-- Background patterns --> | |||
| <pattern id="dark-pattern" patternUnits="userSpaceOnUse" width="100%" height="100%"> | |||
| <image xlink:href="dark.png" x="0" y="0" width="100%" height="100%" preserveAspectRatio="xMidYMid slice" /> | |||
| <rect width="100%" height="100%" /> | |||
| </pattern> | |||
| <pattern id="light-pattern" patternUnits="userSpaceOnUse" width="100%" height="100%"> | |||
| <image xlink:href="light.png" x="0" y="0" width="100%" height="100%" preserveAspectRatio="xMidYMid slice" /> | |||
| <rect width="100%" height="100%" /> | |||
| </pattern> | |||
| <pattern id="middle-pattern" patternUnits="userSpaceOnUse" width="100%" height="100%"> | |||
| <image xlink:href="middle.png" x="0" y="0" width="100%" height="100%" preserveAspectRatio="xMidYMid slice" /> | |||
| <rect width="100%" height="100%" /> | |||
| </pattern> | |||
| <!-- Gradients for arrow --> | |||
| <linearGradient id="dark-arrow-gradient-1" x1="0" x2="1" y1="0" y2="1"> | |||
| <stop stop-color="white" offset="41%" /> | |||
| <stop stop-color="black" offset="49.9%" /> | |||
| </linearGradient> | |||
| <linearGradient id="dark-arrow-gradient-2" x1="0" x2="0" y1="0" y2="1"> | |||
| <stop stop-color="white" offset="19%" /> | |||
| <stop stop-color="black" offset="100%" /> | |||
| </linearGradient> | |||
| <linearGradient id="light-arrow-gradient-1" x1="1" x2="0" y1="1" y2="0"> | |||
| <stop stop-color="white" offset="41%" /> | |||
| <stop stop-color="black" offset="49.9%" /> | |||
| </linearGradient> | |||
| <linearGradient id="light-arrow-gradient-2" x1="1" x2="0" y1="0" y2="0"> | |||
| <stop stop-color="white" offset="19%" /> | |||
| <stop stop-color="black" offset="100%" /> | |||
| </linearGradient> | |||
| <!-- Grid definitions --> | |||
| <mask id="dark-grid-mask"> | |||
| <circle cx="50%" cy="50%" r="46%" fill="none" stroke="white" stroke-width="8%" /> | |||
| <rect x="46%" y="70%" width="8%" height="25%" fill="white" transform="rotate(-45 256 256)" /> | |||
| <rect x="0%" y="0%" width="100%" height="50%" fill="black" transform="rotate(45 256 256) translate(0 -20)" /> | |||
| <rect x="50%" y="46%" width="50%" height="8%" fill="white" /> | |||
| <rect x="46%" y="50%" width="8%" height="46%" fill="white" /> | |||
| <rect x="-4%" y="40%" width="25%" height="25%" fill="black" transform="rotate(-45 256 256)" /> | |||
| <circle cx="50%" cy="50%" r="5.656854249%" fill="black" /> | |||
| <polygon fill="black" points="-1,-1 -1,513 513,-1" /> | |||
| <rect x="96%" y="46%" width="4%" height="4%" fill="black" /> | |||
| <path d="M 0 256 V 512 H 256 Q 33 501, 0 256" fill="black" /> | |||
| </mask> | |||
| <mask id="light-grid-mask"> | |||
| <circle cx="50%" cy="50%" r="46%" fill="none" stroke="white" stroke-width="8%" /> | |||
| <rect x="46%" y="6%" width="8%" height="25%" fill="white" transform="rotate(-45 256 256)" /> | |||
| <rect x="0%" y="0%" width="100%" height="50%" fill="black" transform="rotate(45 256 256) translate(0 -20)" /> | |||
| <rect x="46%" y="0%" width="8%" height="54%" fill="white" /> | |||
| <rect x="4%" y="46%" width="50%" height="8%" fill="white" /> | |||
| <rect x="-4%" y="30%" width="25%" height="25%" fill="black" transform="rotate(-45 256 256)" /> | |||
| <circle cx="50%" cy="50%" r="5.656854249%" fill="black" /> | |||
| <polygon fill="black" points="-1,513 513,513 513,-1" /> | |||
| <rect x="50%" y="0%" width="4%" height="4%" fill="black" /> | |||
| <path d="M 0 256 V 512 H 256 Q 11 479, 0 256" fill="black" /> | |||
| </mask> | |||
| <!-- Arrow definitions --> | |||
| <mask id="dark-arrow-mask"> | |||
| <rect x="46%" y="0%" width="8%" height="44%" fill="url(#dark-arrow-gradient-2)" /> | |||
| <rect x="50%" y="0%" width="4%" height="4%" fill="black" /> | |||
| <circle cx="50%" cy="50%" r="46%" fill="none" stroke="url(#dark-arrow-gradient-1)" stroke-width="8%" /> | |||
| <rect x="0%" y="0%" width="46%" height="100%" fill="black" /> | |||
| <rect x="0%" y="54%" width="100%" height="46%" fill="black" /> | |||
| <rect x="46%" y="-50%" width="8%" height="110%" fill="white" transform="rotate(45 256 256) translate(-82 282)" /> | |||
| <rect x="0%" y="46%" width="50%" height="8%" fill="black" /> | |||
| <path d="M 0 256 V 512 H 256 Q 11 479, 0 256" fill="black" /> | |||
| </mask> | |||
| <mask id="light-arrow-mask"> | |||
| <rect x="56%" y="46%" width="44%" height="8%" fill="url(#light-arrow-gradient-2)" /> | |||
| <rect x="96%" y="46%" width="4%" height="4%" fill="black" /> | |||
| <circle cx="50%" cy="50%" r="46%" fill="none" stroke="url(#light-arrow-gradient-1)" stroke-width="8%" /> | |||
| <rect x="0%" y="0%" width="46%" height="100%" fill="black" /> | |||
| <rect x="0%" y="54%" width="100%" height="46%" fill="black" /> | |||
| <rect x="46%" y="-50%" width="8%" height="110%" fill="white" transform="rotate(45 256 256) translate(82 282)" /> | |||
| <rect x="46%" y="50%" width="8%" height="50%" fill="black" /> | |||
| <path d="M 0 256 V 512 H 256 Q 33 501, 0 256" fill="black" /> | |||
| </mask> | |||
| </defs> | |||
| <!-- Background --> | |||
| <rect width="100%" height="100%" fill="url(#middle-pattern)" /> | |||
| <!-- Grids --> | |||
| <rect width="100%" height="100%" fill="url(#dark-pattern)" mask="url(#dark-grid-mask)" /> | |||
| <rect width="100%" height="100%" fill="url(#light-pattern)" mask="url(#light-grid-mask)" /> | |||
| <!-- Arrows --> | |||
| <rect width="100%" height="100%" fill="url(#dark-pattern)" mask="url(#dark-arrow-mask)" /> | |||
| <rect width="100%" height="100%" fill="url(#light-pattern)" mask="url(#light-arrow-mask)" /> | |||
| </svg> | |||
| @ -0,0 +1,85 @@ | |||
| <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="512" height="512" viewBox="0 0 512 512"> | |||
| <!-- Remove to show images --> | |||
| <style type="text/css"> | |||
| #dark-pattern rect { fill: black } | |||
| #light-pattern rect { fill: white } | |||
| #middle-pattern rect { fill: gray } | |||
| </style> | |||
| <defs> | |||
| <!-- Background patterns --> | |||
| <pattern id="dark-pattern" patternUnits="userSpaceOnUse" width="100%" height="100%"> | |||
| <image xlink:href="dark.png" x="0" y="0" width="100%" height="100%" preserveAspectRatio="xMidYMid slice"/> | |||
| <rect width="100%" height="100%"/> | |||
| </pattern> | |||
| <pattern id="light-pattern" patternUnits="userSpaceOnUse" width="100%" height="100%"> | |||
| <image xlink:href="light.png" x="0" y="0" width="100%" height="100%" preserveAspectRatio="xMidYMid slice"/> | |||
| <rect width="100%" height="100%"/> | |||
| </pattern> | |||
| <pattern id="middle-pattern" patternUnits="userSpaceOnUse" width="100%" height="100%"> | |||
| <image xlink:href="middle.png" x="0" y="0" width="100%" height="100%" preserveAspectRatio="xMidYMid slice"/> | |||
| <rect width="100%" height="100%"/> | |||
| </pattern> | |||
| <!-- Gradients for arrow --> | |||
| <linearGradient id="dark-arrow-gradient-1" x1="0" x2="1" y1="0" y2="0"> | |||
| <stop stop-color="white" offset="50%"/> | |||
| <stop stop-color="black" offset="84%"/> | |||
| </linearGradient> | |||
| <linearGradient id="dark-arrow-gradient-2" x1="0" x2="0" y1="0" y2="1"> | |||
| <stop stop-color="white" offset="19%"/> | |||
| <stop stop-color="black" offset="100%"/> | |||
| </linearGradient> | |||
| <linearGradient id="light-arrow-gradient-1" x1="0" x2="0" y1="1" y2="0"> | |||
| <stop stop-color="white" offset="50%"/> | |||
| <stop stop-color="black" offset="84%"/> | |||
| </linearGradient> | |||
| <linearGradient id="light-arrow-gradient-2" x1="1" x2="0" y1="0" y2="0"> | |||
| <stop stop-color="white" offset="19%"/> | |||
| <stop stop-color="black" offset="100%"/> | |||
| </linearGradient> | |||
| <!-- Grid definitions --> | |||
| <mask id="dark-grid-mask"> | |||
| <rect x="50%" y="46%" width="50%" height="8%" fill="white"/> | |||
| <rect x="46%" y="50%" width="8%" height="50%" fill="white"/> | |||
| <rect x="28%" y="92%" width="72%" height="8%" fill="white"/> | |||
| <circle cx="50%" cy="50%" r="5.656854249%" fill="black"/> | |||
| <rect x="47%" y="63%" width="8%" height="87%" fill="white" transform="rotate(-45 256 256) translate(4)"/> | |||
| <polygon fill="black" points="-1,-1 -1,513 513,-1"/> | |||
| </mask> | |||
| <mask id="light-grid-mask"> | |||
| <rect x="0%" y="0%" width="8%" height="72%" fill="white"/> | |||
| <rect x="46%" y="0%" width="8%" height="54%" fill="white"/> | |||
| <rect x="0%" y="46%" width="50%" height="8%" fill="white"/> | |||
| <circle cx="50%" cy="50%" r="5.656854249%" fill="black"/> | |||
| <rect x="47%" y="-50%" width="8%" height="87%" fill="white" transform="rotate(-45 256 256) translate(4)"/> | |||
| <polygon fill="black" points="-1,513 513,513 513,-1"/> | |||
| </mask> | |||
| <!-- Arrow definitions --> | |||
| <mask id="dark-arrow-mask"> | |||
| <rect x="46%" y="-50%" width="8%" height="200%" fill="white" transform="rotate(45 256 256) translate(-82 -82)"/> | |||
| <rect x="50%" y="0%" width="50%" height="8%" fill="url(#dark-arrow-gradient-1)"/> | |||
| <rect x="0%" y="46%" width="50%" height="8%" fill="black"/> | |||
| <rect x="46%" y="0%" width="8%" height="44%" fill="url(#dark-arrow-gradient-2)"/> | |||
| </mask> | |||
| <mask id="light-arrow-mask"> | |||
| <rect x="46%" y="-50%" width="8%" height="200%" fill="white" transform="rotate(45 256 256) translate(82 82)"/> | |||
| <rect x="92%" y="0%" width="8%" height="50%" fill="url(#light-arrow-gradient-1)"/> | |||
| <rect x="46%" y="50%" width="8%" height="50%" fill="black"/> | |||
| <rect x="56%" y="46%" width="44%" height="8%" fill="url(#light-arrow-gradient-2)"/> | |||
| </mask> | |||
| </defs> | |||
| <!-- Background --> | |||
| <rect width="100%" height="100%" fill="url(#middle-pattern)"/> | |||
| <!-- Grids --> | |||
| <rect width="100%" height="100%" fill="url(#dark-pattern)" mask="url(#dark-grid-mask)"/> | |||
| <rect width="100%" height="100%" fill="url(#light-pattern)" mask="url(#light-grid-mask)"/> | |||
| <!-- Arrows --> | |||
| <rect width="100%" height="100%" fill="url(#dark-pattern)" mask="url(#dark-arrow-mask)"/> | |||
| <rect width="100%" height="100%" fill="url(#light-pattern)" mask="url(#light-arrow-mask)"/> | |||
| </svg> | |||