diff --git a/collects/drracket/private/syncheck/gui.rkt b/collects/drracket/private/syncheck/gui.rkt
index 45f84ed7cb..92a78a2970 100644
--- a/collects/drracket/private/syncheck/gui.rkt
+++ b/collects/drracket/private/syncheck/gui.rkt
@@ -178,6 +178,7 @@ If the namespace does not, they are colored the unbound color.
(new switchable-button%
(label (string-constant check-syntax))
(bitmap syncheck-bitmap)
+ (alternate-bitmap syncheck-small-bitmap)
(parent parent)
(callback (λ (button) (send frame syncheck:button-callback)))))
'drracket:syncheck)
@@ -2046,6 +2047,7 @@ If the namespace does not, they are colored the unbound color.
(new switchable-button%
(label (string-constant check-syntax))
(bitmap syncheck-bitmap)
+ (alternate-bitmap syncheck-small-bitmap)
(parent check-syntax-button-parent-panel)
(callback (λ (button) (syncheck:button-callback)))))
(inherit register-toolbar-button)
diff --git a/collects/drracket/private/unit.rkt b/collects/drracket/private/unit.rkt
index 9343234e9a..301fd5bd58 100644
--- a/collects/drracket/private/unit.rkt
+++ b/collects/drracket/private/unit.rkt
@@ -38,6 +38,7 @@ module browser threading seems wrong.
"local-member-names.rkt"
"eval-helpers.rkt"
(prefix-in drracket:arrow: "../arrow.rkt")
+ (prefix-in icons: icons)
mred
(prefix-in mred: mred)
@@ -385,8 +386,9 @@ module browser threading seems wrong.
frame
program-filename)))])))
- (define execute-bitmap (make-object bitmap% (collection-file-path "run.png" "icons") 'png/mask))
- (define break-bitmap (make-object bitmap% (collection-file-path "break.png" "icons") 'png/mask))
+ (define execute-bitmap (icons:go-icon 'green (icons:toolbar-icon-height)))
+ (define break-bitmap (icons:stop-icon 'red (icons:toolbar-icon-height)))
+
(define save-bitmap (make-object bitmap% (collection-file-path "save.png" "icons") 'png/mask))
(define-values (get-program-editor-mixin add-to-program-editor-mixin)
diff --git a/collects/drracket/syncheck-drracket-button.rkt b/collects/drracket/syncheck-drracket-button.rkt
index b12a742b55..2b28e6d802 100644
--- a/collects/drracket/syncheck-drracket-button.rkt
+++ b/collects/drracket/syncheck-drracket-button.rkt
@@ -1,14 +1,17 @@
#lang racket/base
(require racket/class
racket/gui/base
- string-constants/string-constant)
+ string-constants/string-constant
+ icons)
(provide syncheck-drracket-button
syncheck-bitmap
+ syncheck-small-bitmap
syncheck:button-callback)
(define-local-member-name syncheck:button-callback)
-(define syncheck-bitmap (make-object bitmap% (collection-file-path "syncheck.png" "icons") 'png/mask))
+(define syncheck-bitmap (check-syntax-icon (toolbar-icon-height)))
+(define syncheck-small-bitmap (check-syntax-small-icon (toolbar-icon-height)))
(define syncheck-drracket-button
(list
diff --git a/collects/gui-debugger/debug-tool.rkt b/collects/gui-debugger/debug-tool.rkt
index 45006ec6a6..47442ea5b6 100644
--- a/collects/gui-debugger/debug-tool.rkt
+++ b/collects/gui-debugger/debug-tool.rkt
@@ -14,7 +14,8 @@
"load-sandbox.rkt"
framework
string-constants
- lang/debugger-language-interface)
+ lang/debugger-language-interface
+ icons)
(provide tool@)
@@ -1080,10 +1081,7 @@
(super-new)))
- (define debug-bitmap
- (make-object bitmap%
- (build-path (collection-path "gui-debugger" "icons") "clanbomber-16x16.png")
- 'png/mask))
+ (define debug-bitmap (step-icon 'green (toolbar-icon-height)))
(define make-pause-label
(bitmap-label-maker
diff --git a/collects/icons/info.rkt b/collects/icons/info.rkt
new file mode 100644
index 0000000000..112d511a53
--- /dev/null
+++ b/collects/icons/info.rkt
@@ -0,0 +1,5 @@
+#lang setup/infotab
+
+(define scribblings '(["scribblings/icons.scrbl" () (gui-library)]))
+
+(define compile-omit-paths '("tests" "private/svg"))
diff --git a/collects/icons/main.rkt b/collects/icons/main.rkt
new file mode 100644
index 0000000000..402a32fd08
--- /dev/null
+++ b/collects/icons/main.rkt
@@ -0,0 +1,62 @@
+#lang racket/base
+
+(require unstable/latent-contract
+ "private/svg.rkt"
+ "private/utils.rkt")
+
+(provide (activate-contract-out
+ icon-colors
+ icon-color/c
+ icon-styles
+ icon-style/c
+ toolbar-icon-height
+ racket-icon-style
+ icon->pict
+ pict->icon
+ load-icon-pict
+ load-icon
+ format-icon-name
+ icon-categories
+ icon-names
+
+ go-icon-pict
+ bar-icon-pict
+ back-icon-pict
+ stop-icon-pict
+ step-icon-pict
+ step-back-icon-pict
+ continue-icon-pict
+ continue-back-icon-pict
+ fast-forward-icon-pict
+ rewind-icon-pict
+ pause-icon-pict
+ stop-sign-icon-pict
+ check-icon-pict
+ magnifying-glass-icon-pict
+ magnifying-glass-left-icon-pict
+ stop-signs-icon-pict
+ macro-stepper-icon-pict
+ check-syntax-icon-pict
+ check-syntax-small-icon-pict
+ plt-logo-pict
+
+ go-icon
+ bar-icon
+ back-icon
+ stop-icon
+ step-icon
+ step-back-icon
+ continue-icon
+ continue-back-icon
+ fast-forward-icon
+ rewind-icon
+ pause-icon
+ stop-sign-icon
+ check-icon
+ magnifying-glass-icon
+ magnifying-glass-left-icon
+ stop-signs-icon
+ macro-stepper-icon
+ check-syntax-icon
+ check-syntax-small-icon
+ plt-logo))
diff --git a/collects/icons/private/doc.rkt b/collects/icons/private/doc.rkt
new file mode 100644
index 0000000000..7dc8654ab3
--- /dev/null
+++ b/collects/icons/private/doc.rkt
@@ -0,0 +1,9 @@
+#lang racket/base
+
+(require unstable/latent-contract/defthing
+ "svg.rkt"
+ "utils.rkt")
+
+(provide (only-doc-out
+ (combine-out (all-from-out "svg.rkt")
+ (all-from-out "utils.rkt"))))
diff --git a/collects/icons/private/svg.rkt b/collects/icons/private/svg.rkt
new file mode 100644
index 0000000000..93c47e0d45
--- /dev/null
+++ b/collects/icons/private/svg.rkt
@@ -0,0 +1,227 @@
+#lang racket/base
+
+(require racket/class racket/draw racket/list
+ racket/contract
+ unstable/latent-contract/defthing
+ (for-syntax racket/base
+ racket/syntax)
+ "utils.rkt"
+ slideshow/pict)
+
+(provide (all-defined-out))
+
+(defthing icon-styles (listof symbol?) #:document-value '(diffuse shiny))
+(defcontract icon-style/c (or/c 'diffuse 'shiny))
+
+(define weekend?
+ (let* ([date (seconds->date (current-seconds))]
+ [dow (date-week-day date)])
+ (or (= dow 6) (= dow 0))))
+
+(defparam toolbar-icon-height (>/c 0) 16)
+(defparam racket-icon-style (or/c 'diffuse 'shiny) (if weekend? 'shiny 'diffuse))
+
+(defproc (icon->pict [icon (is-a?/c bitmap%)]) pict?
+ (bitmap icon))
+
+(defproc (pict->icon [p pict?]) (is-a?/c bitmap%)
+ (define w (pict-width p))
+ (define h (pict-height p))
+ (define bm (make-bitmap (max 1 (inexact->exact (ceiling w)))
+ (max 1 (inexact->exact (ceiling h)))))
+ (define dc (make-object bitmap-dc% bm))
+ (send dc set-smoothing 'smoothed)
+ (draw-pict p dc 0 0)
+ bm)
+
+(defproc (load-icon-pict [category string?] [name string?] [height (>=/c 0)]) pict?
+ (define hs (icon-category-heights category))
+ (define icon-height
+ (let ([h (for/first ([h (in-list hs)] #:when (height . <= . h)) h)])
+ (if h h (last hs))))
+ (define icon
+ (make-object bitmap%
+ (build-path svg-icons-base-path (format "~a/~a/~a.png" category icon-height name))
+ 'png/alpha))
+ (scale (icon->pict icon) (/ height icon-height)))
+
+(defproc (load-icon [category string?] [name string?] [height (>=/c 0)]) (is-a?/c bitmap%)
+ (pict->icon (load-icon-pict category name height)))
+
+(defproc (format-icon-name [name string?] [color icon-color/c]
+ [style (or/c icon-style/c #f) (racket-icon-style)]) string?
+ (cond [(and color style) (format "~a/~a-~a" color name style)]
+ [color (format "~a/~a" color name)]
+ [style (format "~a-~a" name style)]
+ [else (format "~a" name)]))
+
+(defproc (icon-categories) (listof string?)
+ (remove-duplicates
+ (let loop ([dirs empty] [res empty])
+ (define dir (apply build-path svg-icons-base-path dirs))
+ (define files (directory-list dir))
+ (append*
+ (for/list ([file (in-list files)])
+ (define file-path (build-path dir file))
+ (cond [(exact-integer? (string->number (path->string file)))
+ res]
+ [(directory-exists? file-path)
+ (define subdirs (append dirs (list file)))
+ (loop subdirs (cons (path->string (apply build-path subdirs)) res))]
+ [else
+ empty]))))))
+
+(defproc (icon-names [category string?]) (listof string?)
+ (define files
+ (filter svg-file? (directory-list (build-path svg-icons-base-path category))))
+ (for/list ([file (in-list files)])
+ (define-values (base-dir dir-path _) (split-path file))
+ (path->string (path-replace-suffix dir-path ""))))
+
+;; ===================================================================================================
+;; Common icon pict contructors
+
+(defproc (go-icon-pict [color icon-color/c] [height (>=/c 0)]
+ [style icon-style/c (racket-icon-style)]) pict?
+ (load-icon-pict "run" (format-icon-name "go" color style) height))
+
+(defproc (bar-icon-pict [color icon-color/c] [height (>=/c 0)]
+ [style icon-style/c (racket-icon-style)]) pict?
+ (load-icon-pict "run" (format-icon-name "bar" color style) height))
+
+(defproc (back-icon-pict [color icon-color/c] [height (>=/c 0)]
+ [style icon-style/c (racket-icon-style)]) pict?
+ (load-icon-pict "run" (format-icon-name "back" color style) height))
+
+(defproc (stop-icon-pict [color icon-color/c] [height (>=/c 0)]
+ [style icon-style/c (racket-icon-style)]) pict?
+ (load-icon-pict "run" (format-icon-name "stop" color style) height))
+
+(defproc (step-icon-pict [color icon-color/c] [height (>=/c 0)]
+ [style icon-style/c (racket-icon-style)]) pict?
+ (hc-append (go-icon-pict color height style)
+ (bar-icon-pict color height style)))
+
+(defproc (step-back-icon-pict [color icon-color/c] [height (>=/c 0)]
+ [style icon-style/c (racket-icon-style)]) pict?
+ (hc-append (bar-icon-pict color height style)
+ (back-icon-pict color height style)))
+
+(defproc (continue-icon-pict [color icon-color/c] [height (>=/c 0)]
+ [style icon-style/c (racket-icon-style)]) pict?
+ (hc-append (bar-icon-pict color height style)
+ (go-icon-pict color height style)))
+
+(defproc (continue-back-icon-pict [color icon-color/c] [height (>=/c 0)]
+ [style icon-style/c (racket-icon-style)]) pict?
+ (hc-append (back-icon-pict color height style)
+ (bar-icon-pict color height style)))
+
+(defproc (fast-forward-icon-pict [color icon-color/c] [height (>=/c 0)]
+ [style icon-style/c (racket-icon-style)]) pict?
+ (define go (go-icon-pict color height style))
+ (scale (hc-append go go) 3/4 1))
+
+(defproc (rewind-icon-pict [color icon-color/c] [height (>=/c 0)]
+ [style icon-style/c (racket-icon-style)]) pict?
+ (define back (back-icon-pict color height style))
+ (scale (hc-append back back) 3/4 1))
+
+(defproc (pause-icon-pict [color icon-color/c] [height (>=/c 0)]
+ [style icon-style/c (racket-icon-style)]) pict?
+ (define gap (blank (* 1/16 height)))
+ (define bar (bar-icon-pict color height style))
+ (hc-append gap bar gap bar gap))
+
+(defproc (stop-sign-icon-pict [color icon-color/c] [height (>=/c 0)]
+ [style icon-style/c (racket-icon-style)]) pict?
+ (load-icon-pict "sign" (format-icon-name "stop-sign" color style) height))
+
+(defproc (check-icon-pict [color icon-color/c] [height (>=/c 0)]
+ [style icon-style/c (racket-icon-style)]) pict?
+ (load-icon-pict "check" (format-icon-name "check" color style) height))
+
+(defproc (magnifying-glass-icon-pict [color icon-color/c] [height (>=/c 0)]
+ [style icon-style/c (racket-icon-style)]) pict?
+ (load-icon-pict "misc" (format-icon-name "magnifying-glass" color style) height))
+
+(defproc (magnifying-glass-left-icon-pict [color icon-color/c] [height (>=/c 0)]
+ [style icon-style/c (racket-icon-style)]) pict?
+ (load-icon-pict "misc" (format-icon-name "magnifying-glass-left" color style) height))
+
+;; Icons for tools and other special uses
+
+(defproc (stop-signs-icon-pict [height (>=/c 0)] [style icon-style/c (racket-icon-style)]) pict?
+ (define h (* 2/3 height))
+ (define s1 (inset (stop-sign-icon-pict 'red h style) (* 1/4 h) (* 1/2 h) 0 0))
+ (define s2 (inset (stop-sign-icon-pict 'orange h style) (* 1/8 h) (* 1/4 h) 0 0))
+ (define s3 (stop-sign-icon-pict 'cyan h style))
+ (inset (lt-superimpose s3 s2 s1) (* 1/8 h) 0 (* 1/8 h) 0))
+
+(defproc (macro-stepper-icon-pict [height (>=/c 0)] [style icon-style/c (racket-icon-style)]) pict?
+ (ht-append (load-icon-pict "misc" (format-icon-name "hash-quote" #f style) height)
+ (step-icon-pict 'blue height style)))
+
+(defproc (check-syntax-icon-pict [height (>=/c 0)] [style icon-style/c (racket-icon-style)]) pict?
+ (hb-append
+ (magnifying-glass-left-icon-pict #f (* 7/8 height) style)
+ (check-icon-pict 'green height style)))
+
+(defproc (check-syntax-small-icon-pict [height (>=/c 0)] [style icon-style/c (racket-icon-style)]
+ ) pict?
+ (rb-superimpose
+ (hc-append (check-icon-pict 'green height style)
+ (blank (* 1/4 height)))
+ (magnifying-glass-icon-pict #f (* 3/4 height) style)))
+
+(defproc (plt-logo-pict [height (>=/c 0)] [style icon-style/c (racket-icon-style)]) pict?
+ (load-icon-pict "logo" (format-icon-name "plt-logo" #f style) height))
+
+;; ===================================================================================================
+;; Common icon contructors
+
+(define-syntax (define-wrapped-icon-fun stx)
+ (syntax-case stx ()
+ [(_ f ...)
+ (with-syntax ([(f-pict ...) (map (λ (f) (format-id f "~a-pict" f))
+ (syntax->list #'(f ...)))])
+ (syntax/loc stx
+ (begin (defproc (f [color icon-color/c] [height (>=/c 0)]
+ [style icon-style/c (racket-icon-style)]) (is-a?/c bitmap%)
+ (pict->icon (f-pict color height style)))
+ ...)))]))
+
+(define-syntax (define-wrapped-icon-fun/no-color stx)
+ (syntax-case stx ()
+ [(_ f ...)
+ (with-syntax ([(f-pict ...) (map (λ (f) (format-id f "~a-pict" f))
+ (syntax->list #'(f ...)))])
+ (syntax/loc stx
+ (begin (defproc (f [height (>=/c 0)]
+ [style icon-style/c (racket-icon-style)]) (is-a?/c bitmap%)
+ (pict->icon (f-pict height style)))
+ ...)))]))
+
+(define-wrapped-icon-fun
+ go-icon
+ bar-icon
+ back-icon
+ stop-icon
+ step-icon
+ step-back-icon
+ continue-icon
+ continue-back-icon
+ fast-forward-icon
+ rewind-icon
+ pause-icon
+ stop-sign-icon
+ check-icon
+ magnifying-glass-icon
+ magnifying-glass-left-icon)
+
+(define-wrapped-icon-fun/no-color
+ stop-signs-icon
+ macro-stepper-icon
+ check-syntax-icon
+ check-syntax-small-icon
+ plt-logo)
diff --git a/collects/icons/private/svg/check/16/black/check-diffuse.png b/collects/icons/private/svg/check/16/black/check-diffuse.png
new file mode 100644
index 0000000000..dd5d2f8075
Binary files /dev/null and b/collects/icons/private/svg/check/16/black/check-diffuse.png differ
diff --git a/collects/icons/private/svg/check/16/black/check-shiny.png b/collects/icons/private/svg/check/16/black/check-shiny.png
new file mode 100644
index 0000000000..66bb5cb968
Binary files /dev/null and b/collects/icons/private/svg/check/16/black/check-shiny.png differ
diff --git a/collects/icons/private/svg/check/16/blue/check-diffuse.png b/collects/icons/private/svg/check/16/blue/check-diffuse.png
new file mode 100644
index 0000000000..1458f09a75
Binary files /dev/null and b/collects/icons/private/svg/check/16/blue/check-diffuse.png differ
diff --git a/collects/icons/private/svg/check/16/blue/check-shiny.png b/collects/icons/private/svg/check/16/blue/check-shiny.png
new file mode 100644
index 0000000000..00f12e391d
Binary files /dev/null and b/collects/icons/private/svg/check/16/blue/check-shiny.png differ
diff --git a/collects/icons/private/svg/check/16/check-diffuse.png b/collects/icons/private/svg/check/16/check-diffuse.png
new file mode 100644
index 0000000000..4ad6f0a0fa
Binary files /dev/null and b/collects/icons/private/svg/check/16/check-diffuse.png differ
diff --git a/collects/icons/private/svg/check/16/check-shiny.png b/collects/icons/private/svg/check/16/check-shiny.png
new file mode 100644
index 0000000000..bf8efdf3b1
Binary files /dev/null and b/collects/icons/private/svg/check/16/check-shiny.png differ
diff --git a/collects/icons/private/svg/check/16/cyan/check-diffuse.png b/collects/icons/private/svg/check/16/cyan/check-diffuse.png
new file mode 100644
index 0000000000..36860470ac
Binary files /dev/null and b/collects/icons/private/svg/check/16/cyan/check-diffuse.png differ
diff --git a/collects/icons/private/svg/check/16/cyan/check-shiny.png b/collects/icons/private/svg/check/16/cyan/check-shiny.png
new file mode 100644
index 0000000000..61d3ca29f9
Binary files /dev/null and b/collects/icons/private/svg/check/16/cyan/check-shiny.png differ
diff --git a/collects/icons/private/svg/check/16/green/check-diffuse.png b/collects/icons/private/svg/check/16/green/check-diffuse.png
new file mode 100644
index 0000000000..daabb964ae
Binary files /dev/null and b/collects/icons/private/svg/check/16/green/check-diffuse.png differ
diff --git a/collects/icons/private/svg/check/16/green/check-shiny.png b/collects/icons/private/svg/check/16/green/check-shiny.png
new file mode 100644
index 0000000000..67346317a9
Binary files /dev/null and b/collects/icons/private/svg/check/16/green/check-shiny.png differ
diff --git a/collects/icons/private/svg/check/16/orange/check-diffuse.png b/collects/icons/private/svg/check/16/orange/check-diffuse.png
new file mode 100644
index 0000000000..fe4bd63dfd
Binary files /dev/null and b/collects/icons/private/svg/check/16/orange/check-diffuse.png differ
diff --git a/collects/icons/private/svg/check/16/orange/check-shiny.png b/collects/icons/private/svg/check/16/orange/check-shiny.png
new file mode 100644
index 0000000000..14ef0331e6
Binary files /dev/null and b/collects/icons/private/svg/check/16/orange/check-shiny.png differ
diff --git a/collects/icons/private/svg/check/16/purple/check-diffuse.png b/collects/icons/private/svg/check/16/purple/check-diffuse.png
new file mode 100644
index 0000000000..6049c8ec51
Binary files /dev/null and b/collects/icons/private/svg/check/16/purple/check-diffuse.png differ
diff --git a/collects/icons/private/svg/check/16/purple/check-shiny.png b/collects/icons/private/svg/check/16/purple/check-shiny.png
new file mode 100644
index 0000000000..8327a13028
Binary files /dev/null and b/collects/icons/private/svg/check/16/purple/check-shiny.png differ
diff --git a/collects/icons/private/svg/check/16/red/check-diffuse.png b/collects/icons/private/svg/check/16/red/check-diffuse.png
new file mode 100644
index 0000000000..44e0850a01
Binary files /dev/null and b/collects/icons/private/svg/check/16/red/check-diffuse.png differ
diff --git a/collects/icons/private/svg/check/16/red/check-shiny.png b/collects/icons/private/svg/check/16/red/check-shiny.png
new file mode 100644
index 0000000000..c549b543ae
Binary files /dev/null and b/collects/icons/private/svg/check/16/red/check-shiny.png differ
diff --git a/collects/icons/private/svg/check/16/white/check-diffuse.png b/collects/icons/private/svg/check/16/white/check-diffuse.png
new file mode 100644
index 0000000000..7fc0a4b87d
Binary files /dev/null and b/collects/icons/private/svg/check/16/white/check-diffuse.png differ
diff --git a/collects/icons/private/svg/check/16/white/check-shiny.png b/collects/icons/private/svg/check/16/white/check-shiny.png
new file mode 100644
index 0000000000..db01e5d396
Binary files /dev/null and b/collects/icons/private/svg/check/16/white/check-shiny.png differ
diff --git a/collects/icons/private/svg/check/32/black/check-diffuse.png b/collects/icons/private/svg/check/32/black/check-diffuse.png
new file mode 100644
index 0000000000..540dbc5b16
Binary files /dev/null and b/collects/icons/private/svg/check/32/black/check-diffuse.png differ
diff --git a/collects/icons/private/svg/check/32/black/check-shiny.png b/collects/icons/private/svg/check/32/black/check-shiny.png
new file mode 100644
index 0000000000..39a8d330cb
Binary files /dev/null and b/collects/icons/private/svg/check/32/black/check-shiny.png differ
diff --git a/collects/icons/private/svg/check/32/blue/check-diffuse.png b/collects/icons/private/svg/check/32/blue/check-diffuse.png
new file mode 100644
index 0000000000..be3f9d260b
Binary files /dev/null and b/collects/icons/private/svg/check/32/blue/check-diffuse.png differ
diff --git a/collects/icons/private/svg/check/32/blue/check-shiny.png b/collects/icons/private/svg/check/32/blue/check-shiny.png
new file mode 100644
index 0000000000..ff5153fa55
Binary files /dev/null and b/collects/icons/private/svg/check/32/blue/check-shiny.png differ
diff --git a/collects/icons/private/svg/check/32/check-diffuse.png b/collects/icons/private/svg/check/32/check-diffuse.png
new file mode 100644
index 0000000000..6c96686c7f
Binary files /dev/null and b/collects/icons/private/svg/check/32/check-diffuse.png differ
diff --git a/collects/icons/private/svg/check/32/check-shiny.png b/collects/icons/private/svg/check/32/check-shiny.png
new file mode 100644
index 0000000000..440b6118bf
Binary files /dev/null and b/collects/icons/private/svg/check/32/check-shiny.png differ
diff --git a/collects/icons/private/svg/check/32/cyan/check-diffuse.png b/collects/icons/private/svg/check/32/cyan/check-diffuse.png
new file mode 100644
index 0000000000..2bd92ca218
Binary files /dev/null and b/collects/icons/private/svg/check/32/cyan/check-diffuse.png differ
diff --git a/collects/icons/private/svg/check/32/cyan/check-shiny.png b/collects/icons/private/svg/check/32/cyan/check-shiny.png
new file mode 100644
index 0000000000..9435cfbe75
Binary files /dev/null and b/collects/icons/private/svg/check/32/cyan/check-shiny.png differ
diff --git a/collects/icons/private/svg/check/32/green/check-diffuse.png b/collects/icons/private/svg/check/32/green/check-diffuse.png
new file mode 100644
index 0000000000..3d72abfb73
Binary files /dev/null and b/collects/icons/private/svg/check/32/green/check-diffuse.png differ
diff --git a/collects/icons/private/svg/check/32/green/check-shiny.png b/collects/icons/private/svg/check/32/green/check-shiny.png
new file mode 100644
index 0000000000..8eded435eb
Binary files /dev/null and b/collects/icons/private/svg/check/32/green/check-shiny.png differ
diff --git a/collects/icons/private/svg/check/32/orange/check-diffuse.png b/collects/icons/private/svg/check/32/orange/check-diffuse.png
new file mode 100644
index 0000000000..b8a893238c
Binary files /dev/null and b/collects/icons/private/svg/check/32/orange/check-diffuse.png differ
diff --git a/collects/icons/private/svg/check/32/orange/check-shiny.png b/collects/icons/private/svg/check/32/orange/check-shiny.png
new file mode 100644
index 0000000000..9b4d245276
Binary files /dev/null and b/collects/icons/private/svg/check/32/orange/check-shiny.png differ
diff --git a/collects/icons/private/svg/check/32/purple/check-diffuse.png b/collects/icons/private/svg/check/32/purple/check-diffuse.png
new file mode 100644
index 0000000000..258c9cef9b
Binary files /dev/null and b/collects/icons/private/svg/check/32/purple/check-diffuse.png differ
diff --git a/collects/icons/private/svg/check/32/purple/check-shiny.png b/collects/icons/private/svg/check/32/purple/check-shiny.png
new file mode 100644
index 0000000000..071c1b0894
Binary files /dev/null and b/collects/icons/private/svg/check/32/purple/check-shiny.png differ
diff --git a/collects/icons/private/svg/check/32/red/check-diffuse.png b/collects/icons/private/svg/check/32/red/check-diffuse.png
new file mode 100644
index 0000000000..e24e7b76e1
Binary files /dev/null and b/collects/icons/private/svg/check/32/red/check-diffuse.png differ
diff --git a/collects/icons/private/svg/check/32/red/check-shiny.png b/collects/icons/private/svg/check/32/red/check-shiny.png
new file mode 100644
index 0000000000..7f12c93f82
Binary files /dev/null and b/collects/icons/private/svg/check/32/red/check-shiny.png differ
diff --git a/collects/icons/private/svg/check/32/white/check-diffuse.png b/collects/icons/private/svg/check/32/white/check-diffuse.png
new file mode 100644
index 0000000000..d75895335b
Binary files /dev/null and b/collects/icons/private/svg/check/32/white/check-diffuse.png differ
diff --git a/collects/icons/private/svg/check/32/white/check-shiny.png b/collects/icons/private/svg/check/32/white/check-shiny.png
new file mode 100644
index 0000000000..d12d0b91c7
Binary files /dev/null and b/collects/icons/private/svg/check/32/white/check-shiny.png differ
diff --git a/collects/icons/private/svg/check/64/black/check-diffuse.png b/collects/icons/private/svg/check/64/black/check-diffuse.png
new file mode 100644
index 0000000000..85abdc0132
Binary files /dev/null and b/collects/icons/private/svg/check/64/black/check-diffuse.png differ
diff --git a/collects/icons/private/svg/check/64/black/check-shiny.png b/collects/icons/private/svg/check/64/black/check-shiny.png
new file mode 100644
index 0000000000..28f3df355b
Binary files /dev/null and b/collects/icons/private/svg/check/64/black/check-shiny.png differ
diff --git a/collects/icons/private/svg/check/64/blue/check-diffuse.png b/collects/icons/private/svg/check/64/blue/check-diffuse.png
new file mode 100644
index 0000000000..4c9a5ea9a2
Binary files /dev/null and b/collects/icons/private/svg/check/64/blue/check-diffuse.png differ
diff --git a/collects/icons/private/svg/check/64/blue/check-shiny.png b/collects/icons/private/svg/check/64/blue/check-shiny.png
new file mode 100644
index 0000000000..3716e2cfef
Binary files /dev/null and b/collects/icons/private/svg/check/64/blue/check-shiny.png differ
diff --git a/collects/icons/private/svg/check/64/check-diffuse.png b/collects/icons/private/svg/check/64/check-diffuse.png
new file mode 100644
index 0000000000..e0fa536de1
Binary files /dev/null and b/collects/icons/private/svg/check/64/check-diffuse.png differ
diff --git a/collects/icons/private/svg/check/64/check-shiny.png b/collects/icons/private/svg/check/64/check-shiny.png
new file mode 100644
index 0000000000..86de7bdd22
Binary files /dev/null and b/collects/icons/private/svg/check/64/check-shiny.png differ
diff --git a/collects/icons/private/svg/check/64/cyan/check-diffuse.png b/collects/icons/private/svg/check/64/cyan/check-diffuse.png
new file mode 100644
index 0000000000..02a604a3c7
Binary files /dev/null and b/collects/icons/private/svg/check/64/cyan/check-diffuse.png differ
diff --git a/collects/icons/private/svg/check/64/cyan/check-shiny.png b/collects/icons/private/svg/check/64/cyan/check-shiny.png
new file mode 100644
index 0000000000..3b351b12e5
Binary files /dev/null and b/collects/icons/private/svg/check/64/cyan/check-shiny.png differ
diff --git a/collects/icons/private/svg/check/64/green/check-diffuse.png b/collects/icons/private/svg/check/64/green/check-diffuse.png
new file mode 100644
index 0000000000..dc9aaf21b8
Binary files /dev/null and b/collects/icons/private/svg/check/64/green/check-diffuse.png differ
diff --git a/collects/icons/private/svg/check/64/green/check-shiny.png b/collects/icons/private/svg/check/64/green/check-shiny.png
new file mode 100644
index 0000000000..e37742521e
Binary files /dev/null and b/collects/icons/private/svg/check/64/green/check-shiny.png differ
diff --git a/collects/icons/private/svg/check/64/orange/check-diffuse.png b/collects/icons/private/svg/check/64/orange/check-diffuse.png
new file mode 100644
index 0000000000..2cbf2c6ba9
Binary files /dev/null and b/collects/icons/private/svg/check/64/orange/check-diffuse.png differ
diff --git a/collects/icons/private/svg/check/64/orange/check-shiny.png b/collects/icons/private/svg/check/64/orange/check-shiny.png
new file mode 100644
index 0000000000..cc9a3bdb34
Binary files /dev/null and b/collects/icons/private/svg/check/64/orange/check-shiny.png differ
diff --git a/collects/icons/private/svg/check/64/purple/check-diffuse.png b/collects/icons/private/svg/check/64/purple/check-diffuse.png
new file mode 100644
index 0000000000..eb4e374fe2
Binary files /dev/null and b/collects/icons/private/svg/check/64/purple/check-diffuse.png differ
diff --git a/collects/icons/private/svg/check/64/purple/check-shiny.png b/collects/icons/private/svg/check/64/purple/check-shiny.png
new file mode 100644
index 0000000000..7d6b493bce
Binary files /dev/null and b/collects/icons/private/svg/check/64/purple/check-shiny.png differ
diff --git a/collects/icons/private/svg/check/64/red/check-diffuse.png b/collects/icons/private/svg/check/64/red/check-diffuse.png
new file mode 100644
index 0000000000..e10f4ff260
Binary files /dev/null and b/collects/icons/private/svg/check/64/red/check-diffuse.png differ
diff --git a/collects/icons/private/svg/check/64/red/check-shiny.png b/collects/icons/private/svg/check/64/red/check-shiny.png
new file mode 100644
index 0000000000..9404edd1dc
Binary files /dev/null and b/collects/icons/private/svg/check/64/red/check-shiny.png differ
diff --git a/collects/icons/private/svg/check/64/white/check-diffuse.png b/collects/icons/private/svg/check/64/white/check-diffuse.png
new file mode 100644
index 0000000000..aa5acc0eab
Binary files /dev/null and b/collects/icons/private/svg/check/64/white/check-diffuse.png differ
diff --git a/collects/icons/private/svg/check/64/white/check-shiny.png b/collects/icons/private/svg/check/64/white/check-shiny.png
new file mode 100644
index 0000000000..0341fc1658
Binary files /dev/null and b/collects/icons/private/svg/check/64/white/check-shiny.png differ
diff --git a/collects/icons/private/svg/check/check-diffuse.svg b/collects/icons/private/svg/check/check-diffuse.svg
new file mode 100644
index 0000000000..d0675a1a6e
--- /dev/null
+++ b/collects/icons/private/svg/check/check-diffuse.svg
@@ -0,0 +1,166 @@
+
+
+
+
diff --git a/collects/icons/private/svg/check/check-shiny.svg b/collects/icons/private/svg/check/check-shiny.svg
new file mode 100644
index 0000000000..d0f2bf220b
--- /dev/null
+++ b/collects/icons/private/svg/check/check-shiny.svg
@@ -0,0 +1,216 @@
+
+
+
+
diff --git a/collects/icons/private/svg/logo/128/plt-logo-diffuse.png b/collects/icons/private/svg/logo/128/plt-logo-diffuse.png
new file mode 100644
index 0000000000..f9d0ebbb2b
Binary files /dev/null and b/collects/icons/private/svg/logo/128/plt-logo-diffuse.png differ
diff --git a/collects/icons/private/svg/logo/128/plt-logo-shiny.png b/collects/icons/private/svg/logo/128/plt-logo-shiny.png
new file mode 100644
index 0000000000..8fcbb4c54e
Binary files /dev/null and b/collects/icons/private/svg/logo/128/plt-logo-shiny.png differ
diff --git a/collects/icons/private/svg/logo/16/plt-logo-diffuse.png b/collects/icons/private/svg/logo/16/plt-logo-diffuse.png
new file mode 100644
index 0000000000..6350c7fbbf
Binary files /dev/null and b/collects/icons/private/svg/logo/16/plt-logo-diffuse.png differ
diff --git a/collects/icons/private/svg/logo/16/plt-logo-shiny.png b/collects/icons/private/svg/logo/16/plt-logo-shiny.png
new file mode 100644
index 0000000000..4db052af71
Binary files /dev/null and b/collects/icons/private/svg/logo/16/plt-logo-shiny.png differ
diff --git a/collects/icons/private/svg/logo/256/plt-logo-diffuse.png b/collects/icons/private/svg/logo/256/plt-logo-diffuse.png
new file mode 100644
index 0000000000..1f4069b3a9
Binary files /dev/null and b/collects/icons/private/svg/logo/256/plt-logo-diffuse.png differ
diff --git a/collects/icons/private/svg/logo/256/plt-logo-shiny.png b/collects/icons/private/svg/logo/256/plt-logo-shiny.png
new file mode 100644
index 0000000000..89ef9a80d8
Binary files /dev/null and b/collects/icons/private/svg/logo/256/plt-logo-shiny.png differ
diff --git a/collects/icons/private/svg/logo/32/plt-logo-diffuse.png b/collects/icons/private/svg/logo/32/plt-logo-diffuse.png
new file mode 100644
index 0000000000..4b1bcbcc91
Binary files /dev/null and b/collects/icons/private/svg/logo/32/plt-logo-diffuse.png differ
diff --git a/collects/icons/private/svg/logo/32/plt-logo-shiny.png b/collects/icons/private/svg/logo/32/plt-logo-shiny.png
new file mode 100644
index 0000000000..7ed18de698
Binary files /dev/null and b/collects/icons/private/svg/logo/32/plt-logo-shiny.png differ
diff --git a/collects/icons/private/svg/logo/512/plt-logo-diffuse.png b/collects/icons/private/svg/logo/512/plt-logo-diffuse.png
new file mode 100644
index 0000000000..ab00b2ab64
Binary files /dev/null and b/collects/icons/private/svg/logo/512/plt-logo-diffuse.png differ
diff --git a/collects/icons/private/svg/logo/512/plt-logo-shiny.png b/collects/icons/private/svg/logo/512/plt-logo-shiny.png
new file mode 100644
index 0000000000..324c8cdb5a
Binary files /dev/null and b/collects/icons/private/svg/logo/512/plt-logo-shiny.png differ
diff --git a/collects/icons/private/svg/logo/64/plt-logo-diffuse.png b/collects/icons/private/svg/logo/64/plt-logo-diffuse.png
new file mode 100644
index 0000000000..2149c93852
Binary files /dev/null and b/collects/icons/private/svg/logo/64/plt-logo-diffuse.png differ
diff --git a/collects/icons/private/svg/logo/64/plt-logo-shiny.png b/collects/icons/private/svg/logo/64/plt-logo-shiny.png
new file mode 100644
index 0000000000..0436b87dcc
Binary files /dev/null and b/collects/icons/private/svg/logo/64/plt-logo-shiny.png differ
diff --git a/collects/icons/private/svg/logo/plt-logo-diffuse.svg b/collects/icons/private/svg/logo/plt-logo-diffuse.svg
new file mode 100644
index 0000000000..9ce451a951
--- /dev/null
+++ b/collects/icons/private/svg/logo/plt-logo-diffuse.svg
@@ -0,0 +1,238 @@
+
+
+
+
diff --git a/collects/icons/private/svg/logo/plt-logo-shiny.svg b/collects/icons/private/svg/logo/plt-logo-shiny.svg
new file mode 100644
index 0000000000..4a894249a4
--- /dev/null
+++ b/collects/icons/private/svg/logo/plt-logo-shiny.svg
@@ -0,0 +1,291 @@
+
+
+
+
diff --git a/collects/icons/private/svg/misc/16/black/hash-quote-diffuse.png b/collects/icons/private/svg/misc/16/black/hash-quote-diffuse.png
new file mode 100644
index 0000000000..4258e21ef3
Binary files /dev/null and b/collects/icons/private/svg/misc/16/black/hash-quote-diffuse.png differ
diff --git a/collects/icons/private/svg/misc/16/black/hash-quote-shiny.png b/collects/icons/private/svg/misc/16/black/hash-quote-shiny.png
new file mode 100644
index 0000000000..2b6781e81e
Binary files /dev/null and b/collects/icons/private/svg/misc/16/black/hash-quote-shiny.png differ
diff --git a/collects/icons/private/svg/misc/16/black/magnifying-glass-diffuse.png b/collects/icons/private/svg/misc/16/black/magnifying-glass-diffuse.png
new file mode 100644
index 0000000000..f954c928f4
Binary files /dev/null and b/collects/icons/private/svg/misc/16/black/magnifying-glass-diffuse.png differ
diff --git a/collects/icons/private/svg/misc/16/black/magnifying-glass-left-diffuse.png b/collects/icons/private/svg/misc/16/black/magnifying-glass-left-diffuse.png
new file mode 100644
index 0000000000..2a38a9c5e9
Binary files /dev/null and b/collects/icons/private/svg/misc/16/black/magnifying-glass-left-diffuse.png differ
diff --git a/collects/icons/private/svg/misc/16/black/magnifying-glass-left-shiny.png b/collects/icons/private/svg/misc/16/black/magnifying-glass-left-shiny.png
new file mode 100644
index 0000000000..2a419d3176
Binary files /dev/null and b/collects/icons/private/svg/misc/16/black/magnifying-glass-left-shiny.png differ
diff --git a/collects/icons/private/svg/misc/16/black/magnifying-glass-shiny.png b/collects/icons/private/svg/misc/16/black/magnifying-glass-shiny.png
new file mode 100644
index 0000000000..e51e623939
Binary files /dev/null and b/collects/icons/private/svg/misc/16/black/magnifying-glass-shiny.png differ
diff --git a/collects/icons/private/svg/misc/16/blue/hash-quote-diffuse.png b/collects/icons/private/svg/misc/16/blue/hash-quote-diffuse.png
new file mode 100644
index 0000000000..ca6e553b19
Binary files /dev/null and b/collects/icons/private/svg/misc/16/blue/hash-quote-diffuse.png differ
diff --git a/collects/icons/private/svg/misc/16/blue/hash-quote-shiny.png b/collects/icons/private/svg/misc/16/blue/hash-quote-shiny.png
new file mode 100644
index 0000000000..cad8ddaca5
Binary files /dev/null and b/collects/icons/private/svg/misc/16/blue/hash-quote-shiny.png differ
diff --git a/collects/icons/private/svg/misc/16/blue/magnifying-glass-diffuse.png b/collects/icons/private/svg/misc/16/blue/magnifying-glass-diffuse.png
new file mode 100644
index 0000000000..33df1f1b53
Binary files /dev/null and b/collects/icons/private/svg/misc/16/blue/magnifying-glass-diffuse.png differ
diff --git a/collects/icons/private/svg/misc/16/blue/magnifying-glass-left-diffuse.png b/collects/icons/private/svg/misc/16/blue/magnifying-glass-left-diffuse.png
new file mode 100644
index 0000000000..911ecb0f4f
Binary files /dev/null and b/collects/icons/private/svg/misc/16/blue/magnifying-glass-left-diffuse.png differ
diff --git a/collects/icons/private/svg/misc/16/blue/magnifying-glass-left-shiny.png b/collects/icons/private/svg/misc/16/blue/magnifying-glass-left-shiny.png
new file mode 100644
index 0000000000..3d0a6eb085
Binary files /dev/null and b/collects/icons/private/svg/misc/16/blue/magnifying-glass-left-shiny.png differ
diff --git a/collects/icons/private/svg/misc/16/blue/magnifying-glass-shiny.png b/collects/icons/private/svg/misc/16/blue/magnifying-glass-shiny.png
new file mode 100644
index 0000000000..03a90519e9
Binary files /dev/null and b/collects/icons/private/svg/misc/16/blue/magnifying-glass-shiny.png differ
diff --git a/collects/icons/private/svg/misc/16/cyan/hash-quote-diffuse.png b/collects/icons/private/svg/misc/16/cyan/hash-quote-diffuse.png
new file mode 100644
index 0000000000..88f1ecc28e
Binary files /dev/null and b/collects/icons/private/svg/misc/16/cyan/hash-quote-diffuse.png differ
diff --git a/collects/icons/private/svg/misc/16/cyan/hash-quote-shiny.png b/collects/icons/private/svg/misc/16/cyan/hash-quote-shiny.png
new file mode 100644
index 0000000000..a830b6df21
Binary files /dev/null and b/collects/icons/private/svg/misc/16/cyan/hash-quote-shiny.png differ
diff --git a/collects/icons/private/svg/misc/16/cyan/magnifying-glass-diffuse.png b/collects/icons/private/svg/misc/16/cyan/magnifying-glass-diffuse.png
new file mode 100644
index 0000000000..6f513a3f71
Binary files /dev/null and b/collects/icons/private/svg/misc/16/cyan/magnifying-glass-diffuse.png differ
diff --git a/collects/icons/private/svg/misc/16/cyan/magnifying-glass-left-diffuse.png b/collects/icons/private/svg/misc/16/cyan/magnifying-glass-left-diffuse.png
new file mode 100644
index 0000000000..468fb262a3
Binary files /dev/null and b/collects/icons/private/svg/misc/16/cyan/magnifying-glass-left-diffuse.png differ
diff --git a/collects/icons/private/svg/misc/16/cyan/magnifying-glass-left-shiny.png b/collects/icons/private/svg/misc/16/cyan/magnifying-glass-left-shiny.png
new file mode 100644
index 0000000000..83c8ed53da
Binary files /dev/null and b/collects/icons/private/svg/misc/16/cyan/magnifying-glass-left-shiny.png differ
diff --git a/collects/icons/private/svg/misc/16/cyan/magnifying-glass-shiny.png b/collects/icons/private/svg/misc/16/cyan/magnifying-glass-shiny.png
new file mode 100644
index 0000000000..24afa13ab5
Binary files /dev/null and b/collects/icons/private/svg/misc/16/cyan/magnifying-glass-shiny.png differ
diff --git a/collects/icons/private/svg/misc/16/green/hash-quote-diffuse.png b/collects/icons/private/svg/misc/16/green/hash-quote-diffuse.png
new file mode 100644
index 0000000000..39244fd6d0
Binary files /dev/null and b/collects/icons/private/svg/misc/16/green/hash-quote-diffuse.png differ
diff --git a/collects/icons/private/svg/misc/16/green/hash-quote-shiny.png b/collects/icons/private/svg/misc/16/green/hash-quote-shiny.png
new file mode 100644
index 0000000000..e3d0094d87
Binary files /dev/null and b/collects/icons/private/svg/misc/16/green/hash-quote-shiny.png differ
diff --git a/collects/icons/private/svg/misc/16/green/magnifying-glass-diffuse.png b/collects/icons/private/svg/misc/16/green/magnifying-glass-diffuse.png
new file mode 100644
index 0000000000..498a562240
Binary files /dev/null and b/collects/icons/private/svg/misc/16/green/magnifying-glass-diffuse.png differ
diff --git a/collects/icons/private/svg/misc/16/green/magnifying-glass-left-diffuse.png b/collects/icons/private/svg/misc/16/green/magnifying-glass-left-diffuse.png
new file mode 100644
index 0000000000..fe29556db3
Binary files /dev/null and b/collects/icons/private/svg/misc/16/green/magnifying-glass-left-diffuse.png differ
diff --git a/collects/icons/private/svg/misc/16/green/magnifying-glass-left-shiny.png b/collects/icons/private/svg/misc/16/green/magnifying-glass-left-shiny.png
new file mode 100644
index 0000000000..c77e502e18
Binary files /dev/null and b/collects/icons/private/svg/misc/16/green/magnifying-glass-left-shiny.png differ
diff --git a/collects/icons/private/svg/misc/16/green/magnifying-glass-shiny.png b/collects/icons/private/svg/misc/16/green/magnifying-glass-shiny.png
new file mode 100644
index 0000000000..a9ae90768d
Binary files /dev/null and b/collects/icons/private/svg/misc/16/green/magnifying-glass-shiny.png differ
diff --git a/collects/icons/private/svg/misc/16/hash-quote-diffuse.png b/collects/icons/private/svg/misc/16/hash-quote-diffuse.png
new file mode 100644
index 0000000000..77b22bf098
Binary files /dev/null and b/collects/icons/private/svg/misc/16/hash-quote-diffuse.png differ
diff --git a/collects/icons/private/svg/misc/16/hash-quote-shiny.png b/collects/icons/private/svg/misc/16/hash-quote-shiny.png
new file mode 100644
index 0000000000..f0773f58f5
Binary files /dev/null and b/collects/icons/private/svg/misc/16/hash-quote-shiny.png differ
diff --git a/collects/icons/private/svg/misc/16/magnifying-glass-diffuse.png b/collects/icons/private/svg/misc/16/magnifying-glass-diffuse.png
new file mode 100644
index 0000000000..e204735de1
Binary files /dev/null and b/collects/icons/private/svg/misc/16/magnifying-glass-diffuse.png differ
diff --git a/collects/icons/private/svg/misc/16/magnifying-glass-left-diffuse.png b/collects/icons/private/svg/misc/16/magnifying-glass-left-diffuse.png
new file mode 100644
index 0000000000..cb7bf3f84e
Binary files /dev/null and b/collects/icons/private/svg/misc/16/magnifying-glass-left-diffuse.png differ
diff --git a/collects/icons/private/svg/misc/16/magnifying-glass-left-shiny.png b/collects/icons/private/svg/misc/16/magnifying-glass-left-shiny.png
new file mode 100644
index 0000000000..9665f0ee4e
Binary files /dev/null and b/collects/icons/private/svg/misc/16/magnifying-glass-left-shiny.png differ
diff --git a/collects/icons/private/svg/misc/16/magnifying-glass-shiny.png b/collects/icons/private/svg/misc/16/magnifying-glass-shiny.png
new file mode 100644
index 0000000000..8f3c6a76ea
Binary files /dev/null and b/collects/icons/private/svg/misc/16/magnifying-glass-shiny.png differ
diff --git a/collects/icons/private/svg/misc/16/orange/hash-quote-diffuse.png b/collects/icons/private/svg/misc/16/orange/hash-quote-diffuse.png
new file mode 100644
index 0000000000..a407029ef3
Binary files /dev/null and b/collects/icons/private/svg/misc/16/orange/hash-quote-diffuse.png differ
diff --git a/collects/icons/private/svg/misc/16/orange/hash-quote-shiny.png b/collects/icons/private/svg/misc/16/orange/hash-quote-shiny.png
new file mode 100644
index 0000000000..8d6041aad9
Binary files /dev/null and b/collects/icons/private/svg/misc/16/orange/hash-quote-shiny.png differ
diff --git a/collects/icons/private/svg/misc/16/orange/magnifying-glass-diffuse.png b/collects/icons/private/svg/misc/16/orange/magnifying-glass-diffuse.png
new file mode 100644
index 0000000000..bc4d257119
Binary files /dev/null and b/collects/icons/private/svg/misc/16/orange/magnifying-glass-diffuse.png differ
diff --git a/collects/icons/private/svg/misc/16/orange/magnifying-glass-left-diffuse.png b/collects/icons/private/svg/misc/16/orange/magnifying-glass-left-diffuse.png
new file mode 100644
index 0000000000..1f0a3962fa
Binary files /dev/null and b/collects/icons/private/svg/misc/16/orange/magnifying-glass-left-diffuse.png differ
diff --git a/collects/icons/private/svg/misc/16/orange/magnifying-glass-left-shiny.png b/collects/icons/private/svg/misc/16/orange/magnifying-glass-left-shiny.png
new file mode 100644
index 0000000000..33f6c6c91b
Binary files /dev/null and b/collects/icons/private/svg/misc/16/orange/magnifying-glass-left-shiny.png differ
diff --git a/collects/icons/private/svg/misc/16/orange/magnifying-glass-shiny.png b/collects/icons/private/svg/misc/16/orange/magnifying-glass-shiny.png
new file mode 100644
index 0000000000..ede97c8a81
Binary files /dev/null and b/collects/icons/private/svg/misc/16/orange/magnifying-glass-shiny.png differ
diff --git a/collects/icons/private/svg/misc/16/purple/hash-quote-diffuse.png b/collects/icons/private/svg/misc/16/purple/hash-quote-diffuse.png
new file mode 100644
index 0000000000..6747b694aa
Binary files /dev/null and b/collects/icons/private/svg/misc/16/purple/hash-quote-diffuse.png differ
diff --git a/collects/icons/private/svg/misc/16/purple/hash-quote-shiny.png b/collects/icons/private/svg/misc/16/purple/hash-quote-shiny.png
new file mode 100644
index 0000000000..4d280a78a1
Binary files /dev/null and b/collects/icons/private/svg/misc/16/purple/hash-quote-shiny.png differ
diff --git a/collects/icons/private/svg/misc/16/purple/magnifying-glass-diffuse.png b/collects/icons/private/svg/misc/16/purple/magnifying-glass-diffuse.png
new file mode 100644
index 0000000000..6dd1485ca3
Binary files /dev/null and b/collects/icons/private/svg/misc/16/purple/magnifying-glass-diffuse.png differ
diff --git a/collects/icons/private/svg/misc/16/purple/magnifying-glass-left-diffuse.png b/collects/icons/private/svg/misc/16/purple/magnifying-glass-left-diffuse.png
new file mode 100644
index 0000000000..40ff7f7940
Binary files /dev/null and b/collects/icons/private/svg/misc/16/purple/magnifying-glass-left-diffuse.png differ
diff --git a/collects/icons/private/svg/misc/16/purple/magnifying-glass-left-shiny.png b/collects/icons/private/svg/misc/16/purple/magnifying-glass-left-shiny.png
new file mode 100644
index 0000000000..ff9079d561
Binary files /dev/null and b/collects/icons/private/svg/misc/16/purple/magnifying-glass-left-shiny.png differ
diff --git a/collects/icons/private/svg/misc/16/purple/magnifying-glass-shiny.png b/collects/icons/private/svg/misc/16/purple/magnifying-glass-shiny.png
new file mode 100644
index 0000000000..7c1b3540eb
Binary files /dev/null and b/collects/icons/private/svg/misc/16/purple/magnifying-glass-shiny.png differ
diff --git a/collects/icons/private/svg/misc/16/red/hash-quote-diffuse.png b/collects/icons/private/svg/misc/16/red/hash-quote-diffuse.png
new file mode 100644
index 0000000000..5d6d31092d
Binary files /dev/null and b/collects/icons/private/svg/misc/16/red/hash-quote-diffuse.png differ
diff --git a/collects/icons/private/svg/misc/16/red/hash-quote-shiny.png b/collects/icons/private/svg/misc/16/red/hash-quote-shiny.png
new file mode 100644
index 0000000000..14ba133db8
Binary files /dev/null and b/collects/icons/private/svg/misc/16/red/hash-quote-shiny.png differ
diff --git a/collects/icons/private/svg/misc/16/red/magnifying-glass-diffuse.png b/collects/icons/private/svg/misc/16/red/magnifying-glass-diffuse.png
new file mode 100644
index 0000000000..eee7ca1e6b
Binary files /dev/null and b/collects/icons/private/svg/misc/16/red/magnifying-glass-diffuse.png differ
diff --git a/collects/icons/private/svg/misc/16/red/magnifying-glass-left-diffuse.png b/collects/icons/private/svg/misc/16/red/magnifying-glass-left-diffuse.png
new file mode 100644
index 0000000000..86a3e4e7c7
Binary files /dev/null and b/collects/icons/private/svg/misc/16/red/magnifying-glass-left-diffuse.png differ
diff --git a/collects/icons/private/svg/misc/16/red/magnifying-glass-left-shiny.png b/collects/icons/private/svg/misc/16/red/magnifying-glass-left-shiny.png
new file mode 100644
index 0000000000..deee02017c
Binary files /dev/null and b/collects/icons/private/svg/misc/16/red/magnifying-glass-left-shiny.png differ
diff --git a/collects/icons/private/svg/misc/16/red/magnifying-glass-shiny.png b/collects/icons/private/svg/misc/16/red/magnifying-glass-shiny.png
new file mode 100644
index 0000000000..5800c88c4c
Binary files /dev/null and b/collects/icons/private/svg/misc/16/red/magnifying-glass-shiny.png differ
diff --git a/collects/icons/private/svg/misc/16/white/hash-quote-diffuse.png b/collects/icons/private/svg/misc/16/white/hash-quote-diffuse.png
new file mode 100644
index 0000000000..fdde0882af
Binary files /dev/null and b/collects/icons/private/svg/misc/16/white/hash-quote-diffuse.png differ
diff --git a/collects/icons/private/svg/misc/16/white/hash-quote-shiny.png b/collects/icons/private/svg/misc/16/white/hash-quote-shiny.png
new file mode 100644
index 0000000000..e742982f7a
Binary files /dev/null and b/collects/icons/private/svg/misc/16/white/hash-quote-shiny.png differ
diff --git a/collects/icons/private/svg/misc/16/white/magnifying-glass-diffuse.png b/collects/icons/private/svg/misc/16/white/magnifying-glass-diffuse.png
new file mode 100644
index 0000000000..5ffba52252
Binary files /dev/null and b/collects/icons/private/svg/misc/16/white/magnifying-glass-diffuse.png differ
diff --git a/collects/icons/private/svg/misc/16/white/magnifying-glass-left-diffuse.png b/collects/icons/private/svg/misc/16/white/magnifying-glass-left-diffuse.png
new file mode 100644
index 0000000000..46c1665e8a
Binary files /dev/null and b/collects/icons/private/svg/misc/16/white/magnifying-glass-left-diffuse.png differ
diff --git a/collects/icons/private/svg/misc/16/white/magnifying-glass-left-shiny.png b/collects/icons/private/svg/misc/16/white/magnifying-glass-left-shiny.png
new file mode 100644
index 0000000000..530ee3b3e4
Binary files /dev/null and b/collects/icons/private/svg/misc/16/white/magnifying-glass-left-shiny.png differ
diff --git a/collects/icons/private/svg/misc/16/white/magnifying-glass-shiny.png b/collects/icons/private/svg/misc/16/white/magnifying-glass-shiny.png
new file mode 100644
index 0000000000..8bb29b559c
Binary files /dev/null and b/collects/icons/private/svg/misc/16/white/magnifying-glass-shiny.png differ
diff --git a/collects/icons/private/svg/misc/32/black/hash-quote-diffuse.png b/collects/icons/private/svg/misc/32/black/hash-quote-diffuse.png
new file mode 100644
index 0000000000..38cbcbd66f
Binary files /dev/null and b/collects/icons/private/svg/misc/32/black/hash-quote-diffuse.png differ
diff --git a/collects/icons/private/svg/misc/32/black/hash-quote-shiny.png b/collects/icons/private/svg/misc/32/black/hash-quote-shiny.png
new file mode 100644
index 0000000000..b77d8052a5
Binary files /dev/null and b/collects/icons/private/svg/misc/32/black/hash-quote-shiny.png differ
diff --git a/collects/icons/private/svg/misc/32/black/magnifying-glass-diffuse.png b/collects/icons/private/svg/misc/32/black/magnifying-glass-diffuse.png
new file mode 100644
index 0000000000..cbbd8854ce
Binary files /dev/null and b/collects/icons/private/svg/misc/32/black/magnifying-glass-diffuse.png differ
diff --git a/collects/icons/private/svg/misc/32/black/magnifying-glass-left-diffuse.png b/collects/icons/private/svg/misc/32/black/magnifying-glass-left-diffuse.png
new file mode 100644
index 0000000000..2854885235
Binary files /dev/null and b/collects/icons/private/svg/misc/32/black/magnifying-glass-left-diffuse.png differ
diff --git a/collects/icons/private/svg/misc/32/black/magnifying-glass-left-shiny.png b/collects/icons/private/svg/misc/32/black/magnifying-glass-left-shiny.png
new file mode 100644
index 0000000000..b7caa9e2e4
Binary files /dev/null and b/collects/icons/private/svg/misc/32/black/magnifying-glass-left-shiny.png differ
diff --git a/collects/icons/private/svg/misc/32/black/magnifying-glass-shiny.png b/collects/icons/private/svg/misc/32/black/magnifying-glass-shiny.png
new file mode 100644
index 0000000000..aef7f7d10f
Binary files /dev/null and b/collects/icons/private/svg/misc/32/black/magnifying-glass-shiny.png differ
diff --git a/collects/icons/private/svg/misc/32/blue/hash-quote-diffuse.png b/collects/icons/private/svg/misc/32/blue/hash-quote-diffuse.png
new file mode 100644
index 0000000000..1ae89e4873
Binary files /dev/null and b/collects/icons/private/svg/misc/32/blue/hash-quote-diffuse.png differ
diff --git a/collects/icons/private/svg/misc/32/blue/hash-quote-shiny.png b/collects/icons/private/svg/misc/32/blue/hash-quote-shiny.png
new file mode 100644
index 0000000000..d3a7f1c14e
Binary files /dev/null and b/collects/icons/private/svg/misc/32/blue/hash-quote-shiny.png differ
diff --git a/collects/icons/private/svg/misc/32/blue/magnifying-glass-diffuse.png b/collects/icons/private/svg/misc/32/blue/magnifying-glass-diffuse.png
new file mode 100644
index 0000000000..40fb951999
Binary files /dev/null and b/collects/icons/private/svg/misc/32/blue/magnifying-glass-diffuse.png differ
diff --git a/collects/icons/private/svg/misc/32/blue/magnifying-glass-left-diffuse.png b/collects/icons/private/svg/misc/32/blue/magnifying-glass-left-diffuse.png
new file mode 100644
index 0000000000..9f09560d79
Binary files /dev/null and b/collects/icons/private/svg/misc/32/blue/magnifying-glass-left-diffuse.png differ
diff --git a/collects/icons/private/svg/misc/32/blue/magnifying-glass-left-shiny.png b/collects/icons/private/svg/misc/32/blue/magnifying-glass-left-shiny.png
new file mode 100644
index 0000000000..3a91de7c67
Binary files /dev/null and b/collects/icons/private/svg/misc/32/blue/magnifying-glass-left-shiny.png differ
diff --git a/collects/icons/private/svg/misc/32/blue/magnifying-glass-shiny.png b/collects/icons/private/svg/misc/32/blue/magnifying-glass-shiny.png
new file mode 100644
index 0000000000..dc7a9b931b
Binary files /dev/null and b/collects/icons/private/svg/misc/32/blue/magnifying-glass-shiny.png differ
diff --git a/collects/icons/private/svg/misc/32/cyan/hash-quote-diffuse.png b/collects/icons/private/svg/misc/32/cyan/hash-quote-diffuse.png
new file mode 100644
index 0000000000..7a30615972
Binary files /dev/null and b/collects/icons/private/svg/misc/32/cyan/hash-quote-diffuse.png differ
diff --git a/collects/icons/private/svg/misc/32/cyan/hash-quote-shiny.png b/collects/icons/private/svg/misc/32/cyan/hash-quote-shiny.png
new file mode 100644
index 0000000000..c2dc3d10cc
Binary files /dev/null and b/collects/icons/private/svg/misc/32/cyan/hash-quote-shiny.png differ
diff --git a/collects/icons/private/svg/misc/32/cyan/magnifying-glass-diffuse.png b/collects/icons/private/svg/misc/32/cyan/magnifying-glass-diffuse.png
new file mode 100644
index 0000000000..b2930e27fd
Binary files /dev/null and b/collects/icons/private/svg/misc/32/cyan/magnifying-glass-diffuse.png differ
diff --git a/collects/icons/private/svg/misc/32/cyan/magnifying-glass-left-diffuse.png b/collects/icons/private/svg/misc/32/cyan/magnifying-glass-left-diffuse.png
new file mode 100644
index 0000000000..ae62e92634
Binary files /dev/null and b/collects/icons/private/svg/misc/32/cyan/magnifying-glass-left-diffuse.png differ
diff --git a/collects/icons/private/svg/misc/32/cyan/magnifying-glass-left-shiny.png b/collects/icons/private/svg/misc/32/cyan/magnifying-glass-left-shiny.png
new file mode 100644
index 0000000000..207b319760
Binary files /dev/null and b/collects/icons/private/svg/misc/32/cyan/magnifying-glass-left-shiny.png differ
diff --git a/collects/icons/private/svg/misc/32/cyan/magnifying-glass-shiny.png b/collects/icons/private/svg/misc/32/cyan/magnifying-glass-shiny.png
new file mode 100644
index 0000000000..f8f5067761
Binary files /dev/null and b/collects/icons/private/svg/misc/32/cyan/magnifying-glass-shiny.png differ
diff --git a/collects/icons/private/svg/misc/32/green/hash-quote-diffuse.png b/collects/icons/private/svg/misc/32/green/hash-quote-diffuse.png
new file mode 100644
index 0000000000..9b0d9cf472
Binary files /dev/null and b/collects/icons/private/svg/misc/32/green/hash-quote-diffuse.png differ
diff --git a/collects/icons/private/svg/misc/32/green/hash-quote-shiny.png b/collects/icons/private/svg/misc/32/green/hash-quote-shiny.png
new file mode 100644
index 0000000000..ae5bc2cf30
Binary files /dev/null and b/collects/icons/private/svg/misc/32/green/hash-quote-shiny.png differ
diff --git a/collects/icons/private/svg/misc/32/green/magnifying-glass-diffuse.png b/collects/icons/private/svg/misc/32/green/magnifying-glass-diffuse.png
new file mode 100644
index 0000000000..7c70a0c6e4
Binary files /dev/null and b/collects/icons/private/svg/misc/32/green/magnifying-glass-diffuse.png differ
diff --git a/collects/icons/private/svg/misc/32/green/magnifying-glass-left-diffuse.png b/collects/icons/private/svg/misc/32/green/magnifying-glass-left-diffuse.png
new file mode 100644
index 0000000000..62d6660639
Binary files /dev/null and b/collects/icons/private/svg/misc/32/green/magnifying-glass-left-diffuse.png differ
diff --git a/collects/icons/private/svg/misc/32/green/magnifying-glass-left-shiny.png b/collects/icons/private/svg/misc/32/green/magnifying-glass-left-shiny.png
new file mode 100644
index 0000000000..677c6a24a8
Binary files /dev/null and b/collects/icons/private/svg/misc/32/green/magnifying-glass-left-shiny.png differ
diff --git a/collects/icons/private/svg/misc/32/green/magnifying-glass-shiny.png b/collects/icons/private/svg/misc/32/green/magnifying-glass-shiny.png
new file mode 100644
index 0000000000..74502a3a75
Binary files /dev/null and b/collects/icons/private/svg/misc/32/green/magnifying-glass-shiny.png differ
diff --git a/collects/icons/private/svg/misc/32/hash-quote-diffuse.png b/collects/icons/private/svg/misc/32/hash-quote-diffuse.png
new file mode 100644
index 0000000000..bf1ccd956e
Binary files /dev/null and b/collects/icons/private/svg/misc/32/hash-quote-diffuse.png differ
diff --git a/collects/icons/private/svg/misc/32/hash-quote-shiny.png b/collects/icons/private/svg/misc/32/hash-quote-shiny.png
new file mode 100644
index 0000000000..1665486c32
Binary files /dev/null and b/collects/icons/private/svg/misc/32/hash-quote-shiny.png differ
diff --git a/collects/icons/private/svg/misc/32/magnifying-glass-diffuse.png b/collects/icons/private/svg/misc/32/magnifying-glass-diffuse.png
new file mode 100644
index 0000000000..70eb293f84
Binary files /dev/null and b/collects/icons/private/svg/misc/32/magnifying-glass-diffuse.png differ
diff --git a/collects/icons/private/svg/misc/32/magnifying-glass-left-diffuse.png b/collects/icons/private/svg/misc/32/magnifying-glass-left-diffuse.png
new file mode 100644
index 0000000000..383db2bf1e
Binary files /dev/null and b/collects/icons/private/svg/misc/32/magnifying-glass-left-diffuse.png differ
diff --git a/collects/icons/private/svg/misc/32/magnifying-glass-left-shiny.png b/collects/icons/private/svg/misc/32/magnifying-glass-left-shiny.png
new file mode 100644
index 0000000000..e34ceb02d7
Binary files /dev/null and b/collects/icons/private/svg/misc/32/magnifying-glass-left-shiny.png differ
diff --git a/collects/icons/private/svg/misc/32/magnifying-glass-shiny.png b/collects/icons/private/svg/misc/32/magnifying-glass-shiny.png
new file mode 100644
index 0000000000..b743960898
Binary files /dev/null and b/collects/icons/private/svg/misc/32/magnifying-glass-shiny.png differ
diff --git a/collects/icons/private/svg/misc/32/orange/hash-quote-diffuse.png b/collects/icons/private/svg/misc/32/orange/hash-quote-diffuse.png
new file mode 100644
index 0000000000..095b720a93
Binary files /dev/null and b/collects/icons/private/svg/misc/32/orange/hash-quote-diffuse.png differ
diff --git a/collects/icons/private/svg/misc/32/orange/hash-quote-shiny.png b/collects/icons/private/svg/misc/32/orange/hash-quote-shiny.png
new file mode 100644
index 0000000000..6db9ab15ae
Binary files /dev/null and b/collects/icons/private/svg/misc/32/orange/hash-quote-shiny.png differ
diff --git a/collects/icons/private/svg/misc/32/orange/magnifying-glass-diffuse.png b/collects/icons/private/svg/misc/32/orange/magnifying-glass-diffuse.png
new file mode 100644
index 0000000000..c9e34aec86
Binary files /dev/null and b/collects/icons/private/svg/misc/32/orange/magnifying-glass-diffuse.png differ
diff --git a/collects/icons/private/svg/misc/32/orange/magnifying-glass-left-diffuse.png b/collects/icons/private/svg/misc/32/orange/magnifying-glass-left-diffuse.png
new file mode 100644
index 0000000000..1f11dc5bc3
Binary files /dev/null and b/collects/icons/private/svg/misc/32/orange/magnifying-glass-left-diffuse.png differ
diff --git a/collects/icons/private/svg/misc/32/orange/magnifying-glass-left-shiny.png b/collects/icons/private/svg/misc/32/orange/magnifying-glass-left-shiny.png
new file mode 100644
index 0000000000..b6de1ad5df
Binary files /dev/null and b/collects/icons/private/svg/misc/32/orange/magnifying-glass-left-shiny.png differ
diff --git a/collects/icons/private/svg/misc/32/orange/magnifying-glass-shiny.png b/collects/icons/private/svg/misc/32/orange/magnifying-glass-shiny.png
new file mode 100644
index 0000000000..d9af3a2027
Binary files /dev/null and b/collects/icons/private/svg/misc/32/orange/magnifying-glass-shiny.png differ
diff --git a/collects/icons/private/svg/misc/32/purple/hash-quote-diffuse.png b/collects/icons/private/svg/misc/32/purple/hash-quote-diffuse.png
new file mode 100644
index 0000000000..2eb6e5af4c
Binary files /dev/null and b/collects/icons/private/svg/misc/32/purple/hash-quote-diffuse.png differ
diff --git a/collects/icons/private/svg/misc/32/purple/hash-quote-shiny.png b/collects/icons/private/svg/misc/32/purple/hash-quote-shiny.png
new file mode 100644
index 0000000000..5ad90bb68a
Binary files /dev/null and b/collects/icons/private/svg/misc/32/purple/hash-quote-shiny.png differ
diff --git a/collects/icons/private/svg/misc/32/purple/magnifying-glass-diffuse.png b/collects/icons/private/svg/misc/32/purple/magnifying-glass-diffuse.png
new file mode 100644
index 0000000000..739600db71
Binary files /dev/null and b/collects/icons/private/svg/misc/32/purple/magnifying-glass-diffuse.png differ
diff --git a/collects/icons/private/svg/misc/32/purple/magnifying-glass-left-diffuse.png b/collects/icons/private/svg/misc/32/purple/magnifying-glass-left-diffuse.png
new file mode 100644
index 0000000000..282b3d8a6a
Binary files /dev/null and b/collects/icons/private/svg/misc/32/purple/magnifying-glass-left-diffuse.png differ
diff --git a/collects/icons/private/svg/misc/32/purple/magnifying-glass-left-shiny.png b/collects/icons/private/svg/misc/32/purple/magnifying-glass-left-shiny.png
new file mode 100644
index 0000000000..3f24b63c98
Binary files /dev/null and b/collects/icons/private/svg/misc/32/purple/magnifying-glass-left-shiny.png differ
diff --git a/collects/icons/private/svg/misc/32/purple/magnifying-glass-shiny.png b/collects/icons/private/svg/misc/32/purple/magnifying-glass-shiny.png
new file mode 100644
index 0000000000..38597b3ccb
Binary files /dev/null and b/collects/icons/private/svg/misc/32/purple/magnifying-glass-shiny.png differ
diff --git a/collects/icons/private/svg/misc/32/red/hash-quote-diffuse.png b/collects/icons/private/svg/misc/32/red/hash-quote-diffuse.png
new file mode 100644
index 0000000000..c9f3a1fbc7
Binary files /dev/null and b/collects/icons/private/svg/misc/32/red/hash-quote-diffuse.png differ
diff --git a/collects/icons/private/svg/misc/32/red/hash-quote-shiny.png b/collects/icons/private/svg/misc/32/red/hash-quote-shiny.png
new file mode 100644
index 0000000000..b6729b616e
Binary files /dev/null and b/collects/icons/private/svg/misc/32/red/hash-quote-shiny.png differ
diff --git a/collects/icons/private/svg/misc/32/red/magnifying-glass-diffuse.png b/collects/icons/private/svg/misc/32/red/magnifying-glass-diffuse.png
new file mode 100644
index 0000000000..49760ae798
Binary files /dev/null and b/collects/icons/private/svg/misc/32/red/magnifying-glass-diffuse.png differ
diff --git a/collects/icons/private/svg/misc/32/red/magnifying-glass-left-diffuse.png b/collects/icons/private/svg/misc/32/red/magnifying-glass-left-diffuse.png
new file mode 100644
index 0000000000..8b106ffcb3
Binary files /dev/null and b/collects/icons/private/svg/misc/32/red/magnifying-glass-left-diffuse.png differ
diff --git a/collects/icons/private/svg/misc/32/red/magnifying-glass-left-shiny.png b/collects/icons/private/svg/misc/32/red/magnifying-glass-left-shiny.png
new file mode 100644
index 0000000000..3f8ab34f32
Binary files /dev/null and b/collects/icons/private/svg/misc/32/red/magnifying-glass-left-shiny.png differ
diff --git a/collects/icons/private/svg/misc/32/red/magnifying-glass-shiny.png b/collects/icons/private/svg/misc/32/red/magnifying-glass-shiny.png
new file mode 100644
index 0000000000..89cf7678eb
Binary files /dev/null and b/collects/icons/private/svg/misc/32/red/magnifying-glass-shiny.png differ
diff --git a/collects/icons/private/svg/misc/32/white/hash-quote-diffuse.png b/collects/icons/private/svg/misc/32/white/hash-quote-diffuse.png
new file mode 100644
index 0000000000..7aa1104706
Binary files /dev/null and b/collects/icons/private/svg/misc/32/white/hash-quote-diffuse.png differ
diff --git a/collects/icons/private/svg/misc/32/white/hash-quote-shiny.png b/collects/icons/private/svg/misc/32/white/hash-quote-shiny.png
new file mode 100644
index 0000000000..6a1d976ed2
Binary files /dev/null and b/collects/icons/private/svg/misc/32/white/hash-quote-shiny.png differ
diff --git a/collects/icons/private/svg/misc/32/white/magnifying-glass-diffuse.png b/collects/icons/private/svg/misc/32/white/magnifying-glass-diffuse.png
new file mode 100644
index 0000000000..78fdc5bc4e
Binary files /dev/null and b/collects/icons/private/svg/misc/32/white/magnifying-glass-diffuse.png differ
diff --git a/collects/icons/private/svg/misc/32/white/magnifying-glass-left-diffuse.png b/collects/icons/private/svg/misc/32/white/magnifying-glass-left-diffuse.png
new file mode 100644
index 0000000000..c67c5b5a52
Binary files /dev/null and b/collects/icons/private/svg/misc/32/white/magnifying-glass-left-diffuse.png differ
diff --git a/collects/icons/private/svg/misc/32/white/magnifying-glass-left-shiny.png b/collects/icons/private/svg/misc/32/white/magnifying-glass-left-shiny.png
new file mode 100644
index 0000000000..8bcf1b5870
Binary files /dev/null and b/collects/icons/private/svg/misc/32/white/magnifying-glass-left-shiny.png differ
diff --git a/collects/icons/private/svg/misc/32/white/magnifying-glass-shiny.png b/collects/icons/private/svg/misc/32/white/magnifying-glass-shiny.png
new file mode 100644
index 0000000000..8a4fa26b0b
Binary files /dev/null and b/collects/icons/private/svg/misc/32/white/magnifying-glass-shiny.png differ
diff --git a/collects/icons/private/svg/misc/64/black/hash-quote-diffuse.png b/collects/icons/private/svg/misc/64/black/hash-quote-diffuse.png
new file mode 100644
index 0000000000..49692ac26d
Binary files /dev/null and b/collects/icons/private/svg/misc/64/black/hash-quote-diffuse.png differ
diff --git a/collects/icons/private/svg/misc/64/black/hash-quote-shiny.png b/collects/icons/private/svg/misc/64/black/hash-quote-shiny.png
new file mode 100644
index 0000000000..d329b490e9
Binary files /dev/null and b/collects/icons/private/svg/misc/64/black/hash-quote-shiny.png differ
diff --git a/collects/icons/private/svg/misc/64/black/magnifying-glass-diffuse.png b/collects/icons/private/svg/misc/64/black/magnifying-glass-diffuse.png
new file mode 100644
index 0000000000..1a962111dc
Binary files /dev/null and b/collects/icons/private/svg/misc/64/black/magnifying-glass-diffuse.png differ
diff --git a/collects/icons/private/svg/misc/64/black/magnifying-glass-left-diffuse.png b/collects/icons/private/svg/misc/64/black/magnifying-glass-left-diffuse.png
new file mode 100644
index 0000000000..6b3485b00f
Binary files /dev/null and b/collects/icons/private/svg/misc/64/black/magnifying-glass-left-diffuse.png differ
diff --git a/collects/icons/private/svg/misc/64/black/magnifying-glass-left-shiny.png b/collects/icons/private/svg/misc/64/black/magnifying-glass-left-shiny.png
new file mode 100644
index 0000000000..cd9904ab14
Binary files /dev/null and b/collects/icons/private/svg/misc/64/black/magnifying-glass-left-shiny.png differ
diff --git a/collects/icons/private/svg/misc/64/black/magnifying-glass-shiny.png b/collects/icons/private/svg/misc/64/black/magnifying-glass-shiny.png
new file mode 100644
index 0000000000..a293216104
Binary files /dev/null and b/collects/icons/private/svg/misc/64/black/magnifying-glass-shiny.png differ
diff --git a/collects/icons/private/svg/misc/64/blue/hash-quote-diffuse.png b/collects/icons/private/svg/misc/64/blue/hash-quote-diffuse.png
new file mode 100644
index 0000000000..1b5bd2526b
Binary files /dev/null and b/collects/icons/private/svg/misc/64/blue/hash-quote-diffuse.png differ
diff --git a/collects/icons/private/svg/misc/64/blue/hash-quote-shiny.png b/collects/icons/private/svg/misc/64/blue/hash-quote-shiny.png
new file mode 100644
index 0000000000..b04113a876
Binary files /dev/null and b/collects/icons/private/svg/misc/64/blue/hash-quote-shiny.png differ
diff --git a/collects/icons/private/svg/misc/64/blue/magnifying-glass-diffuse.png b/collects/icons/private/svg/misc/64/blue/magnifying-glass-diffuse.png
new file mode 100644
index 0000000000..f84d616c4d
Binary files /dev/null and b/collects/icons/private/svg/misc/64/blue/magnifying-glass-diffuse.png differ
diff --git a/collects/icons/private/svg/misc/64/blue/magnifying-glass-left-diffuse.png b/collects/icons/private/svg/misc/64/blue/magnifying-glass-left-diffuse.png
new file mode 100644
index 0000000000..9b0330c19f
Binary files /dev/null and b/collects/icons/private/svg/misc/64/blue/magnifying-glass-left-diffuse.png differ
diff --git a/collects/icons/private/svg/misc/64/blue/magnifying-glass-left-shiny.png b/collects/icons/private/svg/misc/64/blue/magnifying-glass-left-shiny.png
new file mode 100644
index 0000000000..e458dc3b71
Binary files /dev/null and b/collects/icons/private/svg/misc/64/blue/magnifying-glass-left-shiny.png differ
diff --git a/collects/icons/private/svg/misc/64/blue/magnifying-glass-shiny.png b/collects/icons/private/svg/misc/64/blue/magnifying-glass-shiny.png
new file mode 100644
index 0000000000..3d303f2f50
Binary files /dev/null and b/collects/icons/private/svg/misc/64/blue/magnifying-glass-shiny.png differ
diff --git a/collects/icons/private/svg/misc/64/cyan/hash-quote-diffuse.png b/collects/icons/private/svg/misc/64/cyan/hash-quote-diffuse.png
new file mode 100644
index 0000000000..58cc2b865a
Binary files /dev/null and b/collects/icons/private/svg/misc/64/cyan/hash-quote-diffuse.png differ
diff --git a/collects/icons/private/svg/misc/64/cyan/hash-quote-shiny.png b/collects/icons/private/svg/misc/64/cyan/hash-quote-shiny.png
new file mode 100644
index 0000000000..247ed11916
Binary files /dev/null and b/collects/icons/private/svg/misc/64/cyan/hash-quote-shiny.png differ
diff --git a/collects/icons/private/svg/misc/64/cyan/magnifying-glass-diffuse.png b/collects/icons/private/svg/misc/64/cyan/magnifying-glass-diffuse.png
new file mode 100644
index 0000000000..af24268d31
Binary files /dev/null and b/collects/icons/private/svg/misc/64/cyan/magnifying-glass-diffuse.png differ
diff --git a/collects/icons/private/svg/misc/64/cyan/magnifying-glass-left-diffuse.png b/collects/icons/private/svg/misc/64/cyan/magnifying-glass-left-diffuse.png
new file mode 100644
index 0000000000..d5ecf1bc74
Binary files /dev/null and b/collects/icons/private/svg/misc/64/cyan/magnifying-glass-left-diffuse.png differ
diff --git a/collects/icons/private/svg/misc/64/cyan/magnifying-glass-left-shiny.png b/collects/icons/private/svg/misc/64/cyan/magnifying-glass-left-shiny.png
new file mode 100644
index 0000000000..200704f25b
Binary files /dev/null and b/collects/icons/private/svg/misc/64/cyan/magnifying-glass-left-shiny.png differ
diff --git a/collects/icons/private/svg/misc/64/cyan/magnifying-glass-shiny.png b/collects/icons/private/svg/misc/64/cyan/magnifying-glass-shiny.png
new file mode 100644
index 0000000000..8e79c43bd3
Binary files /dev/null and b/collects/icons/private/svg/misc/64/cyan/magnifying-glass-shiny.png differ
diff --git a/collects/icons/private/svg/misc/64/green/hash-quote-diffuse.png b/collects/icons/private/svg/misc/64/green/hash-quote-diffuse.png
new file mode 100644
index 0000000000..fa16fb12cc
Binary files /dev/null and b/collects/icons/private/svg/misc/64/green/hash-quote-diffuse.png differ
diff --git a/collects/icons/private/svg/misc/64/green/hash-quote-shiny.png b/collects/icons/private/svg/misc/64/green/hash-quote-shiny.png
new file mode 100644
index 0000000000..fcfa172d75
Binary files /dev/null and b/collects/icons/private/svg/misc/64/green/hash-quote-shiny.png differ
diff --git a/collects/icons/private/svg/misc/64/green/magnifying-glass-diffuse.png b/collects/icons/private/svg/misc/64/green/magnifying-glass-diffuse.png
new file mode 100644
index 0000000000..12f88de41b
Binary files /dev/null and b/collects/icons/private/svg/misc/64/green/magnifying-glass-diffuse.png differ
diff --git a/collects/icons/private/svg/misc/64/green/magnifying-glass-left-diffuse.png b/collects/icons/private/svg/misc/64/green/magnifying-glass-left-diffuse.png
new file mode 100644
index 0000000000..adb2f349dc
Binary files /dev/null and b/collects/icons/private/svg/misc/64/green/magnifying-glass-left-diffuse.png differ
diff --git a/collects/icons/private/svg/misc/64/green/magnifying-glass-left-shiny.png b/collects/icons/private/svg/misc/64/green/magnifying-glass-left-shiny.png
new file mode 100644
index 0000000000..96b9f73eb9
Binary files /dev/null and b/collects/icons/private/svg/misc/64/green/magnifying-glass-left-shiny.png differ
diff --git a/collects/icons/private/svg/misc/64/green/magnifying-glass-shiny.png b/collects/icons/private/svg/misc/64/green/magnifying-glass-shiny.png
new file mode 100644
index 0000000000..5ebfe0f523
Binary files /dev/null and b/collects/icons/private/svg/misc/64/green/magnifying-glass-shiny.png differ
diff --git a/collects/icons/private/svg/misc/64/hash-quote-diffuse.png b/collects/icons/private/svg/misc/64/hash-quote-diffuse.png
new file mode 100644
index 0000000000..075e66d737
Binary files /dev/null and b/collects/icons/private/svg/misc/64/hash-quote-diffuse.png differ
diff --git a/collects/icons/private/svg/misc/64/hash-quote-shiny.png b/collects/icons/private/svg/misc/64/hash-quote-shiny.png
new file mode 100644
index 0000000000..b221f4628a
Binary files /dev/null and b/collects/icons/private/svg/misc/64/hash-quote-shiny.png differ
diff --git a/collects/icons/private/svg/misc/64/magnifying-glass-diffuse.png b/collects/icons/private/svg/misc/64/magnifying-glass-diffuse.png
new file mode 100644
index 0000000000..654d4ee19f
Binary files /dev/null and b/collects/icons/private/svg/misc/64/magnifying-glass-diffuse.png differ
diff --git a/collects/icons/private/svg/misc/64/magnifying-glass-left-diffuse.png b/collects/icons/private/svg/misc/64/magnifying-glass-left-diffuse.png
new file mode 100644
index 0000000000..400d19d836
Binary files /dev/null and b/collects/icons/private/svg/misc/64/magnifying-glass-left-diffuse.png differ
diff --git a/collects/icons/private/svg/misc/64/magnifying-glass-left-shiny.png b/collects/icons/private/svg/misc/64/magnifying-glass-left-shiny.png
new file mode 100644
index 0000000000..4bcb9bd822
Binary files /dev/null and b/collects/icons/private/svg/misc/64/magnifying-glass-left-shiny.png differ
diff --git a/collects/icons/private/svg/misc/64/magnifying-glass-shiny.png b/collects/icons/private/svg/misc/64/magnifying-glass-shiny.png
new file mode 100644
index 0000000000..75b3bcf51a
Binary files /dev/null and b/collects/icons/private/svg/misc/64/magnifying-glass-shiny.png differ
diff --git a/collects/icons/private/svg/misc/64/orange/hash-quote-diffuse.png b/collects/icons/private/svg/misc/64/orange/hash-quote-diffuse.png
new file mode 100644
index 0000000000..425a8502b8
Binary files /dev/null and b/collects/icons/private/svg/misc/64/orange/hash-quote-diffuse.png differ
diff --git a/collects/icons/private/svg/misc/64/orange/hash-quote-shiny.png b/collects/icons/private/svg/misc/64/orange/hash-quote-shiny.png
new file mode 100644
index 0000000000..567b2088c8
Binary files /dev/null and b/collects/icons/private/svg/misc/64/orange/hash-quote-shiny.png differ
diff --git a/collects/icons/private/svg/misc/64/orange/magnifying-glass-diffuse.png b/collects/icons/private/svg/misc/64/orange/magnifying-glass-diffuse.png
new file mode 100644
index 0000000000..915e23c685
Binary files /dev/null and b/collects/icons/private/svg/misc/64/orange/magnifying-glass-diffuse.png differ
diff --git a/collects/icons/private/svg/misc/64/orange/magnifying-glass-left-diffuse.png b/collects/icons/private/svg/misc/64/orange/magnifying-glass-left-diffuse.png
new file mode 100644
index 0000000000..c8ed2f57f7
Binary files /dev/null and b/collects/icons/private/svg/misc/64/orange/magnifying-glass-left-diffuse.png differ
diff --git a/collects/icons/private/svg/misc/64/orange/magnifying-glass-left-shiny.png b/collects/icons/private/svg/misc/64/orange/magnifying-glass-left-shiny.png
new file mode 100644
index 0000000000..2dd1e0ab13
Binary files /dev/null and b/collects/icons/private/svg/misc/64/orange/magnifying-glass-left-shiny.png differ
diff --git a/collects/icons/private/svg/misc/64/orange/magnifying-glass-shiny.png b/collects/icons/private/svg/misc/64/orange/magnifying-glass-shiny.png
new file mode 100644
index 0000000000..15900f6c7e
Binary files /dev/null and b/collects/icons/private/svg/misc/64/orange/magnifying-glass-shiny.png differ
diff --git a/collects/icons/private/svg/misc/64/purple/hash-quote-diffuse.png b/collects/icons/private/svg/misc/64/purple/hash-quote-diffuse.png
new file mode 100644
index 0000000000..1320f6695f
Binary files /dev/null and b/collects/icons/private/svg/misc/64/purple/hash-quote-diffuse.png differ
diff --git a/collects/icons/private/svg/misc/64/purple/hash-quote-shiny.png b/collects/icons/private/svg/misc/64/purple/hash-quote-shiny.png
new file mode 100644
index 0000000000..521c8e2250
Binary files /dev/null and b/collects/icons/private/svg/misc/64/purple/hash-quote-shiny.png differ
diff --git a/collects/icons/private/svg/misc/64/purple/magnifying-glass-diffuse.png b/collects/icons/private/svg/misc/64/purple/magnifying-glass-diffuse.png
new file mode 100644
index 0000000000..21a41ef5f2
Binary files /dev/null and b/collects/icons/private/svg/misc/64/purple/magnifying-glass-diffuse.png differ
diff --git a/collects/icons/private/svg/misc/64/purple/magnifying-glass-left-diffuse.png b/collects/icons/private/svg/misc/64/purple/magnifying-glass-left-diffuse.png
new file mode 100644
index 0000000000..44bb1a3451
Binary files /dev/null and b/collects/icons/private/svg/misc/64/purple/magnifying-glass-left-diffuse.png differ
diff --git a/collects/icons/private/svg/misc/64/purple/magnifying-glass-left-shiny.png b/collects/icons/private/svg/misc/64/purple/magnifying-glass-left-shiny.png
new file mode 100644
index 0000000000..03f5e08eec
Binary files /dev/null and b/collects/icons/private/svg/misc/64/purple/magnifying-glass-left-shiny.png differ
diff --git a/collects/icons/private/svg/misc/64/purple/magnifying-glass-shiny.png b/collects/icons/private/svg/misc/64/purple/magnifying-glass-shiny.png
new file mode 100644
index 0000000000..dfbd2f2909
Binary files /dev/null and b/collects/icons/private/svg/misc/64/purple/magnifying-glass-shiny.png differ
diff --git a/collects/icons/private/svg/misc/64/red/hash-quote-diffuse.png b/collects/icons/private/svg/misc/64/red/hash-quote-diffuse.png
new file mode 100644
index 0000000000..b92b73dceb
Binary files /dev/null and b/collects/icons/private/svg/misc/64/red/hash-quote-diffuse.png differ
diff --git a/collects/icons/private/svg/misc/64/red/hash-quote-shiny.png b/collects/icons/private/svg/misc/64/red/hash-quote-shiny.png
new file mode 100644
index 0000000000..cb898f1478
Binary files /dev/null and b/collects/icons/private/svg/misc/64/red/hash-quote-shiny.png differ
diff --git a/collects/icons/private/svg/misc/64/red/magnifying-glass-diffuse.png b/collects/icons/private/svg/misc/64/red/magnifying-glass-diffuse.png
new file mode 100644
index 0000000000..6a15b35f29
Binary files /dev/null and b/collects/icons/private/svg/misc/64/red/magnifying-glass-diffuse.png differ
diff --git a/collects/icons/private/svg/misc/64/red/magnifying-glass-left-diffuse.png b/collects/icons/private/svg/misc/64/red/magnifying-glass-left-diffuse.png
new file mode 100644
index 0000000000..d30d0e959d
Binary files /dev/null and b/collects/icons/private/svg/misc/64/red/magnifying-glass-left-diffuse.png differ
diff --git a/collects/icons/private/svg/misc/64/red/magnifying-glass-left-shiny.png b/collects/icons/private/svg/misc/64/red/magnifying-glass-left-shiny.png
new file mode 100644
index 0000000000..47df9e18cb
Binary files /dev/null and b/collects/icons/private/svg/misc/64/red/magnifying-glass-left-shiny.png differ
diff --git a/collects/icons/private/svg/misc/64/red/magnifying-glass-shiny.png b/collects/icons/private/svg/misc/64/red/magnifying-glass-shiny.png
new file mode 100644
index 0000000000..a2aa853ee4
Binary files /dev/null and b/collects/icons/private/svg/misc/64/red/magnifying-glass-shiny.png differ
diff --git a/collects/icons/private/svg/misc/64/white/hash-quote-diffuse.png b/collects/icons/private/svg/misc/64/white/hash-quote-diffuse.png
new file mode 100644
index 0000000000..db03fb5441
Binary files /dev/null and b/collects/icons/private/svg/misc/64/white/hash-quote-diffuse.png differ
diff --git a/collects/icons/private/svg/misc/64/white/hash-quote-shiny.png b/collects/icons/private/svg/misc/64/white/hash-quote-shiny.png
new file mode 100644
index 0000000000..8268396bda
Binary files /dev/null and b/collects/icons/private/svg/misc/64/white/hash-quote-shiny.png differ
diff --git a/collects/icons/private/svg/misc/64/white/magnifying-glass-diffuse.png b/collects/icons/private/svg/misc/64/white/magnifying-glass-diffuse.png
new file mode 100644
index 0000000000..fd46fda06c
Binary files /dev/null and b/collects/icons/private/svg/misc/64/white/magnifying-glass-diffuse.png differ
diff --git a/collects/icons/private/svg/misc/64/white/magnifying-glass-left-diffuse.png b/collects/icons/private/svg/misc/64/white/magnifying-glass-left-diffuse.png
new file mode 100644
index 0000000000..93bc172be0
Binary files /dev/null and b/collects/icons/private/svg/misc/64/white/magnifying-glass-left-diffuse.png differ
diff --git a/collects/icons/private/svg/misc/64/white/magnifying-glass-left-shiny.png b/collects/icons/private/svg/misc/64/white/magnifying-glass-left-shiny.png
new file mode 100644
index 0000000000..3250d214cd
Binary files /dev/null and b/collects/icons/private/svg/misc/64/white/magnifying-glass-left-shiny.png differ
diff --git a/collects/icons/private/svg/misc/64/white/magnifying-glass-shiny.png b/collects/icons/private/svg/misc/64/white/magnifying-glass-shiny.png
new file mode 100644
index 0000000000..838b492d48
Binary files /dev/null and b/collects/icons/private/svg/misc/64/white/magnifying-glass-shiny.png differ
diff --git a/collects/icons/private/svg/misc/hash-quote-diffuse.svg b/collects/icons/private/svg/misc/hash-quote-diffuse.svg
new file mode 100644
index 0000000000..5d25465525
--- /dev/null
+++ b/collects/icons/private/svg/misc/hash-quote-diffuse.svg
@@ -0,0 +1,253 @@
+
+
+
+
diff --git a/collects/icons/private/svg/misc/hash-quote-shiny.svg b/collects/icons/private/svg/misc/hash-quote-shiny.svg
new file mode 100644
index 0000000000..0f4d381423
--- /dev/null
+++ b/collects/icons/private/svg/misc/hash-quote-shiny.svg
@@ -0,0 +1,389 @@
+
+
+
+
diff --git a/collects/icons/private/svg/misc/magnifying-glass-diffuse.svg b/collects/icons/private/svg/misc/magnifying-glass-diffuse.svg
new file mode 100644
index 0000000000..e50cddcc46
--- /dev/null
+++ b/collects/icons/private/svg/misc/magnifying-glass-diffuse.svg
@@ -0,0 +1,375 @@
+
+
+
+
diff --git a/collects/icons/private/svg/misc/magnifying-glass-left-diffuse.svg b/collects/icons/private/svg/misc/magnifying-glass-left-diffuse.svg
new file mode 100644
index 0000000000..ad8d106f4d
--- /dev/null
+++ b/collects/icons/private/svg/misc/magnifying-glass-left-diffuse.svg
@@ -0,0 +1,510 @@
+
+
+
+
diff --git a/collects/icons/private/svg/misc/magnifying-glass-left-shiny.svg b/collects/icons/private/svg/misc/magnifying-glass-left-shiny.svg
new file mode 100644
index 0000000000..54c7f77dea
--- /dev/null
+++ b/collects/icons/private/svg/misc/magnifying-glass-left-shiny.svg
@@ -0,0 +1,338 @@
+
+
+
+
diff --git a/collects/icons/private/svg/misc/magnifying-glass-shiny.svg b/collects/icons/private/svg/misc/magnifying-glass-shiny.svg
new file mode 100644
index 0000000000..5ae3d0288b
--- /dev/null
+++ b/collects/icons/private/svg/misc/magnifying-glass-shiny.svg
@@ -0,0 +1,330 @@
+
+
+
+
diff --git a/collects/icons/private/svg/render-png.rkt b/collects/icons/private/svg/render-png.rkt
new file mode 100644
index 0000000000..4d85280122
--- /dev/null
+++ b/collects/icons/private/svg/render-png.rkt
@@ -0,0 +1,63 @@
+#lang racket/base
+
+;; Re-renders every SVG as PNGs of different sizes
+
+(require racket/file xml
+ "../utils.rkt")
+
+(define render-icon (make-parameter render/inkscape))
+
+(define (clean-icons dir)
+ (printf "Cleaning out icons in ~a~n" dir)
+ (printf "----------------------------------------~n")
+ (define files (directory-list dir))
+ (for ([file (in-list files)])
+ (define full-path (build-path dir file))
+ (when (directory-exists? full-path)
+ (cond [(exact-integer? (string->number (path->string file)))
+ (printf "Deleting directory ~a~n" full-path)
+ (delete-directory/files full-path)]
+ [else
+ (clean-icons full-path)]))))
+
+(define (render-icon/color src-dir src-file color height)
+ (cond [color
+ (define src-path (build-path src-dir src-file))
+ (define dest-dir (build-path src-dir (format "~a/~a" (number->string height) color)))
+ (define dest-file (path-replace-suffix src-file ".png"))
+ (define doc (call-with-input-file* src-path read-xml))
+ (define new-doc (colorize-svg doc
+ (hash-ref diffuse-gradient-stops color)
+ (hash-ref undershine-gradient-stops color)))
+ (when new-doc
+ (define temp-path (make-temporary-file (format "~a-~~a.svg"
+ (path-replace-suffix src-file ""))))
+ (dynamic-wind
+ (λ () (void))
+ (λ ()
+ (call-with-output-file* temp-path (λ (out) (write-xml new-doc out))
+ #:exists 'truncate)
+ ((render-icon) temp-path dest-dir dest-file height))
+ (λ () (delete-file temp-path))))]
+ [else
+ (define src-path (build-path src-dir src-file))
+ (define dest-dir (build-path src-dir (number->string height)))
+ (define dest-file (path-replace-suffix src-file ".png"))
+ ((render-icon) src-path dest-dir dest-file height)]))
+
+(define (render-icons dir)
+ (printf "Rendering icons in ~a~n" dir)
+ (printf "----------------------------------------~n")
+ (define files (directory-list dir))
+ (define-values (base-dir dir-path _) (split-path dir))
+ (define heights (icon-category-heights (path->string dir-path)))
+ (for ([file (in-list files)])
+ (define file-path (build-path dir file))
+ (cond [(directory-exists? file-path) (render-icons file-path)]
+ [(svg-file? file)
+ (for* ([height (in-list heights)]
+ [color (in-list icon-colors)])
+ (render-icon/color dir file color height))])))
+
+(clean-icons svg-icons-base-path)
+(render-icons svg-icons-base-path)
diff --git a/collects/icons/private/svg/run/16/back-diffuse.png b/collects/icons/private/svg/run/16/back-diffuse.png
new file mode 100644
index 0000000000..9c9b76a855
Binary files /dev/null and b/collects/icons/private/svg/run/16/back-diffuse.png differ
diff --git a/collects/icons/private/svg/run/16/back-shiny.png b/collects/icons/private/svg/run/16/back-shiny.png
new file mode 100644
index 0000000000..5d61d570d3
Binary files /dev/null and b/collects/icons/private/svg/run/16/back-shiny.png differ
diff --git a/collects/icons/private/svg/run/16/bar-diffuse.png b/collects/icons/private/svg/run/16/bar-diffuse.png
new file mode 100644
index 0000000000..7f5ca839e6
Binary files /dev/null and b/collects/icons/private/svg/run/16/bar-diffuse.png differ
diff --git a/collects/icons/private/svg/run/16/bar-shiny.png b/collects/icons/private/svg/run/16/bar-shiny.png
new file mode 100644
index 0000000000..9267bcaae5
Binary files /dev/null and b/collects/icons/private/svg/run/16/bar-shiny.png differ
diff --git a/collects/icons/private/svg/run/16/black/back-diffuse.png b/collects/icons/private/svg/run/16/black/back-diffuse.png
new file mode 100644
index 0000000000..d8121b67bd
Binary files /dev/null and b/collects/icons/private/svg/run/16/black/back-diffuse.png differ
diff --git a/collects/icons/private/svg/run/16/black/back-shiny.png b/collects/icons/private/svg/run/16/black/back-shiny.png
new file mode 100644
index 0000000000..a4bda31a07
Binary files /dev/null and b/collects/icons/private/svg/run/16/black/back-shiny.png differ
diff --git a/collects/icons/private/svg/run/16/black/bar-diffuse.png b/collects/icons/private/svg/run/16/black/bar-diffuse.png
new file mode 100644
index 0000000000..567b2b260f
Binary files /dev/null and b/collects/icons/private/svg/run/16/black/bar-diffuse.png differ
diff --git a/collects/icons/private/svg/run/16/black/bar-shiny.png b/collects/icons/private/svg/run/16/black/bar-shiny.png
new file mode 100644
index 0000000000..fde49295b0
Binary files /dev/null and b/collects/icons/private/svg/run/16/black/bar-shiny.png differ
diff --git a/collects/icons/private/svg/run/16/black/go-diffuse.png b/collects/icons/private/svg/run/16/black/go-diffuse.png
new file mode 100644
index 0000000000..2d39da465e
Binary files /dev/null and b/collects/icons/private/svg/run/16/black/go-diffuse.png differ
diff --git a/collects/icons/private/svg/run/16/black/go-shiny.png b/collects/icons/private/svg/run/16/black/go-shiny.png
new file mode 100644
index 0000000000..8e446de5ef
Binary files /dev/null and b/collects/icons/private/svg/run/16/black/go-shiny.png differ
diff --git a/collects/icons/private/svg/run/16/black/stop-diffuse.png b/collects/icons/private/svg/run/16/black/stop-diffuse.png
new file mode 100644
index 0000000000..9e3c38c7a0
Binary files /dev/null and b/collects/icons/private/svg/run/16/black/stop-diffuse.png differ
diff --git a/collects/icons/private/svg/run/16/black/stop-shiny.png b/collects/icons/private/svg/run/16/black/stop-shiny.png
new file mode 100644
index 0000000000..8805fef02a
Binary files /dev/null and b/collects/icons/private/svg/run/16/black/stop-shiny.png differ
diff --git a/collects/icons/private/svg/run/16/blue/back-diffuse.png b/collects/icons/private/svg/run/16/blue/back-diffuse.png
new file mode 100644
index 0000000000..eaef5b70cc
Binary files /dev/null and b/collects/icons/private/svg/run/16/blue/back-diffuse.png differ
diff --git a/collects/icons/private/svg/run/16/blue/back-shiny.png b/collects/icons/private/svg/run/16/blue/back-shiny.png
new file mode 100644
index 0000000000..83e34f3dcd
Binary files /dev/null and b/collects/icons/private/svg/run/16/blue/back-shiny.png differ
diff --git a/collects/icons/private/svg/run/16/blue/bar-diffuse.png b/collects/icons/private/svg/run/16/blue/bar-diffuse.png
new file mode 100644
index 0000000000..882a45381c
Binary files /dev/null and b/collects/icons/private/svg/run/16/blue/bar-diffuse.png differ
diff --git a/collects/icons/private/svg/run/16/blue/bar-shiny.png b/collects/icons/private/svg/run/16/blue/bar-shiny.png
new file mode 100644
index 0000000000..68abd4fee8
Binary files /dev/null and b/collects/icons/private/svg/run/16/blue/bar-shiny.png differ
diff --git a/collects/icons/private/svg/run/16/blue/go-diffuse.png b/collects/icons/private/svg/run/16/blue/go-diffuse.png
new file mode 100644
index 0000000000..07272fa991
Binary files /dev/null and b/collects/icons/private/svg/run/16/blue/go-diffuse.png differ
diff --git a/collects/icons/private/svg/run/16/blue/go-shiny.png b/collects/icons/private/svg/run/16/blue/go-shiny.png
new file mode 100644
index 0000000000..aa9a5c9cdb
Binary files /dev/null and b/collects/icons/private/svg/run/16/blue/go-shiny.png differ
diff --git a/collects/icons/private/svg/run/16/blue/stop-diffuse.png b/collects/icons/private/svg/run/16/blue/stop-diffuse.png
new file mode 100644
index 0000000000..3da0283b81
Binary files /dev/null and b/collects/icons/private/svg/run/16/blue/stop-diffuse.png differ
diff --git a/collects/icons/private/svg/run/16/blue/stop-shiny.png b/collects/icons/private/svg/run/16/blue/stop-shiny.png
new file mode 100644
index 0000000000..85b04d2c6f
Binary files /dev/null and b/collects/icons/private/svg/run/16/blue/stop-shiny.png differ
diff --git a/collects/icons/private/svg/run/16/cyan/back-diffuse.png b/collects/icons/private/svg/run/16/cyan/back-diffuse.png
new file mode 100644
index 0000000000..055d4c56e9
Binary files /dev/null and b/collects/icons/private/svg/run/16/cyan/back-diffuse.png differ
diff --git a/collects/icons/private/svg/run/16/cyan/back-shiny.png b/collects/icons/private/svg/run/16/cyan/back-shiny.png
new file mode 100644
index 0000000000..c1f719946f
Binary files /dev/null and b/collects/icons/private/svg/run/16/cyan/back-shiny.png differ
diff --git a/collects/icons/private/svg/run/16/cyan/bar-diffuse.png b/collects/icons/private/svg/run/16/cyan/bar-diffuse.png
new file mode 100644
index 0000000000..455152b88e
Binary files /dev/null and b/collects/icons/private/svg/run/16/cyan/bar-diffuse.png differ
diff --git a/collects/icons/private/svg/run/16/cyan/bar-shiny.png b/collects/icons/private/svg/run/16/cyan/bar-shiny.png
new file mode 100644
index 0000000000..f28be9afa3
Binary files /dev/null and b/collects/icons/private/svg/run/16/cyan/bar-shiny.png differ
diff --git a/collects/icons/private/svg/run/16/cyan/go-diffuse.png b/collects/icons/private/svg/run/16/cyan/go-diffuse.png
new file mode 100644
index 0000000000..9d6b7677b0
Binary files /dev/null and b/collects/icons/private/svg/run/16/cyan/go-diffuse.png differ
diff --git a/collects/icons/private/svg/run/16/cyan/go-shiny.png b/collects/icons/private/svg/run/16/cyan/go-shiny.png
new file mode 100644
index 0000000000..bd6b9db395
Binary files /dev/null and b/collects/icons/private/svg/run/16/cyan/go-shiny.png differ
diff --git a/collects/icons/private/svg/run/16/cyan/stop-diffuse.png b/collects/icons/private/svg/run/16/cyan/stop-diffuse.png
new file mode 100644
index 0000000000..3b2ed9670f
Binary files /dev/null and b/collects/icons/private/svg/run/16/cyan/stop-diffuse.png differ
diff --git a/collects/icons/private/svg/run/16/cyan/stop-shiny.png b/collects/icons/private/svg/run/16/cyan/stop-shiny.png
new file mode 100644
index 0000000000..bd81ea7e50
Binary files /dev/null and b/collects/icons/private/svg/run/16/cyan/stop-shiny.png differ
diff --git a/collects/icons/private/svg/run/16/go-diffuse.png b/collects/icons/private/svg/run/16/go-diffuse.png
new file mode 100644
index 0000000000..7474aa9de6
Binary files /dev/null and b/collects/icons/private/svg/run/16/go-diffuse.png differ
diff --git a/collects/icons/private/svg/run/16/go-shiny.png b/collects/icons/private/svg/run/16/go-shiny.png
new file mode 100644
index 0000000000..f19f94cb56
Binary files /dev/null and b/collects/icons/private/svg/run/16/go-shiny.png differ
diff --git a/collects/icons/private/svg/run/16/green/back-diffuse.png b/collects/icons/private/svg/run/16/green/back-diffuse.png
new file mode 100644
index 0000000000..8ad1d571bf
Binary files /dev/null and b/collects/icons/private/svg/run/16/green/back-diffuse.png differ
diff --git a/collects/icons/private/svg/run/16/green/back-shiny.png b/collects/icons/private/svg/run/16/green/back-shiny.png
new file mode 100644
index 0000000000..7183812f68
Binary files /dev/null and b/collects/icons/private/svg/run/16/green/back-shiny.png differ
diff --git a/collects/icons/private/svg/run/16/green/bar-diffuse.png b/collects/icons/private/svg/run/16/green/bar-diffuse.png
new file mode 100644
index 0000000000..da00f404e9
Binary files /dev/null and b/collects/icons/private/svg/run/16/green/bar-diffuse.png differ
diff --git a/collects/icons/private/svg/run/16/green/bar-shiny.png b/collects/icons/private/svg/run/16/green/bar-shiny.png
new file mode 100644
index 0000000000..88668a539a
Binary files /dev/null and b/collects/icons/private/svg/run/16/green/bar-shiny.png differ
diff --git a/collects/icons/private/svg/run/16/green/go-diffuse.png b/collects/icons/private/svg/run/16/green/go-diffuse.png
new file mode 100644
index 0000000000..f023674691
Binary files /dev/null and b/collects/icons/private/svg/run/16/green/go-diffuse.png differ
diff --git a/collects/icons/private/svg/run/16/green/go-shiny.png b/collects/icons/private/svg/run/16/green/go-shiny.png
new file mode 100644
index 0000000000..e3caa58e13
Binary files /dev/null and b/collects/icons/private/svg/run/16/green/go-shiny.png differ
diff --git a/collects/icons/private/svg/run/16/green/stop-diffuse.png b/collects/icons/private/svg/run/16/green/stop-diffuse.png
new file mode 100644
index 0000000000..5d8069334d
Binary files /dev/null and b/collects/icons/private/svg/run/16/green/stop-diffuse.png differ
diff --git a/collects/icons/private/svg/run/16/green/stop-shiny.png b/collects/icons/private/svg/run/16/green/stop-shiny.png
new file mode 100644
index 0000000000..0ce1501651
Binary files /dev/null and b/collects/icons/private/svg/run/16/green/stop-shiny.png differ
diff --git a/collects/icons/private/svg/run/16/orange/back-diffuse.png b/collects/icons/private/svg/run/16/orange/back-diffuse.png
new file mode 100644
index 0000000000..f9fed23b0e
Binary files /dev/null and b/collects/icons/private/svg/run/16/orange/back-diffuse.png differ
diff --git a/collects/icons/private/svg/run/16/orange/back-shiny.png b/collects/icons/private/svg/run/16/orange/back-shiny.png
new file mode 100644
index 0000000000..ef727535d5
Binary files /dev/null and b/collects/icons/private/svg/run/16/orange/back-shiny.png differ
diff --git a/collects/icons/private/svg/run/16/orange/bar-diffuse.png b/collects/icons/private/svg/run/16/orange/bar-diffuse.png
new file mode 100644
index 0000000000..c9ea537b99
Binary files /dev/null and b/collects/icons/private/svg/run/16/orange/bar-diffuse.png differ
diff --git a/collects/icons/private/svg/run/16/orange/bar-shiny.png b/collects/icons/private/svg/run/16/orange/bar-shiny.png
new file mode 100644
index 0000000000..b968f2a5e0
Binary files /dev/null and b/collects/icons/private/svg/run/16/orange/bar-shiny.png differ
diff --git a/collects/icons/private/svg/run/16/orange/go-diffuse.png b/collects/icons/private/svg/run/16/orange/go-diffuse.png
new file mode 100644
index 0000000000..0602654cb7
Binary files /dev/null and b/collects/icons/private/svg/run/16/orange/go-diffuse.png differ
diff --git a/collects/icons/private/svg/run/16/orange/go-shiny.png b/collects/icons/private/svg/run/16/orange/go-shiny.png
new file mode 100644
index 0000000000..5c0331028b
Binary files /dev/null and b/collects/icons/private/svg/run/16/orange/go-shiny.png differ
diff --git a/collects/icons/private/svg/run/16/orange/stop-diffuse.png b/collects/icons/private/svg/run/16/orange/stop-diffuse.png
new file mode 100644
index 0000000000..0c4e8482bc
Binary files /dev/null and b/collects/icons/private/svg/run/16/orange/stop-diffuse.png differ
diff --git a/collects/icons/private/svg/run/16/orange/stop-shiny.png b/collects/icons/private/svg/run/16/orange/stop-shiny.png
new file mode 100644
index 0000000000..01de18756a
Binary files /dev/null and b/collects/icons/private/svg/run/16/orange/stop-shiny.png differ
diff --git a/collects/icons/private/svg/run/16/purple/back-diffuse.png b/collects/icons/private/svg/run/16/purple/back-diffuse.png
new file mode 100644
index 0000000000..8ac0c57b4d
Binary files /dev/null and b/collects/icons/private/svg/run/16/purple/back-diffuse.png differ
diff --git a/collects/icons/private/svg/run/16/purple/back-shiny.png b/collects/icons/private/svg/run/16/purple/back-shiny.png
new file mode 100644
index 0000000000..ad02165329
Binary files /dev/null and b/collects/icons/private/svg/run/16/purple/back-shiny.png differ
diff --git a/collects/icons/private/svg/run/16/purple/bar-diffuse.png b/collects/icons/private/svg/run/16/purple/bar-diffuse.png
new file mode 100644
index 0000000000..ebaf74dcc6
Binary files /dev/null and b/collects/icons/private/svg/run/16/purple/bar-diffuse.png differ
diff --git a/collects/icons/private/svg/run/16/purple/bar-shiny.png b/collects/icons/private/svg/run/16/purple/bar-shiny.png
new file mode 100644
index 0000000000..542d5199cc
Binary files /dev/null and b/collects/icons/private/svg/run/16/purple/bar-shiny.png differ
diff --git a/collects/icons/private/svg/run/16/purple/go-diffuse.png b/collects/icons/private/svg/run/16/purple/go-diffuse.png
new file mode 100644
index 0000000000..8025e6dec0
Binary files /dev/null and b/collects/icons/private/svg/run/16/purple/go-diffuse.png differ
diff --git a/collects/icons/private/svg/run/16/purple/go-shiny.png b/collects/icons/private/svg/run/16/purple/go-shiny.png
new file mode 100644
index 0000000000..5297e063fb
Binary files /dev/null and b/collects/icons/private/svg/run/16/purple/go-shiny.png differ
diff --git a/collects/icons/private/svg/run/16/purple/stop-diffuse.png b/collects/icons/private/svg/run/16/purple/stop-diffuse.png
new file mode 100644
index 0000000000..47bba74bd2
Binary files /dev/null and b/collects/icons/private/svg/run/16/purple/stop-diffuse.png differ
diff --git a/collects/icons/private/svg/run/16/purple/stop-shiny.png b/collects/icons/private/svg/run/16/purple/stop-shiny.png
new file mode 100644
index 0000000000..bf5fc3cda2
Binary files /dev/null and b/collects/icons/private/svg/run/16/purple/stop-shiny.png differ
diff --git a/collects/icons/private/svg/run/16/red/back-diffuse.png b/collects/icons/private/svg/run/16/red/back-diffuse.png
new file mode 100644
index 0000000000..294ec1a9de
Binary files /dev/null and b/collects/icons/private/svg/run/16/red/back-diffuse.png differ
diff --git a/collects/icons/private/svg/run/16/red/back-shiny.png b/collects/icons/private/svg/run/16/red/back-shiny.png
new file mode 100644
index 0000000000..6cfa5ec362
Binary files /dev/null and b/collects/icons/private/svg/run/16/red/back-shiny.png differ
diff --git a/collects/icons/private/svg/run/16/red/bar-diffuse.png b/collects/icons/private/svg/run/16/red/bar-diffuse.png
new file mode 100644
index 0000000000..9952e97931
Binary files /dev/null and b/collects/icons/private/svg/run/16/red/bar-diffuse.png differ
diff --git a/collects/icons/private/svg/run/16/red/bar-shiny.png b/collects/icons/private/svg/run/16/red/bar-shiny.png
new file mode 100644
index 0000000000..c872c410bf
Binary files /dev/null and b/collects/icons/private/svg/run/16/red/bar-shiny.png differ
diff --git a/collects/icons/private/svg/run/16/red/go-diffuse.png b/collects/icons/private/svg/run/16/red/go-diffuse.png
new file mode 100644
index 0000000000..f34ee471b5
Binary files /dev/null and b/collects/icons/private/svg/run/16/red/go-diffuse.png differ
diff --git a/collects/icons/private/svg/run/16/red/go-shiny.png b/collects/icons/private/svg/run/16/red/go-shiny.png
new file mode 100644
index 0000000000..22af70914f
Binary files /dev/null and b/collects/icons/private/svg/run/16/red/go-shiny.png differ
diff --git a/collects/icons/private/svg/run/16/red/stop-diffuse.png b/collects/icons/private/svg/run/16/red/stop-diffuse.png
new file mode 100644
index 0000000000..99eebfd060
Binary files /dev/null and b/collects/icons/private/svg/run/16/red/stop-diffuse.png differ
diff --git a/collects/icons/private/svg/run/16/red/stop-shiny.png b/collects/icons/private/svg/run/16/red/stop-shiny.png
new file mode 100644
index 0000000000..abd212b4ff
Binary files /dev/null and b/collects/icons/private/svg/run/16/red/stop-shiny.png differ
diff --git a/collects/icons/private/svg/run/16/stop-diffuse.png b/collects/icons/private/svg/run/16/stop-diffuse.png
new file mode 100644
index 0000000000..539e2c398a
Binary files /dev/null and b/collects/icons/private/svg/run/16/stop-diffuse.png differ
diff --git a/collects/icons/private/svg/run/16/stop-shiny.png b/collects/icons/private/svg/run/16/stop-shiny.png
new file mode 100644
index 0000000000..17840ea07d
Binary files /dev/null and b/collects/icons/private/svg/run/16/stop-shiny.png differ
diff --git a/collects/icons/private/svg/run/16/white/back-diffuse.png b/collects/icons/private/svg/run/16/white/back-diffuse.png
new file mode 100644
index 0000000000..0e31bb8062
Binary files /dev/null and b/collects/icons/private/svg/run/16/white/back-diffuse.png differ
diff --git a/collects/icons/private/svg/run/16/white/back-shiny.png b/collects/icons/private/svg/run/16/white/back-shiny.png
new file mode 100644
index 0000000000..12ff58e81c
Binary files /dev/null and b/collects/icons/private/svg/run/16/white/back-shiny.png differ
diff --git a/collects/icons/private/svg/run/16/white/bar-diffuse.png b/collects/icons/private/svg/run/16/white/bar-diffuse.png
new file mode 100644
index 0000000000..6079bbe322
Binary files /dev/null and b/collects/icons/private/svg/run/16/white/bar-diffuse.png differ
diff --git a/collects/icons/private/svg/run/16/white/bar-shiny.png b/collects/icons/private/svg/run/16/white/bar-shiny.png
new file mode 100644
index 0000000000..50934538b4
Binary files /dev/null and b/collects/icons/private/svg/run/16/white/bar-shiny.png differ
diff --git a/collects/icons/private/svg/run/16/white/go-diffuse.png b/collects/icons/private/svg/run/16/white/go-diffuse.png
new file mode 100644
index 0000000000..ed65f2835b
Binary files /dev/null and b/collects/icons/private/svg/run/16/white/go-diffuse.png differ
diff --git a/collects/icons/private/svg/run/16/white/go-shiny.png b/collects/icons/private/svg/run/16/white/go-shiny.png
new file mode 100644
index 0000000000..5d56d0c8b5
Binary files /dev/null and b/collects/icons/private/svg/run/16/white/go-shiny.png differ
diff --git a/collects/icons/private/svg/run/16/white/stop-diffuse.png b/collects/icons/private/svg/run/16/white/stop-diffuse.png
new file mode 100644
index 0000000000..8d426c51e2
Binary files /dev/null and b/collects/icons/private/svg/run/16/white/stop-diffuse.png differ
diff --git a/collects/icons/private/svg/run/16/white/stop-shiny.png b/collects/icons/private/svg/run/16/white/stop-shiny.png
new file mode 100644
index 0000000000..ed30e2295e
Binary files /dev/null and b/collects/icons/private/svg/run/16/white/stop-shiny.png differ
diff --git a/collects/icons/private/svg/run/32/back-diffuse.png b/collects/icons/private/svg/run/32/back-diffuse.png
new file mode 100644
index 0000000000..25ca89a1f5
Binary files /dev/null and b/collects/icons/private/svg/run/32/back-diffuse.png differ
diff --git a/collects/icons/private/svg/run/32/back-shiny.png b/collects/icons/private/svg/run/32/back-shiny.png
new file mode 100644
index 0000000000..61b5f11077
Binary files /dev/null and b/collects/icons/private/svg/run/32/back-shiny.png differ
diff --git a/collects/icons/private/svg/run/32/bar-diffuse.png b/collects/icons/private/svg/run/32/bar-diffuse.png
new file mode 100644
index 0000000000..57ce55e063
Binary files /dev/null and b/collects/icons/private/svg/run/32/bar-diffuse.png differ
diff --git a/collects/icons/private/svg/run/32/bar-shiny.png b/collects/icons/private/svg/run/32/bar-shiny.png
new file mode 100644
index 0000000000..5a2095cdcf
Binary files /dev/null and b/collects/icons/private/svg/run/32/bar-shiny.png differ
diff --git a/collects/icons/private/svg/run/32/black/back-diffuse.png b/collects/icons/private/svg/run/32/black/back-diffuse.png
new file mode 100644
index 0000000000..c2ca877fbd
Binary files /dev/null and b/collects/icons/private/svg/run/32/black/back-diffuse.png differ
diff --git a/collects/icons/private/svg/run/32/black/back-shiny.png b/collects/icons/private/svg/run/32/black/back-shiny.png
new file mode 100644
index 0000000000..307c4a66de
Binary files /dev/null and b/collects/icons/private/svg/run/32/black/back-shiny.png differ
diff --git a/collects/icons/private/svg/run/32/black/bar-diffuse.png b/collects/icons/private/svg/run/32/black/bar-diffuse.png
new file mode 100644
index 0000000000..ef2f2d4a46
Binary files /dev/null and b/collects/icons/private/svg/run/32/black/bar-diffuse.png differ
diff --git a/collects/icons/private/svg/run/32/black/bar-shiny.png b/collects/icons/private/svg/run/32/black/bar-shiny.png
new file mode 100644
index 0000000000..bd19c77b14
Binary files /dev/null and b/collects/icons/private/svg/run/32/black/bar-shiny.png differ
diff --git a/collects/icons/private/svg/run/32/black/go-diffuse.png b/collects/icons/private/svg/run/32/black/go-diffuse.png
new file mode 100644
index 0000000000..c0953b3808
Binary files /dev/null and b/collects/icons/private/svg/run/32/black/go-diffuse.png differ
diff --git a/collects/icons/private/svg/run/32/black/go-shiny.png b/collects/icons/private/svg/run/32/black/go-shiny.png
new file mode 100644
index 0000000000..80433ab76e
Binary files /dev/null and b/collects/icons/private/svg/run/32/black/go-shiny.png differ
diff --git a/collects/icons/private/svg/run/32/black/stop-diffuse.png b/collects/icons/private/svg/run/32/black/stop-diffuse.png
new file mode 100644
index 0000000000..59f38e77e2
Binary files /dev/null and b/collects/icons/private/svg/run/32/black/stop-diffuse.png differ
diff --git a/collects/icons/private/svg/run/32/black/stop-shiny.png b/collects/icons/private/svg/run/32/black/stop-shiny.png
new file mode 100644
index 0000000000..04bcf1c856
Binary files /dev/null and b/collects/icons/private/svg/run/32/black/stop-shiny.png differ
diff --git a/collects/icons/private/svg/run/32/blue/back-diffuse.png b/collects/icons/private/svg/run/32/blue/back-diffuse.png
new file mode 100644
index 0000000000..b1a3ce6a7f
Binary files /dev/null and b/collects/icons/private/svg/run/32/blue/back-diffuse.png differ
diff --git a/collects/icons/private/svg/run/32/blue/back-shiny.png b/collects/icons/private/svg/run/32/blue/back-shiny.png
new file mode 100644
index 0000000000..e0b115fc2c
Binary files /dev/null and b/collects/icons/private/svg/run/32/blue/back-shiny.png differ
diff --git a/collects/icons/private/svg/run/32/blue/bar-diffuse.png b/collects/icons/private/svg/run/32/blue/bar-diffuse.png
new file mode 100644
index 0000000000..e32d2759b9
Binary files /dev/null and b/collects/icons/private/svg/run/32/blue/bar-diffuse.png differ
diff --git a/collects/icons/private/svg/run/32/blue/bar-shiny.png b/collects/icons/private/svg/run/32/blue/bar-shiny.png
new file mode 100644
index 0000000000..bf935df90c
Binary files /dev/null and b/collects/icons/private/svg/run/32/blue/bar-shiny.png differ
diff --git a/collects/icons/private/svg/run/32/blue/go-diffuse.png b/collects/icons/private/svg/run/32/blue/go-diffuse.png
new file mode 100644
index 0000000000..41aecb5b00
Binary files /dev/null and b/collects/icons/private/svg/run/32/blue/go-diffuse.png differ
diff --git a/collects/icons/private/svg/run/32/blue/go-shiny.png b/collects/icons/private/svg/run/32/blue/go-shiny.png
new file mode 100644
index 0000000000..b90d16a11a
Binary files /dev/null and b/collects/icons/private/svg/run/32/blue/go-shiny.png differ
diff --git a/collects/icons/private/svg/run/32/blue/stop-diffuse.png b/collects/icons/private/svg/run/32/blue/stop-diffuse.png
new file mode 100644
index 0000000000..84f4db1a21
Binary files /dev/null and b/collects/icons/private/svg/run/32/blue/stop-diffuse.png differ
diff --git a/collects/icons/private/svg/run/32/blue/stop-shiny.png b/collects/icons/private/svg/run/32/blue/stop-shiny.png
new file mode 100644
index 0000000000..300ca20e18
Binary files /dev/null and b/collects/icons/private/svg/run/32/blue/stop-shiny.png differ
diff --git a/collects/icons/private/svg/run/32/cyan/back-diffuse.png b/collects/icons/private/svg/run/32/cyan/back-diffuse.png
new file mode 100644
index 0000000000..55e7048c24
Binary files /dev/null and b/collects/icons/private/svg/run/32/cyan/back-diffuse.png differ
diff --git a/collects/icons/private/svg/run/32/cyan/back-shiny.png b/collects/icons/private/svg/run/32/cyan/back-shiny.png
new file mode 100644
index 0000000000..a51611a56b
Binary files /dev/null and b/collects/icons/private/svg/run/32/cyan/back-shiny.png differ
diff --git a/collects/icons/private/svg/run/32/cyan/bar-diffuse.png b/collects/icons/private/svg/run/32/cyan/bar-diffuse.png
new file mode 100644
index 0000000000..0075e1b577
Binary files /dev/null and b/collects/icons/private/svg/run/32/cyan/bar-diffuse.png differ
diff --git a/collects/icons/private/svg/run/32/cyan/bar-shiny.png b/collects/icons/private/svg/run/32/cyan/bar-shiny.png
new file mode 100644
index 0000000000..3e73ffeaec
Binary files /dev/null and b/collects/icons/private/svg/run/32/cyan/bar-shiny.png differ
diff --git a/collects/icons/private/svg/run/32/cyan/go-diffuse.png b/collects/icons/private/svg/run/32/cyan/go-diffuse.png
new file mode 100644
index 0000000000..1e378b15cc
Binary files /dev/null and b/collects/icons/private/svg/run/32/cyan/go-diffuse.png differ
diff --git a/collects/icons/private/svg/run/32/cyan/go-shiny.png b/collects/icons/private/svg/run/32/cyan/go-shiny.png
new file mode 100644
index 0000000000..894da4def7
Binary files /dev/null and b/collects/icons/private/svg/run/32/cyan/go-shiny.png differ
diff --git a/collects/icons/private/svg/run/32/cyan/stop-diffuse.png b/collects/icons/private/svg/run/32/cyan/stop-diffuse.png
new file mode 100644
index 0000000000..eb2a5236fd
Binary files /dev/null and b/collects/icons/private/svg/run/32/cyan/stop-diffuse.png differ
diff --git a/collects/icons/private/svg/run/32/cyan/stop-shiny.png b/collects/icons/private/svg/run/32/cyan/stop-shiny.png
new file mode 100644
index 0000000000..d364cc2d3e
Binary files /dev/null and b/collects/icons/private/svg/run/32/cyan/stop-shiny.png differ
diff --git a/collects/icons/private/svg/run/32/go-diffuse.png b/collects/icons/private/svg/run/32/go-diffuse.png
new file mode 100644
index 0000000000..857ed81cff
Binary files /dev/null and b/collects/icons/private/svg/run/32/go-diffuse.png differ
diff --git a/collects/icons/private/svg/run/32/go-shiny.png b/collects/icons/private/svg/run/32/go-shiny.png
new file mode 100644
index 0000000000..9b2de40233
Binary files /dev/null and b/collects/icons/private/svg/run/32/go-shiny.png differ
diff --git a/collects/icons/private/svg/run/32/green/back-diffuse.png b/collects/icons/private/svg/run/32/green/back-diffuse.png
new file mode 100644
index 0000000000..62462e19ce
Binary files /dev/null and b/collects/icons/private/svg/run/32/green/back-diffuse.png differ
diff --git a/collects/icons/private/svg/run/32/green/back-shiny.png b/collects/icons/private/svg/run/32/green/back-shiny.png
new file mode 100644
index 0000000000..8dd5fe37e7
Binary files /dev/null and b/collects/icons/private/svg/run/32/green/back-shiny.png differ
diff --git a/collects/icons/private/svg/run/32/green/bar-diffuse.png b/collects/icons/private/svg/run/32/green/bar-diffuse.png
new file mode 100644
index 0000000000..8be508e7a7
Binary files /dev/null and b/collects/icons/private/svg/run/32/green/bar-diffuse.png differ
diff --git a/collects/icons/private/svg/run/32/green/bar-shiny.png b/collects/icons/private/svg/run/32/green/bar-shiny.png
new file mode 100644
index 0000000000..79288592fe
Binary files /dev/null and b/collects/icons/private/svg/run/32/green/bar-shiny.png differ
diff --git a/collects/icons/private/svg/run/32/green/go-diffuse.png b/collects/icons/private/svg/run/32/green/go-diffuse.png
new file mode 100644
index 0000000000..a2ec137c7c
Binary files /dev/null and b/collects/icons/private/svg/run/32/green/go-diffuse.png differ
diff --git a/collects/icons/private/svg/run/32/green/go-shiny.png b/collects/icons/private/svg/run/32/green/go-shiny.png
new file mode 100644
index 0000000000..bc44ae1313
Binary files /dev/null and b/collects/icons/private/svg/run/32/green/go-shiny.png differ
diff --git a/collects/icons/private/svg/run/32/green/stop-diffuse.png b/collects/icons/private/svg/run/32/green/stop-diffuse.png
new file mode 100644
index 0000000000..eebaf644b8
Binary files /dev/null and b/collects/icons/private/svg/run/32/green/stop-diffuse.png differ
diff --git a/collects/icons/private/svg/run/32/green/stop-shiny.png b/collects/icons/private/svg/run/32/green/stop-shiny.png
new file mode 100644
index 0000000000..c04efd6cb5
Binary files /dev/null and b/collects/icons/private/svg/run/32/green/stop-shiny.png differ
diff --git a/collects/icons/private/svg/run/32/orange/back-diffuse.png b/collects/icons/private/svg/run/32/orange/back-diffuse.png
new file mode 100644
index 0000000000..1e6dce17bc
Binary files /dev/null and b/collects/icons/private/svg/run/32/orange/back-diffuse.png differ
diff --git a/collects/icons/private/svg/run/32/orange/back-shiny.png b/collects/icons/private/svg/run/32/orange/back-shiny.png
new file mode 100644
index 0000000000..766c14ed8b
Binary files /dev/null and b/collects/icons/private/svg/run/32/orange/back-shiny.png differ
diff --git a/collects/icons/private/svg/run/32/orange/bar-diffuse.png b/collects/icons/private/svg/run/32/orange/bar-diffuse.png
new file mode 100644
index 0000000000..aad2d1a1f6
Binary files /dev/null and b/collects/icons/private/svg/run/32/orange/bar-diffuse.png differ
diff --git a/collects/icons/private/svg/run/32/orange/bar-shiny.png b/collects/icons/private/svg/run/32/orange/bar-shiny.png
new file mode 100644
index 0000000000..9bba607990
Binary files /dev/null and b/collects/icons/private/svg/run/32/orange/bar-shiny.png differ
diff --git a/collects/icons/private/svg/run/32/orange/go-diffuse.png b/collects/icons/private/svg/run/32/orange/go-diffuse.png
new file mode 100644
index 0000000000..bf34db954b
Binary files /dev/null and b/collects/icons/private/svg/run/32/orange/go-diffuse.png differ
diff --git a/collects/icons/private/svg/run/32/orange/go-shiny.png b/collects/icons/private/svg/run/32/orange/go-shiny.png
new file mode 100644
index 0000000000..a5185ad447
Binary files /dev/null and b/collects/icons/private/svg/run/32/orange/go-shiny.png differ
diff --git a/collects/icons/private/svg/run/32/orange/stop-diffuse.png b/collects/icons/private/svg/run/32/orange/stop-diffuse.png
new file mode 100644
index 0000000000..0a05af0cd6
Binary files /dev/null and b/collects/icons/private/svg/run/32/orange/stop-diffuse.png differ
diff --git a/collects/icons/private/svg/run/32/orange/stop-shiny.png b/collects/icons/private/svg/run/32/orange/stop-shiny.png
new file mode 100644
index 0000000000..5dd0a5d888
Binary files /dev/null and b/collects/icons/private/svg/run/32/orange/stop-shiny.png differ
diff --git a/collects/icons/private/svg/run/32/purple/back-diffuse.png b/collects/icons/private/svg/run/32/purple/back-diffuse.png
new file mode 100644
index 0000000000..3791f66ca7
Binary files /dev/null and b/collects/icons/private/svg/run/32/purple/back-diffuse.png differ
diff --git a/collects/icons/private/svg/run/32/purple/back-shiny.png b/collects/icons/private/svg/run/32/purple/back-shiny.png
new file mode 100644
index 0000000000..ef41a07f8a
Binary files /dev/null and b/collects/icons/private/svg/run/32/purple/back-shiny.png differ
diff --git a/collects/icons/private/svg/run/32/purple/bar-diffuse.png b/collects/icons/private/svg/run/32/purple/bar-diffuse.png
new file mode 100644
index 0000000000..e839c78cdd
Binary files /dev/null and b/collects/icons/private/svg/run/32/purple/bar-diffuse.png differ
diff --git a/collects/icons/private/svg/run/32/purple/bar-shiny.png b/collects/icons/private/svg/run/32/purple/bar-shiny.png
new file mode 100644
index 0000000000..05ea9676d5
Binary files /dev/null and b/collects/icons/private/svg/run/32/purple/bar-shiny.png differ
diff --git a/collects/icons/private/svg/run/32/purple/go-diffuse.png b/collects/icons/private/svg/run/32/purple/go-diffuse.png
new file mode 100644
index 0000000000..94757ac643
Binary files /dev/null and b/collects/icons/private/svg/run/32/purple/go-diffuse.png differ
diff --git a/collects/icons/private/svg/run/32/purple/go-shiny.png b/collects/icons/private/svg/run/32/purple/go-shiny.png
new file mode 100644
index 0000000000..e9570e4d2a
Binary files /dev/null and b/collects/icons/private/svg/run/32/purple/go-shiny.png differ
diff --git a/collects/icons/private/svg/run/32/purple/stop-diffuse.png b/collects/icons/private/svg/run/32/purple/stop-diffuse.png
new file mode 100644
index 0000000000..25526ca62e
Binary files /dev/null and b/collects/icons/private/svg/run/32/purple/stop-diffuse.png differ
diff --git a/collects/icons/private/svg/run/32/purple/stop-shiny.png b/collects/icons/private/svg/run/32/purple/stop-shiny.png
new file mode 100644
index 0000000000..c59960e497
Binary files /dev/null and b/collects/icons/private/svg/run/32/purple/stop-shiny.png differ
diff --git a/collects/icons/private/svg/run/32/red/back-diffuse.png b/collects/icons/private/svg/run/32/red/back-diffuse.png
new file mode 100644
index 0000000000..d194752604
Binary files /dev/null and b/collects/icons/private/svg/run/32/red/back-diffuse.png differ
diff --git a/collects/icons/private/svg/run/32/red/back-shiny.png b/collects/icons/private/svg/run/32/red/back-shiny.png
new file mode 100644
index 0000000000..0eb32defc8
Binary files /dev/null and b/collects/icons/private/svg/run/32/red/back-shiny.png differ
diff --git a/collects/icons/private/svg/run/32/red/bar-diffuse.png b/collects/icons/private/svg/run/32/red/bar-diffuse.png
new file mode 100644
index 0000000000..43c11e5d79
Binary files /dev/null and b/collects/icons/private/svg/run/32/red/bar-diffuse.png differ
diff --git a/collects/icons/private/svg/run/32/red/bar-shiny.png b/collects/icons/private/svg/run/32/red/bar-shiny.png
new file mode 100644
index 0000000000..0ba6c91294
Binary files /dev/null and b/collects/icons/private/svg/run/32/red/bar-shiny.png differ
diff --git a/collects/icons/private/svg/run/32/red/go-diffuse.png b/collects/icons/private/svg/run/32/red/go-diffuse.png
new file mode 100644
index 0000000000..4ea88f8959
Binary files /dev/null and b/collects/icons/private/svg/run/32/red/go-diffuse.png differ
diff --git a/collects/icons/private/svg/run/32/red/go-shiny.png b/collects/icons/private/svg/run/32/red/go-shiny.png
new file mode 100644
index 0000000000..6e6670a579
Binary files /dev/null and b/collects/icons/private/svg/run/32/red/go-shiny.png differ
diff --git a/collects/icons/private/svg/run/32/red/stop-diffuse.png b/collects/icons/private/svg/run/32/red/stop-diffuse.png
new file mode 100644
index 0000000000..50dbb4c078
Binary files /dev/null and b/collects/icons/private/svg/run/32/red/stop-diffuse.png differ
diff --git a/collects/icons/private/svg/run/32/red/stop-shiny.png b/collects/icons/private/svg/run/32/red/stop-shiny.png
new file mode 100644
index 0000000000..e6c188e026
Binary files /dev/null and b/collects/icons/private/svg/run/32/red/stop-shiny.png differ
diff --git a/collects/icons/private/svg/run/32/stop-diffuse.png b/collects/icons/private/svg/run/32/stop-diffuse.png
new file mode 100644
index 0000000000..f0af5bf816
Binary files /dev/null and b/collects/icons/private/svg/run/32/stop-diffuse.png differ
diff --git a/collects/icons/private/svg/run/32/stop-shiny.png b/collects/icons/private/svg/run/32/stop-shiny.png
new file mode 100644
index 0000000000..c6c250052b
Binary files /dev/null and b/collects/icons/private/svg/run/32/stop-shiny.png differ
diff --git a/collects/icons/private/svg/run/32/white/back-diffuse.png b/collects/icons/private/svg/run/32/white/back-diffuse.png
new file mode 100644
index 0000000000..394fba28a2
Binary files /dev/null and b/collects/icons/private/svg/run/32/white/back-diffuse.png differ
diff --git a/collects/icons/private/svg/run/32/white/back-shiny.png b/collects/icons/private/svg/run/32/white/back-shiny.png
new file mode 100644
index 0000000000..fd8f9fe2c1
Binary files /dev/null and b/collects/icons/private/svg/run/32/white/back-shiny.png differ
diff --git a/collects/icons/private/svg/run/32/white/bar-diffuse.png b/collects/icons/private/svg/run/32/white/bar-diffuse.png
new file mode 100644
index 0000000000..dca39feb2d
Binary files /dev/null and b/collects/icons/private/svg/run/32/white/bar-diffuse.png differ
diff --git a/collects/icons/private/svg/run/32/white/bar-shiny.png b/collects/icons/private/svg/run/32/white/bar-shiny.png
new file mode 100644
index 0000000000..1e1cc75145
Binary files /dev/null and b/collects/icons/private/svg/run/32/white/bar-shiny.png differ
diff --git a/collects/icons/private/svg/run/32/white/go-diffuse.png b/collects/icons/private/svg/run/32/white/go-diffuse.png
new file mode 100644
index 0000000000..60c39155fc
Binary files /dev/null and b/collects/icons/private/svg/run/32/white/go-diffuse.png differ
diff --git a/collects/icons/private/svg/run/32/white/go-shiny.png b/collects/icons/private/svg/run/32/white/go-shiny.png
new file mode 100644
index 0000000000..a9c9bfeea8
Binary files /dev/null and b/collects/icons/private/svg/run/32/white/go-shiny.png differ
diff --git a/collects/icons/private/svg/run/32/white/stop-diffuse.png b/collects/icons/private/svg/run/32/white/stop-diffuse.png
new file mode 100644
index 0000000000..a38a3badaf
Binary files /dev/null and b/collects/icons/private/svg/run/32/white/stop-diffuse.png differ
diff --git a/collects/icons/private/svg/run/32/white/stop-shiny.png b/collects/icons/private/svg/run/32/white/stop-shiny.png
new file mode 100644
index 0000000000..b046084045
Binary files /dev/null and b/collects/icons/private/svg/run/32/white/stop-shiny.png differ
diff --git a/collects/icons/private/svg/run/64/back-diffuse.png b/collects/icons/private/svg/run/64/back-diffuse.png
new file mode 100644
index 0000000000..36a3df56fa
Binary files /dev/null and b/collects/icons/private/svg/run/64/back-diffuse.png differ
diff --git a/collects/icons/private/svg/run/64/back-shiny.png b/collects/icons/private/svg/run/64/back-shiny.png
new file mode 100644
index 0000000000..1237eea416
Binary files /dev/null and b/collects/icons/private/svg/run/64/back-shiny.png differ
diff --git a/collects/icons/private/svg/run/64/bar-diffuse.png b/collects/icons/private/svg/run/64/bar-diffuse.png
new file mode 100644
index 0000000000..7ce3881e89
Binary files /dev/null and b/collects/icons/private/svg/run/64/bar-diffuse.png differ
diff --git a/collects/icons/private/svg/run/64/bar-shiny.png b/collects/icons/private/svg/run/64/bar-shiny.png
new file mode 100644
index 0000000000..430cf1c871
Binary files /dev/null and b/collects/icons/private/svg/run/64/bar-shiny.png differ
diff --git a/collects/icons/private/svg/run/64/black/back-diffuse.png b/collects/icons/private/svg/run/64/black/back-diffuse.png
new file mode 100644
index 0000000000..923c35cade
Binary files /dev/null and b/collects/icons/private/svg/run/64/black/back-diffuse.png differ
diff --git a/collects/icons/private/svg/run/64/black/back-shiny.png b/collects/icons/private/svg/run/64/black/back-shiny.png
new file mode 100644
index 0000000000..007c328b12
Binary files /dev/null and b/collects/icons/private/svg/run/64/black/back-shiny.png differ
diff --git a/collects/icons/private/svg/run/64/black/bar-diffuse.png b/collects/icons/private/svg/run/64/black/bar-diffuse.png
new file mode 100644
index 0000000000..f6625a30db
Binary files /dev/null and b/collects/icons/private/svg/run/64/black/bar-diffuse.png differ
diff --git a/collects/icons/private/svg/run/64/black/bar-shiny.png b/collects/icons/private/svg/run/64/black/bar-shiny.png
new file mode 100644
index 0000000000..449ac6271a
Binary files /dev/null and b/collects/icons/private/svg/run/64/black/bar-shiny.png differ
diff --git a/collects/icons/private/svg/run/64/black/go-diffuse.png b/collects/icons/private/svg/run/64/black/go-diffuse.png
new file mode 100644
index 0000000000..2f5fd1acbd
Binary files /dev/null and b/collects/icons/private/svg/run/64/black/go-diffuse.png differ
diff --git a/collects/icons/private/svg/run/64/black/go-shiny.png b/collects/icons/private/svg/run/64/black/go-shiny.png
new file mode 100644
index 0000000000..d08e26e284
Binary files /dev/null and b/collects/icons/private/svg/run/64/black/go-shiny.png differ
diff --git a/collects/icons/private/svg/run/64/black/stop-diffuse.png b/collects/icons/private/svg/run/64/black/stop-diffuse.png
new file mode 100644
index 0000000000..af697b5148
Binary files /dev/null and b/collects/icons/private/svg/run/64/black/stop-diffuse.png differ
diff --git a/collects/icons/private/svg/run/64/black/stop-shiny.png b/collects/icons/private/svg/run/64/black/stop-shiny.png
new file mode 100644
index 0000000000..c101895850
Binary files /dev/null and b/collects/icons/private/svg/run/64/black/stop-shiny.png differ
diff --git a/collects/icons/private/svg/run/64/blue/back-diffuse.png b/collects/icons/private/svg/run/64/blue/back-diffuse.png
new file mode 100644
index 0000000000..4b249e2109
Binary files /dev/null and b/collects/icons/private/svg/run/64/blue/back-diffuse.png differ
diff --git a/collects/icons/private/svg/run/64/blue/back-shiny.png b/collects/icons/private/svg/run/64/blue/back-shiny.png
new file mode 100644
index 0000000000..39075eff35
Binary files /dev/null and b/collects/icons/private/svg/run/64/blue/back-shiny.png differ
diff --git a/collects/icons/private/svg/run/64/blue/bar-diffuse.png b/collects/icons/private/svg/run/64/blue/bar-diffuse.png
new file mode 100644
index 0000000000..ecdb4c9713
Binary files /dev/null and b/collects/icons/private/svg/run/64/blue/bar-diffuse.png differ
diff --git a/collects/icons/private/svg/run/64/blue/bar-shiny.png b/collects/icons/private/svg/run/64/blue/bar-shiny.png
new file mode 100644
index 0000000000..40f719097a
Binary files /dev/null and b/collects/icons/private/svg/run/64/blue/bar-shiny.png differ
diff --git a/collects/icons/private/svg/run/64/blue/go-diffuse.png b/collects/icons/private/svg/run/64/blue/go-diffuse.png
new file mode 100644
index 0000000000..c0095f3521
Binary files /dev/null and b/collects/icons/private/svg/run/64/blue/go-diffuse.png differ
diff --git a/collects/icons/private/svg/run/64/blue/go-shiny.png b/collects/icons/private/svg/run/64/blue/go-shiny.png
new file mode 100644
index 0000000000..120770daec
Binary files /dev/null and b/collects/icons/private/svg/run/64/blue/go-shiny.png differ
diff --git a/collects/icons/private/svg/run/64/blue/stop-diffuse.png b/collects/icons/private/svg/run/64/blue/stop-diffuse.png
new file mode 100644
index 0000000000..45009c3eb2
Binary files /dev/null and b/collects/icons/private/svg/run/64/blue/stop-diffuse.png differ
diff --git a/collects/icons/private/svg/run/64/blue/stop-shiny.png b/collects/icons/private/svg/run/64/blue/stop-shiny.png
new file mode 100644
index 0000000000..6ea7a7c17a
Binary files /dev/null and b/collects/icons/private/svg/run/64/blue/stop-shiny.png differ
diff --git a/collects/icons/private/svg/run/64/cyan/back-diffuse.png b/collects/icons/private/svg/run/64/cyan/back-diffuse.png
new file mode 100644
index 0000000000..4f38dd53df
Binary files /dev/null and b/collects/icons/private/svg/run/64/cyan/back-diffuse.png differ
diff --git a/collects/icons/private/svg/run/64/cyan/back-shiny.png b/collects/icons/private/svg/run/64/cyan/back-shiny.png
new file mode 100644
index 0000000000..b4d3d4b36d
Binary files /dev/null and b/collects/icons/private/svg/run/64/cyan/back-shiny.png differ
diff --git a/collects/icons/private/svg/run/64/cyan/bar-diffuse.png b/collects/icons/private/svg/run/64/cyan/bar-diffuse.png
new file mode 100644
index 0000000000..bf4a0cff71
Binary files /dev/null and b/collects/icons/private/svg/run/64/cyan/bar-diffuse.png differ
diff --git a/collects/icons/private/svg/run/64/cyan/bar-shiny.png b/collects/icons/private/svg/run/64/cyan/bar-shiny.png
new file mode 100644
index 0000000000..9042c50627
Binary files /dev/null and b/collects/icons/private/svg/run/64/cyan/bar-shiny.png differ
diff --git a/collects/icons/private/svg/run/64/cyan/go-diffuse.png b/collects/icons/private/svg/run/64/cyan/go-diffuse.png
new file mode 100644
index 0000000000..70e180735a
Binary files /dev/null and b/collects/icons/private/svg/run/64/cyan/go-diffuse.png differ
diff --git a/collects/icons/private/svg/run/64/cyan/go-shiny.png b/collects/icons/private/svg/run/64/cyan/go-shiny.png
new file mode 100644
index 0000000000..b639a67305
Binary files /dev/null and b/collects/icons/private/svg/run/64/cyan/go-shiny.png differ
diff --git a/collects/icons/private/svg/run/64/cyan/stop-diffuse.png b/collects/icons/private/svg/run/64/cyan/stop-diffuse.png
new file mode 100644
index 0000000000..74f236af3c
Binary files /dev/null and b/collects/icons/private/svg/run/64/cyan/stop-diffuse.png differ
diff --git a/collects/icons/private/svg/run/64/cyan/stop-shiny.png b/collects/icons/private/svg/run/64/cyan/stop-shiny.png
new file mode 100644
index 0000000000..519058eef6
Binary files /dev/null and b/collects/icons/private/svg/run/64/cyan/stop-shiny.png differ
diff --git a/collects/icons/private/svg/run/64/go-diffuse.png b/collects/icons/private/svg/run/64/go-diffuse.png
new file mode 100644
index 0000000000..7ebe104320
Binary files /dev/null and b/collects/icons/private/svg/run/64/go-diffuse.png differ
diff --git a/collects/icons/private/svg/run/64/go-shiny.png b/collects/icons/private/svg/run/64/go-shiny.png
new file mode 100644
index 0000000000..7d800dc9de
Binary files /dev/null and b/collects/icons/private/svg/run/64/go-shiny.png differ
diff --git a/collects/icons/private/svg/run/64/green/back-diffuse.png b/collects/icons/private/svg/run/64/green/back-diffuse.png
new file mode 100644
index 0000000000..2e1a269840
Binary files /dev/null and b/collects/icons/private/svg/run/64/green/back-diffuse.png differ
diff --git a/collects/icons/private/svg/run/64/green/back-shiny.png b/collects/icons/private/svg/run/64/green/back-shiny.png
new file mode 100644
index 0000000000..8515bedcd8
Binary files /dev/null and b/collects/icons/private/svg/run/64/green/back-shiny.png differ
diff --git a/collects/icons/private/svg/run/64/green/bar-diffuse.png b/collects/icons/private/svg/run/64/green/bar-diffuse.png
new file mode 100644
index 0000000000..c8ceb77e75
Binary files /dev/null and b/collects/icons/private/svg/run/64/green/bar-diffuse.png differ
diff --git a/collects/icons/private/svg/run/64/green/bar-shiny.png b/collects/icons/private/svg/run/64/green/bar-shiny.png
new file mode 100644
index 0000000000..70abccf7cd
Binary files /dev/null and b/collects/icons/private/svg/run/64/green/bar-shiny.png differ
diff --git a/collects/icons/private/svg/run/64/green/go-diffuse.png b/collects/icons/private/svg/run/64/green/go-diffuse.png
new file mode 100644
index 0000000000..aa2a4bda65
Binary files /dev/null and b/collects/icons/private/svg/run/64/green/go-diffuse.png differ
diff --git a/collects/icons/private/svg/run/64/green/go-shiny.png b/collects/icons/private/svg/run/64/green/go-shiny.png
new file mode 100644
index 0000000000..e48c796f58
Binary files /dev/null and b/collects/icons/private/svg/run/64/green/go-shiny.png differ
diff --git a/collects/icons/private/svg/run/64/green/stop-diffuse.png b/collects/icons/private/svg/run/64/green/stop-diffuse.png
new file mode 100644
index 0000000000..c628d24f20
Binary files /dev/null and b/collects/icons/private/svg/run/64/green/stop-diffuse.png differ
diff --git a/collects/icons/private/svg/run/64/green/stop-shiny.png b/collects/icons/private/svg/run/64/green/stop-shiny.png
new file mode 100644
index 0000000000..7d63eb23a7
Binary files /dev/null and b/collects/icons/private/svg/run/64/green/stop-shiny.png differ
diff --git a/collects/icons/private/svg/run/64/orange/back-diffuse.png b/collects/icons/private/svg/run/64/orange/back-diffuse.png
new file mode 100644
index 0000000000..ef7e9590a8
Binary files /dev/null and b/collects/icons/private/svg/run/64/orange/back-diffuse.png differ
diff --git a/collects/icons/private/svg/run/64/orange/back-shiny.png b/collects/icons/private/svg/run/64/orange/back-shiny.png
new file mode 100644
index 0000000000..a0e3f1ace8
Binary files /dev/null and b/collects/icons/private/svg/run/64/orange/back-shiny.png differ
diff --git a/collects/icons/private/svg/run/64/orange/bar-diffuse.png b/collects/icons/private/svg/run/64/orange/bar-diffuse.png
new file mode 100644
index 0000000000..49ad7c3aa8
Binary files /dev/null and b/collects/icons/private/svg/run/64/orange/bar-diffuse.png differ
diff --git a/collects/icons/private/svg/run/64/orange/bar-shiny.png b/collects/icons/private/svg/run/64/orange/bar-shiny.png
new file mode 100644
index 0000000000..da7188854a
Binary files /dev/null and b/collects/icons/private/svg/run/64/orange/bar-shiny.png differ
diff --git a/collects/icons/private/svg/run/64/orange/go-diffuse.png b/collects/icons/private/svg/run/64/orange/go-diffuse.png
new file mode 100644
index 0000000000..938d879bfa
Binary files /dev/null and b/collects/icons/private/svg/run/64/orange/go-diffuse.png differ
diff --git a/collects/icons/private/svg/run/64/orange/go-shiny.png b/collects/icons/private/svg/run/64/orange/go-shiny.png
new file mode 100644
index 0000000000..e28ea4ca45
Binary files /dev/null and b/collects/icons/private/svg/run/64/orange/go-shiny.png differ
diff --git a/collects/icons/private/svg/run/64/orange/stop-diffuse.png b/collects/icons/private/svg/run/64/orange/stop-diffuse.png
new file mode 100644
index 0000000000..37bb70856d
Binary files /dev/null and b/collects/icons/private/svg/run/64/orange/stop-diffuse.png differ
diff --git a/collects/icons/private/svg/run/64/orange/stop-shiny.png b/collects/icons/private/svg/run/64/orange/stop-shiny.png
new file mode 100644
index 0000000000..09d7c578c3
Binary files /dev/null and b/collects/icons/private/svg/run/64/orange/stop-shiny.png differ
diff --git a/collects/icons/private/svg/run/64/purple/back-diffuse.png b/collects/icons/private/svg/run/64/purple/back-diffuse.png
new file mode 100644
index 0000000000..3e53f585c9
Binary files /dev/null and b/collects/icons/private/svg/run/64/purple/back-diffuse.png differ
diff --git a/collects/icons/private/svg/run/64/purple/back-shiny.png b/collects/icons/private/svg/run/64/purple/back-shiny.png
new file mode 100644
index 0000000000..429394b500
Binary files /dev/null and b/collects/icons/private/svg/run/64/purple/back-shiny.png differ
diff --git a/collects/icons/private/svg/run/64/purple/bar-diffuse.png b/collects/icons/private/svg/run/64/purple/bar-diffuse.png
new file mode 100644
index 0000000000..7b6889adfb
Binary files /dev/null and b/collects/icons/private/svg/run/64/purple/bar-diffuse.png differ
diff --git a/collects/icons/private/svg/run/64/purple/bar-shiny.png b/collects/icons/private/svg/run/64/purple/bar-shiny.png
new file mode 100644
index 0000000000..c1f341ac23
Binary files /dev/null and b/collects/icons/private/svg/run/64/purple/bar-shiny.png differ
diff --git a/collects/icons/private/svg/run/64/purple/go-diffuse.png b/collects/icons/private/svg/run/64/purple/go-diffuse.png
new file mode 100644
index 0000000000..a47d59ffba
Binary files /dev/null and b/collects/icons/private/svg/run/64/purple/go-diffuse.png differ
diff --git a/collects/icons/private/svg/run/64/purple/go-shiny.png b/collects/icons/private/svg/run/64/purple/go-shiny.png
new file mode 100644
index 0000000000..eb79939dbe
Binary files /dev/null and b/collects/icons/private/svg/run/64/purple/go-shiny.png differ
diff --git a/collects/icons/private/svg/run/64/purple/stop-diffuse.png b/collects/icons/private/svg/run/64/purple/stop-diffuse.png
new file mode 100644
index 0000000000..ab704c1b1c
Binary files /dev/null and b/collects/icons/private/svg/run/64/purple/stop-diffuse.png differ
diff --git a/collects/icons/private/svg/run/64/purple/stop-shiny.png b/collects/icons/private/svg/run/64/purple/stop-shiny.png
new file mode 100644
index 0000000000..253c1ab759
Binary files /dev/null and b/collects/icons/private/svg/run/64/purple/stop-shiny.png differ
diff --git a/collects/icons/private/svg/run/64/red/back-diffuse.png b/collects/icons/private/svg/run/64/red/back-diffuse.png
new file mode 100644
index 0000000000..79c659cb7a
Binary files /dev/null and b/collects/icons/private/svg/run/64/red/back-diffuse.png differ
diff --git a/collects/icons/private/svg/run/64/red/back-shiny.png b/collects/icons/private/svg/run/64/red/back-shiny.png
new file mode 100644
index 0000000000..4d9ba94384
Binary files /dev/null and b/collects/icons/private/svg/run/64/red/back-shiny.png differ
diff --git a/collects/icons/private/svg/run/64/red/bar-diffuse.png b/collects/icons/private/svg/run/64/red/bar-diffuse.png
new file mode 100644
index 0000000000..8a7c27e021
Binary files /dev/null and b/collects/icons/private/svg/run/64/red/bar-diffuse.png differ
diff --git a/collects/icons/private/svg/run/64/red/bar-shiny.png b/collects/icons/private/svg/run/64/red/bar-shiny.png
new file mode 100644
index 0000000000..915c1532cb
Binary files /dev/null and b/collects/icons/private/svg/run/64/red/bar-shiny.png differ
diff --git a/collects/icons/private/svg/run/64/red/go-diffuse.png b/collects/icons/private/svg/run/64/red/go-diffuse.png
new file mode 100644
index 0000000000..4973e98297
Binary files /dev/null and b/collects/icons/private/svg/run/64/red/go-diffuse.png differ
diff --git a/collects/icons/private/svg/run/64/red/go-shiny.png b/collects/icons/private/svg/run/64/red/go-shiny.png
new file mode 100644
index 0000000000..1866ffdddb
Binary files /dev/null and b/collects/icons/private/svg/run/64/red/go-shiny.png differ
diff --git a/collects/icons/private/svg/run/64/red/stop-diffuse.png b/collects/icons/private/svg/run/64/red/stop-diffuse.png
new file mode 100644
index 0000000000..eb15b6a4c9
Binary files /dev/null and b/collects/icons/private/svg/run/64/red/stop-diffuse.png differ
diff --git a/collects/icons/private/svg/run/64/red/stop-shiny.png b/collects/icons/private/svg/run/64/red/stop-shiny.png
new file mode 100644
index 0000000000..98677d5107
Binary files /dev/null and b/collects/icons/private/svg/run/64/red/stop-shiny.png differ
diff --git a/collects/icons/private/svg/run/64/stop-diffuse.png b/collects/icons/private/svg/run/64/stop-diffuse.png
new file mode 100644
index 0000000000..9b3ada2074
Binary files /dev/null and b/collects/icons/private/svg/run/64/stop-diffuse.png differ
diff --git a/collects/icons/private/svg/run/64/stop-shiny.png b/collects/icons/private/svg/run/64/stop-shiny.png
new file mode 100644
index 0000000000..c1d49164aa
Binary files /dev/null and b/collects/icons/private/svg/run/64/stop-shiny.png differ
diff --git a/collects/icons/private/svg/run/64/white/back-diffuse.png b/collects/icons/private/svg/run/64/white/back-diffuse.png
new file mode 100644
index 0000000000..7c63817826
Binary files /dev/null and b/collects/icons/private/svg/run/64/white/back-diffuse.png differ
diff --git a/collects/icons/private/svg/run/64/white/back-shiny.png b/collects/icons/private/svg/run/64/white/back-shiny.png
new file mode 100644
index 0000000000..dbe04d79d7
Binary files /dev/null and b/collects/icons/private/svg/run/64/white/back-shiny.png differ
diff --git a/collects/icons/private/svg/run/64/white/bar-diffuse.png b/collects/icons/private/svg/run/64/white/bar-diffuse.png
new file mode 100644
index 0000000000..9fa4952b96
Binary files /dev/null and b/collects/icons/private/svg/run/64/white/bar-diffuse.png differ
diff --git a/collects/icons/private/svg/run/64/white/bar-shiny.png b/collects/icons/private/svg/run/64/white/bar-shiny.png
new file mode 100644
index 0000000000..8cf1e5b0c2
Binary files /dev/null and b/collects/icons/private/svg/run/64/white/bar-shiny.png differ
diff --git a/collects/icons/private/svg/run/64/white/go-diffuse.png b/collects/icons/private/svg/run/64/white/go-diffuse.png
new file mode 100644
index 0000000000..8371ac51be
Binary files /dev/null and b/collects/icons/private/svg/run/64/white/go-diffuse.png differ
diff --git a/collects/icons/private/svg/run/64/white/go-shiny.png b/collects/icons/private/svg/run/64/white/go-shiny.png
new file mode 100644
index 0000000000..20625a989b
Binary files /dev/null and b/collects/icons/private/svg/run/64/white/go-shiny.png differ
diff --git a/collects/icons/private/svg/run/64/white/stop-diffuse.png b/collects/icons/private/svg/run/64/white/stop-diffuse.png
new file mode 100644
index 0000000000..c68b8156df
Binary files /dev/null and b/collects/icons/private/svg/run/64/white/stop-diffuse.png differ
diff --git a/collects/icons/private/svg/run/64/white/stop-shiny.png b/collects/icons/private/svg/run/64/white/stop-shiny.png
new file mode 100644
index 0000000000..e72af51987
Binary files /dev/null and b/collects/icons/private/svg/run/64/white/stop-shiny.png differ
diff --git a/collects/icons/private/svg/run/back-diffuse.svg b/collects/icons/private/svg/run/back-diffuse.svg
new file mode 100644
index 0000000000..20f0171d25
--- /dev/null
+++ b/collects/icons/private/svg/run/back-diffuse.svg
@@ -0,0 +1,148 @@
+
+
+
+
diff --git a/collects/icons/private/svg/run/back-shiny.svg b/collects/icons/private/svg/run/back-shiny.svg
new file mode 100644
index 0000000000..27bc34ef17
--- /dev/null
+++ b/collects/icons/private/svg/run/back-shiny.svg
@@ -0,0 +1,202 @@
+
+
+
+
diff --git a/collects/icons/private/svg/run/bar-diffuse.svg b/collects/icons/private/svg/run/bar-diffuse.svg
new file mode 100644
index 0000000000..b4c67d4eb5
--- /dev/null
+++ b/collects/icons/private/svg/run/bar-diffuse.svg
@@ -0,0 +1,152 @@
+
+
+
+
diff --git a/collects/icons/private/svg/run/bar-shiny.svg b/collects/icons/private/svg/run/bar-shiny.svg
new file mode 100644
index 0000000000..dd634f6686
--- /dev/null
+++ b/collects/icons/private/svg/run/bar-shiny.svg
@@ -0,0 +1,204 @@
+
+
+
+
diff --git a/collects/icons/private/svg/run/go-diffuse.svg b/collects/icons/private/svg/run/go-diffuse.svg
new file mode 100644
index 0000000000..a183b3b56e
--- /dev/null
+++ b/collects/icons/private/svg/run/go-diffuse.svg
@@ -0,0 +1,147 @@
+
+
+
+
diff --git a/collects/icons/private/svg/run/go-shiny.svg b/collects/icons/private/svg/run/go-shiny.svg
new file mode 100644
index 0000000000..e60470b6f6
--- /dev/null
+++ b/collects/icons/private/svg/run/go-shiny.svg
@@ -0,0 +1,200 @@
+
+
+
+
diff --git a/collects/icons/private/svg/run/stop-diffuse.svg b/collects/icons/private/svg/run/stop-diffuse.svg
new file mode 100644
index 0000000000..203fd22ac2
--- /dev/null
+++ b/collects/icons/private/svg/run/stop-diffuse.svg
@@ -0,0 +1,151 @@
+
+
+
+
diff --git a/collects/icons/private/svg/run/stop-shiny.svg b/collects/icons/private/svg/run/stop-shiny.svg
new file mode 100644
index 0000000000..ca740ffae0
--- /dev/null
+++ b/collects/icons/private/svg/run/stop-shiny.svg
@@ -0,0 +1,234 @@
+
+
+
+
diff --git a/collects/icons/private/svg/sign/16/black/stop-sign-diffuse.png b/collects/icons/private/svg/sign/16/black/stop-sign-diffuse.png
new file mode 100644
index 0000000000..969d9d4cfc
Binary files /dev/null and b/collects/icons/private/svg/sign/16/black/stop-sign-diffuse.png differ
diff --git a/collects/icons/private/svg/sign/16/black/stop-sign-shiny.png b/collects/icons/private/svg/sign/16/black/stop-sign-shiny.png
new file mode 100644
index 0000000000..9b599e3a8f
Binary files /dev/null and b/collects/icons/private/svg/sign/16/black/stop-sign-shiny.png differ
diff --git a/collects/icons/private/svg/sign/16/blue/stop-sign-diffuse.png b/collects/icons/private/svg/sign/16/blue/stop-sign-diffuse.png
new file mode 100644
index 0000000000..a6a611fd23
Binary files /dev/null and b/collects/icons/private/svg/sign/16/blue/stop-sign-diffuse.png differ
diff --git a/collects/icons/private/svg/sign/16/blue/stop-sign-shiny.png b/collects/icons/private/svg/sign/16/blue/stop-sign-shiny.png
new file mode 100644
index 0000000000..6568921338
Binary files /dev/null and b/collects/icons/private/svg/sign/16/blue/stop-sign-shiny.png differ
diff --git a/collects/icons/private/svg/sign/16/cyan/stop-sign-diffuse.png b/collects/icons/private/svg/sign/16/cyan/stop-sign-diffuse.png
new file mode 100644
index 0000000000..2aeee7f8aa
Binary files /dev/null and b/collects/icons/private/svg/sign/16/cyan/stop-sign-diffuse.png differ
diff --git a/collects/icons/private/svg/sign/16/cyan/stop-sign-shiny.png b/collects/icons/private/svg/sign/16/cyan/stop-sign-shiny.png
new file mode 100644
index 0000000000..d50434e07c
Binary files /dev/null and b/collects/icons/private/svg/sign/16/cyan/stop-sign-shiny.png differ
diff --git a/collects/icons/private/svg/sign/16/green/stop-sign-diffuse.png b/collects/icons/private/svg/sign/16/green/stop-sign-diffuse.png
new file mode 100644
index 0000000000..68423ead5d
Binary files /dev/null and b/collects/icons/private/svg/sign/16/green/stop-sign-diffuse.png differ
diff --git a/collects/icons/private/svg/sign/16/green/stop-sign-shiny.png b/collects/icons/private/svg/sign/16/green/stop-sign-shiny.png
new file mode 100644
index 0000000000..3f9c084e38
Binary files /dev/null and b/collects/icons/private/svg/sign/16/green/stop-sign-shiny.png differ
diff --git a/collects/icons/private/svg/sign/16/orange/stop-sign-diffuse.png b/collects/icons/private/svg/sign/16/orange/stop-sign-diffuse.png
new file mode 100644
index 0000000000..7dc8f1e3a6
Binary files /dev/null and b/collects/icons/private/svg/sign/16/orange/stop-sign-diffuse.png differ
diff --git a/collects/icons/private/svg/sign/16/orange/stop-sign-shiny.png b/collects/icons/private/svg/sign/16/orange/stop-sign-shiny.png
new file mode 100644
index 0000000000..2861efc102
Binary files /dev/null and b/collects/icons/private/svg/sign/16/orange/stop-sign-shiny.png differ
diff --git a/collects/icons/private/svg/sign/16/purple/stop-sign-diffuse.png b/collects/icons/private/svg/sign/16/purple/stop-sign-diffuse.png
new file mode 100644
index 0000000000..64dcc310b7
Binary files /dev/null and b/collects/icons/private/svg/sign/16/purple/stop-sign-diffuse.png differ
diff --git a/collects/icons/private/svg/sign/16/purple/stop-sign-shiny.png b/collects/icons/private/svg/sign/16/purple/stop-sign-shiny.png
new file mode 100644
index 0000000000..0b7db2b018
Binary files /dev/null and b/collects/icons/private/svg/sign/16/purple/stop-sign-shiny.png differ
diff --git a/collects/icons/private/svg/sign/16/red/stop-sign-diffuse.png b/collects/icons/private/svg/sign/16/red/stop-sign-diffuse.png
new file mode 100644
index 0000000000..a896ffd79e
Binary files /dev/null and b/collects/icons/private/svg/sign/16/red/stop-sign-diffuse.png differ
diff --git a/collects/icons/private/svg/sign/16/red/stop-sign-shiny.png b/collects/icons/private/svg/sign/16/red/stop-sign-shiny.png
new file mode 100644
index 0000000000..cb05197565
Binary files /dev/null and b/collects/icons/private/svg/sign/16/red/stop-sign-shiny.png differ
diff --git a/collects/icons/private/svg/sign/16/stop-sign-diffuse.png b/collects/icons/private/svg/sign/16/stop-sign-diffuse.png
new file mode 100644
index 0000000000..1d82ec6164
Binary files /dev/null and b/collects/icons/private/svg/sign/16/stop-sign-diffuse.png differ
diff --git a/collects/icons/private/svg/sign/16/stop-sign-shiny.png b/collects/icons/private/svg/sign/16/stop-sign-shiny.png
new file mode 100644
index 0000000000..0b416b004e
Binary files /dev/null and b/collects/icons/private/svg/sign/16/stop-sign-shiny.png differ
diff --git a/collects/icons/private/svg/sign/16/white/stop-sign-diffuse.png b/collects/icons/private/svg/sign/16/white/stop-sign-diffuse.png
new file mode 100644
index 0000000000..f213b037c2
Binary files /dev/null and b/collects/icons/private/svg/sign/16/white/stop-sign-diffuse.png differ
diff --git a/collects/icons/private/svg/sign/16/white/stop-sign-shiny.png b/collects/icons/private/svg/sign/16/white/stop-sign-shiny.png
new file mode 100644
index 0000000000..323b889319
Binary files /dev/null and b/collects/icons/private/svg/sign/16/white/stop-sign-shiny.png differ
diff --git a/collects/icons/private/svg/sign/32/black/stop-sign-diffuse.png b/collects/icons/private/svg/sign/32/black/stop-sign-diffuse.png
new file mode 100644
index 0000000000..e7ee7eb4bf
Binary files /dev/null and b/collects/icons/private/svg/sign/32/black/stop-sign-diffuse.png differ
diff --git a/collects/icons/private/svg/sign/32/black/stop-sign-shiny.png b/collects/icons/private/svg/sign/32/black/stop-sign-shiny.png
new file mode 100644
index 0000000000..fbc15447d0
Binary files /dev/null and b/collects/icons/private/svg/sign/32/black/stop-sign-shiny.png differ
diff --git a/collects/icons/private/svg/sign/32/blue/stop-sign-diffuse.png b/collects/icons/private/svg/sign/32/blue/stop-sign-diffuse.png
new file mode 100644
index 0000000000..ef43e2663b
Binary files /dev/null and b/collects/icons/private/svg/sign/32/blue/stop-sign-diffuse.png differ
diff --git a/collects/icons/private/svg/sign/32/blue/stop-sign-shiny.png b/collects/icons/private/svg/sign/32/blue/stop-sign-shiny.png
new file mode 100644
index 0000000000..a80c39ef94
Binary files /dev/null and b/collects/icons/private/svg/sign/32/blue/stop-sign-shiny.png differ
diff --git a/collects/icons/private/svg/sign/32/cyan/stop-sign-diffuse.png b/collects/icons/private/svg/sign/32/cyan/stop-sign-diffuse.png
new file mode 100644
index 0000000000..a1552ab343
Binary files /dev/null and b/collects/icons/private/svg/sign/32/cyan/stop-sign-diffuse.png differ
diff --git a/collects/icons/private/svg/sign/32/cyan/stop-sign-shiny.png b/collects/icons/private/svg/sign/32/cyan/stop-sign-shiny.png
new file mode 100644
index 0000000000..b2d2fca692
Binary files /dev/null and b/collects/icons/private/svg/sign/32/cyan/stop-sign-shiny.png differ
diff --git a/collects/icons/private/svg/sign/32/green/stop-sign-diffuse.png b/collects/icons/private/svg/sign/32/green/stop-sign-diffuse.png
new file mode 100644
index 0000000000..d543d8c5b2
Binary files /dev/null and b/collects/icons/private/svg/sign/32/green/stop-sign-diffuse.png differ
diff --git a/collects/icons/private/svg/sign/32/green/stop-sign-shiny.png b/collects/icons/private/svg/sign/32/green/stop-sign-shiny.png
new file mode 100644
index 0000000000..40a0c361b5
Binary files /dev/null and b/collects/icons/private/svg/sign/32/green/stop-sign-shiny.png differ
diff --git a/collects/icons/private/svg/sign/32/orange/stop-sign-diffuse.png b/collects/icons/private/svg/sign/32/orange/stop-sign-diffuse.png
new file mode 100644
index 0000000000..0a61b42855
Binary files /dev/null and b/collects/icons/private/svg/sign/32/orange/stop-sign-diffuse.png differ
diff --git a/collects/icons/private/svg/sign/32/orange/stop-sign-shiny.png b/collects/icons/private/svg/sign/32/orange/stop-sign-shiny.png
new file mode 100644
index 0000000000..7bb4cfaf48
Binary files /dev/null and b/collects/icons/private/svg/sign/32/orange/stop-sign-shiny.png differ
diff --git a/collects/icons/private/svg/sign/32/purple/stop-sign-diffuse.png b/collects/icons/private/svg/sign/32/purple/stop-sign-diffuse.png
new file mode 100644
index 0000000000..cadbe9693e
Binary files /dev/null and b/collects/icons/private/svg/sign/32/purple/stop-sign-diffuse.png differ
diff --git a/collects/icons/private/svg/sign/32/purple/stop-sign-shiny.png b/collects/icons/private/svg/sign/32/purple/stop-sign-shiny.png
new file mode 100644
index 0000000000..6bf173c098
Binary files /dev/null and b/collects/icons/private/svg/sign/32/purple/stop-sign-shiny.png differ
diff --git a/collects/icons/private/svg/sign/32/red/stop-sign-diffuse.png b/collects/icons/private/svg/sign/32/red/stop-sign-diffuse.png
new file mode 100644
index 0000000000..e36e0655f6
Binary files /dev/null and b/collects/icons/private/svg/sign/32/red/stop-sign-diffuse.png differ
diff --git a/collects/icons/private/svg/sign/32/red/stop-sign-shiny.png b/collects/icons/private/svg/sign/32/red/stop-sign-shiny.png
new file mode 100644
index 0000000000..767d9f8f1e
Binary files /dev/null and b/collects/icons/private/svg/sign/32/red/stop-sign-shiny.png differ
diff --git a/collects/icons/private/svg/sign/32/stop-sign-diffuse.png b/collects/icons/private/svg/sign/32/stop-sign-diffuse.png
new file mode 100644
index 0000000000..be5b050d83
Binary files /dev/null and b/collects/icons/private/svg/sign/32/stop-sign-diffuse.png differ
diff --git a/collects/icons/private/svg/sign/32/stop-sign-shiny.png b/collects/icons/private/svg/sign/32/stop-sign-shiny.png
new file mode 100644
index 0000000000..7576bea7bb
Binary files /dev/null and b/collects/icons/private/svg/sign/32/stop-sign-shiny.png differ
diff --git a/collects/icons/private/svg/sign/32/white/stop-sign-diffuse.png b/collects/icons/private/svg/sign/32/white/stop-sign-diffuse.png
new file mode 100644
index 0000000000..4068ab756c
Binary files /dev/null and b/collects/icons/private/svg/sign/32/white/stop-sign-diffuse.png differ
diff --git a/collects/icons/private/svg/sign/32/white/stop-sign-shiny.png b/collects/icons/private/svg/sign/32/white/stop-sign-shiny.png
new file mode 100644
index 0000000000..3a03f10248
Binary files /dev/null and b/collects/icons/private/svg/sign/32/white/stop-sign-shiny.png differ
diff --git a/collects/icons/private/svg/sign/64/black/stop-sign-diffuse.png b/collects/icons/private/svg/sign/64/black/stop-sign-diffuse.png
new file mode 100644
index 0000000000..169972d0fb
Binary files /dev/null and b/collects/icons/private/svg/sign/64/black/stop-sign-diffuse.png differ
diff --git a/collects/icons/private/svg/sign/64/black/stop-sign-shiny.png b/collects/icons/private/svg/sign/64/black/stop-sign-shiny.png
new file mode 100644
index 0000000000..c9103b769b
Binary files /dev/null and b/collects/icons/private/svg/sign/64/black/stop-sign-shiny.png differ
diff --git a/collects/icons/private/svg/sign/64/blue/stop-sign-diffuse.png b/collects/icons/private/svg/sign/64/blue/stop-sign-diffuse.png
new file mode 100644
index 0000000000..c916e37e41
Binary files /dev/null and b/collects/icons/private/svg/sign/64/blue/stop-sign-diffuse.png differ
diff --git a/collects/icons/private/svg/sign/64/blue/stop-sign-shiny.png b/collects/icons/private/svg/sign/64/blue/stop-sign-shiny.png
new file mode 100644
index 0000000000..25c4a368d8
Binary files /dev/null and b/collects/icons/private/svg/sign/64/blue/stop-sign-shiny.png differ
diff --git a/collects/icons/private/svg/sign/64/cyan/stop-sign-diffuse.png b/collects/icons/private/svg/sign/64/cyan/stop-sign-diffuse.png
new file mode 100644
index 0000000000..51dc91df8e
Binary files /dev/null and b/collects/icons/private/svg/sign/64/cyan/stop-sign-diffuse.png differ
diff --git a/collects/icons/private/svg/sign/64/cyan/stop-sign-shiny.png b/collects/icons/private/svg/sign/64/cyan/stop-sign-shiny.png
new file mode 100644
index 0000000000..e892331dfa
Binary files /dev/null and b/collects/icons/private/svg/sign/64/cyan/stop-sign-shiny.png differ
diff --git a/collects/icons/private/svg/sign/64/green/stop-sign-diffuse.png b/collects/icons/private/svg/sign/64/green/stop-sign-diffuse.png
new file mode 100644
index 0000000000..bbc13eb5c4
Binary files /dev/null and b/collects/icons/private/svg/sign/64/green/stop-sign-diffuse.png differ
diff --git a/collects/icons/private/svg/sign/64/green/stop-sign-shiny.png b/collects/icons/private/svg/sign/64/green/stop-sign-shiny.png
new file mode 100644
index 0000000000..c20c7a6712
Binary files /dev/null and b/collects/icons/private/svg/sign/64/green/stop-sign-shiny.png differ
diff --git a/collects/icons/private/svg/sign/64/orange/stop-sign-diffuse.png b/collects/icons/private/svg/sign/64/orange/stop-sign-diffuse.png
new file mode 100644
index 0000000000..1ded75ad9e
Binary files /dev/null and b/collects/icons/private/svg/sign/64/orange/stop-sign-diffuse.png differ
diff --git a/collects/icons/private/svg/sign/64/orange/stop-sign-shiny.png b/collects/icons/private/svg/sign/64/orange/stop-sign-shiny.png
new file mode 100644
index 0000000000..0d7cfbebe8
Binary files /dev/null and b/collects/icons/private/svg/sign/64/orange/stop-sign-shiny.png differ
diff --git a/collects/icons/private/svg/sign/64/purple/stop-sign-diffuse.png b/collects/icons/private/svg/sign/64/purple/stop-sign-diffuse.png
new file mode 100644
index 0000000000..29f9634adc
Binary files /dev/null and b/collects/icons/private/svg/sign/64/purple/stop-sign-diffuse.png differ
diff --git a/collects/icons/private/svg/sign/64/purple/stop-sign-shiny.png b/collects/icons/private/svg/sign/64/purple/stop-sign-shiny.png
new file mode 100644
index 0000000000..71fb51598a
Binary files /dev/null and b/collects/icons/private/svg/sign/64/purple/stop-sign-shiny.png differ
diff --git a/collects/icons/private/svg/sign/64/red/stop-sign-diffuse.png b/collects/icons/private/svg/sign/64/red/stop-sign-diffuse.png
new file mode 100644
index 0000000000..7e819ea0d3
Binary files /dev/null and b/collects/icons/private/svg/sign/64/red/stop-sign-diffuse.png differ
diff --git a/collects/icons/private/svg/sign/64/red/stop-sign-shiny.png b/collects/icons/private/svg/sign/64/red/stop-sign-shiny.png
new file mode 100644
index 0000000000..be22aec69e
Binary files /dev/null and b/collects/icons/private/svg/sign/64/red/stop-sign-shiny.png differ
diff --git a/collects/icons/private/svg/sign/64/stop-sign-diffuse.png b/collects/icons/private/svg/sign/64/stop-sign-diffuse.png
new file mode 100644
index 0000000000..d7dcb8d0d1
Binary files /dev/null and b/collects/icons/private/svg/sign/64/stop-sign-diffuse.png differ
diff --git a/collects/icons/private/svg/sign/64/stop-sign-shiny.png b/collects/icons/private/svg/sign/64/stop-sign-shiny.png
new file mode 100644
index 0000000000..e3c81104b4
Binary files /dev/null and b/collects/icons/private/svg/sign/64/stop-sign-shiny.png differ
diff --git a/collects/icons/private/svg/sign/64/white/stop-sign-diffuse.png b/collects/icons/private/svg/sign/64/white/stop-sign-diffuse.png
new file mode 100644
index 0000000000..a22cbd6c92
Binary files /dev/null and b/collects/icons/private/svg/sign/64/white/stop-sign-diffuse.png differ
diff --git a/collects/icons/private/svg/sign/64/white/stop-sign-shiny.png b/collects/icons/private/svg/sign/64/white/stop-sign-shiny.png
new file mode 100644
index 0000000000..c18cffc1f1
Binary files /dev/null and b/collects/icons/private/svg/sign/64/white/stop-sign-shiny.png differ
diff --git a/collects/icons/private/svg/sign/stop-sign-diffuse.svg b/collects/icons/private/svg/sign/stop-sign-diffuse.svg
new file mode 100644
index 0000000000..5ada72894f
--- /dev/null
+++ b/collects/icons/private/svg/sign/stop-sign-diffuse.svg
@@ -0,0 +1,216 @@
+
+
+
+
diff --git a/collects/icons/private/svg/sign/stop-sign-shiny.svg b/collects/icons/private/svg/sign/stop-sign-shiny.svg
new file mode 100644
index 0000000000..f9cc2fa07f
--- /dev/null
+++ b/collects/icons/private/svg/sign/stop-sign-shiny.svg
@@ -0,0 +1,281 @@
+
+
+
+
diff --git a/collects/icons/private/utils.rkt b/collects/icons/private/utils.rkt
new file mode 100644
index 0000000000..86879c30de
--- /dev/null
+++ b/collects/icons/private/utils.rkt
@@ -0,0 +1,100 @@
+#lang racket/base
+
+(require racket/class racket/string racket/match racket/list
+ racket/system
+ racket/file
+ xml
+ racket/draw
+ racket/unsafe/ops
+ racket/contract
+ unstable/latent-contract/defthing
+ unstable/gui/pict)
+
+(provide (all-defined-out))
+
+(define svg-icons-base-path (collection-path "icons/private/svg"))
+
+;; Cairo is good at shrinking bitmaps by 1..1/2, but bad at shrinking bitmaps smaller
+;; We therefore need icons rendered every 2x, from half the size typically needed up to the greatest
+;; size typically needed
+;; Make sure these are sorted
+(define icon-heights '(16 32 64))
+(define logo-heights '(16 32 64 128 256 512))
+
+(define (icon-category-heights category)
+ (cond [(equal? category "logo") logo-heights]
+ [else icon-heights]))
+
+(defthing icon-colors (listof (or/c symbol? #f)) #:document-value
+ '(#f white black red green blue orange cyan purple))
+(defcontract icon-color/c (apply or/c icon-colors))
+
+(define diffuse-gradient-stops
+ #hash((white . ((1 128 128 128) (1 255 255 255)))
+ (black . ((1 0 0 0) (1 32 32 32)))
+ (red . ((1 127 64 64) (1 255 0 0)))
+ (green . ((1 47 86 42) (1 9 170 0)))
+ (blue . ((1 64 66 123) (1 0 4 255)))
+ (orange . ((1 169 96 64) (1 255 145 0)))
+ (cyan . ((1 48 72 85) (1 0 162 255)))
+ (purple . ((1 85 64 169) (1 128 0 255)))))
+
+(define undershine-gradient-stops
+ #hash((white . ((1 240 240 255) (0 255 255 255)))
+ (black . ((1 160 160 180) (0 32 32 32)))
+ (red . ((1 255 64 0) (0 255 0 0)))
+ (green . ((1 128 255 64) (0 9 170 0)))
+ (blue . ((1 64 128 255) (0 0 4 255)))
+ (orange . ((1 255 128 64) (0 255 145 0)))
+ (cyan . ((1 64 255 220) (0 0 162 255)))
+ (purple . ((1 240 128 255) (0 128 0 255)))))
+
+;; ===================================================================================================
+;; Colorizing SVGs
+
+(define (color->hex-string color)
+ (string-append*
+ "#"
+ (for/list ([x (in-list color)])
+ (define s (number->string (max (min (inexact->exact (round x)) 255) 0) 16))
+ (if (= 1 (string-length s)) (string-append "0" s) s))))
+
+(define (replace-linear-gradient xexpr name stops)
+ (let loop ([xexpr xexpr])
+ (match xexpr
+ [`(linearGradient ((id ,(regexp name))) ,_ ...)
+ `(linearGradient
+ ((id ,name))
+ ,@(for/list ([stop (in-list stops)]
+ [i (in-naturals)])
+ `(stop ((id ,(string-append name (number->string i)))
+ (offset ,(number->string i))
+ (style ,(format "stop-color:~a;stop-opacity:~a;"
+ (color->hex-string (rest stop))
+ (first stop)))))))]
+ [(list xs ...) (map loop xs)]
+ [_ xexpr])))
+
+(define (colorize-svg svg-doc diffuse-stops undershine-stops)
+ (match-define (document prolog (app xml->xexpr old-element) misc) svg-doc)
+ (let* ([element old-element]
+ [element (replace-linear-gradient element "diffuseColorGradient" diffuse-stops)]
+ [element (replace-linear-gradient element "undershineGradient" undershine-stops)])
+ (if (equal? element old-element) #f (document prolog (xexpr->xml element) misc))))
+
+;; ===================================================================================================
+;; Rendering
+
+(define (svg-file? file)
+ (and (regexp-match #rx"(?i:.*\\.svg)$" (path->string file)) #t))
+
+(define inkscape.exe (find-executable-path "inkscape"))
+
+(define (render/inkscape src-path dest-dir dest-file height)
+ (define dest-path (build-path dest-dir dest-file))
+ (printf "inkscape -e ~a -h ~a ~a~n" src-path height dest-path)
+ (make-directory* dest-dir)
+ (system* inkscape.exe
+ "-e" dest-path
+ "-h" (number->string height)
+ src-path))
diff --git a/collects/icons/scribblings/icons.scrbl b/collects/icons/scribblings/icons.scrbl
new file mode 100644
index 0000000000..b2b2d36bb1
--- /dev/null
+++ b/collects/icons/scribblings/icons.scrbl
@@ -0,0 +1,246 @@
+#lang scribble/manual
+
+@(require scribble/eval
+ unstable/latent-contract/defthing
+ (for-label icons
+ slideshow/pict
+ mrlib/switchable-button)
+ icons/private/doc
+ icons
+ slideshow/pict)
+
+@(define (author-email) "neil.toronto@gmail.com")
+
+@title{Icons}
+@author{@(author+email "Neil Toronto" (author-email))}
+
+@defmodule[icons]
+
+@(define icon-eval (make-base-eval))
+@interaction-eval[#:eval icon-eval (require icons)]
+
+
+@section{Introduction (What is an icon, really?)}
+@margin-note*{This introduction describes an ideal, not necessarily the current state of things.}
+
+An icon is just a bitmap with an alpha channel, but most icons are not simply loaded from disk.
+Icons can also be rendered from colorized SVG sources, resized, generated programmatically by drawing on a @racket[dc<%>], or composed using @racket[pict] functions.
+
+The @racketmodname[icons] module is intended to make it possible to do all of these things, and to make it easy to get common icons in different colors, heights and styles.
+
+An icon communicates. Its shape and color are a visual metaphor for an action or a message. Icons should be easily recognizable, distinguishable, visually consistent, and metaphorically appropriate for the actions and messages they are used with. This is difficult to do well, but good examples, good abstractions, and an existing icon library help considerably.
+
+@(define (hash-quote) (load-icon "misc" (format-icon-name "hash-quote" #f 'diffuse) 14))
+@(define (step) (step-icon 'blue 14 'diffuse))
+
+Example: The Macro Stepper tool composes a new icon @(hash-quote) and an existing icon @(step), resulting in @(macro-stepper-icon 14 'diffuse) for its toolbar icon.
+The @(hash-quote) icon connotes syntax, and is the color of a syntax-quote as rendered by DrRacket by default.
+The @(step) icon is colored like DrRacket colors identifier syntax by default, and is shaped using metaphors used in debugger toolbars, TV remotes, and music players around the world.
+It is composed of @(go-icon 'blue 14 'diffuse) to connote starting and @(bar-icon 'blue 14 'diffuse) to connote immediately stopping---a ``step.''
+
+The author of this collection is available to adapt or create SVG icons for DrRacket tools, and charges no more than your immortal soul.
+
+@section{Icon Parameters}
+
+@doc-apply[toolbar-icon-height]{
+The height of Racket toolbar icons.
+
+As much as possible, please use @racket[(toolbar-icon-height)] as the @racket[height] argument when loading common icons that will be used in DrRacket toolbars and buttons, or in the toolbars and buttons of DrRacket tools.
+
+(When making an icon for DrRacket's main toolbar, please try to keep it nearly square so that it will not take up too much horizontal space when the toolbar is docked vertically.
+If you cannot, as with the Macro Stepper, send a thinner icon as the @racket[alternate-bitmap] argument to a @racket[switchable-button%].)
+}
+
+@doc-apply[racket-icon-style]{
+The style of Racket icons. Its value is the default style argument for the functions in @secref["common-icons"].
+
+If you use @racket[load-icon] to load icons in a DrRacket tool, to keep the tool's icons visually consistent with DrRacket's, please format the file name using @racket[format-icon-name], passing @racket[(racket-icon-style)] as the style.
+}
+
+@section{Loading Icons}
+
+@doc-apply[load-icon]
+
+Loads an icon with the given @racket[name] from the given @racket[category].
+
+Before using this general loading function, check @secref["common-icons"] for a function that loads the specific icon you need.
+
+The icon is looked up in a cache of colorized SVG source files rendered as PNGs, and then resized to be @racket[height] pixels tall.
+Icon sizes are given as heights to make it easier to append them horizontally.
+
+In the following example, applying @racket[load-icon] is equivalent to @racket[(plt-logo 100 'diffuse)]:
+@interaction[#:eval icon-eval (load-icon "logo" "plt-logo-diffuse" 100)]
+
+(In the interactions window, you would have to send the result of applying @racket[load-icon] to @racket[icon->pict] to see it.
+The rules for printing images are different in documentation.)
+
+@doc-apply[icon-categories]{
+Returns a list of all the icon categories.
+
+@examples[#:eval icon-eval (icon-categories)]
+}
+
+@doc-apply[icon-names]{
+Returns a list of all the names of icons in a given @racket[category].
+
+@examples[#:eval icon-eval (icon-names "logo")]
+}
+
+@doc-apply[format-icon-name]
+
+Formats an icon file name.
+
+@examples[#:eval icon-eval
+ (format-icon-name "go" 'red 'diffuse)
+ (format-icon-name "go" #f 'diffuse)
+ (format-icon-name "go" 'red #f)
+ (format-icon-name "go" #f #f)]
+
+The functions in @secref["common-icons"] use this to turn their arguments into file names.
+
+@section[#:tag "common-icons"]{Common Icon Constructors}
+
+@subsection{Playback Control Icons}
+
+@doc-apply[go-icon]
+@doc-apply[bar-icon]
+@doc-apply[back-icon]
+@doc-apply[stop-icon]
+@doc-apply[step-icon]
+@doc-apply[step-back-icon]
+@doc-apply[continue-icon]
+@doc-apply[continue-back-icon]
+@doc-apply[fast-forward-icon]
+@doc-apply[rewind-icon]
+@doc-apply[pause-icon]{
+These return typical ``playback control'' icons.
+
+@interaction[#:eval icon-eval
+ (for*/list ([color '(blue orange)]
+ [style icon-styles])
+ (for/list ([make-icon (list rewind-icon continue-back-icon
+ step-back-icon back-icon
+ pause-icon stop-icon
+ go-icon step-icon
+ continue-icon fast-forward-icon)])
+ (make-icon color 32 style)))]
+}
+
+@doc-apply[stop-sign-icon]{
+@examples[#:eval icon-eval (stop-sign-icon 'red 24 'diffuse)]
+}
+
+@doc-apply[check-icon]{
+@examples[#:eval icon-eval (check-icon 'cyan 48 'shiny)]
+}
+
+@doc-apply[magnifying-glass-icon]{
+@examples[#:eval icon-eval
+ (list (magnifying-glass-icon #f 32 'shiny)
+ (magnifying-glass-icon 'orange 32 'diffuse)
+ (magnifying-glass-icon 'green 32 'diffuse))]
+}
+
+@doc-apply[magnifying-glass-left-icon]{
+@examples[#:eval icon-eval
+ (list (magnifying-glass-left-icon #f 32 'shiny)
+ (magnifying-glass-left-icon 'red 32 'diffuse))]
+}
+
+@subsection{Tool Icons and Other Special Icons}
+
+@doc-apply[stop-signs-icon]{
+@examples[#:eval icon-eval (stop-signs-icon 24 'diffuse)]
+}
+
+@doc-apply[macro-stepper-icon]{
+@examples[#:eval icon-eval (macro-stepper-icon (toolbar-icon-height) 'diffuse)]
+}
+
+@doc-apply[check-syntax-icon]
+@doc-apply[check-syntax-small-icon]{
+@examples[#:eval icon-eval (list (check-syntax-icon (toolbar-icon-height) 'diffuse)
+ (check-syntax-small-icon (toolbar-icon-height) 'diffuse))]
+}
+
+@doc-apply[plt-logo]{
+@examples[#:eval icon-eval (plt-logo 256 'shiny)]
+}
+
+
+@section{Icon Constants and Contracts}
+
+@doc-apply[icon-colors]
+@doc-apply[icon-color/c]
+
+@doc-apply[icon-styles]
+@doc-apply[icon-style/c]
+
+
+@section{Icon @racket[pict]s}
+
+It is more flexible, but a little more complicated, to load icons as @racket[pict]s.
+As picts, icons can easily be appended, inset, superimposed, blurred, and more.
+
+To use these functions effectively, you should require @racketmodname[icons] and @racketmodname[slideshow/pict] together.
+
+Almost all of the functions in preceeding sections are defined in terms of the functions documented in this section.
+
+@interaction-eval[#:eval icon-eval (require slideshow/pict)]
+
+@doc-apply[load-icon-pict]{
+Corresponds to @racket[load-icon]. In fact, @racket[load-icon] uses @racket[load-icon-pict] to load the icon as a @racket[pict], and passes it to @racket[pict->icon].
+}
+
+@doc-apply[icon->pict]
+@doc-apply[pict->icon]{
+Convert from an icon to a @racket[pict], and back.
+
+The conversion from @racket[pict]s to icons can be lossy:
+@interaction[#:eval icon-eval
+ (scale (text "Hello" null 10) 5)
+ (scale (icon->pict (pict->icon (text "Hello" null 10))) 5)]
+
+Therefore, when composing icons from parts, work only with @racket[pict]s, and convert to an icon as the last step.
+}
+
+@doc-apply[go-icon-pict]
+@doc-apply[bar-icon-pict]
+@doc-apply[back-icon-pict]
+@doc-apply[stop-icon-pict]
+@doc-apply[step-icon-pict]
+@doc-apply[step-back-icon-pict]
+@doc-apply[continue-icon-pict]
+@doc-apply[continue-back-icon-pict]
+@doc-apply[fast-forward-icon-pict]
+@doc-apply[rewind-icon-pict]
+@doc-apply[pause-icon-pict]{
+These return typical ``playback control'' icons, as @racket[pict]s.
+
+@interaction[#:eval icon-eval
+ (for/fold ([icon (blank)])
+ ([make-icon-pict (list rewind-icon-pict continue-back-icon-pict
+ step-back-icon-pict back-icon-pict
+ pause-icon-pict stop-icon-pict
+ go-icon-pict step-icon-pict
+ continue-icon-pict fast-forward-icon-pict)])
+ (hc-append icon (make-icon-pict 'red 32 'shiny) (blank 16)))]
+}
+
+@doc-apply[stop-sign-icon-pict]{ Corresponds to @racket[stop-sign-icon]. }
+@doc-apply[check-icon-pict]{ Corresponds to @racket[check-icon]. }
+@doc-apply[magnifying-glass-icon-pict]{ Corresponds to @racket[magnifying-glass-icon]. }
+@doc-apply[magnifying-glass-left-icon-pict]{ Corresponds to @racket[magnifying-glass-left-icon]. }
+
+@doc-apply[stop-signs-icon-pict]{ Corresponds to @racket[stop-signs-icon]. }
+@doc-apply[macro-stepper-icon-pict]{ Corresponds to @racket[macro-stepper-icon]. }
+@doc-apply[check-syntax-icon-pict]{ Corresponds to @racket[check-syntax-icon]. }
+@doc-apply[check-syntax-small-icon-pict]{ Corresponds to @racket[check-syntax-small-icon]. }
+@doc-apply[plt-logo-pict]{ Corresponds to @racket[plt-logo]. }
+
+
+@section{Making New SVG Icons}
+
+This section is intended for Racket developers.
+
+In the future, this section will tell where to install SVG sources and how to render them so they can be used as icons.
diff --git a/collects/icons/tests/icon-tests.rkt b/collects/icons/tests/icon-tests.rkt
new file mode 100644
index 0000000000..cc67e23c3b
--- /dev/null
+++ b/collects/icons/tests/icon-tests.rkt
@@ -0,0 +1,86 @@
+#lang racket
+
+(require icons slideshow/pict)
+
+(define icon-heights '(8 12 16 24 32 48 64))
+
+(define (tape-deck color height style)
+ (list
+ (rewind-icon-pict color height style)
+ (continue-back-icon-pict color height style)
+ (step-back-icon-pict color height style)
+ (pause-icon-pict color height style)
+ (stop-icon-pict color height style)
+ (go-icon-pict color height style)
+ (step-icon-pict color height style)
+ (continue-icon-pict color height style)
+ (fast-forward-icon-pict color height style)))
+
+(for*/list ([height icon-heights]
+ [color icon-colors]
+ [style icon-styles])
+ (tape-deck color height style))
+
+(for/list ([height icon-heights])
+ (for*/list ([color icon-colors]
+ [style icon-styles])
+ (stop-sign-icon-pict color height style)))
+
+(for/list ([height icon-heights])
+ (for/list ([style icon-styles])
+ (stop-signs-icon-pict height style)))
+
+(for/list ([height icon-heights])
+ (for*/list ([color icon-colors]
+ [style icon-styles])
+ (check-icon-pict color height style)))
+
+(for/list ([height icon-heights])
+ (for*/list ([color icon-colors]
+ [style icon-styles])
+ (hc-append (magnifying-glass-icon-pict color height style)
+ (check-icon-pict color height style))))
+
+(for/list ([height icon-heights])
+ (for*/list ([color icon-colors]
+ [style icon-styles])
+ (lt-superimpose (check-icon-pict color height style)
+ (magnifying-glass-icon-pict #f height style))))
+
+(for*/list ([height icon-heights]
+ [style icon-styles])
+ (macro-stepper-icon-pict height style))
+
+(ht-append (go-icon-pict 'red 24 'diffuse)
+ (back-icon-pict 'blue 32 'shiny))
+
+(hc-append (go-icon-pict 'red 24 'diffuse)
+ (back-icon-pict 'blue 32 'shiny))
+
+(hc-append (back-icon-pict 'blue 32 'shiny)
+ (go-icon-pict 'red 24 'diffuse))
+
+(hb-append (go-icon-pict 'red 24 'diffuse)
+ (back-icon-pict 'blue 32 'shiny))
+
+(hb-append (back-icon-pict 'blue 32 'shiny)
+ (go-icon-pict 'red 24 'diffuse))
+
+(lt-superimpose (back-icon-pict 'blue 32 'shiny)
+ (go-icon-pict 'red 24 'diffuse))
+
+(rb-superimpose (check-icon-pict 'green (toolbar-icon-height) 'diffuse)
+ (scale (magnifying-glass-icon-pict
+ #f (toolbar-icon-height) (racket-icon-style))
+ 3/4))
+
+(define not-blurry
+ (let* ([1x (compose icon->pict pict->icon)]
+ [2x (compose 1x 1x)]
+ [4x (compose 2x 2x)]
+ [8x (compose 4x 4x)]
+ [16x (compose 8x 8x)]
+ [32x (compose 16x 16x)]
+ [64x (compose 32x 32x)])
+ (64x (magnifying-glass-icon-pict 'green 31.5 'shiny))))
+(list not-blurry (pict-width not-blurry) (pict-height not-blurry))
diff --git a/collects/macro-debugger/tool.rkt b/collects/macro-debugger/tool.rkt
index 80e2a623e4..25aac8389e 100644
--- a/collects/macro-debugger/tool.rkt
+++ b/collects/macro-debugger/tool.rkt
@@ -9,7 +9,8 @@
"view/frame.rkt"
(only-in "view/view.rkt" macro-stepper-director%)
"view/stepper.rkt"
- "view/prefs.rkt")
+ "view/prefs.rkt"
+ icons)
;; Capability name: 'macro-stepper:enabled
@@ -106,16 +107,9 @@
(define-local-member-name check-language)
- (define macro-debugger-bitmap
- (make-object bitmap%
- (build-path (collection-path "icons") "macro-stepper.png")
- 'png/mask))
-
- (define macro-debugger-up-bitmap
- (make-object bitmap%
- (build-path (collection-path "icons") "macro-stepper-narrow.png")
- 'png/mask))
-
+ (define macro-debugger-up-bitmap (step-icon 'blue (toolbar-icon-height)))
+ (define macro-debugger-bitmap (macro-stepper-icon (toolbar-icon-height)))
+
(define (macro-debugger-unit-frame-mixin %)
(class* % (frame/supports-macro-stepper<%>)
(super-new)