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
  • Move Default Weather Forecast Class

    3
    0 Votes
    3 Posts
    567 Views
    ankonaskiff17A
    @HotMacaroon Did you put both modules in same region, top_right? I have almost identical setup on an MM and if you put both in same region you should not run into that problem because they will position themselves properly as far as what you are trying to do. Is one in top_right and second in a different region? I have like 5 modules, all in top_left in my case. Also note these are in config.js NOT doing anything with CSS With CSS issues like @sdetweil has told me a 100 times, do that with developer tools and my experience is that there is a little trial & error in getting module CSS to look right because of different branded monitor/TV and different screen sizes. Two identical modules should drop with no need to tweak CSS on one and not the other. If you want a particular order, that is dependent on placement of module in the config.js file. Second picture all modules top_left [image: 1687723503367-top_left.jpg] [image: 1687724052342-alltopleft.jpg]
  • MMM-SystemStatsHow to change color of the icons.

    6
    1
    0 Votes
    6 Posts
    2k Views
    S
    @edd189 see https://forum.magicmirror.builders/topic/14862/help-with-a-couple-css-issues?_=1686341739097
  • calendar

    10
    0 Votes
    10 Posts
    1k Views
    J
    @sdetweil - Thanks Sam. This will help when I work on cleaning up my display overall, as i do have multiple instances of both calendar and weather running!
  • How to add more items per line in weather or any other module?

    7
    0 Votes
    7 Posts
    2k Views
    S
    Ah ok, i dont think the user with the screenshot i posted above is paying 40 dollars a month to show 5 icons in a line in the dashboard, this has more to do with CSS rather than the config within the module itself
  • Edit CSS of only one instance of module

    7
    0 Votes
    7 Posts
    863 Views
    S
    @bugsounet yes maybe too
  • MMM-CalendarExt3

    12
    1 Votes
    12 Posts
    4k Views
    S
    @videogame95 the GoogkeAssistant author has asked us not to provide support for his modules here.
  • Change digit fonts for default clock module

    4
    0 Votes
    4 Posts
    889 Views
    S
    @leomirror there are three or four approaches 1 the module documents the classes it uses 2 the module provides a css file that uses the classes it uses 3 you read the source code of the module ( I did this) 4 you use the developers window to examine the content to get the classes see https://forum.magicmirror.builders/topic/14862/help-with-a-couple-css-issues?_=1680719852507 clock module does not do 1 or 2 I wasn’t near a system to do 4 if you had two instances of the clock module and wanted the styles to be different, you would use the module identifier as the key selector #id_name1 .time { color:red; } #id_name2 .time { color:blue; } you could find that name thru option 4 also the css thing before the { is called the selector clause, operated left to right https://www.w3schools.com/cssref/css_selectors.php
  • how to inspect elements in MM

    4
    0 Votes
    4 Posts
    800 Views
    A
    @sdetweil I am grateful for your enlightening message and the added link, That’s going to be very helpful and intereresting. And I am going to move to MMM-CalendarExt3. Many thanks.
  • Help with a couple CSS issues

    22
    0 Votes
    22 Posts
    22k Views
    S
    @sdetweil All help at the bottom of the curve is appreciated. Thank you. Cheers
  • Extreme basic question!

    3
    0 Votes
    3 Posts
    670 Views
    S
    @chris_d the string of things before the { is called the selector clause. this gives u the ability to ‘select’ the html elements you want to apply the styles to I use this cheat sheet to view the different choices https://www.w3schools.com/cssref/css_selectors.php the selector can be very complex here is one from my MMM-Config module .possibly-hidden-tab div:nth-child(2) > div > div >div >ul >li:only-child >a[rel*="Item 1"] { display: none; }
  • Negative Margins - .region.fullscreen ??

    2
    0 Votes
    2 Posts
    380 Views
    BKeyportB
    @dlee my guess is to make sure to cover the entire screen, and not leave any edge.
  • MMM-CalendarEXT2 - changing font size of view title

    10
    0 Votes
    10 Posts
    2k Views
    S
    @Whitling2k glad it worked out.
  • Clock margin

    3
    0 Votes
    3 Posts
    557 Views
    R
    @sdetweil bullet worked perfectly, but I just found out after trying your sitting Google assistant when it loaded it put the clock right back in the center so Google assistant was taking over the top bar. Now I have another problem lol But it worked. That’s the only thing I didn’t try was position absolute thanks for your help I appreciate it
  • Spacing on forecast for weather module?

    2
    0 Votes
    2 Posts
    394 Views
    S
    @junkmale tableClass is the link to the custom.css values for styling .weather .(tableClass name u picked) { font-size: color: ... etc } if u don’t have any info in custom.css for that classname(you picked), you get nothing different than the module provided (if any) oh… don’t ever edit our files… it will break upgrades… (or any module provided file) ALL CSS goes in custom.css ALL config goes in config.js
  • MMM-Weather sizing?

    1
    0 Votes
    1 Posts
    405 Views
    N6NGN
    I can’t figure out how to size the whole MMM-Weather image module. On one of my screens it fits perfectly on the other larger screen it overwrites the calendar times. How do I manage to reduce the overall size of the MMM-Weather module image? Thanks all N6NG Dennis
  • Two color font?

    13
    0 Votes
    13 Posts
    3k Views
    S
    @rubelahamed and?
  • custom css with default weather module

    3
    0 Votes
    3 Posts
    876 Views
    S
    @sdetweil works like a champ. thanks!
  • Default weather font size

    6
    1
    0 Votes
    6 Posts
    1k Views
    S
    @BKeyport well, my text doesn’t work as is… I try to point them to the dev window instructions https://forum.magicmirror.builders/topic/14862/help-with-a-couple-css-issues?_=1663441193880
  • Mirror not using my custom.css

    8
    1
    0 Votes
    8 Posts
    1k Views
    karsten13K
    @justdreambig Image - bastilimbach/docker-magicmirror This docker image is not maintained anymore so you are using an old version of mm (the image was last updated 15 month ago).
  • MMM-CalendarExt2 start week on Monday

    7
    0 Votes
    7 Posts
    1k Views
    J
    @MMRIZE No rush :-) I’ll be patient! CX2 + TimeLine is already sufficient and working for me. Still fiddling with transformation of calendar events, like stripping names from titles because they are redundant in my TimeLine setup: one row for each family member and colors per family member etc I personally like the static mode of the TimeLine better because I always want to see the entire day (until like 10pm or so). So in dynamic mode, I would still have to show “15 hours” or so, because at 7am I still want to see if there’s an appointment until 10pm…
OSZAR »