A New Chapter for MagicMirror: The Community Takes the Lead
Read the statement by Michael Teeuw here.

Subcategories

  • Share your custom style sheets with the community!

    24 Topics
    302 Posts
    J
    @jerryy622 Hey Jerry, This sounds fantastic! Please share your scripts or a link as to where to find the info! I would love to have this kind of thing running on my TV so i can view it when i switch to the HDMI channel that my Pi would be hooked to! I would love to see some screen shots of what you created also! Joe
  • You have questions regarding CSS?

    114 Topics
    680 Posts
    R
    @kool said Bumping this back up. Pleeeease help Dear @kool , if you are using url as suggested by Sam ( @sdetweil ), you are nearly done. As far as I can see from my rookie perspective you do have some redundancies in your config.js (e.g. the unit section: units, tempUnits, windUnits) ) but this shouldn’t disturb. As far as I understood you can delete these icontables because you do not use the icon-font but try to use some images from sigle file-URLs instead - so you can delete the whole section iconTable {} with all entries. In addition you have to adapt (see above, Sam’s tip) the URL of all you images in your custom.css file. (pls. double check, if the files are really in these locations) You wrote in your current css .weatherforecast .wi-day-sunny { content: url("/home/kool/MagicMirror/css/icons/6fas/day.svg") !important; } IF your weather-icon files are really in this directory (/home/kool/MagicMirror/css/icons/6fas/) than your css should be as follows: .weatherforecast .wi-day-sunny { content: url("/css/icons/6fas/day.svg"); You do not need the !important flag (in my case) second wrong thing besides the URL is your qualifier. you are using .weatherforecast .wi-something .... This cannot be recognized because .weatherforecast is not defined. At first you have to decide if you want to have different icons for the current weather and for the weather forecast. (In my case this is true). IF you would like to have this you have to differentiate the two instances of the weather-module by a “classes” definition. For example your first instance of the weather module (current weather) than should be module: "weather", position: "top_right", // Adjust position as needed classes: "weather_current", config: { weatherProvider: "openmeteo", // Specify the Open-Meteo provider apiBase: "https://api.open-meteo.com/v1", // REQUIRED: Base URL for Open-Meteo lat: xxxx, // REQUIRED: Latitude of the location lon: xxxx, // REQUIRED: Longitude of the location maxNumberOfDays: 8, // OPTIONAL: Number of forecast days (default is 5) pastDays: 0, // OPTIONAL: Number of past days of data to include (default is 0) units: "imperial", // Set this to 'imperial' for Fahrenheit and miles per hour tempUnits: "imperial", // Make sure to match with 'imperial' windUnits: "imperial", type: "current", // OPTIONAL: Change to "current" if only current weather data is desired } }, (pay attention for the third line: classes: “weather_current”, ) THIS is your qualifier if you are about to diffrentiate between current weather and weather forecast image-wise. (“weather_current” is just an example! you can name it like you want every name is suitable and OK, only pay attention that all of these namings are strictly case sensitive, so Weather is NOT the same as weather" Your correct line for custom.css than is: .weather_current .wi-day-sunny { content: url("/css/icons/6fas/day.svg"); and the same dance than for your second instance with DIFFERENT classes-clause in config.js (e.g. a " classes: “weather_forecast”, " in the definition of the second weather instance ) results in a custom.css entry like this: .weather_forecast .wi-day-sunny { content: url("/css/icons/some_other_directory_with_smaller_icons/day.svg"); Because the “forecast instance” of the weather module is (in my case) organized as table I found it really useful to differentite these logos - big ones for current, smaller ones for the forecast: [image: 1744630855324-screenfloat-bildschirmfoto-von-sublime-text-am-14_04_2025-13_38_51-14_04_2025-13-38-51.jpg] If You do NOT like to differentiate the current and forecast instance you do NOT need the classes-phrase in config.js and your correct qualifier is the name of the module (so “weather” ) and your custom.css entry is like this: .weather .wi-day-sunny { content: url("/css/icons/6fas/day.svg"); And this than is valid for both instances. Keep in mind that there are a LOT more weather conditions than the two times 5 conditions you have defined in your current custom.css! my own definition for the current weather for your reference: .weather_current .wi-fog { content: url("/css/icons/current/wsymbol_0007_fog.png"); } .weather_current .wi-cloudy { content: url("/css/icons/current/wsymbol_0002_sunny_intervals.png"); } .weather_current .wi-cloudy-windy { content: url("/css/icons/current/wsymbol_0004_black_low_cloud.png"); } .weather_current .wi-rain { content: url("/css/icons/current/wsymbol_0018_cloudy_with_heavy_rain.png"); } .weather_current .wi-showers { content: url("/css/icons/current/wsymbol_0017_cloudy_with_light_rain.png"); } .weather_current .wi-thunderstorm { content: url("/css/icons/current/wsymbol_0024_thunderstorms.png"); } .weather_current .wi-snow { content: url("/css/icons/current/wsymbol_0019_cloudy_with_light_snow.png"); } .weather_current .wi-snowflake-cold { content: url("/css/icons/current/wsymbol_0020_cloudy_with_heavy_snow.png"); } .weather_current .wi-na { content: url("/css/icons/current/wsymbol_0999_unknown.png"); } .weather_current .wi-day-sunny { content: url("/css/icons/current/wsymbol_0001_sunny.png"); } .weather_current .wi-day-cloudy { content: url("/css/icons/current/wsymbol_0043_mostly_cloudy.png"); } .weather_current .wi-day-cloudy-gusts { content: url("/css/icons/current/wsymbol_0004_black_low_cloud.png"); } .weather_current .wi-day-cloudy-windy { content: url("/css/icons/current/wsymbol_0004_black_low_cloud.png"); } .weather_current .wi-cloudy-windy { content: url("/css/icons/current/wsymbol_0004_black_low_cloud.png"); } .weather_current .wi-day-fog { content: url("/css/icons/current/wsymbol_0007_fog.png"); } .weather_current .wi-day-hail { content: url("/css/icons/current/wsymbol_0015_heavy_hail_showers.png"); } .weather_current .wi-day-haze { content: url("/css/icons/current/wsymbol_0005_hazy_sun.png"); } .weather_current .wi-day-lightning { content: url("/css/icons/current/wsymbol_0016_thundery_showers.png"); } .weather_current .wi-day-rain { content: url("/css/icons/current/wsymbol_0085_extreme_rain_showers.png"); } .weather_current .wi-day-rain-mix { content: url("/css/icons/current/wsymbol_0009_light_rain_showers.png"); } .weather_current .wi-day-rain-wind { content: url("/css/icons/current/wsymbol_0010_heavy_rain_showers.png"); } .weather_current .wi-day-showers { content: url("/css/icons/current/wsymbol_0018_cloudy_with_heavy_rain.png"); } .weather_current .wi-day-sleet { content: url("/css/icons/current/wsymbol_0087_heavy_sleet_showers.png"); } .weather_current .wi-day-sleet-storm { content: url("/css/icons/current/wsymbol_0089_heavy_sleet.png"); } .weather_current .wi-day-snow { content: url("/css/icons/current/wsymbol_0011_light_snow_showers.png"); } .weather_current .wi-day-snow-thunderstorm { content: url("/css/icons/current/wsymbol_0057_thundery_snow_showers.png"); } .weather_current .wi-day-snow-wind { content: url("/css/icons/current/wsymbol_0053_blowing_snow.png"); } .weather_current .wi-day-sprinkle { content: url("/css/icons/current/wsymbol_0009_light_rain_showers.png"); } .weather_current .wi-day-storm-showers { content: url("/css/icons/current/wsymbol_0018_cloudy_with_heavy_rain.png"); } .weather_current .wi-day-sunny-overcast { content: url("/css/icons/current/wsymbol_0002_sunny_intervals.png"); } .weather_current .wi-day-thunderstorm { content: url("/css/icons/current/wsymbol_0024_thunderstorms.png"); } .weather_current .wi-day-windy { content: url("/css/icons/current/wsymbol_0060_windy.png"); } .weather_current .wi-solar-eclipse { content: url("/css/icons/current/wsymbol_0005_hazy_sun.png"); } .weather_current .wi-hot { content: url("/css/icons/current/wsymbol_0045_hot.png"); } .weather_current .wi-day-cloudy-high { content: url("/css/icons/current/wsymbol_0006_mist.png"); } .weather_current .wi-day-light-wind { content: url("/css/icons/current/wsymbol_0060_windy.png"); } .weather_current .wi-night-clear { content: url("/css/icons/current/wsymbol_0008_clear_sky_night.png"); } .weather_current .wi-night-alt-cloudy { content: url("/css/icons/current/wsymbol_0041_partly_cloudy_night.png"); } .weather_current .wi-night-alt-partly-cloudy { content: url("/css/icons/current/wsymbol_0041_partly_cloudy_night.png"); } .weather_current .wi-night-alt-cloudy-gusts { content: url("/css/icons/current/wsymbol_0041_partly_cloudy_night.png"); } .weather_current .wi-night-alt-cloudy-windy { content: url("/css/icons/current/wsymbol_0041_partly_cloudy_night.png"); } .weather_current .wi-night-alt-hail { content: url("/css/icons/current/wsymbol_0031_heavy_hail_showers_night.png"); } .weather_current .wi-night-alt-lightning { content: url("/css/icons/current/wsymbol_0032_thundery_showers_night.png"); } .weather_current .wi-night-alt-rain { content: url("/css/icons/current/wsymbol_0025_light_rain_showers_night.png"); } .weather_current .wi-night-alt-rain-mix { content: url("/css/icons/current/wsymbol_0026_heavy_rain_showers_night.png"); } .weather_current .wi-night-alt-rain-wind { content: url("/css/icons/current/wsymbol_0026_heavy_rain_showers_night.png"); } .weather_current .wi-night-alt-showers { content: url("/css/icons/current/wsymbol_0025_light_rain_showers_night.png"); } .weather_current .wi-night-alt-sleet { content: url("/css/icons/current/wsymbol_0029_sleet_showers_night.png"); } .weather_current .wi-night-alt-sleet-storm { content: url("/css/icons/current/wsymbol_0029_sleet_showers_night.png"); } .weather_current .wi-night-alt-snow { content: url("/css/icons/current/wsymbol_0028_heavy_snow_showers_night.png"); } .weather_current .wi-night-alt-snow-thunderstorm { content: url("/css/icons/current/wsymbol_0075_thundery_snow_showers_night.png"); } .weather_current .wi-night-alt-snow-wind { content: url("/css/icons/current/wsymbol_0071_blowing_snow_night.png"); } .weather_current .wi-night-alt-sprinkle { content: url("/css/icons/current/wsymbol_0025_light_rain_showers_night.png"); } .weather_current .wi-night-alt-storm-showers { content: url("/css/icons/current/wsymbol_0026_heavy_rain_showers_night.png"); } .weather_current .wi-night-alt-thunderstorm { content: url("/css/icons/current/wsymbol_0032_thundery_showers_night.png"); } .weather_current .wi-night-cloudy { content: url("/css/icons/current/wsymbol_0041_partly_cloudy_night.png"); } .weather_current .wi-night-cloudy-gusts { content: url("/css/icons/current/wsymbol_0044_mostly_cloudy_night.png"); } .weather_current .wi-night-cloudy-windy { content: url("/css/icons/current/wsymbol_0044_mostly_cloudy_night.png"); } .weather_current .wi-night-fog { content: url("/css/icons/current/wsymbol_0064_fog_night.png"); } .weather_current .wi-night-hail { content: url("/css/icons/current/wsymbol_0039_cloudy_with_heavy_hail_night.png"); } .weather_current .wi-night-lightning { content: url("/css/icons/current/wsymbol_0032_thundery_showers_night.png"); } .weather_current .wi-night-partly-cloudy { content: url("/css/icons/current/wsymbol_0041_partly_cloudy_night.png"); } .weather_current .wi-night-rain { content: url("/css/icons/current/wsymbol_0025_light_rain_showers_night.png"); } .weather_current .wi-night-rain-mix { content: url("/css/icons/current/wsymbol_0026_heavy_rain_showers_night.png"); } .weather_current .wi-night-rain-wind { content: url("/css/icons/current/wsymbol_0025_light_rain_showers_night.png"); } .weather_current .wi-night-showers { content: url("/css/icons/current/wsymbol_0026_heavy_rain_showers_night.png"); } .weather_current .wi-night-sleet { content: url("/css/icons/current/wsymbol_0029_sleet_showers_night.png"); } .weather_current .wi-night-sleet-storm { content: url("/css/icons/current/wsymbol_0029_sleet_showers_night.png"); } .weather_current .wi-night-snow { content: url("/css/icons/current/wsymbol_0027_light_snow_showers_night.png"); } .weather_current .wi-night-snow-thunderstorm { content: url("/css/icons/current/wsymbol_0075_thundery_snow_showers_night.png"); } .weather_current .wi-night-snow-wind { content: url("/css/icons/current/wsymbol_0028_heavy_snow_showers_night.png"); } .weather_current .wi-night-sprinkle { content: url("/css/icons/current/wsymbol_0025_light_rain_showers_night.png"); } .weather_current .wi-night-storm-showers { content: url("/css/icons/current/wsymbol_0026_heavy_rain_showers_night.png"); } .weather_current .wi-night-thunderstorm { content: url("/css/icons/current/wsymbol_0032_thundery_showers_night.png"); } HTH & good luck! Ralf
  • Main.css / custom.css change

    2
    0 Votes
    2 Posts
    565 Views
    S
    @svenpisa just put your complete root definition in custom.css git checkout css/main.css to restore the original main.css
  • custom css for module question

    11
    1
    1 Votes
    11 Posts
    3k Views
    G
    @MMRIZE said It needs some tricks. ;) thank you :raising_hands: this module has not been designed for this. So I can’t help about it. I recommend hiding empty cells to save some unnecessary (empty) lines. understood even though I hate this kind of looks… But… Is it really useful or pretty? boom! what my wife wants, my wife gets lol (happy wife = happy life Anyway Yes, everything is possible… I’m satisfied! I appreciate your assistance… you’ve inspired me to learn more
  • Modify the font of the compliment module

    2
    0 Votes
    2 Posts
    377 Views
    S
    @Horyzon the compliments module provides a config option to set the classs or classes for the content then you can style it/them in custom.css classes:'foo' .foo { color:...... } [image: 1710877190465-screenshot_20240319_123533_chrome-resized.jpg]
  • Module Region question

    21
    2
    0 Votes
    21 Posts
    7k Views
    G
    @sdetweil I copied it the way you had in another post and it wasn’t working, it’s finally working now. thank you again!
  • What's overriding my custom css?

    7
    0 Votes
    7 Posts
    1k Views
    G
    I figured out how to fix my issue I added : .region.top.center{ top: -50px; left: 560px; } .region.top.left{ top: -50px; left: -50px; } .region.top.right { top: -50px; right: -50px; width: 300px; } to the bottom of my custom css file. thanks guys
  • Notification customize

    10
    0 Votes
    10 Posts
    1k Views
    F
    @MMRIZE i will give it a try later with ur css data and let u know if its work. thank man.
  • changement couleur d'une lettre d'un title

    2
    0 Votes
    2 Posts
    350 Views
    kayakbabeK
    @ludoRaspberry said in changement couleur d'une lettre d'un title: bonjour a tous ; je suis débutant dans la programmation js j’aimerais changer la couleur d’une lettre sur le “title cNews” le c en noir et News en rouge comment puis je faire?? CSS controls the colors and format of the text. It is not the same as js. CSS is a very large topic but the best way to learn is to play with it. You will use the file custom.css to enter your changes. It will override any other css setup by the default MagicMirror. This post has a lot of information: https://forum.magicmirror.builders/topic/6808/css-101-getting-started-with-css-and-understanding-how-css-works?_=1708249746950
  • change position body size

    4
    0 Votes
    4 Posts
    739 Views
    S
    @svenpisa takes all kinds of skills to make a complete thing. looking good is an important characteristic, glad there are folks like you that translate the vision into something concrete.
  • resizing image module

    1
    1
    0 Votes
    1 Posts
    292 Views
    M
    hello Sam, I still need your help, I would like to size the display of the module that you recommended to me (MMM-SmartWebDisplay) for displaying the iss planisphere (https://isstracker.spaceflight.esa.int/ ) and I can’t do it when I change the dimensions in config.js it cuts parts of the image, I would like to reduce its dimension without losing parts of the image, I went to the console I’ve tried a lot of things (certainly not the right ones) and I can’t do it…thank you for your help [image: 1707744512702-9acd7874-9754-4112-9ea7-3ad44806468a-image.png]
  • Zoom resolution server client 4k - FullHD

    3
    0 Votes
    3 Posts
    415 Views
    S
    @botswana you might be able to use a customized css to set different font size based on screen resolution. on another system I use :root{ --scale-factor: 1; /* set default scaling in case we have partial window, debug or in vm terminal window */ } @media screen and (width:1920px) and (orientation: landscape) { :root{ --scale-factor: 1920/1920; }; } @media screen and (width:3840px) and (orientation: landscape) { :root{ --scale-factor: 3840/1920; }; } @media screen and (width:1080px) { :root{ --scale-factor: 1920/1920; }; } and then an example use h1 { font-size: calc( 120px * var(--scale-factor)); } the 120px could be a variable too… magicmirror sets these variables. maybe you can scale them by screen resolution and not have to mod everything… BUT many modules don’t use the predefined css styles :root { --color-text: #999; --color-text-dimmed: #666; --color-text-bright: #fff; --color-background: #000; --font-primary: "Roboto Condensed"; --font-secondary: "Roboto"; --font-size: 20px; --font-size-xsmall: 0.75rem; --font-size-small: 1rem; --font-size-medium: 1.5rem; --font-size-large: 3.25rem; --font-size-xlarge: 3.75rem; --gap-body-top: 60px; --gap-body-right: 60px; --gap-body-bottom: 60px; --gap-body-left: 60px; --gap-modules: 30px; } and maybe css transform:scale() https://caniuse.com/css-zoom
  • MMM-OnThisDayWikiApi - Change font size

    3
    0 Votes
    3 Posts
    425 Views
    KristjanESPERANTOK
    @sdetweil On MMM-OnThisDayWikiApi I do not see this config option. It’s not MMM-OnThisDay. @angeliKITTYx Try this in your custom.css file: .MMM-OnThisDayWikiApi-single > div { font-size: 40px; }
  • 0 Votes
    4 Posts
    1k Views
    Z
    @MMRIZE Thank you, I REALLY appreciate you pointing that out to me. I have gone through and removed and reinstalled all modules manually and moved all of the changes I made to the custom.css and also stopped changing defaults in the .js files and moved those desired changes directly to the config.js file. Saved my bacon from having HUGE headaches in the future with broken configs.
  • MMM-CaelendarExt3 Event Format CSS

    8
    1
    0 Votes
    8 Posts
    1k Views
    M
    @kshamus Use event.class, not event.className. [image: 1704185135055-5ef76f61-d817-4ae0-9cac-83957e50b515-image.png]
  • Alternate Day/Date Format

    4
    0 Votes
    4 Posts
    618 Views
    R
    @MMRIZE Thank you! That is exactly what I wanted.
  • MMM-Anylist columns

    3
    0 Votes
    3 Posts
    552 Views
    S
    @sdetweil Thank you for your reply. I will do that Thank you
  • Changing Text Size and Color

    11
    0 Votes
    11 Posts
    2k Views
    S
    @Grizz952 you should set some styles in the top right empty element window to see the effects
  • Unique Background Colors for Calendars

    2
    0 Votes
    2 Posts
    412 Views
    S
    @Grizz952 not built in, css can set background-color may take multiple clauses
  • Mmm calendar ext3

    11
    0 Votes
    11 Posts
    5k Views
    M
    So I think I’m ok with the bottom calendar I just can’t figure out how to make the list to display for a month instead of all the way into January https://share.icloud.com/photos/078is2God3mgkrI_9spjrgJ5g
  • Background Animation

    5
    0 Votes
    5 Posts
    933 Views
    G
    @sdetweil MMM-DynamicWeather
  • Need some CSS help ... looking for the key names

    3
    0 Votes
    3 Posts
    737 Views
    R
    @sdetweil said in Need some CSS help ... looking for the key names: @ruff-hi see this for how to use the developers window to discover this info https://forum.magicmirror.builders/topic/14862/help-with-a-couple-css-issues?_=1696694536512 also when there is no space between selector elements .bright.medium.light it ONLY applies to AN element that MUST contain all three classes at the same time Thanks - just what I was looking for.