diff --git a/README.md b/README.md
index cffd8a74e272ca450f579190814546099b503f8e..44d828d3f3083a929556298685db031a3c9ec43d 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,4 @@
-![image](share/spack/logo/spack-logo-text-64.png "Spack")
-============
+# <img src="https://cdn.rawgit.com/spack/spack/features/svg-logo/share/spack/logo/spack-logo.svg" width="64" valign="middle" alt="Spack"/> Spack
 
 [![Build Status](https://travis-ci.org/spack/spack.svg?branch=develop)](https://travis-ci.org/spack/spack)
 [![codecov](https://codecov.io/gh/spack/spack/branch/develop/graph/badge.svg)](https://codecov.io/gh/spack/spack)
diff --git a/lib/spack/docs/conf.py b/lib/spack/docs/conf.py
index ba4fe05b36086395faffa205a136e8e74ff8d3c3..94d301f6d9605941aae60ab50b8800d92e00db87 100644
--- a/lib/spack/docs/conf.py
+++ b/lib/spack/docs/conf.py
@@ -249,7 +249,7 @@ def setup(sphinx):
 
 # The name of an image file (relative to this directory) to place at the top
 # of the sidebar.
-html_logo = '../../../share/spack/logo/spack-logo-white-text-48.png'
+html_logo = '../../../share/spack/logo/spack-logo-white-text.svg'
 
 # The name of an image file (within the static path) to use as favicon of the
 # docs.  This file should be a Windows icon file (.ico) being 16x16 or 32x32
diff --git a/share/spack/logo/spack-logo-text-64.png b/share/spack/logo/spack-logo-text-64.png
deleted file mode 100644
index 8dad4c519fafcece2d060c4ef919b59f62ccf10c..0000000000000000000000000000000000000000
Binary files a/share/spack/logo/spack-logo-text-64.png and /dev/null differ
diff --git a/share/spack/logo/spack-logo-text-bottom.svg b/share/spack/logo/spack-logo-text-bottom.svg
new file mode 100644
index 0000000000000000000000000000000000000000..90f5c5515e82b7bec348819e800aefd3e1455b27
--- /dev/null
+++ b/share/spack/logo/spack-logo-text-bottom.svg
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg width="256" height="340"
+     viewBox="-128 -128 256 340"
+     version="1.1"
+     xmlns="http://www.w3.org/2000/svg"
+     xmlns:xlink="http://www.w3.org/1999/xlink"
+     xmlns:ev="http://www.w3.org/2001/xml-events">
+
+  <style>
+    .logo        { font-family:Arial; font-weight:bold; }
+    .diamond     { fill:#0f3a80; }
+    circle.back  { fill:#ffa600; stroke:#0f3a80; stroke-width:6; }
+    circle.front { fill:#ffffff; stroke:#0f3a80; stroke-width:6; }
+    line.back    { stroke:#ffa600; stroke-width:7; }
+    line.front   { stroke:#ffffff; stroke-width:7; }
+    line.shadow  { stroke:#0f3a80; stroke-width:7; }
+  </style>
+
+  <defs>
+    <!-- need two arrows b/c we can't sync color with the marked element -->
+    <marker id="barrow" markerWidth="4" markerHeight="3" refX=".05" refY="1.5"
+            orient="auto" markerUnits="strokeWidth">
+      <path d="M0,0 L0,3 L4,1.5 z" fill="#ffa600"/>
+    </marker>
+    <marker id="farrow" markerWidth="4" markerHeight="3" refX=".05" refY="1.5"
+            orient="auto" markerUnits="strokeWidth">
+      <path d="M0,0 L0,3 L4,1.5 z" fill="#ffffff"/>
+    </marker>
+  </defs>
+
+  <!-- rounded diamond shape -->
+  <rect x="-97" y="-97" width="194" height="194" rx="26" ry="26"
+        transform="rotate(45)" class="diamond"/>
+
+  <!-- background dependency structure -->
+  <line x1="-11" y1="-80" x2="-11" y2="-29" transform="rotate(42 -11 -80)"
+        class="back" marker-end="url(#barrow)"/>
+  <line x1="-80" y1="0"   x2="-80" y2="57"  transform="rotate(-45 -80 0)"
+        class="back" marker-end="url(#barrow)"/>
+  <line x1="-11" y1="-80" x2="-11" y2="28" class="back"
+        marker-end="url(#barrow)"/>
+
+  <circle cx="-11" cy="-80" r="23" class="back"/>
+  <circle cx="0"   cy="80"  r="23" class="back"/>
+  <circle cx="-80" cy="0"   r="23" class="back"/>
+
+  <!-- foreground dependency structure -->
+  <line x1="18" y1="-80" x2="18" y2="0" transform="rotate(42 17 -80)"
+        class="shadow"/>
+  <line x1="13" y1="-80" x2="13" y2="-5" transform="rotate(42 11 -80)"
+        class="front" marker-end="url(#farrow)"/>
+
+  <line x1="11" y1="-80" x2="11" y2="-29" transform="rotate(-42 11 -80)"
+        class="front" marker-end="url(#farrow)"/>
+  <line x1="80" y1="0"   x2="80" y2="57"  transform="rotate(45 80 0)"
+        class="front" marker-end="url(#farrow)"/>
+  <line x1="11" y1="-80" x2="11" y2="28"  class="front"
+        marker-end="url(#farrow)"/>
+
+  <circle cx="11" cy="-80" r="23" class="front"/>
+  <circle cx="80" cy="0"   r="23" class="front"/>
+
+  <text x="0" y="184" text-anchor="middle" font-size="64pt" class="logo">
+    Spack
+  </text>
+</svg>
diff --git a/share/spack/logo/spack-logo-text.svg b/share/spack/logo/spack-logo-text.svg
new file mode 100644
index 0000000000000000000000000000000000000000..5ad4588d8a719d656a9c59cfbe42d3ead6a05a17
--- /dev/null
+++ b/share/spack/logo/spack-logo-text.svg
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg width="850" height="256"
+     viewBox="-128 -128 850 256"
+     version="1.1"
+     xmlns="http://www.w3.org/2000/svg"
+     xmlns:xlink="http://www.w3.org/1999/xlink"
+     xmlns:ev="http://www.w3.org/2001/xml-events">
+
+  <style>
+    .logo        { font-family:Arial; font-weight:bold; }
+    .diamond     { fill:#0f3a80; }
+    circle.back  { fill:#ffa600; stroke:#0f3a80; stroke-width:6; }
+    circle.front { fill:#ffffff; stroke:#0f3a80; stroke-width:6; }
+    line.back    { stroke:#ffa600; stroke-width:7; }
+    line.front   { stroke:#ffffff; stroke-width:7; }
+    line.shadow  { stroke:#0f3a80; stroke-width:7; }
+  </style>
+
+  <defs>
+    <!-- need two arrows b/c we can't sync color with the marked element -->
+    <marker id="barrow" markerWidth="4" markerHeight="3" refX=".05" refY="1.5"
+            orient="auto" markerUnits="strokeWidth">
+      <path d="M0,0 L0,3 L4,1.5 z" fill="#ffa600"/>
+    </marker>
+    <marker id="farrow" markerWidth="4" markerHeight="3" refX=".05" refY="1.5"
+            orient="auto" markerUnits="strokeWidth">
+      <path d="M0,0 L0,3 L4,1.5 z" fill="#ffffff"/>
+    </marker>
+  </defs>
+
+  <!-- rounded diamond shape -->
+  <rect x="-97" y="-97" width="194" height="194" rx="26" ry="26"
+        transform="rotate(45)" class="diamond"/>
+
+  <!-- background dependency structure -->
+  <line x1="-11" y1="-80" x2="-11" y2="-29" transform="rotate(42 -11 -80)"
+        class="back" marker-end="url(#barrow)"/>
+  <line x1="-80" y1="0"   x2="-80" y2="57"  transform="rotate(-45 -80 0)"
+        class="back" marker-end="url(#barrow)"/>
+  <line x1="-11" y1="-80" x2="-11" y2="28" class="back"
+        marker-end="url(#barrow)"/>
+
+  <circle cx="-11" cy="-80" r="23" class="back"/>
+  <circle cx="0"   cy="80"  r="23" class="back"/>
+  <circle cx="-80" cy="0"   r="23" class="back"/>
+
+  <!-- foreground dependency structure -->
+  <line x1="18" y1="-80" x2="18" y2="0" transform="rotate(42 17 -80)"
+        class="shadow"/>
+  <line x1="13" y1="-80" x2="13" y2="-5" transform="rotate(42 11 -80)"
+        class="front" marker-end="url(#farrow)"/>
+
+  <line x1="11" y1="-80" x2="11" y2="-29" transform="rotate(-42 11 -80)"
+        class="front" marker-end="url(#farrow)"/>
+  <line x1="80" y1="0"   x2="80" y2="57"  transform="rotate(45 80 0)"
+        class="front" marker-end="url(#farrow)"/>
+  <line x1="11" y1="-80" x2="11" y2="28"  class="front"
+        marker-end="url(#farrow)"/>
+
+  <circle cx="11" cy="-80" r="23" class="front"/>
+  <circle cx="80" cy="0"   r="23" class="front"/>
+
+  <text x="160" y="64" font-size="128pt" class="logo">Spack</text>
+</svg>
diff --git a/share/spack/logo/spack-logo-white-text-48.png b/share/spack/logo/spack-logo-white-text-48.png
deleted file mode 100644
index 9e60867e81cac2b86fe38b12bd506653682e964b..0000000000000000000000000000000000000000
Binary files a/share/spack/logo/spack-logo-white-text-48.png and /dev/null differ
diff --git a/share/spack/logo/spack-logo-white-text-bottom.svg b/share/spack/logo/spack-logo-white-text-bottom.svg
new file mode 100644
index 0000000000000000000000000000000000000000..25d62a6b2d996cb7b3d32694fefa83c593f606d1
--- /dev/null
+++ b/share/spack/logo/spack-logo-white-text-bottom.svg
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg width="256" height="340"
+     viewBox="-128 -128 256 340"
+     version="1.1"
+     xmlns="http://www.w3.org/2000/svg"
+     xmlns:xlink="http://www.w3.org/1999/xlink"
+     xmlns:ev="http://www.w3.org/2001/xml-events">
+
+  <style>
+    .logo        { font-family:Arial; font-weight:bold; fill:#ffffff; }
+    .diamond     { fill:#ffffff; }
+    circle.back  { fill:#ffa600; stroke:#ffffff; stroke-width:6; }
+    circle.front { fill:#0e3d7e; stroke:#ffffff; stroke-width:6; }
+    line.back    { stroke:#ffa600; stroke-width:7; }
+    line.front   { stroke:#0e3d7e; stroke-width:7; }
+    line.shadow  { stroke:#ffffff; stroke-width:7; }
+  </style>
+
+  <defs>
+    <!-- need two arrows b/c we can't sync color with the marked element -->
+    <marker id="barrow" markerWidth="4" markerHeight="3" refX=".05" refY="1.5"
+            orient="auto" markerUnits="strokeWidth">
+      <path d="M0,0 L0,3 L4,1.5 z" fill="#ffa600"/>
+    </marker>
+    <marker id="farrow" markerWidth="4" markerHeight="3" refX=".05" refY="1.5"
+            orient="auto" markerUnits="strokeWidth">
+      <path d="M0,0 L0,3 L4,1.5 z" fill="#0e3d7e"/>
+    </marker>
+  </defs>
+
+  <!-- rounded diamond shape -->
+  <rect x="-97" y="-97" width="194" height="194" rx="26" ry="26"
+        transform="rotate(45)" class="diamond"/>
+
+  <!-- background dependency structure -->
+  <line x1="-11" y1="-80" x2="-11" y2="-29" transform="rotate(42 -11 -80)"
+        class="back" marker-end="url(#barrow)"/>
+  <line x1="-80" y1="0"   x2="-80" y2="57"  transform="rotate(-45 -80 0)"
+        class="back" marker-end="url(#barrow)"/>
+  <line x1="-11" y1="-80" x2="-11" y2="28" class="back"
+        marker-end="url(#barrow)"/>
+
+  <circle cx="-11" cy="-80" r="23" class="back"/>
+  <circle cx="0"   cy="80"  r="23" class="back"/>
+  <circle cx="-80" cy="0"   r="23" class="back"/>
+
+  <!-- foreground dependency structure -->
+  <line x1="18" y1="-80" x2="18" y2="0" transform="rotate(42 17 -80)"
+        class="shadow"/>
+  <line x1="13" y1="-80" x2="13" y2="-5" transform="rotate(42 11 -80)"
+        class="front" marker-end="url(#farrow)"/>
+
+  <line x1="11" y1="-80" x2="11" y2="-29" transform="rotate(-42 11 -80)"
+        class="front" marker-end="url(#farrow)"/>
+  <line x1="80" y1="0"   x2="80" y2="57"  transform="rotate(45 80 0)"
+        class="front" marker-end="url(#farrow)"/>
+  <line x1="11" y1="-80" x2="11" y2="28"  class="front"
+        marker-end="url(#farrow)"/>
+
+  <circle cx="11" cy="-80" r="23" class="front"/>
+  <circle cx="80" cy="0"   r="23" class="front"/>
+
+  <text x="0" y="184" text-anchor="middle" font-size="64pt" class="logo">
+    Spack
+  </text>
+</svg>
diff --git a/share/spack/logo/spack-logo-white-text.svg b/share/spack/logo/spack-logo-white-text.svg
new file mode 100644
index 0000000000000000000000000000000000000000..d3dfd73f5c4a2fe09857f5e677c21416ce2df38d
--- /dev/null
+++ b/share/spack/logo/spack-logo-white-text.svg
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg width="850" height="256"
+     viewBox="-128 -128 850 256"
+     version="1.1"
+     xmlns="http://www.w3.org/2000/svg"
+     xmlns:xlink="http://www.w3.org/1999/xlink"
+     xmlns:ev="http://www.w3.org/2001/xml-events">
+
+  <style>
+    .logo        { font-family:Arial; font-weight:bold; fill:#ffffff; }
+    .diamond     { fill:#ffffff; }
+    circle.back  { fill:#ffa600; stroke:#ffffff; stroke-width:6; }
+    circle.front { fill:#0e3d7e; stroke:#ffffff; stroke-width:6; }
+    line.back    { stroke:#ffa600; stroke-width:7; }
+    line.front   { stroke:#0e3d7e; stroke-width:7; }
+    line.shadow  { stroke:#ffffff; stroke-width:7; }
+  </style>
+
+  <defs>
+    <!-- need two arrows b/c we can't sync color with the marked element -->
+    <marker id="barrow" markerWidth="4" markerHeight="3" refX=".05" refY="1.5"
+            orient="auto" markerUnits="strokeWidth">
+      <path d="M0,0 L0,3 L4,1.5 z" fill="#ffa600"/>
+    </marker>
+    <marker id="farrow" markerWidth="4" markerHeight="3" refX=".05" refY="1.5"
+            orient="auto" markerUnits="strokeWidth">
+      <path d="M0,0 L0,3 L4,1.5 z" fill="#0e3d7e"/>
+    </marker>
+  </defs>
+
+  <!-- rounded diamond shape -->
+  <rect x="-97" y="-97" width="194" height="194" rx="26" ry="26"
+        transform="rotate(45)" class="diamond"/>
+
+  <!-- background dependency structure -->
+  <line x1="-11" y1="-80" x2="-11" y2="-29" transform="rotate(42 -11 -80)"
+        class="back" marker-end="url(#barrow)"/>
+  <line x1="-80" y1="0"   x2="-80" y2="57"  transform="rotate(-45 -80 0)"
+        class="back" marker-end="url(#barrow)"/>
+  <line x1="-11" y1="-80" x2="-11" y2="28" class="back"
+        marker-end="url(#barrow)"/>
+
+  <circle cx="-11" cy="-80" r="23" class="back"/>
+  <circle cx="0"   cy="80"  r="23" class="back"/>
+  <circle cx="-80" cy="0"   r="23" class="back"/>
+
+  <!-- foreground dependency structure -->
+  <line x1="18" y1="-80" x2="18" y2="0" transform="rotate(42 17 -80)"
+        class="shadow"/>
+  <line x1="13" y1="-80" x2="13" y2="-5" transform="rotate(42 11 -80)"
+        class="front" marker-end="url(#farrow)"/>
+
+  <line x1="11" y1="-80" x2="11" y2="-29" transform="rotate(-42 11 -80)"
+        class="front" marker-end="url(#farrow)"/>
+  <line x1="80" y1="0"   x2="80" y2="57"  transform="rotate(45 80 0)"
+        class="front" marker-end="url(#farrow)"/>
+  <line x1="11" y1="-80" x2="11" y2="28"  class="front"
+        marker-end="url(#farrow)"/>
+
+  <circle cx="11" cy="-80" r="23" class="front"/>
+  <circle cx="80" cy="0"   r="23" class="front"/>
+
+  <text x="160" y="64" font-size="128pt" class="logo">Spack</text>
+</svg>
diff --git a/share/spack/logo/spack-logo-white.svg b/share/spack/logo/spack-logo-white.svg
new file mode 100644
index 0000000000000000000000000000000000000000..3e6c40d123b917dd8c52f30aac72a87f636e07d6
--- /dev/null
+++ b/share/spack/logo/spack-logo-white.svg
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg width="256" height="256"
+     viewBox="-128 -128 256 256"
+     version="1.1"
+     xmlns="http://www.w3.org/2000/svg"
+     xmlns:xlink="http://www.w3.org/1999/xlink"
+     xmlns:ev="http://www.w3.org/2001/xml-events">
+
+  <style>
+    .diamond     { fill:#ffffff; }
+    circle.back  { fill:#ffa600; stroke:#ffffff; stroke-width:6; }
+    circle.front { fill:#0e3d7e; stroke:#ffffff; stroke-width:6; }
+    line.back    { stroke:#ffa600; stroke-width:7; }
+    line.front   { stroke:#0e3d7e; stroke-width:7; }
+    line.shadow  { stroke:#ffffff; stroke-width:7; }
+  </style>
+
+  <defs>
+    <!-- need two arrows b/c we can't sync color with the marked element -->
+    <marker id="barrow" markerWidth="4" markerHeight="3" refX=".05" refY="1.5"
+            orient="auto" markerUnits="strokeWidth">
+      <path d="M0,0 L0,3 L4,1.5 z" fill="#ffa600"/>
+    </marker>
+    <marker id="farrow" markerWidth="4" markerHeight="3" refX=".05" refY="1.5"
+            orient="auto" markerUnits="strokeWidth">
+      <path d="M0,0 L0,3 L4,1.5 z" fill="#0e3d7e"/>
+    </marker>
+  </defs>
+
+  <!-- rounded diamond shape -->
+  <rect x="-97" y="-97" width="194" height="194" rx="26" ry="26"
+        transform="rotate(45)" class="diamond"/>
+
+  <!-- background dependency structure -->
+  <line x1="-11" y1="-80" x2="-11" y2="-29" transform="rotate(42 -11 -80)"
+        class="back" marker-end="url(#barrow)"/>
+  <line x1="-80" y1="0"   x2="-80" y2="57"  transform="rotate(-45 -80 0)"
+        class="back" marker-end="url(#barrow)"/>
+  <line x1="-11" y1="-80" x2="-11" y2="28" class="back"
+        marker-end="url(#barrow)"/>
+
+  <circle cx="-11" cy="-80" r="23" class="back"/>
+  <circle cx="0"   cy="80"  r="23" class="back"/>
+  <circle cx="-80" cy="0"   r="23" class="back"/>
+
+  <!-- foreground dependency structure -->
+  <line x1="18" y1="-80" x2="18" y2="0" transform="rotate(42 17 -80)"
+        class="shadow"/>
+  <line x1="13" y1="-80" x2="13" y2="-5" transform="rotate(42 11 -80)"
+        class="front" marker-end="url(#farrow)"/>
+
+  <line x1="11" y1="-80" x2="11" y2="-29" transform="rotate(-42 11 -80)"
+        class="front" marker-end="url(#farrow)"/>
+  <line x1="80" y1="0"   x2="80" y2="57"  transform="rotate(45 80 0)"
+        class="front" marker-end="url(#farrow)"/>
+  <line x1="11" y1="-80" x2="11" y2="28"  class="front"
+        marker-end="url(#farrow)"/>
+
+  <circle cx="11" cy="-80" r="23" class="front"/>
+  <circle cx="80" cy="0"   r="23" class="front"/>
+</svg>
diff --git a/share/spack/logo/spack-logo.svg b/share/spack/logo/spack-logo.svg
new file mode 100644
index 0000000000000000000000000000000000000000..a56eed57a610ec3a7fd554401b323ca7bb6a3785
--- /dev/null
+++ b/share/spack/logo/spack-logo.svg
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg width="256" height="256"
+     viewBox="-128 -128 256 256"
+     version="1.1"
+     xmlns="http://www.w3.org/2000/svg"
+     xmlns:xlink="http://www.w3.org/1999/xlink"
+     xmlns:ev="http://www.w3.org/2001/xml-events">
+
+  <style>
+    .diamond     { fill:#0f3a80; }
+    circle.back  { fill:#ffa600; stroke:#0f3a80; stroke-width:6; }
+    circle.front { fill:#ffffff; stroke:#0f3a80; stroke-width:6; }
+    line.back    { stroke:#ffa600; stroke-width:7; }
+    line.front   { stroke:#ffffff; stroke-width:7; }
+    line.shadow  { stroke:#0f3a80; stroke-width:7; }
+  </style>
+
+  <defs>
+    <!-- need two arrows b/c we can't sync color with the marked element -->
+    <marker id="barrow" markerWidth="4" markerHeight="3" refX=".05" refY="1.5"
+            orient="auto" markerUnits="strokeWidth">
+      <path d="M0,0 L0,3 L4,1.5 z" fill="#ffa600"/>
+    </marker>
+    <marker id="farrow" markerWidth="4" markerHeight="3" refX=".05" refY="1.5"
+            orient="auto" markerUnits="strokeWidth">
+      <path d="M0,0 L0,3 L4,1.5 z" fill="#ffffff"/>
+    </marker>
+  </defs>
+
+  <!-- rounded diamond shape -->
+  <rect x="-97" y="-97" width="194" height="194" rx="26" ry="26"
+        transform="rotate(45)" class="diamond"/>
+
+  <!-- background dependency structure -->
+  <line x1="-11" y1="-80" x2="-11" y2="-29" transform="rotate(42 -11 -80)"
+        class="back" marker-end="url(#barrow)"/>
+  <line x1="-80" y1="0"   x2="-80" y2="57"  transform="rotate(-45 -80 0)"
+        class="back" marker-end="url(#barrow)"/>
+  <line x1="-11" y1="-80" x2="-11" y2="28" class="back"
+        marker-end="url(#barrow)"/>
+
+  <circle cx="-11" cy="-80" r="23" class="back"/>
+  <circle cx="0"   cy="80"  r="23" class="back"/>
+  <circle cx="-80" cy="0"   r="23" class="back"/>
+
+  <!-- foreground dependency structure -->
+  <line x1="18" y1="-80" x2="18" y2="0" transform="rotate(42 17 -80)"
+        class="shadow"/>
+  <line x1="13" y1="-80" x2="13" y2="-5" transform="rotate(42 11 -80)"
+        class="front" marker-end="url(#farrow)"/>
+
+  <line x1="11" y1="-80" x2="11" y2="-29" transform="rotate(-42 11 -80)"
+        class="front" marker-end="url(#farrow)"/>
+  <line x1="80" y1="0"   x2="80" y2="57"  transform="rotate(45 80 0)"
+        class="front" marker-end="url(#farrow)"/>
+  <line x1="11" y1="-80" x2="11" y2="28"  class="front"
+        marker-end="url(#farrow)"/>
+
+  <circle cx="11" cy="-80" r="23" class="front"/>
+  <circle cx="80" cy="0"   r="23" class="front"/>
+</svg>