Can I use an uploaded .css file that will essentially affect all of my added regions?

Is this possible? Instead of using the optional stylesheet section, to use one file to command changes across the board?

You can do this with a theme which only contains /web/theme/custom/<name>/css/client.css

client.css is applied to every Widget that embeds HTML.

Hey so I followed the guidelines that are stated in the link you posted, and found a very peculiar problem. None of the files are located in my Xibo folder, and upon searching the entire drive for the Xibo logo file in an effort to try and locate the proper directory - I come up with nothing? I have an Xibo folder with files in it, but none of the default CSS or theme files are there, nor is the PNG file for the logo.

When I inspect the element in the CMS I get /theme/default/img/xibologo.png - but I have no “default” directory in my theme directory that is currently there.

I am using 1.8 - could docker be playing a role in this?

I’m having this issue. I am able to override the css and have the changes reflected in my layout designer & preview layout but as soon as I schedule it and view it on the display none of the css styling is reflected.

I am guessing this is an issue of the display not finding the stylesheet. If so, how do I properly point to it on the display?

This is actually correct - with Docker those files are mapped into the Docker container and updated only at release time. However, we have provided volumes for creating a theme to override the file in question. You can read about that here:

client.css is included as an inline style on all the html pages downloaded by the player (these are the rendered widgets in regions - in the cases where we use HTML). So you won’t “see” a css file in the local player library, however the style should be available in the html.

Ok great, thanks for clarifying.

I have a client.css file placed in C:\Xibo\xibo-docker\shared\cms\web\theme\custom\MyTheme\css

The theme is active, running great, and all CSS changes are being made when in Layout and Layout Preview. However, once I schedule and view the same layout on my Display, it is as though the CSS is not being read or accepted?

Perhaps you answered this, but I can’t quite figure out what is going wrong?

I suppose I should place my config.php info here just in case that helps:

$config = array(
'theme_name' => 'CustomTheme',
'theme_title' => 'CustomTheme',
'app_name' => 'Xibo',
'theme_url' => '',
'cms_source_url' => '',
'cms_install_url' => '',
'cms_release_notes_url' => '',
'latest_news_url' => ''

If you look in your player local library, you will see a bunch of html files - these are widgets that use HTML, generated by the CMS and downloaded by the Player.

They should, in <style> tags, contain the contents of client.css.

If they don’t, then that is a :bug: and would explain why it isn’t working on the player.

Can you check one of those files and see if it contains your CSS? If not, can you delete the said file, let it re-download (they are cached for a period of time). If still no, let me know and I will investigate further.

Hey Dan,

So I have included an image of one of my HTM files below. It doesn’t contain any of the CSS that I’ve added, which DOES work in the Layout Designer and Layout Preview. Does this help? Thanks.

Oh dear - I can see a bug!! The theme is only loaded through the web site and not through the player api, which means that is still getting the file from default/css/client.css

I’ve submitted a bug for that here:

There are two potential workarounds, both require editing system files:

Workaround 1 is edit the client.css file in the default theme folder instead
Workaround 2 is to put $app->configService->loadTheme(); on Line53 of /web/xmds.php

Hi Dan,

Where can I find these on 1.8 (using Docker)?

My search has come up empty for either files/locations?

Hmm, well… editing files inside the Docker container is not trivial (by design) and the correct thing to do would be to wait for us to fix it and release 1.8.3.

Editing docker files is possible though, following the below on a command line:

docker ps

Find your “web” container, usually something like xibocms_web_1

docker exec -it xibocms_web_1 bash
apt-get install nano
nano /var/www/cms/web/xmds.php

Edit Line#53, adding:


Save - CTRL, X, then Y, then Enter

The above workaround has been reported to not work - and to break the XMDS communication. The best thing to do therefore is to wait for the bug fix to appear in the issue report linked above.