CssProvider#
Superclasses: Object
Implemented Interfaces: StyleProvider
A style provider for CSS.
It is able to parse CSS-like input in order to style widgets.
An application can make GTK parse a specific CSS style sheet by calling
load_from_file or
load_from_resource
and adding the provider with add_provider or
add_provider_for_display.
In addition, certain files will be read when GTK is initialized.
First, the file $XDG_CONFIG_HOME/gtk-4.0/gtk.css is loaded if it
exists. Then, GTK loads the first existing file among
XDG_DATA_HOME/themes/THEME/gtk-VERSION/gtk-VARIANT.css,
$HOME/.themes/THEME/gtk-VERSION/gtk-VARIANT.css,
$XDG_DATA_DIRS/themes/THEME/gtk-VERSION/gtk-VARIANT.css and
DATADIR/share/themes/THEME/gtk-VERSION/gtk-VARIANT.css,
where THEME is the name of the current theme (see the
gtk_theme_name setting), VARIANT is the
variant to load (see the
gtk_application_prefer_dark_theme setting),
DATADIR is the prefix configured when GTK was compiled (unless
overridden by the GTK_DATA_PREFIX environment variable), and
VERSION is the GTK version number. If no file is found for the
current version, GTK tries older versions all the way back to 4.0.
To track errors while loading CSS, connect to the
parsing_error signal.
Constructors#
- class CssProvider
- classmethod new() CssProvider#
Returns a newly created
GtkCssProvider.
Methods#
- class CssProvider
- load_from_bytes(data: Bytes) None#
Loads
dataintocss_provider.This clears any previously loaded information.
Added in version 4.12.
- Parameters:
data –
GBytescontaining the data to load
- load_from_data(text, length=-1)#
Loads
dataintocss_provider.This clears any previously loaded information.
Deprecated since version 4.12: Use
load_from_stringorload_from_bytesinstead- Parameters:
text
length – the length of
datain bytes, or -1 for NUL terminated strings
- load_from_file(file: File) None#
Loads the data contained in
fileintocss_provider.This clears any previously loaded information.
- Parameters:
file –
GFilepointing to a file to load
- load_from_path(path: str) None#
Loads the data contained in
pathintocss_provider.This clears any previously loaded information.
- Parameters:
path – the path of a filename to load, in the GLib filename encoding
- load_from_resource(resource_path: str) None#
Loads the data contained in the resource at
resource_pathinto thecss_provider.This clears any previously loaded information.
- Parameters:
resource_path – a
GResourceresource path
- load_from_string(string: str) None#
Loads
stringintocss_provider.This clears any previously loaded information.
Added in version 4.12.
- Parameters:
string – the CSS to load
- load_named(name: str, variant: str | None = None) None#
Loads a theme from the usual theme paths.
The actual process of finding the theme might change between releases, but it is guaranteed that this function uses the same mechanism to load the theme that GTK uses for loading its own theme.
Deprecated since version 4.20: Using any of the other theme loaders, combine with media queries.
- Parameters:
name – A theme name
variant – variant to load, for example, “dark”, or
Nonefor the default
- to_string() str#
Converts the
providerinto a string representation in CSS format.Using
load_from_stringwith the return value from this function on a new provider created withnewwill basically create a duplicate of thisprovider.
Properties#
- class CssProvider
- props.prefers_color_scheme: InterfaceColorScheme#
Define the color scheme used for rendering the user interface.
The UI can be set to either
LIGHT, orDARKmode. Other values will be interpreted the same asLIGHT.This setting is be available for media queries in CSS:
@media (prefers-color-scheme: dark) { // some dark mode styling }
Changing this setting will reload the style sheet.
Added in version 4.20.
- props.prefers_contrast: InterfaceContrast#
Define the contrast mode to use for the user interface.
When set to
MOREorLESS, the UI is rendered in high or low contrast.When set to
NO_PREFERENCE(the default), the user interface will be rendered in default mode.This setting is be available for media queries in CSS:
@media (prefers-contrast: more) { // some style with high contrast }
Changing this setting will reload the style sheet.
Added in version 4.20.
- props.prefers_reduced_motion: ReducedMotion#
Define the type of reduced motion to use for the user interface.
When set to
REDUCEthe UI is rendered in with reduced motion animations.When set to
NO_PREFERENCE(the default), the user interface will be rendered in default mode.This setting is be available for media queries in CSS:
@media (prefers-reduced-motion: reduce) { // some style with reduced motion }
Changing this setting will reload the style sheet.
Added in version 4.22.
Signals#
- class CssProvider.signals
- parsing_error(section: CssSection, error: GError) None#
Signals that a parsing error occurred.
The expected error values are in the
CssParserErrorandCssParserWarningenumerations.The
path,lineandpositiondescribe the actual location of the error as accurately as possible.Parsing errors are never fatal, so the parsing will resume after the error. Errors may however cause parts of the given data or even all of it to not be parsed at all. So it is a useful idea to check that the parsing succeeds by connecting to this signal.
Errors in the
CssParserWarningenumeration should not be treated as fatal errors.Note that this signal may be emitted at any time as the css provider may opt to defer parsing parts or all of the input to a later time than when a loading function was called.
- Parameters:
section – section the error happened in
error – The parsing error
Fields#
- class CssProvider
- parent_instance#