Files
gnatstudio/share/gps.css
Nicolas Setton e8e891dfd8 Improve the readability of the task view widget
Workaround the hard-coding of the progress bar
color.

Replace a mention of "GPS" with "GNAT Studio".

For #585
2025-10-22 11:23:05 +01:00

686 lines
13 KiB
CSS

/*
* Custom styling for GPS.
*/
/* You can override the default theme colors. Most gtk+ themes are
* carefully setup so that they do not hard-code colors, but use a number
* of predefined named colors and shades of them. For instance:
*/
/*
@define-color base_color black;
@define-color bg_color #fff;
@define-color theme_bg_color green;
*/
@define-color theme_base_color @editor_bg_color;
@define-color inactive_items_selected_color mix(@theme_selected_bg_color, @theme_selected_fg_color, 0.7);
@define-color tooltip-text-color @editor_fg_color;
@define-color error-color mix(@theme_base_color, red, 0.5);
@define-color warning-color mix(@theme_base_color, darkorange, 0.9);
@define-color entry_color_two @editor_bg_color;
@define-color button_bg_color @editor_bg_color;
@define-color gutter_color mix(@editor_fg_color, @editor_bg_color, 0.6);
/*********************
* General
*********************/
* {
-gtk-icon-shadow: none;
text-shadow: none;
}
*:disabled {
color: @inactive_items_color;
}
.view, .dialog-views, menu,
column-header button, list, flowbox {
background-color: @theme_base_color;
}
undershoot, overshoot {
background-image: none;
}
frame > border {
border: none;
}
/**********************************
* Selection
**********************************/
*:selected, textview.view selection, textview.view.editor selection,
row.button:selected {
background-color: @theme_selected_bg_color;
color: @theme_selected_fg_color;
}
/*********************
* Buttons and Combos
*********************/
button, combobox button.combo
{
background-image: -gtk-gradient (linear,
0 0, 0 0.5,
from(@button_bg_color_two),
to(@button_bg_color_one));
border-color: @popup_border_color;
}
checkbutton check, radiobutton radio {
background-color: @mdi_border_color;
background-image: none;
color: @theme_fg_color;
}
/***********************
* Flat Buttons *
***********************/
button.flat, button.flat:hover {
background: transparent;
border-color: transparent;
box-shadow: none;
}
button.flat:active, button.flat:checked {
background-image: -gtk-gradient (linear,
0 0, 0 0.5,
from(@active_button_bg_color_one),
to(@active_button_bg_color_two));
border-color: @popup_border_color;
}
/***********************
* Text Buttons *
***********************/
button.text-button:active, button.text-button:checked {
background-image: -gtk-gradient (linear,
0 0, 0 0.5,
from(@active_button_bg_color_one),
to(@active_button_bg_color_two));
border-color: @popup_border_color;
}
button.suggested-action {
background-image: none;
background-color: @theme_selected_bg_color;
}
/***********************
* Link Buttons *
***********************/
button.link.flat {
/* remove the default padding and margins of all link buttons */
padding: 0pt;
border: 0pt;
margin: 0pt;
}
button.link.flat:hover, button.link.flat:hover label {
color: @theme_selected_bg_color;
background: transparent;
}
/*********************
* Entries
*********************/
entry, .entry.multiline{
background-image: -gtk-gradient (linear,
0 0, 0 0.5,
from(@entry_color_one),
to(@entry_color_two));
border-color: @popup_border_color;
}
/***************************
* Toolbars and Button Boxes
***************************/
#toolbar-box, toolbar {
background: @notebook_background;
}
toolbar {
margin: 0pt;
padding: 0pt;
}
toolbar button {
padding: 0pt;
margin: 0;
}
.gps-local-toolbar {
background: @theme_base_color;
}
/***************
* Info Popups
***************/
.gps-info-popup label {
font-size: larger;
}
/*************
* Menus *
*************/
menubar {
background-color: @notebook_background;
box-shadow: none;
}
menu menuitem:hover {
background: @theme_selected_bg_color;
color: @theme_selected_fg_color;
}
menuitem * {
box-shadow: none;
}
menu {
border: solid 1pt mix(@theme_base_color, @mdi_border_color, 0.5);
}
/*********************
* Progress Bars
*********************/
progressbar trough {
min-height: 3pt;
background-color: @theme_base_color;
}
progressbar progress {
min-height: 3pt;
background-color: @theme_selected_bg_color;
}
.mdichild progressbar trough {
min-height: 2pt;
background-color: @theme_base_color;
background-image: none;
border: none;
}
.mdichild progressbar progress.pulse {
background-color: @theme_selected_bg_color;
background-image: none;
}
/****************************
* Separators and Panew views
****************************/
separator, .pane-separator {
/* Change the color of the separators to make them more visible in
dark themes */
background-color: @mdi_border_color;
background-image: none;
}
paned separator {
margin: 0pt;
padding: 0pt;
min-width: 2pt;
min-height: 2pt;
}
paned > frame > scrolledwindow > viewport > * {
/* Add small padding to scrolled windows embedded in paned views */
padding: 4pt;
}
/**********************
* Scrollbars
**********************/
.overlay-indicator {
opacity: 0.58;
}
.overlay-indicator:hover {
opacity: 0.75;
}
scrollbar {
border: none;
min-width: 8pt;
min-height: 8pt;
background-color: @theme_base_color;
}
scrollbar slider {
border: none;
background-color: @scrollbar_slider_color;
min-width: 8pt;
min-height: 8pt;
}
/***************************
* Dialogs and Assistants *
***************************/
dialog > GtkBox, assistant, assistant > box {
background-color: @theme_base_color;
}
assistant paned label {
margin: 10pt;
}
assistant paned separator {
padding: 0pt;
margin: 0pt;
min-width: 0pt;
}
dialog, window {
background-color: @theme_base_color;
}
.dialog-action-box, dialog buttonbox {
background-color: @notebook_background;
}
.dialog-action-area image {
-gtk-icon-theme: "";
}
/**************************
* GS dialog view groups *
**************************/
.dialog-views-groups > label {
/* Set bold font for group titles */
font-weight: bold;
padding-top: 8pt;
padding-bottom: 2pt;
padding-left: 6pt;
}
.dialog-views-groups-rows {
padding-left: 10pt;
padding-right: 10pt;
}
.dialog-views-doc-labels {
/* Reduce the font size for the inlined preferences documentation */
font-size: smaller;
color: @inactive_items_color;
}
.dialog-views-groups-rows.display_error, GtkInfoBar.display_error {
background-color: @error-color;
}
toolitem.display_error entry {
border-color: red;
}
.dialog-views-button-boxes {
background-color: transparent;
min-width: 0pt;
padding: 0pt;
margin: 0;
}
/*********************
* Welcome Dialog
*********************/
.gps-welcome-dialog-logo-area {
box-shadow: none;
border-width: 0;
padding-top: 10pt;
padding-left: 10pt;
padding-right: 10pt;
padding-bottom: 10pt;
}
.gps-welcome-dialog infobar box {
background-color: transparent;
border: none;
}
.gps-welcome-dialog row button {
color: @inactive_items_color;
}
.gps-welcome-dialog row:hover button {
color: @editor_fg_color;
}
.gps-welcome-dialog-project-label {
color: @editor_fg_color;
}
.gps-welcome-dialog row:selected label {
color: @theme_selected_fg_color;
}
.gps-welcome-dialog-version {
font-weight: 100;
font-style: italic;
font-size: 1.1em;
color: @inactive_items_color;
}
/***************************************
* Learn View
***************************************/
.learn-provider-labels {
font-weight: bold;
}
.learn-groups flowboxchild {
background-color: @learn-items-color;
padding-left: 10pt;
border-radius: 2pt;
}
.learn-groups > label {
font-weight: normal;
color: @inactive_items_color;
padding-top: 10pt;
padding-bottom: 10pt;
}
.learn-groups flowboxchild:selected {
background-color: @theme_selected_bg_color;
color: @theme_selected_fg_color;
}
/********************
* Bug Report Dialog
********************/
#gps-bug-report-dialog > box > * {
padding-left: 4pt;
}
.gps-bug-report-section-desc {
font-weight: bold;
padding-top: 10pt;
padding-bottom: 10pt;
}
#gps-bug-report-dialog .dialog-views-doc-labels {
padding-top: 2pt;
padding-bottom: 6pt;
}
/***************************************
* Tooltips, Completion, Signature Help
***************************************/
.tooltip label {
padding: 8pt;
color: @theme_fg_color;
}
tooltip label {
padding: 2pt;
color: @theme_fg_color;
}
.tooltip.highlighted {
border: 1px solid @theme_selected_bg_color;
}
.completion > *, #signature-help-window > *, .completion.notes > frame,
.tooltip, tooltip, #entity-proposals-menu > box {
border: 1pt solid @popup_border_color;
background-color: @tooltip-background-color;
border-radius: 0pt;
}
.completion.notes frame box {
padding: 4pt;
}
.completion.notes textview.view text {
background-color: @tooltip-background-color;
}
.completion.search > frame > border {
border: solid 1pt @popup_border_color;
}
.completion.search .help-label {
font-size: 2em;
}
.completion.search frame {
background-color: @theme_base_color;
box-shadow: none;
border-width: 0;
}
#signature-help-window .dialog-views label {
padding: 3pt;
}
/**********************************
* Entity Proposals Menu
**********************************/
#entity-proposals-menu .notes {
background-color: @theme_base_color;
}
#entity-proposals-menu .notes label {
padding: 8pt;
}
/*************
* GUI Utils *
*************/
.warning-label {
color: @warning-color;
font-style: italic;
}
.help-label {
color: @inactive_items_color;
font-size: 150%;
}
/*********************
* MDI Notebooks
*********************/
notebook.mdi {
background-color: @notebook_background;
}
notebook.mdi stack {
background-color: @theme_base_color;
}
/***********************
* MDI Notebook headers
***********************/
notebook.mdi header {
border: 1pt solid @notebook_background;
box-shadow: none;
background-color: transparent;
}
/*********************
* MDI Notebook tabs
*********************/
notebook.mdi header tab {
padding: 2pt;
margin: 0pt;
background: transparent;
color: @inactive_items_color;
box-shadow: none;
}
notebook.mdi header tab * {
padding: 2pt;
}
notebook.mdi header .mdi-highlighted-tab {
color: @theme_selected_bg_color;
}
notebook.mdi header .not-from-project {
font-style: italic;
}
notebook.mdi header tab:checked {
border-color: @notebook_background;
color: @theme_fg_color;
}
notebook.mdi header.top tab {
border-top: 2pt solid @notebook_background;
}
notebook.mdi header.left tab {
border-left: 2pt solid @notebook_background;
}
notebook.mdi header.right tab {
border-right: 2pt solid @notebook_background;
}
.notebook.mdi header.bottom tab {
border-bottom: 2pt solid @notebook_background;
}
/***************************
* MDI Notebook focused tabs
***************************/
notebook.mdifocused header tab:checked {
background-color: @theme_base_color;
}
notebook.mdifocused header.top tab:checked {
border-top: 2pt solid @theme_selected_bg_color;
}
notebook.mdifocused header.left tab:checked {
border-left: 2pt solid @theme_selected_bg_color;
}
notebook.mdifocused header.right tab:checked {
border-right: 2pt solid @theme_selected_bg_color;
}
notebook.mdifocused header.bottom tab {
border-bottom: 2pt solid @theme_selected_bg_color;
}
/**********************************
* Editors and Text Views
**********************************/
textview.view text {
background-color: @editor_bg_color;
color: @editor_fg_color;
}
textview.view.readonly text {
background-color: @readonly_color;
}
.gps_gutter {
color: @gutter_color;
}
.gps-editor-status-bar button {
padding: 0pt 2pt;
}
.gps-editor-status-bar > * {
margin: 0pt;
padding: 0pt;
}
.gps-editor-status-bar {
background-color: @notebook_background;
}
/**********************************
* GNAThub Report
**********************************/
#gnathub-report-tree {
padding-left: 10px;
}
/**********************************
* Refactoring input window
**********************************/
.gnatstudio-refactor-input {
border: 1pt solid @popup_border_color;
}
.gnatstudio-refactor-input box {
padding: 4pt;
}
/**********************************
* Multiline Entry
**********************************/
.entry.multiline {
border: 1pt solid @popup_border_color;
}
/**********************************
* Demos
**********************************/
.gps-demo-menu-highlighted {
background-color: @theme_selected_bg_color;
color: @theme_selected_fg_color;
}
/**********************************
* Task Manager
**********************************/
/* There does not seem to be a way of controlling the color
of the progress bar itself:
https://gitlab.gnome.org/GNOME/gtk/-/blob/gtk-3-24/gtk/gtkcellrendererprogress.c#L646
So we fix the foreground to the text color and the background to
the gutter color.
*/
.task_view_tree .progressbar,GtkTreeView {
color: @editor_fg_color;
background-color:red;
}
.task_view_tree *:selected {
background-color: @gutter_color;
}