Bug 1153615 - Use SVG graphics for Lightning toolbars. r=philipp
authorRichard Marti <richard.marti@gmail.com>
Mon, 08 Jun 2015 18:10:32 +0200
changeset 18098 89e2a4ab8cd9
parent 18097 264334727af9
child 18099 7769a3035556
push id11122
push usermozilla@kewis.ch
push date2015-07-16 12:16 +0000
treeherdercomm-central@572e71f97c22 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersphilipp
bugs1153615
Bug 1153615 - Use SVG graphics for Lightning toolbars. r=philipp
calendar/base/jar.mn
calendar/base/themes/common/calendar-toolbar.svg
calendar/base/themes/common/today-pane.css
calendar/base/themes/linux/calendar-task-view.css
calendar/base/themes/linux/dialogs/calendar-event-dialog.css
calendar/base/themes/linux/today-pane.css
calendar/base/themes/osx/calendar-task-view.css
calendar/base/themes/osx/dialogs/calendar-event-dialog.css
calendar/base/themes/osx/today-pane.css
calendar/base/themes/windows/calendar-task-view.css
calendar/base/themes/windows/dialogs/calendar-event-dialog.css
calendar/base/themes/windows/today-pane.css
calendar/base/themes/windows/win-aero/calendar-event-dialog.css
calendar/base/themes/windows/win-aero/calendar.css
calendar/base/themes/windows/win-aero/lightning-toolbar.css
calendar/base/themes/windows/win-aero/lightning.css
calendar/base/themes/windows/win-classic/calendar-event-dialog.css
calendar/base/themes/windows/win-classic/lightning-toolbar.css
calendar/base/themes/windows/win-classic/lightning.css
calendar/lightning/themes/common/lightning.css
calendar/lightning/themes/linux/lightning-toolbar.css
calendar/lightning/themes/linux/lightning.css
calendar/lightning/themes/osx/lightning-toolbar.css
calendar/lightning/themes/osx/lightning.css
calendar/lightning/themes/windows/lightning-toolbar.css
calendar/lightning/themes/windows/lightning.css
--- a/calendar/base/jar.mn
+++ b/calendar/base/jar.mn
@@ -133,16 +133,17 @@ calendar.jar:
     ../skin/common/widgets/nav-today-hov.svg          (themes/common/widgets/images/nav-today-hov.svg)
     ../skin/common/widgets/view-navigation.svg        (themes/common/widgets/images/view-navigation.svg)
     ../skin/common/widgets/view-navigation-hov.svg    (themes/common/widgets/images/view-navigation-hov.svg)
     ../skin/common/widgets/drag-center.svg            (themes/common/widgets/images/drag-center.svg)
     ../skin/common/calendar-daypicker.css             (themes/common/calendar-daypicker.css)
     ../skin/common/calendar-management.css            (themes/common/calendar-management.css)
     ../skin/common/calendar-task-tree.css             (themes/common/calendar-task-tree.css)
     ../skin/common/calendar-task-view.css             (themes/common/calendar-task-view.css)
+    ../skin/common/calendar-toolbar.svg               (themes/common/calendar-toolbar.svg)
     ../skin/common/calendar-unifinder.css             (themes/common/calendar-unifinder.css)
     ../skin/common/calendar-views.css                 (themes/common/calendar-views.css)
     ../skin/common/today-pane.css                     (themes/common/today-pane.css)
     ../skin/common/dialogs/calendar-alarm-dialog.css  (themes/common/dialogs/calendar-alarm-dialog.css)
     ../skin/common/dialogs/calendar-event-dialog.css  (themes/common/dialogs/calendar-event-dialog.css)
     ../skin/common/widgets/calendar-widgets.css       (themes/common/widgets/calendar-widgets.css)
     ../skin/common/widgets/minimonth.css              (themes/common/widgets/minimonth.css)
 
@@ -170,22 +171,17 @@ calendar.jar:
     ../skin/linux/calendar/calendar-task-view.css                         (themes/linux/calendar-task-view.css)
     ../skin/linux/calendar/calendar-unifinder.css                         (themes/linux/calendar-unifinder.css)
     ../skin/linux/calendar/calendar-views.css                             (themes/linux/calendar-views.css)
     ../skin/linux/calendar/checkbox-images.png                            (themes/linux/images/checkbox-images.png)
     ../skin/linux/calendar/ok-cancel.png                                  (themes/linux/images/ok-cancel.png)
     ../skin/linux/calendar/today-pane.css                                 (themes/linux/today-pane.css)
     ../skin/linux/calendar/widgets/calendar-widgets.css                   (themes/linux/widgets/calendar-widgets.css)
     ../skin/linux/calendar/widgets/minimonth.css                          (themes/linux/widgets/minimonth.css)
-    ../skin/linux/calendar/calendar-event-dialog-toolbar.png              (themes/linux/dialogs/images/calendar-event-dialog-toolbar.png)
-    ../skin/linux/calendar/calendar-event-dialog-toolbar-small.png        (themes/linux/dialogs/images/calendar-event-dialog-toolbar-small.png)
     ../skin/linux/calendar/calendar-occurrence-prompt.png                 (themes/linux/images/calendar-occurrence-prompt.png)
-    ../skin/linux/calendar/tasks-actions.png                              (themes/linux/images/tasks-actions.png)
-    ../skin/linux/calendar/toolbar-large.png                              (themes/linux/images/toolbar-large.png)
-    ../skin/linux/calendar/toolbar-small.png                              (themes/linux/images/toolbar-small.png)
 
 # OS X theme files
     ../skin/osx/calendar/calendar-alarms.css                            (themes/common/calendar-alarms.css)
     ../skin/osx/calendar/calendar-attendees.css                         (themes/common/calendar-attendees.css)
     ../skin/osx/calendar/calendar-creation-wizard.css                   (themes/common/calendar-creation-wizard.css)
     ../skin/osx/calendar/calendar-occurrence-prompt.css                 (themes/common/calendar-occurrence-prompt.css)
     ../skin/osx/calendar/calendar-timezone-highlighter.css              (themes/common/dialogs/calendar-timezone-highlighter.css)
     ../skin/osx/calendar/calendar-properties-dialog.css                 (themes/common/dialogs/calendar-properties-dialog.css)
@@ -206,25 +202,19 @@ calendar.jar:
     ../skin/osx/calendar/calendar-task-view.css                         (themes/osx/calendar-task-view.css)
     ../skin/osx/calendar/calendar-unifinder.css                         (themes/osx/calendar-unifinder.css)
     ../skin/osx/calendar/calendar-views.css                             (themes/osx/calendar-views.css)
     ../skin/osx/calendar/checkbox-images.png                            (themes/osx/images/checkbox-images.png)
     ../skin/osx/calendar/ok-cancel.png                                  (themes/osx/images/ok-cancel.png)
     ../skin/osx/calendar/today-pane.css                                 (themes/osx/today-pane.css)
     ../skin/osx/calendar/widgets/calendar-widgets.css                   (themes/osx/widgets/calendar-widgets.css)
     ../skin/osx/calendar/widgets/minimonth.css                          (themes/osx/widgets/minimonth.css)
-    ../skin/osx/calendar/calendar-event-dialog-toolbar.png              (themes/osx/dialogs/images/calendar-event-dialog-toolbar.png)
-    ../skin/osx/calendar/calendar-event-dialog-toolbar-small.png        (themes/osx/dialogs/images/calendar-event-dialog-toolbar-small.png)
     ../skin/osx/calendar/calendar-occurrence-prompt.png                 (themes/osx/images/calendar-occurrence-prompt.png)
-    ../skin/osx/calendar/tasks-actions.png                              (themes/osx/images/tasks-actions.png)
-    ../skin/osx/calendar/toolbar-large.png                              (themes/osx/images/toolbar-large.png)
-    ../skin/osx/calendar/toolbar-small.png                              (themes/osx/images/toolbar-small.png)
     ../skin/osx/calendar/checkbox-images-graphite.png                   (themes/osx/images/checkbox-images-graphite.png)
     ../skin/osx/calendar/sidebar-item.png                               (themes/osx/images/sidebar-item.png)
-    ../skin/osx/calendar/toolbar.png                                    (themes/osx/images/toolbar.png)
 
 # Windows theme files
 % style chrome://global/content/customizeToolbar.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT
 % style chrome://calendar/content/calendar-event-dialog.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT
 % style chrome://calendar/content/calendar-event-dialog-attendees.xul chrome://calendar-windows/skin/calendar-event-dialog.css os=WINNT
 % style chrome://calendar/content/calendar-occurrence-prompt.xul chrome://calendar-windows/skin/calendar.css os=WINNT osversion>=6
     ../skin/windows/calendar/calendar-alarms.css                            (themes/common/calendar-alarms.css)
     ../skin/windows/calendar/calendar-attendees.css                         (themes/common/calendar-attendees.css)
@@ -263,17 +253,9 @@ calendar.jar:
     ../skin/windows/calendar/win-classic/calendar.css                       (themes/windows/win-classic/calendar.css)
     ../skin/windows/calendar/win-classic/calendar-event-dialog.css          (themes/windows/win-classic/calendar-event-dialog.css)
     ../skin/windows/calendar/win-classic/lightning.css                      (themes/windows/win-classic/lightning.css)
     ../skin/windows/calendar/win-classic/lightning-toolbar.css              (themes/windows/win-classic/lightning-toolbar.css)
     ../skin/windows/calendar/win-aero/calendar.css                          (themes/windows/win-aero/calendar.css)
     ../skin/windows/calendar/win-aero/calendar-event-dialog.css             (themes/windows/win-aero/calendar-event-dialog.css)
     ../skin/windows/calendar/win-aero/lightning.css                         (themes/windows/win-aero/lightning.css)
     ../skin/windows/calendar/win-aero/lightning-toolbar.css                 (themes/windows/win-aero/lightning-toolbar.css)
-    ../skin/windows/calendar/calendar-event-dialog-toolbar-aero.png         (themes/windows/dialogs/images/calendar-event-dialog-toolbar-aero.png)
-    ../skin/windows/calendar/calendar-event-dialog-toolbar-inverted.png     (themes/windows/dialogs/images/calendar-event-dialog-toolbar-inverted.png)
     ../skin/windows/calendar/calendar-occurrence-prompt-aero.png            (themes/windows/images/calendar-occurrence-prompt-aero.png)
-    ../skin/windows/calendar/tasks-actions-aero.png                         (themes/windows/images/tasks-actions-aero.png)
-    ../skin/windows/calendar/tasks-actions-inverted.png                     (themes/windows/images/tasks-actions-inverted.png)
-    ../skin/windows/calendar/toolbar-aero.png                               (themes/windows/images/toolbar-aero.png)
-    ../skin/windows/calendar/toolbar-aero-inverted.png                      (themes/windows/images/toolbar-aero-inverted.png)
-    ../skin/windows/calendar/toolbar-large-aero.png                         (themes/windows/images/toolbar-large-aero.png)
-    ../skin/windows/calendar/toolbar-small-aero.png                         (themes/windows/images/toolbar-small-aero.png)
new file mode 100644
--- /dev/null
+++ b/calendar/base/themes/common/calendar-toolbar.svg
@@ -0,0 +1,147 @@
+<svg xmlns="http://www.w3.org/2000/svg"
+     xmlns:xlink="http://www.w3.org/1999/xlink"
+     viewBox="0 0 18 18">
+  <style>
+    path {
+      display: none;
+    }
+    path:target {
+      display: block;
+      stroke-width: 1;
+    }
+    .normal {
+      fill: #505050;
+      fill-opacity: 0.8;
+      stroke: #404040;
+    }
+    @media (-moz-windows-default-theme) and (-moz-os-version: windows-win8) {
+      .normal {
+        fill: #797c80;
+      fill-opacity: 1;
+        stroke: #797c80;
+      }
+    }
+    @media (-moz-windows-default-theme) and (-moz-os-version: windows-win10) {
+      .normal {
+        fill: #4c4c4c;
+      fill-opacity: 1;
+        stroke: #4c4c4c;
+      }
+    }
+    @media (-moz-windows-default-theme) and (-moz-os-version: windows-vista),
+       (-moz-windows-default-theme) and (-moz-os-version: windows-win7) {
+      .normal {
+        fill: url(#win1);
+      fill-opacity: 1;
+        stroke: url(#win2);
+      }
+    }
+    @media (-moz-mac-lion-theme) {
+      .normal {
+        fill: url(#osx1);
+      fill-opacity: 1;
+        stroke: url(#osx2);
+      }
+    }
+    @media (-moz-mac-yosemite-theme) {
+      .normal {
+        fill: #4d4d4d;
+      fill-opacity: 1;
+        stroke: #4d4d4d;
+      }
+    }
+    .inverted {
+      fill: #fff;
+      fill-opacity: 1;
+      stroke: #111922;
+    }
+  </style>
+  <defs>
+    <linearGradient
+       id="win1"
+       x1="8"
+       y1="1"
+       x2="8"
+       y2="15"
+       gradientUnits="userSpaceOnUse">
+       <stop stop-color="#3f4f5a" offset="0"/>
+       <stop stop-color="#7e8c97" offset="1"/>
+    </linearGradient>
+    <linearGradient
+       id="win2"
+       x1="8"
+       y1="1"
+       x2="8"
+       y2="15"
+       gradientUnits="userSpaceOnUse">
+      <stop stop-color="#0c1b25" offset="0"/>
+      <stop stop-color="#4f585f" stop-opacity="0.9" offset="1"/>
+    </linearGradient>
+    <linearGradient
+       id="osx1"
+       x1="8"
+       y1="1"
+       x2="8"
+       y2="15"
+       gradientUnits="userSpaceOnUse">
+       <stop stop-color="#4f4f4f" stop-opacity="0.76" offset="0"/>
+       <stop stop-color="#717171" stop-opacity="0.6" offset="1"/>
+    </linearGradient>
+    <linearGradient
+       id="osx2"
+       x1="8"
+       y1="1"
+       x2="8"
+       y2="15"
+       gradientUnits="userSpaceOnUse">
+      <stop stop-color="#252525" stop-opacity="0.88" offset="0"/>
+      <stop stop-color="#505050" stop-opacity="0.68" offset="1"/>
+    </linearGradient>
+  </defs>
+  <path id="calendar-tab" class="normal" d="m 1.5,2.5 0,14 15,0 0,-14 -2,0 0,2 -2,0 0,-3.5 0,3.5 -2,0 0,-2 -3,0 0,2 -2,0 0,-3.5 0,3.5 -2,0 0,-2 z m 1,3 13,0 0,10 -13,0 z m 4,2 6,0 -3,7 -2,0 2,-5 -3,0 z"/>
+  <path id="calendar-tab-inverted" class="inverted" d="m 1.5,3.5 0,13 15,0 0,-13 -3,0 0,1 -3,0 0,-1 -3,0 0,1 -3,0 0,-1 z m 3,3 9,0 0,7 -9,0 z m 0,-5 0,3 3,0 0,-3 z m 6,0 0,3 3,0 0,-3 z m -5,5 7,0 -3,7 -3,0 1.7,-4 -2.7,0 z"/>
+  <path id="task-tab" class="normal" d="m 4.5,2.5 -2,0 0,14 13,0 0,-14 -2,0 0,3 1,0 0,10 -11,0 0,-10 1,0 z m 2,-1 5,0 0,4 -5,0 z M 5.1,11.8 6.7,10.2 8.5,11.7 12,8 l 1.5,1.5 -5,5 z"/>
+  <path id="task-tab-inverted" class="inverted" d="m 5.5,2.5 -3,0 0,14 13,0 0,-14 -3,0 0,3 0,0 0,8 -7,0 0,-8 0,0 z m 0,-1 7,0 0,4 -7,0 z m 0.1,9.3 1.5,-2.1 1.3,1.2 2.4,-3 1.7,1.6 -4,4.8 z"/>
+  <path id="synchronize" class="normal" d="m 11.5,1.9 0,3.7 c 3.7,1.8 1.7,5.5 -1,6.8 l -2,-1.9 0,6 5.7,0 -1.6,-1.6 C 18.5,12.5 18.2,2.7 11.5,1.9 Z m -3.8,3.8 1.8,1.8 0,-6 -5.8,0 L 5.3,3 C -0.9,6.3 0.4,15 6.5,16.1 l 0,-3.6 C 3,10.7 4.5,7 7.7,5.7 Z"/>
+  <path id="synchronize-inverted" class="inverted" d="m 11.5,1.9 0,3.7 c 3.6,1.2 2.1,5.4 -0.7,6.5 L 8.5,9.5 l 0,7 6.7,0 -1.9,-2 C 18.6,11.6 18,2.8 11.5,1.9 Z M 7,6 9.5,8.5 l 0,-7 -6.8,0 2.2,2.1 C -0.9,6.8 0.6,14.8 6.5,16.1 l 0,-3.6 C 3.5,11 4,7.3 7,6 Z"/>
+  <path id="newevent" class="normal" d="m 1.5,2.5 0,14 15,0 0,-14 -2,0 0,2 -2,0 0,-3.5 0,3.5 -2,0 0,-2 -3,0 0,2 -2,0 0,-3.5 0,3.5 -2,0 0,-2 z m 1,3 13,0 0,10 -13,0 z m 5,2 3,0 0,2 2,0 0,3 -2,0 0,2 -3,0 0,-2 -2,0 0,-3 2,0 z"/>
+  <path id="newevent-inverted" class="inverted" d="m 1.5,3.5 0,13 15,0 0,-13 -3,0 0,1 -3,0 0,-1 -3,0 0,1 -3,0 0,-1 z m 3,3 9,0 0,7 -9,0 z m 0,-5 0,3 3,0 0,-3 z m 6,0 0,3 3,0 0,-3 z m 0,5 0,2 2,0 0,3 -2,0 0,2 -3,0 0,-2 -2,0 0,-3 2,0 0,-2 z"/>
+  <path id="newtask" class="normal" d="m 4.5,1.5 -3,0 0,16 15,0 0,-16 -3,0 0,3 2,0 0,12 -13,0 0,-12 2,0 z m 2,-1 5,0 0,4 -5,0 z m 1,7 3,0 0,2 2,0 0,3 -2,0 0,2 -3,0 0,-2 -2,0 0,-3 2,0 z"/>
+  <path id="newtask-inverted" class="inverted" d="m 5.5,2.5 -3,0 0,14 13,0 0,-14 -3,0 0,3 0,0 0,8 -7,0 0,-8 0,0 z m 0,-1 7,0 0,4 -7,0 z m 2,5 3,0 0,2 2,0 0,3 -2,0 0,2 -3,0 0,-2 -2,0 0,-3 2,0 z"/>
+  <path id="edit" class="normal" d="M 3.6,11.5 2.2,15.7 6.5,14.3 15.8,5 13,2.2 Z m 0,0 L 4.1,11 7,13.8 6.5,14.3 2.2,15.7 Z"/>
+  <path id="edit-inverted" class="inverted" d="M 3.6,11.5 2.2,15.7 6.5,14.3 15.8,4.9 13,2.1 Z m 1,-1 0.4,-0.4 2.8,2.8 -0.4,0.4 z"/>
+  <path id="delete" class="normal" d="m 9,1.5 c 4.2,0 7.5,3.3 7.5,7.5 0,4.1 -3.3,7.5 -7.5,7.5 C 4.9,16.5 1.5,13.2 1.5,9 1.5,4.8 4.9,1.5 9,1.5 Z m -3,3 7.5,7.5 C 16.3,7.1 11,1.7 6,4.5 Z M 4.5,6 c -3.1,5.4 2.9,10 7.5,7.5 z"/>
+  <path id="delete-inverted" class="inverted" d="m 9,1.5 c 4.2,0 7.5,3.3 7.5,7.5 0,4.1 -3.3,7.5 -7.5,7.5 C 4.9,16.5 1.5,13.2 1.5,9 1.5,4.8 4.9,1.5 9,1.5 Z M 7,5 13,11 C 14.5,6.6 11.2,3.6 7,5 Z M 5,7 c -1.6,4.3 1.5,7.7 6,6 z"/>
+  <path id="today" class="normal" d="m 1.5,2.5 0,14 15,0 0,-14 -2,0 0,2 -2,0 0,-3.5 0,3.5 -2,0 0,-2 -3,0 0,2 -2,0 0,-3.5 0,3.5 -2,0 0,-2 z m 1,3 13,0 0,10 -13,0 z m 5,2 3,0 0,4 2,0 -3.5,3 -3.5,-3 2,0 z"/>
+  <path id="today-inverted" class="inverted" d="m 1.5,3.5 0,13 15,0 0,-13 -3,0 0,1 -3,0 0,-1 -3,0 0,1 -3,0 0,-1 z m 3,3 9,0 0,7 -9,0 z m 0,-5 0,3 3,0 0,-3 z m 6,0 0,3 3,0 0,-3 z m -3,5 3,0 0,3 3,0 -4.5,4 -4.5,-4 3,0 z"/>
+  <path id="print" class="normal" d="m 4.5,2.5 0,4 -1.5,0 c -0.8,0 -1.5,1.1 -1.5,2 l 0,3 c 0,1 1.4,2 2.5,2 l 1.5,0 0,-1 7,0 0,1 1.5,0 c 1,0 2.5,-1 2.5,-2 l 0,-3 c 0,-0.8 -0.6,-2 -1.5,-2 l -1.5,0 0,-4 z m 0,0 9,0 0,6 -9,0 z m 4,6 2,0 0,2 -2,0 z m -4,0 3,0 0,2 -3,0 z m 0,5.4 0,1.6 m -2.5,0 14,0 m -2.5,0 0,-1.6"/>
+  <path id="print-inverted" class="inverted" d="m 3.5,2.5 0,5 -0.5,0 c -0.8,0 -1.5,1.1 -1.5,2 l 0,2 c 0,0.8 0.4,2 2.5,2 l -1.5,0 0,2 13,0 0,-2 -1.5,0 c 2,0 2.5,-1.1 2.5,-2 l 0,-2 c 0,-0.8 -0.6,-2 -1.5,-2 l -0.5,0 0,-5 z m 2,2 7,0 0,3 -7,0 z m -2,5 3,0 0,1 -3,0 z m 5,0 2,0 0,1 -2,0 z m -3,3 7,0 0,1 -7,0 z"/>
+  <path id="find" class="normal" d="M 8,2.5 C 5,2.5 2.5,5 2.5,8 c 0,3 2.5,5.5 5.5,5.5 3,0 5.5,-2.4 5.5,-5.5 C 13.5,5 11,2.5 8,2.5 Z m 0,2 c 2,0 3.5,1.5 3.5,3.5 0,2 -1.5,3.5 -3.5,3.5 C 6,11.5 4.5,10 4.5,8 4.5,6 6,4.5 8,4.5 Z m 4.5,7 -1,1 3,3 1,-1 z"/>
+  <path id="find-inverted" class="inverted" d="M 11,12.7 14.3,16 16,14 12.7,10.9 C 13.1,10 13.5,9 13.5,8 13.5,5 11,2.5 8,2.5 5,2.5 2.5,5 2.5,8 c 0,3 2.5,5.5 5.5,5.5 1,0 2,0 3,-0.8 z M 8,5 c 1.6,0 3,1.3 3,3 0,1.6 -1.3,3 -3,3 C 6.3,11 5,9.6 5,8 5,6.3 6.3,5 8,5 Z"/>
+  <path id="category" class="normal" d="M 4 2.5 C 3.3 2.5 2.5 3.3 2.5 4 L 2.5 8 L 10 15.5 L 15.5 10 L 8 2.5 L 4 2.5 z M 6 4 A 2 2 0 0 1 8 6 A 2 2 0 0 1 6 8 A 2 2 0 0 1 4 6 A 2 2 0 0 1 6 4 z"/>
+  <path id="category-inverted" class="inverted" d="M 4 2.5 C 3.3 2.5 2.5 3.3 2.5 4 L 2.5 8 L 10 15.5 L 15.5 10 L 8 2.5 L 4 2.5 z M 6 4 A 2 2 0 0 1 8 6 A 2 2 0 0 1 6 8 A 2 2 0 0 1 4 6 A 2 2 0 0 1 6 4 z"/>
+  <path id="complete" class="normal" d="M 1.5,10.5 3,8.5 6.7,11.7 C 9,7.8 12.6,5.6 16.5,3.5 l 0,1 c -4,3.1 -7,6.7 -9,11.2 z"/>
+  <path id="complete-inverted" class="inverted" d="M 1.5,10.5 3,7.5 6.7,10.7 C 9,6.8 12.6,4.6 16.5,2.5 l 0,2 c -4,3.1 -7,6.7 -9,11.2 z"/>
+  <path id="priority" class="normal" d="m 7.5,2.5 3,0 0,8 -3,0 z m 0,10 3,0 0,3 -3,0 z"/>
+  <path id="priority-inverted" class="inverted" d="m 7.5,2.5 3,0 0,8 -3,0 z m 0,10 3,0 0,3 -3,0 z"/>
+  <path id="pane" class="normal" d="m 1.5,1.5 0,16 15,0 0,-16 -2,0 0,2 -2,0 0,-3.5 0,3.5 -2,0 0,-2 -3,0 0,2 -2,0 0,-3.5 0,3.5 -2,0 0,-2 z m 1,3 13,0 0,12 -13,0 z"/>
+  <path id="pane-inverted" class="inverted" d="m 0.5,2.5 0,15 17,0 0,-15 -4,0 0,2 -3,0 0,-2 -3,0 0,2 -3,0 0,-2 z m 3,4 11,0 0,8 -11,0 z m 1,-6 0,4 3,0 0,-4 z m 6,0 0,4 3,0 0,-4 z"/>
+  <path id="save" class="normal" d="m 2.5,2.5 0,13 2,0 0,-6 8,0 0,6 3,0 0,-13 z m 2,0 9,0 0,5 -9,0 z m 2,9 4,0 0,4 -4,0 z"/>
+  <path id="save-inverted" class="inverted" d="m 2.5,2.5 0,13 2.1,0 0,-5 6.9,0 0,5 4,0 0,-13 z m 2,0 9,0 0,5 -9,0 z m 0.1,8 6.9,0 0,5 -6.9,0 z"/>
+  <path id="address" class="normal" d="m 2.5,15.5 13,0 c 0,-3.4 -2.2,-3 -5,-3 l 0,-1 C 12.5,10.4 12.7,9.4 13,8 13,7.7 13.5,7.4 13.5,7 13.5,6.6 13.1,6.3 13,6 12.8,5.6 12.9,3.7 12,3 10.4,1.8 7.56,1.8 6,3 5,3.7 5.1,5.6 5,6 4.8,6.3 4.5,6.6 4.5,7 c 0,0.3 0.4,0.6 0.5,1 0.2,1.5 0.5,2.3 2.5,3.5 l 0,1 c -2.5,0 -5,-0.5 -5,3 z"/>
+  <path id="address-inverted" class="inverted" d="m 2.5,15.5 13,0 c 0,-3.4 -2.2,-3 -5,-3 l 0,-1 C 12.5,10.4 12.7,9.4 13,8 13,7.7 13.5,7.4 13.5,7 13.5,6.6 13.1,6.3 13,6 12.8,5.6 12.9,3.7 12,3 10.4,1.8 7.56,1.8 6,3 5,3.7 5.1,5.6 5,6 4.8,6.3 4.5,6.6 4.5,7 c 0,0.3 0.4,0.6 0.5,1 0.2,1.5 0.5,2.3 2.5,3.5 l 0,1 c -2.5,0 -5,-0.5 -5,3 z"/>
+  <path id="security" class="normal" d="m 9,2.5 c -2.75,0 -5.5,0.75 -5.5,5 l 0,1 -1,0 0,7 13,0 0,-7 -1,0 0,-1 c 0,-4 -3,-5 -5.5,-5 z m 0,3 c 2.5,0 2.5,1 2.5,3 l -5,0 c 0,-2 0,-3 2.5,-3 z"/>
+  <path id="security-inverted" class="inverted" d="m 9,2.5 c -2.75,0 -5.5,0.75 -5.5,5 l 0,1 -1,0 0,7 13,0 0,-7 -1,0 0,-1 c 0,-4 -3,-5 -5.5,-5 z m 0,3 c 2.5,0 2.5,1 2.5,3 l -5,0 c 0,-2 0,-3 2.5,-3 z"/>
+  <path id="attach" class="normal" d="m 13.5,2.5 0,10.5 -4,3.5 -4,-3.5 0,-11.5 6,0 0,10 -2,2 -2,-2 0,-8 2,0 0,6.5" style="fill:none"/>
+  <path id="attach-inverted" class="inverted" d="m 11.5,3 2,0 0,10 L 9,16.5 4.5,13 l 0,-11.5 7,0 z m 0,0.5 0,8.5 -2.5,2 -2.5,-2 0,-8.5 3,0 0,7.5 L 9,11.4 8.5,11 8.5,4"/>
+  <path id="status" class="normal" d="M 16.5,9 A 7.5,7.5 0 0 1 9,16.5 7.5,7.5 0 0 1 1.5,9 7.5,7.5 0 0 1 9,1.5 7.5,7.5 0 0 1 16.5,9 Z M 12.5,9 A 3.5,3.5 0 0 1 9,12.5 3.5,3.5 0 0 1 5.5,9 3.5,3.5 0 0 1 9,5.5 3.5,3.5 0 0 1 12.5,9 Z" style="fill-opacity:0.5"/>
+  <path id="status-inverted" class="inverted" d="M 16.5,9 A 7.5,7.5 0 0 1 9,16.5 7.5,7.5 0 0 1 1.5,9 7.5,7.5 0 0 1 9,1.5 7.5,7.5 0 0 1 16.5,9 Z M 12.5,9 A 3.5,3.5 0 0 1 9,12.5 3.5,3.5 0 0 1 5.5,9 3.5,3.5 0 0 1 9,5.5 3.5,3.5 0 0 1 12.5,9 Z"/>
+  <path id="freebusy" class="normal" d="M 9,1.5 C 4.8,1.5 1.5,4.8 1.5,9 1.5,13.1 5.2,16.3 9,16.5 13,16.7 16.5,13.2 16.5,9 16.5,4.8 13.1,1.5 9,1.5 Z m 0,0 c 0.7,0 1.5,0 2.5,0.5 l 0,4.5 4,0 0,5 -6,0 0,5 C 4.5,16.3 1.5,12.5 1.5,9 1.5,5.3 4.2,1.6 9,1.5 Z m -0.5,2 1,0 0,5 4,0 0,1 -5,0 z"/>
+  <path id="freebusy-inverted" class="inverted" d="M 9,1.5 C 4.8,1.5 1.5,4.8 1.5,9 1.5,13.1 5.2,16.3 9,16.5 13,16.7 16.5,13.2 16.5,9 16.5,4.8 13.1,1.5 9,1.5 Z m -1.5,3.7 0,-1.7 3,0 0,4 4,0 0,3 -5,0 0,3 C 6.2,13.4 4.4,11.5 4.5,9 4.5,6.4 6,5.2 7.5,5.2 Z m 0,-1.7 3,0 0,4 4,0 0,3 -7,0 z"/>
+  <path id="timezones" class="normal" d="M 9,1.5 C 4.8,1.5 1.5,4.8 1.5,9 1.5,13.1 5.2,16.3 9,16.5 13,16.7 16.5,13.2 16.5,9 16.5,4.8 13.1,1.5 9,1.5 Z M 7,3.8 6.3,4.6 6.3,5.7 7.1,6.8 7.8,8.2 9.4,8.3 10.4,6.1 9.8,3.8 11.3,1.9 c 1.5,0.5 3,1.5 3.8,3 l -3.4,2.5 1.6,-0.1 1.3,2 -0.3,1.8 -0.8,1.4 0.7,1.8 c -0.5,0.7 -1.5,1.3 -2.6,1.7 L 9.7,14 11.2,11.1 9.7,9.9 8.3,9 6.8,10.2 5.9,12.2 6,14 7,16 C 4.7,15.4 3.3,14 2.3,12.2 L 3.5,10.4 3.4,8.9 4.3,8 3.7,7.1 3.7,5.4 2.8,4.7 C 4,3 5.8,1.8 7.8,1.6 Z"/>
+  <path id="timezones-inverted" class="inverted" d="M 9,1.5 C 4.8,1.5 1.5,4.8 1.5,9 1.5,13.1 5.2,16.3 9,16.5 13,16.7 16.5,13.2 16.5,9 16.5,4.8 13.1,1.5 9,1.5 Z m -2.8,3.3 0.8,2.8 L 7.5,9 9.9,8.6 10,5.7 9.8,3.6 c 1.5,0.5 1.8,0.1 2.6,1.6 l -1,2 0.3,2.7 2.6,-0.7 C 14.2,12 12.6,13.4 10.2,14.3 L 11.1,13.3 11,11.2 10.1,8.7 7,9 5.8,13.4 8,14.5 c -2.3,-0.6 -3.5,-2 -4.5,-3.8 C 5.6,9.3 6,8 4.3,5.7 5.6,4.3 6,4 7.7,3.5 Z"/>
+  <path id="decline" class="normal" d="M 2.5,5 5,2.5 l 4,4 4,-4 2.5,2.5 -4,4 4,4 -2.5,2.5 -4,-4 -4,4 -2.5,-2.5 4,-4 z"/>
+  <path id="decline-inverted" class="inverted" d="M 2.5,5 5,2.5 l 4,4 4,-4 2.5,2.5 -4,4 4,4 -2.5,2.5 -4,-4 -4,4 -2.5,-2.5 4,-4 z"/>
+  <path id="tentative" class="normal" d="m 8.2,6.5 -2.7,0 c 0,-1.4 0.5,-4 3.5,-4 2.3,0 4.4,1 4.5,4 0,2.8 -3,2.5 -3,5 l -3,0 C 7.4,8 10.3,8.5 10.2,6.5 10,5.5 9.3,5.5 9,5.5 c 0,0 -0.8,0 -0.8,1 z m -0.7,7 3,0 0,2 -3,0 z"/>
+  <path id="tentative-inverted" class="inverted" d="m 8.2,6.5 -2.7,0 c 0,-1.4 0.5,-4 3.5,-4 2.3,0 4.4,1 4.5,4 0,2.8 -3,2.5 -3,5 l -3,0 C 7.4,8 10.3,8.5 10.2,6.5 10,5.5 9.3,5.5 9,5.5 c 0,0 -0.8,0 -0.8,1 z m -0.7,7 3,0 0,2 -3,0 z"/>
+</svg>
--- a/calendar/base/themes/common/today-pane.css
+++ b/calendar/base/themes/common/today-pane.css
@@ -129,20 +129,16 @@
 #todaypane-new-event-button {
   -moz-user-focus: normal;
 }
 
 #todaypane-new-event-button > .toolbarbutton-text {
  -moz-padding-start: 5px;
 }
 
-#todaypane-new-event-button {
-  list-style-image: url("chrome://calendar/skin/toolbar-small.png");
-}
-
 #agenda-listbox {
   -moz-appearance: none;
   -moz-user-focus: normal;
   margin: 3px 0 0;
   border-top: 1px solid ThreeDShadow;
   background-color: -moz-field;
 }
 
--- a/calendar/base/themes/linux/calendar-task-view.css
+++ b/calendar/base/themes/linux/calendar-task-view.css
@@ -49,35 +49,54 @@
 }
 
 #task-actions-toolbar {
     min-height: 0;
     padding: 0;
 }
 
 #task-actions-category {
-    list-style-image: url(chrome://calendar/skin/tasks-actions.png);
-    -moz-image-region: rect(0px, 16px, 16px, 0px);
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#category);
 }
 
 #task-actions-markcompleted {
-    list-style-image: url(chrome://calendar/skin/tasks-actions.png);
-    -moz-image-region: rect(0px, 32px, 16px, 16px);
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#complete);
 }
 
 #task-actions-priority {
-    list-style-image: url(chrome://calendar/skin/tasks-actions.png);
-    -moz-image-region: rect(0px, 48px, 16px, 32px);
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#priority);
 }
 
 #calendar-delete-task-button {
-    list-style-image: url(chrome://calendar/skin/toolbar-small.png);
-    -moz-image-region: rect(0px, 48px, 16px, 32px);
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#delete);
+}
+
+#task-actions-toolbar[brighttext] > #task-actions-category {
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#category-inverted);
+}
+
+#task-actions-toolbar[brighttext] > #task-actions-markcompleted {
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#complete-inverted);
+}
+
+#task-actions-toolbar[brighttext] > #task-actions-priority {
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#priority-inverted);
+}
+
+
+#task-actions-toolbar[brighttext] > #calendar-delete-task-button {
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#delete-inverted);
 }
 
 #calendar-add-task-button {
-    list-style-image: url(chrome://calendar/skin/toolbar-small.png);
-    -moz-image-region: rect(0px 256px 16px 240px);
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#newtask);
+    -moz-image-region: rect(0 18px 18px 0);
 }
 
-#calendar-add-task-button[disabled="true"] {
-    -moz-image-region: rect(32px 256px 48px 240px);
+#calendar-add-task-button[disabled="true"] > .toolbarbutton-icon {
+  opacity: 0.4;
 }
+
+#calendar-add-task-button > .toolbarbutton-icon {
+  width: 18px;
+  height: 18px;
+  margin: -1px;
+}
--- a/calendar/base/themes/linux/dialogs/calendar-event-dialog.css
+++ b/calendar/base/themes/linux/dialogs/calendar-event-dialog.css
@@ -13,257 +13,81 @@
 #timezone-endtime {
     -moz-margin-start: 16px;
 }
 
 /*--------------------------------------------------------------------
  *   Event dialog toolbar buttons
  *-------------------------------------------------------------------*/
 
-.cal-event-toolbarbutton {
-    list-style-image: url("chrome://calendar/skin/calendar-event-dialog-toolbar.png") !important;
+#button-save {
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#save);
 }
 
-/*--------------------------------------------------------------------
- *   Event dialog toolbar buttons - small
- *-------------------------------------------------------------------*/
-
-toolbar[iconsize="small"] .cal-event-toolbarbutton {
-    list-style-image: url("chrome://calendar/skin/calendar-event-dialog-toolbar-small.png") !important;
-}
-
-/*--------------------------------------------------------------------
- *   invite attendees button
- *-------------------------------------------------------------------*/
-
 #button-attendees {
-    -moz-image-region: rect(0px 48px 24px 24px);
-}
-#button-attendees[disabled="true"],
-#button-attendees[disabled="true"]:hover {
-    -moz-image-region: rect(48px 48px 72px 24px);
-}
-#button-attendees:hover {
-    -moz-image-region: rect(24px 48px 48px 24px);
-}
-
-toolbar[iconsize="small"] #button-attendees {
-    -moz-image-region: rect(0px 32px 16px 16px);
-}
-toolbar[iconsize="small"] #button-attendees[disabled="true"],
-toolbar[iconsize="small"] #button-attendees[disabled="true"]:hover {
-    -moz-image-region: rect(32px 32px 48px 16px);
-}
-toolbar[iconsize="small"] #button-attendees:hover {
-    -moz-image-region: rect(16px 32px 32px 16px);
-}
-
-/*--------------------------------------------------------------------
- *   documents button
- *-------------------------------------------------------------------*/
-
-#button-url {
-    -moz-image-region: rect(0px 96px 24px 72px);
-}
-#button-url[disabled="true"],
-#button-url[disabled="true"]:hover {
-    -moz-image-region: rect(48px 96px 72px 72px);
-}
-#button-url:hover {
-    -moz-image-region: rect(24px 96px 48px 72px);
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#address);
 }
 
-toolbar[iconsize="small"] #button-url {
-    -moz-image-region: rect(0px 64px 16px 48px);
-}
-toolbar[iconsize="small"] #button-url[disabled="true"],
-toolbar[iconsize="small"] #button-url[disabled="true"]:hover {
-    -moz-image-region: rect(32px 64px 48px 48px);
-}
-toolbar[iconsize="small"] #button-url:hover {
-    -moz-image-region: rect(16px 64px 32px 48px);
-}
-
-/*--------------------------------------------------------------------
- *   privacy button
- *-------------------------------------------------------------------*/
-
 #button-privacy {
-    -moz-image-region: rect(0px 120px 24px 96px);
-}
-#button-privacy[disabled="true"],
-#button-privacy[disabled="true"]:hover {
-    -moz-image-region: rect(48px 120px 72px 96px);
-}
-#button-privacy:hover {
-    -moz-image-region: rect(24px 120px 48px 96px);
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#security);
 }
 
-toolbar[iconsize="small"] #button-privacy {
-    -moz-image-region: rect(0px 80px 16px 64px);
-}
-toolbar[iconsize="small"] #button-privacy[disabled="true"],
-toolbar[iconsize="small"] #button-privacy[disabled="true"]:hover {
-    -moz-image-region: rect(32px 80px 48px 64px);
-}
-toolbar[iconsize="small"] #button-privacy:hover {
-    -moz-image-region: rect(16px 80px 32px 64px);
-}
-
-/*--------------------------------------------------------------------
- *   save button
- *-------------------------------------------------------------------*/
-
-#button-save {
-    -moz-image-region: rect(0px 144px 24px 120px);
+#button-url {
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#attach);
 }
-#button-save[disabled="true"],
-#button-save[disabled="true"]:hover {
-    -moz-image-region: rect(48px 144px 72px 120px);
-}
-#button-save:hover {
-    -moz-image-region: rect(24px 144px 48px 120px);
-}
-
-toolbar[iconsize="small"] #button-save {
-    -moz-image-region: rect(0px 96px 16px 80px);
-}
-toolbar[iconsize="small"] #button-save[disabled="true"],
-toolbar[iconsize="small"] #button-save[disabled="true"]:hover {
-    -moz-image-region: rect(32px 96px 48px 80px);
-}
-toolbar[iconsize="small"] #button-save:hover {
-    -moz-image-region: rect(16px 96px 32px 80px);
-}
-
-/*--------------------------------------------------------------------
- *   delete button
- *-------------------------------------------------------------------*/
 
 #button-delete.cal-event-toolbarbutton {
-    list-style-image: url("chrome://calendar/skin/calendar-event-dialog-toolbar.png");
-    -moz-image-region: rect(0px 408px 24px 384px);
-}
-#button-delete.cal-event-toolbarbutton[disabled="true"],
-#button-delete.cal-event-toolbarbutton[disabled="true"]:hover {
-    -moz-image-region: rect(48px 408px 72px 384px);
-}
-#button-delete.cal-event-toolbarbutton:hover,
-#button-delete.cal-event-toolbarbutton:hover:active {
-    -moz-image-region: rect(24px 408px 48px 384px);
-}
-
-toolbar[iconsize="small"] #button-delete.cal-event-toolbarbutton {
-    list-style-image: url("chrome://calendar/skin/calendar-event-dialog-toolbar-small.png");
-    -moz-image-region: rect(0px 272px 16px 256px);
-}
-toolbar[iconsize="small"] #button-delete.cal-event-toolbarbutton[disabled="true"],
-toolbar[iconsize="small"] #button-delete.cal-event-toolbarbutton[disabled="true"]:hover {
-    -moz-image-region: rect(32px 272px 48px 256px);
-}
-toolbar[iconsize="small"] #button-delete.cal-event-toolbarbutton:hover,
-toolbar[iconsize="small"] #button-delete.cal-event-toolbarbutton:hover:active {
-    -moz-image-region: rect(16px 272px 32px 256px);
+    /* !important to override the SM #button-delete states */
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#delete) !important;
+  -moz-image-region: auto !important;
 }
 
-/*--------------------------------------------------------------------
- *   priority button
- *-------------------------------------------------------------------*/
-
 #button-priority {
-    -moz-image-region: rect(0px 600px 24px 576px);
-}
-#button-priority[disabled="true"],
-#button-priority[disabled="true"]:hover {
-    -moz-image-region: rect(48px 600px 72px 576px);
-}
-#button-priority:hover {
-    -moz-image-region: rect(24px 600px 48px 576px);
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#priority);
 }
 
-toolbar[iconsize="small"] #button-priority {
-    -moz-image-region: rect(0px 400px 16px 384px);
-}
-toolbar[iconsize="small"] #button-priority[disabled="true"],
-toolbar[iconsize="small"] #button-priority[disabled="true"]:hover {
-    -moz-image-region: rect(32px 400px 48px 384px);
-}
-toolbar[iconsize="small"] #button-priority:hover {
-    -moz-image-region: rect(16px 400px 32px 384px);
-}
-
-/*--------------------------------------------------------------------
- *   status button
- *-------------------------------------------------------------------*/
-
 #button-status {
-    -moz-image-region: rect(0px 624px 24px 600px);
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#status);
 }
-#button-status[disabled="true"],
-#button-status[disabled="true"]:hover {
-    -moz-image-region: rect(48px 624px 72px 600px);
+
+#button-freebusy {
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#freebusy);
 }
-#button-status:hover {
-    -moz-image-region: rect(24px 624px 48px 600px);
+
+#button-timezones {
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#timezones);
 }
 
-toolbar[iconsize="small"] #button-status {
-    -moz-image-region: rect(0px 416px 16px 400px);
-}
-toolbar[iconsize="small"] #button-status[disabled="true"],
-toolbar[iconsize="small"] #button-status[disabled="true"]:hover {
-    -moz-image-region: rect(32px 416px 48px 400px);
-}
-toolbar[iconsize="small"] #button-status:hover {
-    -moz-image-region: rect(16px 416px 32px 400px);
+toolbar[brighttext] #button-save {
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#save-inverted);
 }
 
-/*--------------------------------------------------------------------
- *   Show Time As button
- *-------------------------------------------------------------------*/
-
-#button-freebusy {
-    -moz-image-region: rect(0px 648px 24px 624px);
+toolbar[brighttext] #button-attendees {
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#address-inverted);
 }
-#button-freebusy[disabled="true"],
-#button-freebusy[disabled="true"]:hover {
-    -moz-image-region: rect(48px 648px 72px 624px);
-}
-#button-freebusy:hover {
-    -moz-image-region: rect(24px 648px 48px 624px);
+
+toolbar[brighttext] #button-privacy {
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#security-inverted);
 }
 
-toolbar[iconsize="small"] #button-freebusy {
-    -moz-image-region: rect(0px 432px 16px 416px);
+toolbar[brighttext] #button-url {
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#attach-inverted);
 }
-toolbar[iconsize="small"] #button-freebusy[disabled="true"],
-toolbar[iconsize="small"] #button-freebusy[disabled="true"]:hover {
-    -moz-image-region: rect(32px 432px 48px 416px);
+
+toolbar[brighttext] #button-delete.cal-event-toolbarbutton {
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#delete-inverted) !important;
 }
-toolbar[iconsize="small"] #button-freebusy:hover {
-    -moz-image-region: rect(16px 432px 32px 416px);
+
+toolbar[brighttext] #button-priority {
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#priority-inverted);
 }
 
-/*--------------------------------------------------------------------
- *   timezones button
- *-------------------------------------------------------------------*/
-
-#button-timezones {
-    -moz-image-region: rect(0px 672px 24px 648px);
-}
-#button-timezones[disabled="true"],
-#button-timezones[disabled="true"]:hover {
-    -moz-image-region: rect(48px 672px 72px 648px);
-}
-#button-timezones:hover {
-    -moz-image-region: rect(24px 672px 48px 648px);
+toolbar[brighttext] #button-status {
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#status-inverted);
 }
 
-toolbar[iconsize="small"] #button-timezones {
-    -moz-image-region: rect(0px 448px 16px 432px);
+toolbar[brighttext] #button-freebusy {
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#freebusy-inverted);
 }
-toolbar[iconsize="small"] #button-timezones[disabled="true"],
-toolbar[iconsize="small"] #button-timezones[disabled="true"]:hover {
-    -moz-image-region: rect(32px 448px 48px 432px);
+
+toolbar[brighttext] #button-timezones {
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#timezones-inverted);
 }
-toolbar[iconsize="small"] #button-timezones:hover {
-    -moz-image-region: rect(16px 448px 32px 432px);
-}
--- a/calendar/base/themes/linux/today-pane.css
+++ b/calendar/base/themes/linux/today-pane.css
@@ -55,18 +55,20 @@
   padding: 2px;
 }
 
 .today-closebutton > .toolbarbutton-icon {
   -moz-margin-end: 0px; /* override toolkit's default value */
 }
 
 #todaypane-new-event-button {
-  -moz-image-region: rect(0px 16px 16px 0px);
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#newevent);
+}
+
+#todaypane-new-event-button[disabled="true"] > .toolbarbutton-icon {
+  opacity: 0.4;
 }
-#todaypane-new-event-button[disabled="true"],
-#todaypane-new-event-button[disabled="true"]:hover,
-#todaypane-new-event-button[disabled="true"]:hover:active {
-  -moz-image-region: rect(32px 16px 48px 0px);
+
+#todaypane-new-event-button > .toolbarbutton-icon {
+  width: 18px;
+  height: 18px;
+  margin: -1px;
 }
-#todaypane-new-event-button:hover {
-  -moz-image-region: rect(16px 16px 32px 0px);
-}
--- a/calendar/base/themes/osx/calendar-task-view.css
+++ b/calendar/base/themes/osx/calendar-task-view.css
@@ -34,43 +34,58 @@
 }
 
 #task-actions-toolbar {
     min-width: 50px !important;
     min-height: 14px !important;
 }
 
 #task-actions-category {
-    list-style-image: url(chrome://calendar/skin/tasks-actions.png);
-    -moz-image-region: rect(0px 18px 18px 0px);
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#category);
 }
 
 #task-actions-markcompleted {
-    list-style-image: url(chrome://calendar/skin/tasks-actions.png);
-    -moz-image-region: rect(0px 36px 18px 18px);
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#complete);
 }
 
 #task-actions-priority {
-    list-style-image: url(chrome://calendar/skin/tasks-actions.png);
-    -moz-image-region: rect(0px 54px 18px 36px);
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#priority);
 }
 
 #calendar-delete-task-button {
-    list-style-image: url(chrome://calendar/skin/toolbar.png);
-    -moz-image-region: rect(18px 108px 36px 90px);
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#delete);
+}
+
+#task-actions-toolbar[brighttext] > #task-actions-category {
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#category-inverted);
+}
+
+#task-actions-toolbar[brighttext] > #task-actions-markcompleted {
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#complete-inverted);
+}
+
+#task-actions-toolbar[brighttext] > #task-actions-priority {
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#priority-inverted);
+}
+
+
+#task-actions-toolbar[brighttext] > #calendar-delete-task-button {
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#delete-inverted);
 }
 
 #calendar-add-task-button {
-    list-style-image: url(chrome://calendar/skin/toolbar.png);
-    -moz-image-region: rect(0px 72px 18px 54px);
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#newtask);
+    -moz-image-region: rect(0 18px 18px 0);
 }
 
-#calendar-add-task-button:not([disabled]):active {
-    -moz-image-region: rect(18px 72px 36px 54px);
+#calendar-add-task-button > .toolbarbutton-icon {
+  width: 18px;
+  height: 18px;
+  margin: -1px;
 }
 
 #calendar-add-task-button[disabled="true"] > .toolbarbutton-icon {
-    opacity: .5;
+  opacity: .5;
 }
 
 #calendar-add-task-button > .toolbarbutton-text {
   -moz-margin-start: 0px;
 }
--- a/calendar/base/themes/osx/dialogs/calendar-event-dialog.css
+++ b/calendar/base/themes/osx/dialogs/calendar-event-dialog.css
@@ -13,112 +13,81 @@
 #timezone-endtime {
     -moz-margin-start: 15px;
 }
 
 /*--------------------------------------------------------------------
  *   Event dialog toolbar buttons
  *-------------------------------------------------------------------*/
 
-.cal-event-toolbarbutton {
-    list-style-image: url("chrome://calendar/skin/calendar-event-dialog-toolbar.png");
+#button-save {
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#save);
 }
 
-/*--------------------------------------------------------------------
- *   invite attendees button
- *-------------------------------------------------------------------*/
-
 #button-attendees {
-  -moz-image-region: rect(0 36px 18px 18px);
-}
-#button-attendees:not([disabled]):active {
-  -moz-image-region: rect(18px 36px 36px 18px);
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#address);
 }
 
-/*--------------------------------------------------------------------
- *   documents button
- *-------------------------------------------------------------------*/
+#button-privacy {
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#security);
+}
 
 #button-url {
-  -moz-image-region: rect(0 72px 18px 54px);
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#attach);
 }
-#button-url:not([disabled]):active {
-  -moz-image-region: rect(18px 72px 36px 54px);
+
+#button-delete.cal-event-toolbarbutton {
+    /* !important to override the SM #button-delete states */
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#delete) !important;
+  -moz-image-region: auto !important;
 }
 
-/*--------------------------------------------------------------------
- *   privacy button
- *-------------------------------------------------------------------*/
-
-#button-privacy {
-  -moz-image-region: rect(0 90px 18px 72px);
-}
-#button-privacy:not([disabled]):active {
-  -moz-image-region: rect(18px 90px 36px 72px);
+#button-priority {
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#priority);
 }
 
-/*--------------------------------------------------------------------
- *   save button
- *-------------------------------------------------------------------*/
+#button-status {
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#status);
+}
 
-#button-save {
-  -moz-image-region: rect(0 108px 18px 90px);
-}
-#button-save:not([disabled]):active {
-  -moz-image-region: rect(18px 108px 36px 90px);
+#button-freebusy {
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#freebusy);
 }
 
-/*--------------------------------------------------------------------
- *   delete button
- *-------------------------------------------------------------------*/
+#button-timezones {
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#timezones);
+}
 
-#button-delete.cal-event-toolbarbutton {
-  list-style-image: url("chrome://calendar/skin/calendar-event-dialog-toolbar.png");
-  -moz-image-region: rect(0 306px 18px 288px);
-}
-#button-delete.cal-event-toolbarbutton:not([disabled]):active,
-#button-delete.cal-event-toolbarbutton:not([disabled]):hover:active {
-  -moz-image-region: rect(18px 306px 36px 288px);
+toolbar[brighttext] #button-save {
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#save-inverted);
 }
 
-/*--------------------------------------------------------------------
- *   priority button
- *-------------------------------------------------------------------*/
+toolbar[brighttext] #button-attendees {
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#address-inverted);
+}
 
-#button-priority {
-  -moz-image-region: rect(0 432px 18px 414px);
+toolbar[brighttext] #button-privacy {
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#security-inverted);
 }
-#button-priority:not([disabled]):active {
-  -moz-image-region: rect(18px 432px 36px 414px);
+
+toolbar[brighttext] #button-url {
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#attach-inverted);
 }
 
-/*--------------------------------------------------------------------
- *   status button
- *-------------------------------------------------------------------*/
+toolbar[brighttext] #button-delete.cal-event-toolbarbutton {
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#delete-inverted) !important;
+}
 
-#button-status {
-  -moz-image-region: rect(0 450px 18px 432px);
-}
-#button-status:not([disabled]):active {
-  -moz-image-region: rect(18px 450px 36px 432px);
+toolbar[brighttext] #button-priority {
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#priority-inverted);
 }
 
-/*--------------------------------------------------------------------
- *   Show Time AS button
- *-------------------------------------------------------------------*/
-
-#button-freebusy {
-  -moz-image-region: rect(0 468px 18px 450px);
-}
-#button-freebusy:not([disabled]):active {
-  -moz-image-region: rect(18px 468px 36px 450px);
+toolbar[brighttext] #button-status {
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#status-inverted);
 }
 
-/*--------------------------------------------------------------------
- *   timezones button
- *-------------------------------------------------------------------*/
+toolbar[brighttext] #button-freebusy {
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#freebusy-inverted);
+}
 
-#button-timezones {
-  -moz-image-region: rect(0 486px 18px 468px);
+toolbar[brighttext] #button-timezones {
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#timezones-inverted);
 }
-#button-timezones:not([disabled]):active {
-  -moz-image-region: rect(18px 486px 36px 468px);
-}
--- a/calendar/base/themes/osx/today-pane.css
+++ b/calendar/base/themes/osx/today-pane.css
@@ -28,32 +28,33 @@
 }
 
 #agenda-toolbar {
   background-color: -moz-dialog;
   color: -moz-dialogtext;
 }
 
 #todaypane-new-event-button {
-  list-style-image: url(chrome://calendar/skin/toolbar.png);
-  -moz-image-region: rect(0px 36px 18px 18px);
-}
-
-#todaypane-new-event-button:not([disabled]):active {
-  -moz-image-region: rect(18px 36px 36px 18px);
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#newevent);
 }
 
 #todaypane-new-event-button[disabled="true"] > .toolbarbutton-icon {
   opacity: .5;
 }
 
 #todaypane-new-event-button > .toolbarbutton-text {
   -moz-margin-start: 0px;
 }
 
+#todaypane-new-event-button > .toolbarbutton-icon {
+  width: 18px;
+  height: 18px;
+  margin: -1px;
+}
+
 #agenda-listbox {
   border-top-color: #B8B8B8;
 }
 
 #today-pane-splitter {
   min-height: 9px;
   border-top: 1px solid #B8B8B8;
 }
--- a/calendar/base/themes/windows/calendar-task-view.css
+++ b/calendar/base/themes/windows/calendar-task-view.css
@@ -50,36 +50,82 @@
     -moz-appearance: none;
 }
 
 #task-actions-toolbar {
     min-height: 0;
     padding: 0;
 }
 
-#task-actions-category {
-    list-style-image: url(chrome://calendar/skin/tasks-actions.png);
-    -moz-image-region: rect(0px, 16px, 16px, 0px);
-}
+@media (-moz-os-version: windows-xp) {
+  #task-actions-category {
+      list-style-image: url(chrome://calendar/skin/tasks-actions.png);
+      -moz-image-region: rect(0 16px 16px 0);
+  }
+
+  #task-actions-markcompleted {
+      list-style-image: url(chrome://calendar/skin/tasks-actions.png);
+      -moz-image-region: rect(0 32px 16px 16px);
+  }
 
-#task-actions-markcompleted {
-    list-style-image: url(chrome://calendar/skin/tasks-actions.png);
-    -moz-image-region: rect(0px, 32px, 16px, 16px);
+  #task-actions-priority {
+      list-style-image: url(chrome://calendar/skin/tasks-actions.png);
+      -moz-image-region: rect(0 48px 16px 32px);
+  }
+
+  #calendar-delete-task-button {
+      list-style-image: url(chrome://calendar/skin/toolbar-small.png);
+      -moz-image-region: rect(0 48px 16px 32px);
+  }
+
+  #calendar-add-task-button {
+      list-style-image: url(chrome://calendar/skin/toolbar-small.png);
+      -moz-image-region: rect(0 256px 16px 240px);
+  }
+
+  #calendar-add-task-button[disabled="true"] {
+      -moz-image-region: rect(32px 256px 48px 240px);
+  }
 }
 
-#task-actions-priority {
-    list-style-image: url(chrome://calendar/skin/tasks-actions.png);
-    -moz-image-region: rect(0px, 48px, 16px, 32px);
-}
+@media not all and (-moz-os-version: windows-xp) {
+  #task-actions-category {
+    list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#category);
+  }
+
+  #task-actions-markcompleted {
+    list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#complete);
+  }
+
+  #task-actions-priority {
+    list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#priority);
+  }
+
+  #calendar-delete-task-button {
+    list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#delete);
+  }
+
+  #task-actions-toolbar[brighttext] > #task-actions-category {
+    list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#category-inverted);
+  }
 
-#calendar-delete-task-button {
-    list-style-image: url(chrome://calendar/skin/toolbar-small.png);
-    -moz-image-region: rect(0px, 48px, 16px, 32px);
+  #task-actions-toolbar[brighttext] > #task-actions-markcompleted {
+    list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#complete-inverted);
+  }
+
+  #task-actions-toolbar[brighttext] > #task-actions-priority {
+    list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#priority-inverted);
+  }
+
+
+  #task-actions-toolbar[brighttext] > #calendar-delete-task-button {
+    list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#delete-inverted);
+  }
+
+  #calendar-add-task-button {
+    list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#newtask);
+    -moz-image-region: rect(0 18px 18px 0);
+  }
+
+  #calendar-add-task-button[disabled="true"] > .toolbarbutton-icon {
+    opacity: 0.4;
+  }
 }
-
-#calendar-add-task-button {
-    list-style-image: url(chrome://calendar/skin/toolbar-small.png);
-    -moz-image-region: rect(0px 256px 16px 240px);
-}
-
-#calendar-add-task-button[disabled="true"] {
-    -moz-image-region: rect(32px 256px 48px 240px);
-}
--- a/calendar/base/themes/windows/dialogs/calendar-event-dialog.css
+++ b/calendar/base/themes/windows/dialogs/calendar-event-dialog.css
@@ -8,8 +8,267 @@
 
 #keepduration-button {
     min-width: 21px;
 }
 
 #timezone-endtime {
     -moz-margin-start: 16px;
 }
+
+@media (-moz-os-version: windows-xp) {
+  .cal-event-toolbarbutton {
+    list-style-image: url("chrome://calendar/skin/calendar-event-dialog-toolbar.png");
+  }
+
+  toolbar[iconsize="small"] .cal-event-toolbarbutton {
+    list-style-image: url("chrome://calendar/skin/calendar-event-dialog-toolbar-small.png");
+  }
+
+  #button-attendees {
+    -moz-image-region: rect(0px 48px 24px 24px);
+  }
+  #button-attendees[disabled="true"] {
+    -moz-image-region: rect(48px 48px 72px 24px);
+  }
+
+  toolbar[iconsize="small"] #button-attendees {
+    -moz-image-region: rect(0px 32px 16px 16px);
+  }
+  toolbar[iconsize="small"] #button-attendees[disabled="true"] {
+    -moz-image-region: rect(32px 32px 48px 16px);
+  }
+
+  #button-url {
+    -moz-image-region: rect(0px 96px 24px 72px);
+  }
+  #button-url[disabled="true"] {
+    -moz-image-region: rect(48px 96px 72px 72px);
+  }
+
+  toolbar[iconsize="small"] #button-url {
+    -moz-image-region: rect(0px 64px 16px 48px);
+  }
+  toolbar[iconsize="small"] #button-url[disabled="true"] {
+    -moz-image-region: rect(32px 64px 48px 48px);
+  }
+
+  #button-privacy {
+    -moz-image-region: rect(0px 120px 24px 96px);
+  }
+  #button-privacy[disabled="true"] {
+    -moz-image-region: rect(48px 120px 72px 96px);
+  }
+
+  toolbar[iconsize="small"] #button-privacy {
+    -moz-image-region: rect(0px 80px 16px 64px);
+  }
+  toolbar[iconsize="small"] #button-privacy[disabled="true"] {
+    -moz-image-region: rect(32px 80px 48px 64px);
+  }
+
+  #button-save {
+    -moz-image-region: rect(0px 144px 24px 120px);
+  }
+  #button-save[disabled="true"] {
+    -moz-image-region: rect(48px 144px 72px 120px);
+  }
+
+  toolbar[iconsize="small"] #button-save {
+    -moz-image-region: rect(0px 96px 16px 80px);
+  }
+  toolbar[iconsize="small"] #button-save[disabled="true"] {
+    -moz-image-region: rect(32px 96px 48px 80px);
+  }
+
+  #button-delete.cal-event-toolbarbutton {
+    list-style-image: url("chrome://calendar/skin/calendar-event-dialog-toolbar.png");
+    -moz-image-region: rect(0px 408px 24px 384px);
+  }
+  #button-delete.cal-event-toolbarbutton[disabled="true"],
+  #button-delete.cal-event-toolbarbutton[disabled="true"]:hover {
+    -moz-image-region: rect(48px 408px 72px 384px);
+  }
+  #button-delete.cal-event-toolbarbutton:hover,
+  #button-delete.cal-event-toolbarbutton:hover:active {
+    -moz-image-region: rect(24px 408px 48px 384px);
+  }
+
+  toolbar[iconsize="small"] #button-delete.cal-event-toolbarbutton {
+    list-style-image: url("chrome://calendar/skin/calendar-event-dialog-toolbar-small.png");
+    -moz-image-region: rect(0px 272px 16px 256px);
+  }
+  toolbar[iconsize="small"] #button-delete.cal-event-toolbarbutton[disabled="true"],
+  toolbar[iconsize="small"] #button-delete.cal-event-toolbarbutton[disabled="true"]:hover {
+    -moz-image-region: rect(32px 272px 48px 256px);
+  }
+  toolbar[iconsize="small"] #button-delete.cal-event-toolbarbutton:hover,
+  toolbar[iconsize="small"] #button-delete.cal-event-toolbarbutton:hover:active {
+    -moz-image-region: rect(16px 272px 32px 256px);
+  }
+
+  #button-priority {
+    -moz-image-region: rect(0px 600px 24px 576px);
+  }
+  #button-priority[disabled="true"] {
+    -moz-image-region: rect(48px 600px 72px 576px);
+  }
+
+  toolbar[iconsize="small"] #button-priority {
+    -moz-image-region: rect(0px 400px 16px 384px);
+  }
+  toolbar[iconsize="small"] #button-priority[disabled="true"] {
+    -moz-image-region: rect(32px 400px 48px 384px);
+  }
+
+  #button-status {
+    -moz-image-region: rect(0px 624px 24px 600px);
+  }
+  #button-status[disabled="true"] {
+    -moz-image-region: rect(48px 624px 72px 600px);
+  }
+
+  toolbar[iconsize="small"] #button-status {
+    -moz-image-region: rect(0px 416px 16px 400px);
+  }
+  toolbar[iconsize="small"] #button-status[disabled="true"] {
+    -moz-image-region: rect(32px 416px 48px 400px);
+  }
+
+  #button-freebusy {
+    -moz-image-region: rect(0px 648px 24px 624px);
+  }
+  #button-freebusy[disabled="true"] {
+    -moz-image-region: rect(48px 648px 72px 624px);
+  }
+
+  toolbar[iconsize="small"] #button-freebusy {
+    -moz-image-region: rect(0px 432px 16px 416px);
+  }
+  toolbar[iconsize="small"] #button-freebusy[disabled="true"] {
+    -moz-image-region: rect(32px 432px 48px 416px);
+  }
+
+  #button-timezones {
+    -moz-image-region: rect(0px 672px 24px 648px);
+  }
+  #button-timezones[disabled="true"] {
+    -moz-image-region: rect(48px 672px 72px 648px);
+  }
+
+  toolbar[iconsize="small"] #button-timezones {
+    -moz-image-region: rect(0px 448px 16px 432px);
+  }
+  toolbar[iconsize="small"] #button-timezones[disabled="true"] {
+    -moz-image-region: rect(32px 448px 48px 432px);
+  }
+}
+
+@media not all and (-moz-os-version: windows-xp) {
+  #button-save {
+    list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#save);
+  }
+
+  #button-attendees {
+    list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#address);
+  }
+
+  #button-privacy {
+    list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#security);
+  }
+
+  #button-url {
+    list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#attach);
+  }
+
+  #button-delete.cal-event-toolbarbutton {
+      /* !important to override the SM #button-delete states */
+    list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#delete) !important;
+    -moz-image-region: auto !important;
+  }
+
+  #button-priority {
+    list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#priority);
+  }
+
+  #button-status {
+    list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#status);
+  }
+
+  #button-freebusy {
+    list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#freebusy);
+  }
+
+  #button-timezones {
+    list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#timezones);
+  }
+
+  toolbar[brighttext] #button-save {
+    list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#save-inverted);
+  }
+
+  toolbar[brighttext] #button-attendees {
+    list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#address-inverted);
+  }
+
+  toolbar[brighttext] #button-privacy {
+    list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#security-inverted);
+  }
+
+  toolbar[brighttext] #button-url {
+    list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#attach-inverted);
+  }
+
+  toolbar[brighttext] #button-delete.cal-event-toolbarbutton {
+    list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#delete-inverted) !important;
+  }
+
+  toolbar[brighttext] #button-priority {
+    list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#priority-inverted);
+  }
+
+  toolbar[brighttext] #button-status {
+    list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#status-inverted);
+  }
+
+  toolbar[brighttext] #button-freebusy {
+    list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#freebusy-inverted);
+  }
+
+  toolbar[brighttext] #button-timezones {
+    list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#timezones-inverted);
+  }
+
+  #event-toolbox {
+    -moz-appearance: none;
+    border-top: none;
+    background-color: -moz-Dialog;
+    border-bottom: 1px solid ThreeDShadow;
+  }
+
+  #event-menubar,
+  #event-toolbar {
+    -moz-appearance: none;
+    border-style: none;
+    background-color: transparent
+  }
+
+  #event-toolbar {
+    -moz-margin-start: 0;
+    padding: 1px 0 2px;
+  }
+}
+
+@media (-moz-windows-default-theme) and (-moz-os-version: windows-vista),
+       (-moz-windows-default-theme) and (-moz-os-version: windows-win7) {
+  /* < Win8 */
+  #event-toolbox {
+    background-color: hsl(210, 75%, 92%);
+    background-image: linear-gradient(rgba(255, 255, 255, .5),
+                      rgba(255, 255, 255, 0));
+  }
+}
+
+@media (-moz-windows-glass) {
+  #event-toolbox {
+    border-bottom-color: #AABCCF;
+  }
+}
--- a/calendar/base/themes/windows/today-pane.css
+++ b/calendar/base/themes/windows/today-pane.css
@@ -31,19 +31,33 @@
   border: none !important;
   padding: 2px;
 }
 
 .today-closebutton > .toolbarbutton-icon {
   -moz-margin-end: 0px; /* override toolkit's default value */
 }
 
-#todaypane-new-event-button {
-  -moz-image-region: rect(0px 16px 16px 0px);
+@media (-moz-os-version: windows-xp) {
+  #todaypane-new-event-button {
+    list-style-image: url("chrome://calendar/skin/toolbar-small.png");
+    -moz-image-region: rect(0px 16px 16px 0px);
+  }
+  #todaypane-new-event-button[disabled="true"] {
+    -moz-image-region: rect(32px 16px 48px 0px);
+  }
 }
-#todaypane-new-event-button[disabled="true"],
-#todaypane-new-event-button[disabled="true"]:hover,
-#todaypane-new-event-button[disabled="true"]:hover:active {
-  -moz-image-region: rect(32px 16px 48px 0px);
+
+@media not all and (-moz-os-version: windows-xp) {
+  #todaypane-new-event-button {
+    list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#newevent);
+  }
+
+  #todaypane-new-event-button[disabled="true"] > .toolbarbutton-icon {
+    opacity: 0.4;
+  }
+
+  #todaypane-new-event-button > .toolbarbutton-icon {
+    width: 18px;
+    height: 18px;
+    margin: -1px;
+  }
 }
-#todaypane-new-event-button:hover {
-  -moz-image-region: rect(16px 16px 32px 0px);
-}
--- a/calendar/base/themes/windows/win-aero/calendar-event-dialog.css
+++ b/calendar/base/themes/windows/win-aero/calendar-event-dialog.css
@@ -1,94 +1,3 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this file,
  * You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-#event-toolbox {
-  -moz-appearance: none;
-  border-top: none;
-  background-color: -moz-Dialog;
-  border-bottom: 1px solid ThreeDShadow;
-}
-
-@media (-moz-windows-default-theme) and (-moz-os-version: windows-vista),
-       (-moz-windows-default-theme) and (-moz-os-version: windows-win7) {
-  /* < Win8 */
-  #event-toolbox {
-    background-color: hsl(210, 75%, 92%);
-    background-image: linear-gradient(rgba(255, 255, 255, .5),
-                      rgba(255, 255, 255, 0));
-  }
-}
-
-@media (-moz-windows-glass) {
-  #event-toolbox {
-    border-bottom-color: #AABCCF;
-  }
-}
-
-#event-menubar,
-#event-toolbar {
-  -moz-appearance: none;
-  border-style: none;
-  background-color: transparent
-}
-
-#event-toolbar {
-  -moz-margin-start: 0;
-  padding: 1px 0 2px;
-}
-
-.cal-event-toolbarbutton {
-  list-style-image: url(chrome://calendar/skin/calendar-event-dialog-toolbar-aero.png);
-}
-
-#button-save {
-  -moz-image-region: rect(1px 107px 17px 91px);
-}
-
-#button-attendees {
-  -moz-image-region: rect(1px 35px 17px 19px);
-}
-
-#button-privacy {
-  -moz-image-region: rect(1px 89px 17px 73px);
-}
-
-#button-url {
-  -moz-image-region: rect(1px 71px 17px 55px);
-}
-
-#button-delete.cal-event-toolbarbutton,
-#button-delete.cal-event-toolbarbutton:hover,
-#button-delete.cal-event-toolbarbutton:hover:active,
-toolbar[iconsize="small"] #button-delete.cal-event-toolbarbutton,
-toolbar[iconsize="small"] #button-delete.cal-event-toolbarbutton:hover,
-toolbar[iconsize="small"] #button-delete.cal-event-toolbarbutton:hover:active {
-  list-style-image: url(chrome://calendar/skin/calendar-event-dialog-toolbar-aero.png);
-  -moz-image-region: rect(1px 305px 17px 289px);
-}
-
-#button-priority {
-  -moz-image-region: rect(1px 431px 17px 415px);
-}
-
-#button-status {
-  -moz-image-region: rect(1px 449px 17px 433px);
-}
-
-#button-freebusy {
-  -moz-image-region: rect(1px 467px 17px 451px);
-}
-
-#button-timezones {
-  -moz-image-region: rect(1px 485px 17px 469px);
-}
-
-toolbar[brighttext] .cal-event-toolbarbutton,
-toolbar[brighttext] #button-delete.cal-event-toolbarbutton,
-toolbar[brighttext] #button-delete.cal-event-toolbarbutton:hover,
-toolbar[brighttext] #button-delete.cal-event-toolbarbutton:hover:active,
-toolbar[brighttext][iconsize="small"] #button-delete.cal-event-toolbarbutton,
-toolbar[brighttext][iconsize="small"] #button-delete.cal-event-toolbarbutton:hover,
-toolbar[brighttext][iconsize="small"] #button-delete.cal-event-toolbarbutton:hover:active {
-  list-style-image: url(chrome://calendar/skin/calendar-event-dialog-toolbar-inverted.png);
-}
--- a/calendar/base/themes/windows/win-aero/calendar.css
+++ b/calendar/base/themes/windows/win-aero/calendar.css
@@ -1,66 +1,12 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this file,
  * You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-#task-actions-toolbar .toolbarbutton-icon {
-  margin: 1px;
-  width: 16px;
-  height: 16px;
-}
-
-#task-actions-toolbar > #task-actions-category {
-  list-style-image: url(chrome://calendar/skin/tasks-actions-aero.png);
-  -moz-image-region: rect(1px 17px 17px 1px);
-}
-
-#task-actions-toolbar > #task-actions-markcompleted {
-  list-style-image: url(chrome://calendar/skin/tasks-actions-aero.png);
-  -moz-image-region: rect(1px 35px 17px 19px);
-}
-
-#task-actions-toolbar > #task-actions-priority {
-  list-style-image: url(chrome://calendar/skin/tasks-actions-aero.png);
-  -moz-image-region: rect(1px 51px 17px 35px);
-}
-
-#task-actions-toolbar > #calendar-delete-task-button {
-  list-style-image: url(chrome://calendar/skin/toolbar-aero.png);
-  -moz-image-region: rect(1px 107px 17px 91px);
-}
-
-#task-addition-box > box > #calendar-add-task-button {
-  list-style-image: url(chrome://calendar/skin/toolbar-aero.png);
-  -moz-image-region: rect(1px 71px 17px 55px);
-}
-
-#task-actions-toolbar[brighttext] > #task-actions-category,
-#task-actions-toolbar[brighttext] > #task-actions-markcompleted,
-#task-actions-toolbar[brighttext] > #task-actions-priority {
-  list-style-image: url(chrome://calendar/skin/tasks-actions-inverted.png);
-}
-
-#task-actions-toolbar[brighttext] > #calendar-delete-task-button {
-  list-style-image: url(chrome://calendar/skin/toolbar-aero-inverted.png);
-}
-
-#calendar-add-task-button[disabled="true"] > .toolbarbutton-icon {
-  opacity: 0.4;
-}
-
-#todaypane-new-event-button {
-  list-style-image: url(chrome://calendar/skin/toolbar-aero.png) !important;
-  -moz-image-region: rect(1px 35px 17px 19px) !important;
-}
-
-#todaypane-new-event-button[disabled="true"] > .toolbarbutton-icon {
-  opacity: 0.4;
-}
-
 #unifinder-search-field,
 #view-task-edit-field,
 #task-text-filter-field,
 #unifinder-task-edit-field {
   -moz-appearance: none;
   background-clip: padding-box;
   border: 1px solid ThreeDDarkShadow;
 }
--- a/calendar/base/themes/windows/win-aero/lightning-toolbar.css
+++ b/calendar/base/themes/windows/win-aero/lightning-toolbar.css
@@ -1,98 +1,3 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-/* Lightning "Calendar" Toolbarbutton */
-#lightning-button-calendar {
-  list-style-image: url(chrome://lightning/skin/mode-switch-icons-aero.png);
-  -moz-image-region: rect(0px 16px 16px 0px);
-}
-
-/* Lightning "Tasks" Toolbarbutton */
-#lightning-button-tasks {
-  list-style-image: url(chrome://lightning/skin/mode-switch-icons-aero.png);
-  -moz-image-region: rect(0px 32px 16px 16px);
-}
-
-/* Toolbar buttons */
-
-.calbar-toolbarbutton-1 {
-  list-style-image: url(chrome://calendar/skin/toolbar-aero.png);
-}
-
-#calendar-toolbox > toolbar[brighttext] .calbar-toolbarbutton-1,
-#task-toolbox > toolbar[brighttext] .calbar-toolbarbutton-1 {
-  list-style-image: url(chrome://calendar/skin/toolbar-aero-inverted.png);
-}
-
-#calendar-synchronize-button,
-#task-synchronize-button {
-  -moz-image-region: rect(1px 17px 17px 1px);
-}
-
-#calendar-newevent-button,
-#task-newevent-button {
-  -moz-image-region: rect(1px 35px 17px 19px);
-}
-
-#calendar-newtask-button,
-#task-newtask-button {
-  -moz-image-region: rect(1px 71px 17px 55px);
-}
-
-#calendar-edit-button,
-#task-edit-button {
-  -moz-image-region: rect(1px 89px 17px 73px);
-}
-
-#calendar-delete-button,
-#task-delete-button {
-  -moz-image-region: rect(1px 107px 17px 91px);
-}
-
-#calendar-goto-today-button {
-  -moz-image-region: rect(1px 53px 17px 37px);
-}
-
-#calendar-print-button,
-#task-print-button {
-  -moz-image-region: rect(1px 125px 17px 109px);
-}
-
-#calendar-unifinder-button {
-  -moz-image-region: rect(1px 143px 17px 127px);
-}
-
-#extractEventButton,
-#hdrExtractEventButton {
-  list-style-image: url(chrome://calendar/skin/toolbar-aero.png);
-  -moz-image-region: rect(1px 35px 17px 19px);
-}
-
-#extractTaskButton,
-#hdrExtractTaskButton {
-  list-style-image: url(chrome://calendar/skin/toolbar-aero.png);
-  -moz-image-region: rect(1px 71px 17px 55px);
-}
-
-#tabs-toolbar[brighttext] #extractTaskButton,
-#tabs-toolbar[brighttext] #extractEventButton,
-#mail-toolbox > toolbar[brighttext] #extractTaskButton,
-#mail-toolbox > toolbar[brighttext] #extractEventButton,
-#header-view-toolbox > toolbar[brighttext] #hdrExtractTaskButton,
-#header-view-toolbox > toolbar[brighttext] #hdrExtractEventButton {
-  list-style-image: url(chrome://calendar/skin/toolbar-aero-inverted.png) !important;
-}
-
-@media (-moz-windows-glass) {
-  #calendar-toolbox:not(:-moz-lwtheme) {
-    border-bottom-color: #AABCCF;
-  }
-}
-
-#tabs-toolbar[brighttext] #lightning-button-calendar,
-#tabs-toolbar[brighttext] #lightning-button-tasks,
-#mail-toolbox > toolbar[brighttext] #lightning-button-calendar,
-#mail-toolbox > toolbar[brighttext] #lightning-button-tasks {
-  list-style-image: url(chrome://lightning/skin/mode-switch-icons-inverted.png);
-}
--- a/calendar/base/themes/windows/win-aero/lightning.css
+++ b/calendar/base/themes/windows/win-aero/lightning.css
@@ -1,85 +1,3 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-#newMsgButton-mail-menuitem {
-  list-style-image: url("chrome://messenger/skin/icons/mail-toolbar.svg#newmsg") !important;
-  -moz-image-region: auto !important;
-}
-
-#calendar-tab-button,
-#button-newmsg #newMsgButton-calendar-menuitem {
-  list-style-image: url(chrome://lightning/skin/mode-switch-icons-aero.png);
-  -moz-image-region: rect(0px 16px 16px 0px);
-}
-
-.icon-holder[type="calendar"],
-.tabmail-tab[type="calendar"] {
-  list-style-image: url(chrome://lightning/skin/mode-switch-icons-aero.png);
-  -moz-image-region: rect(16px 16px 32px 0px);
-}
-
-#task-tab-button,
-#button-newmsg #newMsgButton-task-menuitem {
-  list-style-image: url(chrome://lightning/skin/mode-switch-icons-aero.png);
-  -moz-image-region: rect(0px 32px 16px 16px);
-}
-
-.icon-holder[type="tasks"],
-.tabmail-tab[type="tasks"] {
-  list-style-image: url(chrome://lightning/skin/mode-switch-icons-aero.png);
-  -moz-image-region: rect(16px 32px 32px 16px);
-}
-
-#calendar-show-todaypane-panel > #calendar-status-todaypane-button > stack > .toolbarbutton-icon-begin {
-  list-style-image: url(chrome://calendar/skin/toolbar-small-aero.png);
-}
-
-#tabs-toolbar[brighttext] #calendar-tab-button,
-#tabs-toolbar[brighttext] #task-tab-button {
-  list-style-image: url(chrome://lightning/skin/mode-switch-icons-inverted.png);
-}
-
-/* ::: imip button icons ::: */
-.imipAcceptRecurrencesButton,
-.imipAcceptButton {
-  list-style-image: url(chrome://lightning/skin/imip-aero.png);
-  -moz-image-region: rect(0px 16px 16px 0px);
-}
-
-.imipDeclineRecurrencesButton,
-.imipDeclineButton {
-  list-style-image: url(chrome://lightning/skin/imip-aero.png);
-  -moz-image-region: rect(0px 32px 16px 16px);
-}
-
-.imipTentativeRecurrencesButton,
-.imipTentativeButton {
-  list-style-image: url(chrome://lightning/skin/imip-aero.png);
-  -moz-image-region: rect(1px 48px 17px 32px);
-}
-
-.imipDetailsButton {
-  list-style-image: url(chrome://calendar/skin/toolbar-aero.png);
-  -moz-image-region: rect(1px 143px 17px 126px);
-}
-
-.imipAddButton {
-  list-style-image: url(chrome://calendar/skin/toolbar-aero.png);
-  -moz-image-region: rect(2px 35px 18px 17px);
-}
-
-.imipUpdateButton {
-  list-style-image: url(chrome://calendar/skin/toolbar-aero.png);
-  -moz-image-region: rect(1px 17px 17px 1px);
-}
-
-.imipDeleteButton {
-  list-style-image: url(chrome://calendar/skin/toolbar-aero.png);
-  -moz-image-region: rect(1px 107px 17px 91px);
-}
-
-.imipReconfirmButton {
-  list-style-image: url(chrome://calendar/skin/tasks-actions-aero.png);
-  -moz-image-region: rect(1px 53px 17px 37px);
-}
--- a/calendar/base/themes/windows/win-classic/calendar-event-dialog.css
+++ b/calendar/base/themes/windows/win-classic/calendar-event-dialog.css
@@ -1,213 +1,4 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this file,
  * You can obtain one at http://mozilla.org/MPL/2.0/. */
 
-.cal-event-toolbarbutton {
-  list-style-image: url("chrome://calendar/skin/calendar-event-dialog-toolbar.png");
-}
-
-toolbar[iconsize="small"] .cal-event-toolbarbutton {
-  list-style-image: url("chrome://calendar/skin/calendar-event-dialog-toolbar-small.png");
-}
-
-#button-attendees {
-  -moz-image-region: rect(0px 48px 24px 24px);
-}
-#button-attendees[disabled="true"],
-#button-attendees[disabled="true"]:hover {
-  -moz-image-region: rect(48px 48px 72px 24px);
-}
-#button-attendees:hover {
-  -moz-image-region: rect(24px 48px 48px 24px);
-}
-
-toolbar[iconsize="small"] #button-attendees {
-  -moz-image-region: rect(0px 32px 16px 16px);
-}
-toolbar[iconsize="small"] #button-attendees[disabled="true"],
-toolbar[iconsize="small"] #button-attendees[disabled="true"]:hover {
-  -moz-image-region: rect(32px 32px 48px 16px);
-}
-toolbar[iconsize="small"] #button-attendees:hover {
-  -moz-image-region: rect(16px 32px 32px 16px);
-}
-
-#button-url {
-  -moz-image-region: rect(0px 96px 24px 72px);
-}
-#button-url[disabled="true"],
-#button-url[disabled="true"]:hover {
-  -moz-image-region: rect(48px 96px 72px 72px);
-}
-#button-url:hover {
-  -moz-image-region: rect(24px 96px 48px 72px);
-}
-
-toolbar[iconsize="small"] #button-url {
-  -moz-image-region: rect(0px 64px 16px 48px);
-}
-toolbar[iconsize="small"] #button-url[disabled="true"],
-toolbar[iconsize="small"] #button-url[disabled="true"]:hover {
-  -moz-image-region: rect(32px 64px 48px 48px);
-}
-toolbar[iconsize="small"] #button-url:hover {
-  -moz-image-region: rect(16px 64px 32px 48px);
-}
-
-#button-privacy {
-  -moz-image-region: rect(0px 120px 24px 96px);
-}
-#button-privacy[disabled="true"],
-#button-privacy[disabled="true"]:hover {
-  -moz-image-region: rect(48px 120px 72px 96px);
-}
-#button-privacy:hover {
-  -moz-image-region: rect(24px 120px 48px 96px);
-}
-
-toolbar[iconsize="small"] #button-privacy {
-  -moz-image-region: rect(0px 80px 16px 64px);
-}
-toolbar[iconsize="small"] #button-privacy[disabled="true"],
-toolbar[iconsize="small"] #button-privacy[disabled="true"]:hover {
-  -moz-image-region: rect(32px 80px 48px 64px);
-}
-toolbar[iconsize="small"] #button-privacy:hover {
-  -moz-image-region: rect(16px 80px 32px 64px);
-}
-
-#button-save {
-  -moz-image-region: rect(0px 144px 24px 120px);
-}
-#button-save[disabled="true"],
-#button-save[disabled="true"]:hover {
-  -moz-image-region: rect(48px 144px 72px 120px);
-}
-#button-save:hover {
-  -moz-image-region: rect(24px 144px 48px 120px);
-}
-
-toolbar[iconsize="small"] #button-save {
-  -moz-image-region: rect(0px 96px 16px 80px);
-}
-toolbar[iconsize="small"] #button-save[disabled="true"],
-toolbar[iconsize="small"] #button-save[disabled="true"]:hover {
-  -moz-image-region: rect(32px 96px 48px 80px);
-}
-toolbar[iconsize="small"] #button-save:hover {
-  -moz-image-region: rect(16px 96px 32px 80px);
-}
-
-#button-delete.cal-event-toolbarbutton {
-  list-style-image: url("chrome://calendar/skin/calendar-event-dialog-toolbar.png");
-  -moz-image-region: rect(0px 408px 24px 384px);
-}
-#button-delete.cal-event-toolbarbutton[disabled="true"],
-#button-delete.cal-event-toolbarbutton[disabled="true"]:hover {
-  -moz-image-region: rect(48px 408px 72px 384px);
-}
-#button-delete.cal-event-toolbarbutton:hover,
-#button-delete.cal-event-toolbarbutton:hover:active {
-  -moz-image-region: rect(24px 408px 48px 384px);
-}
-
-toolbar[iconsize="small"] #button-delete.cal-event-toolbarbutton {
-  list-style-image: url("chrome://calendar/skin/calendar-event-dialog-toolbar-small.png");
-  -moz-image-region: rect(0px 272px 16px 256px);
-}
-toolbar[iconsize="small"] #button-delete.cal-event-toolbarbutton[disabled="true"],
-toolbar[iconsize="small"] #button-delete.cal-event-toolbarbutton[disabled="true"]:hover {
-  -moz-image-region: rect(32px 272px 48px 256px);
-}
-toolbar[iconsize="small"] #button-delete.cal-event-toolbarbutton:hover,
-toolbar[iconsize="small"] #button-delete.cal-event-toolbarbutton:hover:active {
-  -moz-image-region: rect(16px 272px 32px 256px);
-}
-
-#button-priority {
-  -moz-image-region: rect(0px 600px 24px 576px);
-}
-#button-priority[disabled="true"],
-#button-priority[disabled="true"]:hover {
-  -moz-image-region: rect(48px 600px 72px 576px);
-}
-#button-priority:hover {
-  -moz-image-region: rect(24px 600px 48px 576px);
-}
-
-toolbar[iconsize="small"] #button-priority {
-  -moz-image-region: rect(0px 400px 16px 384px);
-}
-toolbar[iconsize="small"] #button-priority[disabled="true"],
-toolbar[iconsize="small"] #button-priority[disabled="true"]:hover {
-  -moz-image-region: rect(32px 400px 48px 384px);
-}
-toolbar[iconsize="small"] #button-priority:hover {
-  -moz-image-region: rect(16px 400px 32px 384px);
-}
-
-#button-status {
-  -moz-image-region: rect(0px 624px 24px 600px);
-}
-#button-status[disabled="true"],
-#button-status[disabled="true"]:hover {
-  -moz-image-region: rect(48px 624px 72px 600px);
-}
-#button-status:hover {
-  -moz-image-region: rect(24px 624px 48px 600px);
-}
-
-toolbar[iconsize="small"] #button-status {
-  -moz-image-region: rect(0px 416px 16px 400px);
-}
-toolbar[iconsize="small"] #button-status[disabled="true"],
-toolbar[iconsize="small"] #button-status[disabled="true"]:hover {
-  -moz-image-region: rect(32px 416px 48px 400px);
-}
-toolbar[iconsize="small"] #button-status:hover {
-  -moz-image-region: rect(16px 416px 32px 400px);
-}
-
-#button-freebusy {
-  -moz-image-region: rect(0px 648px 24px 624px);
-}
-#button-freebusy[disabled="true"],
-#button-freebusy[disabled="true"]:hover {
-  -moz-image-region: rect(48px 648px 72px 624px);
-}
-#button-freebusy:hover {
-  -moz-image-region: rect(24px 648px 48px 624px);
-}
-
-toolbar[iconsize="small"] #button-freebusy {
-  -moz-image-region: rect(0px 432px 16px 416px);
-}
-toolbar[iconsize="small"] #button-freebusy[disabled="true"],
-toolbar[iconsize="small"] #button-freebusy[disabled="true"]:hover {
-  -moz-image-region: rect(32px 432px 48px 416px);
-}
-toolbar[iconsize="small"] #button-freebusy:hover {
-  -moz-image-region: rect(16px 432px 32px 416px);
-}
-
-#button-timezones {
-  -moz-image-region: rect(0px 672px 24px 648px);
-}
-#button-timezones[disabled="true"],
-#button-timezones[disabled="true"]:hover {
-  -moz-image-region: rect(48px 672px 72px 648px);
-}
-#button-timezones:hover {
-  -moz-image-region: rect(24px 672px 48px 648px);
-}
-
-toolbar[iconsize="small"] #button-timezones {
-  -moz-image-region: rect(0px 448px 16px 432px);
-}
-toolbar[iconsize="small"] #button-timezones[disabled="true"],
-toolbar[iconsize="small"] #button-timezones[disabled="true"]:hover {
-  -moz-image-region: rect(32px 448px 48px 432px);
-}
-toolbar[iconsize="small"] #button-timezones:hover {
-  -moz-image-region: rect(16px 448px 32px 432px);
-}
--- a/calendar/base/themes/windows/win-classic/lightning-toolbar.css
+++ b/calendar/base/themes/windows/win-classic/lightning-toolbar.css
@@ -1,201 +1,4 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-@import url(chrome://lightning-common/skin/lightning-toolbar.css);
-
 /* Lightning "Calendar" Toolbarbutton */
-#lightning-button-calendar {
-    list-style-image: url(chrome://lightning-common/skin/mode-switch-icons.png);
-    -moz-image-region: rect(0px 24px 24px 0px);
-}
-
-#lightning-button-calendar[disabled] {
-    -moz-image-region: rect(48px 24px 72px 0px);
-}
-toolbar[iconsize="small"] #lightning-button-calendar {
-    -moz-image-region: rect(0px 64px 16px 48px);
-}
-
-toolbar[iconsize="small"] #lightning-button-calendar[disabled] {
-    -moz-image-region: rect(32px 64px 48px 48px);
-}
-
-/* Lightning "Tasks" Toolbarbutton */
-#lightning-button-tasks {
-    list-style-image: url(chrome://lightning-common/skin/mode-switch-icons.png);
-    -moz-image-region: rect(0px 48px 24px 24px);
-}
-
-#lightning-button-tasks[disabled] {
-    -moz-image-region: rect(48px 48px 72px 24px);
-}
-
-toolbar[iconsize="small"] #lightning-button-tasks {
-    -moz-image-region: rect(0px 80px 16px 64px);
-}
-toolbar[iconsize="small"] #lightning-button-tasks[disabled] {
-    -moz-image-region: rect(32px 80px 48px 64px);
-}
-
-/* Toolbar buttons */
-
-.calbar-toolbarbutton-1 {
-  list-style-image: url(chrome://calendar/skin/toolbar-large.png);
-}
-
-toolbar[iconsize="small"] .calbar-toolbarbutton-1 {
-  list-style-image: url(chrome://calendar/skin/toolbar-small.png);
-}
-
-#calendar-synchronize-button,
-#task-synchronize-button {
-  -moz-image-region: rect(0px 648px 24px 624px);
-}
-
-#calendar-synchronize-button[disabled],
-#task-synchronize-button[disabled] {
-  -moz-image-region: rect(48px 648px 72px 624px);
-}
-
-toolbar[iconsize="small"] #calendar-synchronize-button,
-toolbar[iconsize="small"] #task-synchronize-button {
-  -moz-image-region: rect(0px 432px 16px 416px);
-}
-
-toolbar[iconsize="small"] #calendar-synchronize-button[disabled],
-toolbar[iconsize="small"] #task-synchronize-button[disabled] {
-  -moz-image-region: rect(32px 432px 48px 416px);
-}
-
-#calendar-newevent-button,
-#task-newevent-button {
-  -moz-image-region: rect(0px 24px 24px 0px);
-}
-
-#calendar-newevent-button[disabled],
-#task-newevent-button[disabled] {
-  -moz-image-region: rect(48px 24px 72px 0px);
-}
-
-toolbar[iconsize="small"] #calendar-newevent-button,
-toolbar[iconsize="small"] #task-newevent-button {
-  -moz-image-region: rect(0px 16px 16px 0px);
-}
-
-toolbar[iconsize="small"] #calendar-newevent-button[disabled],
-toolbar[iconsize="small"] #task-newevent-button[disabled] {
-  -moz-image-region: rect(32px 16px 48px 0px);
-}
-
-#calendar-newtask-button,
-#task-newtask-button {
-  -moz-image-region: rect(0px 384px 24px 360px);
-}
-
-#calendar-newtask-button[disabled],
-#task-newtask-button[disabled] {
-  -moz-image-region: rect(48px 384px 72px 360px);
-}
-
-toolbar[iconsize="small"] #calendar-newtask-button,
-toolbar[iconsize="small"] #task-newtask-button {
-  -moz-image-region: rect(0px 256px 16px 240px);
-}
-
-toolbar[iconsize="small"] #calendar-newtask-button[disabled],
-toolbar[iconsize="small"] #task-newtask-button[disabled] {
-  -moz-image-region: rect(32px 256px 48px 240px);
-}
-
-#calendar-edit-button,
-#task-edit-button {
-  -moz-image-region: rect(0px 48px 24px 24px);
-}
-
-#calendar-edit-button[disabled],
-#task-edit-button[disabled] {
-  -moz-image-region: rect(48px 48px 72px 24px);
-}
-
-toolbar[iconsize="small"] #calendar-edit-button,
-toolbar[iconsize="small"] #task-edit-button {
-  -moz-image-region: rect(0px 32px 16px 16px);
-}
-
-toolbar[iconsize="small"] #calendar-edit-button[disabled],
-toolbar[iconsize="small"] #task-edit-button[disabled] {
-  -moz-image-region: rect(32px 32px 48px 16px);
-}
-
-#calendar-delete-button,
-#task-delete-button {
-  -moz-image-region: rect(0px 72px 24px 48px);
-}
-
-#calendar-delete-button[disabled],
-#task-delete-button[disabled] {
-  -moz-image-region: rect(48px 72px 72px 48px);
-}
-
-toolbar[iconsize="small"] #calendar-delete-button,
-toolbar[iconsize="small"] #task-delete-button {
-  -moz-image-region: rect(0px 48px 16px 32px);
-}
-
-toolbar[iconsize="small"] #calendar-delete-button[disabled],
-toolbar[iconsize="small"] #task-delete-button[disabled] {
-  -moz-image-region: rect(32px 48px 48px 32px);
-}
-
-#calendar-goto-today-button {
-  -moz-image-region: rect(0px 408px 24px 384px);
-}
-
-#calendar-goto-today-button[disabled] {
-  -moz-image-region: rect(48px 408px 72px 384px);
-}
-
-toolbar[iconsize="small"] #calendar-goto-today-button {
-  -moz-image-region: rect(0px 272px 16px 256px);
-}
-
-toolbar[iconsize="small"] #calendar-goto-today-button[disabled] {
-  -moz-image-region: rect(32px 272px 48px 256px);
-}
-
-#calendar-print-button,
-#task-print-button {
-  -moz-image-region: rect(0px 360px 24px 336px);
-}
-
-#calendar-print-button[disabled],
-#task-print-button[disabled] {
-  -moz-image-region: rect(48px 360px 72px 336px);
-}
-
-toolbar[iconsize="small"] #calendar-print-button,
-toolbar[iconsize="small"] #task-print-button {
-  -moz-image-region: rect(0px 240px 16px 224px);
-}
-
-toolbar[iconsize="small"] #calendar-print-button[disabled],
-toolbar[iconsize="small"] #task-print-button[disabled] {
-  -moz-image-region: rect(32px 240px 48px 224px);
-}
-
-#calendar-unifinder-button {
-  -moz-image-region: rect(0px 528px 24px 504px);
-}
-
-#calendar-unifinder-button[disabled] {
-  -moz-image-region: rect(48px 528px 72px 504px);
-}
-
-toolbar[iconsize="small"] #calendar-unifinder-button {
-  -moz-image-region: rect(0px 352px 16px 336px);
-}
-
-toolbar[iconsize="small"] #calendar-unifinder-button[disabled] {
-  -moz-image-region: rect(32px 352px 48px 336px);
-}
--- a/calendar/base/themes/windows/win-classic/lightning.css
+++ b/calendar/base/themes/windows/win-classic/lightning.css
@@ -1,81 +1,3 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this file,
  * You can obtain one at http://mozilla.org/MPL/2.0/. */
-
-/* ::::: tabs ::::: */
-
-/* ::: new tab buttons ::: */
-#calendar-tab-button {
-  list-style-image: url(chrome://lightning-common/skin/mode-switch-icons.png);
-  -moz-image-region: rect(0px 64px 16px 48px);
-}
-
-#calendar-tab-button[disabled] {
-  -moz-image-region: rect(32px 64px 48px 48px);
-}
-
-#task-tab-button {
-  list-style-image: url(chrome://lightning-common/skin/mode-switch-icons.png);
-  -moz-image-region: rect(0px 80px 16px 64px);
-}
-
-#task-tab-button[disabled] {
-  -moz-image-region: rect(32px 80px 48px 64px);
-}
-
-/* ::: tab icons ::: */
-.icon-holder[type="calendar"],
-.tabmail-tab[type="calendar"] {
-  list-style-image: url(chrome://lightning-common/skin/mode-switch-icons.png);
-  -moz-image-region: rect(0px 64px 16px 48px);
-}
-
-.icon-holder[type="tasks"],
-.tabmail-tab[type="tasks"] {
-  list-style-image: url(chrome://lightning-common/skin/mode-switch-icons.png);
-  -moz-image-region: rect(0px 80px 16px 64px);
-}
-
-/* ::: imip button icons ::: */
-.imipAcceptRecurrencesButton,
-.imipAcceptButton {
-  list-style-image: url(chrome://lightning/skin/imip.png);
-  -moz-image-region: rect(0px 16px 16px 0px);
-}
-
-.imipDeclineRecurrencesButton,
-.imipDeclineButton {
-  list-style-image: url(chrome://lightning/skin/imip.png);
-  -moz-image-region: rect(0px 32px 16px 16px);
-}
-
-.imipTentativeRecurrencesButton,
-.imipTentativeButton {
-  list-style-image: url(chrome://lightning/skin/imip.png);
-  -moz-image-region: rect(0px 48px 16px 32px);
-}
-
-.imipDetailsButton {
-  list-style-image: url(chrome://calendar/skin/toolbar-small.png);
-  -moz-image-region: rect(0px 352px 16px 336px);
-}
-
-.imipAddButton {
-  list-style-image: url(chrome://calendar/skin/toolbar-small.png);
-  -moz-image-region: rect(0px 16px 16px 0px);
-}
-
-.imipUpdateButton {
-  list-style-image: url(chrome://calendar/skin/toolbar-small.png);
-  -moz-image-region: rect(0px 432px 16px 416px);
-}
-
-.imipDeleteButton {
-  list-style-image: url(chrome://calendar/skin/toolbar-small.png);
-  -moz-image-region: rect(0px 48px 16px 32px);
-}
-
-.imipReconfirmButton {
-  list-style-image: url(chrome://calendar/skin/toolbar-small.png);
-  -moz-image-region: rect(0px 400px 16px 385px);
-}
--- a/calendar/lightning/themes/common/lightning.css
+++ b/calendar/lightning/themes/common/lightning.css
@@ -2,11 +2,31 @@
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 /* avoids contributing to the min width when Lightning is not selected */
 #calendarTabPanel:not([selected]) {
   visibility: collapse;
 }
 
+#calendar-status-todaypane-button > stack > .toolbarbutton-day-text {
+  text-align: center;
+  -moz-margin-start: 0;
+  margin-top: 4px;
+  margin-bottom: -4px;
+  font-size: 7pt;
+  font-family: Arial, Helvetica, sans-serif;
+  font-weight: bold;
+  text-shadow: none;
+  background-color: transparent;
+}
+
+#calendar-status-todaypane-button:-moz-lwtheme-brighttext > stack > .toolbarbutton-day-text {
+  color: inherit;
+}
+
+.imipMoreButton > .toolbarbutton-icon {
+  display: none;
+}
+
 .imipMoreButton >.toolbarbutton-icon {
   display: none;
 }
--- a/calendar/lightning/themes/linux/lightning-toolbar.css
+++ b/calendar/lightning/themes/linux/lightning-toolbar.css
@@ -1,210 +1,107 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 @import url(chrome://lightning-common/skin/lightning-toolbar.css);
 
 /* Lightning "Calendar" Toolbarbutton */
+
 #lightning-button-calendar {
-    list-style-image: url(chrome://lightning-common/skin/mode-switch-icons.png);
-    -moz-image-region: rect(0px 24px 24px 0px);
-}
-#lightning-button-calendar:hover {
-    -moz-image-region: rect(24px 24px 48px 0px);
-}
-#lightning-button-calendar[disabled] {
-    -moz-image-region: rect(48px 24px 72px 0px);
-}
-toolbar[iconsize="small"] #lightning-button-calendar {
-    -moz-image-region: rect(0px 64px 16px 48px);
-}
-toolbar[iconsize="small"] #lightning-button-calendar:hover {
-    -moz-image-region: rect(16px 64px 32px 48px);
-}
-toolbar[iconsize="small"] #lightning-button-calendar[disabled] {
-    -moz-image-region: rect(32px 64px 48px 48px);
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#calendar-tab);
 }
 
-/* Lightning "Tasks" Toolbarbutton */
 #lightning-button-tasks {
-    list-style-image: url(chrome://lightning-common/skin/mode-switch-icons.png);
-    -moz-image-region: rect(0px 48px 24px 24px);
-}
-#lightning-button-tasks:hover {
-    -moz-image-region: rect(24px 48px 48px 24px);
-}
-#lightning-button-tasks[disabled] {
-    -moz-image-region: rect(48px 48px 72px 24px);
-}
-
-toolbar[iconsize="small"] #lightning-button-tasks {
-    -moz-image-region: rect(0px 80px 16px 64px);
-}
-toolbar[iconsize="small"] #lightning-button-tasks:hover {
-    -moz-image-region: rect(16px 80px 32px 64px);
-}
-toolbar[iconsize="small"] #lightning-button-tasks[disabled] {
-    -moz-image-region: rect(32px 80px 48px 64px);
-}
-
-/* Toolbar buttons */
-
-.calbar-toolbarbutton-1 {
-  list-style-image: url(chrome://calendar/skin/toolbar-large.png);
-}
-
-toolbar[iconsize="small"] .calbar-toolbarbutton-1 {
-  list-style-image: url(chrome://calendar/skin/toolbar-small.png);
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#task-tab);
 }
 
 #calendar-synchronize-button,
 #task-synchronize-button {
-  -moz-image-region: rect(0px 648px 24px 624px);
-}
-
-#calendar-synchronize-button[disabled],
-#task-synchronize-button[disabled] {
-  -moz-image-region: rect(48px 648px 72px 624px);
-}
-
-toolbar[iconsize="small"] #calendar-synchronize-button,
-toolbar[iconsize="small"] #task-synchronize-button {
-  -moz-image-region: rect(0px 432px 16px 416px);
-}
-
-toolbar[iconsize="small"] #calendar-synchronize-button[disabled],
-toolbar[iconsize="small"] #task-synchronize-button[disabled] {
-  -moz-image-region: rect(32px 432px 48px 416px);
-}
-
-#calendar-newevent-button,
-#task-newevent-button {
-  -moz-image-region: rect(0px 24px 24px 0px);
-}
-
-#calendar-newevent-button[disabled],
-#task-newevent-button[disabled] {
-  -moz-image-region: rect(48px 24px 72px 0px);
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#synchronize);
 }
 
-toolbar[iconsize="small"] #calendar-newevent-button,
-toolbar[iconsize="small"] #task-newevent-button {
-  -moz-image-region: rect(0px 16px 16px 0px);
-}
-
-toolbar[iconsize="small"] #calendar-newevent-button[disabled],
-toolbar[iconsize="small"] #task-newevent-button[disabled] {
-  -moz-image-region: rect(32px 16px 48px 0px);
+#extractEventButton,
+#task-newevent-button,
+#hdrExtractEventButton,
+#calendar-newevent-button {
+    list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#newevent);
 }
 
-#calendar-newtask-button,
-#task-newtask-button {
-  -moz-image-region: rect(0px 384px 24px 360px);
-}
-
-#calendar-newtask-button[disabled],
-#task-newtask-button[disabled] {
-  -moz-image-region: rect(48px 384px 72px 360px);
-}
-
-toolbar[iconsize="small"] #calendar-newtask-button,
-toolbar[iconsize="small"] #task-newtask-button {
-  -moz-image-region: rect(0px 256px 16px 240px);
-}
-
-toolbar[iconsize="small"] #calendar-newtask-button[disabled],
-toolbar[iconsize="small"] #task-newtask-button[disabled] {
-  -moz-image-region: rect(32px 256px 48px 240px);
+#extractTaskButton,
+#task-newtask-button,
+#hdrExtractTaskButton,
+#calendar-newtask-button {
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#newtask);
 }
 
 #calendar-edit-button,
 #task-edit-button {
-  -moz-image-region: rect(0px 48px 24px 24px);
-}
-
-#calendar-edit-button[disabled],
-#task-edit-button[disabled] {
-  -moz-image-region: rect(48px 48px 72px 24px);
-}
-
-toolbar[iconsize="small"] #calendar-edit-button,
-toolbar[iconsize="small"] #task-edit-button {
-  -moz-image-region: rect(0px 32px 16px 16px);
-}
-
-toolbar[iconsize="small"] #calendar-edit-button[disabled],
-toolbar[iconsize="small"] #task-edit-button[disabled] {
-  -moz-image-region: rect(32px 32px 48px 16px);
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#edit);
 }
 
 #calendar-delete-button,
 #task-delete-button {
-  -moz-image-region: rect(0px 72px 24px 48px);
-}
-
-#calendar-delete-button[disabled],
-#task-delete-button[disabled] {
-  -moz-image-region: rect(48px 72px 72px 48px);
-}
-
-toolbar[iconsize="small"] #calendar-delete-button,
-toolbar[iconsize="small"] #task-delete-button {
-  -moz-image-region: rect(0px 48px 16px 32px);
-}
-
-toolbar[iconsize="small"] #calendar-delete-button[disabled],
-toolbar[iconsize="small"] #task-delete-button[disabled] {
-  -moz-image-region: rect(32px 48px 48px 32px);
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#delete);
 }
 
 #calendar-goto-today-button {
-  -moz-image-region: rect(0px 408px 24px 384px);
-}
-
-#calendar-goto-today-button[disabled] {
-  -moz-image-region: rect(48px 408px 72px 384px);
-}
-
-toolbar[iconsize="small"] #calendar-goto-today-button {
-  -moz-image-region: rect(0px 272px 16px 256px);
-}
-
-toolbar[iconsize="small"] #calendar-goto-today-button[disabled] {
-  -moz-image-region: rect(32px 272px 48px 256px);
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#today);
 }
 
 #calendar-print-button,
 #task-print-button {
-  list-style-image: url("moz-icon://stock/gtk-print?size=toolbar");
-}
-
-#calendar-print-button[disabled],
-#task-print-button[disabled] {
-  list-style-image: url("moz-icon://stock/gtk-print?size=toolbar&state=disabled");
-}
-
-toolbar[iconsize="small"] #calendar-print-button,
-toolbar[iconsize="small"] #task-print-button {
-  list-style-image: url("moz-icon://stock/gtk-print?size=menu");
-}
-
-toolbar[iconsize="small"] #calendar-print-button[disabled],
-toolbar[iconsize="small"] #task-print-button[disabled] {
-  list-style-image: url("moz-icon://stock/gtk-print?size=menu&state=disabled");
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#print);
 }
 
 #calendar-unifinder-button {
-  -moz-image-region: rect(0px 528px 24px 504px);
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#find);
+}
+
+toolbar[brighttext] #lightning-button-calendar {
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#calendar-tab-inverted);
+}
+
+toolbar[brighttext] #lightning-button-tasks {
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#task-tab-inverted);
 }
 
-#calendar-unifinder-button[disabled] {
-  -moz-image-region: rect(48px 528px 72px 504px);
+toolbar[brighttext] #calendar-synchronize-button,
+toolbar[brighttext] #task-synchronize-button {
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#synchronize-inverted);
+}
+
+toolbar[brighttext] #extractEventButton,
+toolbar[brighttext] #task-newevent-button,
+toolbar[brighttext] #hdrExtractEventButton,
+toolbar[brighttext] #calendar-newevent-button {
+    list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#newevent-inverted);
 }
 
-toolbar[iconsize="small"] #calendar-unifinder-button {
-  -moz-image-region: rect(0px 352px 16px 336px);
+toolbar[brighttext] #extractTaskButton,
+toolbar[brighttext] #task-newtask-button,
+toolbar[brighttext] #hdrExtractTaskButton,
+toolbar[brighttext] #calendar-newtask-button {
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#newtask-inverted);
+}
+
+toolbar[brighttext] #calendar-edit-button,
+toolbar[brighttext] #task-edit-button {
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#edit-inverted);
 }
 
-toolbar[iconsize="small"] #calendar-unifinder-button[disabled] {
-  -moz-image-region: rect(32px 352px 48px 336px);
+toolbar[brighttext] #calendar-delete-button,
+toolbar[brighttext] #task-delete-button {
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#delete-inverted);
+}
+
+toolbar[brighttext] #calendar-goto-today-button {
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#today-inverted);
 }
+
+toolbar[brighttext] #calendar-print-button,
+toolbar[brighttext] #task-print-button {
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#print-inverted);
+}
+
+toolbar[brighttext] #calendar-unifinder-button {
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#find-inverted);
+}
--- a/calendar/lightning/themes/linux/lightning.css
+++ b/calendar/lightning/themes/linux/lightning.css
@@ -68,40 +68,32 @@ radio[pane=paneLightning] {
 #imip-bar > image {
     list-style-image: url("chrome://calendar/skin/cal-icon32.png");
     -moz-image-region: rect(0px, 32px, 32px, 0px);
 }
 
 /* ::::: tabs ::::: */
 
 /* ::: new tab buttons ::: */
-#calendar-tab-button {
-    list-style-image: url(chrome://lightning-common/skin/mode-switch-icons.png);
-    -moz-image-region: rect(0px 64px 16px 48px);
-}
-
-#calendar-tab-button:hover {
-    -moz-image-region: rect(16px 64px 32px 48px);
+#calendar-tab-button,
+#newMsgButton-calendar-menuitem {
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#calendar-tab);
 }
 
-#calendar-tab-button[disabled] {
-    -moz-image-region: rect(32px 64px 48px 48px);
+#task-tab-button,
+#newMsgButton-task-menuitem {
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#task-tab);
 }
 
-#task-tab-button {
-    list-style-image: url(chrome://lightning-common/skin/mode-switch-icons.png);
-    -moz-image-region: rect(0px 80px 16px 64px);
+#tabs-toolbar[brighttext] #calendar-tab-button {
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#calendar-tab-inverted);
 }
 
-#task-tab-button:hover {
-    -moz-image-region: rect(16px 80px 32px 64px);
-}
-
-#task-tab-button[disabled] {
-    -moz-image-region: rect(32px 80px 48px 64px);
+#tabs-toolbar[brighttext] #task-tab-button {
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#task-tab-inverted);
 }
 
 /* ::: tab icons ::: */
 .icon-holder[type="calendar"],
 .tabmail-tab[type="calendar"] {
     list-style-image: url(chrome://lightning-common/skin/mode-switch-icons.png);
     -moz-image-region: rect(0px 64px 16px 48px);
 }
@@ -126,28 +118,25 @@ radio[pane=paneLightning] {
 /* Lightning sidebar in calendar and task mode */
 #ltnSidebar {
   background-color: -moz-field;
   border-bottom: 1px solid ThreeDShadow;
 }
 
 /* Write button */
 #newMsgButton-mail-menuitem {
-  list-style-image: url(chrome://messenger/skin/icons/mail-toolbar-small.png);
-  -moz-image-region: rect(0px 32px 16px 16px);
+  list-style-image: url(chrome://messenger/skin/icons/mail-toolbar.svg#newmsg);
 }
 
-#newMsgButton-calendar-menuitem {
-  list-style-image: url(chrome://calendar/skin/toolbar-small.png);
-  -moz-image-region: rect(0px 16px 16px 0px);
-}
-
-#newMsgButton-task-menuitem {
-  list-style-image: url(chrome://calendar/skin/toolbar-small.png);
-  -moz-image-region: rect(0px 256px 16px 240px);
+#newMsgButton-mail-menuitem > .menu-iconic-left > .menu-iconic-icon,
+#newMsgButton-calendar-menuitem > .menu-iconic-left > .menu-iconic-icon,
+#newMsgButton-task-menuitem > .menu-iconic-left > .menu-iconic-icon {
+  width: 18px;
+  height: 18px;
+  margin: -1px;
 }
 
 /* Today pane button in status bar */
 #calendar-status-todaypane-button,
 #calendar-status-todaypane-button[checked="true"] {
   min-width: 0;
   min-height: 0;
   margin: 1px 0 0;
@@ -160,31 +149,33 @@ radio[pane=paneLightning] {
 #calendar-status-todaypane-button:hover {
   border: 1px solid ThreeDShadow;
   background-color: transparent !important;
   background-image: none;
   -moz-appearance: none;
 }
 
 #calendar-status-todaypane-button > stack > .toolbarbutton-icon-begin {
-  list-style-image: url(chrome://calendar/skin/toolbar-small.png);
-  -moz-image-region: rect(0px 336px 16px 320px);
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#pane);
+  -moz-image-region: rect(0 18px 18px 0);
+}
+
+#calendar-status-todaypane-button:-moz-lwtheme-brighttext > stack >
+  .toolbarbutton-icon-begin {
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#pane-inverted);
+}
+
+/* compensate the 18px icon height */
+#calendar-status-todaypane-button > stack > .toolbarbutton-icon-begin {
+  margin-top: -1px;
+  margin-bottom: -1px;
 }
 
 #calendar-status-todaypane-button > stack > .toolbarbutton-day-text {
-  text-align: center;
-  margin-left: 0px;
-  margin-top: 4px;
-  margin-bottom: -4px;
-  font-size: 7pt;
-  font-family: Arial, Helvetica, sans-serif;
-  font-weight: bold;
-  text-shadow: none;
   color: DarkBlue;
-  background-color: transparent;
 }
 
 /* shift the today pane button label up by one pixel to center it */
 #calendar-status-todaypane-button > .toolbarbutton-text {
   margin: 0 0 1px !important;
 }
 
 #calendar-status-todaypane-button > .toolbarbutton-icon-end {
@@ -197,48 +188,40 @@ radio[pane=paneLightning] {
 
 #calMinimonthBox {
     margin-top: 3px;
 }
 
 /* ::: imip button icons ::: */
 .imipAcceptRecurrencesButton,
 .imipAcceptButton {
-  list-style-image: url(chrome://lightning/skin/imip.png);
-  -moz-image-region: rect(0px 16px 16px 0px);
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#complete);
 }
 
 .imipDeclineRecurrencesButton,
 .imipDeclineButton {
-  list-style-image: url(chrome://lightning/skin/imip.png);
-  -moz-image-region: rect(0px 32px 16px 16px);
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#decline);
 }
 
 .imipTentativeRecurrencesButton,
 .imipTentativeButton {
-  list-style-image: url(chrome://lightning/skin/imip.png);
-  -moz-image-region: rect(0px 48px 16px 32px);
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#tentative);
 }
 
 .imipDetailsButton {
-  list-style-image: url(chrome://calendar/skin/toolbar-small.png);
-  -moz-image-region: rect(0px 352px 16px 336px);
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#find);
 }
 
 .imipAddButton {
-  list-style-image: url(chrome://calendar/skin/toolbar-small.png);
-  -moz-image-region: rect(0px 16px 16px 0px);
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#newevent);
 }
 
 .imipUpdateButton {
-  list-style-image: url(chrome://calendar/skin/toolbar-small.png);
-  -moz-image-region: rect(0px 432px 16px 416px);
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#synchronize);
 }
 
 .imipDeleteButton {
-  list-style-image: url(chrome://calendar/skin/toolbar-small.png);
-  -moz-image-region: rect(0px 48px 16px 32px);
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#delete);
 }
 
 .imipReconfirmButton {
-  list-style-image: url(chrome://calendar/skin/toolbar-small.png);
-  -moz-image-region: rect(0px 400px 16px 385px);
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#priority);
 }
--- a/calendar/lightning/themes/osx/lightning-toolbar.css
+++ b/calendar/lightning/themes/osx/lightning-toolbar.css
@@ -1,127 +1,107 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 /* Lightning "Calendar" Toolbarbutton */
 #lightning-button-calendar {
-    list-style-image: url(chrome://lightning-common/skin/mode-switch-icons.png);
-    -moz-image-region: rect(0px 98px 18px 80px);
-}
-
-#lightning-button-calendar:not([disabled]):active {
-    -moz-image-region: rect(18px 98px 36px 80px);
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#calendar-tab);
 }
 
 /* Lightning "Tasks" Toolbarbutton */
 #lightning-button-tasks {
-    list-style-image: url(chrome://lightning-common/skin/mode-switch-icons.png);
-    -moz-image-region: rect(0px 116px 18px 98px);
-}
-#lightning-button-tasks:not([disabled]):active {
-    -moz-image-region: rect(18px 116px 36px 98px);
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#task-tab);
 }
 
 /* Toolbar buttons */
 
-.calbar-toolbarbutton-1 {
-  list-style-image: url(chrome://calendar/skin/toolbar.png);
-}
-
 #calendar-synchronize-button,
 #task-synchronize-button {
-  -moz-image-region: rect(0px 18px 18px 0px);
-}
-
-#calendar-synchronize-button:not([disabled]):active,
-#task-synchronize-button:not([disabled]):active {
-  -moz-image-region: rect(18px 18px 36px 0px);
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#synchronize);
 }
 
-#calendar-newevent-button,
-#task-newevent-button {
-  -moz-image-region: rect(0px 36px 18px 18px);
+#extractEventButton,
+#task-newevent-button,
+#hdrExtractEventButton,
+#calendar-newevent-button {
+    list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#newevent);
 }
 
-#calendar-newevent-button:not([disabled]):active,
-#task-newevent-button:not([disabled]):active {
-  -moz-image-region: rect(18px 36px 36px 18px);
-}
-
-#calendar-newtask-button,
-#task-newtask-button {
-  -moz-image-region: rect(0px 72px 18px 54px);
-}
-
-#calendar-newtask-button:not([disabled]):active,
-#task-newtask-button:not([disabled]):active {
-  -moz-image-region: rect(18px 72px 36px 54px);
+#extractTaskButton,
+#task-newtask-button,
+#hdrExtractTaskButton,
+#calendar-newtask-button {
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#newtask);
 }
 
 #calendar-edit-button,
 #task-edit-button {
-  -moz-image-region: rect(0px 90px 18px 72px);
-}
-
-#calendar-edit-button:not([disabled]):active,
-#task-edit-button:not([disabled]):active {
-  -moz-image-region: rect(18px 90px 36px 72px);
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#edit);
 }
 
 #calendar-delete-button,
 #task-delete-button {
-  -moz-image-region: rect(0px 108px 18px 90px);
-}
-
-#calendar-delete-button:not([disabled]):active,
-#task-delete-button:not([disabled]):active {
-  -moz-image-region: rect(18px 108px 36px 90px);
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#delete);
 }
 
 #calendar-goto-today-button {
-  -moz-image-region: rect(0px 54px 18px 36px);
-}
-
-#calendar-goto-today-button:not([disabled]):active {
-  -moz-image-region: rect(18px 54px 36px 36px);
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#today);
 }
 
 #calendar-print-button,
 #task-print-button {
-  -moz-image-region: rect(0px 126px 18px 108px);
-}
-
-#calendar-print-button:not([disabled]):active,
-#task-print-button:not([disabled]):active {
-  -moz-image-region: rect(18px 126px 36px 108px);
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#print);
 }
 
 #calendar-unifinder-button {
-  -moz-image-region: rect(0px 144px 18px 126px);
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#find);
+}
+
+toolbar[brighttext] #lightning-button-calendar {
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#calendar-tab-inverted);
+}
+
+toolbar[brighttext] #lightning-button-tasks {
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#task-tab-inverted);
 }
 
-#calendar-unifinder-button:not([disabled]):active,
-#calendar-unifinder-button[checked="true"] {
-  -moz-image-region: rect(18px 144px 36px 126px);
+toolbar[brighttext] #calendar-synchronize-button,
+toolbar[brighttext] #task-synchronize-button {
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#synchronize-inverted);
 }
 
-#extractEventButton,
-#hdrExtractEventButton {
-  list-style-image: url(chrome://calendar/skin/toolbar.png);
-  -moz-image-region: rect(0px 36px 18px 18px);
+toolbar[brighttext] #extractEventButton,
+toolbar[brighttext] #task-newevent-button,
+toolbar[brighttext] #hdrExtractEventButton,
+toolbar[brighttext] #calendar-newevent-button {
+    list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#newevent-inverted);
 }
 
-#extractEventButton:not([disabled]):active,
-#hdrExtractEventButton:not([disabled]):active {
-  -moz-image-region: rect(18px 36px 36px 18px);
+toolbar[brighttext] #extractTaskButton,
+toolbar[brighttext] #task-newtask-button,
+toolbar[brighttext] #hdrExtractTaskButton,
+toolbar[brighttext] #calendar-newtask-button {
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#newtask-inverted);
+}
+
+toolbar[brighttext] #calendar-edit-button,
+toolbar[brighttext] #task-edit-button {
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#edit-inverted);
 }
 
-#extractTaskButton,
-#hdrExtractTaskButton {
-  list-style-image: url(chrome://calendar/skin/toolbar.png);
-  -moz-image-region: rect(0px 72px 18px 54px);
+toolbar[brighttext] #calendar-delete-button,
+toolbar[brighttext] #task-delete-button {
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#delete-inverted);
+}
+
+toolbar[brighttext] #calendar-goto-today-button {
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#today-inverted);
 }
 
-#extractTaskButton:not([disabled]):active,
-#hdrExtractTaskButton:not([disabled]):active {
-  -moz-image-region: rect(18px 72px 36px 54px);
+toolbar[brighttext] #calendar-print-button,
+toolbar[brighttext] #task-print-button {
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#print-inverted);
 }
+
+toolbar[brighttext] #calendar-unifinder-button {
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#find-inverted);
+}
--- a/calendar/lightning/themes/osx/lightning.css
+++ b/calendar/lightning/themes/osx/lightning.css
@@ -19,31 +19,21 @@ radio[pane=paneLightning] {
     list-style-image: url("chrome://calendar/skin/cal-icon32.png");
     -moz-margin-end: 8px;
 }
 
 /* ::::: tabs ::::: */
 
 /* ::: new tab buttons ::: */
 #calendar-tab-button {
-    list-style-image: url(chrome://lightning-common/skin/mode-switch-icons.png);
-    -moz-image-region: rect(0px 98px 18px 80px);
-}
-
-#calendar-tab-button:not([disabled]):active {
-    -moz-image-region: rect(18px 98px 36px 80px);
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#calendar-tab);
 }
 
 #task-tab-button {
-    list-style-image: url(chrome://lightning-common/skin/mode-switch-icons.png);
-    -moz-image-region: rect(0px 116px 18px 98px);
-}
-
-#task-tab-button:not([disabled]):active {
-    -moz-image-region: rect(18px 116px 36px 98px);
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#task-tab);
 }
 
 /* ::: tab icons ::: */
 .icon-holder[type="calendar"],
 .tabmail-tab[type="calendar"] {
     list-style-image: url(chrome://lightning-common/skin/mode-switch-icons.png);
     -moz-image-region: rect(0px 64px 16px 48px);
 }
@@ -59,37 +49,40 @@ radio[pane=paneLightning] {
     -moz-image-region: rect(0px 80px 16px 64px);
 }
 
 .icon-holder[type="tasks"][selected="true"],
 .tabmail-tab[type="tasks"][selected="true"] {
     -moz-image-region: rect(16px 80px 32px 64px);
 }
 
-
-
 /* Lightning sidebar background in calendar and task mode */
 #ltnSidebar {
-  background-color: -moz-field;  
+  background-color: -moz-field;
 }
 
 /* Write button */
 #newMsgButton-mail-menuitem {
-  list-style-image: url(chrome://calendar/skin/toolbar.png);
-  -moz-image-region: rect(18px 90px 36px 72px);
+    list-style-image: url(chrome://messenger/skin/icons/mail-toolbar.svg#newmsg-osx);
 }
 
 #newMsgButton-calendar-menuitem {
-  list-style-image: url(chrome://calendar/skin/toolbar.png);
-  -moz-image-region: rect(18px 36px 36px 18px);
+    list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#calendar-tab-osx);
 }
 
 #newMsgButton-task-menuitem {
-  list-style-image: url(chrome://calendar/skin/toolbar.png);
-  -moz-image-region: rect(18px 72px 36px 54px);
+    list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#task-tab-osx);
+}
+
+#newMsgButton-mail-menuitem > .menu-iconic-left > .menu-iconic-icon,
+#newMsgButton-calendar-menuitem > .menu-iconic-left > .menu-iconic-icon,
+#newMsgButton-task-menuitem > .menu-iconic-left > .menu-iconic-icon {
+  width: 18px;
+  height: 18px;
+  margin: -1px;
 }
 
 /* Today pane button in status bar */
 #calendar-status-todaypane-button,
 #calendar-status-todaypane-button[checked="true"] {
   min-width: 0;
   min-height: 0;
   margin: 1px 0 0;
@@ -116,48 +109,42 @@ radio[pane=paneLightning] {
   border-color: hsla(0, 0%, 0%, .3);
   box-shadow: 0 1px 0 hsla(0, 0%, 100%, .5),
               0 1px 0 hsla(0, 0%, 0%, .05) inset,
               0 1px 1px hsla(0, 0%, 0%, .2) inset;
   transition-duration: 10ms;
 }
 
 #calendar-status-todaypane-button > stack > .toolbarbutton-icon-begin {
-  list-style-image: url(chrome://calendar/skin/toolbar.png);
-  -moz-image-region: rect(1px 161px 18px 145px);
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#pane);
+  -moz-image-region: rect(0 18px 18px 0);
 }
 
-#calendar-status-todaypane-button:active > stack > .toolbarbutton-icon-begin,
-#calendar-status-todaypane-button[checked="true"] > stack > .toolbarbutton-icon-begin {
-  -moz-image-region: rect(19px 161px 36px 145px);
+#calendar-status-todaypane-button:-moz-lwtheme-brighttext > stack >
+  .toolbarbutton-icon-begin {
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#pane-inverted);
 }
 
 #calendar-status-todaypane-button > stack > .toolbarbutton-day-text {
-  text-align: center;
-  margin:4px 0 -4px 0;
-  font-size: 7pt;
-  font-family: Arial, Helvetica, sans-serif;
-  font-weight: bold;
-  text-shadow: none;
+  -moz-margin-end: 4px;
   color: #0969B2;
-  background-color: transparent;
 }
 
 /* shift the today pane button label up by one pixel to center it */
 #calendar-status-todaypane-button > .toolbarbutton-text {
   margin: 0 6px 1px !important;
 }
 
 #calendar-status-todaypane-button > .toolbarbutton-icon-end {
   list-style-image: url(chrome://global/skin/icons/collapse.png);
 }
 
 #calendar-status-todaypane-button[checked="true"] > .toolbarbutton-icon-end {
   list-style-image: url(chrome://global/skin/icons/expand.png);
-}  
+}
 
 #calMinimonthBox {
     margin-top: 3px;
 }
 
 .calendar-splitter {
   height: 8px !important;
   min-height: 8px;
@@ -203,83 +190,40 @@ radio[pane=paneLightning] {
 #ltnSidebar {
   -moz-border-end: 1px solid #8B8B8B;
   -moz-margin-end: -3px !important;
 }
 
 /* ::: imip button icons ::: */
 .imipAcceptRecurrencesButton,
 .imipAcceptButton {
-  list-style-image: url(chrome://lightning/skin/imip.png);
-  -moz-image-region: rect(0px 16px 16px 0px);
-}
-
-.imipAcceptRecurrencesButton:active,
-.imipAcceptButton:active {
-  -moz-image-region: rect(16px 16px 32px 0px);
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#complete);
 }
 
 .imipDeclineRecurrencesButton,
 .imipDeclineButton {
-  list-style-image: url(chrome://lightning/skin/imip.png);
-  -moz-image-region: rect(0px 32px 16px 16px);
-}
-
-.imipDeclineRecurrencesButton:active,
-.imipDeclineButton:active {
-  -moz-image-region: rect(16px 32px 32px 16px);
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#decline);
 }
 
 .imipTentativeRecurrencesButton,
 .imipTentativeButton {
-  list-style-image: url(chrome://lightning/skin/imip.png);
-  -moz-image-region: rect(0px 48px 16px 32px);
-}
-
-.imipTentativeRecurrencesButton:active,
-.imipTentativeButton:active {
-  -moz-image-region: rect(16px 48px 32px 32px);
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#tentative);
 }
 
 .imipDetailsButton {
-  list-style-image: url(chrome://calendar/skin/toolbar.png);
-  -moz-image-region: rect(1px 143px 17px 126px);
-}
-
-.imipDetailsButton:active {
-  -moz-image-region: rect(19px 143px 35px 126px);
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#find);
 }
 
 .imipAddButton {
-  list-style-image: url(chrome://calendar/skin/toolbar.png);
-  -moz-image-region: rect(2px 35px 18px 17px);
-}
-
-.imipAddButton:active {
-  -moz-image-region: rect(20px 35px 36px 17px);
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#newevent);
 }
 
 .imipUpdateButton {
-  list-style-image: url(chrome://calendar/skin/toolbar.png);
-  -moz-image-region: rect(1px 17px 17px 1px);
-}
-
-.imipUpdateButton:active {
-  -moz-image-region: rect(19px 17px 35px 1px);
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#synchronize);
 }
 
 .imipDeleteButton {
-  list-style-image: url(chrome://calendar/skin/toolbar.png);
-  -moz-image-region: rect(1px 107px 17px 91px);
-}
-
-.imipDeleteButton:active {
-  -moz-image-region: rect(19px 107px 35px 91px);
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#delete);
 }
 
 .imipReconfirmButton {
-  list-style-image: url(chrome://calendar/skin/tasks-actions.png);
-  -moz-image-region: rect(1px 53px 17px 37px);
+  list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#priority);
 }
-
-.imipReconfirmButton:active {
-  /*currently no separate image available*/
-}
--- a/calendar/lightning/themes/windows/lightning-toolbar.css
+++ b/calendar/lightning/themes/windows/lightning-toolbar.css
@@ -4,8 +4,313 @@
 
 @import url(chrome://calendar-windows/skin/lightning-toolbar.css);
 
 #calendar-toolbar2,
 #task-toolbar2 {
   padding: 1px 0;
   border-top-width: 0;
 }
+
+@media (-moz-windows-glass) {
+  #calendar-toolbox:not(:-moz-lwtheme) {
+    border-bottom-color: #AABCCF;
+  }
+}
+
+@media (-moz-os-version: windows-xp) {
+  #lightning-button-calendar {
+      list-style-image: url(chrome://lightning-common/skin/mode-switch-icons.png);
+      -moz-image-region: rect(0px 24px 24px 0px);
+  }
+
+  #lightning-button-calendar[disabled] {
+      -moz-image-region: rect(48px 24px 72px 0px);
+  }
+  toolbar[iconsize="small"] #lightning-button-calendar {
+      -moz-image-region: rect(0px 64px 16px 48px);
+  }
+
+  toolbar[iconsize="small"] #lightning-button-calendar[disabled] {
+      -moz-image-region: rect(32px 64px 48px 48px);
+  }
+
+  /* Lightning "Tasks" Toolbarbutton */
+  #lightning-button-tasks {
+      list-style-image: url(chrome://lightning-common/skin/mode-switch-icons.png);
+      -moz-image-region: rect(0px 48px 24px 24px);
+  }
+
+  #lightning-button-tasks[disabled] {
+      -moz-image-region: rect(48px 48px 72px 24px);
+  }
+
+  toolbar[iconsize="small"] #lightning-button-tasks {
+      -moz-image-region: rect(0px 80px 16px 64px);
+  }
+  toolbar[iconsize="small"] #lightning-button-tasks[disabled] {
+      -moz-image-region: rect(32px 80px 48px 64px);
+  }
+
+  /* Toolbar buttons */
+
+  .calbar-toolbarbutton-1 {
+    list-style-image: url(chrome://calendar/skin/toolbar-large.png);
+  }
+
+  toolbar[iconsize="small"] .calbar-toolbarbutton-1 {
+    list-style-image: url(chrome://calendar/skin/toolbar-small.png);
+  }
+
+  #calendar-synchronize-button,
+  #task-synchronize-button {
+    -moz-image-region: rect(0px 648px 24px 624px);
+  }
+
+  #calendar-synchronize-button[disabled],
+  #task-synchronize-button[disabled] {
+    -moz-image-region: rect(48px 648px 72px 624px);
+  }
+
+  toolbar[iconsize="small"] #calendar-synchronize-button,
+  toolbar[iconsize="small"] #task-synchronize-button {
+    -moz-image-region: rect(0px 432px 16px 416px);
+  }
+
+  toolbar[iconsize="small"] #calendar-synchronize-button[disabled],
+  toolbar[iconsize="small"] #task-synchronize-button[disabled] {
+    -moz-image-region: rect(32px 432px 48px 416px);
+  }
+
+  #calendar-newevent-button,
+  #task-newevent-button {
+    -moz-image-region: rect(0px 24px 24px 0px);
+  }
+
+  #calendar-newevent-button[disabled],
+  #task-newevent-button[disabled] {
+    -moz-image-region: rect(48px 24px 72px 0px);
+  }
+
+  toolbar[iconsize="small"] #calendar-newevent-button,
+  toolbar[iconsize="small"] #task-newevent-button {
+    -moz-image-region: rect(0px 16px 16px 0px);
+  }
+
+  toolbar[iconsize="small"] #calendar-newevent-button[disabled],
+  toolbar[iconsize="small"] #task-newevent-button[disabled] {
+    -moz-image-region: rect(32px 16px 48px 0px);
+  }
+
+  #calendar-newtask-button,
+  #task-newtask-button {
+    -moz-image-region: rect(0px 384px 24px 360px);
+  }
+
+  #calendar-newtask-button[disabled],
+  #task-newtask-button[disabled] {
+    -moz-image-region: rect(48px 384px 72px 360px);
+  }
+
+  toolbar[iconsize="small"] #calendar-newtask-button,
+  toolbar[iconsize="small"] #task-newtask-button {
+    -moz-image-region: rect(0px 256px 16px 240px);
+  }
+
+  toolbar[iconsize="small"] #calendar-newtask-button[disabled],
+  toolbar[iconsize="small"] #task-newtask-button[disabled] {
+    -moz-image-region: rect(32px 256px 48px 240px);
+  }
+
+  #calendar-edit-button,
+  #task-edit-button {
+    -moz-image-region: rect(0px 48px 24px 24px);
+  }
+
+  #calendar-edit-button[disabled],
+  #task-edit-button[disabled] {
+    -moz-image-region: rect(48px 48px 72px 24px);
+  }
+
+  toolbar[iconsize="small"] #calendar-edit-button,
+  toolbar[iconsize="small"] #task-edit-button {
+    -moz-image-region: rect(0px 32px 16px 16px);
+  }
+
+  toolbar[iconsize="small"] #calendar-edit-button[disabled],
+  toolbar[iconsize="small"] #task-edit-button[disabled] {
+    -moz-image-region: rect(32px 32px 48px 16px);
+  }
+
+  #calendar-delete-button,
+  #task-delete-button {
+    -moz-image-region: rect(0px 72px 24px 48px);
+  }
+
+  #calendar-delete-button[disabled],
+  #task-delete-button[disabled] {
+    -moz-image-region: rect(48px 72px 72px 48px);
+  }
+
+  toolbar[iconsize="small"] #calendar-delete-button,
+  toolbar[iconsize="small"] #task-delete-button {
+    -moz-image-region: rect(0px 48px 16px 32px);
+  }
+
+  toolbar[iconsize="small"] #calendar-delete-button[disabled],
+  toolbar[iconsize="small"] #task-delete-button[disabled] {
+    -moz-image-region: rect(32px 48px 48px 32px);
+  }
+
+  #calendar-goto-today-button {
+    -moz-image-region: rect(0px 408px 24px 384px);
+  }
+
+  #calendar-goto-today-button[disabled] {
+    -moz-image-region: rect(48px 408px 72px 384px);
+  }
+
+  toolbar[iconsize="small"] #calendar-goto-today-button {
+    -moz-image-region: rect(0px 272px 16px 256px);
+  }
+
+  toolbar[iconsize="small"] #calendar-goto-today-button[disabled] {
+    -moz-image-region: rect(32px 272px 48px 256px);
+  }
+
+  #calendar-print-button,
+  #task-print-button {
+    -moz-image-region: rect(0px 360px 24px 336px);
+  }
+
+  #calendar-print-button[disabled],
+  #task-print-button[disabled] {
+    -moz-image-region: rect(48px 360px 72px 336px);
+  }
+
+  toolbar[iconsize="small"] #calendar-print-button,
+  toolbar[iconsize="small"] #task-print-button {
+    -moz-image-region: rect(0px 240px 16px 224px);
+  }
+
+  toolbar[iconsize="small"] #calendar-print-button[disabled],
+  toolbar[iconsize="small"] #task-print-button[disabled] {
+    -moz-image-region: rect(32px 240px 48px 224px);
+  }
+
+  #calendar-unifinder-button {
+    -moz-image-region: rect(0px 528px 24px 504px);
+  }
+
+  #calendar-unifinder-button[disabled] {
+    -moz-image-region: rect(48px 528px 72px 504px);
+  }
+
+  toolbar[iconsize="small"] #calendar-unifinder-button {
+    -moz-image-region: rect(0px 352px 16px 336px);
+  }
+
+  toolbar[iconsize="small"] #calendar-unifinder-button[disabled] {
+    -moz-image-region: rect(32px 352px 48px 336px);
+  }
+}
+
+@media not all and (-moz-os-version: windows-xp) {
+  #lightning-button-calendar {
+    list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#calendar-tab);
+  }
+
+  #lightning-button-tasks {
+    list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#task-tab);
+  }
+
+  #calendar-synchronize-button,
+  #task-synchronize-button {
+    list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#synchronize);
+  }
+
+  #extractEventButton,
+  #task-newevent-button,
+  #hdrExtractEventButton,
+  #calendar-newevent-button {
+      list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#newevent);
+  }
+
+  #extractTaskButton,
+  #task-newtask-button,
+  #hdrExtractTaskButton,
+  #calendar-newtask-button {
+    list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#newtask);
+  }
+
+  #calendar-edit-button,
+  #task-edit-button {
+    list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#edit);
+  }
+
+  #calendar-delete-button,
+  #task-delete-button {
+    list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#delete);
+  }
+
+  #calendar-goto-today-button {
+    list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#today);
+  }
+
+  #calendar-print-button,
+  #task-print-button {
+    list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#print);
+  }
+
+  #calendar-unifinder-button {
+    list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#find);
+  }
+
+  toolbar[brighttext] #lightning-button-calendar {
+    list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#calendar-tab-inverted);
+  }
+
+  toolbar[brighttext] #lightning-button-tasks {
+    list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#task-tab-inverted);
+  }
+
+  toolbar[brighttext] #calendar-synchronize-button,
+  toolbar[brighttext] #task-synchronize-button {
+    list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#synchronize-inverted);
+  }
+
+  toolbar[brighttext] #extractEventButton,
+  toolbar[brighttext] #task-newevent-button,
+  toolbar[brighttext] #hdrExtractEventButton,
+  toolbar[brighttext] #calendar-newevent-button {
+      list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#newevent-inverted);
+  }
+
+  toolbar[brighttext] #extractTaskButton,
+  toolbar[brighttext] #task-newtask-button,
+  toolbar[brighttext] #hdrExtractTaskButton,
+  toolbar[brighttext] #calendar-newtask-button {
+    list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#newtask-inverted);
+  }
+
+  toolbar[brighttext] #calendar-edit-button,
+  toolbar[brighttext] #task-edit-button {
+    list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#edit-inverted);
+  }
+
+  toolbar[brighttext] #calendar-delete-button,
+  toolbar[brighttext] #task-delete-button {
+    list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#delete-inverted);
+  }
+
+  toolbar[brighttext] #calendar-goto-today-button {
+    list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#today-inverted);
+  }
+
+  toolbar[brighttext] #calendar-print-button,
+  toolbar[brighttext] #task-print-button {
+    list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#print-inverted);
+  }
+
+  toolbar[brighttext] #calendar-unifinder-button {
+    list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#find-inverted);
+  }
+}
--- a/calendar/lightning/themes/windows/lightning.css
+++ b/calendar/lightning/themes/windows/lightning.css
@@ -26,44 +26,28 @@
 
 /* Calendar list rules */
 #calendar-panel {
     padding-bottom: 5px;
 }
 
 /* Lightning preferences icon */
 radio[pane=paneLightning] {
-    list-style-image: url("chrome://calendar/skin/cal-icon32.png");
+    list-style-image: url(chrome://calendar/skin/cal-icon32.png);
 }
 
 /* iMIP notification bar */
 #imip-bar > image {
-    list-style-image: url("chrome://calendar/skin/cal-icon32.png");
-    -moz-image-region: rect(0px, 32px, 32px, 0px);
+    list-style-image: url(chrome://calendar/skin/cal-icon32.png);
+    -moz-image-region: rect(0 32px 32px 0);
 }
 
 /* Lightning sidebar background in calendar and task mode */
 #ltnSidebar {
-  background-color: -moz-field;  
-}
-
-/* Write button */
-#newMsgButton-mail-menuitem {
-  list-style-image: url(chrome://messenger/skin/icons/mail-toolbar-small.png);
-  -moz-image-region: rect(0px 32px 16px 16px);
-}
-
-#newMsgButton-calendar-menuitem {
-  list-style-image: url(chrome://calendar/skin/toolbar-small.png);
-  -moz-image-region: rect(0px 16px 16px 0px);
-}
-
-#newMsgButton-task-menuitem {
-  list-style-image: url(chrome://calendar/skin/toolbar-small.png);
-  -moz-image-region: rect(0px 256px 16px 240px);
+  background-color: -moz-field;
 }
 
 /* Today pane button in status bar */
 #calendar-status-todaypane-button,
 #calendar-status-todaypane-button[checked="true"] {
   min-width: 0;
   min-height: 0;
   margin: 1px 0 0;
@@ -75,42 +59,223 @@ radio[pane=paneLightning] {
 
 #calendar-status-todaypane-button:hover {
   border: 1px solid ThreeDShadow;
   background-color: transparent !important;
   background-image: none;
   -moz-appearance: none;
 }
 
-#calendar-status-todaypane-button > stack > .toolbarbutton-icon-begin {
-  list-style-image: url(chrome://calendar/skin/toolbar-small.png);
-  -moz-image-region: rect(0px 336px 16px 320px);
-}
-
 #calendar-status-todaypane-button > stack > .toolbarbutton-day-text {
-  text-align: center;
-  -moz-margin-start: 0px;
-  margin-top: 4px;
-  margin-bottom: -4px;
-  font-size: 7pt;
-  font-family: Arial, Helvetica, sans-serif;
-  font-weight: bold;
-  text-shadow: none;
   color: DarkBlue;
-  background-color: transparent;
 }
 
 /* shift the today pane button label up by one pixel to center it */
 #calendar-status-todaypane-button > .toolbarbutton-text {
   margin: 0 0 1px !important;
 }
 
-#calendar-status-todaypane-button > .toolbarbutton-icon-end {
-  list-style-image: url(chrome://global/skin/icons/collapse.png);
-}
-
-#calendar-status-todaypane-button[checked="true"] > .toolbarbutton-icon-end {
-  list-style-image: url(chrome://global/skin/icons/expand.png);
-}
-
 #calMinimonthBox {
     margin-top: 3px;
 }
+
+@media (-moz-os-version: windows-xp) {
+  #newMsgButton-mail-menuitem {
+    list-style-image: url(chrome://messenger/skin/icons/mail-toolbar-small.png);
+    -moz-image-region: rect(0 32px 16px 16px);
+  }
+
+  #newMsgButton-calendar-menuitem {
+    list-style-image: url(chrome://calendar/skin/toolbar-small.png);
+    -moz-image-region: rect(0 16px 16px 0);
+  }
+
+  #newMsgButton-task-menuitem {
+    list-style-image: url(chrome://calendar/skin/toolbar-small.png);
+    -moz-image-region: rect(0 256px 16px 240px);
+  }
+
+  #calendar-status-todaypane-button > stack > .toolbarbutton-icon-begin {
+    list-style-image: url(chrome://calendar/skin/toolbar-small.png);
+    -moz-image-region: rect(0 336px 16px 320px);
+  }
+
+  #calendar-status-todaypane-button > .toolbarbutton-icon-end {
+    list-style-image: url(chrome://global/skin/icons/collapse.png);
+  }
+
+  #calendar-status-todaypane-button[checked="true"] > .toolbarbutton-icon-end {
+    list-style-image: url(chrome://global/skin/icons/expand.png);
+  }
+
+  /* ::: new tab buttons ::: */
+  #calendar-tab-button {
+    list-style-image: url(chrome://lightning-common/skin/mode-switch-icons.png);
+    -moz-image-region: rect(0 64px 16px 48px);
+  }
+
+  #calendar-tab-button[disabled] {
+    -moz-image-region: rect(32px 64px 48px 48px);
+  }
+
+  #task-tab-button {
+    list-style-image: url(chrome://lightning-common/skin/mode-switch-icons.png);
+    -moz-image-region: rect(0 80px 16px 64px);
+  }
+
+  #task-tab-button[disabled] {
+    -moz-image-region: rect(32px 80px 48px 64px);
+  }
+
+  /* ::: tab icons ::: */
+  .icon-holder[type="calendar"],
+  .tabmail-tab[type="calendar"] {
+    list-style-image: url(chrome://lightning-common/skin/mode-switch-icons.png);
+    -moz-image-region: rect(0 64px 16px 48px);
+  }
+
+  .icon-holder[type="tasks"],
+  .tabmail-tab[type="tasks"] {
+    list-style-image: url(chrome://lightning-common/skin/mode-switch-icons.png);
+    -moz-image-region: rect(0 80px 16px 64px);
+  }
+
+  /* ::: imip button icons ::: */
+  .imipAcceptButton,
+  .imipAcceptRecurrencesButton {
+    list-style-image: url(chrome://lightning/skin/imip.png);
+    -moz-image-region: rect(0 16px 16px 0);
+  }
+
+  .imipDeclineButton,
+  .imipDeclineRecurrencesButton {
+    list-style-image: url(chrome://lightning/skin/imip.png);
+    -moz-image-region: rect(0 32px 16px 16px);
+  }
+
+  .imipTentativeButton,
+  .imipTentativeRecurrencesButton {
+    list-style-image: url(chrome://lightning/skin/imip.png);
+    -moz-image-region: rect(0 48px 16px 32px);
+  }
+
+  .imipAddButton {
+    list-style-image: url(chrome://calendar/skin/toolbar-small.png);
+    -moz-image-region: rect(0 16px 16px 0);
+  }
+
+  .imipUpdateButton {
+    list-style-image: url(chrome://calendar/skin/toolbar-small.png);
+    -moz-image-region: rect(0 432px 16px 416px);
+  }
+
+  .imipDetailsButton {
+    list-style-image: url(chrome://calendar/skin/toolbar-small.png);
+    -moz-image-region: rect(0 352px 16px 336px);
+  }
+
+  .imipDeleteButton {
+    list-style-image: url(chrome://calendar/skin/toolbar-small.png);
+    -moz-image-region: rect(0 48px 16px 32px);
+  }
+
+  .imipReconfirmButton {
+    list-style-image: url(chrome://calendar/skin/tasks-actions.png);
+    -moz-image-region: rect(0 48px 16px 32px);
+  }
+}
+
+@media not all and (-moz-os-version: windows-xp) {
+  #calendar-tab-button,
+  #newMsgButton-calendar-menuitem {
+    list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#calendar-tab);
+    -moz-image-region: auto;
+  }
+
+  #task-tab-button,
+  #newMsgButton-task-menuitem {
+    list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#task-tab);
+    -moz-image-region: auto;
+  }
+
+  #newMsgButton-mail-menuitem {
+    list-style-image: url(chrome://messenger/skin/icons/mail-toolbar.svg#newmsg);
+  }
+
+  #tabs-toolbar[brighttext] #calendar-tab-button {
+    list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#calendar-tab-inverted);
+  }
+
+  #tabs-toolbar[brighttext] #task-tab-button {
+    list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#task-tab-inverted);
+  }
+
+  #calendar-status-todaypane-button > stack > .toolbarbutton-icon-begin {
+    list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#pane);
+    -moz-image-region: rect(0 18px 18px 0);
+  }
+
+  #calendar-status-todaypane-button:-moz-lwtheme-brighttext > stack >
+    .toolbarbutton-icon-begin {
+    list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#pane-inverted);
+  }
+  /* compensate the 18px icon height */
+  #calendar-status-todaypane-button > stack > .toolbarbutton-icon-begin {
+    margin-top: -1px;
+    margin-bottom: -1px;
+  }
+
+  .icon-holder[type="calendar"],
+  .tabmail-tab[type="calendar"] {
+    list-style-image: url(chrome://lightning/skin/mode-switch-icons-aero.png);
+    -moz-image-region: rect(16px 16px 32px 0);
+  }
+
+  .icon-holder[type="tasks"],
+  .tabmail-tab[type="tasks"] {
+    list-style-image: url(chrome://lightning/skin/mode-switch-icons-aero.png);
+    -moz-image-region: rect(16px 32px 32px 16px);
+  }
+
+  /* ::: imip button icons ::: */
+  .imipAcceptButton,
+  .imipAcceptRecurrencesButton {
+    list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#complete);
+  }
+
+  .imipDeclineButton,
+  .imipDeclineRecurrencesButton {
+    list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#decline);
+  }
+
+  .imipTentativeButton,
+  .imipTentativeRecurrencesButton {
+    list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#tentative);
+  }
+
+  .imipAddButton {
+    list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#newevent);
+  }
+
+  .imipUpdateButton {
+    list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#synchronize);
+  }
+
+  .imipDetailsButton {
+    list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#find);
+  }
+
+  .imipDeleteButton {
+    list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#delete);
+  }
+
+  .imipReconfirmButton {
+    list-style-image: url(chrome://calendar-common/skin/calendar-toolbar.svg#priority);
+  }
+
+  #newMsgButton-mail-menuitem > .menu-iconic-left > .menu-iconic-icon,
+  #newMsgButton-calendar-menuitem > .menu-iconic-left > .menu-iconic-icon,
+  #newMsgButton-task-menuitem > .menu-iconic-left > .menu-iconic-icon {
+    width: 18px;
+    height: 18px;
+    margin: -1px;
+  }
+}