| @@ -2,14 +2,126 @@ |
| 2 | 2 | | on top of adw-gtk3 / libadwaita. Imported by gtk-3.0/gtk.css and gtk-4.0/gtk.css after matugen's colours |
| 3 | 3 | | (~/.cache/matugen/gtk.css: libadwaita names + aurora_bg/s1/s2/s3/fill/live/... like Theme.qml). |
| 4 | 4 | | Static on purpose: edits show in newly started apps, no matugen run. Only properties BOTH versions parse |
| 5 | | − | (no text-transform, transform, filter, -gtk-icon-size): GTK3 prints a warning per app otherwise. User css beats the |
| 6 | | − | theme at any specificity, so whatever is set here is set for every state. */ |
| 5 | + | (no text-transform, transform, filter, -gtk-icon-size, --variables): GTK3 prints a warning per app otherwise. User css |
| 6 | + | beats the theme at any specificity, so whatever is set here is set for every state (add :disabled etc. explicitly). */ |
| 7 | + | |
| 8 | + | /* ---- type: labels in Space Mono with aurora's Lb tracking (caps only on GTK4: GTK3 has no text-transform). |
| 9 | + | No letter-spacing on labels that ellipsize (headerbar title, statusbar, path bar): GTK measures them without it and |
| 10 | + | cuts the last characters off. ---- */ |
| 11 | + | .heading, .caption-heading, treeview.view header button { |
| 12 | + | font-family: "Space Mono"; |
| 13 | + | font-weight: normal; |
| 14 | + | font-size: 12px; |
| 15 | + | letter-spacing: 1.7px; |
| 16 | + | color: @aurora_grey; |
| 17 | + | } |
| 18 | + | headerbar .title { font-family: "Space Mono"; font-weight: normal; font-size: 13px; } |
| 19 | + | headerbar .subtitle { font-family: "Space Mono"; font-size: 11px; color: @aurora_grey; } |
| 20 | + | statusbar { font-family: "Space Mono"; font-size: 11px; color: @aurora_grey; padding: 6px 12px; } |
| 7 | 21 | | |
| 8 | 22 | | /* ---- pills; joined groups keep straight inner corners ---- */ |
| 9 | | − | button, entry { border-radius: 999px; } |
| 23 | + | button, entry, spinbutton:not(.vertical) { border-radius: 999px; } |
| 10 | 24 | | entry { padding-left: 14px; padding-right: 14px; } |
| 25 | + | spinbutton:not(.vertical) > entry, spinbutton:not(.vertical) > text { padding-left: 14px; } |
| 11 | 26 | | .linked:not(.vertical) > button:not(:first-child), .linked:not(.vertical) > entry:not(:first-child) { border-top-left-radius: 0; border-bottom-left-radius: 0; } |
| 12 | 27 | | .linked:not(.vertical) > button:not(:last-child), .linked:not(.vertical) > entry:not(:last-child) { border-top-right-radius: 0; border-bottom-right-radius: 0; } |
| 13 | 28 | | .linked.vertical > button, .linked.vertical > entry { border-radius: 12px; } |
| 14 | | − | popover > contents, popover.background { border-radius: 24px; } |
| 15 | 29 | | scrollbar slider { border-radius: 999px; } |
| 30 | + | |
| 31 | + | /* "on" = primary with on_primary on it (aurora's fill/fillFg): checked toggles, selected rows, text selection */ |
| 32 | + | button:checked, button:checked:hover { background-color: @aurora_fill; color: @aurora_fill_fg; box-shadow: none; } |
| 33 | + | row:selected, row:selected:hover, treeview.view:selected, iconview:selected, flowboxchild:selected, selection { |
| 34 | + | background-color: @aurora_fill; |
| 35 | + | color: @aurora_fill_fg; |
| 36 | + | } |
| 37 | + | /* the one live thing: the caret (and a running spinner) */ |
| 38 | + | entry, textview, spinbutton { caret-color: @aurora_live; } |
| 39 | + | spinner { color: @aurora_live; } |
| 40 | + | |
| 41 | + | /* ---- surfaces: rounded cards, outlines instead of shadows ---- */ |
| 42 | + | popover > contents, popover.background { border-radius: 24px; box-shadow: none; border: 1px solid @aurora_s3; } |
| 43 | + | tooltip, tooltip.background { border-radius: 12px; background-color: @aurora_s2; color: @aurora_fg; border: none; box-shadow: none; } |
| 44 | + | headerbar { box-shadow: none; border-bottom: none; } |
| 45 | + | /* no gradients: the scroll edge shading (pcmanfm's view kept a grey gradient along its bottom and right edge) */ |
| 46 | + | scrolledwindow undershoot, scrolledwindow overshoot { background: none; box-shadow: none; border: none; } |
| 47 | + | |
| 48 | + | /* notebook: tabs as pills on the window, the page an s1 card */ |
| 49 | + | notebook, notebook > header { border: none; box-shadow: none; background: none; } |
| 50 | + | notebook > header { padding: 4px 0 8px; } |
| 51 | + | notebook > header tab { border-radius: 999px; padding: 4px 16px; min-height: 22px; box-shadow: none; outline-offset: -2px; } |
| 52 | + | notebook > header tab:hover:not(:checked) { background-color: @aurora_s3; } |
| 53 | + | notebook > header tab:checked { background-color: @aurora_fill; color: @aurora_fill_fg; } |
| 54 | + | notebook > header tab:checked button { color: @aurora_fill_fg; } |
| 55 | + | |
| 56 | + | /* switch: off = s3 track with a grey knob, on = primary track with an on_primary knob */ |
| 57 | + | switch { background-color: @aurora_s3; border: none; box-shadow: none; } |
| 58 | + | switch:checked { background-color: @aurora_fill; } |
| 59 | + | switch slider { background-color: @aurora_grey; border: none; box-shadow: none; } |
| 60 | + | switch:checked slider { background-color: @aurora_fill_fg; } |
| 61 | + | switch:disabled { background-color: @aurora_s2; } |
| 62 | + | switch:disabled slider { background-color: @aurora_mute; } |
| 63 | + | |
| 64 | + | /* ---- LED dots (aurora's BarSlider / Seg): 4px dots on a 9px pitch, unlit = s3, lit = primary ---- |
| 65 | + | The trough carries the unlit row, the filled part (highlight, progress, block.filled) the lit row from the same |
| 66 | + | left edge, so both rows line up. */ |
| 67 | + | scale.horizontal trough, progressbar.horizontal trough, levelbar.horizontal.continuous trough { |
| 68 | + | min-height: 9px; |
| 69 | + | padding: 0; |
| 70 | + | border: none; |
| 71 | + | border-radius: 0; |
| 72 | + | box-shadow: none; |
| 73 | + | background-color: transparent; |
| 74 | + | background-image: radial-gradient(circle, @aurora_s3 2px, transparent 2.6px); |
| 75 | + | background-size: 9px 9px; |
| 76 | + | background-repeat: repeat-x; |
| 77 | + | background-position: left center; |
| 78 | + | } |
| 79 | + | scale.horizontal highlight, progressbar.horizontal progress, levelbar.horizontal.continuous block.filled { |
| 80 | + | min-height: 9px; |
| 81 | + | border: none; |
| 82 | + | border-radius: 0; |
| 83 | + | box-shadow: none; |
| 84 | + | background-color: transparent; |
| 85 | + | background-image: radial-gradient(circle, @aurora_fill 2px, transparent 2.6px); |
| 86 | + | background-size: 9px 9px; |
| 87 | + | background-repeat: repeat-x; |
| 88 | + | background-position: left center; |
| 89 | + | } |
| 90 | + | levelbar.horizontal.continuous block.empty { background: none; border: none; box-shadow: none; } |
| 91 | + | scale.horizontal highlight:disabled, scale.horizontal:disabled highlight { |
| 92 | + | background-image: radial-gradient(circle, @aurora_mute 2px, transparent 2.6px); |
| 93 | + | } |
| 94 | + | /* the knob: a bigger head dot */ |
| 95 | + | scale slider, scale slider:hover, scale slider:active { |
| 96 | + | min-width: 13px; |
| 97 | + | min-height: 13px; |
| 98 | + | margin: -2px; |
| 99 | + | border: none; |
| 100 | + | border-radius: 999px; |
| 101 | + | box-shadow: none; |
| 102 | + | background-color: @aurora_fill; |
| 103 | + | } |
| 104 | + | scale slider:disabled { background-color: @aurora_mute; } |
| 105 | + | /* a level bar's warning colours stay dots */ |
| 106 | + | levelbar.horizontal.continuous block.filled.low { |
| 107 | + | background-image: radial-gradient(circle, @aurora_live 2px, transparent 2.6px); |
| 108 | + | } |
| 109 | + | levelbar.discrete block { min-width: 9px; min-height: 9px; margin: 0 2px; border: none; border-radius: 999px; box-shadow: none; } |
| 110 | + | levelbar.discrete block.empty { background-color: @aurora_s3; } |
| 111 | + | levelbar.discrete block.filled { background-color: @aurora_fill; } |
| 112 | + | |
| 113 | + | /* dotted lines instead of rules, like aurora's section dividers */ |
| 114 | + | separator.horizontal:not(.spacer) { |
| 115 | + | min-height: 2px; |
| 116 | + | background-color: transparent; |
| 117 | + | background-image: radial-gradient(circle, @aurora_s3 1px, transparent 1.4px); |
| 118 | + | background-size: 6px 2px; |
| 119 | + | background-repeat: repeat-x; |
| 120 | + | } |
| 121 | + | separator.vertical:not(.spacer) { |
| 122 | + | min-width: 2px; |
| 123 | + | background-color: transparent; |
| 124 | + | background-image: radial-gradient(circle, @aurora_s3 1px, transparent 1.4px); |
| 125 | + | background-size: 2px 6px; |
| 126 | + | background-repeat: repeat-y; |
| 127 | + | } |