dotfiles/themes/Dracula/gtk-4.0/widgets/_lists.scss

154 lines
3.9 KiB
SCSS

/*********
* Lists *
*********/
list, listview {
&, label { color: $text_color; }
background-color: $base_color;
border-color: $borders_color;
&:backdrop {
background-color: $backdrop_base_color;
border-color: $backdrop_borders_color;
}
&.horizontal row.separator,
&.separators.horizontal > row:not(.separator) {
border-left: 1px solid $borders_color;
}
&:not(.horizontal) row.separator,
&.separators:not(.horizontal) > row:not(.separator) {
border-bottom: 1px solid $borders_color;
}
}
row {
&:hover { transition: none; }
&:backdrop { transition: $backdrop_transition; }
&.activatable {
&.has-open-popup, // this is for indicathing which row generated a popover see https://bugzilla.gnome.org/show_bug.cgi?id=754411
&:hover { background-color: if(variant == light, transparentize($fg_color, 0.9), transparentize($fg_color, 0.95)); }
&:active { box-shadow: inset 0 2px 2px -2px transparentize(black, 0.8); }
&:backdrop:hover { background-color: transparent; }
&:selected {
&:active { box-shadow: inset 0 2px 3px -1px transparentize(black, 0.5); }
&.has-open-popup,
&:hover { background-color: transparentize($selected_bg_color, 0.2); }
&:backdrop { background-color: $backdrop_selected_bg_color; }
}
.view { background-color: transparent; }
&.button { @include button(normal); }
}
&:selected { @extend %selected_items; }
}
columnview {
// move padding to child cells
> listview > row {
padding: 0;
// align horizontal sizing with header buttons
> cell {
padding: 2px 6px;
&:not(:first-child) {
border-left: 1px solid transparent;
}
}
}
// make column separators visible when :show-column-separators is true
&.column-separators > listview > row > cell {
border-left-color: $borders_color;
}
// shrink vertically for .data-table
&.data-table > listview > row > cell {
padding-top: 2px;
padding-bottom: 2px;
}
}
treeexpander {
border-spacing: 4px;
}
/********************************************************
* Data Tables *
* treeview like tables with individual focusable cells *
* https://gitlab.gnome.org/GNOME/gtk/-/issues/2929 *
********************************************************/
columnview row:not(:selected) cell editablelabel:not(.editing):focus-within {
outline: 2px solid $borders_color;
}
columnview row:not(:selected) cell editablelabel.editing:focus-within {
outline: 2px solid $selected_bg_color;
}
columnview row:not(:selected) cell editablelabel.editing text selection {
background-color: $backdrop_selected_bg_color;
color: transparent;
&:focus-within {
background-color: $selected_bg_color;
color: $fg_color;
}
}
/*******************************************************
* Rich Lists *
* Large list usually containing lots of widgets *
* https://gitlab.gnome.org/GNOME/gtk/-/issues/3073 *
*******************************************************/
.rich-list { /* rich lists usually containing other widgets than just labels/text */
& > row {
padding: 8px 12px;
min-height: 32px; /* should be tall even when only containing a label */
& > box {
border-spacing: 12px;
}
}
}
/********************************************************
* Complex Lists *
* Put padding on the cell content so event controllers *
* can cover the whole area. *
********************************************************/
columnview.complex {
> listview > row > cell {
padding: 0;
> * {
padding: 8px 6px;
}
}
// shrink vertically for .data-table
&.data-table > listview > row > cell {
padding: 0;
> * {
padding-top: 2px;
padding-bottom: 2px;
}
}
}
.boxed-list-separate { &, &:backdrop { background-color: transparent; }}