diff --git a/src/libsysprof-gtk/libsysprof-gtk.gresource.xml b/src/libsysprof-gtk/libsysprof-gtk.gresource.xml
index 2a36c015..c4a74e39 100644
--- a/src/libsysprof-gtk/libsysprof-gtk.gresource.xml
+++ b/src/libsysprof-gtk/libsysprof-gtk.gresource.xml
@@ -2,5 +2,6 @@
sysprof-callgraph-view.ui
+ style.css
diff --git a/src/libsysprof-gtk/meson.build b/src/libsysprof-gtk/meson.build
index 2c517f6e..d5948613 100644
--- a/src/libsysprof-gtk/meson.build
+++ b/src/libsysprof-gtk/meson.build
@@ -4,6 +4,7 @@ libsysprof_gtk_public_sources = [
]
libsysprof_gtk_private_sources = [
+ 'sysprof-css.c',
]
libsysprof_gtk_public_headers = [
diff --git a/src/libsysprof-gtk/style.css b/src/libsysprof-gtk/style.css
new file mode 100644
index 00000000..a71f8c0d
--- /dev/null
+++ b/src/libsysprof-gtk/style.css
@@ -0,0 +1,26 @@
+progresscell progress {
+ background: @accent_bg_color;
+ border-radius: 3px;
+ border: 1px solid shade(@accent_bg_color, .75);
+ border-right: none;
+}
+
+progresscell progress:backdrop {
+ background: @borders;
+ border-color: shade(@borders, .9);
+}
+
+progresscell trough {
+ background: alpha(@borders, .5);
+ border: 1px solid @borders;
+ border-radius: 3px;
+}
+
+progresscell label {
+ font-size: 0.9em;
+ padding: 1px 3px;
+}
+
+progresscell label.in-progress {
+ color: @accent_fg_color;
+}
diff --git a/src/libsysprof-gtk/sysprof-css-private.h b/src/libsysprof-gtk/sysprof-css-private.h
new file mode 100644
index 00000000..608ced5b
--- /dev/null
+++ b/src/libsysprof-gtk/sysprof-css-private.h
@@ -0,0 +1,29 @@
+/* sysprof-css-private.h
+ *
+ * Copyright 2023 Christian Hergert
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ */
+
+#pragma once
+
+#include
+
+G_BEGIN_DECLS
+
+void _sysprof_css_init (void);
+
+G_END_DECLS
diff --git a/src/libsysprof-gtk/sysprof-css.c b/src/libsysprof-gtk/sysprof-css.c
new file mode 100644
index 00000000..464cadbe
--- /dev/null
+++ b/src/libsysprof-gtk/sysprof-css.c
@@ -0,0 +1,38 @@
+/* sysprof-css.c
+ *
+ * Copyright 2023 Christian Hergert
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ */
+
+#include "config.h"
+
+#include "sysprof-css-private.h"
+
+void
+_sysprof_css_init (void)
+{
+ static GtkCssProvider *css;
+
+ if (css == NULL)
+ {
+ css = gtk_css_provider_new ();
+ gtk_css_provider_load_from_resource (css, "/libsysprof-gtk/style.css");
+ gtk_style_context_add_provider_for_display (gdk_display_get_default (),
+ GTK_STYLE_PROVIDER (css),
+ G_MAXUINT);
+ }
+}