Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBenjamin Berg <benjamin@sipsolutions.net>2011-08-09 13:23:40 (GMT)
committer Benjamin Berg <benjamin@sipsolutions.net>2011-08-09 13:23:40 (GMT)
commite966a21544f0d4958c62c40ff7874d0eba023118 (patch)
tree873dc8f5da7ac67b401ea230820ed1e3afbf5533
parent2d80d22f9ce0fe1f5c123dc8d57a862adcd85a96 (diff)
Initial GTK3 theme that is just a copy of the gnome Adwaita theme.
-rw-r--r--Makefile.am2
-rw-r--r--configure.ac12
-rw-r--r--gtk3/Makefile.am1
-rw-r--r--gtk3/engine/Makefile.am17
-rw-r--r--gtk3/engine/engine.symbols4
-rw-r--r--gtk3/engine/sugar_engine.c1667
-rw-r--r--gtk3/engine/sugar_utils.c246
-rw-r--r--gtk3/engine/sugar_utils.h80
-rw-r--r--gtk3/theme/Makefile.am14
-rw-r--r--gtk3/theme/assets/Makefile.am24
-rw-r--r--gtk3/theme/assets/checkbox-checked-dark.svg268
-rw-r--r--gtk3/theme/assets/checkbox-checked-insensitive-dark.svg235
-rw-r--r--gtk3/theme/assets/checkbox-checked-insensitive.svg175
-rw-r--r--gtk3/theme/assets/checkbox-checked-scalable.svg191
-rw-r--r--gtk3/theme/assets/checkbox-checked.svg191
-rw-r--r--gtk3/theme/assets/checkbox-mixed-dark.svg320
-rw-r--r--gtk3/theme/assets/checkbox-mixed.svg250
-rw-r--r--gtk3/theme/assets/checkbox-unchecked-dark.svg263
-rw-r--r--gtk3/theme/assets/checkbox-unchecked-insensitive-dark.svg208
-rw-r--r--gtk3/theme/assets/checkbox-unchecked-insensitive.svg149
-rw-r--r--gtk3/theme/assets/checkbox-unchecked.svg168
-rw-r--r--gtk3/theme/assets/radio-mixed-dark.svg426
-rw-r--r--gtk3/theme/assets/radio-mixed.svg343
-rw-r--r--gtk3/theme/assets/radio-selected-dark.svg539
-rw-r--r--gtk3/theme/assets/radio-selected-insensitive-dark.svg243
-rw-r--r--gtk3/theme/assets/radio-selected-insensitive.svg264
-rw-r--r--gtk3/theme/assets/radio-selected.svg350
-rw-r--r--gtk3/theme/assets/radio-unselected-dark.svg412
-rw-r--r--gtk3/theme/assets/radio-unselected-insensitive-dark.svg233
-rw-r--r--gtk3/theme/assets/radio-unselected-insensitive.svg189
-rw-r--r--gtk3/theme/assets/radio-unselected.svg298
-rw-r--r--gtk3/theme/gtk-dark.css107
-rw-r--r--gtk3/theme/gtk-widgets-assets-dark.css66
-rw-r--r--gtk3/theme/gtk-widgets-assets.css65
-rw-r--r--gtk3/theme/gtk-widgets.css1252
-rw-r--r--gtk3/theme/gtk.css111
-rw-r--r--gtk3/theme/settings.ini3
37 files changed, 9383 insertions, 3 deletions
diff --git a/Makefile.am b/Makefile.am
index 4f78c3a..ea51bb2 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1 +1 @@
-SUBDIRS = cursor icons gtk
+SUBDIRS = cursor icons gtk gtk3
diff --git a/configure.ac b/configure.ac
index 3295310..55d4ff5 100644
--- a/configure.ac
+++ b/configure.ac
@@ -22,10 +22,14 @@ if test -z "$ICON_SLICER"; then
AC_MSG_ERROR([icon-slicer is required])
fi
-PKG_CHECK_MODULES(GTK2, gtk+-2.0 >= 2.0.0,,
+PKG_CHECK_MODULES(GTK2, gtk+-2.0 >= 2.16.0,,
AC_MSG_ERROR([GTK+-2.0 is required to compile sugar-artwork]))
-PKG_CHECK_MODULES(ENGINE, gtk+-2.0 >= 2.0 gobject-2.0 >= 2.0 cairo >= 0.1.1)
+PKG_CHECK_MODULES(GTK3, gtk+-3.0 >= 3.0.0,,
+ AC_MSG_ERROR([GTK+-3.0 is required to compile sugar-artwork]))
+
+PKG_CHECK_MODULES(ENGINE, gtk+-2.0 >= 2.16 gobject-2.0 >= 2.0 cairo >= 0.1.1)
+PKG_CHECK_MODULES(ENGINE3, gtk+-3.0 >= 3.0 gobject-2.0 >= 2.0 cairo >= 0.1.1)
GTK_VERSION=`$PKG_CONFIG --variable=gtk_binary_version gtk+-2.0`
AC_SUBST(GTK_VERSION)
@@ -63,4 +67,8 @@ icons/scalable/status/Makefile
gtk/Makefile
gtk/engine/Makefile
gtk/theme/Makefile
+gtk3/Makefile
+gtk3/engine/Makefile
+gtk3/theme/Makefile
+gtk3/theme/assets/Makefile
])
diff --git a/gtk3/Makefile.am b/gtk3/Makefile.am
new file mode 100644
index 0000000..bda97ca
--- /dev/null
+++ b/gtk3/Makefile.am
@@ -0,0 +1 @@
+SUBDIRS = engine theme \ No newline at end of file
diff --git a/gtk3/engine/Makefile.am b/gtk3/engine/Makefile.am
new file mode 100644
index 0000000..c4b5c57
--- /dev/null
+++ b/gtk3/engine/Makefile.am
@@ -0,0 +1,17 @@
+enginedir = $(libdir)/gtk-3.0/$(GTK_VERSION)/theming-engines
+engine_LTLIBRARIES = libsugar.la
+
+INCLUDES = \
+ $(ENGINE3_CFLAGS)
+
+libsugar_la_SOURCES = \
+ sugar_utils.h \
+ sugar_utils.c \
+ sugar_engine.c
+
+libsugar_la_LDFLAGS = -module -avoid-version -no-undefined -export-symbols $(top_srcdir)/gtk3/engine/engine.symbols
+libsugar_la_LIBADD = $(ENGINE3_LIBS)
+
+EXTRA_DIST = engine.symbols
+
+-include $(top_srcdir)/git.mk
diff --git a/gtk3/engine/engine.symbols b/gtk3/engine/engine.symbols
new file mode 100644
index 0000000..6ad8c2e
--- /dev/null
+++ b/gtk3/engine/engine.symbols
@@ -0,0 +1,4 @@
+g_module_check_init
+theme_init
+theme_exit
+create_engine
diff --git a/gtk3/engine/sugar_engine.c b/gtk3/engine/sugar_engine.c
new file mode 100644
index 0000000..710efc0
--- /dev/null
+++ b/gtk3/engine/sugar_engine.c
@@ -0,0 +1,1667 @@
+/* Adwaita - a GTK+ engine
+ *
+ * Copyright (C) 2011 Carlos Garnacho <carlosg@gnome.org>
+ * Copyright (C) 2011 Red Hat, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * Authors: Carlos Garnacho <carlosg@gnome.org>
+ * Cosimo Cecchi <cosimoc@gnome.org>
+ *
+ * Project contact: <gnome-themes-list@gnome.org>
+ */
+
+#include <gtk/gtk.h>
+#include <gmodule.h>
+#include <math.h>
+#include <cairo-gobject.h>
+
+#include "sugar_utils.h"
+
+#define ADWAITA_NAMESPACE "sugar"
+
+typedef struct _AdwaitaEngine AdwaitaEngine;
+typedef struct _AdwaitaEngineClass AdwaitaEngineClass;
+
+struct _AdwaitaEngine
+{
+ GtkThemingEngine parent_object;
+};
+
+struct _AdwaitaEngineClass
+{
+ GtkThemingEngineClass parent_class;
+};
+
+#define ADWAITA_TYPE_ENGINE (sugar_engine_get_type ())
+#define ADWAITA_ENGINE(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), ADWAITA_TYPE_ENGINE, AdwaitaEngine))
+#define ADWAITA_ENGINE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ADWAITA_TYPE_ENGINE, AdwaitaEngineClass))
+#define ADWAITA_IS_ENGINE(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), ADWAITA_TYPE_ENGINE))
+#define ADWAITA_IS_ENGINE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ADWAITA_TYPE_ENGINE))
+#define ADWAITA_ENGINE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ADWAITA_TYPE_ENGINE, AdwaitaEngineClass))
+
+GType sugar_engine_get_type (void) G_GNUC_CONST;
+void sugar_engine_register_types (GTypeModule *module);
+
+G_DEFINE_DYNAMIC_TYPE (AdwaitaEngine, sugar_engine, GTK_TYPE_THEMING_ENGINE)
+
+void
+sugar_engine_register_types (GTypeModule *module)
+{
+ sugar_engine_register_type (module);
+}
+
+static void
+sugar_engine_init (AdwaitaEngine *self)
+{
+}
+
+static void
+sugar_engine_render_arrow (GtkThemingEngine *engine,
+ cairo_t *cr,
+ gdouble angle,
+ gdouble x,
+ gdouble y,
+ gdouble size)
+{
+ double line_width;
+ GtkStateFlags state;
+ GdkRGBA color;
+
+ cairo_save (cr);
+
+ line_width = size / 3.0 / sqrt (2);
+ cairo_set_line_width (cr, line_width);
+ cairo_set_line_join (cr, CAIRO_LINE_JOIN_ROUND);
+ cairo_set_line_cap (cr, CAIRO_LINE_CAP_ROUND);
+
+ cairo_translate (cr, x + size / 2.0, y + size / 2.0);
+ cairo_rotate (cr, angle - G_PI_2);
+ cairo_translate (cr, size / 4.0, 0);
+
+ cairo_scale (cr,
+ (size / (size + line_width)),
+ (size / (size + line_width)));
+
+ cairo_move_to (cr, -size / 2.0, -size / 2.0);
+ cairo_rel_line_to (cr, size / 2.0, size / 2.0);
+ cairo_rel_line_to (cr, - size / 2.0, size / 2.0);
+
+ state = gtk_theming_engine_get_state (engine);
+ gtk_theming_engine_get_color (engine, state, &color);
+
+ if (gtk_theming_engine_has_class (engine, GTK_STYLE_CLASS_MENUITEM) &&
+ !(state & GTK_STATE_FLAG_INSENSITIVE) && !(state & GTK_STATE_FLAG_PRELIGHT))
+ {
+ GdkRGBA *arrow_color;
+
+ gtk_theming_engine_get (engine, state,
+ "-sugar-menuitem-arrow-color", &arrow_color,
+ NULL);
+
+ if (arrow_color != NULL)
+ color = *arrow_color;
+
+ gdk_rgba_free (arrow_color);
+ }
+
+ gdk_cairo_set_source_rgba (cr, &color);
+ cairo_stroke (cr);
+
+ cairo_restore (cr);
+}
+
+static void
+sugar_engine_render_focus (GtkThemingEngine *engine,
+ cairo_t *cr,
+ gdouble x,
+ gdouble y,
+ gdouble width,
+ gdouble height)
+{
+ GdkRGBA *fill_color, *border_color = NULL;
+ cairo_pattern_t *pattern = NULL;
+ GtkStateFlags state;
+ gint line_width, focus_pad;
+ gint border_radius;
+ gboolean use_dashes;
+ double dashes[2] = { 2.0, 0.2 };
+
+ state = gtk_theming_engine_get_state (engine);
+ gtk_theming_engine_get (engine, state,
+ "-sugar-focus-border-color", &border_color,
+ "-sugar-focus-fill-color", &fill_color,
+ "-sugar-focus-border-radius", &border_radius,
+ "-sugar-focus-border-gradient", &pattern,
+ "-sugar-focus-border-dashes", &use_dashes,
+ NULL);
+
+ gtk_theming_engine_get_style (engine,
+ "focus-line-width", &line_width,
+ "focus-padding", &focus_pad,
+ NULL);
+
+ if (gtk_theming_engine_has_class (engine, GTK_STYLE_CLASS_NOTEBOOK) &&
+ gtk_theming_engine_has_region (engine, GTK_STYLE_REGION_TAB, NULL))
+ {
+ /* as we render the tab smaller than the whole allocation, we need
+ * to recenter and resize the focus on the tab.
+ */
+ y += 3.0;
+ height -= 3.0;
+ }
+
+ cairo_save (cr);
+ cairo_set_line_width (cr, line_width);
+
+ if (line_width > 1)
+ _cairo_round_rectangle_sides (cr, border_radius,
+ x, y, width, height,
+ SIDE_ALL, GTK_JUNCTION_NONE);
+ else
+ _cairo_round_rectangle_sides (cr, border_radius,
+ x + 0.5, y + 0.5,
+ width - 1, height - 1,
+ SIDE_ALL, GTK_JUNCTION_NONE);
+
+ /* if we have a fill color, draw the fill */
+ if (fill_color != NULL)
+ {
+ gdk_cairo_set_source_rgba (cr, fill_color);
+ cairo_fill_preserve (cr);
+ }
+
+ if (use_dashes)
+ cairo_set_dash (cr, dashes, 1, 0.0);
+
+ /* if we have a gradient, draw the gradient, otherwise
+ * draw the line if we have a color for it.
+ */
+ if (pattern != NULL)
+ {
+ style_pattern_set_matrix (pattern, width, height, FALSE);
+ cairo_set_source (cr, pattern);
+ }
+ else if (border_color != NULL)
+ {
+ gdk_cairo_set_source_rgba (cr, border_color);
+ }
+
+ cairo_stroke (cr);
+ cairo_restore (cr);
+
+ if (pattern != NULL)
+ cairo_pattern_destroy (pattern);
+
+ if (border_color != NULL)
+ gdk_rgba_free (border_color);
+
+ if (fill_color != NULL)
+ gdk_rgba_free (fill_color);
+}
+
+static void
+render_check_menuitem (GtkThemingEngine *engine,
+ cairo_t *cr,
+ gdouble x,
+ gdouble y,
+ gdouble width,
+ gdouble height)
+{
+ GdkRGBA color;
+ GtkStateFlags state;
+
+ state = gtk_theming_engine_get_state (engine);
+ gtk_theming_engine_get_color (engine, state, &color);
+
+ if (!(state & GTK_STATE_FLAG_ACTIVE))
+ return;
+
+ cairo_save (cr);
+
+ cairo_translate (cr, x, y);
+
+ cairo_set_line_width (cr, 2.0);
+ cairo_set_line_cap (cr, CAIRO_LINE_CAP_ROUND);
+ cairo_set_line_join (cr, CAIRO_LINE_JOIN_ROUND);
+
+ cairo_move_to (cr, 0.5 + (width * 0.08), (height * 0.67));
+ cairo_line_to (cr, 0.5 + (width * 0.32), (height * 0.90));
+ cairo_line_to (cr, 0.5 + (width * 0.80), (height * 0.33));
+
+ gdk_cairo_set_source_rgba (cr, &color);
+ cairo_stroke (cr);
+
+ cairo_restore (cr);
+}
+
+static void
+sugar_engine_render_check (GtkThemingEngine *engine,
+ cairo_t *cr,
+ gdouble x,
+ gdouble y,
+ gdouble width,
+ gdouble height)
+{
+ gboolean res;
+
+ if (gtk_theming_engine_has_class (engine,
+ GTK_STYLE_CLASS_MENUITEM))
+ {
+ render_check_menuitem (engine, cr,
+ x, y, width, height);
+
+ return;
+ }
+
+ res = sugar_render_from_assets_common (engine, cr,
+ x, y + 2.0, width, height);
+
+ if (!res)
+ GTK_THEMING_ENGINE_CLASS (sugar_engine_parent_class)->render_check
+ (engine, cr, x, y, width, height);
+}
+
+static void
+render_radio_menuitem (GtkThemingEngine *engine,
+ cairo_t *cr,
+ gdouble x,
+ gdouble y,
+ gdouble width,
+ gdouble height)
+{
+ GdkRGBA color;
+ GtkStateFlags state;
+ double radius;
+
+ state = gtk_theming_engine_get_state (engine);
+
+ if (!(state & GTK_STATE_FLAG_ACTIVE))
+ return;
+
+ gtk_theming_engine_get_color (engine, state, &color);
+
+ radius = MAX (height / 2.0, width / 2.0) * 0.58;
+
+ cairo_save (cr);
+
+ cairo_translate (cr, x + width / 2.0, y + height * 0.67);
+ cairo_arc (cr,
+ 0, 0,
+ radius,
+ 0, 4 * G_PI);
+
+ gdk_cairo_set_source_rgba (cr, &color);
+ cairo_fill (cr);
+
+ cairo_restore (cr);
+}
+
+static void
+sugar_engine_render_option (GtkThemingEngine *engine,
+ cairo_t *cr,
+ gdouble x,
+ gdouble y,
+ gdouble width,
+ gdouble height)
+{
+ gboolean res;
+
+ if (gtk_theming_engine_has_class (engine,
+ GTK_STYLE_CLASS_MENUITEM))
+ {
+ render_radio_menuitem (engine, cr, x, y, width, height);
+ return;
+ }
+
+ res = sugar_render_from_assets_common (engine, cr,
+ x, y + 2.0, width, height);
+
+ if (!res)
+ GTK_THEMING_ENGINE_CLASS (sugar_engine_parent_class)->render_option
+ (engine, cr, x, y, width, height);
+}
+
+static void
+draw_tab_arcs (cairo_t *cr,
+ gdouble curve_width,
+ gdouble x,
+ gdouble y,
+ gdouble width,
+ gdouble height)
+{
+ cairo_arc (cr,
+ curve_width, 6.0,
+ 2.5,
+ G_PI, G_PI + G_PI_2);
+
+ cairo_arc (cr,
+ width - curve_width, 6.0,
+ 2.5,
+ G_PI + G_PI_2, 2 * G_PI);
+}
+
+static void
+draw_tab_shape_active (cairo_t *cr,
+ gdouble curve_width,
+ gdouble x,
+ gdouble y,
+ gdouble width,
+ gdouble height)
+{
+ cairo_move_to (cr, 0, height);
+
+ draw_tab_arcs (cr, curve_width, x, y, width, height);
+
+ cairo_line_to (cr, width, height);
+}
+
+static void
+render_notebook_extension (GtkThemingEngine *engine,
+ cairo_t *cr,
+ gdouble x,
+ gdouble y,
+ gdouble width,
+ gdouble height,
+ GtkPositionType gap_side)
+{
+ gint tab_curvature;
+ GdkRGBA *color, border_color, background_color;
+ GtkStateFlags state;
+ gdouble angle = 0;
+ cairo_pattern_t *pattern = NULL, *background_pattern = NULL;
+ cairo_matrix_t matrix;
+
+ gtk_theming_engine_get_style (engine,
+ "tab-curvature", &tab_curvature,
+ NULL);
+ state = gtk_theming_engine_get_state (engine);
+ gtk_theming_engine_get_background_color (engine, state, &background_color);
+ gtk_theming_engine_get_border_color (engine, state, &border_color);
+ gtk_theming_engine_get (engine, state,
+ "-sugar-selected-tab-color", &color,
+ "-sugar-border-gradient", &pattern,
+ "background-image", &background_pattern,
+ NULL);
+
+ cairo_save (cr);
+ cairo_set_line_width (cr, 1.0);
+
+ if (gap_side == GTK_POS_TOP)
+ {
+ angle = G_PI;
+ cairo_translate (cr, width, height);
+ }
+
+ if (gap_side == GTK_POS_BOTTOM)
+ cairo_translate (cr,
+ x + 0.5,
+ (state & GTK_STATE_FLAG_ACTIVE) ?
+ y + 1.0 : y);
+ else if (gap_side == GTK_POS_TOP)
+ cairo_translate (cr,
+ x - 0.5,
+ (state & GTK_STATE_FLAG_ACTIVE) ?
+ y - 1.0 : y);
+
+ cairo_rotate (cr, angle);
+
+ width -= 1.0;
+ draw_tab_shape_active (cr, tab_curvature, 0, 0, width, height);
+
+ if (background_pattern != NULL)
+ {
+ cairo_matrix_init_scale (&matrix,
+ 1. / width,
+ 1. / height);
+ cairo_pattern_set_matrix (background_pattern, &matrix);
+ cairo_set_source (cr, background_pattern);
+ }
+ else
+ {
+ gdk_cairo_set_source_rgba (cr, &background_color);
+ }
+
+ cairo_fill (cr);
+
+ if (state & GTK_STATE_FLAG_ACTIVE)
+ {
+ draw_tab_shape_active (cr, tab_curvature, 0, 0, width, 6.0);
+ gdk_cairo_set_source_rgba (cr, color);
+ cairo_fill (cr);
+ }
+
+ draw_tab_shape_active (cr, tab_curvature, 0, 0, width, height);
+
+ if (state & GTK_STATE_FLAG_ACTIVE)
+ {
+ style_pattern_set_matrix (pattern, width, height - 6.0, FALSE);
+ cairo_set_source (cr, pattern);
+ }
+ else
+ {
+ gdk_cairo_set_source_rgba (cr, &border_color);
+ }
+
+ cairo_stroke (cr);
+
+ gdk_rgba_free (color);
+
+ if (pattern != NULL)
+ cairo_pattern_destroy (pattern);
+
+ if (background_pattern != NULL)
+ cairo_pattern_destroy (background_pattern);
+
+ cairo_restore (cr);
+}
+
+static void
+sugar_engine_render_extension (GtkThemingEngine *engine,
+ cairo_t *cr,
+ gdouble x,
+ gdouble y,
+ gdouble width,
+ gdouble height,
+ GtkPositionType gap_side)
+{
+ GtkStateFlags state;
+
+ if (gtk_theming_engine_has_class (engine, GTK_STYLE_CLASS_NOTEBOOK) &&
+ ((gap_side == GTK_POS_TOP) || (gap_side == GTK_POS_BOTTOM)))
+ {
+ render_notebook_extension (engine, cr, x, y, width, height, gap_side);
+ return;
+ }
+
+ GTK_THEMING_ENGINE_CLASS (sugar_engine_parent_class)->render_extension
+ (engine, cr,
+ x, y, width, height,
+ gap_side);
+
+ state = gtk_theming_engine_get_state (engine);
+
+ if (state & GTK_STATE_FLAG_ACTIVE)
+ {
+ GdkRGBA *fill;
+
+ gtk_theming_engine_get (engine, state,
+ "-sugar-selected-tab-color", &fill,
+ NULL);
+
+ switch (gap_side)
+ {
+ case GTK_POS_BOTTOM:
+ cairo_rectangle (cr,
+ x + 1, y + 1,
+ width - 2, 3);
+ break;
+ case GTK_POS_TOP:
+ cairo_rectangle (cr,
+ x + 1, y + height - 4,
+ width - 2, 3);
+ break;
+ case GTK_POS_RIGHT:
+ cairo_rectangle (cr,
+ x + 1, y + 1,
+ 3, height - 2);
+ break;
+ case GTK_POS_LEFT:
+ cairo_rectangle (cr,
+ x + width - 4, y + 1,
+ 3, height - 2);
+ break;
+ }
+
+ gdk_cairo_set_source_rgba (cr, fill);
+ cairo_fill (cr);
+
+ gdk_rgba_free (fill);
+ }
+}
+
+static void
+draw_menu_bar_item_shape (cairo_t *cr,
+ gdouble radius,
+ gdouble x,
+ gdouble y,
+ gdouble w,
+ gdouble h,
+ gboolean for_fill)
+{
+ /* draw a round rectangle without the bottom side */
+ cairo_move_to (cr, x+radius, y);
+ cairo_arc (cr, x+w-radius, y+radius, radius, G_PI * 1.5, G_PI * 2);
+ cairo_line_to (cr, x+w, y+h);
+
+ if (for_fill)
+ cairo_line_to (cr, x, y+h);
+ else
+ cairo_move_to (cr, x, y+h);
+
+ cairo_arc (cr, x+radius, y+radius, radius, G_PI, G_PI * 1.5);
+}
+
+static void
+render_menubar_active_frame (GtkThemingEngine *engine,
+ cairo_t *cr,
+ gdouble x,
+ gdouble y,
+ gdouble w,
+ gdouble h)
+{
+ GtkStateFlags state;
+ GdkRGBA color;
+ gint radius, border_width;
+ GtkBorder border;
+
+ state = gtk_theming_engine_get_state (engine);
+ gtk_theming_engine_get_border_color (engine, state, &color);
+ gtk_theming_engine_get_border (engine, state, &border);
+ gtk_theming_engine_get (engine, state,
+ "border-radius", &radius,
+ NULL);
+
+ border_width = MIN (MIN (border.top, border.bottom),
+ MIN (border.left, border.right));
+
+ if (border_width > 1)
+ {
+ x += (gdouble) border_width / 2;
+ y += (gdouble) border_width / 2;
+ w -= border_width;
+ h -= border_width;
+ }
+ else if (border_width == 1)
+ {
+ x += 0.5;
+ y += 0.5;
+ w -= 1;
+ h -= 1;
+ }
+
+ cairo_save (cr);
+
+ cairo_set_line_width (cr, border_width);
+ draw_menu_bar_item_shape (cr, radius, x, y, w, h, FALSE);
+
+ gdk_cairo_set_source_rgba (cr, &color);
+ cairo_stroke (cr);
+
+ cairo_restore (cr);
+}
+
+static void
+render_frame_default (GtkThemingEngine *engine,
+ cairo_t *cr,
+ gdouble x,
+ gdouble y,
+ gdouble width,
+ gdouble height)
+{
+ cairo_pattern_t *pattern = NULL;
+ GtkStateFlags state;
+ GtkBorder border;
+ gint border_radius;
+ GtkBorderStyle border_style;
+ GtkJunctionSides junctions;
+
+ state = gtk_theming_engine_get_state (engine);
+
+ gtk_theming_engine_get (engine, state,
+ "-sugar-border-gradient", &pattern,
+ "border-style", &border_style,
+ NULL);
+
+ if (pattern == NULL || border_style == GTK_BORDER_STYLE_NONE)
+ {
+ GTK_THEMING_ENGINE_CLASS (sugar_engine_parent_class)->render_frame
+ (engine, cr,
+ x, y, width, height);
+
+ return;
+ }
+
+ cairo_save (cr);
+
+ gtk_theming_engine_get (engine, state,
+ "border-radius", &border_radius,
+ NULL);
+ gtk_theming_engine_get_border (engine, state, &border);
+ junctions = gtk_theming_engine_get_junction_sides (engine);
+
+ style_pattern_set_matrix (pattern, width, height, TRUE);
+
+ _cairo_uneven_frame (cr, border_radius,
+ x, y, width, height,
+ &border, junctions);
+ cairo_set_source (cr, pattern);
+
+ cairo_fill (cr);
+
+ cairo_restore (cr);
+
+ cairo_pattern_destroy (pattern);
+}
+
+static void
+sugar_engine_render_frame (GtkThemingEngine *engine,
+ cairo_t *cr,
+ gdouble x,
+ gdouble y,
+ gdouble width,
+ gdouble height)
+{
+ const GtkWidgetPath *path;
+ GtkRegionFlags flags = 0;
+ gint len;
+ GtkStateFlags state;
+
+ state = gtk_theming_engine_get_state (engine);
+
+ if (gtk_theming_engine_has_class (engine, GTK_STYLE_CLASS_MENUITEM) &&
+ gtk_theming_engine_has_class (engine, GTK_STYLE_CLASS_MENUBAR))
+ {
+ render_menubar_active_frame (engine, cr, x, y, width, height);
+ return;
+ }
+
+ path = gtk_theming_engine_get_path (engine);
+ len = gtk_widget_path_length (path);
+
+ cairo_save (cr);
+
+ if (gtk_widget_path_iter_has_region (path, len - 2,
+ GTK_STYLE_REGION_COLUMN_HEADER,
+ &flags))
+ {
+ GdkRGBA color;
+
+ if ((flags & GTK_REGION_LAST) != 0)
+ goto out;
+
+ /* Column header */
+ if (gtk_theming_engine_get_direction (engine) == GTK_TEXT_DIR_RTL)
+ {
+ cairo_move_to (cr, x + 0.5, y + 2);
+ cairo_line_to (cr, x + 0.5, y + height - 4);
+ }
+ else
+ {
+ cairo_move_to (cr, x + width - 0.5, y + 2);
+ cairo_line_to (cr, x + width - 0.5, y + height - 4);
+ }
+
+ gtk_theming_engine_get_border_color (engine, state, &color);
+
+ cairo_set_line_width (cr, 1);
+ gdk_cairo_set_source_rgba (cr, &color);
+ cairo_stroke (cr);
+ }
+ else
+ {
+ sugar_trim_allocation_for_scale (engine,
+ &x, &y,
+ &width, &height);
+ render_frame_default (engine, cr, x, y, width, height);
+ }
+
+out:
+ cairo_restore (cr);
+}
+
+static void
+render_menubar_active_background (GtkThemingEngine *engine,
+ cairo_t *cr,
+ gdouble x,
+ gdouble y,
+ gdouble w,
+ gdouble h)
+{
+ GtkStateFlags state;
+ GdkRGBA color;
+ gint radius;
+ GtkBorder border;
+
+ state = gtk_theming_engine_get_state (engine);
+ gtk_theming_engine_get_border_color (engine, state, &color);
+ gtk_theming_engine_get_border (engine, state, &border);
+ gtk_theming_engine_get (engine, state,
+ "border-radius", &radius,
+ NULL);
+
+ gtk_theming_engine_get_background_color (engine, state, &color);
+
+ /* omit all the border but the bottom line */
+ x += border.left;
+ y += border.top;
+ w -= border.left + border.right;
+ h -= border.top;
+
+ cairo_save (cr);
+ cairo_translate (cr, x, y);
+
+ draw_menu_bar_item_shape (cr, radius, 0, 0, w, h, TRUE);
+
+ gdk_cairo_set_source_rgba (cr, &color);
+ cairo_fill (cr);
+
+ cairo_restore (cr);
+}
+
+static void
+render_inset_lines (GtkThemingEngine *engine,
+ cairo_t *cr,
+ gdouble x,
+ gdouble y,
+ gdouble width,
+ gdouble height)
+{
+ GtkStateFlags state;
+ GtkBorder border;
+ GdkRGBA *inset_left, *inset_right, *inset_top, *inset_bottom;
+
+ state = gtk_theming_engine_get_state (engine);
+ gtk_theming_engine_get_border (engine, state, &border);
+
+ gtk_theming_engine_get (engine, state,
+ "-sugar-inset-left", &inset_left,
+ "-sugar-inset-right", &inset_right,
+ "-sugar-inset-top", &inset_top,
+ "-sugar-inset-bottom", &inset_bottom,
+ NULL);
+
+ cairo_save (cr);
+ cairo_set_line_width (cr, 1.0);
+
+ if (inset_left != NULL)
+ {
+ cairo_move_to (cr,
+ x + border.left + 0.5,
+ y + border.top + 1.0);
+ cairo_line_to (cr,
+ x + border.left + 1,
+ y + height - border.bottom - 1.0);
+
+ gdk_cairo_set_source_rgba (cr, inset_left);
+ cairo_stroke (cr);
+
+ gdk_rgba_free (inset_left);
+ }
+
+ if (inset_right != NULL)
+ {
+ cairo_move_to (cr,
+ x + width - border.right - 0.5,
+ y + border.top + 1.0);
+ cairo_line_to (cr,
+ x + width - border.right - 0.5,
+ y + height - border.bottom - 1.0);
+
+ gdk_cairo_set_source_rgba (cr, inset_right);
+ cairo_stroke (cr);
+
+ gdk_rgba_free (inset_right);
+ }
+
+ if (inset_top != NULL)
+ {
+ cairo_move_to (cr,
+ x + border.left + 1.0,
+ y + border.top + 0.5);
+ cairo_line_to (cr,
+ x + width - border.right - 1.0,
+ y + border.top + 0.5);
+
+ gdk_cairo_set_source_rgba (cr, inset_top);
+ cairo_stroke (cr);
+
+ gdk_rgba_free (inset_top);
+ }
+
+ if (inset_bottom != NULL)
+ {
+ cairo_move_to (cr,
+ x + border.left + 1.0,
+ y + height - border.bottom - 0.5);
+ cairo_line_to (cr,
+ x + width - border.right - 1.0,
+ y + height - border.bottom - 0.5);
+
+ gdk_cairo_set_source_rgba (cr, inset_bottom);
+ cairo_stroke (cr);
+
+ gdk_rgba_free (inset_bottom);
+ }
+
+ cairo_restore (cr);
+}
+
+static void
+sugar_engine_render_background (GtkThemingEngine *engine,
+ cairo_t *cr,
+ gdouble x,
+ gdouble y,
+ gdouble width,
+ gdouble height)
+{
+ if (gtk_theming_engine_has_class (engine, GTK_STYLE_CLASS_MENUITEM) &&
+ gtk_theming_engine_has_class (engine, GTK_STYLE_CLASS_MENUBAR))
+ {
+ render_menubar_active_background (engine, cr, x, y, width, height);
+ return;
+ }
+
+ sugar_trim_allocation_for_scale (engine,
+ &x, &y,
+ &width, &height);
+
+ GTK_THEMING_ENGINE_CLASS (sugar_engine_parent_class)->render_background
+ (engine, cr, x, y,
+ width, height);
+
+ render_inset_lines (engine, cr, x, y, width, height);
+}
+
+static void
+sugar_engine_render_expander (GtkThemingEngine *engine,
+ cairo_t *cr,
+ gdouble x,
+ gdouble y,
+ gdouble width,
+ gdouble height)
+{
+ GdkRGBA fg;
+ GtkStateFlags state;
+ gdouble side, offset;
+ gint line_width;
+ GtkBorder border;
+
+ side = floor (MIN (width, height));
+
+ /* make sure the side length is always odd */
+ if (((gint) side % 2) == 0)
+ side -= 1.0;
+
+ x += width / 2 - side / 2;
+ y += height / 2 - side / 2;
+
+ GTK_THEMING_ENGINE_CLASS (sugar_engine_parent_class)->render_background
+ (engine, cr, x, y, side, side);
+ GTK_THEMING_ENGINE_CLASS (sugar_engine_parent_class)->render_frame
+ (engine, cr, x, y, side, side);
+
+ state = gtk_theming_engine_get_state (engine);
+ gtk_theming_engine_get_color (engine, state, &fg);
+ gtk_theming_engine_get_border (engine, state, &border);
+
+ line_width = 1;
+ offset = (1 + line_width / 2.0);
+
+ cairo_save (cr);
+
+ cairo_set_line_width (cr, line_width);
+ cairo_set_line_cap (cr, CAIRO_LINE_CAP_ROUND);
+ gdk_cairo_set_source_rgba (cr, &fg);
+
+ cairo_move_to (cr,
+ x + border.left + offset,
+ y + side / 2);
+ cairo_line_to (cr,
+ x + side - (border.right + offset),
+ y + side / 2);
+
+ if ((state & GTK_STATE_FLAG_ACTIVE) == 0)
+ {
+ cairo_move_to (cr,
+ x + side / 2,
+ y + border.top + offset);
+ cairo_line_to (cr,
+ x + side / 2,
+ y + side - (border.bottom + offset));
+ }
+
+ cairo_stroke (cr);
+
+ cairo_restore (cr);
+}
+
+static void
+sugar_engine_render_activity (GtkThemingEngine *engine,
+ cairo_t *cr,
+ gdouble x,
+ gdouble y,
+ gdouble width,
+ gdouble height)
+{
+ GtkStateFlags state;
+
+ cairo_save (cr);
+ state = gtk_theming_engine_get_state (engine);
+
+ sugar_trim_allocation_for_scale (engine,
+ &x, &y,
+ &width, &height);
+
+ GTK_THEMING_ENGINE_CLASS (sugar_engine_parent_class)->render_activity
+ (engine, cr,
+ x, y, width, height);
+
+ if (gtk_theming_engine_has_class (engine, GTK_STYLE_CLASS_PROGRESSBAR))
+ {
+ cairo_pattern_t *pattern = NULL;
+
+ gtk_theming_engine_get (engine, state,
+ "-sugar-progressbar-pattern", &pattern,
+ NULL);
+
+ if (pattern != NULL)
+ {
+ style_pattern_set_matrix (pattern, 20, 20, TRUE);
+ cairo_rectangle (cr, x, y, width, height);
+ cairo_set_source (cr, pattern);
+ cairo_fill (cr);
+
+ cairo_pattern_destroy (pattern);
+ }
+ }
+
+ cairo_restore (cr);
+
+ render_inset_lines (engine, cr, x, y, width, height);
+}
+
+static void
+draw_round_slider (cairo_t *cr,
+ gdouble width,
+ gdouble height)
+{
+ cairo_arc (cr, (width) / 2.0, (height) / 2.0,
+ MIN (height / 2.0, width / 2.0) - 0.5,
+ 0, 2 * G_PI);
+ cairo_close_path (cr);
+}
+
+static void
+draw_mark_slider (cairo_t *cr,
+ gdouble width,
+ gdouble height,
+ gboolean marks_below,
+ GtkOrientation orientation)
+{
+ cairo_set_line_join (cr, CAIRO_LINE_JOIN_ROUND);
+
+ if (marks_below)
+ {
+ if (orientation == GTK_ORIENTATION_HORIZONTAL)
+ {
+ cairo_move_to (cr, 0, height / 2.0 + 3.0);
+ cairo_arc (cr, 2.5, 3.5,
+ 2.0,
+ G_PI, G_PI + G_PI_2);
+
+ cairo_arc (cr, width - 2.5, 3.5,
+ 2.0,
+ G_PI + G_PI_2, 2 * G_PI);
+
+ cairo_line_to (cr, width, height / 2.0 + 3.0);
+ cairo_line_to (cr, width / 2.0, height);
+ cairo_line_to (cr, 0, height / 2.0 + 3.0);
+
+ cairo_close_path (cr);
+ }
+ else
+ {
+ cairo_move_to (cr, width / 2.0, 0);
+ cairo_arc (cr, width - 2.5, 2.5,
+ 2.0,
+ G_PI + G_PI_2, 2 * G_PI);
+
+ cairo_arc (cr, width - 2.5, height - 2.5,
+ 2.0,
+ 0, G_PI_2);
+
+ cairo_line_to (cr, width / 2.0, height);
+ cairo_line_to (cr, 0, height / 2.0);
+ cairo_line_to (cr, width / 2.0, 0);
+
+ cairo_close_path (cr);
+ }
+ }
+ else
+ {
+ if (orientation == GTK_ORIENTATION_HORIZONTAL)
+ {
+ cairo_move_to (cr, width, height / 2.0 - 3.0);
+ cairo_arc (cr, width - 2.5, height - 3.5,
+ 2.0,
+ 0, G_PI_2);
+
+ cairo_arc (cr, 2.5, height - 3.5,
+ 2.0,
+ G_PI_2, G_PI);
+
+ cairo_line_to (cr, 0, height / 2.0 - 3.0);
+ cairo_line_to (cr, width / 2.0, 0);
+ cairo_line_to (cr, width, height / 2.0 - 3.0);
+
+ cairo_close_path (cr);
+ }
+ else
+ {
+ cairo_move_to (cr, width / 2.0, height);
+ cairo_arc (cr, 2.5, height - 2.5,
+ 2.0,
+ G_PI_2, G_PI);
+
+ cairo_arc (cr, 2.5, 2.5,
+ 2.0,
+ G_PI, G_PI + G_PI_2);
+
+ cairo_line_to (cr, width / 2.0, 0);
+ cairo_line_to (cr, width, height / 2.0);
+ cairo_line_to (cr, width / 2.0, height);
+
+ cairo_close_path (cr);
+ }
+ }
+}
+
+static void
+render_switch_lines (GtkThemingEngine *engine,
+ cairo_t *cr,
+ gdouble x,
+ gdouble y,
+ gdouble width,
+ gdouble height,
+ GtkOrientation orientation)
+{
+ GtkStateFlags state;
+ GdkRGBA *lines_color;
+
+ state = gtk_theming_engine_get_state (engine);
+
+ if (state & GTK_STATE_FLAG_INSENSITIVE)
+ return;
+
+ gtk_theming_engine_get (engine, state,
+ "-sugar-switch-grip-color", &lines_color,
+ NULL);
+
+ cairo_save (cr);
+
+ cairo_translate (cr,
+ x + width / 2.0 - 4.0,
+ y + height / 2.0 - 3.0);
+
+ cairo_move_to (cr, 0.0, 0.0);
+ cairo_set_line_width (cr, 2.0);
+ cairo_set_line_cap (cr, CAIRO_LINE_CAP_ROUND);
+
+ cairo_line_to (cr, 0.0, 6.0);
+ cairo_move_to (cr, 4.0, 0.0);
+ cairo_line_to (cr, 4.0, 6.0);
+ cairo_move_to (cr, 8.0, 0.0);
+ cairo_line_to (cr, 8.0, 6.0);
+
+ gdk_cairo_set_source_rgba (cr, lines_color);
+ cairo_stroke (cr);
+
+ cairo_restore (cr);
+
+ gdk_rgba_free (lines_color);
+}
+
+static void
+sugar_engine_render_slider (GtkThemingEngine *engine,
+ cairo_t *cr,
+ gdouble x,
+ gdouble y,
+ gdouble width,
+ gdouble height,
+ GtkOrientation orientation)
+{
+ const GtkWidgetPath *path;
+
+ path = gtk_theming_engine_get_path (engine);
+ cairo_save (cr);
+
+ if (gtk_widget_path_is_type (path, GTK_TYPE_SCALE))
+ {
+ cairo_pattern_t *pattern, *border_pattern;
+ GtkStateFlags state;
+ GdkRGBA color;
+ gboolean marks_above = FALSE, marks_below = FALSE;
+
+ if (gtk_theming_engine_has_class
+ (engine, GTK_STYLE_CLASS_SCALE_HAS_MARKS_ABOVE))
+ marks_above = TRUE;
+ else if (gtk_theming_engine_has_class
+ (engine, GTK_STYLE_CLASS_SCALE_HAS_MARKS_BELOW))
+ marks_below = TRUE;
+
+ cairo_translate (cr, x, y);
+
+ if ((marks_above && marks_below) ||
+ (!marks_above && !marks_below))
+ draw_round_slider (cr, width, height);
+ else
+ draw_mark_slider (cr, width, height, marks_below, orientation);
+
+ state = gtk_theming_engine_get_state (engine);
+ cairo_set_line_width (cr, 1.0);
+
+ gtk_theming_engine_get (engine, state,
+ "background-image", &pattern,
+ NULL);
+
+ if (pattern != NULL)
+ {
+ style_pattern_set_matrix (pattern, width, height, FALSE);
+ cairo_set_source (cr, pattern);
+ }
+ else
+ {
+ gtk_theming_engine_get_background_color (engine, state, &color);
+ gdk_cairo_set_source_rgba (cr, &color);
+ }
+
+ cairo_fill_preserve (cr);
+
+ gtk_theming_engine_get (engine, state,
+ "-sugar-border-gradient", &border_pattern,
+ NULL);
+
+ if (border_pattern != NULL)
+ {
+ style_pattern_set_matrix (border_pattern, width, height, FALSE);
+ cairo_set_source (cr, border_pattern);
+ }
+ else
+ {
+ gtk_theming_engine_get_border_color (engine, state, &color);
+ gdk_cairo_set_source_rgba (cr, &color);
+ }
+
+ cairo_stroke (cr);
+
+ if (pattern != NULL)
+ cairo_pattern_destroy (pattern);
+
+ if (border_pattern != NULL)
+ cairo_pattern_destroy (border_pattern);
+ }
+ else
+ {
+ GTK_THEMING_ENGINE_CLASS (sugar_engine_parent_class)->render_slider
+ (engine, cr,
+ x, y, width, height,
+ orientation);
+
+ render_inset_lines (engine, cr, x, y, width, height);
+
+ if (gtk_widget_path_is_type (path, GTK_TYPE_SWITCH))
+ render_switch_lines (engine, cr, x, y, width, height, orientation);
+ }
+
+ cairo_restore (cr);
+}
+
+static void
+sugar_engine_render_handle (GtkThemingEngine *engine,
+ cairo_t *cr,
+ gdouble x,
+ gdouble y,
+ gdouble width,
+ gdouble height)
+{
+ if (gtk_theming_engine_has_class (engine, GTK_STYLE_CLASS_GRIP))
+ {
+ GdkRGBA bg;
+ GtkJunctionSides sides;
+ GtkStateFlags state;
+ int lx, ly;
+ int x_down;
+ int y_down;
+ int dots;
+
+ state = gtk_theming_engine_get_state (engine);
+ gtk_theming_engine_get_background_color (engine, state, &bg);
+
+ /* The number of dots fitting into the area. Just hardcoded to 3 right now. */
+ /* dots = MIN (width - 2, height - 2) / 3; */
+ dots = 3;
+
+ cairo_save (cr);
+
+ sides = gtk_theming_engine_get_junction_sides (engine);
+
+ switch (sides)
+ {
+ case GTK_JUNCTION_CORNER_TOPRIGHT:
+ x_down = 0;
+ y_down = 0;
+ cairo_translate (cr, x + width - 4*dots, y + 1);
+ break;
+ case GTK_JUNCTION_CORNER_BOTTOMRIGHT:
+ x_down = 0;
+ y_down = 1;
+ cairo_translate (cr, x + width - 4*dots, y + height + 1 - 4*dots);
+ break;
+ case GTK_JUNCTION_CORNER_BOTTOMLEFT:
+ x_down = 1;
+ y_down = 1;
+ cairo_translate (cr, x + 2, y + height + 1 - 4*dots);
+ break;
+ case GTK_JUNCTION_CORNER_TOPLEFT:
+ x_down = 1;
+ y_down = 0;
+ cairo_translate (cr, x + 2, y + 1);
+ break;
+ default:
+ /* Not implemented. */
+ return;
+ }
+
+ for (lx = 0; lx < dots; lx++) /* horizontally */
+ {
+ for (ly = 0; ly <= lx; ly++) /* vertically */
+ {
+ int mx, my;
+ mx = x_down * dots + (1 - x_down * 2) * lx - x_down;
+ my = y_down * dots + (1 - y_down * 2) * ly - y_down;
+
+ gdk_cairo_set_source_rgba (cr, &bg);
+ cairo_arc (cr,
+ mx * 4 - 1 + 1.5,
+ my * 4 - 1 + 1.5,
+ 1.5,
+ 0, G_PI * 2.0);
+
+ cairo_fill (cr);
+ }
+ }
+
+ cairo_restore (cr);
+ }
+ else if (gtk_theming_engine_has_class (engine, GTK_STYLE_CLASS_PANE_SEPARATOR))
+ {
+ GdkRGBA fg;
+ GtkStateFlags state;
+ gdouble xx, yy;
+
+ state = gtk_theming_engine_get_state (engine);
+ gtk_theming_engine_get_color (engine, state, &fg);
+
+ GTK_THEMING_ENGINE_CLASS (sugar_engine_parent_class)->render_background
+ (engine, cr, x, y, width, height);
+ GTK_THEMING_ENGINE_CLASS (sugar_engine_parent_class)->render_frame
+ (engine, cr, x, y, width, height);
+
+ cairo_save (cr);
+ cairo_set_line_width (cr, 2.0);
+ gdk_cairo_set_source_rgba (cr, &fg);
+
+ if (width > height)
+ {
+ for (xx = x + width / 2 - 12; xx <= x + width / 2 + 12; xx += 6)
+ {
+ cairo_arc (cr, xx, y + height / 2.0,
+ 1.0,
+ 0, G_PI * 2.0);
+ cairo_fill (cr);
+ }
+ }
+ else
+ {
+ for (yy = y + height / 2 - 12; yy <= y + height / 2 + 12; yy += 6)
+ {
+ cairo_arc (cr, x + width / 2.0, yy,
+ 1.0,
+ 0, G_PI * 2.0);
+ cairo_fill (cr);
+ }
+ }
+
+ cairo_restore (cr);
+ }
+ else
+ {
+ GTK_THEMING_ENGINE_CLASS (sugar_engine_parent_class)->render_handle
+ (engine, cr,
+ x, y, width, height);
+ }
+}
+
+/* taken from gtkthemingengine.c */
+static GdkPixbuf *
+scale_or_ref (GdkPixbuf *src,
+ gint width,
+ gint height)
+{
+ if (width == gdk_pixbuf_get_width (src) &&
+ height == gdk_pixbuf_get_height (src))
+ return g_object_ref (src);
+ else
+ return gdk_pixbuf_scale_simple (src,
+ width, height,
+ GDK_INTERP_BILINEAR);
+}
+
+static gboolean
+lookup_icon_size (GtkThemingEngine *engine,
+ GtkIconSize size,
+ gint *width,
+ gint *height)
+{
+ GdkScreen *screen;
+ GtkSettings *settings;
+
+ screen = gtk_theming_engine_get_screen (engine);
+ settings = gtk_settings_get_for_screen (screen);
+
+ return gtk_icon_size_lookup_for_settings (settings, size, width, height);
+}
+
+/* Kudos to the gnome-panel guys. */
+static void
+colorshift_pixbuf (GdkPixbuf *src,
+ GdkPixbuf *dest,
+ gint shift)
+{
+ gint i, j;
+ gint width, height, has_alpha, src_rowstride, dest_rowstride;
+ guchar *target_pixels;
+ guchar *original_pixels;
+ guchar *pix_src;
+ guchar *pix_dest;
+ int val;
+ guchar r, g, b;
+
+ has_alpha = gdk_pixbuf_get_has_alpha (src);
+ width = gdk_pixbuf_get_width (src);
+ height = gdk_pixbuf_get_height (src);
+ src_rowstride = gdk_pixbuf_get_rowstride (src);
+ dest_rowstride = gdk_pixbuf_get_rowstride (dest);
+ original_pixels = gdk_pixbuf_get_pixels (src);
+ target_pixels = gdk_pixbuf_get_pixels (dest);
+
+ for (i = 0; i < height; i++)
+ {
+ pix_dest = target_pixels + i * dest_rowstride;
+ pix_src = original_pixels + i * src_rowstride;
+
+ for (j = 0; j < width; j++)
+ {
+ r = *(pix_src++);
+ g = *(pix_src++);
+ b = *(pix_src++);
+
+ val = r + shift;
+ *(pix_dest++) = CLAMP (val, 0, 255);
+
+ val = g + shift;
+ *(pix_dest++) = CLAMP (val, 0, 255);
+
+ val = b + shift;
+ *(pix_dest++) = CLAMP (val, 0, 255);
+
+ if (has_alpha)
+ *(pix_dest++) = *(pix_src++);
+ }
+ }
+}
+
+static GdkPixbuf *
+sugar_engine_render_icon_pixbuf (GtkThemingEngine *engine,
+ const GtkIconSource *source,
+ GtkIconSize size)
+{
+ GdkPixbuf *base_pixbuf;
+ GdkPixbuf *scaled;
+ GdkPixbuf *stated;
+ GtkStateFlags state;
+ gint width = 1;
+ gint height = 1;
+
+ cairo_surface_t *stated_surface;
+ cairo_t *cr;
+
+ base_pixbuf = gtk_icon_source_get_pixbuf (source);
+ state = gtk_theming_engine_get_state (engine);
+
+ g_return_val_if_fail (base_pixbuf != NULL, NULL);
+
+ if (size != (GtkIconSize) -1 &&
+ !lookup_icon_size (engine, size, &width, &height))
+ {
+ g_warning (G_STRLOC ": invalid icon size '%d'", size);
+ return NULL;
+ }
+
+ /* If the size was wildcarded, and we're allowed to scale, then scale; otherwise,
+ * leave it alone.
+ */
+ if (size != (GtkIconSize) -1 &&
+ gtk_icon_source_get_size_wildcarded (source))
+ scaled = scale_or_ref (base_pixbuf, width, height);
+ else
+ scaled = g_object_ref (base_pixbuf);
+
+ /* If the state was wildcarded, then generate a state. */
+ if (gtk_icon_source_get_state_wildcarded (source))
+ {
+ if (state & GTK_STATE_FLAG_INSENSITIVE)
+ {
+ /* dim the pixbuf with a 0.5 alpha black layer */
+ stated_surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32,
+ gdk_pixbuf_get_width (scaled),
+ gdk_pixbuf_get_height (scaled));
+ cr = cairo_create (stated_surface);
+
+ gdk_cairo_set_source_pixbuf (cr, scaled, 0, 0);
+ cairo_paint (cr);
+
+ cairo_set_source_rgba (cr, 0.0, 0.0, 0.0, 0.5);
+ cairo_set_operator (cr, CAIRO_OPERATOR_DEST_IN);
+ cairo_paint (cr);
+
+ stated = gdk_pixbuf_get_from_surface (stated_surface,
+ 0, 0,
+ cairo_image_surface_get_width (stated_surface),
+ cairo_image_surface_get_height (stated_surface));
+
+ g_object_unref (scaled);
+ cairo_destroy (cr);
+ cairo_surface_destroy (stated_surface);
+ }
+ else if (state & GTK_STATE_FLAG_PRELIGHT)
+ {
+ stated = gdk_pixbuf_copy (scaled);
+ colorshift_pixbuf (scaled, stated, 30);
+ g_object_unref (scaled);
+ }
+ else
+ {
+ stated = scaled;
+ }
+ }
+ else
+ {
+ stated = scaled;
+ }
+
+ return stated;
+}
+
+static void
+sugar_engine_render_line (GtkThemingEngine *engine,
+ cairo_t *cr,
+ gdouble x0,
+ gdouble y0,
+ gdouble x1,
+ gdouble y1)
+{
+ const GtkWidgetPath *path;
+
+ path = gtk_theming_engine_get_path (engine);
+
+ if ((gtk_theming_engine_has_class (engine, GTK_STYLE_CLASS_MARK) &&
+ gtk_widget_path_is_type (path, GTK_TYPE_SCALE)) ||
+ (gtk_theming_engine_has_class (engine, GTK_STYLE_CLASS_SEPARATOR) &&
+ gtk_widget_path_is_type (path, GTK_TYPE_TREE_VIEW)))
+ {
+ GtkStateFlags state;
+ GdkRGBA bg;
+
+ state = gtk_theming_engine_get_state (engine);
+ gtk_theming_engine_get_background_color (engine, state, &bg);
+
+ cairo_save (cr);
+
+ cairo_set_line_cap (cr, CAIRO_LINE_CAP_SQUARE);
+ cairo_set_line_width (cr, 1);
+
+ cairo_move_to (cr, x0 + 0.5, y0 + 0.5);
+ cairo_line_to (cr, x1 + 0.5, y1 + 0.5);
+
+ gdk_cairo_set_source_rgba (cr, &bg);
+ cairo_stroke (cr);
+
+ cairo_restore (cr);
+ }
+ else
+ {
+ GTK_THEMING_ENGINE_CLASS (sugar_engine_parent_class)->render_line
+ (engine, cr,
+ x0, y0, x1, y1);
+ }
+}
+
+static void
+sugar_engine_class_init (AdwaitaEngineClass *klass)
+{
+ GtkThemingEngineClass *engine_class = GTK_THEMING_ENGINE_CLASS (klass);
+
+ engine_class->render_arrow = sugar_engine_render_arrow;
+ engine_class->render_focus = sugar_engine_render_focus;
+ engine_class->render_check = sugar_engine_render_check;
+ engine_class->render_option = sugar_engine_render_option;
+ engine_class->render_extension = sugar_engine_render_extension;
+ engine_class->render_frame = sugar_engine_render_frame;
+ engine_class->render_background = sugar_engine_render_background;
+ engine_class->render_expander = sugar_engine_render_expander;
+ engine_class->render_activity = sugar_engine_render_activity;
+ engine_class->render_slider = sugar_engine_render_slider;
+ engine_class->render_handle = sugar_engine_render_handle;
+ engine_class->render_icon_pixbuf = sugar_engine_render_icon_pixbuf;
+ engine_class->render_line = sugar_engine_render_line;
+
+ gtk_theming_engine_register_property (ADWAITA_NAMESPACE, NULL,
+ g_param_spec_boxed ("focus-border-color",
+ "Focus border color",
+ "Focus border color",
+ GDK_TYPE_RGBA, 0));
+ gtk_theming_engine_register_property (ADWAITA_NAMESPACE, NULL,
+ g_param_spec_int ("focus-border-radius",
+ "Focus border radius",
+ "Focus border radius",
+ 0, G_MAXINT, 0,
+ 0));
+ gtk_theming_engine_register_property (ADWAITA_NAMESPACE, NULL,
+ g_param_spec_boxed ("focus-border-gradient",
+ "Focus border gradient",
+ "Focus border gradient",
+ CAIRO_GOBJECT_TYPE_PATTERN, 0));
+ gtk_theming_engine_register_property (ADWAITA_NAMESPACE, NULL,
+ g_param_spec_boxed ("focus-fill-color",
+ "Focus fill color",
+ "Focus fill color",
+ GDK_TYPE_RGBA, 0));
+ gtk_theming_engine_register_property (ADWAITA_NAMESPACE, NULL,
+ g_param_spec_boxed ("selected-tab-color",
+ "Selected tab color",
+ "Selected tab color",
+ GDK_TYPE_RGBA, 0));
+ gtk_theming_engine_register_property (ADWAITA_NAMESPACE, NULL,
+ g_param_spec_boxed ("border-gradient",
+ "Border gradient",
+ "Border gradient",
+ CAIRO_GOBJECT_TYPE_PATTERN, 0));
+ gtk_theming_engine_register_property (ADWAITA_NAMESPACE, NULL,
+ g_param_spec_boolean ("focus-border-dashes",
+ "Focus border uses dashes",
+ "Focus border uses dashes",
+ FALSE, 0));
+ gtk_theming_engine_register_property (ADWAITA_NAMESPACE, NULL,
+ g_param_spec_boxed ("menuitem-arrow-color",
+ "Menuitem arrow color",
+ "Menuitem arrow color",
+ GDK_TYPE_RGBA, 0));
+ gtk_theming_engine_register_property (ADWAITA_NAMESPACE, NULL,
+ g_param_spec_boxed ("switch-grip-color",
+ "Switch grip color",
+ "Switch grip color",
+ GDK_TYPE_RGBA, 0));
+ gtk_theming_engine_register_property (ADWAITA_NAMESPACE, NULL,
+ g_param_spec_boxed ("inset-left",
+ "Inset line left",
+ "Inset line left",
+ GDK_TYPE_RGBA, 0));
+ gtk_theming_engine_register_property (ADWAITA_NAMESPACE, NULL,
+ g_param_spec_boxed ("inset-right",
+ "Inset line right",
+ "Inset line right",
+ GDK_TYPE_RGBA, 0));
+ gtk_theming_engine_register_property (ADWAITA_NAMESPACE, NULL,
+ g_param_spec_boxed ("inset-top",
+ "Inset line top",
+ "Inset line top",
+ GDK_TYPE_RGBA, 0));
+ gtk_theming_engine_register_property (ADWAITA_NAMESPACE, NULL,
+ g_param_spec_boxed ("inset-bottom",
+ "Inset line bottom",
+ "Inset line bottom",
+ GDK_TYPE_RGBA, 0));
+ gtk_theming_engine_register_property (ADWAITA_NAMESPACE, NULL,
+ g_param_spec_boxed ("progressbar-pattern",
+ "Progressbar pattern",
+ "Progressbar pattern",
+ CAIRO_GOBJECT_TYPE_PATTERN, 0));
+}
+
+static void
+sugar_engine_class_finalize (AdwaitaEngineClass *klass)
+{
+}
+
+G_MODULE_EXPORT void
+theme_init (GTypeModule *module)
+{
+ sugar_engine_register_types (module);
+}
+
+G_MODULE_EXPORT void
+theme_exit (void)
+{
+}
+
+G_MODULE_EXPORT GtkThemingEngine *
+create_engine (void)
+{
+ return GTK_THEMING_ENGINE (g_object_new (ADWAITA_TYPE_ENGINE,
+ "name", "sugar",
+ NULL));
+}
diff --git a/gtk3/engine/sugar_utils.c b/gtk3/engine/sugar_utils.c
new file mode 100644
index 0000000..a1814c1
--- /dev/null
+++ b/gtk3/engine/sugar_utils.c
@@ -0,0 +1,246 @@
+/* Adwaita - a GTK+ engine
+ *
+ * Copyright (C) 2011 Carlos Garnacho <carlosg@gnome.org>
+ * Copyright (C) 2011 Red Hat, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * Authors: Carlos Garnacho <carlosg@gnome.org>
+ * Cosimo Cecchi <cosimoc@gnome.org>
+ *
+ * Project contact: <gnome-themes-list@gnome.org>
+ */
+
+#include "sugar_utils.h"
+
+void
+sugar_trim_allocation_for_scale (GtkThemingEngine *engine,
+ gdouble *x,
+ gdouble *y,
+ gdouble *width,
+ gdouble *height)
+{
+ const GtkWidgetPath *path;
+
+ path = gtk_theming_engine_get_path (engine);
+
+ if (gtk_widget_path_is_type (path, GTK_TYPE_SCALE) &&
+ (gtk_theming_engine_has_class (engine, GTK_STYLE_CLASS_TROUGH) ||
+ gtk_theming_engine_has_class (engine, GTK_STYLE_CLASS_PROGRESSBAR)))
+ {
+ /* Render GtkScale trough thinner */
+ if (!gtk_theming_engine_has_class (engine, GTK_STYLE_CLASS_VERTICAL))
+ {
+ *y += *height / 2.0 - 2.0;
+ *height = 4;
+ }
+ else
+ {
+ *x += *width / 2.0 - 2.0;
+ *width = 4;
+ }
+ }
+}
+
+void
+_cairo_round_rectangle_sides (cairo_t *cr,
+ gdouble radius,
+ gdouble x,
+ gdouble y,
+ gdouble width,
+ gdouble height,
+ guint sides,
+ GtkJunctionSides junction)
+{
+ radius = CLAMP (radius, 0, MIN (width / 2, height / 2));
+
+ if (sides & SIDE_RIGHT)
+ {
+ if (radius == 0 ||
+ (junction & GTK_JUNCTION_CORNER_TOPRIGHT))
+ cairo_move_to (cr, x + width, y);
+ else
+ {
+ cairo_new_sub_path (cr);
+ cairo_arc (cr, x + width - radius, y + radius, radius, - G_PI / 4, 0);
+ }
+
+ if (radius == 0 ||
+ (junction & GTK_JUNCTION_CORNER_BOTTOMRIGHT))
+ cairo_line_to (cr, x + width, y + height);
+ else
+ cairo_arc (cr, x + width - radius, y + height - radius, radius, 0, G_PI / 4);
+ }
+
+ if (sides & SIDE_BOTTOM)
+ {
+ if (radius != 0 &&
+ ! (junction & GTK_JUNCTION_CORNER_BOTTOMRIGHT))
+ {
+ if ((sides & SIDE_RIGHT) == 0)
+ cairo_new_sub_path (cr);
+
+ cairo_arc (cr, x + width - radius, y + height - radius, radius, G_PI / 4, G_PI / 2);
+ }
+ else if ((sides & SIDE_RIGHT) == 0)
+ cairo_move_to (cr, x + width, y + height);
+
+ if (radius == 0 ||
+ (junction & GTK_JUNCTION_CORNER_BOTTOMLEFT))
+ cairo_line_to (cr, x, y + height);
+ else
+ cairo_arc (cr, x + radius, y + height - radius, radius, G_PI / 2, 3 * (G_PI / 4));
+ }
+ else
+ cairo_move_to (cr, x, y + height);
+
+ if (sides & SIDE_LEFT)
+ {
+ if (radius != 0 &&
+ ! (junction & GTK_JUNCTION_CORNER_BOTTOMLEFT))
+ {
+ if ((sides & SIDE_BOTTOM) == 0)
+ cairo_new_sub_path (cr);
+
+ cairo_arc (cr, x + radius, y + height - radius, radius, 3 * (G_PI / 4), G_PI);
+ }
+ else if ((sides & SIDE_BOTTOM) == 0)
+ cairo_move_to (cr, x, y + height);
+
+ if (radius == 0 ||
+ (junction & GTK_JUNCTION_CORNER_TOPLEFT))
+ cairo_line_to (cr, x, y);
+ else
+ cairo_arc (cr, x + radius, y + radius, radius, G_PI, G_PI + G_PI / 4);
+ }
+
+ if (sides & SIDE_TOP)
+ {
+ if (radius != 0 &&
+ ! (junction & GTK_JUNCTION_CORNER_TOPLEFT))
+ {
+ if ((sides & SIDE_LEFT) == 0)
+ cairo_new_sub_path (cr);
+
+ cairo_arc (cr, x + radius, y + radius, radius, 5 * (G_PI / 4), 3 * (G_PI / 2));
+ }
+ else if ((sides & SIDE_LEFT) == 0)
+ cairo_move_to (cr, x, y);
+
+ if (radius == 0 ||
+ (junction & GTK_JUNCTION_CORNER_TOPRIGHT))
+ cairo_line_to (cr, x + width, y);
+ else
+ cairo_arc (cr, x + width - radius, y + radius, radius, 3 * (G_PI / 2), - G_PI / 4);
+ }
+}
+
+void
+_cairo_uneven_frame (cairo_t *cr,
+ gdouble radius,
+ gdouble x,
+ gdouble y,
+ gdouble width,
+ gdouble height,
+ GtkBorder *border,
+ GtkJunctionSides junction)
+{
+ cairo_set_fill_rule (cr, CAIRO_FILL_RULE_EVEN_ODD);
+ cairo_set_line_width (cr, 1);
+
+ _cairo_round_rectangle_sides (cr, (gdouble) radius,
+ x, y,
+ width, height,
+ SIDE_ALL, junction);
+
+ _cairo_round_rectangle_sides (cr, (gdouble) radius,
+ x + border->left,
+ y + border->top,
+ width - border->left - border->right,
+ height - border->top - border->bottom,
+ SIDE_ALL, junction);
+}
+
+/* Set the appropriate matrix for
+ * patterns coming from the style context
+ */
+void
+style_pattern_set_matrix (cairo_pattern_t *pattern,
+ gdouble width,
+ gdouble height,
+ gboolean repeat)
+{
+ cairo_matrix_t matrix;
+ gint w, h;
+
+ if (cairo_pattern_get_type (pattern) == CAIRO_PATTERN_TYPE_SURFACE)
+ {
+ cairo_surface_t *surface;
+
+ cairo_pattern_get_surface (pattern, &surface);
+ w = cairo_image_surface_get_width (surface);
+ h = cairo_image_surface_get_height (surface);
+ }
+ else
+ w = h = 1;
+
+ cairo_matrix_init_scale (&matrix, (gdouble) w / width, (gdouble) h / height);
+ cairo_pattern_set_matrix (pattern, &matrix);
+
+ if (repeat)
+ cairo_pattern_set_extend (pattern, CAIRO_EXTEND_REPEAT);
+}
+
+gboolean
+sugar_render_from_assets_common (GtkThemingEngine *engine,
+ cairo_t *cr,
+ gdouble x,
+ gdouble y,
+ gdouble width,
+ gdouble height)
+{
+ gboolean retval = FALSE;
+ GtkStateFlags state;
+ cairo_pattern_t *asset = NULL;
+ cairo_surface_t *surface = NULL;
+
+ state = gtk_theming_engine_get_state (engine);
+ gtk_theming_engine_get (engine, state,
+ "background-image", &asset,
+ NULL);
+
+ if (asset != NULL)
+ cairo_pattern_get_surface (asset, &surface);
+
+ if (surface != NULL)
+ {
+ cairo_save (cr);
+
+ cairo_set_source_surface (cr, surface, x, y);
+ cairo_scale (cr,
+ width / cairo_image_surface_get_width (surface),
+ height / cairo_image_surface_get_height (surface));
+
+ cairo_paint (cr);
+
+ cairo_restore (cr);
+ retval = TRUE;
+ }
+
+ if (asset != NULL)
+ cairo_pattern_destroy (asset);
+
+ return retval;
+}
diff --git a/gtk3/engine/sugar_utils.h b/gtk3/engine/sugar_utils.h
new file mode 100644
index 0000000..6d80d67
--- /dev/null
+++ b/gtk3/engine/sugar_utils.h
@@ -0,0 +1,80 @@
+/* Adwaita - a GTK+ engine
+ *
+ * Copyright (C) 2011 Carlos Garnacho <carlosg@gnome.org>
+ * Copyright (C) 2011 Red Hat, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ * Authors: Carlos Garnacho <carlosg@gnome.org>
+ * Cosimo Cecchi <cosimoc@gnome.org>
+ *
+ * Project contact: <gnome-themes-list@gnome.org>
+ */
+
+#include <gtk/gtk.h>
+
+#ifndef __ADWAITA_UTILS_H__
+#define __ADWAITA_UTILS_H__
+
+enum {
+ SIDE_LEFT = 1,
+ SIDE_BOTTOM = 1 << 1,
+ SIDE_RIGHT = 1 << 2,
+ SIDE_TOP = 1 << 3,
+ SIDE_ALL = 0xF
+};
+
+gboolean
+sugar_render_from_assets_common (GtkThemingEngine *engine,
+ cairo_t *cr,
+ gdouble x,
+ gdouble y,
+ gdouble width,
+ gdouble height);
+
+void
+sugar_trim_allocation_for_scale (GtkThemingEngine *engine,
+ gdouble *x,
+ gdouble *y,
+ gdouble *width,
+ gdouble *height);
+
+void
+style_pattern_set_matrix (cairo_pattern_t *pattern,
+ gdouble width,
+ gdouble height,
+ gboolean repeat);
+
+void
+_cairo_uneven_frame (cairo_t *cr,
+ gdouble radius,
+ gdouble x,
+ gdouble y,
+ gdouble width,
+ gdouble height,
+ GtkBorder *border,
+ GtkJunctionSides junction);
+
+void
+_cairo_round_rectangle_sides (cairo_t *cr,
+ gdouble radius,
+ gdouble x,
+ gdouble y,
+ gdouble width,
+ gdouble height,
+ guint sides,
+ GtkJunctionSides junction);
+
+#endif /* __ADWAITA_UTILS_H__ */
diff --git a/gtk3/theme/Makefile.am b/gtk3/theme/Makefile.am
new file mode 100644
index 0000000..9f1ea5e
--- /dev/null
+++ b/gtk3/theme/Makefile.am
@@ -0,0 +1,14 @@
+SUBDIRS = assets
+
+themedir = $(datadir)/themes/sugar/gtk-3.0
+theme_DATA = \
+ gtk.css \
+ gtk-dark.css \
+ gtk-widgets.css \
+ gtk-widgets-assets.css \
+ gtk-widgets-assets-dark.css \
+ settings.ini
+
+EXTRA_DIST = $(theme_DATA)
+
+-include $(top_srcdir)/git.mk
diff --git a/gtk3/theme/assets/Makefile.am b/gtk3/theme/assets/Makefile.am
new file mode 100644
index 0000000..ce4d43b
--- /dev/null
+++ b/gtk3/theme/assets/Makefile.am
@@ -0,0 +1,24 @@
+assetsdir = $(datadir)/themes/Adwaita/gtk-3.0/assets
+assets_DATA = \
+ checkbox-checked.svg \
+ checkbox-checked-dark.svg \
+ checkbox-checked-insensitive.svg \
+ checkbox-checked-insensitive-dark.svg \
+ checkbox-unchecked.svg \
+ checkbox-unchecked-dark.svg \
+ checkbox-unchecked-insensitive.svg \
+ checkbox-unchecked-insensitive-dark.svg \
+ checkbox-mixed.svg \
+ checkbox-mixed-dark.svg \
+ radio-selected.svg \
+ radio-selected-dark.svg \
+ radio-selected-insensitive.svg \
+ radio-selected-insensitive-dark.svg \
+ radio-unselected.svg \
+ radio-unselected-dark.svg \
+ radio-unselected-insensitive.svg \
+ radio-unselected-insensitive-dark.svg \
+ radio-mixed.svg \
+ radio-mixed-dark.svg
+
+EXTRA_DIST = $(assets_DATA) \ No newline at end of file
diff --git a/gtk3/theme/assets/checkbox-checked-dark.svg b/gtk3/theme/assets/checkbox-checked-dark.svg
new file mode 100644
index 0000000..40e88b5
--- /dev/null
+++ b/gtk3/theme/assets/checkbox-checked-dark.svg
@@ -0,0 +1,268 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ id="svg814"
+ version="1.1"
+ inkscape:version="0.48.1 r9760"
+ sodipodi:docname="checkbox-checked-scalable.svg">
+ <defs
+ id="defs816">
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient24133"
+ id="linearGradient8394"
+ gradientUnits="userSpaceOnUse"
+ x1="1582.125"
+ y1="201.98718"
+ x2="1580.5312"
+ y2="197.98718" />
+ <linearGradient
+ id="linearGradient24133"
+ inkscape:collect="always">
+ <stop
+ id="stop24135"
+ offset="0"
+ style="stop-color:#145393;stop-opacity:1;" />
+ <stop
+ id="stop24137"
+ offset="1"
+ style="stop-color:#1b6fc5;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient10354-2"
+ id="linearGradient8378"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-1609.9926,-78.958432)"
+ x1="1205.5752"
+ y1="-186.45331"
+ x2="1205.5752"
+ y2="-202.34555" />
+ <linearGradient
+ id="linearGradient10354-2"
+ inkscape:collect="always">
+ <stop
+ id="stop10356-2"
+ offset="0"
+ style="stop-color:#bcbfb8;stop-opacity:1" />
+ <stop
+ id="stop10358-2"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient10332-5"
+ id="linearGradient8380"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.84941206,0,0,0.84794288,-623.98415,-483.16392)"
+ x1="260.92538"
+ y1="233.77748"
+ x2="260.92538"
+ y2="248.97633" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient10332-5">
+ <stop
+ style="stop-color:#d3d7cf;stop-opacity:1"
+ offset="0"
+ id="stop10334-5" />
+ <stop
+ style="stop-color:#8f9985;stop-opacity:1"
+ offset="1"
+ id="stop10336-29" />
+ </linearGradient>
+ <linearGradient
+ y2="-202.34555"
+ x2="1205.5752"
+ y1="-186.45331"
+ x1="1205.5752"
+ gradientTransform="translate(-1609.9926,-78.958432)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3951"
+ xlink:href="#linearGradient10354-2"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="248.97633"
+ x2="260.92538"
+ y1="233.77748"
+ x1="260.92538"
+ gradientTransform="matrix(0.84941206,0,0,0.84794288,-623.98415,-483.16392)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3953"
+ xlink:href="#linearGradient10332-5"
+ inkscape:collect="always" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3859"
+ id="linearGradient3977"
+ gradientUnits="userSpaceOnUse"
+ x1="-403.46503"
+ y1="-280.60101"
+ x2="-403.46503"
+ y2="-273.35056" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3859">
+ <stop
+ style="stop-color:#282828;stop-opacity:1;"
+ offset="0"
+ id="stop3861" />
+ <stop
+ style="stop-color:#151515;stop-opacity:1"
+ offset="1"
+ id="stop3863" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3979"
+ id="linearGradient4451"
+ gradientUnits="userSpaceOnUse"
+ x1="1576.6082"
+ y1="196.56967"
+ x2="1576.6082"
+ y2="207.28766" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3979">
+ <stop
+ style="stop-color:#ce5c00;stop-opacity:1;"
+ offset="0"
+ id="stop3981" />
+ <stop
+ style="stop-color:#7d3800;stop-opacity:1"
+ offset="1"
+ id="stop3983" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4123"
+ id="linearGradient4291"
+ gradientUnits="userSpaceOnUse"
+ x1="1575.5826"
+ y1="206.14095"
+ x2="1575.5826"
+ y2="198.12938" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient4123">
+ <stop
+ style="stop-color:#e27000;stop-opacity:1"
+ offset="0"
+ id="stop4125" />
+ <stop
+ style="stop-color:#ff8c1b;stop-opacity:1"
+ offset="1"
+ id="stop4127" />
+ </linearGradient>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="0.62928391"
+ inkscape:cy="4.476232"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ borderlayer="true"
+ inkscape:showpageshadow="false"
+ inkscape:window-width="894"
+ inkscape:window-height="914"
+ inkscape:window-x="1600"
+ inkscape:window-y="0"
+ inkscape:window-maximized="0">
+ <inkscape:grid
+ type="xygrid"
+ id="grid4084"
+ empspacing="5"
+ visible="true"
+ enabled="true"
+ snapvisiblegridlinesonly="true" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata819">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <g
+ id="layer1-9"
+ inkscape:label="Layer 1">
+ <g
+ style="enable-background:new"
+ id="g16853"
+ transform="translate(410.00739,765.00002)">
+ <rect
+ transform="scale(1,-1)"
+ style="opacity:0.1;color:#000000;fill:none;stroke:#ffffff;stroke-width:1;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect5025"
+ width="11.042357"
+ height="11.023263"
+ x="-409.50739"
+ y="-285.86218"
+ rx="1.6105907"
+ ry="1.6105907" />
+ <rect
+ ry="1.6105907"
+ rx="1.6105907"
+ y="-284.86218"
+ x="-409.50739"
+ height="11.023263"
+ width="11.042357"
+ id="rect6506"
+ style="color:#000000;fill:url(#linearGradient3977);fill-opacity:1;fill-rule:nonzero;stroke:#131516;stroke-width:1;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ transform="scale(1,-1)" />
+ </g>
+ <g
+ style="display:inline;enable-background:new"
+ id="g24757"
+ transform="translate(-1568.9928,841.00002)">
+ <path
+ style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;color:#000000;fill:url(#linearGradient4451);fill-opacity:1;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Ahem;-inkscape-font-specification:Ahem"
+ d="m 1581.484,197.57451 -5.9527,5.49523 -1.5385,-1.70756 c -0.5675,-0.68154 -1.6986,-0.0737 -2.1043,0.84246 -0.3576,0.80771 -0.263,2.10509 0.2918,2.72004 l 2.3824,2.53125 c 0.3844,0.47604 1.1988,0.53546 1.7814,-0.0313 l 6.9309,-6.67011 c 0.8412,-0.89696 0.6398,-2.23127 0.2214,-2.8846 -0.4925,-0.76903 -1.4327,-0.78265 -2.0124,-0.29546 z m 0.1111,0.94016 1.1079,1.41031 -6.922,6.4375 -0.5937,0 -2.1875,-2.1875 0.1563,-1.45312 0.5312,-0.23438 1.4687,1.21875 0.3438,0.34375 0.2002,0.25 z"
+ id="path24115"
+ sodipodi:nodetypes="cccsccccsccccccccccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;color:#000000;fill:#fcaf3e;fill-opacity:1;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Ahem;-inkscape-font-specification:Ahem"
+ d="m 1581.7056,198.35054 -6.2213,5.69077 -1.675,-1.75016 c -0.2927,-0.26248 -0.7322,1.5e-4 -0.8428,0.33163 l 0.028,1.54287 1.818,1.8656 7.9844,-7.53125 c -0.2564,-0.46127 -0.6632,-0.48234 -1.0915,-0.14946 z"
+ id="path24119"
+ sodipodi:nodetypes="cccccccc"
+ inkscape:connector-curvature="0" />
+ <path
+ style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;color:#000000;fill:url(#linearGradient4291);fill-opacity:1;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Ahem;-inkscape-font-specification:Ahem"
+ d="m 1582.7969,198.5 -7.3077,6.86432 -2.5348,-2.78466 c 0,0 -0.5675,0.90691 0.019,1.58656 l 2.1532,2.25362 c 0.1546,0.17678 0.4665,0.12213 0.6654,-0.0104 l 6.9002,-6.47188 c 0.5082,-0.50823 0.1094,-1.43751 0.1094,-1.43751 l 2e-4,0 z"
+ id="path24117"
+ sodipodi:nodetypes="cccccccccc"
+ inkscape:connector-curvature="0" />
+ </g>
+ </g>
+ </g>
+</svg>
diff --git a/gtk3/theme/assets/checkbox-checked-insensitive-dark.svg b/gtk3/theme/assets/checkbox-checked-insensitive-dark.svg
new file mode 100644
index 0000000..0bc65b8
--- /dev/null
+++ b/gtk3/theme/assets/checkbox-checked-insensitive-dark.svg
@@ -0,0 +1,235 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ id="svg814"
+ version="1.1"
+ inkscape:version="0.48.1 r9760"
+ sodipodi:docname="checkbox-unchecked-dark.svg">
+ <defs
+ id="defs816">
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient24133"
+ id="linearGradient8394"
+ gradientUnits="userSpaceOnUse"
+ x1="1582.125"
+ y1="201.98718"
+ x2="1580.5312"
+ y2="197.98718" />
+ <linearGradient
+ id="linearGradient24133"
+ inkscape:collect="always">
+ <stop
+ id="stop24135"
+ offset="0"
+ style="stop-color:#145393;stop-opacity:1;" />
+ <stop
+ id="stop24137"
+ offset="1"
+ style="stop-color:#1b6fc5;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient10354-2"
+ id="linearGradient8378"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-1609.9926,-78.958432)"
+ x1="1205.5752"
+ y1="-186.45331"
+ x2="1205.5752"
+ y2="-202.34555" />
+ <linearGradient
+ id="linearGradient10354-2"
+ inkscape:collect="always">
+ <stop
+ id="stop10356-2"
+ offset="0"
+ style="stop-color:#bcbfb8;stop-opacity:1" />
+ <stop
+ id="stop10358-2"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient10332-5"
+ id="linearGradient8380"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.84941206,0,0,0.84794288,-623.98415,-483.16392)"
+ x1="260.92538"
+ y1="233.77748"
+ x2="260.92538"
+ y2="248.97633" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient10332-5">
+ <stop
+ style="stop-color:#d3d7cf;stop-opacity:1"
+ offset="0"
+ id="stop10334-5" />
+ <stop
+ style="stop-color:#8f9985;stop-opacity:1"
+ offset="1"
+ id="stop10336-29" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient24133-1"
+ id="linearGradient8394-1"
+ gradientUnits="userSpaceOnUse"
+ x1="1582.125"
+ y1="201.98718"
+ x2="1580.5312"
+ y2="197.98718"
+ gradientTransform="translate(0,-20)" />
+ <linearGradient
+ id="linearGradient24133-1"
+ inkscape:collect="always">
+ <stop
+ id="stop24135-6"
+ offset="0"
+ style="stop-color:#145393;stop-opacity:1;" />
+ <stop
+ id="stop24137-2"
+ offset="1"
+ style="stop-color:#1b6fc5;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient24133-9"
+ id="linearGradient8394-11"
+ gradientUnits="userSpaceOnUse"
+ x1="1582.125"
+ y1="201.98718"
+ x2="1580.5312"
+ y2="197.98718" />
+ <linearGradient
+ id="linearGradient24133-9"
+ inkscape:collect="always">
+ <stop
+ id="stop24135-1"
+ offset="0"
+ style="stop-color:#145393;stop-opacity:1;" />
+ <stop
+ id="stop24137-3"
+ offset="1"
+ style="stop-color:#1b6fc5;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3859-9"
+ id="linearGradient4677-3"
+ gradientUnits="userSpaceOnUse"
+ x1="-403.46503"
+ y1="-280.60101"
+ x2="-403.46503"
+ y2="-273.35056" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3859-9">
+ <stop
+ style="stop-color:#282828;stop-opacity:1;"
+ offset="0"
+ id="stop3861-9" />
+ <stop
+ style="stop-color:#151515;stop-opacity:1"
+ offset="1"
+ id="stop3863-5" />
+ </linearGradient>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="7.4845183"
+ inkscape:cy="6.6249627"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1-3"
+ showgrid="true"
+ borderlayer="true"
+ inkscape:showpageshadow="false"
+ inkscape:window-width="1373"
+ inkscape:window-height="1035"
+ inkscape:window-x="1667"
+ inkscape:window-y="103"
+ inkscape:window-maximized="0"
+ inkscape:snap-nodes="false"
+ inkscape:snap-bbox="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid4084"
+ empspacing="5"
+ visible="true"
+ enabled="true"
+ snapvisiblegridlinesonly="true" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata819">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <g
+ transform="translate(-1.7396303e-6,0.02325995)"
+ id="layer1-3"
+ inkscape:label="Layer 1">
+ <g
+ style="enable-background:new"
+ id="g16853-5"
+ transform="translate(410.00739,765.00002)" />
+ <g
+ transform="translate(-3.0064634e-6,-0.03618995)"
+ id="layer1-96"
+ inkscape:label="Layer 1"
+ style="stroke:#717171;stroke-opacity:1">
+ <g
+ transform="translate(410.00739,765.05452)"
+ id="g16895"
+ style="opacity:0.5;stroke:#717171;stroke-opacity:1;enable-background:new">
+ <rect
+ transform="scale(1,-1)"
+ style="color:#000000;fill:none;stroke:#717171;stroke-width:1;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect16897"
+ width="11.042357"
+ height="11.023263"
+ x="-409.50739"
+ y="-284.86218"
+ rx="1.6105907"
+ ry="1.6105907" />
+ <path
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="ccc"
+ d="m -406.2425,278.07061 2.7047,3.5 6.3577,-7"
+ style="fill:none;stroke:#717171;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;enable-background:new"
+ id="path16899" />
+ </g>
+ </g>
+ </g>
+ </g>
+</svg>
diff --git a/gtk3/theme/assets/checkbox-checked-insensitive.svg b/gtk3/theme/assets/checkbox-checked-insensitive.svg
new file mode 100644
index 0000000..326d133
--- /dev/null
+++ b/gtk3/theme/assets/checkbox-checked-insensitive.svg
@@ -0,0 +1,175 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ id="svg814"
+ version="1.1"
+ inkscape:version="0.48+devel r10053 custom"
+ sodipodi:docname="checkbox-unchecked.svg">
+ <defs
+ id="defs816">
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient10354-2"
+ id="linearGradient8378"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-1609.9926,-78.958432)"
+ x1="1205.5752"
+ y1="-186.45331"
+ x2="1205.5752"
+ y2="-202.34555" />
+ <linearGradient
+ id="linearGradient10354-2"
+ inkscape:collect="always">
+ <stop
+ id="stop10356-2"
+ offset="0"
+ style="stop-color:#bcbfb8;stop-opacity:1" />
+ <stop
+ id="stop10358-2"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient10332-5"
+ id="linearGradient8380"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.84941206,0,0,0.84794288,-623.98415,-483.16392)"
+ x1="260.92538"
+ y1="233.77748"
+ x2="260.92538"
+ y2="248.97633" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient10332-5">
+ <stop
+ style="stop-color:#d3d7cf;stop-opacity:1"
+ offset="0"
+ id="stop10334-5" />
+ <stop
+ style="stop-color:#8f9985;stop-opacity:1"
+ offset="1"
+ id="stop10336-29" />
+ </linearGradient>
+ <linearGradient
+ y2="-202.34555"
+ x2="1205.5752"
+ y1="-186.45331"
+ x1="1205.5752"
+ gradientTransform="translate(-1609.9926,-78.958432)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3951"
+ xlink:href="#linearGradient10354-2"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="248.97633"
+ x2="260.92538"
+ y1="233.77748"
+ x1="260.92538"
+ gradientTransform="matrix(0.84941206,0,0,0.84794288,-623.98415,-483.16392)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3953"
+ xlink:href="#linearGradient10332-5"
+ inkscape:collect="always" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient10332-5-8"
+ id="linearGradient8390"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.84941206,0,0,0.84794288,-623.98415,-483.16392)"
+ x1="260.92538"
+ y1="233.77748"
+ x2="260.92538"
+ y2="248.97633" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient10332-5-8">
+ <stop
+ style="stop-color:#d3d7cf;stop-opacity:1"
+ offset="0"
+ id="stop10334-5-6" />
+ <stop
+ style="stop-color:#8f9985;stop-opacity:1"
+ offset="1"
+ id="stop10336-29-0" />
+ </linearGradient>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="7.1381674"
+ inkscape:cy="8.4772276"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ borderlayer="true"
+ inkscape:showpageshadow="false"
+ inkscape:window-width="981"
+ inkscape:window-height="899"
+ inkscape:window-x="1600"
+ inkscape:window-y="0"
+ inkscape:window-maximized="0">
+ <inkscape:grid
+ type="xygrid"
+ id="grid4084"
+ empspacing="5"
+ visible="true"
+ enabled="true"
+ snapvisiblegridlinesonly="true" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata819">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <g
+ style="opacity:0.5;enable-background:new"
+ id="g16895"
+ transform="translate(410.00739,765.05452)">
+ <rect
+ ry="1.6105907"
+ rx="1.6105907"
+ y="-284.86218"
+ x="-409.50739"
+ height="11.023263"
+ width="11.042357"
+ id="rect16897"
+ style="color:#000000;fill:none;stroke:url(#linearGradient8390);stroke-width:1;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ transform="scale(1,-1)" />
+ <path
+ id="path16899"
+ style="fill:none;stroke:#a3a89c;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;enable-background:new"
+ d="m -406.2425,278.07061 2.7047,3.5 6.3577,-7"
+ sodipodi:nodetypes="ccc"
+ inkscape:connector-curvature="0" />
+ </g>
+ </g>
+</svg>
diff --git a/gtk3/theme/assets/checkbox-checked-scalable.svg b/gtk3/theme/assets/checkbox-checked-scalable.svg
new file mode 100644
index 0000000..f2492f1
--- /dev/null
+++ b/gtk3/theme/assets/checkbox-checked-scalable.svg
@@ -0,0 +1,191 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ id="svg814"
+ version="1.1"
+ inkscape:version="0.48+devel r10053 custom"
+ sodipodi:docname="checkbox-checked-scalable.svg">
+ <defs
+ id="defs816">
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient24133"
+ id="linearGradient8394"
+ gradientUnits="userSpaceOnUse"
+ x1="1582.125"
+ y1="201.98718"
+ x2="1580.5312"
+ y2="197.98718" />
+ <linearGradient
+ id="linearGradient24133"
+ inkscape:collect="always">
+ <stop
+ id="stop24135"
+ offset="0"
+ style="stop-color:#145393;stop-opacity:1;" />
+ <stop
+ id="stop24137"
+ offset="1"
+ style="stop-color:#1b6fc5;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient10354-2"
+ id="linearGradient8378"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-1609.9926,-78.958432)"
+ x1="1205.5752"
+ y1="-186.45331"
+ x2="1205.5752"
+ y2="-202.34555" />
+ <linearGradient
+ id="linearGradient10354-2"
+ inkscape:collect="always">
+ <stop
+ id="stop10356-2"
+ offset="0"
+ style="stop-color:#bcbfb8;stop-opacity:1" />
+ <stop
+ id="stop10358-2"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient10332-5"
+ id="linearGradient8380"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.84941206,0,0,0.84794288,-623.98415,-483.16392)"
+ x1="260.92538"
+ y1="233.77748"
+ x2="260.92538"
+ y2="248.97633" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient10332-5">
+ <stop
+ style="stop-color:#d3d7cf;stop-opacity:1"
+ offset="0"
+ id="stop10334-5" />
+ <stop
+ style="stop-color:#8f9985;stop-opacity:1"
+ offset="1"
+ id="stop10336-29" />
+ </linearGradient>
+ <linearGradient
+ y2="-202.34555"
+ x2="1205.5752"
+ y1="-186.45331"
+ x1="1205.5752"
+ gradientTransform="translate(-1609.9926,-78.958432)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3951"
+ xlink:href="#linearGradient10354-2"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="248.97633"
+ x2="260.92538"
+ y1="233.77748"
+ x1="260.92538"
+ gradientTransform="matrix(0.84941206,0,0,0.84794288,-623.98415,-483.16392)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3953"
+ xlink:href="#linearGradient10332-5"
+ inkscape:collect="always" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1"
+ inkscape:cx="9.3023818"
+ inkscape:cy="13.216234"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ borderlayer="true"
+ inkscape:showpageshadow="false"
+ inkscape:window-width="894"
+ inkscape:window-height="914"
+ inkscape:window-x="1600"
+ inkscape:window-y="0"
+ inkscape:window-maximized="0">
+ <inkscape:grid
+ type="xygrid"
+ id="grid4084"
+ empspacing="5"
+ visible="true"
+ enabled="true"
+ snapvisiblegridlinesonly="true" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata819">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <g
+ transform="translate(410.00739,765.00002)"
+ id="g16853"
+ style="enable-background:new">
+ <rect
+ transform="scale(1,-1)"
+ style="color:#000000;fill:url(#linearGradient3951);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient3953);stroke-width:1;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect6506"
+ width="11.042357"
+ height="11.023263"
+ x="-409.50739"
+ y="-284.86218"
+ rx="1.6105907"
+ ry="1.6105907" />
+ </g>
+ <g
+ transform="translate(-1568.9928,841.00002)"
+ id="g24757"
+ style="display:inline;enable-background:new">
+ <path
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccsccccsccccccccccccc"
+ id="path24115"
+ d="m 1581.484,197.57451 -5.9527,5.49523 -1.5385,-1.70756 c -0.5675,-0.68154 -1.6986,-0.0737 -2.1043,0.84246 -0.3576,0.80771 -0.263,2.10509 0.2918,2.72004 l 2.3824,2.53125 c 0.3844,0.47604 1.1988,0.53546 1.7814,-0.0313 l 6.9309,-6.67011 c 0.8412,-0.89696 0.6398,-2.23127 0.2214,-2.8846 -0.4925,-0.76903 -1.4327,-0.78265 -2.0124,-0.29546 z m 0.1111,0.94016 1.1079,1.41031 -6.922,6.4375 -0.5937,0 -2.1875,-2.1875 0.1563,-1.45312 0.5312,-0.23438 1.4687,1.21875 0.3438,0.34375 0.2002,0.25 z"
+ style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;color:#000000;fill:url(#linearGradient8394);fill-opacity:1;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Ahem;-inkscape-font-specification:Ahem" />
+ <path
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccc"
+ id="path24119"
+ d="m 1581.7056,198.35054 -6.2213,5.69077 -1.675,-1.75016 c -0.2927,-0.26248 -0.7322,1.5e-4 -0.8428,0.33163 l 0.028,1.54287 1.818,1.8656 7.9844,-7.53125 c -0.2564,-0.46127 -0.6632,-0.48234 -1.0915,-0.14946 z"
+ style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;color:#000000;fill:#a2c0dd;fill-opacity:1;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Ahem;-inkscape-font-specification:Ahem" />
+ <path
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccccc"
+ id="path24117"
+ d="m 1582.7969,198.5 -7.3077,6.86432 -2.5348,-2.78466 c 0,0 -0.5675,0.90691 0.019,1.58656 l 2.1532,2.25362 c 0.1546,0.17678 0.4665,0.12213 0.6654,-0.0104 l 6.9002,-6.47188 c 0.5082,-0.50823 0.1094,-1.43751 0.1094,-1.43751 l 2e-4,0 z"
+ style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;color:#000000;fill:#4a8dd1;fill-opacity:1;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Ahem;-inkscape-font-specification:Ahem" />
+ </g>
+ </g>
+</svg>
diff --git a/gtk3/theme/assets/checkbox-checked.svg b/gtk3/theme/assets/checkbox-checked.svg
new file mode 100644
index 0000000..f2492f1
--- /dev/null
+++ b/gtk3/theme/assets/checkbox-checked.svg
@@ -0,0 +1,191 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ id="svg814"
+ version="1.1"
+ inkscape:version="0.48+devel r10053 custom"
+ sodipodi:docname="checkbox-checked-scalable.svg">
+ <defs
+ id="defs816">
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient24133"
+ id="linearGradient8394"
+ gradientUnits="userSpaceOnUse"
+ x1="1582.125"
+ y1="201.98718"
+ x2="1580.5312"
+ y2="197.98718" />
+ <linearGradient
+ id="linearGradient24133"
+ inkscape:collect="always">
+ <stop
+ id="stop24135"
+ offset="0"
+ style="stop-color:#145393;stop-opacity:1;" />
+ <stop
+ id="stop24137"
+ offset="1"
+ style="stop-color:#1b6fc5;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient10354-2"
+ id="linearGradient8378"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-1609.9926,-78.958432)"
+ x1="1205.5752"
+ y1="-186.45331"
+ x2="1205.5752"
+ y2="-202.34555" />
+ <linearGradient
+ id="linearGradient10354-2"
+ inkscape:collect="always">
+ <stop
+ id="stop10356-2"
+ offset="0"
+ style="stop-color:#bcbfb8;stop-opacity:1" />
+ <stop
+ id="stop10358-2"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient10332-5"
+ id="linearGradient8380"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.84941206,0,0,0.84794288,-623.98415,-483.16392)"
+ x1="260.92538"
+ y1="233.77748"
+ x2="260.92538"
+ y2="248.97633" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient10332-5">
+ <stop
+ style="stop-color:#d3d7cf;stop-opacity:1"
+ offset="0"
+ id="stop10334-5" />
+ <stop
+ style="stop-color:#8f9985;stop-opacity:1"
+ offset="1"
+ id="stop10336-29" />
+ </linearGradient>
+ <linearGradient
+ y2="-202.34555"
+ x2="1205.5752"
+ y1="-186.45331"
+ x1="1205.5752"
+ gradientTransform="translate(-1609.9926,-78.958432)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3951"
+ xlink:href="#linearGradient10354-2"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="248.97633"
+ x2="260.92538"
+ y1="233.77748"
+ x1="260.92538"
+ gradientTransform="matrix(0.84941206,0,0,0.84794288,-623.98415,-483.16392)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3953"
+ xlink:href="#linearGradient10332-5"
+ inkscape:collect="always" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1"
+ inkscape:cx="9.3023818"
+ inkscape:cy="13.216234"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ borderlayer="true"
+ inkscape:showpageshadow="false"
+ inkscape:window-width="894"
+ inkscape:window-height="914"
+ inkscape:window-x="1600"
+ inkscape:window-y="0"
+ inkscape:window-maximized="0">
+ <inkscape:grid
+ type="xygrid"
+ id="grid4084"
+ empspacing="5"
+ visible="true"
+ enabled="true"
+ snapvisiblegridlinesonly="true" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata819">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <g
+ transform="translate(410.00739,765.00002)"
+ id="g16853"
+ style="enable-background:new">
+ <rect
+ transform="scale(1,-1)"
+ style="color:#000000;fill:url(#linearGradient3951);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient3953);stroke-width:1;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect6506"
+ width="11.042357"
+ height="11.023263"
+ x="-409.50739"
+ y="-284.86218"
+ rx="1.6105907"
+ ry="1.6105907" />
+ </g>
+ <g
+ transform="translate(-1568.9928,841.00002)"
+ id="g24757"
+ style="display:inline;enable-background:new">
+ <path
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccsccccsccccccccccccc"
+ id="path24115"
+ d="m 1581.484,197.57451 -5.9527,5.49523 -1.5385,-1.70756 c -0.5675,-0.68154 -1.6986,-0.0737 -2.1043,0.84246 -0.3576,0.80771 -0.263,2.10509 0.2918,2.72004 l 2.3824,2.53125 c 0.3844,0.47604 1.1988,0.53546 1.7814,-0.0313 l 6.9309,-6.67011 c 0.8412,-0.89696 0.6398,-2.23127 0.2214,-2.8846 -0.4925,-0.76903 -1.4327,-0.78265 -2.0124,-0.29546 z m 0.1111,0.94016 1.1079,1.41031 -6.922,6.4375 -0.5937,0 -2.1875,-2.1875 0.1563,-1.45312 0.5312,-0.23438 1.4687,1.21875 0.3438,0.34375 0.2002,0.25 z"
+ style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;color:#000000;fill:url(#linearGradient8394);fill-opacity:1;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Ahem;-inkscape-font-specification:Ahem" />
+ <path
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccc"
+ id="path24119"
+ d="m 1581.7056,198.35054 -6.2213,5.69077 -1.675,-1.75016 c -0.2927,-0.26248 -0.7322,1.5e-4 -0.8428,0.33163 l 0.028,1.54287 1.818,1.8656 7.9844,-7.53125 c -0.2564,-0.46127 -0.6632,-0.48234 -1.0915,-0.14946 z"
+ style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;color:#000000;fill:#a2c0dd;fill-opacity:1;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Ahem;-inkscape-font-specification:Ahem" />
+ <path
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccccc"
+ id="path24117"
+ d="m 1582.7969,198.5 -7.3077,6.86432 -2.5348,-2.78466 c 0,0 -0.5675,0.90691 0.019,1.58656 l 2.1532,2.25362 c 0.1546,0.17678 0.4665,0.12213 0.6654,-0.0104 l 6.9002,-6.47188 c 0.5082,-0.50823 0.1094,-1.43751 0.1094,-1.43751 l 2e-4,0 z"
+ style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;color:#000000;fill:#4a8dd1;fill-opacity:1;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Ahem;-inkscape-font-specification:Ahem" />
+ </g>
+ </g>
+</svg>
diff --git a/gtk3/theme/assets/checkbox-mixed-dark.svg b/gtk3/theme/assets/checkbox-mixed-dark.svg
new file mode 100644
index 0000000..d94482a
--- /dev/null
+++ b/gtk3/theme/assets/checkbox-mixed-dark.svg
@@ -0,0 +1,320 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ id="svg814"
+ version="1.1"
+ inkscape:version="0.48.1 r9760"
+ sodipodi:docname="checkbox-mixed.svg">
+ <defs
+ id="defs816">
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient7346">
+ <stop
+ style="stop-color:#1969ba;stop-opacity:1"
+ offset="0"
+ id="stop7348" />
+ <stop
+ style="stop-color:#145393;stop-opacity:1"
+ offset="1"
+ id="stop7350" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient24133"
+ id="linearGradient8394"
+ gradientUnits="userSpaceOnUse"
+ x1="1582.125"
+ y1="201.98718"
+ x2="1580.5312"
+ y2="197.98718" />
+ <linearGradient
+ id="linearGradient24133"
+ inkscape:collect="always">
+ <stop
+ id="stop24135"
+ offset="0"
+ style="stop-color:#145393;stop-opacity:1;" />
+ <stop
+ id="stop24137"
+ offset="1"
+ style="stop-color:#1b6fc5;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient10354-2"
+ id="linearGradient8378"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-1609.9926,-78.958432)"
+ x1="1205.5752"
+ y1="-186.45331"
+ x2="1205.5752"
+ y2="-202.34555" />
+ <linearGradient
+ id="linearGradient10354-2"
+ inkscape:collect="always">
+ <stop
+ id="stop10356-2"
+ offset="0"
+ style="stop-color:#bcbfb8;stop-opacity:1" />
+ <stop
+ id="stop10358-2"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient10332-5"
+ id="linearGradient8380"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.84941206,0,0,0.84794288,-623.98415,-483.16392)"
+ x1="260.92538"
+ y1="233.77748"
+ x2="260.92538"
+ y2="248.97633" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient10332-5">
+ <stop
+ style="stop-color:#d3d7cf;stop-opacity:1"
+ offset="0"
+ id="stop10334-5" />
+ <stop
+ style="stop-color:#8f9985;stop-opacity:1"
+ offset="1"
+ id="stop10336-29" />
+ </linearGradient>
+ <linearGradient
+ y2="-202.34555"
+ x2="1205.5752"
+ y1="-186.45331"
+ x1="1205.5752"
+ gradientTransform="translate(-1609.9926,-78.958432)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3951"
+ xlink:href="#linearGradient10354-2"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="248.97633"
+ x2="260.92538"
+ y1="233.77748"
+ x1="260.92538"
+ gradientTransform="matrix(0.84941206,0,0,0.84794288,-623.98415,-483.16392)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3953"
+ xlink:href="#linearGradient10332-5"
+ inkscape:collect="always" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient24133-1"
+ id="linearGradient8394-1"
+ gradientUnits="userSpaceOnUse"
+ x1="1582.125"
+ y1="201.98718"
+ x2="1580.5312"
+ y2="197.98718"
+ gradientTransform="translate(0,-20)" />
+ <linearGradient
+ id="linearGradient24133-1"
+ inkscape:collect="always">
+ <stop
+ id="stop24135-6"
+ offset="0"
+ style="stop-color:#145393;stop-opacity:1;" />
+ <stop
+ id="stop24137-2"
+ offset="1"
+ style="stop-color:#1b6fc5;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient24133-9"
+ id="linearGradient8394-11"
+ gradientUnits="userSpaceOnUse"
+ x1="1582.125"
+ y1="201.98718"
+ x2="1580.5312"
+ y2="197.98718" />
+ <linearGradient
+ id="linearGradient24133-9"
+ inkscape:collect="always">
+ <stop
+ id="stop24135-1"
+ offset="0"
+ style="stop-color:#145393;stop-opacity:1;" />
+ <stop
+ id="stop24137-3"
+ offset="1"
+ style="stop-color:#1b6fc5;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7346"
+ id="linearGradient7352"
+ x1="5.65625"
+ y1="6.390625"
+ x2="5.65625"
+ y2="9.828125"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3859-9"
+ id="linearGradient4677-3"
+ gradientUnits="userSpaceOnUse"
+ x1="-403.46503"
+ y1="-280.60101"
+ x2="-403.46503"
+ y2="-273.35056" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3859-9">
+ <stop
+ style="stop-color:#282828;stop-opacity:1;"
+ offset="0"
+ id="stop3861-9" />
+ <stop
+ style="stop-color:#151515;stop-opacity:1"
+ offset="1"
+ id="stop3863-5" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4655-7"
+ id="linearGradient4661-4"
+ x1="6.8551636"
+ y1="6.6672974"
+ x2="7.1051636"
+ y2="9.8606262"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient4655-7">
+ <stop
+ style="stop-color:#ce5c00;stop-opacity:1;"
+ offset="0"
+ id="stop4657-9" />
+ <stop
+ style="stop-color:#914100;stop-opacity:1"
+ offset="1"
+ id="stop4659-9" />
+ </linearGradient>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="7.4845183"
+ inkscape:cy="6.6249627"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ borderlayer="true"
+ inkscape:showpageshadow="false"
+ inkscape:window-width="1373"
+ inkscape:window-height="1035"
+ inkscape:window-x="1600"
+ inkscape:window-y="223"
+ inkscape:window-maximized="0"
+ inkscape:snap-nodes="false"
+ inkscape:snap-bbox="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid4084"
+ empspacing="5"
+ visible="true"
+ enabled="true"
+ snapvisiblegridlinesonly="true" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata819">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <g
+ transform="translate(-1.7396303e-6,0.02325995)"
+ id="layer1-3"
+ inkscape:label="Layer 1">
+ <g
+ style="enable-background:new"
+ id="g16853-5"
+ transform="translate(410.00739,765.00002)" />
+ <g
+ inkscape:label="Layer 1"
+ id="g4663-3"
+ transform="translate(-3.0064635e-6,4.0976101e-7)">
+ <g
+ transform="translate(410.00739,765.00002)"
+ id="g4665-1"
+ style="enable-background:new">
+ <rect
+ ry="1.6105907"
+ rx="1.6105907"
+ y="-285.86218"
+ x="-409.50739"
+ height="11.023263"
+ width="11.042357"
+ id="rect5052"
+ style="opacity:0.1;color:#000000;fill:none;stroke:#ffffff;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ transform="scale(1,-1)" />
+ <rect
+ transform="scale(1,-1)"
+ style="color:#000000;fill:url(#linearGradient4677-3);fill-opacity:1;fill-rule:nonzero;stroke:#131516;stroke-width:1;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect4667-0"
+ width="11.042357"
+ height="11.023263"
+ x="-409.50739"
+ y="-284.86218"
+ rx="1.6105907"
+ ry="1.6105907" />
+ </g>
+ <g
+ transform="translate(-1568.9928,841.00002)"
+ id="g4669-6"
+ style="display:inline;enable-background:new" />
+ </g>
+ <rect
+ ry="1.515625"
+ rx="1.515625"
+ transform="translate(0,1036.3622)"
+ y="6.5"
+ x="1.53125"
+ height="3.03125"
+ width="8.9375"
+ id="rect5494"
+ style="color:#000000;fill:#f57900;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient4661-4);stroke-width:1;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:113.35856395;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ transform="translate(0,1036.3622)"
+ inkscape:connector-curvature="0"
+ id="path5496"
+ d="m 2.53125,7.5625 6.9375,0"
+ style="opacity:0.50431064;fill:none;stroke:#ffffff;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" />
+ </g>
+ </g>
+</svg>
diff --git a/gtk3/theme/assets/checkbox-mixed.svg b/gtk3/theme/assets/checkbox-mixed.svg
new file mode 100644
index 0000000..ff8ee97
--- /dev/null
+++ b/gtk3/theme/assets/checkbox-mixed.svg
@@ -0,0 +1,250 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ id="svg814"
+ version="1.1"
+ inkscape:version="0.48+devel r10053 custom"
+ sodipodi:docname="checkbox-checked-pixelsharpened.svg">
+ <defs
+ id="defs816">
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient7346">
+ <stop
+ style="stop-color:#1969ba;stop-opacity:1"
+ offset="0"
+ id="stop7348" />
+ <stop
+ style="stop-color:#145393;stop-opacity:1"
+ offset="1"
+ id="stop7350" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient24133"
+ id="linearGradient8394"
+ gradientUnits="userSpaceOnUse"
+ x1="1582.125"
+ y1="201.98718"
+ x2="1580.5312"
+ y2="197.98718" />
+ <linearGradient
+ id="linearGradient24133"
+ inkscape:collect="always">
+ <stop
+ id="stop24135"
+ offset="0"
+ style="stop-color:#145393;stop-opacity:1;" />
+ <stop
+ id="stop24137"
+ offset="1"
+ style="stop-color:#1b6fc5;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient10354-2"
+ id="linearGradient8378"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-1609.9926,-78.958432)"
+ x1="1205.5752"
+ y1="-186.45331"
+ x2="1205.5752"
+ y2="-202.34555" />
+ <linearGradient
+ id="linearGradient10354-2"
+ inkscape:collect="always">
+ <stop
+ id="stop10356-2"
+ offset="0"
+ style="stop-color:#bcbfb8;stop-opacity:1" />
+ <stop
+ id="stop10358-2"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient10332-5"
+ id="linearGradient8380"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.84941206,0,0,0.84794288,-623.98415,-483.16392)"
+ x1="260.92538"
+ y1="233.77748"
+ x2="260.92538"
+ y2="248.97633" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient10332-5">
+ <stop
+ style="stop-color:#d3d7cf;stop-opacity:1"
+ offset="0"
+ id="stop10334-5" />
+ <stop
+ style="stop-color:#8f9985;stop-opacity:1"
+ offset="1"
+ id="stop10336-29" />
+ </linearGradient>
+ <linearGradient
+ y2="-202.34555"
+ x2="1205.5752"
+ y1="-186.45331"
+ x1="1205.5752"
+ gradientTransform="translate(-1609.9926,-78.958432)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3951"
+ xlink:href="#linearGradient10354-2"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="248.97633"
+ x2="260.92538"
+ y1="233.77748"
+ x1="260.92538"
+ gradientTransform="matrix(0.84941206,0,0,0.84794288,-623.98415,-483.16392)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3953"
+ xlink:href="#linearGradient10332-5"
+ inkscape:collect="always" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient24133-1"
+ id="linearGradient8394-1"
+ gradientUnits="userSpaceOnUse"
+ x1="1582.125"
+ y1="201.98718"
+ x2="1580.5312"
+ y2="197.98718"
+ gradientTransform="translate(0,-20)" />
+ <linearGradient
+ id="linearGradient24133-1"
+ inkscape:collect="always">
+ <stop
+ id="stop24135-6"
+ offset="0"
+ style="stop-color:#145393;stop-opacity:1;" />
+ <stop
+ id="stop24137-2"
+ offset="1"
+ style="stop-color:#1b6fc5;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient24133-9"
+ id="linearGradient8394-11"
+ gradientUnits="userSpaceOnUse"
+ x1="1582.125"
+ y1="201.98718"
+ x2="1580.5312"
+ y2="197.98718" />
+ <linearGradient
+ id="linearGradient24133-9"
+ inkscape:collect="always">
+ <stop
+ id="stop24135-1"
+ offset="0"
+ style="stop-color:#145393;stop-opacity:1;" />
+ <stop
+ id="stop24137-3"
+ offset="1"
+ style="stop-color:#1b6fc5;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7346"
+ id="linearGradient7352"
+ x1="5.65625"
+ y1="6.390625"
+ x2="5.65625"
+ y2="9.828125"
+ gradientUnits="userSpaceOnUse" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1"
+ inkscape:cx="13.343981"
+ inkscape:cy="9.0341616"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ borderlayer="true"
+ inkscape:showpageshadow="false"
+ inkscape:window-width="1373"
+ inkscape:window-height="1035"
+ inkscape:window-x="1600"
+ inkscape:window-y="0"
+ inkscape:window-maximized="0"
+ inkscape:snap-nodes="false"
+ inkscape:snap-bbox="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid4084"
+ empspacing="5"
+ visible="true"
+ enabled="true"
+ snapvisiblegridlinesonly="true" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata819">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <g
+ transform="translate(410.00739,765.00002)"
+ id="g16853"
+ style="enable-background:new">
+ <rect
+ transform="scale(1,-1)"
+ style="color:#000000;fill:url(#linearGradient3951);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient3953);stroke-width:1;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect6506"
+ width="11.042357"
+ height="11.023263"
+ x="-409.50739"
+ y="-284.86218"
+ rx="1.6105907"
+ ry="1.6105907" />
+ </g>
+ <rect
+ style="color:#000000;fill:#4588ca;fill-opacity:0.98823529;fill-rule:nonzero;stroke:url(#linearGradient7352);stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect5494"
+ width="8.9375"
+ height="3.03125"
+ x="1.53125"
+ y="6.5"
+ transform="translate(0,1036.3622)"
+ rx="1.515625"
+ ry="1.515625" />
+ <path
+ style="fill:none;stroke:#ffffff;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1;opacity:0.50431034"
+ d="m 2.53125,7.5625 6.9375,0"
+ id="path5496"
+ inkscape:connector-curvature="0"
+ transform="translate(0,1036.3622)" />
+ </g>
+</svg>
diff --git a/gtk3/theme/assets/checkbox-unchecked-dark.svg b/gtk3/theme/assets/checkbox-unchecked-dark.svg
new file mode 100644
index 0000000..759b1bb
--- /dev/null
+++ b/gtk3/theme/assets/checkbox-unchecked-dark.svg
@@ -0,0 +1,263 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ id="svg814"
+ version="1.1"
+ inkscape:version="0.48.1 r9760"
+ sodipodi:docname="checkbox-mixed-dark.svg">
+ <defs
+ id="defs816">
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient24133"
+ id="linearGradient8394"
+ gradientUnits="userSpaceOnUse"
+ x1="1582.125"
+ y1="201.98718"
+ x2="1580.5312"
+ y2="197.98718" />
+ <linearGradient
+ id="linearGradient24133"
+ inkscape:collect="always">
+ <stop
+ id="stop24135"
+ offset="0"
+ style="stop-color:#145393;stop-opacity:1;" />
+ <stop
+ id="stop24137"
+ offset="1"
+ style="stop-color:#1b6fc5;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient10354-2"
+ id="linearGradient8378"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-1609.9926,-78.958432)"
+ x1="1205.5752"
+ y1="-186.45331"
+ x2="1205.5752"
+ y2="-202.34555" />
+ <linearGradient
+ id="linearGradient10354-2"
+ inkscape:collect="always">
+ <stop
+ id="stop10356-2"
+ offset="0"
+ style="stop-color:#bcbfb8;stop-opacity:1" />
+ <stop
+ id="stop10358-2"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient10332-5"
+ id="linearGradient8380"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.84941206,0,0,0.84794288,-623.98415,-483.16392)"
+ x1="260.92538"
+ y1="233.77748"
+ x2="260.92538"
+ y2="248.97633" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient10332-5">
+ <stop
+ style="stop-color:#d3d7cf;stop-opacity:1"
+ offset="0"
+ id="stop10334-5" />
+ <stop
+ style="stop-color:#8f9985;stop-opacity:1"
+ offset="1"
+ id="stop10336-29" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient24133-1"
+ id="linearGradient8394-1"
+ gradientUnits="userSpaceOnUse"
+ x1="1582.125"
+ y1="201.98718"
+ x2="1580.5312"
+ y2="197.98718"
+ gradientTransform="translate(0,-20)" />
+ <linearGradient
+ id="linearGradient24133-1"
+ inkscape:collect="always">
+ <stop
+ id="stop24135-6"
+ offset="0"
+ style="stop-color:#145393;stop-opacity:1;" />
+ <stop
+ id="stop24137-2"
+ offset="1"
+ style="stop-color:#1b6fc5;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient24133-9"
+ id="linearGradient8394-11"
+ gradientUnits="userSpaceOnUse"
+ x1="1582.125"
+ y1="201.98718"
+ x2="1580.5312"
+ y2="197.98718" />
+ <linearGradient
+ id="linearGradient24133-9"
+ inkscape:collect="always">
+ <stop
+ id="stop24135-1"
+ offset="0"
+ style="stop-color:#145393;stop-opacity:1;" />
+ <stop
+ id="stop24137-3"
+ offset="1"
+ style="stop-color:#1b6fc5;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3859-9"
+ id="linearGradient4677-3"
+ gradientUnits="userSpaceOnUse"
+ x1="-403.46503"
+ y1="-280.60101"
+ x2="-403.46503"
+ y2="-273.35056" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3859-9">
+ <stop
+ style="stop-color:#282828;stop-opacity:1;"
+ offset="0"
+ id="stop3861-9" />
+ <stop
+ style="stop-color:#151515;stop-opacity:1"
+ offset="1"
+ id="stop3863-5" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4655-7"
+ id="linearGradient4661-4"
+ x1="6.8551636"
+ y1="6.6672974"
+ x2="7.1051636"
+ y2="9.8606262"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient4655-7">
+ <stop
+ style="stop-color:#ce5c00;stop-opacity:1;"
+ offset="0"
+ id="stop4657-9" />
+ <stop
+ style="stop-color:#914100;stop-opacity:1"
+ offset="1"
+ id="stop4659-9" />
+ </linearGradient>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="7.4845183"
+ inkscape:cy="6.6249627"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1-3"
+ showgrid="true"
+ borderlayer="true"
+ inkscape:showpageshadow="false"
+ inkscape:window-width="1373"
+ inkscape:window-height="1035"
+ inkscape:window-x="1600"
+ inkscape:window-y="223"
+ inkscape:window-maximized="0"
+ inkscape:snap-nodes="false"
+ inkscape:snap-bbox="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid4084"
+ empspacing="5"
+ visible="true"
+ enabled="true"
+ snapvisiblegridlinesonly="true" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata819">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <g
+ transform="translate(-1.7396303e-6,0.02325995)"
+ id="layer1-3"
+ inkscape:label="Layer 1">
+ <g
+ style="enable-background:new"
+ id="g16853-5"
+ transform="translate(410.00739,765.00002)" />
+ <g
+ inkscape:label="Layer 1"
+ id="g4663-3"
+ transform="translate(-3.0064635e-6,4.0976101e-7)">
+ <g
+ transform="translate(410.00739,765.00002)"
+ id="g4665-1"
+ style="enable-background:new">
+ <rect
+ ry="1.6105907"
+ rx="1.6105907"
+ y="-285.86218"
+ x="-409.50739"
+ height="11.023263"
+ width="11.042357"
+ id="rect5052"
+ style="opacity:0.1;color:#000000;fill:none;stroke:#ffffff;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ transform="scale(1,-1)" />
+ <rect
+ transform="scale(1,-1)"
+ style="color:#000000;fill:url(#linearGradient4677-3);fill-opacity:1;fill-rule:nonzero;stroke:#131516;stroke-width:1;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect4667-0"
+ width="11.042357"
+ height="11.023263"
+ x="-409.50739"
+ y="-284.86218"
+ rx="1.6105907"
+ ry="1.6105907" />
+ </g>
+ <g
+ transform="translate(-1568.9928,841.00002)"
+ id="g4669-6"
+ style="display:inline;enable-background:new" />
+ </g>
+ </g>
+ </g>
+</svg>
diff --git a/gtk3/theme/assets/checkbox-unchecked-insensitive-dark.svg b/gtk3/theme/assets/checkbox-unchecked-insensitive-dark.svg
new file mode 100644
index 0000000..982c566
--- /dev/null
+++ b/gtk3/theme/assets/checkbox-unchecked-insensitive-dark.svg
@@ -0,0 +1,208 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ id="svg814"
+ version="1.1"
+ inkscape:version="0.48.1 r9760"
+ sodipodi:docname="checkbox-checked-insensitive-dark.svg">
+ <defs
+ id="defs816">
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient24133"
+ id="linearGradient8394"
+ gradientUnits="userSpaceOnUse"
+ x1="1582.125"
+ y1="201.98718"
+ x2="1580.5312"
+ y2="197.98718" />
+ <linearGradient
+ id="linearGradient24133"
+ inkscape:collect="always">
+ <stop
+ id="stop24135"
+ offset="0"
+ style="stop-color:#145393;stop-opacity:1;" />
+ <stop
+ id="stop24137"
+ offset="1"
+ style="stop-color:#1b6fc5;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient10354-2"
+ id="linearGradient8378"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-1609.9926,-78.958432)"
+ x1="1205.5752"
+ y1="-186.45331"
+ x2="1205.5752"
+ y2="-202.34555" />
+ <linearGradient
+ id="linearGradient10354-2"
+ inkscape:collect="always">
+ <stop
+ id="stop10356-2"
+ offset="0"
+ style="stop-color:#bcbfb8;stop-opacity:1" />
+ <stop
+ id="stop10358-2"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient10332-5"
+ id="linearGradient8380"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.84941206,0,0,0.84794288,-623.98415,-483.16392)"
+ x1="260.92538"
+ y1="233.77748"
+ x2="260.92538"
+ y2="248.97633" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient10332-5">
+ <stop
+ style="stop-color:#d3d7cf;stop-opacity:1"
+ offset="0"
+ id="stop10334-5" />
+ <stop
+ style="stop-color:#8f9985;stop-opacity:1"
+ offset="1"
+ id="stop10336-29" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient24133-1"
+ id="linearGradient8394-1"
+ gradientUnits="userSpaceOnUse"
+ x1="1582.125"
+ y1="201.98718"
+ x2="1580.5312"
+ y2="197.98718"
+ gradientTransform="translate(0,-20)" />
+ <linearGradient
+ id="linearGradient24133-1"
+ inkscape:collect="always">
+ <stop
+ id="stop24135-6"
+ offset="0"
+ style="stop-color:#145393;stop-opacity:1;" />
+ <stop
+ id="stop24137-2"
+ offset="1"
+ style="stop-color:#1b6fc5;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient24133-9"
+ id="linearGradient8394-11"
+ gradientUnits="userSpaceOnUse"
+ x1="1582.125"
+ y1="201.98718"
+ x2="1580.5312"
+ y2="197.98718" />
+ <linearGradient
+ id="linearGradient24133-9"
+ inkscape:collect="always">
+ <stop
+ id="stop24135-1"
+ offset="0"
+ style="stop-color:#145393;stop-opacity:1;" />
+ <stop
+ id="stop24137-3"
+ offset="1"
+ style="stop-color:#1b6fc5;stop-opacity:1" />
+ </linearGradient>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="7.4845183"
+ inkscape:cy="6.6249627"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1-96"
+ showgrid="true"
+ borderlayer="true"
+ inkscape:showpageshadow="false"
+ inkscape:window-width="1373"
+ inkscape:window-height="1035"
+ inkscape:window-x="1667"
+ inkscape:window-y="103"
+ inkscape:window-maximized="0"
+ inkscape:snap-nodes="false"
+ inkscape:snap-bbox="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid4084"
+ empspacing="5"
+ visible="true"
+ enabled="true"
+ snapvisiblegridlinesonly="true" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata819">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <g
+ transform="translate(-1.7396303e-6,0.02325995)"
+ id="layer1-3"
+ inkscape:label="Layer 1">
+ <g
+ style="enable-background:new"
+ id="g16853-5"
+ transform="translate(410.00739,765.00002)" />
+ <g
+ transform="translate(-3.0064634e-6,-0.03618995)"
+ id="layer1-96"
+ inkscape:label="Layer 1"
+ style="stroke:#717171;stroke-opacity:1">
+ <g
+ transform="translate(410.00739,765.05452)"
+ id="g16895"
+ style="opacity:0.5;stroke:#717171;stroke-opacity:1;enable-background:new">
+ <rect
+ transform="scale(1,-1)"
+ style="color:#000000;fill:none;stroke:#717171;stroke-width:1;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect16897"
+ width="11.042357"
+ height="11.023263"
+ x="-409.50739"
+ y="-284.86218"
+ rx="1.6105907"
+ ry="1.6105907" />
+ </g>
+ </g>
+ </g>
+ </g>
+</svg>
diff --git a/gtk3/theme/assets/checkbox-unchecked-insensitive.svg b/gtk3/theme/assets/checkbox-unchecked-insensitive.svg
new file mode 100644
index 0000000..d5a6bd6
--- /dev/null
+++ b/gtk3/theme/assets/checkbox-unchecked-insensitive.svg
@@ -0,0 +1,149 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ id="svg814"
+ version="1.1"
+ inkscape:version="0.48+devel r10053 custom"
+ sodipodi:docname="checkbox-checked-insensitive.svg">
+ <defs
+ id="defs816">
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient10354-2"
+ id="linearGradient8378"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-1609.9926,-78.958432)"
+ x1="1205.5752"
+ y1="-186.45331"
+ x2="1205.5752"
+ y2="-202.34555" />
+ <linearGradient
+ id="linearGradient10354-2"
+ inkscape:collect="always">
+ <stop
+ id="stop10356-2"
+ offset="0"
+ style="stop-color:#bcbfb8;stop-opacity:1" />
+ <stop
+ id="stop10358-2"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient10332-5"
+ id="linearGradient8380"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.84941206,0,0,0.84794288,-623.98415,-483.16392)"
+ x1="260.92538"
+ y1="233.77748"
+ x2="260.92538"
+ y2="248.97633" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient10332-5">
+ <stop
+ style="stop-color:#d3d7cf;stop-opacity:1"
+ offset="0"
+ id="stop10334-5" />
+ <stop
+ style="stop-color:#8f9985;stop-opacity:1"
+ offset="1"
+ id="stop10336-29" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient10332-5-8"
+ id="linearGradient8390"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.84941206,0,0,0.84794288,-623.98415,-483.16392)"
+ x1="260.92538"
+ y1="233.77748"
+ x2="260.92538"
+ y2="248.97633" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient10332-5-8">
+ <stop
+ style="stop-color:#d3d7cf;stop-opacity:1"
+ offset="0"
+ id="stop10334-5-6" />
+ <stop
+ style="stop-color:#8f9985;stop-opacity:1"
+ offset="1"
+ id="stop10336-29-0" />
+ </linearGradient>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="7.1381674"
+ inkscape:cy="8.4772276"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ borderlayer="true"
+ inkscape:showpageshadow="false"
+ inkscape:window-width="981"
+ inkscape:window-height="899"
+ inkscape:window-x="1600"
+ inkscape:window-y="0"
+ inkscape:window-maximized="0">
+ <inkscape:grid
+ type="xygrid"
+ id="grid4084"
+ empspacing="5"
+ visible="true"
+ enabled="true"
+ snapvisiblegridlinesonly="true" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata819">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <g
+ style="opacity:0.5;enable-background:new"
+ id="g16895"
+ transform="translate(410.00739,765.05452)">
+ <rect
+ ry="1.6105907"
+ rx="1.6105907"
+ y="-284.86218"
+ x="-409.50739"
+ height="11.023263"
+ width="11.042357"
+ id="rect16897"
+ style="color:#000000;fill:none;stroke:url(#linearGradient8390);stroke-width:1;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ transform="scale(1,-1)" />
+ </g>
+ </g>
+</svg>
diff --git a/gtk3/theme/assets/checkbox-unchecked.svg b/gtk3/theme/assets/checkbox-unchecked.svg
new file mode 100644
index 0000000..42760cb
--- /dev/null
+++ b/gtk3/theme/assets/checkbox-unchecked.svg
@@ -0,0 +1,168 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ id="svg814"
+ version="1.1"
+ inkscape:version="0.48+devel r10053 custom"
+ sodipodi:docname="checkbox-checked-scalable.svg">
+ <defs
+ id="defs816">
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient24133"
+ id="linearGradient8394"
+ gradientUnits="userSpaceOnUse"
+ x1="1582.125"
+ y1="201.98718"
+ x2="1580.5312"
+ y2="197.98718" />
+ <linearGradient
+ id="linearGradient24133"
+ inkscape:collect="always">
+ <stop
+ id="stop24135"
+ offset="0"
+ style="stop-color:#145393;stop-opacity:1;" />
+ <stop
+ id="stop24137"
+ offset="1"
+ style="stop-color:#1b6fc5;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient10354-2"
+ id="linearGradient8378"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-1609.9926,-78.958432)"
+ x1="1205.5752"
+ y1="-186.45331"
+ x2="1205.5752"
+ y2="-202.34555" />
+ <linearGradient
+ id="linearGradient10354-2"
+ inkscape:collect="always">
+ <stop
+ id="stop10356-2"
+ offset="0"
+ style="stop-color:#bcbfb8;stop-opacity:1" />
+ <stop
+ id="stop10358-2"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient10332-5"
+ id="linearGradient8380"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.84941206,0,0,0.84794288,-623.98415,-483.16392)"
+ x1="260.92538"
+ y1="233.77748"
+ x2="260.92538"
+ y2="248.97633" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient10332-5">
+ <stop
+ style="stop-color:#d3d7cf;stop-opacity:1"
+ offset="0"
+ id="stop10334-5" />
+ <stop
+ style="stop-color:#8f9985;stop-opacity:1"
+ offset="1"
+ id="stop10336-29" />
+ </linearGradient>
+ <linearGradient
+ y2="-202.34555"
+ x2="1205.5752"
+ y1="-186.45331"
+ x1="1205.5752"
+ gradientTransform="translate(-1609.9926,-78.958432)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3951"
+ xlink:href="#linearGradient10354-2"
+ inkscape:collect="always" />
+ <linearGradient
+ y2="248.97633"
+ x2="260.92538"
+ y1="233.77748"
+ x1="260.92538"
+ gradientTransform="matrix(0.84941206,0,0,0.84794288,-623.98415,-483.16392)"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient3953"
+ xlink:href="#linearGradient10332-5"
+ inkscape:collect="always" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="7.1381674"
+ inkscape:cy="8.4772276"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ borderlayer="true"
+ inkscape:showpageshadow="false"
+ inkscape:window-width="981"
+ inkscape:window-height="899"
+ inkscape:window-x="1600"
+ inkscape:window-y="0"
+ inkscape:window-maximized="0">
+ <inkscape:grid
+ type="xygrid"
+ id="grid4084"
+ empspacing="5"
+ visible="true"
+ enabled="true"
+ snapvisiblegridlinesonly="true" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata819">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <g
+ transform="translate(410.00739,765.00002)"
+ id="g16853"
+ style="enable-background:new">
+ <rect
+ transform="scale(1,-1)"
+ style="color:#000000;fill:url(#linearGradient3951);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient3953);stroke-width:1;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect6506"
+ width="11.042357"
+ height="11.023263"
+ x="-409.50739"
+ y="-284.86218"
+ rx="1.6105907"
+ ry="1.6105907" />
+ </g>
+ </g>
+</svg>
diff --git a/gtk3/theme/assets/radio-mixed-dark.svg b/gtk3/theme/assets/radio-mixed-dark.svg
new file mode 100644
index 0000000..e33a89a
--- /dev/null
+++ b/gtk3/theme/assets/radio-mixed-dark.svg
@@ -0,0 +1,426 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ id="svg814"
+ version="1.1"
+ inkscape:version="0.48.1 r9760"
+ sodipodi:docname="radio-mixed.svg">
+ <defs
+ id="defs816">
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient10354-2"
+ id="linearGradient8378"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-1609.9926,-78.958432)"
+ x1="1205.5752"
+ y1="-186.45331"
+ x2="1205.5752"
+ y2="-202.34555" />
+ <linearGradient
+ id="linearGradient10354-2"
+ inkscape:collect="always">
+ <stop
+ id="stop10356-2"
+ offset="0"
+ style="stop-color:#bcbfb8;stop-opacity:1" />
+ <stop
+ id="stop10358-2"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient10332-5"
+ id="linearGradient8380"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.84941206,0,0,0.84794288,-623.98415,-483.16392)"
+ x1="260.92538"
+ y1="233.77748"
+ x2="260.92538"
+ y2="248.97633" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient10332-5">
+ <stop
+ style="stop-color:#d3d7cf;stop-opacity:1"
+ offset="0"
+ id="stop10334-5" />
+ <stop
+ style="stop-color:#8f9985;stop-opacity:1"
+ offset="1"
+ id="stop10336-29" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11577-0-5-0-2"
+ id="linearGradient8358"
+ gradientUnits="userSpaceOnUse"
+ x1="662.53418"
+ y1="249.29141"
+ x2="662.53418"
+ y2="262.49979" />
+ <linearGradient
+ id="linearGradient11577-0-5-0-2"
+ inkscape:collect="always">
+ <stop
+ id="stop11579-5-6-7-4"
+ offset="0"
+ style="stop-color:#d3d7cf;stop-opacity:1;" />
+ <stop
+ id="stop11581-8-0-0-9"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12415-4-1-5"
+ id="linearGradient8360"
+ gradientUnits="userSpaceOnUse"
+ x1="664.26984"
+ y1="261.44751"
+ x2="664.26984"
+ y2="248.05356" />
+ <linearGradient
+ id="linearGradient12415-4-1-5"
+ inkscape:collect="always">
+ <stop
+ id="stop12417-2-8-0"
+ offset="0"
+ style="stop-color:#d3d7cf;stop-opacity:1;" />
+ <stop
+ id="stop12419-5-0-9"
+ offset="1"
+ style="stop-color:#8f9985;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11623-4-5-4"
+ id="linearGradient8362"
+ gradientUnits="userSpaceOnUse"
+ x1="661.04559"
+ y1="251.6946"
+ x2="661.04559"
+ y2="258.26358" />
+ <linearGradient
+ id="linearGradient11623-4-5-4"
+ inkscape:collect="always">
+ <stop
+ id="stop11625-5-6-0"
+ offset="0"
+ style="stop-color:#2e87e3;stop-opacity:1" />
+ <stop
+ id="stop11627-4-4-9"
+ offset="1"
+ style="stop-color:#76b0ec;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12387-1-5"
+ id="linearGradient8364"
+ gradientUnits="userSpaceOnUse"
+ x1="662.26074"
+ y1="251.66537"
+ x2="662.26074"
+ y2="259.77792" />
+ <linearGradient
+ id="linearGradient12387-1-5"
+ inkscape:collect="always">
+ <stop
+ id="stop12389-7-2"
+ offset="0"
+ style="stop-color:#1b6fc5;stop-opacity:1;" />
+ <stop
+ id="stop12391-1-4"
+ offset="1"
+ style="stop-color:#145393;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11553-0-7-9"
+ id="linearGradient8366"
+ gradientUnits="userSpaceOnUse"
+ x1="660.16144"
+ y1="246.69635"
+ x2="660.27411"
+ y2="260.70532" />
+ <linearGradient
+ id="linearGradient11553-0-7-9">
+ <stop
+ id="stop11555-5-9-8"
+ offset="0"
+ style="stop-color:#ffffff;stop-opacity:1;" />
+ <stop
+ id="stop11557-1-9-0"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:0;" />
+ </linearGradient>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12405-7"
+ id="radialGradient8368"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4685542,0,0,2.2820942,-309.65132,-324.35943)"
+ cx="660.8656"
+ cy="251.41324"
+ fx="660.8656"
+ fy="251.41324"
+ r="5.0290799" />
+ <linearGradient
+ id="linearGradient12405-7"
+ inkscape:collect="always">
+ <stop
+ id="stop12407-9"
+ offset="0"
+ style="stop-color:#000000;stop-opacity:1;" />
+ <stop
+ id="stop12409-7"
+ offset="1"
+ style="stop-color:#000000;stop-opacity:0;" />
+ </linearGradient>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12692-5-0"
+ id="radialGradient8370"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.4143887,0,0,1.7213698,-937.76662,-194.09437)"
+ cx="663.01904"
+ cy="269.82831"
+ fx="663.01904"
+ fy="269.82831"
+ r="2.3864853" />
+ <linearGradient
+ id="linearGradient12692-5-0"
+ inkscape:collect="always">
+ <stop
+ id="stop12694-4-1"
+ offset="0"
+ style="stop-color:#ffffff;stop-opacity:1;" />
+ <stop
+ id="stop12696-5-2"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:0;" />
+ </linearGradient>
+ <radialGradient
+ r="2.3864853"
+ fy="269.82831"
+ fx="663.01904"
+ cy="269.82831"
+ cx="663.01904"
+ gradientTransform="matrix(2.4143887,0,0,1.7213698,-937.76662,-194.09437)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient5029"
+ xlink:href="#linearGradient12692-5-0"
+ inkscape:collect="always" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7346"
+ id="linearGradient7352"
+ x1="5.65625"
+ y1="6.390625"
+ x2="5.65625"
+ y2="9.828125"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient7346">
+ <stop
+ style="stop-color:#1969ba;stop-opacity:1"
+ offset="0"
+ id="stop7348" />
+ <stop
+ style="stop-color:#145393;stop-opacity:1"
+ offset="1"
+ id="stop7350" />
+ </linearGradient>
+ <linearGradient
+ gradientTransform="translate(1033.0001,265.99998)"
+ y2="9.828125"
+ x2="5.65625"
+ y1="6.390625"
+ x1="5.65625"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient119"
+ xlink:href="#linearGradient7346"
+ inkscape:collect="always" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3859-5"
+ id="linearGradient5110"
+ gradientUnits="userSpaceOnUse"
+ x1="658.5564"
+ y1="257.04449"
+ x2="658.5564"
+ y2="247.62109" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3859-5">
+ <stop
+ style="stop-color:#282828;stop-opacity:1;"
+ offset="0"
+ id="stop3861-2" />
+ <stop
+ style="stop-color:#151515;stop-opacity:1"
+ offset="1"
+ id="stop3863-6" />
+ </linearGradient>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4631"
+ id="radialGradient5112"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.055689,-0.04454196,0.00708427,1.6887546,-2020.4687,-144.9433)"
+ cx="660.6142"
+ cy="251.41986"
+ fx="660.6142"
+ fy="251.41986"
+ r="5.0290799" />
+ <linearGradient
+ id="linearGradient4631"
+ inkscape:collect="always">
+ <stop
+ id="stop4633"
+ offset="0"
+ style="stop-color:#000000;stop-opacity:1" />
+ <stop
+ id="stop4635"
+ offset="1"
+ style="stop-color:#000000;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ gradientTransform="translate(1033.0313,266)"
+ y2="9.8606262"
+ x2="7.1051636"
+ y1="6.6672974"
+ x1="6.8551636"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5130"
+ xlink:href="#linearGradient4655-7-9"
+ inkscape:collect="always" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient4655-7-9">
+ <stop
+ style="stop-color:#ce5c00;stop-opacity:1;"
+ offset="0"
+ id="stop4657-9-3" />
+ <stop
+ style="stop-color:#914100;stop-opacity:1"
+ offset="1"
+ id="stop4659-9-4" />
+ </linearGradient>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="11.495914"
+ inkscape:cy="7.2986073"
+ inkscape:document-units="px"
+ inkscape:current-layer="g6305"
+ showgrid="true"
+ borderlayer="true"
+ inkscape:showpageshadow="false"
+ inkscape:window-width="1180"
+ inkscape:window-height="950"
+ inkscape:window-x="1600"
+ inkscape:window-y="166"
+ inkscape:window-maximized="0"
+ inkscape:snap-nodes="false"
+ inkscape:snap-bbox="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid4084"
+ empspacing="5"
+ visible="true"
+ enabled="true"
+ snapvisiblegridlinesonly="true" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata819">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <g
+ transform="translate(-1031,770.36221)"
+ id="g6305"
+ style="display:inline;enable-background:new">
+ <g
+ transform="translate(3.7481965e-5,-1.1707725e-5)"
+ id="g5102"
+ style="display:inline;enable-background:new">
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.1;color:#000000;fill:none;stroke:#ffffff;stroke-width:0.88215655;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path5104"
+ sodipodi:cx="660.96808"
+ sodipodi:cy="255.0668"
+ sodipodi:rx="4.5078058"
+ sodipodi:ry="7.2937827"
+ d="m 665.47588,255.0668 c 0,4.02825 -2.01821,7.29379 -4.5078,7.29379 -2.48959,0 -4.50781,-3.26554 -4.50781,-7.29379 0,-4.02824 2.01822,-7.29378 4.50781,-7.29378 2.48959,0 4.5078,3.26554 4.5078,7.29378 z"
+ transform="matrix(1.4419436,0,0,0.89116967,85.92127,47.692201)" />
+ <path
+ transform="matrix(1.4419436,0,0,0.89116967,85.92127,46.692201)"
+ d="m 665.47588,255.0668 c 0,4.02825 -2.01821,7.29379 -4.5078,7.29379 -2.48959,0 -4.50781,-3.26554 -4.50781,-7.29379 0,-4.02824 2.01822,-7.29378 4.50781,-7.29378 2.48959,0 4.5078,3.26554 4.5078,7.29378 z"
+ sodipodi:ry="7.2937827"
+ sodipodi:rx="4.5078058"
+ sodipodi:cy="255.0668"
+ sodipodi:cx="660.96808"
+ id="path5106"
+ style="color:#000000;fill:url(#linearGradient5110);fill-opacity:1;fill-rule:nonzero;stroke:#131516;stroke-width:0.88215655;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.37860083;fill:none;stroke:url(#radialGradient5112);stroke-width:1.04254842;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:100"
+ id="path5108"
+ sodipodi:cx="660.96808"
+ sodipodi:cy="255.0668"
+ sodipodi:rx="4.5078058"
+ sodipodi:ry="7.2937827"
+ d="m 665.47588,255.0668 c 0,4.02825 -2.01821,7.29379 -4.5078,7.29379 -2.48959,0 -4.50781,-3.26554 -4.50781,-7.29379 0,-4.02824 2.01822,-7.29378 4.50781,-7.29378 2.48959,0 4.5078,3.26554 4.5078,7.29378 z"
+ transform="matrix(1.2201064,0,0,0.75406683,232.54855,81.662583)" />
+ <rect
+ ry="1.515625"
+ rx="1.515625"
+ y="272.5"
+ x="1034.5625"
+ height="3.03125"
+ width="8.9375"
+ id="rect5494-6"
+ style="color:#000000;fill:#f57900;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient5130);stroke-width:1;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:113.35856395;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path5496-5"
+ d="m 1035.5625,273.5 6.9375,0"
+ style="opacity:0.50431064;fill:none;stroke:#ffffff;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" />
+ </g>
+ </g>
+ </g>
+</svg>
diff --git a/gtk3/theme/assets/radio-mixed.svg b/gtk3/theme/assets/radio-mixed.svg
new file mode 100644
index 0000000..5a5658f
--- /dev/null
+++ b/gtk3/theme/assets/radio-mixed.svg
@@ -0,0 +1,343 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ id="svg814"
+ version="1.1"
+ inkscape:version="0.48+devel r10053 custom"
+ sodipodi:docname="radio-unselected.svg">
+ <defs
+ id="defs816">
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient10354-2"
+ id="linearGradient8378"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-1609.9926,-78.958432)"
+ x1="1205.5752"
+ y1="-186.45331"
+ x2="1205.5752"
+ y2="-202.34555" />
+ <linearGradient
+ id="linearGradient10354-2"
+ inkscape:collect="always">
+ <stop
+ id="stop10356-2"
+ offset="0"
+ style="stop-color:#bcbfb8;stop-opacity:1" />
+ <stop
+ id="stop10358-2"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient10332-5"
+ id="linearGradient8380"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.84941206,0,0,0.84794288,-623.98415,-483.16392)"
+ x1="260.92538"
+ y1="233.77748"
+ x2="260.92538"
+ y2="248.97633" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient10332-5">
+ <stop
+ style="stop-color:#d3d7cf;stop-opacity:1"
+ offset="0"
+ id="stop10334-5" />
+ <stop
+ style="stop-color:#8f9985;stop-opacity:1"
+ offset="1"
+ id="stop10336-29" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11577-0-5-0-2"
+ id="linearGradient8358"
+ gradientUnits="userSpaceOnUse"
+ x1="662.53418"
+ y1="249.29141"
+ x2="662.53418"
+ y2="262.49979" />
+ <linearGradient
+ id="linearGradient11577-0-5-0-2"
+ inkscape:collect="always">
+ <stop
+ id="stop11579-5-6-7-4"
+ offset="0"
+ style="stop-color:#d3d7cf;stop-opacity:1;" />
+ <stop
+ id="stop11581-8-0-0-9"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12415-4-1-5"
+ id="linearGradient8360"
+ gradientUnits="userSpaceOnUse"
+ x1="664.26984"
+ y1="261.44751"
+ x2="664.26984"
+ y2="248.05356" />
+ <linearGradient
+ id="linearGradient12415-4-1-5"
+ inkscape:collect="always">
+ <stop
+ id="stop12417-2-8-0"
+ offset="0"
+ style="stop-color:#d3d7cf;stop-opacity:1;" />
+ <stop
+ id="stop12419-5-0-9"
+ offset="1"
+ style="stop-color:#8f9985;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11623-4-5-4"
+ id="linearGradient8362"
+ gradientUnits="userSpaceOnUse"
+ x1="661.04559"
+ y1="251.6946"
+ x2="661.04559"
+ y2="258.26358" />
+ <linearGradient
+ id="linearGradient11623-4-5-4"
+ inkscape:collect="always">
+ <stop
+ id="stop11625-5-6-0"
+ offset="0"
+ style="stop-color:#2e87e3;stop-opacity:1" />
+ <stop
+ id="stop11627-4-4-9"
+ offset="1"
+ style="stop-color:#76b0ec;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12387-1-5"
+ id="linearGradient8364"
+ gradientUnits="userSpaceOnUse"
+ x1="662.26074"
+ y1="251.66537"
+ x2="662.26074"
+ y2="259.77792" />
+ <linearGradient
+ id="linearGradient12387-1-5"
+ inkscape:collect="always">
+ <stop
+ id="stop12389-7-2"
+ offset="0"
+ style="stop-color:#1b6fc5;stop-opacity:1;" />
+ <stop
+ id="stop12391-1-4"
+ offset="1"
+ style="stop-color:#145393;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11553-0-7-9"
+ id="linearGradient8366"
+ gradientUnits="userSpaceOnUse"
+ x1="660.16144"
+ y1="246.69635"
+ x2="660.27411"
+ y2="260.70532" />
+ <linearGradient
+ id="linearGradient11553-0-7-9">
+ <stop
+ id="stop11555-5-9-8"
+ offset="0"
+ style="stop-color:#ffffff;stop-opacity:1;" />
+ <stop
+ id="stop11557-1-9-0"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:0;" />
+ </linearGradient>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12405-7"
+ id="radialGradient8368"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4685542,0,0,2.2820942,-309.65132,-324.35943)"
+ cx="660.8656"
+ cy="251.41324"
+ fx="660.8656"
+ fy="251.41324"
+ r="5.0290799" />
+ <linearGradient
+ id="linearGradient12405-7"
+ inkscape:collect="always">
+ <stop
+ id="stop12407-9"
+ offset="0"
+ style="stop-color:#000000;stop-opacity:1;" />
+ <stop
+ id="stop12409-7"
+ offset="1"
+ style="stop-color:#000000;stop-opacity:0;" />
+ </linearGradient>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12692-5-0"
+ id="radialGradient8370"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.4143887,0,0,1.7213698,-937.76662,-194.09437)"
+ cx="663.01904"
+ cy="269.82831"
+ fx="663.01904"
+ fy="269.82831"
+ r="2.3864853" />
+ <linearGradient
+ id="linearGradient12692-5-0"
+ inkscape:collect="always">
+ <stop
+ id="stop12694-4-1"
+ offset="0"
+ style="stop-color:#ffffff;stop-opacity:1;" />
+ <stop
+ id="stop12696-5-2"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:0;" />
+ </linearGradient>
+ <radialGradient
+ r="2.3864853"
+ fy="269.82831"
+ fx="663.01904"
+ cy="269.82831"
+ cx="663.01904"
+ gradientTransform="matrix(2.4143887,0,0,1.7213698,-937.76662,-194.09437)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient5029"
+ xlink:href="#linearGradient12692-5-0"
+ inkscape:collect="always" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7346"
+ id="linearGradient7352"
+ x1="5.65625"
+ y1="6.390625"
+ x2="5.65625"
+ y2="9.828125"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient7346">
+ <stop
+ style="stop-color:#1969ba;stop-opacity:1"
+ offset="0"
+ id="stop7348" />
+ <stop
+ style="stop-color:#145393;stop-opacity:1"
+ offset="1"
+ id="stop7350" />
+ </linearGradient>
+ <linearGradient
+ gradientTransform="translate(1033.0001,265.99998)"
+ y2="9.828125"
+ x2="5.65625"
+ y1="6.390625"
+ x1="5.65625"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient119"
+ xlink:href="#linearGradient7346"
+ inkscape:collect="always" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1"
+ inkscape:cx="38.155252"
+ inkscape:cy="2.4242657"
+ inkscape:document-units="px"
+ inkscape:current-layer="g6305"
+ showgrid="false"
+ borderlayer="true"
+ inkscape:showpageshadow="false"
+ inkscape:window-width="1180"
+ inkscape:window-height="950"
+ inkscape:window-x="2306"
+ inkscape:window-y="143"
+ inkscape:window-maximized="0">
+ <inkscape:grid
+ type="xygrid"
+ id="grid4084"
+ empspacing="5"
+ visible="true"
+ enabled="true"
+ snapvisiblegridlinesonly="true" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata819">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <g
+ transform="translate(-1031,770.36221)"
+ id="g6305"
+ style="display:inline;enable-background:new">
+ <path
+ transform="matrix(1.4419436,0,0,0.89116967,85.92127,46.692201)"
+ d="m 665.47588,255.0668 c 0,4.02825 -2.01821,7.29379 -4.5078,7.29379 -2.48959,0 -4.50781,-3.26554 -4.50781,-7.29379 0,-4.02824 2.01822,-7.29378 4.50781,-7.29378 2.48959,0 4.5078,3.26554 4.5078,7.29378 z"
+ sodipodi:ry="7.2937827"
+ sodipodi:rx="4.5078058"
+ sodipodi:cy="255.0668"
+ sodipodi:cx="660.96808"
+ id="path6307"
+ style="color:#000000;fill:url(#linearGradient8358);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient8360);stroke-width:0.88215655;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:100;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.12955466;fill:none;stroke:url(#radialGradient8368);stroke-width:1.04254842;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:100"
+ id="path6313"
+ sodipodi:cx="660.96808"
+ sodipodi:cy="255.0668"
+ sodipodi:rx="4.5078058"
+ sodipodi:ry="7.2937827"
+ d="m 665.47588,255.0668 c 0,4.02825 -2.01821,7.29379 -4.5078,7.29379 -2.48959,0 -4.50781,-3.26554 -4.50781,-7.29379 0,-4.02824 2.01822,-7.29378 4.50781,-7.29378 2.48959,0 4.5078,3.26554 4.5078,7.29378 z"
+ transform="matrix(1.2201064,0,0,0.75406683,232.54855,81.662583)" />
+ <rect
+ style="color:#000000;fill:#4588ca;fill-opacity:0.98823529;fill-rule:nonzero;stroke:url(#linearGradient119);stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect5494"
+ width="8.9375"
+ height="3.03125"
+ x="1034.5312"
+ y="272.5"
+ rx="1.515625"
+ ry="1.515625" />
+ <path
+ style="opacity:0.50431064;fill:none;stroke:#ffffff;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 1035.5313,273.56248 6.9375,0"
+ id="path5496"
+ inkscape:connector-curvature="0" />
+ </g>
+ </g>
+</svg>
diff --git a/gtk3/theme/assets/radio-selected-dark.svg b/gtk3/theme/assets/radio-selected-dark.svg
new file mode 100644
index 0000000..caafcc9
--- /dev/null
+++ b/gtk3/theme/assets/radio-selected-dark.svg
@@ -0,0 +1,539 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ id="svg814"
+ version="1.1"
+ inkscape:version="0.48.1 r9760"
+ sodipodi:docname="radio-unselected-dark.svg">
+ <defs
+ id="defs816">
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient10354-2"
+ id="linearGradient8378"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-1609.9926,-78.958432)"
+ x1="1205.5752"
+ y1="-186.45331"
+ x2="1205.5752"
+ y2="-202.34555" />
+ <linearGradient
+ id="linearGradient10354-2"
+ inkscape:collect="always">
+ <stop
+ id="stop10356-2"
+ offset="0"
+ style="stop-color:#bcbfb8;stop-opacity:1" />
+ <stop
+ id="stop10358-2"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient10332-5"
+ id="linearGradient8380"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.84941206,0,0,0.84794288,-623.98415,-483.16392)"
+ x1="260.92538"
+ y1="233.77748"
+ x2="260.92538"
+ y2="248.97633" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient10332-5">
+ <stop
+ style="stop-color:#d3d7cf;stop-opacity:1"
+ offset="0"
+ id="stop10334-5" />
+ <stop
+ style="stop-color:#8f9985;stop-opacity:1"
+ offset="1"
+ id="stop10336-29" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11577-0-5-0-2"
+ id="linearGradient8358"
+ gradientUnits="userSpaceOnUse"
+ x1="662.53418"
+ y1="249.29141"
+ x2="662.53418"
+ y2="262.49979" />
+ <linearGradient
+ id="linearGradient11577-0-5-0-2"
+ inkscape:collect="always">
+ <stop
+ id="stop11579-5-6-7-4"
+ offset="0"
+ style="stop-color:#d3d7cf;stop-opacity:1;" />
+ <stop
+ id="stop11581-8-0-0-9"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12415-4-1-5"
+ id="linearGradient8360"
+ gradientUnits="userSpaceOnUse"
+ x1="664.26984"
+ y1="261.44751"
+ x2="664.26984"
+ y2="248.05356" />
+ <linearGradient
+ id="linearGradient12415-4-1-5"
+ inkscape:collect="always">
+ <stop
+ id="stop12417-2-8-0"
+ offset="0"
+ style="stop-color:#d3d7cf;stop-opacity:1;" />
+ <stop
+ id="stop12419-5-0-9"
+ offset="1"
+ style="stop-color:#8f9985;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11623-4-5-4"
+ id="linearGradient8362"
+ gradientUnits="userSpaceOnUse"
+ x1="661.04559"
+ y1="251.6946"
+ x2="661.04559"
+ y2="258.26358" />
+ <linearGradient
+ id="linearGradient11623-4-5-4"
+ inkscape:collect="always">
+ <stop
+ id="stop11625-5-6-0"
+ offset="0"
+ style="stop-color:#2e87e3;stop-opacity:1" />
+ <stop
+ id="stop11627-4-4-9"
+ offset="1"
+ style="stop-color:#76b0ec;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12387-1-5"
+ id="linearGradient8364"
+ gradientUnits="userSpaceOnUse"
+ x1="662.26074"
+ y1="251.66537"
+ x2="662.26074"
+ y2="259.77792" />
+ <linearGradient
+ id="linearGradient12387-1-5"
+ inkscape:collect="always">
+ <stop
+ id="stop12389-7-2"
+ offset="0"
+ style="stop-color:#1b6fc5;stop-opacity:1;" />
+ <stop
+ id="stop12391-1-4"
+ offset="1"
+ style="stop-color:#145393;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11553-0-7-9"
+ id="linearGradient8366"
+ gradientUnits="userSpaceOnUse"
+ x1="660.16144"
+ y1="246.69635"
+ x2="660.27411"
+ y2="260.70532" />
+ <linearGradient
+ id="linearGradient11553-0-7-9">
+ <stop
+ id="stop11555-5-9-8"
+ offset="0"
+ style="stop-color:#ffffff;stop-opacity:1;" />
+ <stop
+ id="stop11557-1-9-0"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:0;" />
+ </linearGradient>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12405-7"
+ id="radialGradient8368"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4685542,0,0,2.2820942,-309.65132,-324.35943)"
+ cx="660.8656"
+ cy="251.41324"
+ fx="660.8656"
+ fy="251.41324"
+ r="5.0290799" />
+ <linearGradient
+ id="linearGradient12405-7"
+ inkscape:collect="always">
+ <stop
+ id="stop12407-9"
+ offset="0"
+ style="stop-color:#000000;stop-opacity:1;" />
+ <stop
+ id="stop12409-7"
+ offset="1"
+ style="stop-color:#000000;stop-opacity:0;" />
+ </linearGradient>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12692-5-0"
+ id="radialGradient8370"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.4143887,0,0,1.7213698,-937.76662,-194.09437)"
+ cx="663.01904"
+ cy="269.82831"
+ fx="663.01904"
+ fy="269.82831"
+ r="2.3864853" />
+ <linearGradient
+ id="linearGradient12692-5-0"
+ inkscape:collect="always">
+ <stop
+ id="stop12694-4-1"
+ offset="0"
+ style="stop-color:#ffffff;stop-opacity:1;" />
+ <stop
+ id="stop12696-5-2"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:0;" />
+ </linearGradient>
+ <radialGradient
+ r="2.3864853"
+ fy="269.82831"
+ fx="663.01904"
+ cy="269.82831"
+ cx="663.01904"
+ gradientTransform="matrix(2.4143887,0,0,1.7213698,-937.76662,-194.09437)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient5029"
+ xlink:href="#linearGradient12692-5-0"
+ inkscape:collect="always" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7346"
+ id="linearGradient7352"
+ x1="5.65625"
+ y1="6.390625"
+ x2="5.65625"
+ y2="9.828125"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient7346">
+ <stop
+ style="stop-color:#1969ba;stop-opacity:1"
+ offset="0"
+ id="stop7348" />
+ <stop
+ style="stop-color:#145393;stop-opacity:1"
+ offset="1"
+ id="stop7350" />
+ </linearGradient>
+ <linearGradient
+ gradientTransform="translate(1033.0001,265.99998)"
+ y2="9.828125"
+ x2="5.65625"
+ y1="6.390625"
+ x1="5.65625"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient119"
+ xlink:href="#linearGradient7346"
+ inkscape:collect="always" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3859-5"
+ id="linearGradient5110"
+ gradientUnits="userSpaceOnUse"
+ x1="658.5564"
+ y1="257.04449"
+ x2="658.5564"
+ y2="247.62109" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3859-5">
+ <stop
+ style="stop-color:#282828;stop-opacity:1;"
+ offset="0"
+ id="stop3861-2" />
+ <stop
+ style="stop-color:#151515;stop-opacity:1"
+ offset="1"
+ id="stop3863-6" />
+ </linearGradient>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4631"
+ id="radialGradient5112"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.055689,-0.04454196,0.00708427,1.6887546,-2020.4687,-144.9433)"
+ cx="660.6142"
+ cy="251.41986"
+ fx="660.6142"
+ fy="251.41986"
+ r="5.0290799" />
+ <linearGradient
+ id="linearGradient4631"
+ inkscape:collect="always">
+ <stop
+ id="stop4633"
+ offset="0"
+ style="stop-color:#000000;stop-opacity:1" />
+ <stop
+ id="stop4635"
+ offset="1"
+ style="stop-color:#000000;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3859-5-9"
+ id="linearGradient3977-7"
+ gradientUnits="userSpaceOnUse"
+ x1="658.5564"
+ y1="257.04449"
+ x2="658.5564"
+ y2="247.62109" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3859-5-9">
+ <stop
+ style="stop-color:#282828;stop-opacity:1;"
+ offset="0"
+ id="stop3861-2-2" />
+ <stop
+ style="stop-color:#151515;stop-opacity:1"
+ offset="1"
+ id="stop3863-6-6" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4655"
+ id="linearGradient4661"
+ x1="661.60516"
+ y1="251.4173"
+ x2="661.60516"
+ y2="262.36063"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient4655">
+ <stop
+ style="stop-color:#ce5c00;stop-opacity:1;"
+ offset="0"
+ id="stop4657" />
+ <stop
+ style="stop-color:#914100;stop-opacity:1"
+ offset="1"
+ id="stop4659" />
+ </linearGradient>
+ <linearGradient
+ y2="260.70532"
+ x2="660.27411"
+ y1="246.69635"
+ x1="660.16144"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient8366-2"
+ xlink:href="#linearGradient11553-0-7-9-9"
+ inkscape:collect="always" />
+ <linearGradient
+ id="linearGradient11553-0-7-9-9">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop11555-5-9-8-4" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop11557-1-9-0-2" />
+ </linearGradient>
+ <radialGradient
+ r="5.0290799"
+ fy="251.41324"
+ fx="660.8656"
+ cy="251.41324"
+ cx="660.8656"
+ gradientTransform="matrix(1.4685542,0,0,2.2820942,-309.65132,-324.35943)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient8368-8"
+ xlink:href="#linearGradient12405-7-3"
+ inkscape:collect="always" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient12405-7-3">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop12407-9-7" />
+ <stop
+ style="stop-color:#000000;stop-opacity:0;"
+ offset="1"
+ id="stop12409-7-4" />
+ </linearGradient>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12692-5-0-9"
+ id="radialGradient5029-2"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.4143887,0,0,1.7213698,-937.76662,-194.09437)"
+ cx="663.01904"
+ cy="269.82831"
+ fx="663.01904"
+ fy="269.82831"
+ r="2.3864853" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient12692-5-0-9">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop12694-4-1-4" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop12696-5-2-3" />
+ </linearGradient>
+ <radialGradient
+ r="2.3864853"
+ fy="269.82831"
+ fx="663.01904"
+ cy="269.82831"
+ cx="663.01904"
+ gradientTransform="matrix(2.4143887,0,0,1.7213698,-937.76662,-194.09437)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient6814"
+ xlink:href="#linearGradient12692-5-0-9"
+ inkscape:collect="always" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="11.495914"
+ inkscape:cy="7.2986073"
+ inkscape:document-units="px"
+ inkscape:current-layer="g6305"
+ showgrid="true"
+ borderlayer="true"
+ inkscape:showpageshadow="false"
+ inkscape:window-width="1180"
+ inkscape:window-height="950"
+ inkscape:window-x="1600"
+ inkscape:window-y="166"
+ inkscape:window-maximized="0"
+ inkscape:snap-nodes="false"
+ inkscape:snap-bbox="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid4084"
+ empspacing="5"
+ visible="true"
+ enabled="true"
+ snapvisiblegridlinesonly="true" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata819">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <g
+ transform="translate(-1031,770.36221)"
+ id="g6305"
+ style="display:inline;enable-background:new">
+ <g
+ transform="translate(4.0996599e-5,-1.1707725e-5)"
+ id="g6305-7"
+ style="display:inline;enable-background:new">
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.1;color:#000000;fill:none;stroke:#ffffff;stroke-width:0.88215655;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path5062"
+ sodipodi:cx="660.96808"
+ sodipodi:cy="255.0668"
+ sodipodi:rx="4.5078058"
+ sodipodi:ry="7.2937827"
+ d="m 665.47588,255.0668 c 0,4.02825 -2.01821,7.29379 -4.5078,7.29379 -2.48959,0 -4.50781,-3.26554 -4.50781,-7.29379 0,-4.02824 2.01822,-7.29378 4.50781,-7.29378 2.48959,0 4.5078,3.26554 4.5078,7.29378 z"
+ transform="matrix(1.4419436,0,0,0.89116967,85.92127,47.692201)" />
+ <path
+ transform="matrix(1.4419436,0,0,0.89116967,85.92127,46.692201)"
+ d="m 665.47588,255.0668 c 0,4.02825 -2.01821,7.29379 -4.5078,7.29379 -2.48959,0 -4.50781,-3.26554 -4.50781,-7.29379 0,-4.02824 2.01822,-7.29378 4.50781,-7.29378 2.48959,0 4.5078,3.26554 4.5078,7.29378 z"
+ sodipodi:ry="7.2937827"
+ sodipodi:rx="4.5078058"
+ sodipodi:cy="255.0668"
+ sodipodi:cx="660.96808"
+ id="path6307"
+ style="color:#000000;fill:url(#linearGradient3977-7);fill-opacity:1;fill-rule:nonzero;stroke:#131516;stroke-width:0.88215655;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:#f57900;fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient4661);stroke-width:1.27423298;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:144.44521581;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path6309"
+ sodipodi:cx="660.96808"
+ sodipodi:cy="255.0668"
+ sodipodi:rx="4.5078058"
+ sodipodi:ry="7.2937827"
+ d="m 665.47588,255.0668 c 0,4.02825 -2.01821,7.29379 -4.5078,7.29379 -2.48959,0 -4.50781,-3.26554 -4.50781,-7.29379 0,-4.02824 2.01822,-7.29378 4.50781,-7.29378 2.48959,0 4.5078,3.26554 4.5078,7.29378 z"
+ transform="matrix(0.99826332,0,0,0.61696032,379.17979,116.6339)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.55465585;fill:none;stroke:url(#linearGradient8366-2);stroke-width:1.63832664;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:100"
+ id="path6311"
+ sodipodi:cx="660.96808"
+ sodipodi:cy="255.0668"
+ sodipodi:rx="4.5078058"
+ sodipodi:ry="7.2937827"
+ d="m 665.47588,255.0668 c 0,4.02825 -2.01821,7.29379 -4.5078,7.29379 -2.48959,0 -4.50781,-3.26554 -4.50781,-7.29379 0,-4.02824 2.01822,-7.29378 4.50781,-7.29378 2.48959,0 4.5078,3.26554 4.5078,7.29378 z"
+ transform="matrix(0.77641414,0,0,-0.47985006,525.81496,396.39382)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.12955466;fill:none;stroke:url(#radialGradient8368-8);stroke-width:1.04254842;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:100"
+ id="path6313"
+ sodipodi:cx="660.96808"
+ sodipodi:cy="255.0668"
+ sodipodi:rx="4.5078058"
+ sodipodi:ry="7.2937827"
+ d="m 665.47588,255.0668 c 0,4.02825 -2.01821,7.29379 -4.5078,7.29379 -2.48959,0 -4.50781,-3.26554 -4.50781,-7.29379 0,-4.02824 2.01822,-7.29378 4.50781,-7.29378 2.48959,0 4.5078,3.26554 4.5078,7.29378 z"
+ transform="matrix(1.2201064,0,0,0.75406683,232.54855,81.662583)" />
+ <path
+ transform="matrix(1.2570829,0,0,1.1611638,205.4417,-43.52207)"
+ d="m 665.47584,271.75009 c 0,0.9397 -1.06847,1.70148 -2.38648,1.70148 -1.31802,0 -2.38649,-0.76178 -2.38649,-1.70148 0,-0.9397 1.06847,-1.70147 2.38649,-1.70147 1.31801,0 2.38648,0.76177 2.38648,1.70147 z"
+ sodipodi:ry="1.7014757"
+ sodipodi:rx="2.3864853"
+ sodipodi:cy="271.75009"
+ sodipodi:cx="663.08936"
+ id="path6315"
+ style="opacity:0.7854251;color:#000000;fill:url(#radialGradient6814);fill-opacity:1;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ </g>
+ </g>
+ </g>
+</svg>
diff --git a/gtk3/theme/assets/radio-selected-insensitive-dark.svg b/gtk3/theme/assets/radio-selected-insensitive-dark.svg
new file mode 100644
index 0000000..5e5768a
--- /dev/null
+++ b/gtk3/theme/assets/radio-selected-insensitive-dark.svg
@@ -0,0 +1,243 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ id="svg814"
+ version="1.1"
+ inkscape:version="0.48.1 r9760"
+ sodipodi:docname="radio-selected-insensitive.svg">
+ <defs
+ id="defs816">
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient10354-2"
+ id="linearGradient8378"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-1609.9926,-78.958432)"
+ x1="1205.5752"
+ y1="-186.45331"
+ x2="1205.5752"
+ y2="-202.34555" />
+ <linearGradient
+ id="linearGradient10354-2"
+ inkscape:collect="always">
+ <stop
+ id="stop10356-2"
+ offset="0"
+ style="stop-color:#bcbfb8;stop-opacity:1" />
+ <stop
+ id="stop10358-2"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient10332-5"
+ id="linearGradient8380"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.84941206,0,0,0.84794288,-623.98415,-483.16392)"
+ x1="260.92538"
+ y1="233.77748"
+ x2="260.92538"
+ y2="248.97633" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient10332-5">
+ <stop
+ style="stop-color:#d3d7cf;stop-opacity:1"
+ offset="0"
+ id="stop10334-5" />
+ <stop
+ style="stop-color:#8f9985;stop-opacity:1"
+ offset="1"
+ id="stop10336-29" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11577-0-5-0-2"
+ id="linearGradient8358"
+ gradientUnits="userSpaceOnUse"
+ x1="662.53418"
+ y1="249.29141"
+ x2="662.53418"
+ y2="262.49979" />
+ <linearGradient
+ id="linearGradient11577-0-5-0-2"
+ inkscape:collect="always">
+ <stop
+ id="stop11579-5-6-7-4"
+ offset="0"
+ style="stop-color:#d3d7cf;stop-opacity:1;" />
+ <stop
+ id="stop11581-8-0-0-9"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12415-4-1-5"
+ id="linearGradient8360"
+ gradientUnits="userSpaceOnUse"
+ x1="664.26984"
+ y1="261.44751"
+ x2="664.26984"
+ y2="248.05356" />
+ <linearGradient
+ id="linearGradient12415-4-1-5"
+ inkscape:collect="always">
+ <stop
+ id="stop12417-2-8-0"
+ offset="0"
+ style="stop-color:#d3d7cf;stop-opacity:1;" />
+ <stop
+ id="stop12419-5-0-9"
+ offset="1"
+ style="stop-color:#8f9985;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient11553-0-7-9">
+ <stop
+ id="stop11555-5-9-8"
+ offset="0"
+ style="stop-color:#ffffff;stop-opacity:1;" />
+ <stop
+ id="stop11557-1-9-0"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:0;" />
+ </linearGradient>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12405-7"
+ id="radialGradient8368"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4685542,0,0,2.2820942,-309.65132,-324.35943)"
+ cx="660.8656"
+ cy="251.41324"
+ fx="660.8656"
+ fy="251.41324"
+ r="5.0290799" />
+ <linearGradient
+ id="linearGradient12405-7"
+ inkscape:collect="always">
+ <stop
+ id="stop12407-9"
+ offset="0"
+ style="stop-color:#000000;stop-opacity:1;" />
+ <stop
+ id="stop12409-7"
+ offset="1"
+ style="stop-color:#000000;stop-opacity:0;" />
+ </linearGradient>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12692-5-0"
+ id="radialGradient8370"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.4143887,0,0,1.7213698,-937.76662,-194.09437)"
+ cx="663.01904"
+ cy="269.82831"
+ fx="663.01904"
+ fy="269.82831"
+ r="2.3864853" />
+ <linearGradient
+ id="linearGradient12692-5-0"
+ inkscape:collect="always">
+ <stop
+ id="stop12694-4-1"
+ offset="0"
+ style="stop-color:#ffffff;stop-opacity:1;" />
+ <stop
+ id="stop12696-5-2"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:0;" />
+ </linearGradient>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="-0.71194906"
+ inkscape:cy="8.5766833"
+ inkscape:document-units="px"
+ inkscape:current-layer="g6305"
+ showgrid="true"
+ borderlayer="true"
+ inkscape:showpageshadow="false"
+ inkscape:window-width="1180"
+ inkscape:window-height="950"
+ inkscape:window-x="1600"
+ inkscape:window-y="0"
+ inkscape:window-maximized="0"
+ inkscape:snap-nodes="false"
+ inkscape:snap-bbox="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid4084"
+ empspacing="5"
+ visible="true"
+ enabled="true"
+ snapvisiblegridlinesonly="true" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata819">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <g
+ transform="translate(-1031,770.36221)"
+ id="g6305"
+ style="display:inline;enable-background:new">
+ <g
+ style="opacity:0.5;display:inline;enable-background:new"
+ id="g16917"
+ transform="translate(3.7481965e-5,-1.1707725e-5)">
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:none;stroke:#717171;stroke-width:0.88215655;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path16919"
+ sodipodi:cx="660.96808"
+ sodipodi:cy="255.0668"
+ sodipodi:rx="4.5078058"
+ sodipodi:ry="7.2937827"
+ d="m 665.47588,255.0668 c 0,4.02825 -2.01821,7.29379 -4.5078,7.29379 -2.48959,0 -4.50781,-3.26554 -4.50781,-7.29379 0,-4.02824 2.01822,-7.29378 4.50781,-7.29378 2.48959,0 4.5078,3.26554 4.5078,7.29378 z"
+ transform="matrix(1.4419436,0,0,0.89116967,85.92127,46.692201)" />
+ <path
+ transform="matrix(0.77479411,0,0,0.47884882,526.8858,151.86156)"
+ d="m 665.47588,255.0668 c 0,4.02825 -2.01821,7.29379 -4.5078,7.29379 -2.48959,0 -4.50781,-3.26554 -4.50781,-7.29379 0,-4.02824 2.01822,-7.29378 4.50781,-7.29378 2.48959,0 4.5078,3.26554 4.5078,7.29378 z"
+ sodipodi:ry="7.2937827"
+ sodipodi:rx="4.5078058"
+ sodipodi:cy="255.0668"
+ sodipodi:cx="660.96808"
+ id="path16921"
+ style="color:#000000;fill:#717171;fill-opacity:1;fill-rule:nonzero;stroke:#717171;stroke-width:1.64175230000000005;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ </g>
+ </g>
+ </g>
+</svg>
diff --git a/gtk3/theme/assets/radio-selected-insensitive.svg b/gtk3/theme/assets/radio-selected-insensitive.svg
new file mode 100644
index 0000000..09eb693
--- /dev/null
+++ b/gtk3/theme/assets/radio-selected-insensitive.svg
@@ -0,0 +1,264 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ id="svg814"
+ version="1.1"
+ inkscape:version="0.48+devel r10053 custom"
+ sodipodi:docname="radio-unselected.svg">
+ <defs
+ id="defs816">
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient10354-2"
+ id="linearGradient8378"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-1609.9926,-78.958432)"
+ x1="1205.5752"
+ y1="-186.45331"
+ x2="1205.5752"
+ y2="-202.34555" />
+ <linearGradient
+ id="linearGradient10354-2"
+ inkscape:collect="always">
+ <stop
+ id="stop10356-2"
+ offset="0"
+ style="stop-color:#bcbfb8;stop-opacity:1" />
+ <stop
+ id="stop10358-2"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient10332-5"
+ id="linearGradient8380"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.84941206,0,0,0.84794288,-623.98415,-483.16392)"
+ x1="260.92538"
+ y1="233.77748"
+ x2="260.92538"
+ y2="248.97633" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient10332-5">
+ <stop
+ style="stop-color:#d3d7cf;stop-opacity:1"
+ offset="0"
+ id="stop10334-5" />
+ <stop
+ style="stop-color:#8f9985;stop-opacity:1"
+ offset="1"
+ id="stop10336-29" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11577-0-5-0-2"
+ id="linearGradient8358"
+ gradientUnits="userSpaceOnUse"
+ x1="662.53418"
+ y1="249.29141"
+ x2="662.53418"
+ y2="262.49979" />
+ <linearGradient
+ id="linearGradient11577-0-5-0-2"
+ inkscape:collect="always">
+ <stop
+ id="stop11579-5-6-7-4"
+ offset="0"
+ style="stop-color:#d3d7cf;stop-opacity:1;" />
+ <stop
+ id="stop11581-8-0-0-9"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12415-4-1-5"
+ id="linearGradient8360"
+ gradientUnits="userSpaceOnUse"
+ x1="664.26984"
+ y1="261.44751"
+ x2="664.26984"
+ y2="248.05356" />
+ <linearGradient
+ id="linearGradient12415-4-1-5"
+ inkscape:collect="always">
+ <stop
+ id="stop12417-2-8-0"
+ offset="0"
+ style="stop-color:#d3d7cf;stop-opacity:1;" />
+ <stop
+ id="stop12419-5-0-9"
+ offset="1"
+ style="stop-color:#8f9985;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient11553-0-7-9">
+ <stop
+ id="stop11555-5-9-8"
+ offset="0"
+ style="stop-color:#ffffff;stop-opacity:1;" />
+ <stop
+ id="stop11557-1-9-0"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:0;" />
+ </linearGradient>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12405-7"
+ id="radialGradient8368"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4685542,0,0,2.2820942,-309.65132,-324.35943)"
+ cx="660.8656"
+ cy="251.41324"
+ fx="660.8656"
+ fy="251.41324"
+ r="5.0290799" />
+ <linearGradient
+ id="linearGradient12405-7"
+ inkscape:collect="always">
+ <stop
+ id="stop12407-9"
+ offset="0"
+ style="stop-color:#000000;stop-opacity:1;" />
+ <stop
+ id="stop12409-7"
+ offset="1"
+ style="stop-color:#000000;stop-opacity:0;" />
+ </linearGradient>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12692-5-0"
+ id="radialGradient8370"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.4143887,0,0,1.7213698,-937.76662,-194.09437)"
+ cx="663.01904"
+ cy="269.82831"
+ fx="663.01904"
+ fy="269.82831"
+ r="2.3864853" />
+ <linearGradient
+ id="linearGradient12692-5-0"
+ inkscape:collect="always">
+ <stop
+ id="stop12694-4-1"
+ offset="0"
+ style="stop-color:#ffffff;stop-opacity:1;" />
+ <stop
+ id="stop12696-5-2"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12415-4-1-5-2"
+ id="linearGradient8392"
+ gradientUnits="userSpaceOnUse"
+ x1="664.26984"
+ y1="261.44751"
+ x2="664.26984"
+ y2="248.05356" />
+ <linearGradient
+ id="linearGradient12415-4-1-5-2"
+ inkscape:collect="always">
+ <stop
+ id="stop12417-2-8-0-7"
+ offset="0"
+ style="stop-color:#d3d7cf;stop-opacity:1;" />
+ <stop
+ id="stop12419-5-0-9-3"
+ offset="1"
+ style="stop-color:#8f9985;stop-opacity:1" />
+ </linearGradient>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="7.2871964"
+ inkscape:cy="8.5766833"
+ inkscape:document-units="px"
+ inkscape:current-layer="g6305"
+ showgrid="true"
+ borderlayer="true"
+ inkscape:showpageshadow="false"
+ inkscape:window-width="1180"
+ inkscape:window-height="950"
+ inkscape:window-x="1600"
+ inkscape:window-y="0"
+ inkscape:window-maximized="0"
+ inkscape:snap-nodes="false"
+ inkscape:snap-bbox="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid4084"
+ empspacing="5"
+ visible="true"
+ enabled="true"
+ snapvisiblegridlinesonly="true" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata819">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <g
+ transform="translate(-1031,770.36221)"
+ id="g6305"
+ style="display:inline;enable-background:new">
+ <g
+ style="opacity:0.5;display:inline;enable-background:new"
+ id="g16917"
+ transform="translate(3.7481965e-5,-1.1707725e-5)">
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:none;stroke:url(#linearGradient8392);stroke-width:0.88215655;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:100;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new"
+ id="path16919"
+ sodipodi:cx="660.96808"
+ sodipodi:cy="255.0668"
+ sodipodi:rx="4.5078058"
+ sodipodi:ry="7.2937827"
+ d="m 665.47588,255.0668 c 0,4.02825 -2.01821,7.29379 -4.5078,7.29379 -2.48959,0 -4.50781,-3.26554 -4.50781,-7.29379 0,-4.02824 2.01822,-7.29378 4.50781,-7.29378 2.48959,0 4.5078,3.26554 4.5078,7.29378 z"
+ transform="matrix(1.4419436,0,0,0.89116967,85.92127,46.692201)" />
+ <path
+ transform="matrix(0.77479411,0,0,0.47884882,526.8858,151.86156)"
+ d="m 665.47588,255.0668 c 0,4.02825 -2.01821,7.29379 -4.5078,7.29379 -2.48959,0 -4.50781,-3.26554 -4.50781,-7.29379 0,-4.02824 2.01822,-7.29378 4.50781,-7.29378 2.48959,0 4.5078,3.26554 4.5078,7.29378 z"
+ sodipodi:ry="7.2937827"
+ sodipodi:rx="4.5078058"
+ sodipodi:cy="255.0668"
+ sodipodi:cx="660.96808"
+ id="path16921"
+ style="color:#000000;fill:#8f9985;fill-opacity:1;fill-rule:nonzero;stroke:#8f9985;stroke-width:1.64175236;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:144.44521581;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ </g>
+ </g>
+ </g>
+</svg>
diff --git a/gtk3/theme/assets/radio-selected.svg b/gtk3/theme/assets/radio-selected.svg
new file mode 100644
index 0000000..178c4b3
--- /dev/null
+++ b/gtk3/theme/assets/radio-selected.svg
@@ -0,0 +1,350 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ id="svg814"
+ version="1.1"
+ inkscape:version="0.48+devel r10053 custom"
+ sodipodi:docname="checkbox-unchecked-insensitive.svg">
+ <defs
+ id="defs816">
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient10354-2"
+ id="linearGradient8378"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-1609.9926,-78.958432)"
+ x1="1205.5752"
+ y1="-186.45331"
+ x2="1205.5752"
+ y2="-202.34555" />
+ <linearGradient
+ id="linearGradient10354-2"
+ inkscape:collect="always">
+ <stop
+ id="stop10356-2"
+ offset="0"
+ style="stop-color:#bcbfb8;stop-opacity:1" />
+ <stop
+ id="stop10358-2"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient10332-5"
+ id="linearGradient8380"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.84941206,0,0,0.84794288,-623.98415,-483.16392)"
+ x1="260.92538"
+ y1="233.77748"
+ x2="260.92538"
+ y2="248.97633" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient10332-5">
+ <stop
+ style="stop-color:#d3d7cf;stop-opacity:1"
+ offset="0"
+ id="stop10334-5" />
+ <stop
+ style="stop-color:#8f9985;stop-opacity:1"
+ offset="1"
+ id="stop10336-29" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient10332-5-8"
+ id="linearGradient8390"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.84941206,0,0,0.84794288,-623.98415,-483.16392)"
+ x1="260.92538"
+ y1="233.77748"
+ x2="260.92538"
+ y2="248.97633" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient10332-5-8">
+ <stop
+ style="stop-color:#d3d7cf;stop-opacity:1"
+ offset="0"
+ id="stop10334-5-6" />
+ <stop
+ style="stop-color:#8f9985;stop-opacity:1"
+ offset="1"
+ id="stop10336-29-0" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11577-0-5-0-2"
+ id="linearGradient8358"
+ gradientUnits="userSpaceOnUse"
+ x1="662.53418"
+ y1="249.29141"
+ x2="662.53418"
+ y2="262.49979" />
+ <linearGradient
+ id="linearGradient11577-0-5-0-2"
+ inkscape:collect="always">
+ <stop
+ id="stop11579-5-6-7-4"
+ offset="0"
+ style="stop-color:#d3d7cf;stop-opacity:1;" />
+ <stop
+ id="stop11581-8-0-0-9"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12415-4-1-5"
+ id="linearGradient8360"
+ gradientUnits="userSpaceOnUse"
+ x1="664.26984"
+ y1="261.44751"
+ x2="664.26984"
+ y2="248.05356" />
+ <linearGradient
+ id="linearGradient12415-4-1-5"
+ inkscape:collect="always">
+ <stop
+ id="stop12417-2-8-0"
+ offset="0"
+ style="stop-color:#d3d7cf;stop-opacity:1;" />
+ <stop
+ id="stop12419-5-0-9"
+ offset="1"
+ style="stop-color:#8f9985;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11623-4-5-4"
+ id="linearGradient8362"
+ gradientUnits="userSpaceOnUse"
+ x1="661.04559"
+ y1="251.6946"
+ x2="661.04559"
+ y2="258.26358" />
+ <linearGradient
+ id="linearGradient11623-4-5-4"
+ inkscape:collect="always">
+ <stop
+ id="stop11625-5-6-0"
+ offset="0"
+ style="stop-color:#2e87e3;stop-opacity:1" />
+ <stop
+ id="stop11627-4-4-9"
+ offset="1"
+ style="stop-color:#76b0ec;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12387-1-5"
+ id="linearGradient8364"
+ gradientUnits="userSpaceOnUse"
+ x1="662.26074"
+ y1="251.66537"
+ x2="662.26074"
+ y2="259.77792" />
+ <linearGradient
+ id="linearGradient12387-1-5"
+ inkscape:collect="always">
+ <stop
+ id="stop12389-7-2"
+ offset="0"
+ style="stop-color:#1b6fc5;stop-opacity:1;" />
+ <stop
+ id="stop12391-1-4"
+ offset="1"
+ style="stop-color:#145393;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11553-0-7-9"
+ id="linearGradient8366"
+ gradientUnits="userSpaceOnUse"
+ x1="660.16144"
+ y1="246.69635"
+ x2="660.27411"
+ y2="260.70532" />
+ <linearGradient
+ id="linearGradient11553-0-7-9">
+ <stop
+ id="stop11555-5-9-8"
+ offset="0"
+ style="stop-color:#ffffff;stop-opacity:1;" />
+ <stop
+ id="stop11557-1-9-0"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:0;" />
+ </linearGradient>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12405-7"
+ id="radialGradient8368"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4685542,0,0,2.2820942,-309.65132,-324.35943)"
+ cx="660.8656"
+ cy="251.41324"
+ fx="660.8656"
+ fy="251.41324"
+ r="5.0290799" />
+ <linearGradient
+ id="linearGradient12405-7"
+ inkscape:collect="always">
+ <stop
+ id="stop12407-9"
+ offset="0"
+ style="stop-color:#000000;stop-opacity:1;" />
+ <stop
+ id="stop12409-7"
+ offset="1"
+ style="stop-color:#000000;stop-opacity:0;" />
+ </linearGradient>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12692-5-0"
+ id="radialGradient8370"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.4143887,0,0,1.7213698,-937.76662,-194.09437)"
+ cx="663.01904"
+ cy="269.82831"
+ fx="663.01904"
+ fy="269.82831"
+ r="2.3864853" />
+ <linearGradient
+ id="linearGradient12692-5-0"
+ inkscape:collect="always">
+ <stop
+ id="stop12694-4-1"
+ offset="0"
+ style="stop-color:#ffffff;stop-opacity:1;" />
+ <stop
+ id="stop12696-5-2"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:0;" />
+ </linearGradient>
+ <radialGradient
+ r="2.3864853"
+ fy="269.82831"
+ fx="663.01904"
+ cy="269.82831"
+ cx="663.01904"
+ gradientTransform="matrix(2.4143887,0,0,1.7213698,-937.76662,-194.09437)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient5029"
+ xlink:href="#linearGradient12692-5-0"
+ inkscape:collect="always" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="8.7319174"
+ inkscape:cy="7.9147276"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ borderlayer="true"
+ inkscape:showpageshadow="false"
+ inkscape:window-width="1180"
+ inkscape:window-height="950"
+ inkscape:window-x="1600"
+ inkscape:window-y="0"
+ inkscape:window-maximized="0">
+ <inkscape:grid
+ type="xygrid"
+ id="grid4084"
+ empspacing="5"
+ visible="true"
+ enabled="true"
+ snapvisiblegridlinesonly="true" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata819">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <g
+ transform="translate(-1031,770.36221)"
+ id="g6305"
+ style="display:inline;enable-background:new">
+ <path
+ transform="matrix(1.4419436,0,0,0.89116967,85.92127,46.692201)"
+ d="m 665.47588,255.0668 c 0,4.02825 -2.01821,7.29379 -4.5078,7.29379 -2.48959,0 -4.50781,-3.26554 -4.50781,-7.29379 0,-4.02824 2.01822,-7.29378 4.50781,-7.29378 2.48959,0 4.5078,3.26554 4.5078,7.29378 z"
+ sodipodi:ry="7.2937827"
+ sodipodi:rx="4.5078058"
+ sodipodi:cy="255.0668"
+ sodipodi:cx="660.96808"
+ id="path6307"
+ style="color:#000000;fill:url(#linearGradient8358);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient8360);stroke-width:0.88215655;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:100;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:url(#linearGradient8362);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient8364);stroke-width:1.27423298;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:144.44521581;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path6309"
+ sodipodi:cx="660.96808"
+ sodipodi:cy="255.0668"
+ sodipodi:rx="4.5078058"
+ sodipodi:ry="7.2937827"
+ d="m 665.47588,255.0668 c 0,4.02825 -2.01821,7.29379 -4.5078,7.29379 -2.48959,0 -4.50781,-3.26554 -4.50781,-7.29379 0,-4.02824 2.01822,-7.29378 4.50781,-7.29378 2.48959,0 4.5078,3.26554 4.5078,7.29378 z"
+ transform="matrix(0.99826332,0,0,0.61696032,379.17979,116.6339)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.55465585;fill:none;stroke:url(#linearGradient8366);stroke-width:1.63832664;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:100"
+ id="path6311"
+ sodipodi:cx="660.96808"
+ sodipodi:cy="255.0668"
+ sodipodi:rx="4.5078058"
+ sodipodi:ry="7.2937827"
+ d="m 665.47588,255.0668 c 0,4.02825 -2.01821,7.29379 -4.5078,7.29379 -2.48959,0 -4.50781,-3.26554 -4.50781,-7.29379 0,-4.02824 2.01822,-7.29378 4.50781,-7.29378 2.48959,0 4.5078,3.26554 4.5078,7.29378 z"
+ transform="matrix(0.77641414,0,0,-0.47985006,525.81496,396.39382)" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.12955466;fill:none;stroke:url(#radialGradient8368);stroke-width:1.04254842;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:100"
+ id="path6313"
+ sodipodi:cx="660.96808"
+ sodipodi:cy="255.0668"
+ sodipodi:rx="4.5078058"
+ sodipodi:ry="7.2937827"
+ d="m 665.47588,255.0668 c 0,4.02825 -2.01821,7.29379 -4.5078,7.29379 -2.48959,0 -4.50781,-3.26554 -4.50781,-7.29379 0,-4.02824 2.01822,-7.29378 4.50781,-7.29378 2.48959,0 4.5078,3.26554 4.5078,7.29378 z"
+ transform="matrix(1.2201064,0,0,0.75406683,232.54855,81.662583)" />
+ <path
+ transform="matrix(1.2570829,0,0,1.1611638,205.4417,-43.52207)"
+ d="m 665.47584,271.75009 c 0,0.9397 -1.06847,1.70148 -2.38648,1.70148 -1.31802,0 -2.38649,-0.76178 -2.38649,-1.70148 0,-0.9397 1.06847,-1.70147 2.38649,-1.70147 1.31801,0 2.38648,0.76177 2.38648,1.70147 z"
+ sodipodi:ry="1.7014757"
+ sodipodi:rx="2.3864853"
+ sodipodi:cy="271.75009"
+ sodipodi:cx="663.08936"
+ id="path6315"
+ style="opacity:0.7854251;color:#000000;fill:url(#radialGradient5029);fill-opacity:1;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ </g>
+ </g>
+</svg>
diff --git a/gtk3/theme/assets/radio-unselected-dark.svg b/gtk3/theme/assets/radio-unselected-dark.svg
new file mode 100644
index 0000000..f614fa9
--- /dev/null
+++ b/gtk3/theme/assets/radio-unselected-dark.svg
@@ -0,0 +1,412 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ id="svg814"
+ version="1.1"
+ inkscape:version="0.48.1 r9760"
+ sodipodi:docname="radio-mixed-dark.svg">
+ <defs
+ id="defs816">
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient10354-2"
+ id="linearGradient8378"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-1609.9926,-78.958432)"
+ x1="1205.5752"
+ y1="-186.45331"
+ x2="1205.5752"
+ y2="-202.34555" />
+ <linearGradient
+ id="linearGradient10354-2"
+ inkscape:collect="always">
+ <stop
+ id="stop10356-2"
+ offset="0"
+ style="stop-color:#bcbfb8;stop-opacity:1" />
+ <stop
+ id="stop10358-2"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient10332-5"
+ id="linearGradient8380"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.84941206,0,0,0.84794288,-623.98415,-483.16392)"
+ x1="260.92538"
+ y1="233.77748"
+ x2="260.92538"
+ y2="248.97633" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient10332-5">
+ <stop
+ style="stop-color:#d3d7cf;stop-opacity:1"
+ offset="0"
+ id="stop10334-5" />
+ <stop
+ style="stop-color:#8f9985;stop-opacity:1"
+ offset="1"
+ id="stop10336-29" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11577-0-5-0-2"
+ id="linearGradient8358"
+ gradientUnits="userSpaceOnUse"
+ x1="662.53418"
+ y1="249.29141"
+ x2="662.53418"
+ y2="262.49979" />
+ <linearGradient
+ id="linearGradient11577-0-5-0-2"
+ inkscape:collect="always">
+ <stop
+ id="stop11579-5-6-7-4"
+ offset="0"
+ style="stop-color:#d3d7cf;stop-opacity:1;" />
+ <stop
+ id="stop11581-8-0-0-9"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12415-4-1-5"
+ id="linearGradient8360"
+ gradientUnits="userSpaceOnUse"
+ x1="664.26984"
+ y1="261.44751"
+ x2="664.26984"
+ y2="248.05356" />
+ <linearGradient
+ id="linearGradient12415-4-1-5"
+ inkscape:collect="always">
+ <stop
+ id="stop12417-2-8-0"
+ offset="0"
+ style="stop-color:#d3d7cf;stop-opacity:1;" />
+ <stop
+ id="stop12419-5-0-9"
+ offset="1"
+ style="stop-color:#8f9985;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11623-4-5-4"
+ id="linearGradient8362"
+ gradientUnits="userSpaceOnUse"
+ x1="661.04559"
+ y1="251.6946"
+ x2="661.04559"
+ y2="258.26358" />
+ <linearGradient
+ id="linearGradient11623-4-5-4"
+ inkscape:collect="always">
+ <stop
+ id="stop11625-5-6-0"
+ offset="0"
+ style="stop-color:#2e87e3;stop-opacity:1" />
+ <stop
+ id="stop11627-4-4-9"
+ offset="1"
+ style="stop-color:#76b0ec;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12387-1-5"
+ id="linearGradient8364"
+ gradientUnits="userSpaceOnUse"
+ x1="662.26074"
+ y1="251.66537"
+ x2="662.26074"
+ y2="259.77792" />
+ <linearGradient
+ id="linearGradient12387-1-5"
+ inkscape:collect="always">
+ <stop
+ id="stop12389-7-2"
+ offset="0"
+ style="stop-color:#1b6fc5;stop-opacity:1;" />
+ <stop
+ id="stop12391-1-4"
+ offset="1"
+ style="stop-color:#145393;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11553-0-7-9"
+ id="linearGradient8366"
+ gradientUnits="userSpaceOnUse"
+ x1="660.16144"
+ y1="246.69635"
+ x2="660.27411"
+ y2="260.70532" />
+ <linearGradient
+ id="linearGradient11553-0-7-9">
+ <stop
+ id="stop11555-5-9-8"
+ offset="0"
+ style="stop-color:#ffffff;stop-opacity:1;" />
+ <stop
+ id="stop11557-1-9-0"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:0;" />
+ </linearGradient>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12405-7"
+ id="radialGradient8368"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4685542,0,0,2.2820942,-309.65132,-324.35943)"
+ cx="660.8656"
+ cy="251.41324"
+ fx="660.8656"
+ fy="251.41324"
+ r="5.0290799" />
+ <linearGradient
+ id="linearGradient12405-7"
+ inkscape:collect="always">
+ <stop
+ id="stop12407-9"
+ offset="0"
+ style="stop-color:#000000;stop-opacity:1;" />
+ <stop
+ id="stop12409-7"
+ offset="1"
+ style="stop-color:#000000;stop-opacity:0;" />
+ </linearGradient>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12692-5-0"
+ id="radialGradient8370"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.4143887,0,0,1.7213698,-937.76662,-194.09437)"
+ cx="663.01904"
+ cy="269.82831"
+ fx="663.01904"
+ fy="269.82831"
+ r="2.3864853" />
+ <linearGradient
+ id="linearGradient12692-5-0"
+ inkscape:collect="always">
+ <stop
+ id="stop12694-4-1"
+ offset="0"
+ style="stop-color:#ffffff;stop-opacity:1;" />
+ <stop
+ id="stop12696-5-2"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:0;" />
+ </linearGradient>
+ <radialGradient
+ r="2.3864853"
+ fy="269.82831"
+ fx="663.01904"
+ cy="269.82831"
+ cx="663.01904"
+ gradientTransform="matrix(2.4143887,0,0,1.7213698,-937.76662,-194.09437)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient5029"
+ xlink:href="#linearGradient12692-5-0"
+ inkscape:collect="always" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient7346"
+ id="linearGradient7352"
+ x1="5.65625"
+ y1="6.390625"
+ x2="5.65625"
+ y2="9.828125"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient7346">
+ <stop
+ style="stop-color:#1969ba;stop-opacity:1"
+ offset="0"
+ id="stop7348" />
+ <stop
+ style="stop-color:#145393;stop-opacity:1"
+ offset="1"
+ id="stop7350" />
+ </linearGradient>
+ <linearGradient
+ gradientTransform="translate(1033.0001,265.99998)"
+ y2="9.828125"
+ x2="5.65625"
+ y1="6.390625"
+ x1="5.65625"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient119"
+ xlink:href="#linearGradient7346"
+ inkscape:collect="always" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3859-5"
+ id="linearGradient5110"
+ gradientUnits="userSpaceOnUse"
+ x1="658.5564"
+ y1="257.04449"
+ x2="658.5564"
+ y2="247.62109" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient3859-5">
+ <stop
+ style="stop-color:#282828;stop-opacity:1;"
+ offset="0"
+ id="stop3861-2" />
+ <stop
+ style="stop-color:#151515;stop-opacity:1"
+ offset="1"
+ id="stop3863-6" />
+ </linearGradient>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4631"
+ id="radialGradient5112"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(4.055689,-0.04454196,0.00708427,1.6887546,-2020.4687,-144.9433)"
+ cx="660.6142"
+ cy="251.41986"
+ fx="660.6142"
+ fy="251.41986"
+ r="5.0290799" />
+ <linearGradient
+ id="linearGradient4631"
+ inkscape:collect="always">
+ <stop
+ id="stop4633"
+ offset="0"
+ style="stop-color:#000000;stop-opacity:1" />
+ <stop
+ id="stop4635"
+ offset="1"
+ style="stop-color:#000000;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ gradientTransform="translate(1033.0313,266)"
+ y2="9.8606262"
+ x2="7.1051636"
+ y1="6.6672974"
+ x1="6.8551636"
+ gradientUnits="userSpaceOnUse"
+ id="linearGradient5130"
+ xlink:href="#linearGradient4655-7-9"
+ inkscape:collect="always" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient4655-7-9">
+ <stop
+ style="stop-color:#ce5c00;stop-opacity:1;"
+ offset="0"
+ id="stop4657-9-3" />
+ <stop
+ style="stop-color:#914100;stop-opacity:1"
+ offset="1"
+ id="stop4659-9-4" />
+ </linearGradient>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="32"
+ inkscape:cx="11.495914"
+ inkscape:cy="7.2986073"
+ inkscape:document-units="px"
+ inkscape:current-layer="g6305"
+ showgrid="true"
+ borderlayer="true"
+ inkscape:showpageshadow="false"
+ inkscape:window-width="1180"
+ inkscape:window-height="950"
+ inkscape:window-x="1600"
+ inkscape:window-y="166"
+ inkscape:window-maximized="0"
+ inkscape:snap-nodes="false"
+ inkscape:snap-bbox="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid4084"
+ empspacing="5"
+ visible="true"
+ enabled="true"
+ snapvisiblegridlinesonly="true" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata819">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <g
+ transform="translate(-1031,770.36221)"
+ id="g6305"
+ style="display:inline;enable-background:new">
+ <g
+ transform="translate(3.7481965e-5,-1.1707725e-5)"
+ id="g5102"
+ style="display:inline;enable-background:new">
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.1;color:#000000;fill:none;stroke:#ffffff;stroke-width:0.88215655;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path5104"
+ sodipodi:cx="660.96808"
+ sodipodi:cy="255.0668"
+ sodipodi:rx="4.5078058"
+ sodipodi:ry="7.2937827"
+ d="m 665.47588,255.0668 c 0,4.02825 -2.01821,7.29379 -4.5078,7.29379 -2.48959,0 -4.50781,-3.26554 -4.50781,-7.29379 0,-4.02824 2.01822,-7.29378 4.50781,-7.29378 2.48959,0 4.5078,3.26554 4.5078,7.29378 z"
+ transform="matrix(1.4419436,0,0,0.89116967,85.92127,47.692201)" />
+ <path
+ transform="matrix(1.4419436,0,0,0.89116967,85.92127,46.692201)"
+ d="m 665.47588,255.0668 c 0,4.02825 -2.01821,7.29379 -4.5078,7.29379 -2.48959,0 -4.50781,-3.26554 -4.50781,-7.29379 0,-4.02824 2.01822,-7.29378 4.50781,-7.29378 2.48959,0 4.5078,3.26554 4.5078,7.29378 z"
+ sodipodi:ry="7.2937827"
+ sodipodi:rx="4.5078058"
+ sodipodi:cy="255.0668"
+ sodipodi:cx="660.96808"
+ id="path5106"
+ style="color:#000000;fill:url(#linearGradient5110);fill-opacity:1;fill-rule:nonzero;stroke:#131516;stroke-width:0.88215655;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.37860083;fill:none;stroke:url(#radialGradient5112);stroke-width:1.04254842;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:100"
+ id="path5108"
+ sodipodi:cx="660.96808"
+ sodipodi:cy="255.0668"
+ sodipodi:rx="4.5078058"
+ sodipodi:ry="7.2937827"
+ d="m 665.47588,255.0668 c 0,4.02825 -2.01821,7.29379 -4.5078,7.29379 -2.48959,0 -4.50781,-3.26554 -4.50781,-7.29379 0,-4.02824 2.01822,-7.29378 4.50781,-7.29378 2.48959,0 4.5078,3.26554 4.5078,7.29378 z"
+ transform="matrix(1.2201064,0,0,0.75406683,232.54855,81.662583)" />
+ </g>
+ </g>
+ </g>
+</svg>
diff --git a/gtk3/theme/assets/radio-unselected-insensitive-dark.svg b/gtk3/theme/assets/radio-unselected-insensitive-dark.svg
new file mode 100644
index 0000000..c7ca7dd
--- /dev/null
+++ b/gtk3/theme/assets/radio-unselected-insensitive-dark.svg
@@ -0,0 +1,233 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ id="svg814"
+ version="1.1"
+ inkscape:version="0.48.1 r9760"
+ sodipodi:docname="radio-selected-insensitive-dark.svg">
+ <defs
+ id="defs816">
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient10354-2"
+ id="linearGradient8378"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-1609.9926,-78.958432)"
+ x1="1205.5752"
+ y1="-186.45331"
+ x2="1205.5752"
+ y2="-202.34555" />
+ <linearGradient
+ id="linearGradient10354-2"
+ inkscape:collect="always">
+ <stop
+ id="stop10356-2"
+ offset="0"
+ style="stop-color:#bcbfb8;stop-opacity:1" />
+ <stop
+ id="stop10358-2"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient10332-5"
+ id="linearGradient8380"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.84941206,0,0,0.84794288,-623.98415,-483.16392)"
+ x1="260.92538"
+ y1="233.77748"
+ x2="260.92538"
+ y2="248.97633" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient10332-5">
+ <stop
+ style="stop-color:#d3d7cf;stop-opacity:1"
+ offset="0"
+ id="stop10334-5" />
+ <stop
+ style="stop-color:#8f9985;stop-opacity:1"
+ offset="1"
+ id="stop10336-29" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11577-0-5-0-2"
+ id="linearGradient8358"
+ gradientUnits="userSpaceOnUse"
+ x1="662.53418"
+ y1="249.29141"
+ x2="662.53418"
+ y2="262.49979" />
+ <linearGradient
+ id="linearGradient11577-0-5-0-2"
+ inkscape:collect="always">
+ <stop
+ id="stop11579-5-6-7-4"
+ offset="0"
+ style="stop-color:#d3d7cf;stop-opacity:1;" />
+ <stop
+ id="stop11581-8-0-0-9"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12415-4-1-5"
+ id="linearGradient8360"
+ gradientUnits="userSpaceOnUse"
+ x1="664.26984"
+ y1="261.44751"
+ x2="664.26984"
+ y2="248.05356" />
+ <linearGradient
+ id="linearGradient12415-4-1-5"
+ inkscape:collect="always">
+ <stop
+ id="stop12417-2-8-0"
+ offset="0"
+ style="stop-color:#d3d7cf;stop-opacity:1;" />
+ <stop
+ id="stop12419-5-0-9"
+ offset="1"
+ style="stop-color:#8f9985;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient11553-0-7-9">
+ <stop
+ id="stop11555-5-9-8"
+ offset="0"
+ style="stop-color:#ffffff;stop-opacity:1;" />
+ <stop
+ id="stop11557-1-9-0"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:0;" />
+ </linearGradient>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12405-7"
+ id="radialGradient8368"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4685542,0,0,2.2820942,-309.65132,-324.35943)"
+ cx="660.8656"
+ cy="251.41324"
+ fx="660.8656"
+ fy="251.41324"
+ r="5.0290799" />
+ <linearGradient
+ id="linearGradient12405-7"
+ inkscape:collect="always">
+ <stop
+ id="stop12407-9"
+ offset="0"
+ style="stop-color:#000000;stop-opacity:1;" />
+ <stop
+ id="stop12409-7"
+ offset="1"
+ style="stop-color:#000000;stop-opacity:0;" />
+ </linearGradient>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12692-5-0"
+ id="radialGradient8370"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.4143887,0,0,1.7213698,-937.76662,-194.09437)"
+ cx="663.01904"
+ cy="269.82831"
+ fx="663.01904"
+ fy="269.82831"
+ r="2.3864853" />
+ <linearGradient
+ id="linearGradient12692-5-0"
+ inkscape:collect="always">
+ <stop
+ id="stop12694-4-1"
+ offset="0"
+ style="stop-color:#ffffff;stop-opacity:1;" />
+ <stop
+ id="stop12696-5-2"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:0;" />
+ </linearGradient>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="-0.71194906"
+ inkscape:cy="8.5766833"
+ inkscape:document-units="px"
+ inkscape:current-layer="g6305"
+ showgrid="true"
+ borderlayer="true"
+ inkscape:showpageshadow="false"
+ inkscape:window-width="1180"
+ inkscape:window-height="950"
+ inkscape:window-x="1600"
+ inkscape:window-y="0"
+ inkscape:window-maximized="0"
+ inkscape:snap-nodes="false"
+ inkscape:snap-bbox="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid4084"
+ empspacing="5"
+ visible="true"
+ enabled="true"
+ snapvisiblegridlinesonly="true" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata819">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <g
+ transform="translate(-1031,770.36221)"
+ id="g6305"
+ style="display:inline;enable-background:new">
+ <g
+ style="opacity:0.5;display:inline;enable-background:new"
+ id="g16917"
+ transform="translate(3.7481965e-5,-1.1707725e-5)">
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:none;stroke:#717171;stroke-width:0.88215655;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="path16919"
+ sodipodi:cx="660.96808"
+ sodipodi:cy="255.0668"
+ sodipodi:rx="4.5078058"
+ sodipodi:ry="7.2937827"
+ d="m 665.47588,255.0668 c 0,4.02825 -2.01821,7.29379 -4.5078,7.29379 -2.48959,0 -4.50781,-3.26554 -4.50781,-7.29379 0,-4.02824 2.01822,-7.29378 4.50781,-7.29378 2.48959,0 4.5078,3.26554 4.5078,7.29378 z"
+ transform="matrix(1.4419436,0,0,0.89116967,85.92127,46.692201)" />
+ </g>
+ </g>
+ </g>
+</svg>
diff --git a/gtk3/theme/assets/radio-unselected-insensitive.svg b/gtk3/theme/assets/radio-unselected-insensitive.svg
new file mode 100644
index 0000000..2c7c606
--- /dev/null
+++ b/gtk3/theme/assets/radio-unselected-insensitive.svg
@@ -0,0 +1,189 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ id="svg814"
+ version="1.1"
+ inkscape:version="0.48+devel r10053 custom"
+ sodipodi:docname="radio-selected-insensitive.svg">
+ <defs
+ id="defs816">
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient10354-2"
+ id="linearGradient8378"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-1609.9926,-78.958432)"
+ x1="1205.5752"
+ y1="-186.45331"
+ x2="1205.5752"
+ y2="-202.34555" />
+ <linearGradient
+ id="linearGradient10354-2"
+ inkscape:collect="always">
+ <stop
+ id="stop10356-2"
+ offset="0"
+ style="stop-color:#bcbfb8;stop-opacity:1" />
+ <stop
+ id="stop10358-2"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient10332-5"
+ id="linearGradient8380"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.84941206,0,0,0.84794288,-623.98415,-483.16392)"
+ x1="260.92538"
+ y1="233.77748"
+ x2="260.92538"
+ y2="248.97633" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient10332-5">
+ <stop
+ style="stop-color:#d3d7cf;stop-opacity:1"
+ offset="0"
+ id="stop10334-5" />
+ <stop
+ style="stop-color:#8f9985;stop-opacity:1"
+ offset="1"
+ id="stop10336-29" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient11553-0-7-9">
+ <stop
+ id="stop11555-5-9-8"
+ offset="0"
+ style="stop-color:#ffffff;stop-opacity:1;" />
+ <stop
+ id="stop11557-1-9-0"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:0;" />
+ </linearGradient>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12692-5-0"
+ id="radialGradient8370"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.4143887,0,0,1.7213698,-937.76662,-194.09437)"
+ cx="663.01904"
+ cy="269.82831"
+ fx="663.01904"
+ fy="269.82831"
+ r="2.3864853" />
+ <linearGradient
+ id="linearGradient12692-5-0"
+ inkscape:collect="always">
+ <stop
+ id="stop12694-4-1"
+ offset="0"
+ style="stop-color:#ffffff;stop-opacity:1;" />
+ <stop
+ id="stop12696-5-2"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:0;" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12415-4-1-5-2"
+ id="linearGradient8392"
+ gradientUnits="userSpaceOnUse"
+ x1="664.26984"
+ y1="261.44751"
+ x2="664.26984"
+ y2="248.05356" />
+ <linearGradient
+ id="linearGradient12415-4-1-5-2"
+ inkscape:collect="always">
+ <stop
+ id="stop12417-2-8-0-7"
+ offset="0"
+ style="stop-color:#d3d7cf;stop-opacity:1;" />
+ <stop
+ id="stop12419-5-0-9-3"
+ offset="1"
+ style="stop-color:#8f9985;stop-opacity:1" />
+ </linearGradient>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="22.627417"
+ inkscape:cx="7.2871964"
+ inkscape:cy="8.5324892"
+ inkscape:document-units="px"
+ inkscape:current-layer="g6305"
+ showgrid="true"
+ borderlayer="true"
+ inkscape:showpageshadow="false"
+ inkscape:window-width="1180"
+ inkscape:window-height="950"
+ inkscape:window-x="1600"
+ inkscape:window-y="0"
+ inkscape:window-maximized="0"
+ inkscape:snap-nodes="false"
+ inkscape:snap-bbox="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid4084"
+ empspacing="5"
+ visible="true"
+ enabled="true"
+ snapvisiblegridlinesonly="true" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata819">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <g
+ transform="translate(-1031,770.36221)"
+ id="g6305"
+ style="display:inline;enable-background:new">
+ <g
+ style="opacity:0.5;display:inline;enable-background:new"
+ id="g16917"
+ transform="translate(3.7481965e-5,-1.1707725e-5)">
+ <path
+ sodipodi:type="arc"
+ style="color:#000000;fill:none;stroke:url(#linearGradient8392);stroke-width:0.88215655;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:100;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new"
+ id="path16919"
+ sodipodi:cx="660.96808"
+ sodipodi:cy="255.0668"
+ sodipodi:rx="4.5078058"
+ sodipodi:ry="7.2937827"
+ d="m 665.47588,255.0668 c 0,4.02825 -2.01821,7.29379 -4.5078,7.29379 -2.48959,0 -4.50781,-3.26554 -4.50781,-7.29379 0,-4.02824 2.01822,-7.29378 4.50781,-7.29378 2.48959,0 4.5078,3.26554 4.5078,7.29378 z"
+ transform="matrix(1.4419436,0,0,0.89116967,85.92127,46.692201)" />
+ </g>
+ </g>
+ </g>
+</svg>
diff --git a/gtk3/theme/assets/radio-unselected.svg b/gtk3/theme/assets/radio-unselected.svg
new file mode 100644
index 0000000..7cf1539
--- /dev/null
+++ b/gtk3/theme/assets/radio-unselected.svg
@@ -0,0 +1,298 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="16"
+ height="16"
+ id="svg814"
+ version="1.1"
+ inkscape:version="0.48+devel r10053 custom"
+ sodipodi:docname="radio-selected.svg">
+ <defs
+ id="defs816">
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient10354-2"
+ id="linearGradient8378"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-1609.9926,-78.958432)"
+ x1="1205.5752"
+ y1="-186.45331"
+ x2="1205.5752"
+ y2="-202.34555" />
+ <linearGradient
+ id="linearGradient10354-2"
+ inkscape:collect="always">
+ <stop
+ id="stop10356-2"
+ offset="0"
+ style="stop-color:#bcbfb8;stop-opacity:1" />
+ <stop
+ id="stop10358-2"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient10332-5"
+ id="linearGradient8380"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.84941206,0,0,0.84794288,-623.98415,-483.16392)"
+ x1="260.92538"
+ y1="233.77748"
+ x2="260.92538"
+ y2="248.97633" />
+ <linearGradient
+ inkscape:collect="always"
+ id="linearGradient10332-5">
+ <stop
+ style="stop-color:#d3d7cf;stop-opacity:1"
+ offset="0"
+ id="stop10334-5" />
+ <stop
+ style="stop-color:#8f9985;stop-opacity:1"
+ offset="1"
+ id="stop10336-29" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11577-0-5-0-2"
+ id="linearGradient8358"
+ gradientUnits="userSpaceOnUse"
+ x1="662.53418"
+ y1="249.29141"
+ x2="662.53418"
+ y2="262.49979" />
+ <linearGradient
+ id="linearGradient11577-0-5-0-2"
+ inkscape:collect="always">
+ <stop
+ id="stop11579-5-6-7-4"
+ offset="0"
+ style="stop-color:#d3d7cf;stop-opacity:1;" />
+ <stop
+ id="stop11581-8-0-0-9"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12415-4-1-5"
+ id="linearGradient8360"
+ gradientUnits="userSpaceOnUse"
+ x1="664.26984"
+ y1="261.44751"
+ x2="664.26984"
+ y2="248.05356" />
+ <linearGradient
+ id="linearGradient12415-4-1-5"
+ inkscape:collect="always">
+ <stop
+ id="stop12417-2-8-0"
+ offset="0"
+ style="stop-color:#d3d7cf;stop-opacity:1;" />
+ <stop
+ id="stop12419-5-0-9"
+ offset="1"
+ style="stop-color:#8f9985;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11623-4-5-4"
+ id="linearGradient8362"
+ gradientUnits="userSpaceOnUse"
+ x1="661.04559"
+ y1="251.6946"
+ x2="661.04559"
+ y2="258.26358" />
+ <linearGradient
+ id="linearGradient11623-4-5-4"
+ inkscape:collect="always">
+ <stop
+ id="stop11625-5-6-0"
+ offset="0"
+ style="stop-color:#2e87e3;stop-opacity:1" />
+ <stop
+ id="stop11627-4-4-9"
+ offset="1"
+ style="stop-color:#76b0ec;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12387-1-5"
+ id="linearGradient8364"
+ gradientUnits="userSpaceOnUse"
+ x1="662.26074"
+ y1="251.66537"
+ x2="662.26074"
+ y2="259.77792" />
+ <linearGradient
+ id="linearGradient12387-1-5"
+ inkscape:collect="always">
+ <stop
+ id="stop12389-7-2"
+ offset="0"
+ style="stop-color:#1b6fc5;stop-opacity:1;" />
+ <stop
+ id="stop12391-1-4"
+ offset="1"
+ style="stop-color:#145393;stop-opacity:1" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient11553-0-7-9"
+ id="linearGradient8366"
+ gradientUnits="userSpaceOnUse"
+ x1="660.16144"
+ y1="246.69635"
+ x2="660.27411"
+ y2="260.70532" />
+ <linearGradient
+ id="linearGradient11553-0-7-9">
+ <stop
+ id="stop11555-5-9-8"
+ offset="0"
+ style="stop-color:#ffffff;stop-opacity:1;" />
+ <stop
+ id="stop11557-1-9-0"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:0;" />
+ </linearGradient>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12405-7"
+ id="radialGradient8368"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.4685542,0,0,2.2820942,-309.65132,-324.35943)"
+ cx="660.8656"
+ cy="251.41324"
+ fx="660.8656"
+ fy="251.41324"
+ r="5.0290799" />
+ <linearGradient
+ id="linearGradient12405-7"
+ inkscape:collect="always">
+ <stop
+ id="stop12407-9"
+ offset="0"
+ style="stop-color:#000000;stop-opacity:1;" />
+ <stop
+ id="stop12409-7"
+ offset="1"
+ style="stop-color:#000000;stop-opacity:0;" />
+ </linearGradient>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient12692-5-0"
+ id="radialGradient8370"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(2.4143887,0,0,1.7213698,-937.76662,-194.09437)"
+ cx="663.01904"
+ cy="269.82831"
+ fx="663.01904"
+ fy="269.82831"
+ r="2.3864853" />
+ <linearGradient
+ id="linearGradient12692-5-0"
+ inkscape:collect="always">
+ <stop
+ id="stop12694-4-1"
+ offset="0"
+ style="stop-color:#ffffff;stop-opacity:1;" />
+ <stop
+ id="stop12696-5-2"
+ offset="1"
+ style="stop-color:#ffffff;stop-opacity:0;" />
+ </linearGradient>
+ <radialGradient
+ r="2.3864853"
+ fy="269.82831"
+ fx="663.01904"
+ cy="269.82831"
+ cx="663.01904"
+ gradientTransform="matrix(2.4143887,0,0,1.7213698,-937.76662,-194.09437)"
+ gradientUnits="userSpaceOnUse"
+ id="radialGradient5029"
+ xlink:href="#linearGradient12692-5-0"
+ inkscape:collect="always" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="1"
+ inkscape:cx="8.7319174"
+ inkscape:cy="7.9147276"
+ inkscape:document-units="px"
+ inkscape:current-layer="g6305"
+ showgrid="true"
+ borderlayer="true"
+ inkscape:showpageshadow="false"
+ inkscape:window-width="1180"
+ inkscape:window-height="950"
+ inkscape:window-x="1600"
+ inkscape:window-y="0"
+ inkscape:window-maximized="0">
+ <inkscape:grid
+ type="xygrid"
+ id="grid4084"
+ empspacing="5"
+ visible="true"
+ enabled="true"
+ snapvisiblegridlinesonly="true" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata819">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1036.3622)">
+ <g
+ transform="translate(-1031,770.36221)"
+ id="g6305"
+ style="display:inline;enable-background:new">
+ <path
+ transform="matrix(1.4419436,0,0,0.89116967,85.92127,46.692201)"
+ d="m 665.47588,255.0668 c 0,4.02825 -2.01821,7.29379 -4.5078,7.29379 -2.48959,0 -4.50781,-3.26554 -4.50781,-7.29379 0,-4.02824 2.01822,-7.29378 4.50781,-7.29378 2.48959,0 4.5078,3.26554 4.5078,7.29378 z"
+ sodipodi:ry="7.2937827"
+ sodipodi:rx="4.5078058"
+ sodipodi:cy="255.0668"
+ sodipodi:cx="660.96808"
+ id="path6307"
+ style="color:#000000;fill:url(#linearGradient8358);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient8360);stroke-width:0.88215655;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:100;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new"
+ sodipodi:type="arc" />
+ <path
+ sodipodi:type="arc"
+ style="opacity:0.12955466;fill:none;stroke:url(#radialGradient8368);stroke-width:1.04254842;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:100"
+ id="path6313"
+ sodipodi:cx="660.96808"
+ sodipodi:cy="255.0668"
+ sodipodi:rx="4.5078058"
+ sodipodi:ry="7.2937827"
+ d="m 665.47588,255.0668 c 0,4.02825 -2.01821,7.29379 -4.5078,7.29379 -2.48959,0 -4.50781,-3.26554 -4.50781,-7.29379 0,-4.02824 2.01822,-7.29378 4.50781,-7.29378 2.48959,0 4.5078,3.26554 4.5078,7.29378 z"
+ transform="matrix(1.2201064,0,0,0.75406683,232.54855,81.662583)" />
+ </g>
+ </g>
+</svg>
diff --git a/gtk3/theme/gtk-dark.css b/gtk3/theme/gtk-dark.css
new file mode 100644
index 0000000..afe7131
--- /dev/null
+++ b/gtk3/theme/gtk-dark.css
@@ -0,0 +1,107 @@
+/* dark colormap */
+
+@define-color theme_base_color #333333;
+@define-color theme_text_color #ddddde;
+@define-color theme_bg_color #222222;
+@define-color theme_fg_color @theme_text_color;
+@define-color theme_selected_bg_color #f57900;
+@define-color theme_selected_fg_color #ffffff;
+
+@define-color menu_bg_color shade (@theme_bg_color, 0.4);
+@define-color menu_fg_color #ffffff;
+
+@define-color theme_tooltip_bg_color #000000;
+@define-color theme_tooltip_fg_color #eeeeee;
+
+@define-color button_gradient_color_a #363636;
+@define-color button_gradient_color_b #222222;
+@define-color button_border #111111;
+
+@define-color button_active_gradient_color_a #000000;
+@define-color button_active_gradient_color_b shade (@button_active_gradient_color_a, 0.93);
+
+@define-color button_hover_gradient_color_a shade (@button_gradient_color_a, 1.07);
+@define-color button_hover_gradient_color_b @theme_base_color;
+
+@define-color insensitive_bg_color #0b0b0d;
+@define-color insensitive_fg_color #585458;
+@define-color insensitive_border_color shade (@internal_element_color, 0.70);
+
+@define-color inactive_frame_color shade (@theme_bg_color, 1.19);
+
+@define-color notebook_border #111111;
+@define-color notebook_active_tab_border alpha (@theme_selected_bg_color, 1.0);
+@define-color notebook_selected_tab_color alpha (@theme_selected_bg_color, 0.75);
+
+@define-color notebook_tab_gradient_a shade (@button_gradient_color_a, 0.8);
+@define-color notebook_tab_gradient_b shade (@button_gradient_color_b, 0.8);
+
+@define-color switch_slider_color #111113;
+@define-color switch_slider_border #a5b8cc;
+
+@define-color highlighted_border @button_border;
+@define-color internal_element_color #77757a;
+
+@define-color progressbar_background_a alpha (@theme_fg_color, 0.70);
+@define-color progressbar_background_b alpha (@theme_fg_color, 0.45);
+@define-color progressbar_border alpha (@theme_fg_color, 0.60);
+@define-color progressbar_pattern #000000;
+
+@define-color focused_entry_border @theme_selected_bg_color;
+@define-color focused_entry_inset alpha (@theme_selected_bg_color, 0.50);
+
+@define-color toolbar_gradient_base #080808;
+@define-color toolbar_gradient_step1 #0a0a0a;
+@define-color toolbar_gradient_step2 #111111;
+@define-color toolbar_gradient_final #151515;
+
+@define-color toolbar_active_button_color #222222;
+
+@define-color expander_row_selected_color alpha (@theme_base_color, 0.60);
+
+@define-color menu_controls_color #aaa8ac;
+
+@define-color keyboard_focus_border_a alpha (@theme_fg_color, 0.30);
+@define-color keyboard_focus_border_b alpha (@theme_fg_color, 0.10);
+
+@define-color trough_bg_color_a #000000;
+@define-color trough_bg_color_b #111111;
+
+@define-color frame_color #756a7f;
+
+@define-color active_switch_bg_color_a shade (@theme_selected_bg_color, 0.85);
+@define-color active_switch_bg_color_b @theme_selected_bg_color;
+
+@define-color scale_fill shade (@insensitive_border_color, 0.90);
+@define-color scale_border_a shade (@internal_element_color, 0.90);
+@define-color scale_border_b shade (@internal_element_color, 0.65);
+
+/* FIXME: needs dark colors from here */
+@define-color link_color #4a90d9;
+@define-color warning_color #f57900;
+@define-color error_color #cc0000;
+@define-color success_color #4e9a06;
+
+@define-color info_fg_color rgb (181, 171, 156);
+@define-color info_bg_color rgb (252, 252, 189);
+@define-color warning_fg_color rgb (173, 120, 41);
+@define-color warning_bg_color rgb (250, 173, 61);
+@define-color question_fg_color rgb (97, 122, 214);
+@define-color question_bg_color rgb (138, 173, 212);
+@define-color error_fg_color rgb (166, 38, 38);
+@define-color error_bg_color rgb (237, 54, 54);
+
+@define-color os_chrome_bg_color black;
+@define-color os_chrome_fg_color #ccc;
+@define-color os_chrome_selected_bg_color #333;
+@define-color os_chrome_selected_fg_color white;
+
+@define-color chrome_bg_color #1e1a17;
+@define-color chrome_fg_color #fff;
+
+@define-color scale_progress_fill #2c85e2;
+@define-color scale_progress_border #1864b2;
+@define-color scale_progress_border_b #3e90e5;
+
+@import url("gtk-widgets-assets-dark.css");
+@import url("gtk-widgets.css");
diff --git a/gtk3/theme/gtk-widgets-assets-dark.css b/gtk3/theme/gtk-widgets-assets-dark.css
new file mode 100644
index 0000000..9a5ddee
--- /dev/null
+++ b/gtk3/theme/gtk-widgets-assets-dark.css
@@ -0,0 +1,66 @@
+/*************************
+ * Check and Radio items *
+ *************************/
+
+/* draw regular check and radio items using our SVG assets */
+.check,
+.check row:selected,
+.check row:selected:focused {
+ background-image: url ("assets/checkbox-unchecked-dark.svg");
+}
+
+.check:insensitive,
+.check row:selected:insensitive,
+.check row:selected:focused:insensitive {
+ background-image: url ("assets/checkbox-unchecked-insensitive-dark.svg");
+}
+
+.check:active,
+.check row:selected:active,
+.check row:selected:focused:active {
+ background-image: url ("assets/checkbox-checked-dark.svg");
+}
+
+.check:active:insensitive,
+.check row:selected:active:insensitive,
+.check row:selected:focused:active:insensitive
+{
+ background-image: url ("assets/checkbox-checked-insensitive-dark.svg");
+}
+
+.check:inconsistent,
+.check row:selected:inconsistent,
+.check row:selected:focused:inconsistent {
+ background-image: url ("assets/checkbox-mixed-dark.svg");
+}
+
+.radio,
+.radio row:selected,
+.radio row:selected:focused {
+ background-image: url ("assets/radio-unselected-dark.svg");
+}
+
+.radio:insensitive,
+.radio row:selected:insensitive,
+.radio row:selected:focused:insensitive {
+ background-image: url ("assets/radio-unselected-insensitive-dark.svg");
+}
+
+.radio:active,
+.radio row:selected:active,
+.radio row:selected:focused:active {
+ background-image: url ("assets/radio-selected-dark.svg");
+}
+
+.radio:active:insensitive,
+.radio row:selected:active:insensitive,
+.radio row:selected:focused:active:insensitive {
+ background-image: url ("assets/radio-selected-insensitive-dark.svg");
+}
+
+.radio:inconsistent,
+.radio row:selected:inconsistent,
+.radio row:selected:focused:inconsistent {
+ background-image: url ("assets/radio-mixed-dark.svg");
+}
+
diff --git a/gtk3/theme/gtk-widgets-assets.css b/gtk3/theme/gtk-widgets-assets.css
new file mode 100644
index 0000000..a1bc8e7
--- /dev/null
+++ b/gtk3/theme/gtk-widgets-assets.css
@@ -0,0 +1,65 @@
+/*************************
+ * Check and Radio items *
+ *************************/
+
+/* draw regular check and radio items using our SVG assets */
+.check,
+.check row:selected,
+.check row:selected:focused {
+ background-image: url ("assets/checkbox-unchecked.svg");
+}
+
+.check:insensitive,
+.check row:selected:insensitive,
+.check row:selected:focused:insensitive {
+ background-image: url ("assets/checkbox-unchecked-insensitive.svg");
+}
+
+.check:active,
+.check row:selected:active,
+.check row:selected:focused:active {
+ background-image: url ("assets/checkbox-checked.svg");
+}
+
+.check:active:insensitive,
+.check row:selected:active:insensitive,
+.check row:selected:focused:active:insensitive
+{
+ background-image: url ("assets/checkbox-checked-insensitive.svg");
+}
+
+.check:inconsistent,
+.check row:selected:inconsistent,
+.check row:selected:focused:inconsistent {
+ background-image: url ("assets/checkbox-mixed.svg");
+}
+
+.radio,
+.radio row:selected,
+.radio row:selected:focused {
+ background-image: url ("assets/radio-unselected.svg");
+}
+
+.radio:insensitive,
+.radio row:selected:insensitive,
+.radio row:selected:focused:insensitive {
+ background-image: url ("assets/radio-unselected-insensitive.svg");
+}
+
+.radio:active,
+.radio row:selected:active,
+.radio row:selected:focused:active {
+ background-image: url ("assets/radio-selected.svg");
+}
+
+.radio:active:insensitive,
+.radio row:selected:active:insensitive,
+.radio row:selected:focused:active:insensitive {
+ background-image: url ("assets/radio-selected-insensitive.svg");
+}
+
+.radio:inconsistent,
+.radio row:selected:inconsistent,
+.radio row:selected:focused:inconsistent {
+ background-image: url ("assets/radio-mixed.svg");
+}
diff --git a/gtk3/theme/gtk-widgets.css b/gtk3/theme/gtk-widgets.css
new file mode 100644
index 0000000..e93c29f
--- /dev/null
+++ b/gtk3/theme/gtk-widgets.css
@@ -0,0 +1,1252 @@
+* {
+ engine: adwaita;
+ padding: 1;
+
+ /* Style properties */
+ -GtkToolButton-icon-spacing: 4;
+
+ -GtkTextView-error-underline-color: @error_color;
+
+ -GtkPaned-handle-size: 5;
+
+ -GtkCheckButton-indicator-size: 16;
+ -GtkCheckMenuItem-indicator-size: 12;
+
+ /* The size for scrollbars. The slider is 2px smaller, but we keep it
+ * up so that the whole area is sensitive to button presses for the
+ * slider. The stepper button is larger in both directions, the slider
+ * only in the width
+ */
+
+ -GtkScrolledWindow-scrollbar-spacing: 0;
+ -GtkScrolledWindow-scrollbars-within-bevel: 1;
+
+ -GtkToolItemGroup-expander-size: 12;
+ -GtkExpander-expander-size: 12;
+ -GtkToolbar-internal-padding: 4; /* ??? */
+
+ -GtkMenu-horizontal-padding: 0;
+ -GtkMenu-vertical-padding: 0;
+
+ -GtkWidget-link-color: @link_color;
+ -GtkWidget-visited-link-color: @link_color;
+ -GtkIMHtml-hyperlink-color: @link_color;
+ -GtkHTML-link-color: @link_color;
+
+ -GtkWidget-wide-separators: 1;
+
+ -WnckTasklist-fade-overlay-rect: 0;
+
+ -GtkEntry-inner-border: 2;
+ -GtkEntry-progress-border: 0;
+
+ /* Style */
+ background-color: @theme_bg_color;
+ color: @theme_fg_color;
+
+ -GtkWidget-focus-padding: 2;
+ -GtkWidget-focus-line-width: 1;
+ -adwaita-focus-border-color: alpha (@theme_text_color, 0.4);
+ -adwaita-focus-border-radius: 2;
+ -adwaita-focus-fill-color: none;
+ -adwaita-focus-border-gradient: none;
+ -adwaita-focus-border-dashes: 1;
+
+ -adwaita-inset-left: none;
+ -adwaita-inset-right: none;
+ -adwaita-inset-top: none;
+ -adwaita-inset-bottom: none;
+}
+
+/***************
+ * Base States *
+ ***************/
+*:hover {
+ background-color: shade (@theme_bg_color, 1.02);
+ color: @theme_fg_color;
+}
+
+*:selected {
+ background-color: @theme_selected_bg_color;
+ color: @theme_selected_fg_color;
+}
+
+*:selected:focused {
+ background-color: @theme_selected_bg_color;
+ color: @theme_selected_fg_color;
+}
+
+*:insensitive {
+ background-color: @insensitive_bg_color;
+ color: @insensitive_fg_color;
+ border-color: @insensitive_border_color;
+}
+
+*:active {
+ background-color: shade (@theme_bg_color, 0.915);
+}
+
+.background {
+ border-style: none;
+ border-width: 0;
+ border-radius: 0;
+}
+
+.tooltip {
+ padding: 4 4;
+ border-style: none;
+ background-color: @theme_tooltip_bg_color;
+ color: @theme_tooltip_fg_color;
+}
+
+.grip {
+ background-color: shade (@inactive_frame_color, 0.93);
+}
+
+.rubberband {
+ background-color: alpha (@theme_selected_bg_color, 0.35);
+ border-color: @theme_selected_bg_color;
+ border-style: solid;
+ border-width: 1;
+ border-radius: 2;
+}
+
+.pane-separator {
+ border-style: none;
+ border-width: 0;
+ color: shade (@inactive_frame_color, 0.80);
+}
+
+.pane-separator:prelight,
+.pane-separator:selected {
+ color: @theme_text_color;
+}
+
+/****************
+ * Text Entries *
+ ****************/
+.entry,
+.toolbar.entry {
+ background-color: @theme_base_color;
+ background-image: none;
+
+ border-radius: 2;
+ border-width: 1;
+ border-style: solid;
+ -adwaita-border-gradient: -gtk-gradient (linear,
+ left top, left bottom,
+ from (shade (@internal_element_color, 1.14)),
+ to (shade (@internal_element_color, 1.37)));
+
+ padding: 3;
+
+ -adwaita-inset-top: alpha (@switch_slider_color, 0.50);
+}
+
+.entry:focused {
+ border-color: @focused_entry_border;
+ -adwaita-border-gradient: none;
+
+ -adwaita-inset-top: @focused_entry_inset;
+}
+
+.entry:insensitive {
+ background-color: @insensitive_bg_color;
+ -adwaita-border-gradient: none;
+
+ -adwaita-inset-top: none;
+}
+
+.entry.progressbar {
+ /* FIXME: need correct colors/gradient */
+ background-color: @theme_selected_bg_color;
+ color: @theme_selected_fg_color;
+
+ border-width: 1;
+ border-radius: 1;
+ border-color: @progressbar_border;
+
+ -adwaita-progressbar-pattern: none;
+}
+
+/*****************
+ * GtkSpinButton *
+ *****************/
+.spinbutton,
+.spinbutton:focused {
+ padding: 3 2;
+
+ -adwaita-inset-top: none;
+}
+
+.spinbutton.button,
+.spinbutton.button:prelight,
+.spinbutton.button:active {
+ color: @internal_element_color;
+ background-image: none;
+ background-color: @theme_base_color;
+ border-width: 1;
+ border-style: none;
+}
+
+/****************
+ * Progress bar *
+ ****************/
+.progressbar,
+.progressbar row,
+.progressbar row:hover,
+.progressbar row:selected,
+.progressbar row:selected:focused {
+ background-image: -gtk-gradient (linear,
+ left top, left bottom,
+ from (@progressbar_background_a),
+ to (@progressbar_background_b));
+
+ border-radius: 3;
+ border-style: solid;
+ border-width: 1;
+ border-color: @progressbar_border;
+
+ -adwaita-inset-top: alpha (@theme_base_color, 0.20);
+ -adwaita-progressbar-pattern: -gtk-gradient (linear,
+ left top, right bottom,
+ from (alpha (@progressbar_pattern, 0.00)),
+ color-stop (0.49, alpha (@progressbar_pattern, 0.00)),
+ color-stop (0.50, alpha (@progressbar_pattern, 0.10)),
+ to (alpha (@progressbar_pattern, 0.10)));
+}
+
+GtkProgressBar.trough,
+.trough row,
+.trough row:hover {
+ background-image: -gtk-gradient (linear,
+ left top, left bottom,
+ from (@trough_bg_color_a),
+ to (@trough_bg_color_b));
+
+ border-width: 1;
+ border-style: solid;
+ border-radius: 3;
+ border-color: shade (@inactive_frame_color, 0.925);
+}
+
+.trough row:selected,
+.trough row:selected:focused {
+ background-image: -gtk-gradient (linear,
+ left top, left bottom,
+ from (mix (@trough_bg_color_a, @theme_selected_bg_color, 0.25)),
+ to (mix (@trough_bg_color_b, @theme_selected_bg_color, 0.25)));
+}
+
+GtkProgressBar,
+.trough row {
+ padding: 0;
+}
+
+/************
+ * GtkScale *
+ ************/
+GtkScale {
+ -GtkScale-slider-length: 16;
+ -GtkRange-slider-width: 22;
+ -GtkRange-trough-border: 0;
+}
+
+GtkScale.slider {
+ border-width: 1;
+ border-radius: 3;
+
+ background-image: -gtk-gradient (linear,
+ left top, left bottom,
+ from (@theme_base_color),
+ to (@switch_slider_color));
+
+ -adwaita-border-gradient: -gtk-gradient (linear,
+ left top, left bottom,
+ from (shade (@internal_element_color, 0.90)),
+ to (shade (@internal_element_color, 1.35)));
+}
+
+GtkScale.slider:insensitive {
+ background-image: none;
+ -adwaita-border-gradient: none;
+}
+
+GtkScale.scale-has-marks-below.slider.horizontal {
+ -adwaita-border-gradient: -gtk-gradient (linear,
+ left top, left bottom,
+ from (shade (@internal_element_color, 0.90)),
+ to (shade (@internal_element_color, 1.35)));
+}
+
+GtkScale.scale-has-marks-below.slider.vertical {
+ -adwaita-border-gradient: -gtk-gradient (linear,
+ left top, right top,
+ from (shade (@internal_element_color, 0.90)),
+ to (shade (@internal_element_color, 1.35)));
+}
+
+GtkScale.scale-has-marks-above.slider.horizontal {
+ -adwaita-border-gradient: -gtk-gradient (linear,
+ left bottom, left top,
+ from (shade (@internal_element_color, 0.90)),
+ to (shade (@internal_element_color, 1.35)));
+}
+
+GtkScale.scale-has-marks-above.slider.vertical {
+ -adwaita-border-gradient: -gtk-gradient (linear,
+ right top, left top,
+ from (shade (@internal_element_color, 0.90)),
+ to (shade (@internal_element_color, 1.35)));
+}
+
+GtkScale.trough {
+ border-width: 1;
+ border-radius: 2;
+ border-style: solid;
+
+ -adwaita-border-gradient: -gtk-gradient (linear,
+ left top, left bottom,
+ from (@scale_border_a),
+ to (@scale_border_b));
+ background-color: @scale_fill;
+}
+
+GtkScale.trough.horizontal {
+ -adwaita-inset-bottom: alpha (@theme_base_color, 0.50);
+}
+
+GtkScale.trough.vertical {
+ -adwaita-inset-right: alpha (@theme_base_color, 0.50);
+}
+
+GtkScale.trough:insensitive {
+ background-color: @insensitive_bg_color;
+ background-image: none;
+
+ -adwaita-border-gradient: none;
+ -adwaita-inset-bottom: none;
+}
+
+GtkScale.progressbar {
+ background-color: @scale_progress_fill;
+
+ border-width: 1;
+ border-radius: 3;
+ border-style: solid;
+
+ -adwaita-border-gradient: -gtk-gradient (linear,
+ left top, left bottom,
+ from (@scale_progress_border_a),
+ to (@scale_progress_border_b));
+ -adwaita-progressbar-pattern: none;
+}
+
+GtkScale.mark {
+ background-color: shade (@theme_bg_color, 0.56);
+}
+
+GtkFrame,
+GtkCalendar {
+ padding: 2;
+}
+
+.frame {
+ color: lighter (@theme_fg_color);
+ border-style: none;
+ border-width: 0;
+}
+
+/*****************
+ * Notebooks and *
+ * tabs *
+ *****************/
+.notebook {
+ padding: 2;
+
+ border-color: @notebook_border;
+ border-style: solid;
+ border-width: 1;
+ border-radius: 0;
+
+ background-color: @theme_base_color;
+
+ -GtkNotebook-tab-overlap: 8;
+ -GtkNotebook-tab-curvature: 6;
+}
+
+.notebook tab {
+ padding: 3 8 0;
+ background-image: -gtk-gradient (linear,
+ left top, left bottom,
+ from (@notebook_tab_gradient_a),
+ to (@notebook_tab_gradient_b));
+
+ -adwaita-focus-border-radius: 2;
+}
+
+.notebook tab:active {
+ border-width: 1;
+
+ -adwaita-border-gradient: -gtk-gradient (linear,
+ left top, left bottom,
+ from (@notebook_active_tab_border),
+ to (@notebook_border));
+
+ -adwaita-selected-tab-color: @notebook_selected_tab_color;
+ background-color: @theme_base_color;
+ background-image: none;
+}
+
+.notebook tab .button,
+.notebook tab .button:hover,
+.notebook tab .button:hover:active {
+ border-style: none;
+ background-color: alpha (@theme_bg_color, 0.0);
+ background-image: none;
+}
+
+/**************
+ * ComboBoxes *
+ **************/
+
+GtkComboBox {
+ padding: 1 2;
+
+ -GtkWidget-focus-padding: 0;
+ -GtkWidget-focus-line-width: 0;
+
+ -GtkComboBox-arrow-scaling: 0.5;
+ -GtkComboBox-shadow-type: 2;
+}
+
+GtkComboBox .button {
+ color: @internal_element_color;
+ padding: 1;
+}
+
+GtkComboBox .button:prelight {
+ color: shade (@internal_element_color, 0.66);
+}
+
+/**************
+ * Scrollbars *
+ **************/
+
+.scrollbar {
+ background-image: none;
+ border-style: solid;
+ -GtkRange-trough-border: 2;
+ -GtkRange-arrow-scaling: 0.444;
+ -GtkRange-slider-width: 18;
+ -GtkRange-stepper-size: 18;
+ -GtkScrollbar-min-slider-length: 30; /* minimum size for the slider. sadly can't be in '.slider' where it belongs */
+
+ -GtkRange-stepper-spacing: 1;
+ -GtkRange-trough-under-steppers: 1;
+}
+
+.scrollbar.trough {
+ background-image: none;
+ background-color: shade (@theme_bg_color, 0.882);
+ border-width: 0;
+ border-radius: 0;
+}
+
+.scrollbar.slider,
+.scrollbar.button {
+ background-image: none;
+ background-color: @theme_base_color;
+ border-color: @button_border;
+ border-radius: 3;
+ border-width: 1;
+}
+
+.scrollbar.slider:prelight {
+ background-image: none;
+ background-color: @theme_base_color;
+ border-color: shade (@highlighted_border, 0.964);
+}
+
+.scrollbar.slider:prelight:active {
+ background-image: none;
+ background-color: @theme_base_color;
+ border-color: @theme_selected_bg_color;
+}
+
+.scrollbar.button {
+ color: @internal_element_color;
+}
+
+.scrollbar.button:prelight {
+ background-image: none;
+ background-color: @theme_base_color;
+ border-color: shade (@highlighted_border, 0.964)
+}
+
+.scrollbar.button:prelight:active {
+ background-image: none;
+ background-color: @theme_base_color;
+ border-color: shade (@highlighted_border, 0.964)
+}
+
+.scrollbar.button:insensitive {
+ color: lighter (@internal_element_color);
+ background-color: @theme_base_color;
+}
+
+.scrollbar.slider:insensitive {
+ background-color: @theme_base_color;
+}
+
+.scrollbar.trough:insensitive {
+ background-color: shade (@theme_bg_color, 0.882);
+}
+
+/***********
+ * Buttons *
+ ***********/
+.button {
+ padding: 1 4;
+
+ -adwaita-focus-fill-color: alpha (@theme_base_color, 0.35);
+ -adwaita-focus-border-gradient: -gtk-gradient (linear,
+ left top, left bottom,
+ from (alpha (@keyboard_focus_border_a, 0.62)),
+ to (alpha (@keyboard_focus_border_b, 0.62)));
+ -adwaita-focus-border-radius: 1;
+ -adwaita-focus-border-dashes: 0;
+ -GtkWidget-focus-line-width: 2;
+
+ -GtkButton-child-displacement-x: 1;
+ -GtkButton-child-displacement-y: 1;
+ -GtkButton-image-spacing: 4;
+ -GtkButton-interior-focus: true;
+ -GtkButton-default-border: 0;
+ -GtkButton-inner-border: 0;
+
+ border-radius: 2;
+ border-width: 1;
+ border-color: @button_border;
+ border-style: solid;
+
+ background-image: -gtk-gradient (linear,
+ left top, left bottom,
+ from (@button_gradient_color_a),
+ to (@button_gradient_color_b));
+}
+
+.button:hover,
+.toolbar.button:hover {
+ border-color: @button_border;
+ background-image: -gtk-gradient (linear,
+ left top, left bottom,
+ from (@button_hover_gradient_color_a),
+ to (@button_hover_gradient_color_b));
+}
+
+.button:active,
+.toolbar .button:active,
+.button:hover:active,
+.toolbar.button:hover:active {
+ background-image: -gtk-gradient (linear,
+ left top, left bottom,
+ from (@button_active_gradient_color_a),
+ to (alpha (@button_active_gradient_color_b, 0.13)));
+ border-color: @highlighted_border;
+}
+
+.button:insensitive {
+ background-image: none;
+ background-color: @insensitive_bg_color;
+ color: @insensitive_fg_color;
+}
+
+.button.default {
+ border-width: 2;
+ border-color: shade (@button_border, 1.10);
+}
+
+/*********
+ * Menus *
+ *********/
+
+* .menu {
+ background-color: @menu_bg_color;
+ color: @menu_fg_color;
+}
+
+.menu {
+ border-style: solid;
+ border-width: 0;
+ border-radius: 0;
+ border-color: @inactive_frame_color;
+
+ -GtkMenuItem-arrow-scaling: 0.4;
+}
+
+/* this controls the general appearance of the menubar */
+.menubar {
+ background-image: -gtk-gradient (linear,
+ left top, left bottom,
+ from (@theme_bg_color),
+ color-stop (0.45, shade (@theme_bg_color, 0.97)),
+ to (shade (@theme_bg_color, 0.99)));
+ border-width: 0;
+ border-style: none;
+ padding: 4;
+ color: @theme_text_color;
+
+ -GtkWidget-window-dragging: true;
+ -GtkMenuBar-internal-padding: 0;
+}
+
+.menubar.menuitem {
+ border-width: 0;
+ border-style: none;
+ padding: 3 5;
+}
+
+/* remove the image from the prelight areas */
+.menubar.menuitem:prelight {
+ background-image: none;
+ background-color: @menu_bg_color;
+ color: @menu_fg_color;
+
+ border-style: solid;
+ border-radius: 5;
+ border-width: 0;
+ border-color: @inactive_frame_color;
+}
+
+.menuitem:insensitive {
+ /* there is some weird alpha precomposing issues with this - ghosts on dark background */
+ color: mix (@menu_fg_color, @menu_bg_color, 0.8);
+ background-color: shade (@menu_bg_color, 1.10);
+}
+
+.menuitem {
+ -adwaita-menuitem-arrow-color: @menu_controls_color;
+ padding: 4;
+}
+
+.menuitem.accelerator {
+ color: alpha (@menu_fg_color, 0.4);
+}
+
+.menuitem.accelerator:prelight,
+.menuitem.accelerator:active {
+ color: alpha (@menu_fg_color, 0.3);
+}
+
+.menuitem:active,
+.menuitem:prelight {
+ background-color: @theme_selected_bg_color;
+ color: @theme_selected_fg_color;
+ border-style: solid;
+ border-width: 0;
+ border-radius: 0;
+ border-color: darker (@theme_selected_bg_color);
+}
+
+.menu.separator {
+ border-color: @inactive_frame_color;
+
+ -GtkSeparatorMenuItem-horizontal-padding: 0;
+ -GtkWidget-separator-height: 1;
+}
+
+/* menu radio and check items are drawn differently */
+.menu.check:active {
+ color: @menu_controls_color;
+}
+
+.menu.radio:active {
+ color: @menu_controls_color;
+}
+
+.menu.check:prelight {
+ color: @theme_selected_fg_color;
+}
+
+.menu.radio:prelight {
+ color: @theme_selected_fg_color;
+}
+
+/************
+ * Toolbars *
+ ************/
+.toolbar {
+ border-style: solid;
+ border-color: darker (@theme_bg_color);
+ border-width: 1;
+ border-radius: 0;
+ padding: 1;
+}
+
+.toolbar:insensitive {
+ color: alpha (@theme_fg_color, 0.6);
+}
+
+/********************
+ * Primary Toolbars *
+ ********************/
+
+.primary-toolbar.toolbar {
+ background-image: -gtk-gradient (linear,
+ left top,
+ left bottom,
+ from (@toolbar_gradient_base),
+ color-stop (0.16, @toolbar_gradient_step1),
+ color-stop (0.90, @toolbar_gradient_step2),
+ to (@toolbar_gradient_final));
+ border-width: 1 0 1 0;
+ border-radius: 0;
+ border-style: solid;
+
+ -adwaita-border-gradient: -gtk-gradient (linear,
+ left top, left bottom,
+ from (shade (@theme_bg_color, 0.56)),
+ to (shade (@theme_bg_color, 0.83)));
+
+ padding: 2;
+
+ -GtkWidget-window-dragging: true;
+ -GtkToolbar-button-relief: 0;
+}
+
+.primary-toolbar.toolbar:insensitive {
+ background-image: none;
+ background-color: shade (@theme_bg_color, 0.97);
+
+ border-style: solid;
+ border-width: 1 0 1 0;
+ -adwaita-border-gradient: none;
+ border-color: shade (@theme_bg_color, 0.91);
+}
+
+/* primary toolbar buttons */
+.primary-toolbar.toolbar.button {
+ border-style: none;
+ border-width: 1;
+ border-radius: 4;
+ background-image: none;
+ background-color: alpha (@theme_base_color, 0.0);
+
+ -adwaita-focus-border-radius: 3;
+ -adwaita-focus-fill-color: alpha (@theme_base_color, 0.20);
+ -adwaita-focus-border-gradient: -gtk-gradient (linear,
+ left top, left bottom,
+ from (alpha (shade (@toolbar_active_button_color, 1.25), 0.90)),
+ to (alpha (@toolbar_active_button_color, 0.62)));
+}
+
+.primary-toolbar.toolbar.button:insensitive {
+ border-style: none;
+ border-width: 0;
+
+ color: @insensitive_fg_color;
+
+ background-image: none;
+ background-color: alpha (@theme_base_color, 0.0);
+ -GtkWidget-focus-line-width: 0;
+}
+
+.primary-toolbar.toolbar.button:hover {
+ border-style: none;
+ background-image: -gtk-gradient (linear,
+ left top, left bottom,
+ from (alpha (@theme_base_color, 0.0)),
+ color-stop (0.54, alpha (shade (@theme_base_color, 0.92), 0.49)),
+ to (alpha (@theme_base_color, 0.0)));
+}
+
+.primary-toolbar.toolbar.button:active {
+ border-style: solid;
+ -adwaita-border-gradient: -gtk-gradient (linear,
+ left top, left bottom,
+ from (shade (@toolbar_active_button_color, 0.8)),
+ to (shade (@toolbar_active_button_color, 1.4)));
+
+ background-image: -gtk-gradient (linear,
+ left top, left bottom,
+ from (shade (@toolbar_gradient_base, 0.95)),
+ to (alpha (shade (@toolbar_gradient_base, 0.85), 0.0)));
+
+ color: @theme_fg_color;
+}
+
+.primary-toolbar.toolbar.button:active:hover {
+ border-style: solid;
+ background-image: -gtk-gradient (linear,
+ left top, left bottom,
+ from (alpha (shade (@toolbar_gradient_base, 0.96), 0.7)),
+ to (alpha (shade (@toolbar_gradient_base, 1.14), 0.0)));
+
+ color: @theme_base_color;
+}
+
+.primary-toolbar.toolbar.button:active:insensitive {
+ border-color: @insensitive_border_color;
+
+ -adwaita-border-gradient: none;
+ background-image: none;
+}
+
+.primary-toolbar.toolbar GtkSeparatorToolItem {
+ -GtkWidget-wide-separators: 1;
+ -GtkWidget-separator-width: 1;
+
+ border-style: solid;
+ border-width: 1;
+ border-color: shade (@theme_bg_color, 0.56);
+ -adwaita-border-gradient: none;
+}
+
+/* primary toolbar raised buttons */
+.primary-toolbar.toolbar.raised.button {
+ border-width: 1;
+ border-style: solid;
+
+ background-image: -gtk-gradient (linear,
+ left top, left bottom,
+ from (@button_gradient_color_a),
+ to (@button_gradient_color_b));
+
+ -GtkWidget-focus-line-width: 2;
+}
+
+.primary-toolbar.toolbar.raised.button:insensitive {
+ background-image: none;
+}
+
+.primary-toolbar.toolbar.raised.button:hover {
+ border-color: @button_border;
+ background-image: -gtk-gradient (linear,
+ left top, left bottom,
+ from (@button_hover_gradient_color_a),
+ to (@button_hover_gradient_color_b));
+ border-width: 1;
+ border-style: solid;
+}
+
+.primary-toolbar.toolbar.raised.button:hover:active,
+.primary-toolbar.toolbar.raised.button:active {
+ background-image: -gtk-gradient (linear,
+ left top, left bottom,
+ from (@button_active_gradient_color_a),
+ to (alpha (@button_active_gradient_color_b, 0.13)));
+ background-color: @theme_base_color;
+
+ border-color: @highlighted_border;
+ border-width: 1;
+ border-style: solid;
+}
+
+.primary-toolbar.toolbar.raised.button:insensitive:active {
+ border-style: solid;
+ border-width: 1;
+ background-image: none;
+}
+
+/* progressbars on primary toolbar entries are special */
+.primary-toolbar.toolbar.entry.progressbar {
+ /* FIXME: need correct colors/gradient */
+ background-image: -gtk-gradient (linear,
+ left top, left bottom,
+ from (@trough_bg_color_a),
+ to (@trough_bg_color_b));
+
+ border-width: 0;
+ border-radius: 2;
+ border-color: shade (@inactive_frame_color, 0.925);
+
+ color: @theme_text_color;
+
+ -adwaita-progressbar-pattern: none;
+}
+
+/*******************
+ * Inline toolbars *
+ *******************/
+
+.inline-toolbar.toolbar {
+ border-width: 1;
+ border-radius: 3;
+ border-style: solid;
+
+ background-image: -gtk-gradient (linear,
+ left top,
+ left bottom,
+ from (@toolbar_gradient_base),
+ color-stop (0.16, @toolbar_gradient_step1),
+ color-stop (0.90, @toolbar_gradient_step2),
+ color-stop (0.98, @toolbar_gradient_final),
+ color-stop (0.99, shade (@theme_bg_color, 0.83)),
+ to (shade (@theme_bg_color, 0.83)));
+}
+
+/*************
+ * GtkSwitch *
+ *************/
+
+GtkSwitch {
+ font: bold condensed 10;
+}
+
+GtkSwitch.trough {
+ color: shade (@internal_element_color, 0.60);
+ border-radius: 1;
+ border-width: 1;
+ border-style: solid;
+ border-color: shade (@frame_color, 1.22);
+ background-image: -gtk-gradient (linear,
+ left top, left bottom,
+ from (@trough_bg_color_a),
+ to (@trough_bg_color_b));
+
+ -adwaita-inset-bottom: alpha (@theme_base_color, 0.24);
+}
+
+GtkSwitch.trough:active {
+ color: @theme_base_color;
+ background-image: -gtk-gradient (linear,
+ left top, left bottom,
+ from (@active_switch_bg_color_a),
+ to (@active_switch_bg_color_b));
+
+ -adwaita-border-gradient: -gtk-gradient (linear,
+ left top, left bottom,
+ from (shade (@theme_selected_bg_color, 0.70)),
+ to (shade (@theme_selected_bg_color, 0.94)));
+}
+
+GtkSwitch.trough:insensitive {
+ background-image: none;
+ background-color: shade (@theme_bg_color, 0.9);
+ -adwaita-border-gradient: none;
+
+ -adwaita-inset-bottom: none;
+}
+
+GtkSwitch.slider {
+ border-width: 1;
+ border-radius: 1;
+ border-color: shade (@frame_color, 1.31);
+ border-style: solid;
+ padding: 2;
+ background-image: -gtk-gradient (linear,
+ left top, left bottom,
+ from (@theme_base_color),
+ to (@switch_slider_color));
+
+ -adwaita-switch-grip-color: shade (@switch_slider_color, 0.97);
+
+ -adwaita-inset-top: @switch_slider_color;
+ -adwaita-inset-bottom: alpha (@theme_base_color, 0.50);
+}
+
+GtkSwitch.slider:active {
+ border-color: @switch_slider_border;
+}
+
+GtkSwitch.slider:insensitive {
+ border-style: none;
+ background-image: none;
+ background-color: @insensitive_bg_color;
+
+ -adwaita-inset-top: none;
+ -adwaita-inset-bottom: none;
+}
+
+GtkStatusbar {
+ padding: 5;
+ color: @theme_fg_color;
+ -GtkStatusbar-shadow-type: none;
+}
+
+GtkScrolledWindow.frame {
+ border-style: solid;
+ border-color: darker (@theme_bg_color);
+ border-width: 1;
+ border-radius: 3;
+}
+
+GtkViewport,
+GtkIconView {
+ border-radius: 3;
+ padding: 0;
+}
+
+GtkIconView.view.cell:selected,
+GtkIconView.view.cell:selected:focused {
+ background-color: @theme_selected_bg_color;
+ border-radius: 4;
+
+ /* FIXME: this probably needs to be better;
+ * see https://bugzilla.gnome.org/show_bug.cgi?id=644157
+ */
+ -adwaita-focus-border-color: @progressbar_border;
+ -adwaita-focus-border-radius: 3;
+ -adwaita-focus-border-dashes: 0;
+}
+
+.view {
+ background-color: @theme_base_color;
+ color: @theme_fg_color;
+ border-radius: 0;
+ border-width: 3;
+}
+
+GtkTreeView {
+ -GtkTreeView-vertical-separator: 0;
+ -GtkTreeView-expander-size: 9;
+
+ -GtkWidget-focus-line-width: 1;
+ -adwaita-focus-border-radius: 0;
+ -adwaita-focus-border-dashes: 0;
+ -adwaita-focus-border-color: @keyboard_focus_border_a;
+}
+
+GtkTreeView.separator {
+ background-color: darker (@theme_bg_color);
+}
+
+column-header {
+ padding: 1 2;
+}
+
+column-header .button {
+ border-width: 0;
+ border-radius: 0;
+}
+
+row:hover {
+ border-width: 0;
+}
+
+row:insensitive {
+ border-width: 0;
+}
+
+row:selected:focused {
+ border-width: 0;
+ background-image: -gtk-gradient (linear,
+ left top, left bottom,
+ from (@progressbar_border),
+ color-stop (0.02, @progressbar_border),
+ color-stop (0.03, @theme_selected_bg_color),
+ color-stop (0.97, @theme_selected_bg_color),
+ color-stop (0.98, @progressbar_border),
+ to (@progressbar_border));
+ background-color: @theme_selected_bg_color;
+}
+
+row:selected {
+ border-width: 0;
+ background-image: -gtk-gradient (linear,
+ left top, left bottom,
+ from (@theme_selected_bg_color),
+ to (@theme_selected_bg_color));
+}
+
+.cell {
+ color: @theme_text_color;
+ padding: 2;
+ border-width: 0;
+}
+
+.cell:selected {
+ background-color: @theme_selected_bg_color;
+}
+
+.expander {
+ border-style: solid;
+ border-width: 1;
+ border-radius: 2;
+ border-color: @internal_element_color;
+
+ color: @internal_element_color;
+ background-color: @theme_base_color;
+}
+
+.expander:active {
+ border-style: solid;
+ border-width: 1;
+
+ color: @internal_element_color;
+ border-color: @internal_element_color;
+
+ background-color: @theme_base_color;
+}
+
+.expander:prelight {
+ border-style: solid;
+ border-width: 1;
+
+ color: @internal_element_color;
+ border-color: @internal_element_color;
+
+ background-color: shade (@theme_bg_color, 1.02);
+}
+
+.expander row:selected,
+.expander row:selected:focused {
+ border-style: solid;
+ border-width: 1;
+
+ border-color: @expander_row_selected_color;
+ color: @expander_row_selected_color;
+ background-color: @theme_selected_bg_color;
+}
+
+/* Calendars */
+GtkCalendar.view {
+ border-radius: 3;
+ border-style: solid;
+ border-width: 1;
+ padding: 2;
+}
+
+GtkCalendar.header {
+ border-radius: 0;
+ background-image: -gtk-gradient (linear,
+ left top,
+ left bottom,
+ from (shade (@theme_bg_color, 1.04)),
+ to (shade (@theme_bg_color, 0.89)));
+ border-width: 0;
+}
+
+GtkCalendar.button {
+ background-image: -gtk-gradient (linear,
+ left top,
+ left bottom,
+ from (rgba (0, 0, 0, 0)),
+ to (rgba (0, 0, 0, 0)));
+}
+
+.highlight,
+GtkCalendar.highlight {
+ background-color: @theme_selected_bg_color;
+ color: @theme_selected_fg_color;
+ border-radius: 0;
+ padding: 0;
+ border-width: 0;
+}
+
+.info {
+ background-color: @info_bg_color;
+ color: @info_fg_color;
+}
+
+.warning {
+ background-color: @warning_bg_color;
+ color: @warning_fg_color;
+}
+
+.question {
+ background-color: @question_bg_color;
+ color: @question_fg_color;
+}
+
+.error {
+ background-color: @error_bg_color;
+ color: @error_fg_color;
+}
+
+.dim-label {
+ color: mix (@theme_fg_color, @theme_bg_color, 0.50);
+}
+
+.sidebar,
+.sidebar.view {
+ background-color: shade (@theme_bg_color, 0.99);
+}
+
+ApDocView, /* Abiword */
+EogScrollView, /* Eog */
+CheeseThumbView /* Cheese */
+{
+ background-color: @chrome_bg_color;
+ -EogScrollView-shadow-type: none;
+}
+
+/* gnome-terminal */
+TerminalScreen {
+ background-color: @theme_base_color;
+ color: @theme_fg_color;
+ -TerminalScreen-background-darkness: 0.95;
+}
+
+/**********************
+ * Fallback Mode Panel
+ **********************/
+
+PanelWidget,
+PanelApplet,
+PanelApplet > GtkMenuBar.menubar,
+.gnome-panel-menu-bar,
+PanelAppletFrame,
+PanelMenuBar.menubar,
+PanelToplevel {
+ background-color: @os_chrome_bg_color;
+ background-image: none;
+ color: @os_chrome_fg_color;
+}
+
+ClockBox,
+.gnome-panel-menu-bar {
+ font: bold;
+}
+
+PanelApplet > GtkMenuBar.menubar.menuitem:prelight,
+.gnome-panel-menu-bar.menuitem:prelight {
+ background-color: @os_chrome_selected_bg_color;
+ color: @os_chrome_selected_fg_color;
+ border-color: lighter (@os_chrome_selected_bg_color);
+}
+
+/* panel buttons (clock, tasklist etc) */
+PanelApplet GtkToggleButton {
+ background-color: @os_chrome_bg_color;
+ background-image: none;
+ border-color: @os_chrome_bg_color;
+ border-width: 1;
+ color: @os_chrome_fg_color;
+}
+
+PanelApplet GtkToggleButton:prelight:active,
+PanelApplet GtkToggleButton:active {
+ background-color: @os_chrome_selected_bg_color;
+ background-image: none;
+ border-color: lighter (@os_chrome_selected_bg_color);
+ border-width: 1;
+ color: @os_chrome_selected_fg_color;
+}
+
+PanelApplet GtkToggleButton:prelight {
+ background-color: @os_chrome_bg_color;
+ background-image: none;
+ border-color: @os_chrome_bg_color;
+ border-width: 1;
+ color: @os_chrome_selected_fg_color;
+}
+
+NaTrayApplet {
+ -NaTrayApplet-icon-padding: 12;
+ -NaTrayApplet-icon-size: 16;
+}
+
+WnckPager, WnckTasklist {
+ background-color: @os_chrome_selected_bg_color;
+ background-image: none;
+ color: @os_chrome_fg_color;
+}
+
+GsmFailWhaleDialog,
+GsmFailWhaleDialog * {
+ background-color: @os_chrome_bg_color;
+ background-image: none;
+ color: @os_chrome_fg_color;
+}
diff --git a/gtk3/theme/gtk.css b/gtk3/theme/gtk.css
new file mode 100644
index 0000000..a1eb610
--- /dev/null
+++ b/gtk3/theme/gtk.css
@@ -0,0 +1,111 @@
+/* Default color scheme */
+@define-color base_color #ffffff;
+@define-color bg_color #ededed;
+@define-color tooltip_bg_color #343434;
+@define-color selected_bg_color #4a90d9;
+@define-color text_color #2e3436;
+@define-color fg_color #2e3436;
+@define-color tooltip_fg_color #ffffff;
+@define-color selected_fg_color #ffffff;
+
+/* Colormap actually used by the theme, to be overridden in other css files */
+@define-color theme_base_color @base_color;
+@define-color theme_text_color @text_color;
+@define-color theme_bg_color @bg_color;
+@define-color theme_fg_color @fg_color;
+@define-color theme_tooltip_bg_color @tooltip_bg_color;
+@define-color theme_tooltip_fg_color @tooltip_fg_color;
+@define-color theme_selected_bg_color @selected_bg_color;
+@define-color theme_selected_fg_color @selected_fg_color;
+
+@define-color menu_bg_color shade (@theme_bg_color, 0.45);
+@define-color menu_fg_color #ffffff;
+@define-color menu_controls_color #aaaaaa;
+
+@define-color link_color #4a90d9;
+@define-color frame_color #8a9580;
+@define-color inactive_frame_color #c7ccc1;
+@define-color warning_color #f57900;
+@define-color error_color #cc0000;
+@define-color success_color #4e9a06;
+
+@define-color info_fg_color rgb (181, 171, 156);
+@define-color info_bg_color rgb (252, 252, 189);
+@define-color warning_fg_color rgb (173, 120, 41);
+@define-color warning_bg_color rgb (250, 173, 61);
+@define-color question_fg_color rgb (97, 122, 214);
+@define-color question_bg_color rgb (138, 173, 212);
+@define-color error_fg_color rgb (166, 38, 38);
+@define-color error_bg_color rgb (237, 54, 54);
+
+@define-color keyboard_focus_border_a #a2c9f1;
+@define-color keyboard_focus_border_b #6794cf;
+
+@define-color os_chrome_bg_color black;
+@define-color os_chrome_fg_color #ccc;
+@define-color os_chrome_selected_bg_color #333;
+@define-color os_chrome_selected_fg_color white;
+
+@define-color chrome_bg_color #1e1a17;
+@define-color chrome_fg_color #fff;
+
+@define-color focused_entry_border #579eea;
+@define-color focused_entry_inset alpha (#d7e4f1, 0.50);
+
+@define-color button_gradient_color_a #f4f6f4;
+@define-color button_gradient_color_b #d7dad7;
+@define-color button_border #a7aba7;
+
+@define-color button_hover_gradient_color_a @theme_base_color;
+@define-color button_hover_gradient_color_b shade (@button_gradient_color_a, 0.94);
+
+@define-color button_active_gradient_color_a #a2a9a2;
+@define-color button_active_gradient_color_b shade (@button_active_gradient_color_a, 0.83);
+
+@define-color insensitive_bg_color #f4f4f2;
+@define-color insensitive_fg_color #a7aba7;
+@define-color insensitive_border_color shade (@internal_element_color, 1.37);
+
+@define-color trough_bg_color_a #ccccc7;
+@define-color trough_bg_color_b #e4e4e1;
+
+@define-color active_switch_bg_color_a #509ae7;
+@define-color active_switch_bg_color_b #84b8ee;
+
+@define-color switch_slider_color #eeeeec;
+@define-color switch_slider_border #2a79cb;
+
+@define-color progressbar_background_a #76b0ec;
+@define-color progressbar_background_b #1f72c6;
+@define-color progressbar_border #3277bf;
+@define-color progressbar_pattern #000000;
+
+@define-color internal_element_color #888a85;
+
+@define-color scale_fill @insensitive_border_color;
+@define-color scale_border_a @internal_element_color;
+@define-color scale_border_b shade (@internal_element_color, 1.25);
+@define-color scale_progress_fill #2c85e2;
+@define-color scale_progress_border_a #1864b2;
+@define-color scale_progress_border_b #3e90e5;
+
+@define-color highlighted_border #8a8f8a;
+
+@define-color notebook_border #a6a6a6;
+@define-color notebook_active_tab_border #1372d3;
+@define-color notebook_selected_tab_color #8dc0f3;
+
+@define-color notebook_tab_gradient_a @theme_base_color;
+@define-color notebook_tab_gradient_b @switch_slider_color;
+
+@define-color toolbar_gradient_base #aaaa9e;
+@define-color toolbar_gradient_step1 #bcbcb4;
+@define-color toolbar_gradient_step2 #d9d9d7;
+@define-color toolbar_gradient_final #e5e5e2;
+
+@define-color toolbar_active_button_color #909081;
+
+@define-color expander_row_selected_color #acccee;
+
+@import url("gtk-widgets-assets.css");
+@import url("gtk-widgets.css");
diff --git a/gtk3/theme/settings.ini b/gtk3/theme/settings.ini
new file mode 100644
index 0000000..1a08b65
--- /dev/null
+++ b/gtk3/theme/settings.ini
@@ -0,0 +1,3 @@
+[Settings]
+gtk-color-scheme = "base_color:#ffffff\nbg_color:#ededed\ntooltip_bg_color:#343434\nselected_bg_color:#4a90d9\ntext_color:#2e3436\nfg_color:#2e3436;\ntooltip_fg_color:#ffffff\nselected_fg_color:#ffffff"
+gtk-auto-mnemonics = 1