Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

  1. ioBroker Community Home
  2. Deutsch
  3. Visualisierung
  4. [Projekt] Material Design CSS für ioBroker.vis

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.2k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.9k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.2k

[Projekt] Material Design CSS für ioBroker.vis

Geplant Angeheftet Gesperrt Verschoben Visualisierung
650 Beiträge 111 Kommentatoren 220.3k Aufrufe 68 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • UhulaU Offline
    UhulaU Offline
    Uhula
    schrieb am zuletzt editiert von
    #54

    Hallo Pusemuckel, HTML Tabellen Responsive zu gestalten ist nicht simpel. Hierzu muss man das table construct aufbrechen und zb die mit "display:block" als Blockelemente darstellen. Jede Zelle bildet dann eine eigene Zeile. Sinnvollerweise nimmt man dann via Javascript auch die Inhalte noch jeweils als Label mit über / in die Zeilen. Jquery mobile hat Beispiele dafür.

    Ich hatte hier noch nicht die Notwendigkeit 😉 Wenn ich mal gaanz viel Zeit habe, kann ich was versuchen.

    Uhula - Leise und Weise
    Ex: ioBroker on Gigabyte NUC Proxmox

    1 Antwort Letzte Antwort
    0
    • P Offline
      P Offline
      Pman
      schrieb am zuletzt editiert von
      #55

      Hier ein Wenig CSS, um das Yahoo Wetter Widget zu bändigen. Es gibt sicher noch Optimierungsbedarf.

      /* yahoo weather */
      .weatherFeed {
          -webkit-border-radius: 0px !important;
          -moz-border-radius: 0px !important;
          border-radius: 0px !important;
          color: #fff !important;
      }
      .weatherFeed .weatherCity,
      .weatherFeed .weatherForecastDay
      {
          opacity: 0.7;
      }
      .weatherFeed.ui-widget-content {
          border: 0px !important;
          background: none !important;
      }
      .weatherFeed .day ,.weatherFeed .night {
          border: 0px !important;
          background-color: transparent !important;
          color: inherit !important;
          line-height: 1 !important;
      }
      .weatherFeed .weatherForecastItem {
          background-color: transparent !important;
          -webkit-border-radius: 0px !important;
          -moz-border-radius: 0px !important;
          border-radius: 0px !important;
      }
      .weatherFeed .weatherLink, .weatherForecastItem {
          margin-top: 0.25em !important;
          text-align: left !important;
          line-height: 1.1 !important;
      }
      

      Und folgende Änderung habe ich am Slider vorgenommen, um beim Fokussieren diese blaue (bei Chrome mobile orange) Outline wegzubekommen.

      .mdui-slider .ui-slider-handle:focus{
          outline: none;
      }
      
      1 Antwort Letzte Antwort
      0
      • kmxakK Offline
        kmxakK Offline
        kmxak
        Most Active
        schrieb am zuletzt editiert von
        #56

        Moin,

        ich habe gerade in meinem einsteiger Workshop gelernt das man CSS auch über JS manipulieren kann.

        Ich würde gerne anstatt in jeder Page z.B mdui-teal-bg zu benutzen eine CSS Klasse mdui-custom-bg erstellen und diese dann je nach Wunsch per VIS manipulieren. Dropdown/Buttons mit hinterlegten Farben.

        Dann könnte ich in meiner SettingsPage den Hintergrund direkt im VIS ändern oder ihn sogar falls möglich per JS je nach Tageszeit o.ä steuern.

        Dazu habe ich bislang dank der Hilfe eines Freundes bislang folgendes realisiert:

        Widget

        ! ````
        [{"tpl":"tplHtml","data":{"g_fixed":false,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","refreshInterval":"0","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"html":"\n\n"},"style":{"left":"329px","top":"128px"},"widgetSet":"basic"}]

        CSS
        
        >! ````
        .mdui-custom-bg{
            background-color: yellow;
        } 
        .mdui-custom-bg.rot{
            background-color: red;
        }
        .mdui-custom-bg.gruen{
            background-color: green;
        }
        .mdui-custom-bg.blau{
            background-color: blue;
        }
        

        Script

        ! ````
        function mdui_custom_bg_changer_red() {
        $('.mdui-custom-bg').removeClass('rot gruen blau').addClass('rot');
        }
        ! function mdui_custom_bg_changer_green() {
        $('.mdui-custom-bg').removeClass('rot gruen blau').addClass('gruen');
        }
        ! function mdui_custom_bg_changer_blue() {
        $('.mdui-custom-bg').removeClass('rot gruen blau').addClass('blau');
        }

        
        Das ganze ist sehr simpel gehalten. Mein Freund fragte warum die Farben alle mit !important eingefügt sind. Dies mussten wir entfernen damit es ging. Hat das einen Speziellen Grund?
        
        Falls Interesse besteht könnte man das auch noch fest ins Projekt einbauen.
        
        Die Farbe wird momentan immer auf die eingestellte Farbe beim neu laden zurück gesetzt aber das stört mich erst einmal nicht. Vielleicht hast du da ja eine Idee zu?

        Gruß Alex

        1 Antwort Letzte Antwort
        0
        • MeistertrM Offline
          MeistertrM Offline
          Meistertr
          Developer
          schrieb am zuletzt editiert von
          #57

          Mit meinem mir angeeignet Wissen durch dieses Projekt steht dort impotant damit sich die Farbe über die vom vis Editor gewählten Einstellungen legt ist halt wichtiger als die andere [emoji16]. So hab ich mir das erklärt. Wenn ich falsch liege, bitte gerne korrigieren…

          Gesendet von meinem Handy

          1 Antwort Letzte Antwort
          0
          • kmxakK Offline
            kmxakK Offline
            kmxak
            Most Active
            schrieb am zuletzt editiert von
            #58

            Ich konnte bislang noch keinen negativen effekt sehen durch das entfernen vom important bei den bg farben sowie manchen unterklassen

            Es ist bestimmt für manche sachen/widgets wichtig denke ich mir mal.

            Werde mich am WE mal weiter dran setzen und das ganze verfeinern. Vielleicht kann man ja die "Designfarbe" auch nicht nur im Vis ändern sondern sogar als JS. Machbar ist das wohl. Hätte Abend gerne das Blaue weg und eher ins rötliche/orange und morgens blau.

            Muss ich mal weiter sehen. Der Anfang ist ja da. 8-)

            Gruß Alex

            1 Antwort Letzte Antwort
            0
            • UhulaU Offline
              UhulaU Offline
              Uhula
              schrieb am zuletzt editiert von
              #59

              Was im CSS eine höhere Selektivität hat, gewinnt. Insbesondere Angaben direkt im HTML Elementhaben eine hohe Selektivität; ioBroker.vis rendert dieses häufig. Solche Element-Style-Angaben kann man mit "normalen" CSS nicht überschreiben, es sei denn, man ordnet ihnen das Schlüsselwort "!important" zu.

              Im MD CSS ist das sicher nicht für jedes Widget notwendig, aber um die Granularität nicht unnötig zu erhöhen, habe ich da nicht nach einzelnen Widgets unterschieden, sondern hart "!important" gesetzt.

              –---

              Wenn du lediglich die Hintergrundfarbe ändern möchtest, also morgens "mdui-blue-bg" und abends "mdui-brown-bg" dann bekommst du das auch ganz ohne Javascript und CSS-Manipulation hin.

              Nutze einfach "mdui-{javascript.0.mybackground}-bg" in der CSS Zuweisung und fülle deine javascript.0.mybackground Variable (die du natürlich vorher in ioBroker anlegen musst) script-/zeitgesteuert mit "blue" bzw "brown". Die ioBrioker.vis Binding-Fähigkeiten sind immer wieder verblüffend.

              😉

              Wenn du ganz eigene Custom-Colors (die noch nicht im MD CSS drin sind), nutzen willst, füge die einfach in der CSS hinzu (überall wo zB "mdui-teal" verwendet wird, die Zeilen kopieren und durch "mdui-mycolor1" usw ersetzen) und setze in deiner javascript.0.mybackground Variablen "mycolor1".

              Uhula - Leise und Weise
              Ex: ioBroker on Gigabyte NUC Proxmox

              1 Antwort Letzte Antwort
              0
              • kmxakK Offline
                kmxakK Offline
                kmxak
                Most Active
                schrieb am zuletzt editiert von
                #60

                ok danke mal wieder viel zu kompliziert gedacht 8-)

                Läuft 8-)

                Gruß Alex

                1 Antwort Letzte Antwort
                0
                • M Offline
                  M Offline
                  MaikB85
                  schrieb am zuletzt editiert von
                  #61

                  Das ist richtig Hammer geworden! Vielen Dank dafür!

                  Bin gerade dabei das Design als Grundlage für meine zwecke anzupassen. Ein Problem habe ich da gerade. Ich möchte in die linke Navigation mehr Elemente einfügen. Ich verstehe nur nicht so ganz wie ich das machen muss. Hab das View "lnav" geöffnet nur verstehe ich da die angaben für Left und Top nicht ganz. Möchte dazwischen noch Punkte einfügen. Wie mache ich das?

                  Dann ist mir noch aufgefallen, dass bei den Slidern der Abschluss nicht sauber verdeckt wird von dem Button (siehe Bild). Ist nur ne Kleinigkeit ich weiß aber wäre schön wenn man das korrigieren könnte 🙂

                  Gruß Maik
                  1528_slider.png

                  1 Antwort Letzte Antwort
                  0
                  • N Offline
                    N Offline
                    noxx
                    schrieb am zuletzt editiert von
                    #62

                    ist eigentlich sowas wie ein kleines Video-Tut für Anfänger in Planung?

                    Gruß

                    1 Antwort Letzte Antwort
                    0
                    • Z Offline
                      Z Offline
                      zahnheinrich
                      schrieb am zuletzt editiert von
                      #63

                      Ich bin auch total begeistert!!!

                      Vielen Dank für das tolle tool!

                      Ich habe folgende Frage:

                      Im content habe ich diverse cards positioniert.

                      Ist es möglich, einzelne Gruppen auf einer page zu bilden, also z.B. die cards für Heizung, Licht, Verschluss etc. in Untergruppen anzuordnen, so daß sie in abgegrenzten Bereichen der page gruppiert erscheinen (evtl. optisch abgegrenzt durch einen eigenen Rahmen)?

                      Dadurch wäre die Übersicht besser und ich könnte diese Gruppierungen leichter und übersichtlicher in unterschiedlichen Views verwenden.

                      Ich habe z.B. Anordnungen nach Etagen und Gewerken. So könnte ich z.B. die Thermostate und Lichter jeweils sortiert in der page Etage sowie in der page Licht übersichtlich darstellen.

                      Das responsive Design sollte natürlich erhalten bleiben!

                      Güße und einen schönes Restwochenende

                      Ulrich

                      MfG Ulrich

                      1 Antwort Letzte Antwort
                      0
                      • UhulaU Offline
                        UhulaU Offline
                        Uhula
                        schrieb am zuletzt editiert von
                        #64

                        @zahnheinrich:

                        Ja, das kannst du erreichen in dem du die cards nicht direkt im content einfügst, sondern in einen neuen, eigenen View, den du evtl "groupWohnzimmer" nennst. Dort fügst du dann entsprechend viele "basic-view in widgets" ein, die alle "mdui-float mdui-tile" (oder was du möchtest bekommen). Jedem Widget ordnest du dann den gewünschten card-View zu.

                        Im content-View, wo du normaler in die "basic-view in widgets" die cards abrufts, nutzt du dann die group-Views.

                        Hinweis: Responsive bleibt erhalten, aber nur für die "basic-view in widgets" des content-Views, NICHT für die in den group-Views (geht nur, wenn du die width der group-View in % angibst).

                        @noxx:

                        Ein Video-Tutorial habe ich derzeit nicht geplant (dann würde ich lieber ein MD-vis Adapter machen …). Durch die MD-Demo bzw. MD-Simpel Projekte, die man als Basis eines eigenen Projekts nehmen sollte und dem PDF-Handbuch mit der Beschreibung der "mdui-" CSS sollte man aber auch so voran kommen. Wenn nicht, hier im Forum fragen.

                        @MaikB85:

                        Das mit den left/top Angaben im lnav kann schon verwirren, da es durch die "mdui-float"-Angabe im CSS nicht berücksichtigt wird. Erst durch die float-Angabe ist eine mehrgliedrige Menü-Struktur möglich. Das Einfügen neuer Buttons führt immer dazu, dass diese am Ende angefügt werden (hier zählt die Erstellungsreihenfolge; kann ich nicht beeinflussen). Heißt, du musst über "Widgets exportieren" / "Lösche" / "Widgets importieren" selbst auf die korrekte Erstellungsreihenfolge achten.

                        ODER Jemand baut z.B. in das Widget-Kontextmenü vom ioBroker.vis ein, dass man ein Widget in seiner Erstellungsreihenfolge nach oben/unten schieben kann - das wäre dann eleganter, oder bluefox? 😉

                        Uhula - Leise und Weise
                        Ex: ioBroker on Gigabyte NUC Proxmox

                        1 Antwort Letzte Antwort
                        0
                        • M Offline
                          M Offline
                          MaikB85
                          schrieb am zuletzt editiert von
                          #65

                          Okay danke dann weiß ich schonmal was ich machen muss [emoji6]

                          Gesendet von meinem SM-G925F mit Tapatalk

                          1 Antwort Letzte Antwort
                          0
                          • P Offline
                            P Offline
                            podruzjasne
                            schrieb am zuletzt editiert von
                            #66

                            @MaikB85:

                            Okay danke dann weiß ich schonmal was ich machen muss [emoji6]

                            Gesendet von meinem SM-G925F mit Tapatalk ` Vielen Dank für die Tips!

                            Werde ich befolgen [emoji106]

                            Gesendet von meinem SM-J700H mit Tapatalk

                            1 Antwort Letzte Antwort
                            0
                            • M Offline
                              M Offline
                              MaikB85
                              schrieb am zuletzt editiert von
                              #67

                              So langsam nimmt es Gestalt an 😄

                              Richtig geil was du da gemacht hat! Muss ich einfach nochmal sagen. Damit kann man sich was richtig gutes zusammenbauen!

                              Ich hätte da noch eine kleine Frage an html/CSS spezialisten. Ich hab mir ein Widget für die MAX!-Heizkörperthermostate "designed". Da hab ich Statussymbole mit eingefügt jeweils über "basic BOOL HTML"-Elemente. Ich würde gerne z.B. beim Batteriestatus das Symbol zusätzlich blinken lassen genauso wie in dem CSS-Stil "mdui-red-flash". Das soll aber nur Blinken wenn der Variablenzustand TRUE ist. Ich füge jeweils für die Zustände TRUE bzw FALSE verschiedene HTML Codes ein:

                              Für FALSE:

                              ![](/vis.0/Material/images/ic_battery_full_white_48dp.png)
                              

                              Für TRUE:

                              ![](/vis.0/Material/images/ic_battery_charging_20_white_48dp.png)
                              

                              Wie kann ich bei TRUE jetzt zusätzlich dieses flashing hinzufügen?

                              Im Anhang ein Bild für bessere Vorstellung

                              Gruß Maik
                              1528_screenshot.png

                              1 Antwort Letzte Antwort
                              0
                              • kmxakK Offline
                                kmxakK Offline
                                kmxak
                                Most Active
                                schrieb am zuletzt editiert von
                                #68

                                ich habe einfach ein 2. rot blinkendes mit Sichtbarkeit versehen und exakt an die selbe stelle gesetzt.

                                Also wenn Zustand batlow true dann sichtbar.

                                Gruß Alex

                                1 Antwort Letzte Antwort
                                0
                                • M Offline
                                  M Offline
                                  MaikB85
                                  schrieb am zuletzt editiert von
                                  #69

                                  @kmxak:

                                  ich habe einfach ein 2. rot blinkendes mit Sichtbarkeit versehen und exakt an die selbe stelle gesetzt.

                                  Also wenn Zustand batlow true dann sichtbar. `

                                  Okay an sowas ähnliches habe ich auch schon gedacht, dachte nur vielleicht gibt es auch eine "elegantere" Variante direkt über den HTML Code.

                                  1 Antwort Letzte Antwort
                                  0
                                  • blauholstenB Offline
                                    blauholstenB Offline
                                    blauholsten
                                    Developer
                                    schrieb am zuletzt editiert von
                                    #70

                                    @MaikB85:

                                    So langsam nimmt es Gestalt an 😄

                                    Richtig geil was du da gemacht hat! Muss ich einfach nochmal sagen. Damit kann man sich was richtig gutes zusammenbauen!

                                    Ich hätte da noch eine kleine Frage an html/CSS spezialisten. Ich hab mir ein Widget für die MAX!-Heizkörperthermostate "designed". Da hab ich Statussymbole mit eingefügt jeweils über "basic BOOL HTML"-Elemente. Ich würde gerne z.B. beim Batteriestatus das Symbol zusätzlich blinken lassen genauso wie in dem CSS-Stil "mdui-red-flash". Das soll aber nur Blinken wenn der Variablenzustand TRUE ist. Ich füge jeweils für die Zustände TRUE bzw FALSE verschiedene HTML Codes ein:

                                    Für FALSE:

                                    ![](/vis.0/Material/images/ic_battery_full_white_48dp.png)
                                    

                                    Für TRUE:

                                    ![](/vis.0/Material/images/ic_battery_charging_20_white_48dp.png)
                                    

                                    Wie kann ich bei TRUE jetzt zusätzlich dieses flashing hinzufügen?

                                    Im Anhang ein Bild für bessere Vorstellung

                                    Gruß Maik `
                                    Kannst du das Widget von deinem Thermostat posten? Gefällt mir gut.

                                    Im übrigen, könntest du das blinken mittels JS setzen

                                    Entwickler vom: - Viessman Adapter
                                    - Alarm Adapter

                                    1 Antwort Letzte Antwort
                                    0
                                    • S Offline
                                      S Offline
                                      SchuetzeSchulz
                                      schrieb am zuletzt editiert von
                                      #71

                                      @Uhula:

                                      dann würde ich lieber ein MD-vis Adapter machen … `

                                      DAS wäre doch eine absolut prima Idee, auch wenn es wahrscheinlich eine Menge Aufwand wäre,

                                      aber es würde meiner Meinung nach die Benutzung wesentlich vereinfachen.

                                      1 Antwort Letzte Antwort
                                      0
                                      • Z Offline
                                        Z Offline
                                        zahnheinrich
                                        schrieb am zuletzt editiert von
                                        #72

                                        @Uhula:

                                        @zahnheinrich:

                                        Ja, das kannst du erreichen in dem du die cards nicht direkt im content einfügst, sondern in einen neuen, eigenen View, den du evtl "groupWohnzimmer" nennst. Dort fügst du dann entsprechend viele "basic-view in widgets" ein, die alle "mdui-float mdui-tile" (oder was du möchtest bekommen). Jedem Widget ordnest du dann den gewünschten card-View zu.

                                        Im content-View, wo du normaler in die "basic-view in widgets" die cards abrufts, nutzt du dann die group-Views.

                                        Hinweis: Responsive bleibt erhalten, aber nur für die "basic-view in widgets" des content-Views, NICHT für die in den group-Views (geht nur, wenn du die width der group-View in % angibst).

                                        Danke funktioniert!

                                        Ulrich

                                        MfG Ulrich

                                        1 Antwort Letzte Antwort
                                        0
                                        • UhulaU Offline
                                          UhulaU Offline
                                          Uhula
                                          schrieb am zuletzt editiert von
                                          #73

                                          @MaikB85

                                          Wenn du bei TRUE schon eigenen HTML-Code angibst, dann kannst du dort auch sehr simpel ein "Blinken" mit angeben. Du musst lediglich das class-Attribut mit der/den entsprechenden CSS Klasse(n) mit aufführen:

                                          class="mdui-red-blink">

                                          Auch mehrere CSS Klassen können angegeben werden:

                                          class="mdui-red-flash mdui-yellow-bg">

                                          Uhula - Leise und Weise
                                          Ex: ioBroker on Gigabyte NUC Proxmox

                                          1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          600

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe