I have created a new dedicated issue to upgrade GSS to latest: https://github.com/gwtproject/gwt/issues/10036
Colin Alworth schrieb am Donnerstag, 7. November 2024 um 23:02:14 UTC+1: > We do have at ticket for this, last replied to by Jens as it happens: > https://github.com/gwtproject/gwt/issues/9053 > > https://github.com/css4j/css4j was also recently suggested in gitter as a > possible replacement, but no one has done the research yet if it would be > able to support compile-time operations like CssResource (and > closure-stylesheets) were originally made for. > > There's also the issue that our current strategies make it difficult for > CSP, unless we exclude runtime values. > > On Thursday, November 7, 2024 at 3:51:42 PM UTC-6 Jens wrote: > >> Should we assume that CssResources and GSS are deprecated and stop using >> them? Many JS UI components start using CSS variables to allow for >> customisations. >> >> What are my options? Go for something external to style my GWT >> application? But then I lose the benefits of the obfuscation and >> optimisations that are done by GWT. >> >> >> GWT uses a GSS library released in 2015 but the latest one is 1.5 >> released in 2017. The latest one does have basic support for CSS variables, >> see: >> https://github.com/google/closure-stylesheets/commit/27a94e215b9822f23618b218e143ee03ac85b7e2 >> >> The library should be upgraded in GWT SDK. >> >> For now, it kind of depends on what exactly you need to do but in >> UiBinder you might be able to use a wrapper element and add the variable >> overrides to it, e.g. >> >> <div style="display: contents; --bs-table-color: black;"> >> <my:BootstrapComponent/> >> </div> >> >> The "display: contents;" rule ensures that the added element does not >> change the layout by removing it from the box model. However the added >> element effects the CSS child combinator, so you have to account for the >> added element: >> https://developer.mozilla.org/en-US/docs/Web/CSS/Child_combinator >> I am not sure if UiBinder supports unknown elements but Svelte for >> example uses a custom HTML element named <svelte-css-wrapper> to make it >> more unlikely to accidentally hit a CSS rule targeting "div". >> >> As a last resort you can likely set CSS variables programatically using >> Element.getStyle().setProperty() as it does not run through any kind of CSS >> parser or you use a plain CSS file and plain CSS classes. >> >> For global theming of Bootstrap I would just create a plain CSS file and >> add all the variable overrides, just like you would do in any other page. >> >> -- J. >> > -- You received this message because you are subscribed to the Google Groups "GWT Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion visit https://groups.google.com/d/msgid/google-web-toolkit/5de43693-c675-4f9b-8da7-07e99bc150bdn%40googlegroups.com.
