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
  • Weather Forecast - Inver min max

    5
    1
    0 Votes
    5 Posts
    1k Views
    B
    Thanks @mumblebaj and @sdetweil. Guess I’ll try what you guys suggested since I don’t plan on updating things often. I thought there could be a way to do so without changing the code.
  • Trouble getting Background Image to Show

    27
    0 Votes
    27 Posts
    8k Views
    ankonaskiff17A
    @sdetweil I have a ton of pictures from rocket launches to elk in Rockies. I somehow or another had found Dak Board and piddled with it but it was a subscription based system that MagicMirror puts to shame.
  • Format/Delete Sunset & Sunrise Time

    4
    2
    0 Votes
    4 Posts
    1k Views
    S
    @ankonaskiff17 i think so
  • Main.css, Custom.css and Big Screen TV

    4
    0 Votes
    4 Posts
    1k Views
    ankonaskiff17A
    @cowboysdude I understand the purpose of custom.css and in the end main.css which I copy to custom.css will be different than main.css. When you run MM on a big 45+ inch TV , each module is really small so if you park module X at top_left and park module Y at bottom_right you have two small modules that are same small size and would seem better to do them both with one block of css. The other thing that I want to understand is if the top, bottom, left and right sections scale up on big monitor? If I put a module in top_left is the right edge of the module hitting the right side of the left section. My first pass at this was module by module in custom.css and it was a chore. I’m first to admit i’m a noob in extreme at this but after upscaling each module one by one I was wondering if there was an easier way. I subsequently blew up whole thing so opted to start over. I don’t mind that I killed module via that very css but on second pass I’d as soon avoid the module by module tweaking. As @sdetweil says, just piling in more modules not way to go. Standard PC monitor it is not an issue. All the modules seem written with PC monitor in mind. In my use case I want MM to occupy one of HDMI ports on TV, with other HDMI port being cable TV. I can just toggle inputs on TV remote to flip between the two. [image: 1627182779095-module-question.jpg]
  • Font-Awesome Icons

    3
    0 Votes
    3 Posts
    1k Views
    earnestrichardsE
    @earnestrichards -from the index.html file: <h3>Double click on the image to <i class="fas fa-heart"></i> it</h3> from the style.css file: .fa-heart { color: red; } [image: 1626572578756-screen-shot-2021-07-17-at-8.42.08-pm.png]
  • Make Center Area Less Wide

    10
    0 Votes
    10 Posts
    2k Views
    BKeyportB
    @hango That’ll do it, but if I recall correctly, if you set bottom center and top center to 20%, left and right will automatically take up the slack, no need to convert them, conversely, if you set left or right to 40%, the remaining 60% would automatically be split between them.
  • Clearing Custom CSS warnings from editor,

    10
    0 Votes
    10 Posts
    1k Views
    S
    @ankonaskiff17 yes. and I have multiple calendars and do the same, add another url
  • MMM-CalendarExt2 CSS (HELP)

    2
    0 Votes
    2 Posts
    925 Views
    BKeyportB
    @chrixbrown Which format are you using? There’s a command in the config.js for Daily, for instance, called hideOverflow If you set that to false, it’ll spew out everything.
  • Module Border Removal Issue

    Solved
    14
    1
    0 Votes
    14 Posts
    3k Views
    S
    @ankonaskiff17 no, they recreate the output every time, so you have to slow them down…
  • Changing size/font for a module but not the whole region

    2
    0 Votes
    2 Posts
    822 Views
    S
    @cheapdad said in Changing size/font for a module but not the whole region: .MMM-calendar isn’t that .MMM-Calendar case matters also read this https://forum.magicmirror.builders/topic/14862/help-with-a-couple-css-issues?_=1625369547195 about how to use the developers window to test out the changes needed one thing not known then once you figure out the settings, you can copy paste the top right window to paste into your css entry in custom.css
  • Mirror not displaying on the entire screen

    9
    0 Votes
    9 Posts
    2k Views
    BKeyportB
    @jbeechey32 Sam tends to show you the START, I’ll show my solutions 'cuz I’m lazy, and figure other people are too. 🤣
  • Suggestions?

    6
    1
    0 Votes
    6 Posts
    1k Views
    cowboysdudeC
    @mykle1 That sir is the weather module I built for my own mirror :) It’s never been made public… it’s all one module. Thanks for noticing!
  • Need help creating CSS for newsfeed

    2
    0 Votes
    2 Posts
    595 Views
    S
    @cheapdad well, its only a start https://forum.magicmirror.builders/topic/14862/help-with-a-couple-css-issues?_=1619795022054 css is an enormous topic… this is the fastest way to see what works… (altho because it changes the topic, its hard to work on some of it… ) https://forum.magicmirror.builders/topic/6808/css-101-getting-started-with-css-and-understanding-how-css-works?_=1611671889049 you will need to change the width of the surrounding elements. newsfeed already provides a couple css styles (which you can override in custom.css
  • How to change headline for newsfeed?

    2
    0 Votes
    2 Posts
    462 Views
    S
    @cliff365 review this on how to find the selectors of things u want to change https://forum.magicmirror.builders/topic/14862/help-with-a-couple-css-issues?_=1619213301986
  • Moving elements of modules

    4
    2
    0 Votes
    4 Posts
    733 Views
    S
    @nneuland you should have put in custom.css… not modify module file… cause later if the module is updated, the git pull to update will fail cause the modified file would be overwritten by the file the module owns in custom.css just add .modulename in front of the identifier .MMM-Discog .classname ?????? { ... .. .. }
  • Can't change color of analog clock in default clock module

    Solved
    4
    0 Votes
    4 Posts
    2k Views
    J
    OK, I finally succeeded in changing the analog clock to red. It wasn’t pretty and I don’t know if there is a better way. But here’s what I did, for the record: In modules/default/clock/faces, I copied face-010.svg to face-013.svg to create a new face. I edited face-013.svg to modify the style to have a fill color: <style>.cls-1{fill:#f00;}</style> Added the following to my custom.css: /* for the date display */ .nightclock .date.normal.medium { color: #f00; } /* for the hour hand */ .nightclock .clockHour { background: #f00; } /* for the minute hand */ .nightclock .clockMinute { background: #f00; } Edit the config: section of the clock module in config.js. Added secondsColor: “#f00” to the config: section of the clock module in config.js to change the color of the second hand Change the analogFace config to the newly edited “face-013”.
  • Bottom_bar three-piece....

    2
    0 Votes
    2 Posts
    523 Views
    S
    @foxy25 custom.css see main.css for the regions index.html web page layout
  • Default weather module modification in custom.css

    4
    0 Votes
    4 Posts
    3k Views
    B
    @danielantos90 did you manage to change the font size of “feels like” ??
  • New Weather module (default) need help please

    2
    1
    0 Votes
    2 Posts
    544 Views
    S
    @stoffbeuteluwe see my post here about using the developers window https://forum.magicmirror.builders/topic/14862/help-with-a-couple-css-issues?page=1
  • Where to start with custom CSS?

    2
    0 Votes
    2 Posts
    1k Views
    lavolp3L
    @francisceril you do not need to and you must not move custom.css. If above doesn’t work then your selectors are wrong. You can find out the right selector by opening the mirror in your pc browser, pressing f12 or ctrl+shift+i and using the dev tool. In the upper left corner you can choose an element picker, go to the time and find out the selector.