Enhance save as template and new from template dialogs
[inkscape.git] / share / ui / style.css
blobce36bed05c024dbe593646c25b19d4b173d761b7
1 /* GTK3 WIDGET STYLING */
4 /*
5 * Keep in order of:
6 * General -> Specific
7 * Order of appearance in widget tree.
8 * See GtkInspector
9 * GTK_DEBUG=interactive ~/path_to_gtk3/bin/inkscape
11 * We need a standardized naming scheme.
13 * As of Gtk 3.20, you cannot use widget names.
17 /* Standard theme based colors. Prefer these.
19 * @theme_bg_color
20 * @theme_fg_color
21 * @theme_base_color
22 * @theme_text_color
23 * @theme_selected_bg_color
24 * @theme_selected_fg_color
25 * @theme_tooltip_bg_color
26 * @theme_tooltip_fg_color
30 /* Our own custom shades... better not to use.
31 * Lightest to darkest based on linear rgb.
33 @define-color bg_color0 #ffffff;
34 /* White */
35 @define-color bg_color05 #f8f8f8;
36 /* Slightly off white */
37 @define-color bg_color1 #f0f0f0;
38 @define-color bg_color2 #e0e0e0;
39 @define-color bg_color3 #d0d0d0;
40 @define-color bg_color4 #bbbbbb;
41 /* 50% Gray */
42 @define-color bg_color5 #a5a5a5;
43 @define-color bg_color6 #898989;
44 @define-color bg_color7 #636363;
45 @define-color bg_color8 #000000;
46 /* Black */
48 @import url("highlight-colors.css");
50 /* Inkscape CSS helper
51 * to add a class to a widget do some thing like
52 * widget->get_style_context()->add_class("mycoolclass");
53 * we define a bunch of helper CSS styles
54 * Each Inkscape desktop has some classes in top level window
55 * called "dark|bright" (syncked with dark or brighrt themes) and "symbolic|regular" (defined by the user in themes preferences)
56 * so you can style using this clases
57 * by this way you can always know if the UI is in dark mode or using symbolic icons
58 * Also added some helper clases:
59 * ".inverted" invert colors fon widhet and childs
60 * ".highlight-dark" highlights with red tint
61 * ".highlight-light" highlights with yellow tint
62 * ".symbolic" Force icon symbolic
63 * ".regular" Force colorful icons
64 * " .forcebright Force darlk even if the towp wingow has clas dark (happends when theme is dark)
65 * " .forcedark" Force darlk even if the towp wingow has clas bright
66 * :::::::: Combo box.
67 * "..combobright" Combo bright
71 font-feature-settings: "tnum";
74 /* Make icons in treeview etc use theme fg_color, not the stronger text_color */
75 .view.image {
76 color: @theme_fg_color;
78 .view.image:backdrop {
79 color: @theme_unfocused_fg_color;
81 .view.image:disabled {
82 color: @insensitive_fg_color;
85 /* Select on both `image` for GtkImage and `.image` for GtkCellRendererPixbuf */
86 *:disabled .image,
87 *:disabled image {
88 opacity: 0.4;
91 /* For these neednʼt be more specific, as this property only applies to icons */
93 .symbolic {
94 -gtk-icon-style: symbolic;
97 .regular {
98 -gtk-icon-style: regular;
101 .regular .symbolic {
102 -gtk-icon-style: symbolic;
105 .titlebutton > image {
106 -gtk-icon-style: requested;
109 .inverted,
110 .dark .forcebright,
111 .bright .forcedark {
112 color: @theme_bg_color;
113 background-color: @theme_fg_color;
114 background-image: image(@theme_fg_color);
115 caret-color: @theme_bg_color;
116 -gtk-secondary-caret-color: @theme_fg_color;
119 .highlight {
120 color: @theme_fg_color;
121 background-color: alpha(@theme_selected_bg_color,0.5);
122 background-image: image(alpha(@theme_selected_bg_color,0.5));
123 caret-color: @theme_bg_color;
124 border-radius:4px;
125 -gtk-secondary-caret-color: @theme_fg_color;
128 .noborder{
129 border-width:0;
132 /* blinking animation for dialogs reopen*/
133 @keyframes blink_border {
134 0% { border-color: @theme_selected_fg_color;}
135 90% { border-color: @theme_selected_bg_color; }
136 100% { border-color: @theme_selected_fg_color; }
138 @keyframes blink_background {
139 0% { background-color: @theme_bg_color; }
140 90% { background-color: @theme_selected_bg_color; }
141 100% { background-color: @theme_bg_color; }
143 @keyframes blink_background_img {
144 0% { background-image: image(@theme_bg_color); }
145 90% { background-image: image(@theme_selected_bg_color); }
146 100% { background-image: image(@theme_bg_color); }
149 button.blink {
150 animation: 0.5s blink_background_img 0.1s ease 1;
153 notebook.blink {
154 animation: 0.5s blink_border 0.1s ease 1;
157 notebook.blink > header > tabs > tab:checked {
158 animation: 0.5s blink_background 0.1s ease 1;
161 .inverted :not(menuitem):not(.rawstyle):not(overshoot):not(undershoot):not(selection),
162 .bright .forcedark :not(menuitem):not(.rawstyle):not(overshoot):not(undershoot):not(selection),
163 .dark .forcebright :not(menuitem):not(.rawstyle):not(overshoot):not(undershoot):not(selection) {
164 color: inherit;
165 background-color: inherit;
166 background-image: inherit;
169 .dark .combobright .combo,
170 .dark .combobright menu{
171 background-color: @theme_text_color;
172 background-image: linear-gradient(to top, @theme_text_color, @theme_fd_color);
173 caret-color: @theme_base_color;
174 -gtk-secondary-caret-color: @theme_base_color;
176 .dark .combobright box *{
177 color: @theme_base_color;
179 .dark .combobright .combo *,
180 .dark .combobright menu *{
181 color: inherit;
185 /* atribute dialog popup size */
186 .attrpop textview {
187 font-size: 1em;
190 .mono-font {
191 /* note: monospaced font is set by ThemeContext::adjust_global_font_scale() */
195 *to get system default colors
196 * with Gdk::RGBA success =_symbolic_error_color.get_stseparatole_context()->get_color();
197 * _symbolic_error_color has one of this classes applied
200 .system_base_color {
201 color: @theme_fg_color;
202 background-color: @theme_bg_color;
205 .system_error_color {
206 color: @error_color;
209 .system_warning_color {
210 color: @warning_color;
213 .system_success_color {
214 color: @success_color;
217 iconview *:hover {
218 border-width: 1px;
219 border-color: @theme_fg_color;
220 border-style: solid;
221 border-radius: 4px;
224 .dark iconview *:hover {
225 border-color: @theme_bg_color;
228 #startscreennotebook iconview *:hover{
229 background-color:@theme_selected_bg_color;
230 border-radius:5px;
231 border-width:0;
234 .inksmall {
235 font-size: 0.8em;
238 .menu-category {
239 font-size: smaller;
240 font-weight: bold;
243 .small-heading {
244 font-size: smaller;
245 font-weight: bold;
246 opacity: 0.5;
249 .secondary {
250 opacity: 0.7;
253 .halfrem-vert-space {
254 margin-top: 0.5rem;
257 #CommandPaletteBase {
258 background-color: @theme_base_color; /* some themes don't seem to have a background color for list rows defined and would end up transparent otherwise */
259 border: 5px solid @theme_bg_color;
260 border-radius: 5px;
263 #CommandPaletteBase list row:not(:last-child) {
264 border-bottom: 1px solid @bg_color5;
268 /* Selector dialog */
269 #SelectorsAndStyleDialog button {
270 min-height: 16px;
271 margin: 2px;
272 padding: 2px;
275 #SelectorsAndStyleDialog .toggle {
276 min-width: 18px;
277 padding-left: 6px;
278 padding-right: 6px;
279 padding-top: 0;
280 padding-bottom: 0;
283 #SelectorsAndStyleDialog .radio.image-button {
284 margin: 0;
285 padding: 0px;
286 border-radius: 2px 0 0 2px;
289 #SelectorsAndStyleDialog .radio.image-button:last-child {
290 border-radius: 0 2px 2px 0;
291 border-left-width: 0;
294 #SelectorsAndStyleDialog treeview button {
295 border-width: 0;
296 margin: 0 0 1px 0;
299 #SelectorsAndStyleDialog treeview button:nth-child(3),
300 #SelectorsAndStyleDialog treeview.style_sheet button:nth-child(4) {
301 border-width: 0 0 0 2px;
302 border-color: @theme_fg_color;
303 border-style: solid;
304 opacity: 0.5;
307 #SelectorsAndStyleDialog treeview.style_sheet button:nth-child(3) {
308 border-width: 0;
311 #SelectorsAndStyleDialog #StyleDialog treeview button *{
312 font-size:5px;
313 min-height:1px;
314 padding:0;
315 margin:0;
318 #SelectorsAndStyleDialog #StyleDialog treeview button {
319 padding:0;
320 min-height:1px;
321 border-left-width:4px;
322 border-color:@success_color;
325 /* ink-ruler */
327 #InkRuler {
328 /* make size relative */
329 font-size: smaller;
330 color: alpha(@theme_fg_color, 0.6);
333 #InkRuler.horz {
334 min-height: 2em;
337 #InkRuler.vert {
338 min-width: 2em;
341 .bright #InkRuler {
342 /* increase contrast between background and page area */
343 background-color: shade(@theme_bg_color, 0.94);
346 /* Ensure ui/themes.cpp excludes these classes on applying overridebasecolor: */
348 .bright #InkRuler.shadow {
349 color: rgba(0,0,0,0.3);
351 .dark #InkRuler.shadow {
352 color: rgba(0,0,0,0.5);
355 .bright #InkRuler.page {
356 color: @theme_base_color;
358 .dark #InkRuler.page {
359 color: shade(@theme_base_color, 0.666);
362 .bright #InkRuler.selection.border,
363 .dark #InkRuler.selection.border {
364 color: @theme_selected_bg_color;
366 .bright #InkRuler.selection.background,
367 .dark #InkRuler.selection.background {
368 color: transparent;
371 /* The actual canvas (Inkscape's drawing area). */
372 SPCanvas {
373 background-color: white;
376 /* Those are three buttons in canvas corners; their size dictates how large scrollbars are */
377 #QuickActions, #LockGuides, #CMS_Adjust {
378 padding: 0;
379 margin: 0;
380 outline: none;
381 border-radius: 0;
382 border-width: 0px;
383 min-width: 22px;
384 min-height: 22px;
386 /* Don't let images inside those buttons inflate their sizes */
387 #QuickActions *, #LockGuides *, #CMS_Adjust * {
388 padding: 0;
390 #QuickActions image {
391 margin-top: 1px;
394 /* Keep palette scrollbar from generating warnings. */
395 #PreviewHolderScroller .vertical slider {
396 min-height: 15px;
399 /* Override minimum size of container children for palette. */
400 #ColorItemPreview {
401 min-height: 5px;
402 min-width: 5px;
405 /* Reduce width of Fill and Stroke dialog */
406 #ColorModeButton {
407 padding-left: 0;
408 padding-right: 0;
411 /* InkSpinScale */
412 #InkSpinScale {
413 padding: 0px;
416 #InkSpinScale trough,
417 #InkSpinScale slider,
418 #InkSpinScale highlight {
419 border-top-right-radius: 0;
420 border-bottom-right-radius: 0;
423 /* Hide slider */
424 #InkSpinScale slider {
425 background: none;
426 border: none;
427 outline: none;
428 min-width: 0px;
429 min-height: 0px;
430 padding: 0px;
431 margin: 0px;
434 #InkSpinScale scale {
435 padding: 0px;
436 margin:0;
439 #InkSpinScale trough {
440 min-height: 25px;
441 padding: 0; /* remove padding to make inkspinscale the same height as spinbutton */
443 #InkSpinScale trough highlight {
444 margin: 0;
447 #InkSpinScale box.active {
448 box-shadow: 0 0 0 1px rgb(74, 144, 217);
451 #InkSpinScale spinbutton {
452 box-shadow: none;
453 min-height: 10px;
454 border-left:0;
455 border-top-left-radius: 0;
456 border-bottom-left-radius: 0;
459 #InkSpinScale spinbutton entry {
460 min-height: 25px;
461 outline-style: none;
464 #UnicodeIconView {
465 font-size: 1.2em;
468 #ObjectsTreeView.view:focus {
469 outline-style: double;
470 outline-width: 5px;
471 outline-color: alpha(@theme_fg_color, 0.1);
473 #ObjectsTreeView.view:hover {
474 border-color: alpha(@theme_fg_color, 0.1);
475 border-style: solid;
476 border-width: 1px 0px;
478 #Objects .search {
479 padding: 2px 4px;
480 min-height: 16px;
481 font-size: smaller;
484 #SimpleFilterModifier #InkSpinScale {
485 padding: 2px 4px;
488 #CompletionPopup entry {
489 border-top-right-radius: 0;
490 border-bottom-right-radius: 0;
492 #CompletionPopup button {
493 border-top-left-radius: 0;
494 border-bottom-left-radius: 0;
497 /* GtkTreeView: clarify drop locations (especially important for XML editor) */
498 treeview.view:drop(active) {
499 border-style: solid;
500 border-width: 2px;
503 treeview.view:drop(active).after {
504 border-style: none none solid none;
507 treeview.view:drop(active).before {
508 border-style: solid none none none;
511 treeview.view:drop(active).after,
512 treeview.view:drop(active).before {
513 border-width: 4px;
514 border-radius: 10px;
517 button.close-button{
518 background-image: none;
519 padding: 0px;
520 min-height: 1px;
521 min-width: 1px;
522 border: none;
523 opacity: 0.5;
524 box-shadow: none;
527 button.close-button:hover{
528 box-shadow: none;
529 opacity: 1;
533 * Inkscape start dialog styles
536 #start-screen-window .titlebar stack { /* banner-stack */
537 padding: 0;
538 /* opaque bg at bottom corners, rather than having gap, which in GTK3 glitches in transition */
539 background: linear-gradient(to bottom, transparent 0%, transparent 50%, @theme_bg_color);
542 #start-screen-window .combo {
543 padding:1px 10px;
546 #start-screen-window .combo * {
547 padding:2px;
550 #start-screen-window grid label {
551 font-size:small;
552 margin:12px;
555 #start-screen-window * {
556 outline:0;
559 button.link:hover image {
560 -gtk-icon-filter: opacity(0.5);
563 .marker-item-box {
564 padding: 1px;
566 .marker-separator {
567 padding: 0;
570 .tight-button {
571 padding-left: 3px;
572 padding-right: 3px;
575 .small-button {
576 /* small button in-line with spinbuttons, made small not to inflate height of spinbutton */
577 padding: 1px 3px;
580 .link-edit-button {
581 padding: 5px 3px;
582 min-width: 0.5em;
585 /* In some themes stack switcher buttons are extra wide forcing dialogs too wide */
586 stackswitcher button {
587 padding-left: 1px;
588 padding-right: 1px;
589 min-width: 40px;
592 /* ColorPalette */
593 /* set style for small buttons; we need them reasonably small,
594 * since they impact min height of color palette strip */
595 .color-palette-main-box button.small {
596 padding: 1px;
597 margin: 0;
598 min-width: 16px;
600 .color-palette-main-box flowbox,
601 .color-palette-main-box scrolledwindow {
602 padding: 0;
603 border: 0;
604 margin: 0;
605 min-width: 1px;
606 min-height: 1px;
608 /* remove padding/margins from FlowBoxChild widgets,
609 * so previews can be adjacent to each other */
610 .color-palette-main-box flowboxchild {
611 padding: 0;
612 border: 0;
613 margin: 0;
614 min-width: 1px;
615 min-height: 1px;
617 /*removes dashed line (scrolling indicator) on color palette for all themes */
618 .color-palette-main-box scrolledwindow undershoot.top,
619 .color-palette-main-box scrolledwindow undershoot.right,
620 .color-palette-main-box scrolledwindow undershoot.bottom,
621 .color-palette-main-box scrolledwindow undershoot.left {
622 background-image: none;
625 .backgnd-passive {
626 background-color: @theme_bg_color;
627 opacity: 0.5;
628 transition: background-color 300ms linear;
631 @keyframes pulse {
632 0% {
633 opacity: 0.3;
635 50% {
636 opacity: 0.9;
638 100% {
639 opacity: 0.3;
643 .backgnd-active {
644 animation-name: pulse;
645 background-color: @theme_selected_bg_color;
646 animation-duration: 1s;
647 animation-timing-function: ease;
648 animation-iteration-count: infinite;
651 .nb-highlight > header.top {
652 background-color: @theme_selected_bg_color;
655 .tight-flowbox flowboxchild {
656 margin: 0;
657 padding: 0px;
659 .tight-flowbox button {
660 margin: 0;
661 padding: 4px;
664 /* slider with tighter margins */
665 scale.tight-slider {
666 padding: 8px 4px 7px 4px;
669 scale.small-slider {
670 padding-top: 7px;
671 padding-bottom: 7px;
674 /* add .small-marks class to Gtk::Scale to have smaller font used, since markup didn't work there */
675 scale.small-marks.marks-after {
676 font-size: smaller;
679 /* Square toolbar buttons: request square buttons for all toolbars. */
680 button.square-button {
681 padding: 3px;
684 button.square-button image {
685 padding: 0;
686 min-width: 16px;
687 min-height: 16px;
690 .tag-box {
691 background-color: alpha(@theme_fg_color, 0.15);
692 border-radius: 50px;
693 margin: 0;
694 margin-right: 1px;
697 .tag-box label {
698 min-width: 2em; /* don't let it collapse */
699 margin-right: 1px;
700 margin-left: 8px;
703 .tag-box button {
704 padding: 0;
705 margin-right: 2px;
708 /* Give layer selector button label a highlight color */
709 #LayerSelector label
711 padding-left: 6px;
712 border-left-style: solid;
713 border-left-width: 3px ;
714 /* Color is set in src/ui/widget/layer-selector.cpp */
717 #DialogNotebook #Swatches box label {
718 padding-left: 5px;
719 padding-right: 3px;
722 #DialogNotebook #Swatches #ColorItem.group + label {
723 font-weight: bold;
726 #DialogNotebook #Swatches #ColorItem.paint-none + label {
727 font-style: italic;
730 #StyleSwatch {
731 font-size: smaller;
733 #StyleSwatch.vertical {
734 line-height: 0.8;
735 /* Extra height for text descenders (?) makes style swatch bounding box too tall enlarging toolbars;
736 counter combined height of two lines of text that not even line-height can defeat with negative margin. */
737 margin-bottom: -3px;
740 #DocumentProperties #NotebookPage {
741 margin-left: 4px;
742 margin-right: 4px;
745 .informational-text {
746 font-style: italic;
749 .dialog-heading {
750 font-weight: bold;
753 /* heading label in dialogs */
754 .heading {
755 font-weight: bold;
756 font-size: 1.1em; /* make it optically comparable with non-bold */
757 margin-top: 0.5em;
759 /* topmost heading in dialogs */
760 .heading.top {
761 margin-top: 0.2em;
763 /* slightly smaller (sub)heading label in dialogs */
764 .heading1 {
765 font-weight: bold;
766 font-size: 1em; /* make it optically comparable with non-bold */
767 margin-top: 0.5em;
770 /* single-level indentation for labels in a dialog */
771 .indent {
772 margin-left: 1em;
775 .small-font {
776 font-size: smaller;
779 .inkscape-toolbar {
780 margin: 4px;
782 .inkscape-toolbar > * {
783 margin-right: 2px;
784 margin-left: 2px;
786 .inkscape-toolbar > box > image,
787 .inkscape-toolbar > box > label {
788 margin-right: 2px;
790 .inkscape-toolbar popover content > * {
791 margin-right: 2px;
792 margin-left: 2px;
794 /* Revise for gtk4: There's no box in popover */
795 /*.inkscape-toolbar > popover > box {*/
796 /* margin: 4px 3px;*/
797 /*}*/
798 /*.inkscape-toolbar > popover > box > * {*/
799 /* margin-right: 3px;*/
800 /*}*/
801 /*.inkscape-toolbar > popover > box > *:last-child {*/
802 /* margin-right: 0;*/
803 /*}*/
805 /* for dialogs with "Apply" button (or equivalent) - larger hit target */
806 .wide-apply-button {
807 min-width: 150px;
810 button.menu-btn-tight {
811 padding-left: 0;
812 padding-right: 0;
815 #DockedDialogNotebook {
816 border: none;
819 #DialogMenuButton {
820 padding: 0;
821 border: none;
822 opacity: 0.7;
824 #DialogMenuButton:hover {
825 opacity: 1;
828 #DesktopStatusBar {
829 margin-right: 1em;
832 * Inkscape Export Dialog
834 #ExportDialog #export_selection{
835 border-radius: 0px;
837 #ExportDialog #export_preview_single {
838 border: 1px solid;
840 #ExportDialog #export_preview_batch {
841 border: 1px solid;
844 .key {
845 border-radius: 3px;
846 background-color: alpha(@theme_fg_color, 0.15);
847 padding: 2px;
850 combobox.flat-combobox button {
851 border: none;
852 background-color: transparent;
853 background-image: image(transparent);
856 .filter-effects, .effects-params {
857 min-height: 50px;
860 /* Defeat standard darker background color on views: use popoverʼs background */
861 popover.background.filter-effects-info textview,
862 popover.background.filter-effects-info textview > text {
863 background: none;
866 .dark .symbolsoverlay iconview:not(:selected) {
867 background-color: #f0f0f0; /* bright background color for typically black symbols */
868 /* background-color: @theme_fg_color; - this doesn't work for some themes (like MonoThemeDark) */
869 color:@theme_bg_color; /* symbol text labels */
872 .dark .symbolsoverlay {
873 color: @theme_bg_color; /* this is for overlay widget's children */
876 /* LPE Dialog add */
877 #LPEScrolled {
878 border:none;
881 #LPESelectorFlowBox GtkFlowBoxChild,
882 #LPESelectorFlowBox flowboxchild {
883 border-width: 0px;
884 border-radius: 6px;
885 margin: 10px;
886 padding: 10px;
887 margin-bottom: 0px;
888 padding-bottom: 10px;
889 outline: none;
892 #LPESelectorFlowBox flowboxchild * {
893 color: @theme_fg_color;
896 #LPESelectorFlowBox flowboxchild image,
897 #LPESelectorFlowBox flowboxchild label {
898 background-color: transparent;
899 background-image: image(transparent);
902 #LPESelectorFlowBox flowboxchild:selected image,
903 #LPESelectorFlowBox flowboxchild:selected label {
904 color: @theme_selected_fg_color;
907 #LPESelectorFlowBox *:selected #LPESelectorEffectFavTop,
908 #LPESelectorFlowBox *:selected:focus #LPESelectorEffectFavTop {
909 opacity: 0;
912 #LPESelectorFlowBox .lpename {
913 margin-bottom: 5px;
916 #LPESelectorFlowBox .lpeinfo {
917 padding: 20px;
920 #LPESelectorFlowBox .lpedisabled {
921 opacity: 0.3;
924 #LPESelectorEffectInfoPop {
925 padding: 15px;
928 #LPESelectorEffectInfoName {
929 font-weight: bold;
930 padding: 15px;
933 #LPEDialogSelector .lpeinfo {
934 padding: 8px;
935 background-color: @theme_bg_color;
936 color: @theme_selected_fg_color;
937 border-color: @theme_selected_bg_color;
938 border-style: solid;
939 margin: 0px 0px 10px 0px;
940 border-radius: 0px;
941 border-width: 0 0 1px 0;
942 padding:5px;
945 #LPESelectorFlowBox image{
946 background-color:@theme_bg_color;
947 border-color:transparent;
950 #LPEExperimental image {
951 color: transparent;
954 #LPEDialogSelector .searchbar entry image,
955 #LPEDialogSelector .searchbar label,
956 #LPEDialogSelector .searchbar #LPESelectorEffectFavShowImage {
957 color: @theme_fg_color;
960 #LPEDialogSelector.LPEPackMore flowboxchild {
961 margin:5px 1px 0px;
962 padding:3px 3px 10px 3px;
966 #LPEDialogSelector.LPEList .lpename {
967 margin-bottom: 1px;
968 font-weight:bold;
971 #LPEDialogSelector.LPEList flowboxchild {
972 padding:3px 1px 3px 10px;
973 margin:1px 0px 1px;
974 border-radius:0;
975 border-style:dotted;
976 border-color:@theme_fg_color;
977 border-width: 0 0 1px 0;
980 #LPEDialogSelector.LPEList flowboxchild:selected {
981 border-style:none;
982 margin:-3px 0px 0px;
983 padding:4px 1px 4px 10px;
986 #LPEDialogSelector.LPEList #LPESelectorFlowBox *:selected #LPESelectorEffectFavTop,
987 #LPEDialogSelector.LPEList #LPESelectorFlowBox *:selected:focus #LPESelectorEffectFavTop {
988 opacity: 1;
991 #LivePathEffect {
992 padding-top:5px;
995 #LivePathEffect expander:focus, #LivePathEffect expander > label:focus{
996 outline-width:0;
999 #LivePathEffect list{
1000 margin:5px 5px 0 5px;
1003 #LivePathEffect list row{
1004 margin:0;
1005 padding:0;
1006 border-width:0;
1007 border-style:none;
1008 outline-width:0;
1010 #LivePathEffect list row > box{
1011 margin:0;
1012 padding:1px;
1013 border-width:1px;
1014 border-radius:4px;
1015 margin-bottom:5px;
1016 border-style:solid;
1017 border-color:@borders;
1018 outline-width:0;
1021 #LivePathEffect list row:last-child > box{
1022 margin-bottom:0px;
1025 #LPEEffectItem{
1026 border-radius:3px;
1027 padding:2px;
1028 outline:0;
1031 #LPEEffectItem .minbutton {
1032 padding:0;
1033 margin:0;
1034 outline:0;
1035 border-color:@borders;
1038 #LPEEffectItem expander title label {
1039 min-height:26px;
1042 #LPEEffectItem expander,
1043 #LPEEffectItem expander *,
1044 #LPEEffectItem expander:focus,
1045 #LPEEffectItem expander *:focus {
1046 outline:0;
1049 .LPEDrag,.LPEDrag:active,.LPEDrag:focus,.LPEDrag:hover {
1050 margin:0;
1051 padding:0;
1052 border-style:none;
1053 opacity:0.7;
1054 background-color:transparent;
1055 background-image:none;
1056 outline:0;
1059 .LPEDrag:hover {
1060 opacity:1;
1061 background-color:transparent;
1062 background-image:none;
1065 #LivePathEffect list#LPEParentBox row{
1066 border-style:none;
1067 outline:0;
1070 #LivePathEffect list#LPEParentBox row > button {
1071 padding:2px;
1072 margin:0;
1075 #LPEContainer:drop(active) {
1076 box-shadow:none;
1079 #LPECurrentItem *{
1080 color:@theme_fg_color;
1083 #LPEContainer #LPEListBox{
1084 border-style: solid none solid none;
1085 border-color: @theme_base_color;
1086 border-width:0;
1087 padding:0;
1089 #LPEListBox row:drop(active){
1090 box-shadow:none;
1092 #LPEContainer:drop(active).before row:first-child > box,
1093 #LPEListBox row:drop(active).before > box{
1094 border-width:6px 1px 1px 1px;
1095 border-color: @theme_selected_bg_color @borders @borders @borders;
1096 box-shadow:none;
1097 border-radius:6px 6px 0 0;
1100 #LPEContainer:drop(active).after row:last-child > box,
1101 #LPEListBox row:drop(active).after > box{
1102 border-width:1px 1px 6px 1px;
1103 border-color: @borders @borders @theme_selected_bg_color @borders;
1104 border-radius:0 0 6px 6px;
1105 box-shadow:none;
1108 #LPEEffectItem expander title label {
1109 min-height:34px;
1112 #LPEMenu menuitem:not(.menu-category):disabled {
1113 color:alpha(@theme_text_color,0.4);
1116 #LPEListBox row > *:disabled * {
1117 color:@theme_text_color;
1121 #LivePathEffect list row,
1122 #LPEListBox row.activatable:hover {
1123 background-color: transparent;
1126 #LivePathEffect list row .drag-icon,
1127 #LPEListBox row.activatable .drag-icon:hover {
1128 background-color: @theme_base_color;
1129 border-width:1px;
1130 border-radius:0;
1131 margin:0;
1132 padding:5px;
1133 border-style:solid;
1134 border-color:@borders;
1135 outline-width:0;
1138 #LivePathEffect list row .drag-icon * {
1139 outline:0;
1142 #LPEActionButtons #eventbutton:nth-child(1) button{
1143 border-radius:3px 0 0 3px;
1144 border-width:1px 0 1px 1px;
1147 #LPEActionButtons #eventbutton:nth-child(2) button{
1148 border-radius:0;
1149 border-width:1px 0 1px 1px;
1151 #LPECurrentItem * {
1152 border-width:0;
1153 border-style:none;
1155 #LPECurrentItem {
1156 margin-top:0;
1158 #LPECurrentItem image{
1159 margin-right:6px;
1161 #LPECurrentItem {
1162 margin-top:0;
1164 #LPEParentBox{
1165 margin:10px 4px;
1166 padding:0;
1169 /* min size for an angle slider in gradient editor */
1170 .angle-slider {
1171 min-width: 80px;
1174 /* Gtk::PopoverMenu and Inkscape::UI::Widget::PopoverMenu */
1175 /* Make it look basically like GtkMenu; see comments @ original merge request */
1176 popover.menu, /* GTK sets .menu/make_menuized_popover() sets .menuize */
1177 popover.popover-menu { /* Inkscape::UI::Widget::PopoverMenu */
1178 /* Rounded corners can glitch in GTK3 with submenus, and GtkMenu was square anyway = emulate */
1179 border-radius: 0;
1180 border-color: @borders;
1181 padding: 0;
1183 popover.popover-menu contents {
1184 padding: 1px 0;
1186 popover.popover-menu menu {
1187 background: none;
1188 border: none;
1190 popover.popover-menu .menu-category {
1191 min-height: 16px;
1192 padding: 2px 10px;
1194 /* popover.menu modelbutton, */
1195 popover.popover-menu .regular-item {
1196 border-radius: 0;
1197 outline-style: none;
1198 min-height: 23px;
1199 padding: 2px 10px;
1201 popover.popover-menu menuitem:hover {
1202 background-color: @theme_selected_bg_color;
1203 color: @theme_selected_fg_color;
1205 popover.popover-menu menuitem:hover image {
1206 background-color: @theme_selected_bg_color;
1207 color: @theme_selected_fg_color;
1209 popover.popover-menu separator {
1210 margin: 1px 0;
1212 /* Defeat defaulting to having more spacing between RadioButtons than GtkMenu */
1213 popover.popover-menu radiobutton {
1214 padding: 0;
1216 /* Emulate GtkMenu theming in absence of ability to change CSS node name, unlike our PopoverMenu */
1217 /* popover.menu modelbutton:focus,
1218 popover.menu modelbutton:hover {
1219 background-color: @theme_selected_bg_color;
1220 color: @theme_selected_fg_color;
1221 } */
1222 /* UGH! GtkMenuSectionBox has Widget:margin = 10px. Counteract to look like popover.popover-menu */
1223 popover.menu > stack > box {
1224 margin: -2px -6px;
1226 /* Detect submenu headings & replicate GTK .dim-label, looks nicer than leaving normal fg colour */
1227 popover.menu > stack > box > modelbutton:first-child > * /* Affect children not bgcolour */
1229 opacity: 0.55;
1232 /* regular popover that has no arrow and pretends to be a dropdown menu */
1233 popover.popup-menu contents {
1234 margin-top: 1px; /* distance from the bottom of the button above this menu */
1237 /* darker background for extensions gallery due to fixed-color thumbnails (white background + drop shadow) */
1238 .darker-background {
1239 background-image: image(alpha(#000, 0.05));
1242 /* Add margins to tool toolbar: a) separators, so they don't touch buttons b) buttons, so they don't touch sides */
1243 #tool-toolbar separator {
1244 margin-top: 1px;
1245 margin-bottom: 1px;
1247 #tool-toolbar button {
1248 margin-left: 1px;
1249 margin-right: 1px;
1251 #tool-toolbar {
1252 margin: 1px; /* toolbar box itself, so it has some breathing space; other toolbars have much larger margins */
1255 /* used @ ui/themes to get correct foreground color; get_color() can be wrong */
1256 /* Asterisks & stuff in the selectors are just to ensure sufficient priority. */
1257 *.theme_fg_color,
1258 *.theme_fg_color:not(:backdrop),
1259 *.theme_fg_color:backdrop
1261 color: @theme_fg_color;
1264 /* As GTK4 only lets us get the fg color, use these to stash other colors there…
1265 by calling util:get_color_with_class(), *BUT* see its note re this technique.
1266 Asterisks & stuff in the selectors are just to ensure sufficient priority. */
1267 *.theme_bg_color,
1268 *.theme_bg_color:not(:backdrop),
1269 *.theme_bg_color:backdrop
1271 color: @theme_bg_color;
1273 *.theme_selected_bg_color,
1274 *.theme_selected_bg_color:not(:backdrop),
1275 *.theme_selected_bg_color:backdrop
1277 color: @theme_selected_bg_color;
1280 /* ColorSlider */
1281 #ColorSlider {
1282 min-width : 96px;
1283 min-height: 8px;
1286 #ColorPicker {
1287 padding: 0;
1288 min-width: 24px;
1289 min-height: 24px;
1291 #ColorPicker > button {
1292 border-width: 0;
1293 padding: 0;
1295 #ColorPicker > .toggle {
1296 border-width: 0;
1297 padding: 0;
1300 /* ColorPreview */
1301 #ColorPreview {
1302 min-width : 16px;
1303 min-height: 16px;
1305 #ColorPreview.simple {
1306 min-width : 32px;
1307 min-height: 12px;
1309 #ColorPreview:hover:not(.simple) {
1310 border-radius: 3px;
1311 border: solid @theme_selected_bg_color 1px;
1314 /* GradientImage */
1315 #GradientImage {
1316 min-width : 54px;
1317 min-height: 12px;
1320 /* GradientWithStops */
1321 #GradientEdit {
1322 min-width : 60px;
1324 /* widget's height; it should take stop template's height into account
1325 * current value is fine-tuned to make stop handles overlap gradient image
1326 * just the right amount */
1327 min-height: 33px;
1329 /* focus outline, emulates style of GTKʼs Adwaita/Default CSS themeʼs outline */
1330 #GradientEdit {
1331 border: 1px dashed transparent; /* reserve space but donʼt draw til focus */
1332 border-radius: 3px;
1333 padding: 3px;
1335 #GradientEdit:focus-within {
1336 border-color: alpha(@theme_fg_color, 0.3);
1339 /* Canvas */
1340 #InkscapeCanvas {
1341 min-width : 256px;
1342 min-height: 256px;
1345 #Symbols .item-box {
1346 /* symbol items should be tightly packed */
1347 margin: 1px;
1350 /* IconPreview */
1351 frame.icon-preview {
1352 border-radius: 0;
1354 button.icon-preview {
1355 min-width : 0;
1356 min-height: 0;
1357 padding: 5px;
1360 /* GtkFrames that formerly had :shadow-type == NONE */
1361 frame.flat {
1362 border: none;
1365 /*we dont want higlight with tab order only want checked ones */
1366 #ToolToolbar flowboxchild:selected {
1367 background-color:transparent;
1368 background-image:image(@theme_bg_color);
1371 /* Adding some margins for popup dialogs, so the content is not touching the window borders */
1372 .popup-dialog-margins {
1373 margin: 0.75em;
1376 /* Tabs widget */
1377 #DocumentTab { padding: 3px; }
1379 #DocumentTab:hover {
1380 background-color:shade(@theme_bg_color, 0.97);
1383 #DocumentTab.tab_active {
1384 box-shadow: inset 0 -2px @theme_selected_bg_color;
1385 background-color:@theme_bg_color;
1388 #DocumentTabsWidget { box-shadow: none; }
1390 @keyframes pulse-border {
1391 0% {
1392 box-shadow: inset alpha(@theme_selected_bg_color, 0.4) 0px 0px 2px 1px;
1394 50% {
1395 box-shadow: inset @theme_selected_bg_color 0px 0px 6px 2px;
1397 100% {
1398 box-shadow: inset alpha(@theme_selected_bg_color, 0.4) 0px 0px 2px 1px;
1402 #DocumentTabsWidget.drop-highlight > #Overlay {
1403 box-shadow: inset @theme_selected_bg_color 0px 0px 5px 1px;
1404 animation-name: pulse-border;
1405 animation-duration: 1s;
1406 animation-timing-function: ease;
1407 animation-iteration-count: infinite;
1410 /*helper info in popover menu*/
1411 .menu_search{
1412 background-color:alpha(@theme_fg_color,0.1);
1413 margin:0 0 -8px -8px;
1416 /* limit height of list view items */
1417 columnview.list-view-small > listview > row > cell {
1418 padding: 5px;
1421 /* gridview items with smaller margins */
1422 gridview.grid-view-small > child box.item-box {
1423 padding: 0;
1424 margin: 8px;
1425 border-spacing: 8px;
1428 /* list view with items based on labels need some extra vertical space */
1429 listview.list-view-small > row > box.item-box {
1430 margin-top: 3px;
1431 margin-bottom: 3px;
1434 listview.list-view-small > row > box.item-box.separator {
1435 margin: 1px;
1438 /* About screen slide show transitions >>>>>>>>>>>>>>>>>>>>>>>>> */
1439 @keyframes fade_in_opacity {
1440 0% { opacity: 0; }
1441 100% { opacity: 1; }
1443 @keyframes fade_out_opacity {
1444 0% { opacity: 1; }
1445 100% { opacity: 0; }
1447 .fade-in {
1448 animation: 1.2s fade_in_opacity 0s both;
1450 .fade-out {
1451 animation: 1.2s fade_out_opacity 0s both;
1453 .background-transition {
1454 transition-property: background-color;
1455 transition-duration: 1.2s;
1457 /* <<<<<<<<<<<<<<<<<<<<<<<< About screen slide show transitions */
1459 /* Grid definition panel/box in document properties dialog */
1460 .grid-row-definition {
1461 margin: 4px 6px;
1464 InkSpinButton {
1465 min-height: 22px;
1468 separator.faint {
1469 opacity: 0.5;
1472 #ColorPage separator {
1473 min-height: 1px;
1474 margin: 1px 0;
1475 padding: 0;
1478 #ColorWheel {
1479 min-height: 300px;
1482 #ColorPlate.rectangular {
1483 min-height: 160px;
1485 #ColorPlate.circular {
1486 min-height: 300px;
1489 /* Shrink area of separator's influence or else it will interfere with ruler and multipaned handle. */
1490 #TBoxCanvasSeparator {
1491 margin: 0;
1492 padding: 0;
1495 /* Simple decorators for resizing handles giving them borders */
1496 #MultipanedHandle.horizontal {
1497 background-image: linear-gradient(to right,
1498 alpha(@theme_fg_color, 0.25) 0%,
1499 @theme_bg_color 10%,
1500 @theme_bg_color 90%,
1501 alpha(@theme_fg_color, 0.25) 100%);
1503 #MultipanedHandle.vertical {
1504 background-image: linear-gradient(to bottom,
1505 alpha(@theme_fg_color, 0.25) 0%,
1506 @theme_bg_color 10%,
1507 @theme_bg_color 90%,
1508 alpha(@theme_fg_color, 0.25) 100%);
1511 /* Adds an exception to StartScreen recent files tab
1512 which removes the frame in the bottom
1513 See share/ui/inkscape-start.glade:637 */
1514 scrolledwindow.inkscape-start-exception.frame {
1515 border-bottom: 0;
1518 /* separators for DropDown widget's popup list */
1519 listview row.top-separator {
1520 margin-top: 6px;
1521 /* choose separator color that's going to be visible in a popup with both light and dark theme */
1522 box-shadow: 0 -4px alpha(@theme_fg_color, 0.2), 0 -3px @theme_base_color;
1525 /* Eliminate mysterious blue frame that shows up in a list popup of the dropdownlist widget */
1526 #DropDownList listview row:focus {
1527 outline: none;
1530 /* Giving dialog buttons sending responses min size to keep them wider */
1531 .dialog-cmd-button {
1532 min-width: 5em;
1535 /* Limit max size of rows in a stack sidebar to something more compact */
1536 .compact-stack-sidebar list row {
1537 min-height: 2.25em;