diff --git a/README.md b/README.md index df58fb3..bc6040d 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,16 @@ # Diehard4 GTK3 Theme +> **This is a modified version of Diehard4.** +> Original theme by **obscurant** (2016). Modified in **September 2026** by +> **zavage**: the GTK3 sheets were rewritten for the post-3.20 CSS node model +> (the originals target GTK 3.18 and render almost nothing on 3.24), and the +> palette was retargeted to the on-screen colours from *Live Free or Die Hard*. +> See the sections at the end of this file for the full list of changes. +> +> Licensed GPL-3.0, same as the original. Original copyright is retained in +> `LICENSE` and in `metacity-1/metacity-theme-1.xml`. + ![screenshot](http://i.imgur.com/7yelOkR.png) Full rewrite of the gtk2/gtk3 themes. Includes themes for cinnamon, openbox, xfwm, pekwm and tint2. Unity support is included, but it's not so great. @@ -31,3 +41,121 @@ v1.2 • gtk2 input padding • gtk2 progress bar height • Added style for Reddit Reader desklet in Cinnamon theme + +--- + +## GTK3 port (v2.0, 2026-09-18) + +The GTK3 half of this theme was written for GTK 3.18 and stopped working when +GTK 3.20 replaced the CSS class model with element nodes. On GTK 3.24 the old +sheets parsed but matched almost nothing, so buttons, entries, tabs, scales and +scrollbars rendered as bare rectangles. + +`gtk-3.0/` has been rewritten against the current node model: + +| file | contents | +|---|---| +| `gtk.css` | colour definitions only — recolour the theme here | +| `widgets.css` | all widget rules, node-selector based | +| `mate.css` | MATE panel, applets, window list, Caja, terminal | +| `gtk-dark.css` | alias of `gtk.css` (the theme is already dark) | +| `legacy/` | the original 3.18 sheets, unmodified, for reference | + +Palette, metrics and design language are unchanged. Deliberate deviations, +all made because the original value no longer reads on 3.24: + +* `trough_border_color` was `#111B25`, within one step of the window + background — scale, progressbar and switch troughs were invisible. Now + `@light_color`, the same border entries already used. +* Keyboard focus draws a faint dashed outline. The original set + `-GtkWidget-focus-line-width: 0`, which on 3.24 leaves no focus cue at all. +* Entries take an accent-coloured border on focus. +* `GtkSwitch` is new — it barely existed in MATE in 2016 and the original + never styled it. +* Notebook tab padding is `3px 10px` rather than `1px 8px`; the old value + is below the minimum tab height GTK now enforces. + +Do not put `gtk-application-prefer-dark-theme` in `gtk-3.0/settings.ini`. +It makes GTK reload the theme, which re-reads the file, and applications hang +on startup. The theme ships without a `settings.ini` for that reason. + +The GTK2 sheet (`gtk-2.0/gtkrc`) is untouched and still correct — GTK2 never +changed under it. It needs the `gtk2` and `gtk-engines` packages installed to +have any effect. + +Window decorations come from `metacity-1/`, which Marco (MATE) reads directly. +Emerald is not required and has not been maintained since the Compiz Fusion +era. + +### Screen-accurate recolour (2026-09-18) + +Palette retargeted to the WAR10CK window in *Live Free or Die Hard*: + +* `bg_color` `#23425E` — window and titlebar +* `selected_bg_color` `#BA6A07` — the orange edge bars and accents + +Supporting shades are derived from those two with the original theme's own +ratios (raised `x1.42`, recessed `x0.72`). Text had to be lifted: the old +`#868A8E` scores only 3.0:1 on `#23425E`, so normal text is now `#B4C4D2` +(5.85:1) and bright text `#E8F0F7` (9.06:1). + +The `metacity-1/` pixmaps were remapped the same way — each pixel is +projected onto the segment between its two nearest source anchors +(`#9F440D` orange, `#0D151D` navy, `#C5CBD1` glyph) and re-blended against +the new anchors, so antialiased edges stay clean. Originals are in +`metacity-1.orig/`. + +Titlebar is taller: `title_vertical_pad` 0 -> 4 and `title_border` top/bottom +5/0 -> 2/2, roughly +7px. The titlebar pixmaps are drawn with +`height="height"` so they stretch to fit — no art changes needed. Title text +was hardcoded `#6d7379` for both focus states; it is now `#E8F0F7` focused / +`#8CA2B6` unfocused, and vertically centred with +`y="(height - title_height) / 2"` instead of the old `y="0-3"` fudge. + +GTK headerbars (CSD apps) went from `min-height: 32px` to `40px` to match. + +### Why the left bar has no diagonal corner + +The Emerald original cut the orange bar at 45 degrees at the bottom-left. That +was tried here and reverted — **Marco cannot reproduce it.** Recording why, so +nobody burns an afternoon rediscovering it: + +* **Marco ignores per-pixel alpha in frame images.** Transparent pixels + composite onto black, not onto the desktop, so a cut-away corner renders as a + black triangle over the wallpaper. Verified by placing a magenta window behind + the corner: the cut came out black, not magenta. Marco can only shape-clip the + `rounded_*` corners, which is a binary mask and not usable for this. Emerald + drew true ARGB decorations; Marco does not. +* Filling the cut with the frame colour instead does render correctly, but it + reads as the bar tapering into the border rather than a corner cut out of it, + which is not the effect — hence the revert. +* **Do not use `max()` or `min()` in a draw_ops expression.** Marco + *segfaults* when it draws a frame using one — no parse error, no warning, the + window manager dies and every window loses its decorations. It only crashes + once a frame is actually drawn, so a WM started with no windows open looks + fine. Plain arithmetic (`height - 13`) is safe, and Marco clamps negative + results on very short windows without complaint. + +`GtkDialog` and `GtkAssistant` do **not** use the `window` CSS node in 3.20+ — +they are `dialog` and `assistant`. A theme that only styles `window` leaves +every dialog, About box, file chooser, colour/font picker and app chooser with +a fully transparent body that renders as a hole through to the desktop. All +three node names are covered in the toplevel background rule. + +Window buttons: the `state` attribute in `metacity-theme-1.xml` is the +**mouse** state, not window focus — `normal` is idle and `prelight` is hover, +and the draw_ops names are misleading about which is which. The idle +minimise/maximise/close glyphs were a dim orange (`#7F5A29`) that worked on +the old near-black bar and turned to mud on `#23425E`; all three are now +`#E8F0F7`, with the orange square still appearing on hover. + +Scrollbars are deliberately **not** accent-coloured. An always-on-screen +element in `#BA6A07` reads as an alarm, so the slider uses +`@scrollbar_slider` (`#454F5A`) — 1.63:1 against the trough at rest, rising +to 2.49:1 on hover so it is still easy to find and grab. Change that one +token in `gtk.css` to restyle every scrollbar; hover, active and disabled +are derived from it with `shade()`. + +Marco caches the metacity theme, so after editing it you must switch the +Marco theme away and back for changes to show. GTK3 reloads CSS on file +change by itself. diff --git a/gtk-3.0/gtk-dark.css b/gtk-3.0/gtk-dark.css new file mode 100644 index 0000000..2db4792 --- /dev/null +++ b/gtk-3.0/gtk-dark.css @@ -0,0 +1,2 @@ +/* Diehard4 is a dark theme already — the dark variant is the theme itself. */ +@import url("gtk.css"); diff --git a/gtk-3.0/gtk.css b/gtk-3.0/gtk.css index b6b7083..db41f0d 100644 --- a/gtk-3.0/gtk.css +++ b/gtk-3.0/gtk.css @@ -1,22 +1,69 @@ +/* Diehard4 — GTK 3.20+ port + * + * Original theme by obscurant (2016, GTK 3.18 era). + * Ported to the post-3.20 CSS node model. Palette and design language + * unchanged: flat surfaces, 2-3px radii, burnt-orange accent. + * + * Everything below is a colour definition; widget rules live in widgets.css. + * Recolour the theme by editing this block alone. + */ -@define-color bg_color #0D151D; -@define-color pre_murrine #9F440D; +/* ---- core palette ---- + * Matched to the WAR10CK window in Live Free or Die Hard: the slate the + * window and titlebar are painted in, and the orange of the edge bars. + * The two screen-accurate values are bg_color and selected_bg_color; the + * rest are derived from them using the original theme's own ratios + * (raised = bg x1.42, recessed = bg x0.72). + */ +@define-color bg_color #23425E; /* window + titlebar (screen) */ +@define-color dark_color #193044; /* recessed: entries, troughs */ +@define-color light_color #325E85; /* raised: buttons, headers */ +@define-color fg_color #B4C4D2; /* normal text 5.85:1 */ +@define-color bright_fg_color #E8F0F7; /* titles, text on accent */ +@define-color selected_bg_color #BA6A07; /* the accent (screen) */ +@define-color selected_fg_color #E8F0F7; +@define-color menu_color #8CA2B6; /* menubar text, dim text */ +@define-color link_color #D9964A; +@define-color scrollbar_slider #454F5A; /* deliberately quiet, not accent */ +@define-color trough_border_color @light_color; /* was #111B25 — invisible on 3.24 */ -@define-color fg_color #868A8E; -@define-color theme_bg_color #0D151D; -@define-color theme_fg_color #ABADB0; -@define-color selected_bg_color #9F440D; -@define-color selected_fg_color #ABADB0; -@define-color link_color #A37649; -@define-color base_color #0D151D; -@define-color border_color #0D151D; -@define-color dark_color #0C1219; -@define-color light_color #131F2A; -@define-color menu_color #545C64; +/* ---- derived / status ---- */ +@define-color borders @light_color; +@define-color unfocused_borders @dark_color; +@define-color insensitive_fg_color alpha(@fg_color, 0.45); +@define-color insensitive_bg_color @bg_color; +@define-color insensitive_base_color @dark_color; +@define-color warning_color #B5761F; +@define-color error_color #A33A2E; +@define-color success_color #4E7A46; -@import url("gtk-main.css"); -@import url("gtk-widgets-assets.css"); -@import url("gnome-applications.css"); -@import url("nemo.css"); -@import url("unity.css"); -@import url("unity-greeter.css"); +/* ---- names third-party CSS and apps expect ---- */ +@define-color theme_bg_color @bg_color; +@define-color theme_fg_color @fg_color; +@define-color theme_base_color @bg_color; +@define-color theme_text_color @fg_color; +@define-color theme_selected_bg_color @selected_bg_color; +@define-color theme_selected_fg_color @selected_fg_color; +@define-color theme_unfocused_bg_color @bg_color; +@define-color theme_unfocused_fg_color @fg_color; +@define-color theme_unfocused_base_color @bg_color; +@define-color theme_unfocused_text_color @fg_color; +@define-color theme_unfocused_selected_bg_color @selected_bg_color; +@define-color theme_unfocused_selected_fg_color @selected_fg_color; +@define-color base_color @bg_color; +@define-color text_color @fg_color; +@define-color tooltip_bg_color @dark_color; +@define-color tooltip_fg_color @bright_fg_color; +@define-color content_view_bg @bg_color; +@define-color placeholder_text_color alpha(@fg_color, 0.55); + +/* ---- window manager hints (GTK client-side decorations) ---- */ +@define-color wm_title @bright_fg_color; +@define-color wm_unfocused_title @menu_color; +@define-color wm_bg @bg_color; +@define-color wm_border @light_color; +@define-color wm_icon_close_bg @selected_bg_color; +@define-color wm_icon_close_fg @bright_fg_color; + +@import url("widgets.css"); +@import url("mate.css"); diff --git a/gtk-3.0/gnome-applications.css b/gtk-3.0/legacy/gnome-applications.css similarity index 100% rename from gtk-3.0/gnome-applications.css rename to gtk-3.0/legacy/gnome-applications.css diff --git a/gtk-3.0/gtk-main.css b/gtk-3.0/legacy/gtk-main.css similarity index 100% rename from gtk-3.0/gtk-main.css rename to gtk-3.0/legacy/gtk-main.css diff --git a/gtk-3.0/gtk-widgets-assets.css b/gtk-3.0/legacy/gtk-widgets-assets.css similarity index 100% rename from gtk-3.0/gtk-widgets-assets.css rename to gtk-3.0/legacy/gtk-widgets-assets.css diff --git a/gtk-3.0/legacy/gtk.css b/gtk-3.0/legacy/gtk.css new file mode 100644 index 0000000..b6b7083 --- /dev/null +++ b/gtk-3.0/legacy/gtk.css @@ -0,0 +1,22 @@ + +@define-color bg_color #0D151D; +@define-color pre_murrine #9F440D; + +@define-color fg_color #868A8E; +@define-color theme_bg_color #0D151D; +@define-color theme_fg_color #ABADB0; +@define-color selected_bg_color #9F440D; +@define-color selected_fg_color #ABADB0; +@define-color link_color #A37649; +@define-color base_color #0D151D; +@define-color border_color #0D151D; +@define-color dark_color #0C1219; +@define-color light_color #131F2A; +@define-color menu_color #545C64; + +@import url("gtk-main.css"); +@import url("gtk-widgets-assets.css"); +@import url("gnome-applications.css"); +@import url("nemo.css"); +@import url("unity.css"); +@import url("unity-greeter.css"); diff --git a/gtk-3.0/nemo.css b/gtk-3.0/legacy/nemo.css similarity index 100% rename from gtk-3.0/nemo.css rename to gtk-3.0/legacy/nemo.css diff --git a/gtk-3.0/settings.ini b/gtk-3.0/legacy/settings.ini similarity index 100% rename from gtk-3.0/settings.ini rename to gtk-3.0/legacy/settings.ini diff --git a/gtk-3.0/unity-greeter.css b/gtk-3.0/legacy/unity-greeter.css similarity index 100% rename from gtk-3.0/unity-greeter.css rename to gtk-3.0/legacy/unity-greeter.css diff --git a/gtk-3.0/unity.css b/gtk-3.0/legacy/unity.css similarity index 100% rename from gtk-3.0/unity.css rename to gtk-3.0/legacy/unity.css diff --git a/gtk-3.0/mate.css b/gtk-3.0/mate.css new file mode 100644 index 0000000..fa04311 --- /dev/null +++ b/gtk-3.0/mate.css @@ -0,0 +1,169 @@ +/* Diehard4 — MATE desktop specifics (panel, applets, Caja, terminal). */ + +/********* + * panel * + *********/ +.mate-panel-menu-bar, +PanelToplevel, +PanelWidget, +panel-toplevel, +#PanelPlug { + background-color: @dark_color; + background-image: none; + color: @menu_color; + border: none; +} + +.mate-panel-menu-bar menubar, +.mate-panel-menu-bar > menubar { + background-color: transparent; + color: @menu_color; +} + +.mate-panel-menu-bar menubar > menuitem { + padding: 2px 8px; + color: @menu_color; + background-color: transparent; +} + +.mate-panel-menu-bar menubar > menuitem:hover { + background-color: @selected_bg_color; + color: @selected_fg_color; +} + +.mate-panel-menu-bar button, +#PanelApplet button, +MatePanelAppletFrameDBus button { + min-height: 16px; + min-width: 16px; + padding: 1px 4px; + border: none; + border-radius: 2px; + background-color: transparent; + background-image: none; + color: @menu_color; + box-shadow: none; +} + +.mate-panel-menu-bar button:hover, +#PanelApplet button:hover { + background-color: @selected_bg_color; + color: @selected_fg_color; +} + +.mate-panel-menu-bar button:checked, +.mate-panel-menu-bar button:active, +#PanelApplet button:checked { + background-color: @light_color; + color: @bright_fg_color; +} + +#PanelApplet, +#PanelApplet label, +#PanelApplet image { color: @menu_color; } + +.mate-panel-menu-bar .toolbar { background-color: transparent; } + +/* clock / notification area separators */ +.mate-panel-menu-bar separator, +#PanelApplet separator { background-color: @light_color; } + +/***************** + * window list * + *****************/ +#tasklist-button, +.wnck-tasklist button { + min-height: 16px; + padding: 1px 6px; + border: none; + border-radius: 2px; + background-color: transparent; + color: @menu_color; + font-weight: normal; +} + +#tasklist-button:hover, +.wnck-tasklist button:hover { + background-color: @light_color; + color: @bright_fg_color; +} + +#tasklist-button:checked, +#tasklist-button:active, +.wnck-tasklist button:checked { + background-color: @selected_bg_color; + color: @selected_fg_color; +} + +/**************** + * workspaces * + ****************/ +.wnck-pager { + background-color: @dark_color; + color: @light_color; +} + +.wnck-pager:hover { background-color: @light_color; } + +.wnck-pager:selected, +.wnck-pager:active { + background-color: @selected_bg_color; + color: @selected_fg_color; +} + +/*************** + * run dialog * + ***************/ +#mate-panel-run-dialog { background-color: @bg_color; } + +/********* + * Caja * + *********/ +.caja-notebook, +.caja-side-pane, +.caja-side-pane notebook { background-color: @bg_color; } + +.caja-desktop-window, +.caja-desktop-window .view { + background-color: transparent; + color: @bright_fg_color; + text-shadow: 1px 1px 2px alpha(black, 0.9); +} + +.caja-canvas-item:selected, +.caja-desktop-window .view:selected { + background-color: @selected_bg_color; + color: @selected_fg_color; + text-shadow: none; +} + +.caja-pathbar button, +.caja-location-entry { border-radius: 2px; } + +.caja-inactive-pane .view { background-color: shade(@bg_color, 0.9); } + +/******************* + * mate-terminal * + *******************/ +TerminalWindow notebook > header > tabs > tab, +terminal-window notebook > header > tabs > tab { padding: 4px 8px; } + +TerminalScreen, +vte-terminal { background-color: @dark_color; color: @fg_color; } + +/******************* + * mate-menu / brisk * + *******************/ +#MintMenu, +.mintmenu { background-color: @dark_color; } + +/****************** + * screensaver / * + * lock dialog * + ******************/ +#lock-dialog { + background-color: @bg_color; + border: 1px solid @light_color; + border-radius: 3px; + color: @fg_color; +} diff --git a/gtk-3.0/widgets.css b/gtk-3.0/widgets.css new file mode 100644 index 0000000..34a9e97 --- /dev/null +++ b/gtk-3.0/widgets.css @@ -0,0 +1,1434 @@ +/* Diehard4 — widget rules for the GTK 3.20+ node model. */ + +/********** + * basics * + **********/ +* { + outline-color: alpha(@selected_bg_color, 0.8); + outline-style: dashed; + outline-width: 1px; + outline-offset: -3px; + -gtk-outline-radius: 2px; + -GtkWidget-text-handle-width: 20; + -GtkWidget-text-handle-height: 20; + -GtkScrolledWindow-scrollbar-spacing: 0; +} + +/* GtkDialog and GtkAssistant have their own CSS node names in 3.20+ — they + * are NOT `window`. Miss them and every dialog, About box and file chooser + * gets a fully transparent body. */ +window, +window.background, +dialog, +dialog.background, +messagedialog, +assistant, +assistant.background { + background-color: @bg_color; + color: @fg_color; +} + +window.background:backdrop, +dialog:backdrop, +assistant:backdrop { color: @menu_color; } + +.dim-label, +label.separator { color: @menu_color; } + +label:disabled, +label:backdrop:disabled { color: @insensitive_fg_color; } + +image:disabled, +icon:disabled { -gtk-icon-effect: dim; } + +*:link { color: @link_color; } +*:visited { color: @link_color; } + +.view, +iconview, +textview text { + background-color: @bg_color; + color: @fg_color; +} + +.view:selected, +iconview:selected, +textview text selection, +label selection, +flowbox flowboxchild:selected { + background-color: @selected_bg_color; + color: @selected_fg_color; +} + +separator { + background-color: @light_color; + min-width: 1px; + min-height: 1px; + border: none; +} + +/*********** + * buttons * + ***********/ +button { + min-height: 20px; + min-width: 16px; + padding: 5px 8px; + border: 1px solid transparent; + border-radius: 3px; + background-color: @light_color; + background-image: none; + box-shadow: none; + text-shadow: none; + color: @fg_color; + transition: background-color 120ms ease-out; +} + +button:hover, +button:active, +button:checked { + background-color: @selected_bg_color; + color: @selected_fg_color; +} + +button:checked:hover, +button:active:hover { background-color: shade(@selected_bg_color, 1.12); } + +button:disabled { + background-color: @light_color; + color: @insensitive_fg_color; +} + +button:disabled label, +button:disabled image { color: @insensitive_fg_color; } + +button:backdrop { background-color: @light_color; color: @menu_color; } + +button.flat, +button.close, +button.titlebutton, +toolbar button, +toolbutton button { + background-color: transparent; + border-color: transparent; + box-shadow: none; +} + +button.flat:hover, +button.close:hover, +button.titlebutton:hover, +toolbar button:hover, +toolbutton button:hover { + background-color: @selected_bg_color; + color: @selected_fg_color; +} + +button.flat:checked, +button.titlebutton:checked, +toolbar button:checked, +toolbutton button:checked { + background-color: @selected_bg_color; + color: @selected_fg_color; +} + +button.flat:disabled, +toolbar button:disabled { + background-color: transparent; + color: @insensitive_fg_color; +} + +button.suggested-action, +button.default { + background-color: @selected_bg_color; + color: @selected_fg_color; + font-weight: normal; +} + +button.suggested-action:hover, +button.default:hover { background-color: shade(@selected_bg_color, 1.12); } + +button.suggested-action:disabled, +button.default:disabled { + background-color: shade(@selected_bg_color, 0.55); + color: @insensitive_fg_color; +} + +button.destructive-action { + background-color: @error_color; + color: @bright_fg_color; +} + +button.destructive-action:hover { background-color: shade(@error_color, 1.12); } + +button.destructive-action:disabled { + background-color: shade(@error_color, 0.55); + color: @insensitive_fg_color; +} + +button.circular { border-radius: 9999px; -gtk-outline-radius: 9999px; } + +button separator { background-color: transparent; } + +buttonbox button { min-height: 22px; } + +/* linked groups */ +.linked > button, +.linked > entry, +.linked > combobox > box > button, +.linked > spinbutton { border-radius: 0; } + +.linked > button:first-child, +.linked > entry:first-child, +.linked > spinbutton:first-child { + border-top-left-radius: 3px; + border-bottom-left-radius: 3px; +} + +.linked > button:last-child, +.linked > entry:last-child, +.linked > spinbutton:last-child { + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; +} + +.linked > button:only-child, +.linked > entry:only-child { border-radius: 3px; } + +.linked > button:not(:first-child), +.linked > entry:not(:first-child) { border-left: 1px solid @bg_color; } + +.linked.vertical > button, +.linked.vertical > entry { border-radius: 0; } + +.linked.vertical > button:first-child, +.linked.vertical > entry:first-child { + border-top-left-radius: 3px; + border-top-right-radius: 3px; +} + +.linked.vertical > button:last-child, +.linked.vertical > entry:last-child { + border-bottom-left-radius: 3px; + border-bottom-right-radius: 3px; +} + +.linked.vertical > button:not(:first-child), +.linked.vertical > entry:not(:first-child) { border-top: 1px solid @bg_color; } + +/*********** + * entries * + ***********/ +entry, +spinbutton:not(.vertical) { + min-height: 22px; + padding: 5px; + border: 1px solid @light_color; + border-radius: 3px; + background-color: @dark_color; + background-image: none; + box-shadow: none; + color: @fg_color; + caret-color: @selected_bg_color; + transition: border-color 120ms ease-out; +} + +entry:focus, +entry:focus-within, +spinbutton:not(.vertical):focus, +spinbutton:not(.vertical):focus-within { + border-color: @selected_bg_color; + outline: none; +} + +entry:disabled, +spinbutton:disabled { + background-color: @bg_color; + border-color: @light_color; + color: @insensitive_fg_color; +} + +entry:backdrop { background-color: @dark_color; color: @menu_color; } + +entry selection, +entry selection:focus { + background-color: @selected_bg_color; + color: @selected_fg_color; +} + +entry image { color: @menu_color; } +entry image:hover { color: @fg_color; } + +entry.flat, +entry.flat:focus { + padding: 2px; + border-width: 0; + border-radius: 0; + background-color: transparent; + box-shadow: none; +} + +entry progress { + border: none; + border-radius: 0; + background-color: @selected_bg_color; + background-image: none; +} + +entry.error { border-color: @error_color; } +entry.warning { border-color: @warning_color; } + +entry.search { border-radius: 3px; } + +/* the placeholder */ +entry placeholder { color: @placeholder_text_color; } + +/*************** + * spinbuttons * + ***************/ +spinbutton:not(.vertical) button { + min-width: 16px; + min-height: 16px; + padding: 2px 4px; + margin: 0; + border: none; + border-radius: 0; + background-color: transparent; + color: @fg_color; + box-shadow: none; +} + +spinbutton:not(.vertical) button:hover, +spinbutton:not(.vertical) button:active { + background-color: @selected_bg_color; + color: @selected_fg_color; +} + +spinbutton:not(.vertical) button:disabled { color: @insensitive_fg_color; } + +spinbutton:not(.vertical) button.up { border-radius: 0 2px 2px 0; } +spinbutton:not(.vertical) button.down { border-radius: 0; } + +spinbutton.vertical { border: none; background: none; } + +spinbutton.vertical entry { + border-radius: 0; + border-left-width: 1px; + border-right-width: 1px; +} + +spinbutton.vertical button { + min-width: 28px; + min-height: 20px; + padding: 2px; + border: 1px solid @light_color; + background-color: @light_color; + color: @fg_color; +} + +spinbutton.vertical button:hover { + background-color: @selected_bg_color; + color: @selected_fg_color; +} + +spinbutton.vertical button.up { border-radius: 3px 3px 0 0; border-bottom-width: 0; } +spinbutton.vertical button.down { border-radius: 0 0 3px 3px; border-top-width: 0; } + +/************** + * comboboxes * + **************/ +combobox arrow, +button arrow { + -gtk-icon-source: -gtk-icontheme("pan-down-symbolic"); + min-width: 16px; + min-height: 16px; + color: inherit; +} + +combobox button.combo { padding: 4px 6px; } + +combobox entry.combo { + border-top-right-radius: 0; + border-bottom-right-radius: 0; + border-right-width: 0; +} + +combobox button.combo:not(:only-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +combobox window.popup, +combobox window.popup .view { background-color: @dark_color; } + +combobox > .linked > button:not(:first-child) { border-left-color: @bg_color; } + +/******************* + * check and radio * + *******************/ +check, +radio { + min-width: 14px; + min-height: 14px; + margin: 0 4px; + padding: 1px; + border: 1px solid @trough_border_color; + background-color: @light_color; + background-image: none; + color: @bright_fg_color; + box-shadow: none; + -gtk-icon-source: none; +} + +check { border-radius: 2px; } +radio { border-radius: 9999px; -gtk-outline-radius: 9999px; } + +check:hover, +radio:hover { background-color: shade(@light_color, 1.25); } + +check:checked, +check:indeterminate, +radio:checked, +radio:indeterminate { + background-color: @light_color; + border-color: @selected_bg_color; +} + +check:checked { -gtk-icon-source: -gtk-icontheme("object-select-symbolic"); } +check:indeterminate { -gtk-icon-source: -gtk-icontheme("list-remove-symbolic"); } + +radio:checked { + background-image: -gtk-gradient(radial, center center, 0, center center, 0.26, + to(@bright_fg_color), to(transparent)); +} + +radio:indeterminate { + background-image: linear-gradient(to bottom, @bright_fg_color, @bright_fg_color); + background-size: 8px 2px; + background-position: center center; + background-repeat: no-repeat; +} + +check:disabled, +radio:disabled { + background-color: @bg_color; + border-color: @light_color; + color: @insensitive_fg_color; +} + +check:disabled { -gtk-icon-effect: dim; } + +radio:checked:disabled { + background-image: -gtk-gradient(radial, center center, 0, center center, 0.26, + to(@insensitive_fg_color), to(transparent)); +} + +/* in menus and lists the indicator sits flush */ +menuitem check, +menuitem radio { + min-width: 12px; + min-height: 12px; + margin: 0 6px 0 0; +} + +menuitem:hover check, +menuitem:hover radio { border-color: @bright_fg_color; } + +treeview.view check, +treeview.view radio { margin: 0; } + +/*********** + * switches * + ***********/ +switch { + min-width: 46px; + min-height: 20px; + padding: 2px; + border: 1px solid @trough_border_color; + border-radius: 3px; + background-color: @dark_color; + background-image: none; + color: transparent; + box-shadow: none; + transition: background-color 150ms ease-out; +} + +switch:checked { + background-color: @selected_bg_color; + border-color: shade(@selected_bg_color, 0.8); +} + +switch:disabled { background-color: @bg_color; } + +switch slider { + min-width: 20px; + min-height: 16px; + border: none; + border-radius: 2px; + background-color: @menu_color; + background-image: none; + box-shadow: none; +} + +switch:checked slider { background-color: @bright_fg_color; } +switch:disabled slider { background-color: @light_color; } + +/* the on/off glyphs GTK draws inside the trough */ +switch image { color: transparent; } + +/********** + * scales * + **********/ +scale { min-height: 16px; min-width: 16px; padding: 3px; } + +scale trough { + border: 1px solid @trough_border_color; + border-radius: 2px; + background-color: @dark_color; + background-image: none; + box-shadow: none; + outline: none; +} + +scale.horizontal trough { min-height: 8px; } +scale.vertical trough { min-width: 8px; } + +/* the original theme leaves the filled section unhighlighted */ +scale highlight { + border-radius: 2px; + background-color: @dark_color; + background-image: none; +} + +scale slider { + border: none; + border-radius: 2px; + background-color: @selected_bg_color; + background-image: none; + box-shadow: none; + margin: -1px; + transition: background-color 120ms ease-out; +} + +scale.horizontal slider { min-width: 19px; min-height: 10px; } +scale.vertical slider { min-height: 19px; min-width: 10px; } + +scale slider:hover { background-color: shade(@selected_bg_color, 1.2); } +scale slider:disabled { background-color: @light_color; } + +scale trough:disabled, +scale highlight:disabled { background-color: @dark_color; } + +scale marks, +scale value { color: @menu_color; } + +scale indicator { + background-color: @light_color; + min-width: 1px; + min-height: 4px; +} + +scale.horizontal marks.top indicator, +scale.horizontal marks.bottom indicator { min-height: 4px; min-width: 1px; } +scale.vertical marks.left indicator, +scale.vertical marks.right indicator { min-width: 4px; min-height: 1px; } + +/************** + * scrollbars * + **************/ +scrollbar { + border: none; + background-color: @bg_color; + background-image: none; + transition: background-color 150ms ease-out; +} + +scrollbar trough { + border: none; + border-radius: 2px; + background-color: @dark_color; + margin: 0; +} + +scrollbar slider { + border: none; + border-radius: 2px; + background-color: @scrollbar_slider; + background-image: none; + transition: background-color 120ms ease-out; +} + +scrollbar.vertical slider { min-width: 8px; min-height: 42px; } +scrollbar.horizontal slider { min-height: 8px; min-width: 42px; } + +scrollbar slider:hover { background-color: shade(@scrollbar_slider, 1.35); } +scrollbar slider:active { background-color: shade(@scrollbar_slider, 1.6); } +scrollbar slider:disabled { background-color: shade(@scrollbar_slider, 0.7); } + +/* the original theme hides the stepper buttons */ +scrollbar button { + min-width: 0; + min-height: 0; + padding: 0; + border: none; + background-color: transparent; + -gtk-icon-source: none; +} + +scrollbar.overlay-indicator:not(.dragging):not(.hovering) { + background-color: transparent; + border-color: transparent; +} + +scrollbar.overlay-indicator:not(.dragging):not(.hovering) trough { + background-color: transparent; +} + +scrollbar.overlay-indicator:not(.dragging):not(.hovering).vertical slider { min-width: 4px; } +scrollbar.overlay-indicator:not(.dragging):not(.hovering).horizontal slider { min-height: 4px; } + +junction, +scrollbar junction { background-color: @dark_color; border: none; } + +/***************** + * progress bars * + *****************/ +progressbar { + color: @fg_color; + font-size: 90%; +} + +progressbar trough { + border: 1px solid @trough_border_color; + border-radius: 2px; + background-color: @dark_color; + background-image: none; +} + +progressbar progress { + border: none; + border-radius: 2px; + background-color: @selected_bg_color; + background-image: none; +} + +progressbar.horizontal trough, +progressbar.horizontal progress { min-height: 10px; } +progressbar.vertical trough, +progressbar.vertical progress { min-width: 10px; } + +progressbar trough:disabled { background-color: @dark_color; } +progressbar progress:disabled { background-color: @light_color; } + +progressbar.osd { min-width: 3px; min-height: 3px; background-color: transparent; } +progressbar.osd trough { background-color: transparent; } + +/************* + * levelbars * + *************/ +levelbar trough { + border: 1px solid @trough_border_color; + border-radius: 2px; + background-color: @dark_color; + padding: 2px; +} + +levelbar.horizontal block { min-height: 8px; } +levelbar.vertical block { min-width: 8px; } + +levelbar.horizontal.discrete block { min-width: 28px; margin: 0 1px; } +levelbar.vertical.discrete block { min-height: 28px; margin: 1px 0; } + +levelbar block { + border: none; + border-radius: 1px; + background-color: @selected_bg_color; +} + +levelbar block.low { background-color: @warning_color; } +levelbar block.high { background-color: @selected_bg_color; } +levelbar block.full { background-color: @success_color; } +levelbar block.empty { background-color: transparent; } + +/************ + * spinners * + ************/ +@keyframes diehard-spin { to { -gtk-icon-transform: rotate(1turn); } } + +spinner { + background: none; + opacity: 0; + color: @selected_bg_color; + -gtk-icon-source: -gtk-icontheme("process-working-symbolic"); +} + +spinner:checked { + opacity: 1; + animation: diehard-spin 1s linear infinite; +} + +spinner:disabled { opacity: 0.4; } + +/*********** + * menubar * + ***********/ +menubar, +.menubar { + padding: 0; + border: none; + background-color: @bg_color; + color: @menu_color; + box-shadow: none; +} + +menubar > menuitem, +.menubar > menuitem { + padding: 5px 8px; + border: none; + background-color: transparent; + color: @menu_color; + min-height: 16px; + transition: background-color 100ms ease-out; +} + +menubar > menuitem:hover, +menubar > menuitem:selected, +menubar > menuitem:active, +.menubar > menuitem:hover { + background-color: @selected_bg_color; + color: @selected_fg_color; + box-shadow: none; +} + +menubar > menuitem:disabled { color: @insensitive_fg_color; } + +/********* + * menus * + *********/ +menu, +.menu, +popover.background.menu { + padding: 2px 0; + border: 1px solid @light_color; + border-radius: 3px; + background-color: @dark_color; + color: @fg_color; +} + +menu menuitem, +.menu menuitem { + padding: 5px 8px; + min-height: 16px; + border: none; + background-color: transparent; + color: @fg_color; + text-shadow: none; + transition: background-color 100ms ease-out; +} + +menu menuitem:hover, +menu menuitem:selected, +.menu menuitem:hover { + background-color: @selected_bg_color; + color: @selected_fg_color; +} + +menu menuitem:disabled, +.menu menuitem:disabled { color: @insensitive_fg_color; } + +menu menuitem arrow { + min-width: 16px; + min-height: 16px; + -gtk-icon-source: -gtk-icontheme("pan-end-symbolic"); +} + +menu menuitem arrow:dir(rtl) { -gtk-icon-source: -gtk-icontheme("pan-end-symbolic-rtl"); } + +menu separator, +.menu separator { + margin: 2px 0; + background-color: @light_color; + min-height: 1px; +} + +menu > arrow { + min-height: 16px; + padding: 2px; + background-color: @dark_color; + border-radius: 0; + color: @fg_color; +} + +menu > arrow.top { -gtk-icon-source: -gtk-icontheme("pan-up-symbolic"); } +menu > arrow.bottom { -gtk-icon-source: -gtk-icontheme("pan-down-symbolic"); } +menu > arrow:hover { background-color: @selected_bg_color; color: @selected_fg_color; } +menu > arrow:disabled { color: @insensitive_fg_color; } + +menuitem accelerator { color: @menu_color; } +menuitem:hover accelerator { color: @selected_fg_color; } + +/************ + * notebook * + ************/ +notebook { background-color: @bg_color; } + +notebook > stack { + background-color: @bg_color; + border: none; +} + +notebook > header { + padding: 0; + border: none; + background-color: @light_color; + box-shadow: none; +} + +notebook > header.top { border-bottom: 1px solid @bg_color; } +notebook > header.bottom { border-top: 1px solid @bg_color; } +notebook > header.left { border-right: 1px solid @bg_color; } +notebook > header.right { border-left: 1px solid @bg_color; } + +notebook > header > tabs { margin: 0; } + +notebook > header > tabs > tab { + min-height: 22px; + min-width: 24px; + padding: 3px 10px; + border: none; + border-radius: 0; + background-color: @light_color; + color: @menu_color; + font-weight: normal; + transition: background-color 120ms ease-out, color 120ms ease-out; +} + +notebook > header > tabs > tab:hover { + background-color: shade(@selected_bg_color, 0.75); + color: @selected_fg_color; +} + +notebook > header > tabs > tab:checked { + background-color: @selected_bg_color; + color: @selected_fg_color; +} + +notebook > header > tabs > tab:disabled { color: @insensitive_fg_color; } + +notebook > header.top > tabs > tab:first-child { border-top-left-radius: 3px; } +notebook > header.top > tabs > tab:last-child { border-top-right-radius: 3px; } +notebook > header.bottom > tabs > tab:first-child { border-bottom-left-radius: 3px; } +notebook > header.bottom > tabs > tab:last-child { border-bottom-right-radius: 3px; } + +notebook > header > tabs > tab button.flat { + min-width: 16px; + min-height: 16px; + padding: 0; + margin-left: 4px; + border-radius: 2px; + color: inherit; +} + +notebook > header > tabs > tab button.flat:hover { + background-color: shade(@selected_bg_color, 1.3); + color: @bright_fg_color; +} + +notebook > header > arrow { + min-width: 16px; + min-height: 16px; + color: @menu_color; + border-radius: 0; +} + +notebook > header > arrow:hover { color: @selected_bg_color; } +notebook > header > arrow:disabled { color: @insensitive_fg_color; } + +/************ + * toolbars * + ************/ +toolbar, +.toolbar { + padding: 2px; + border: none; + background-color: @bg_color; + color: @fg_color; +} + +toolbar.horizontal separator { margin: 2px 4px; } +toolbar.vertical separator { margin: 4px 2px; } + +toolbar.osd, +.osd { + border: 1px solid @light_color; + border-radius: 3px; + background-color: @dark_color; + color: @fg_color; +} + +searchbar, +.search-bar, +actionbar > revealer > box, +.location-bar { + padding: 4px; + border-bottom: 1px solid @light_color; + background-color: @bg_color; +} + +actionbar > revealer > box { + border-bottom: none; + border-top: 1px solid @light_color; +} + +/************** + * headerbars * + **************/ +headerbar, +.titlebar { + min-height: 40px; + padding: 5px; + border: none; + border-bottom: 1px solid @light_color; + border-radius: 3px 3px 0 0; + background-color: @bg_color; + background-image: none; + box-shadow: none; + color: @fg_color; +} + +headerbar:backdrop, +.titlebar:backdrop { color: @menu_color; } + +.tiled headerbar, +.maximized headerbar, +.fullscreen headerbar, +.tiled .titlebar, +.maximized .titlebar { border-radius: 0; } + +headerbar .title, +.titlebar .title { + padding: 0 6px; + font-weight: bold; + color: @bright_fg_color; +} + +headerbar .subtitle, +.titlebar .subtitle { + padding: 0 6px; + font-size: 80%; + color: @menu_color; +} + +headerbar button.titlebutton { + min-width: 22px; + min-height: 22px; + padding: 2px; + border-radius: 2px; + color: @menu_color; +} + +headerbar button.titlebutton:hover { + background-color: @selected_bg_color; + color: @selected_fg_color; +} + +headerbar button.titlebutton.close:hover { background-color: @error_color; } + +headerbar entry, +headerbar spinbutton { min-height: 24px; } + +/*************** + * tree views * + ***************/ +treeview.view { + border: none; + background-color: @bg_color; + color: @fg_color; + -GtkTreeView-grid-line-width: 0; + -GtkTreeView-tree-line-width: 0; +} + +treeview.view:hover { background-color: shade(@bg_color, 1.25); } + +treeview.view:selected, +treeview.view:selected:focus { + border-radius: 0; + background-color: @light_color; + color: @bright_fg_color; +} + +treeview.view:selected:hover { background-color: shade(@light_color, 1.2); } + +treeview.view:disabled { color: @insensitive_fg_color; } + +treeview.view.separator { min-height: 2px; color: @light_color; } + +treeview.view:drop(active) { border-color: @selected_bg_color; } + +treeview.view.expander { + min-width: 12px; + min-height: 12px; + color: @menu_color; + -gtk-icon-source: -gtk-icontheme("pan-end-symbolic"); +} + +treeview.view.expander:dir(rtl) { -gtk-icon-source: -gtk-icontheme("pan-end-symbolic-rtl"); } +treeview.view.expander:checked { -gtk-icon-source: -gtk-icontheme("pan-down-symbolic"); } +treeview.view.expander:hover { color: @selected_bg_color; } + +treeview.view header button { + min-height: 22px; + padding: 3px 6px; + border: none; + border-right: 1px solid @bg_color; + border-bottom: 1px solid @bg_color; + border-radius: 0; + background-color: @light_color; + color: @menu_color; + font-weight: normal; + text-shadow: none; +} + +treeview.view header button:hover { + background-color: @selected_bg_color; + color: @selected_fg_color; +} + +treeview.view header button:last-child { border-right: none; } + +treeview.view header button:disabled { color: @insensitive_fg_color; } + +/* CellRendererProgress puts .trough / .progressbar on the treeview's own + * node rather than creating child nodes, so these must be classes. */ +treeview.view.progressbar, +treeview.view.progressbar:selected, +treeview.view progressbar progress { + border: none; + border-radius: 2px; + background-color: @selected_bg_color; + background-image: none; + color: @bright_fg_color; +} + +treeview.view.trough, +treeview.view.trough:selected, +treeview.view progressbar trough { + border: 1px solid @trough_border_color; + border-radius: 2px; + background-color: @dark_color; + background-image: none; +} + +treeview.view.dnd { border: 1px solid @selected_bg_color; } + +/********************* + * lists and sidebars * + *********************/ +list { + border: none; + background-color: @bg_color; + color: @fg_color; +} + +list row, +row.activatable { + padding: 2px; + border: none; + background-color: transparent; + transition: background-color 100ms ease-out; +} + +list row:hover, +row.activatable:hover { background-color: @light_color; } + +list row:selected, +row:selected { + background-color: @selected_bg_color; + color: @selected_fg_color; +} + +list row:selected:hover { background-color: shade(@selected_bg_color, 1.15); } + +list row:disabled, +row:disabled { color: @insensitive_fg_color; } + +list.horizontal row:not(:last-child) { border-right: 1px solid @light_color; } +list:not(.horizontal) row:not(:last-child) { border-bottom: 1px solid transparent; } + +.sidebar, +placessidebar, +stacksidebar { + border: none; + background-color: @bg_color; + color: @fg_color; +} + +.sidebar list, +placessidebar list, +stacksidebar list { background-color: @bg_color; } + +.sidebar row:hover, +placessidebar row:hover, +stacksidebar row:hover { background-color: @light_color; color: @fg_color; } + +.sidebar row:selected, +.sidebar row:selected:focus, +placessidebar row:selected, +stacksidebar row:selected { + background-color: @light_color; + color: @bright_fg_color; +} + +.sidebar row:selected:hover { background-color: shade(@light_color, 1.25); } + +placessidebar row image { color: @menu_color; } +placessidebar row:selected image { color: @selected_bg_color; } +placessidebar row.sidebar-new-bookmark-row { color: @selected_bg_color; } + +/* separator between the sidebar and the content */ +paned > separator, +.pane-separator { + min-width: 3px; + min-height: 3px; + padding: 0; + border: none; + background-color: @light_color; + background-image: url("assets/handle-vertical.png"); + background-repeat: no-repeat; + background-position: center center; +} + +paned.horizontal > separator { + background-image: url("assets/handle-vertical.png"); +} + +paned.vertical > separator { + background-image: url("assets/handle-horizontal.png"); +} + +paned > separator:hover, +paned > separator:selected { background-color: @selected_bg_color; } + +paned > separator.wide { + min-width: 5px; + min-height: 5px; + background-color: @bg_color; +} + +/*********************** + * frames and viewports * + ***********************/ +frame > border, +.frame { + border: 1px solid @light_color; + border-radius: 0; + box-shadow: none; +} + +frame.flat > border, +.frame.flat { border: none; } + +frame > label { color: @menu_color; padding: 0 4px; } + +scrolledwindow viewport.frame { border: none; } + +scrolledwindow overshoot.top { + background-image: -gtk-gradient(radial, center top, 0, center top, 0.5, + to(alpha(@selected_bg_color, 0.25)), to(transparent)); + background-size: 100% 60%; + background-repeat: no-repeat; + background-position: center top; +} + +scrolledwindow overshoot.bottom { + background-image: -gtk-gradient(radial, center bottom, 0, center bottom, 0.5, + to(alpha(@selected_bg_color, 0.25)), to(transparent)); + background-size: 100% 60%; + background-repeat: no-repeat; + background-position: center bottom; +} + +scrolledwindow undershoot.top, +scrolledwindow undershoot.bottom, +scrolledwindow undershoot.left, +scrolledwindow undershoot.right { background-image: none; } + +/************* + * expanders * + *************/ +expander title > arrow, +expander arrow { + min-width: 12px; + min-height: 12px; + color: @menu_color; + -gtk-icon-source: -gtk-icontheme("pan-end-symbolic"); +} + +expander title > arrow:dir(rtl), +expander arrow:dir(rtl) { -gtk-icon-source: -gtk-icontheme("pan-end-symbolic-rtl"); } + +expander title > arrow:checked, +expander arrow:checked { -gtk-icon-source: -gtk-icontheme("pan-down-symbolic"); } + +expander title > arrow:hover, +expander arrow:hover { color: @selected_bg_color; } + +/************ + * tooltips * + ************/ +tooltip, +tooltip.background { + padding: 4px; + border: 1px solid @light_color; + border-radius: 3px; + background-color: @dark_color; + background-image: none; + color: @bright_fg_color; + box-shadow: none; + text-shadow: none; +} + +tooltip label, +tooltip * { background-color: transparent; color: @bright_fg_color; } + +tooltip decoration { background-color: transparent; box-shadow: none; } + +/************ + * popovers * + ************/ +popover.background { + padding: 2px; + border: 1px solid @light_color; + border-radius: 3px; + background-color: @dark_color; + background-image: none; + color: @fg_color; + box-shadow: 0 1px 4px alpha(black, 0.5); +} + +popover.background > arrow { + border: 1px solid @light_color; + background-color: @dark_color; +} + +popover.background separator { background-color: @light_color; } + +popover.background list, +popover.background .view { background-color: @dark_color; } + +modelbutton.flat, +popover.background button.flat { + min-height: 22px; + padding: 4px 8px; + border-radius: 2px; + background-color: transparent; + color: @fg_color; +} + +modelbutton.flat:hover, +popover.background button.flat:hover { + background-color: @selected_bg_color; + color: @selected_fg_color; +} + +modelbutton.flat arrow.left { -gtk-icon-source: -gtk-icontheme("pan-start-symbolic"); } +modelbutton.flat arrow.right { -gtk-icon-source: -gtk-icontheme("pan-end-symbolic"); } + +/************ + * infobars * + ************/ +infobar { border: none; background-color: transparent; } + +infobar > revealer > box { + padding: 6px; + border-bottom: 1px solid @light_color; + background-color: @light_color; + color: @bright_fg_color; +} + +infobar.info > revealer > box { background-color: @light_color; } +infobar.question > revealer > box { background-color: @light_color; } +infobar.warning > revealer > box { background-color: @warning_color; color: #1A1206; } +infobar.error > revealer > box { background-color: @error_color; color: @bright_fg_color; } + +infobar.warning button, +infobar.error button { + background-color: alpha(black, 0.22); + color: inherit; +} + +infobar.warning button:hover, +infobar.error button:hover { background-color: alpha(black, 0.38); } + +.app-notification { + padding: 6px; + border: 1px solid @light_color; + border-top-width: 0; + border-radius: 0 0 3px 3px; + background-color: @dark_color; + color: @fg_color; +} + +/************* + * calendars * + *************/ +calendar { + padding: 2px; + border: 1px solid @light_color; + border-radius: 3px; + background-color: @dark_color; + color: @fg_color; +} + +calendar:selected { + border-radius: 2px; + background-color: @selected_bg_color; + color: @selected_fg_color; +} + +calendar.header { + border: none; + border-bottom: 1px solid @light_color; + border-radius: 0; + background-color: @dark_color; + color: @bright_fg_color; +} + +calendar.button { + padding: 2px; + background-color: transparent; + color: @menu_color; +} + +calendar.button:hover { color: @selected_bg_color; background-color: transparent; } + +calendar.highlight { color: @menu_color; font-weight: normal; } +calendar:indeterminate { color: @insensitive_fg_color; } + +/************** + * statusbars * + **************/ +statusbar { + padding: 4px 8px; + border: none; + background-color: @bg_color; + color: @menu_color; +} + +statusbar frame > border { border: none; } + +/*********** + * dialogs * + ***********/ +messagedialog, +messagedialog.background { + background-color: @bg_color; + border-radius: 3px; +} + +messagedialog .titlebar { + border: none; + background-color: @bg_color; + min-height: 24px; +} + +messagedialog .dialog-action-area button { + padding: 8px 12px; + border-radius: 0; + background-color: @bg_color; + border-top: 1px solid @light_color; + border-right: 1px solid @light_color; +} + +messagedialog .dialog-action-area button:last-child { border-right: none; } +messagedialog .dialog-action-area button:hover { background-color: @selected_bg_color; } + +.dialog-vbox { padding: 4px; } + +assistant .sidebar { border: none; background-color: @dark_color; } +assistant .sidebar label { padding: 6px 12px; color: @menu_color; } +assistant .sidebar label.highlight { color: @bright_fg_color; font-weight: normal; } + +filechooser .dialog-action-box { border-top: 1px solid @light_color; } +filechooser #pathbarbox { border-bottom: 1px solid @light_color; background-color: @bg_color; } + +/*************** + * decorations * + ***************/ +decoration { + border-radius: 3px 3px 0 0; + border: 1px solid @light_color; + box-shadow: 0 2px 6px 1px alpha(black, 0.6); + margin: 4px; +} + +decoration:backdrop { box-shadow: 0 1px 3px 1px alpha(black, 0.4); } + +.tiled decoration, +.maximized decoration, +.fullscreen decoration, +.solid-csd decoration { + border-radius: 0; + margin: 0; + box-shadow: none; +} + +decoration-overlay { background: none; } + +/********* + * misc * + *********/ +stackswitcher button { + border-radius: 0; + border-right: 1px solid @bg_color; +} + +stackswitcher button:first-child { border-radius: 3px 0 0 3px; } +stackswitcher button:last-child { border-radius: 0 3px 3px 0; border-right: none; } + +iconview.view:selected, +iconview.view:selected:focus, +.nautilus-canvas-item:selected, +.caja-canvas-item:selected { + border-radius: 2px; + background-color: @selected_bg_color; + color: @selected_fg_color; +} + +flowbox flowboxchild { padding: 2px; border-radius: 2px; } +flowbox flowboxchild:selected { background-color: @selected_bg_color; color: @selected_fg_color; } + +.rubberband, +rubberband { + border: 1px solid @selected_bg_color; + background-color: alpha(@selected_bg_color, 0.25); +} + +.selection-mode headerbar, +.selection-mode .titlebar { + background-color: @selected_bg_color; + color: @selected_fg_color; +} + +colorswatch { border-radius: 2px; } +colorswatch overlay { border: 1px solid @light_color; border-radius: 2px; } +colorswatch:selected overlay { border-color: @selected_bg_color; } + +.monospace { font-family: monospace; } + +.keycap { + padding: 2px 6px; + border: 1px solid @light_color; + border-radius: 3px; + background-color: @light_color; + color: @bright_fg_color; +} + +.circular-button { border-radius: 9999px; } + +.osd .scale slider { background-color: @selected_bg_color; } + +.needs-attention > label, +.needs-attention > image { color: @selected_bg_color; } + +/* drag-and-drop feedback */ +*:drop(active) { border-color: @selected_bg_color; } diff --git a/index.theme b/index.theme index 34c31a4..310d07a 100644 --- a/index.theme +++ b/index.theme @@ -1,7 +1,7 @@ [Desktop Entry] Type=X-GNOME-Metatheme Name=Diehard4 -Comment=It's flat and it's blue +Comment=It's flat and it's blue - Live Free or Die Hard colours, GTK3 port by zavage Encoding=UTF-8 [X-GNOME-Metatheme] diff --git a/metacity-1/button-close-focused.png b/metacity-1/button-close-focused.png index 5081e5b..2c91af2 100644 Binary files a/metacity-1/button-close-focused.png and b/metacity-1/button-close-focused.png differ diff --git a/metacity-1/button-close-maximized-focused.png b/metacity-1/button-close-maximized-focused.png index 5081e5b..2c91af2 100644 Binary files a/metacity-1/button-close-maximized-focused.png and b/metacity-1/button-close-maximized-focused.png differ diff --git a/metacity-1/button-close-maximized-pressed.png b/metacity-1/button-close-maximized-pressed.png index 5081e5b..2c91af2 100644 Binary files a/metacity-1/button-close-maximized-pressed.png and b/metacity-1/button-close-maximized-pressed.png differ diff --git a/metacity-1/button-close-maximized.png b/metacity-1/button-close-maximized.png index 70b9d09..8635534 100644 Binary files a/metacity-1/button-close-maximized.png and b/metacity-1/button-close-maximized.png differ diff --git a/metacity-1/button-close-pressed.png b/metacity-1/button-close-pressed.png index 5081e5b..2c91af2 100644 Binary files a/metacity-1/button-close-pressed.png and b/metacity-1/button-close-pressed.png differ diff --git a/metacity-1/button-close-unfocused.png b/metacity-1/button-close-unfocused.png index 70b9d09..8635534 100644 Binary files a/metacity-1/button-close-unfocused.png and b/metacity-1/button-close-unfocused.png differ diff --git a/metacity-1/button-maximize-focused.png b/metacity-1/button-maximize-focused.png index 590adb8..c950972 100644 Binary files a/metacity-1/button-maximize-focused.png and b/metacity-1/button-maximize-focused.png differ diff --git a/metacity-1/button-maximize-pressed.png b/metacity-1/button-maximize-pressed.png index 4c4a534..9acaede 100644 Binary files a/metacity-1/button-maximize-pressed.png and b/metacity-1/button-maximize-pressed.png differ diff --git a/metacity-1/button-menu-focused.png b/metacity-1/button-menu-focused.png index ba42271..d75230a 100644 Binary files a/metacity-1/button-menu-focused.png and b/metacity-1/button-menu-focused.png differ diff --git a/metacity-1/button-menu-pressed.png b/metacity-1/button-menu-pressed.png index ba42271..d75230a 100644 Binary files a/metacity-1/button-menu-pressed.png and b/metacity-1/button-menu-pressed.png differ diff --git a/metacity-1/button-minimize-focused.png b/metacity-1/button-minimize-focused.png index ef6e2c2..1ce3968 100644 Binary files a/metacity-1/button-minimize-focused.png and b/metacity-1/button-minimize-focused.png differ diff --git a/metacity-1/button-minimize-pressed.png b/metacity-1/button-minimize-pressed.png index 039f61d..ab6d1cd 100644 Binary files a/metacity-1/button-minimize-pressed.png and b/metacity-1/button-minimize-pressed.png differ diff --git a/metacity-1/frame-bottom.png b/metacity-1/frame-bottom.png index c101fbe..31707f2 100644 Binary files a/metacity-1/frame-bottom.png and b/metacity-1/frame-bottom.png differ diff --git a/metacity-1/frame-left-bottom.png b/metacity-1/frame-left-bottom.png index a8bc9cb..7652569 100644 Binary files a/metacity-1/frame-left-bottom.png and b/metacity-1/frame-left-bottom.png differ diff --git a/metacity-1/frame-left.png b/metacity-1/frame-left.png index 29b4747..49fcf51 100755 Binary files a/metacity-1/frame-left.png and b/metacity-1/frame-left.png differ diff --git a/metacity-1/frame-right-bottom.png b/metacity-1/frame-right-bottom.png index 18170e4..31707f2 100755 Binary files a/metacity-1/frame-right-bottom.png and b/metacity-1/frame-right-bottom.png differ diff --git a/metacity-1/frame-right.png b/metacity-1/frame-right.png index 1f532df..04aa0fc 100644 Binary files a/metacity-1/frame-right.png and b/metacity-1/frame-right.png differ diff --git a/metacity-1/metacity-theme-1.xml b/metacity-1/metacity-theme-1.xml index 597bbd2..7611376 100644 --- a/metacity-1/metacity-theme-1.xml +++ b/metacity-1/metacity-theme-1.xml @@ -2,8 +2,8 @@ Diehard4 - obscurant - GPL + obscurant; GTK3 port and recolour by zavage + GPL v3 7/26/11 Port of Diehard4 Emerald @@ -20,8 +20,8 @@ - - + + @@ -33,8 +33,8 @@ - - + + @@ -59,11 +59,11 @@ - +<title color="#E8F0F7" x="IconTitleSpacing" y="(height - title_height) / 2"/> </draw_ops> <draw_ops name="title-text-unfocused"> -<title color="#6d7379" x="IconTitleSpacing" y="0-3"/> +<title color="#8CA2B6" x="IconTitleSpacing" y="(height - title_height) / 2"/> </draw_ops> <draw_ops name="blank"> diff --git a/metacity-1/titlebar-left-maximized.png b/metacity-1/titlebar-left-maximized.png index 72fbf08..73b4b0f 100644 Binary files a/metacity-1/titlebar-left-maximized.png and b/metacity-1/titlebar-left-maximized.png differ diff --git a/metacity-1/titlebar-left.png b/metacity-1/titlebar-left.png index c822bdc..0a8844a 100644 Binary files a/metacity-1/titlebar-left.png and b/metacity-1/titlebar-left.png differ diff --git a/metacity-1/titlebar-mid.png b/metacity-1/titlebar-mid.png index 5d22581..cb2faa8 100644 Binary files a/metacity-1/titlebar-mid.png and b/metacity-1/titlebar-mid.png differ diff --git a/metacity-1/titlebar-right-maximized.png b/metacity-1/titlebar-right-maximized.png index b1290f9..18b4c0b 100755 Binary files a/metacity-1/titlebar-right-maximized.png and b/metacity-1/titlebar-right-maximized.png differ diff --git a/metacity-1/titlebar-right.png b/metacity-1/titlebar-right.png index b1290f9..18b4c0b 100755 Binary files a/metacity-1/titlebar-right.png and b/metacity-1/titlebar-right.png differ