Création widget avec CSS

Hello à tous,

Je tente de recréer ces icones de homekit pour mon design jeedom:

Avec ce générateur plutot pas mal en ligne:

J’ai le code CSS pour le ON et le OFF:

ON:

*/CSS POUR ON

.button {
    display: inline-block;
    text-align: center;
    vertical-align: middle;
    padding: 12px 24px;
    border: 1px solid #aba7a5;
    border-radius: 8px;
    background: #f4efeb;
    background: -webkit-gradient(linear, left top, left bottom, from(#f4efeb), to(#aba7a5));
    background: -moz-linear-gradient(top, #f4efeb, #aba7a5);
    background: linear-gradient(to bottom, #f4efeb, #aba7a5);
    text-shadow: #ffffff 1px 1px 1px;
    font: normal normal normal 27px arial;
    color: #111111;
    text-decoration: none;
}
.button:hover,
.button:focus {
    border: 1px solid ##f4efeb;
    background: #ffffff;
    background: -webkit-gradient(linear, left top, left bottom, from(#ffffff), to(#cdc8c6));
    background: -moz-linear-gradient(top, #ffffff, #cdc8c6);
    background: linear-gradient(to bottom, #ffffff, #cdc8c6);
    color: #111111;
    text-decoration: none;
}
.button:active {
    background: #aba7a5;
    background: -webkit-gradient(linear, left top, left bottom, from(#aba7a5), to(#aba7a5));
    background: -moz-linear-gradient(top, #aba7a5, #aba7a5);
    background: linear-gradient(to bottom, #aba7a5, #aba7a5);
}
.button:before{
    content:  "\0000a0";
    display: inline-block;
    height: 24px;
    width: 24px;
    line-height: 24px;
    margin: 0 4px -6px -4px;
    position: relative;
    top: 0px;
    left: -7px;
    background: url("lampeon.png") no-repeat left center transparent;
    background-size: 100% 100%;
}

Pour le OFF:

*/CSS POUR OFF

.button {
    display: inline-block;
    text-align: center;
    vertical-align: middle;
    padding: 16px 26px;
    border: 0px solid #ffffff;
    border-radius: 12px;
    background: #ffffff;
    background: -webkit-gradient(linear, left top, left bottom, from(#ffffff), to(#ffffff));
    background: -moz-linear-gradient(top, #ffffff, #ffffff);
    background: linear-gradient(to bottom, #ffffff, #ffffff);
    -webkit-box-shadow: #cccccc 2px 0px 19px 0px;
    -moz-box-shadow: #cccccc 2px 0px 19px 0px;
    box-shadow: #cccccc 2px 0px 19px 0px;
    font: normal normal normal 20px trebuchet ms;
    color: #4f4d4f;
    text-decoration: none;
}
.button:hover,
.button:focus {
    color: #4f4d4f;
    text-decoration: none;
}
.button:active {
    background: #999999;
    background: -webkit-gradient(linear, left top, left bottom, from(#999999), to(#ffffff));
    background: -moz-linear-gradient(top, #999999, #ffffff);
    background: linear-gradient(to bottom, #999999, #ffffff);
}
.button:before{
    content:  "\0000a0";
    display: inline-block;
    height: 24px;
    width: 24px;
    line-height: 24px;
    margin: 0 4px -6px -4px;
    position: relative;
    top: 0px;
    left: 0px;
    background: url("lampeoff.png") no-repeat left center transparent;
    background-size: 100% 100%;
}

La où je bloque c’est pour la partie script, je n’arrive pas à adapter ce code que j’ai récupéré sur le forum pour afficher le bon CSS en fonction de l’état de la lumière:

<script type="text/javascript">

  jeedom.cmd.update['#id#'] = function(_options){
    var cmd = $('.cmd[data-cmd_id=#id#]');
    
    if (_options.display_value == '1' || _options.display_value == 1 || _options.display_value == '99' || _options.display_value == 99 || _options.display_value == 'on') {     
    document.getElementById('check2#id#').checked = true;
      if (jeedom.cmd.normalizeName('#name#') == 'on') {
        cmd.hide();
      }else{
        cmd.show();
      }} else {
      document.getElementById('check2#id#').checked = false;
      if (jeedom.cmd.normalizeName('#name#') == 'off') {
        cmd.hide();
      }else{
        cmd.show();
      }		}	}
	jeedom.cmd.update['#id#']({display_value:'#state#'});
  
</script>

Je veux bien un petit coup de main :slight_smile:

Bonjour,

Pourquoi avoir tag le #plugin-widget ?
Il ne faut plus utiliser ce plugin en v4, quelle version jeedom avez-vous? Info capitale ici.
Il manque votre page santé jeedom

Hello Mips,

Bonne année. Mon erreur en effet je corrige le Post
Je suis en jeedom V4 et je passe bien par le module du CORE

Petit up si quelqu’un peut m’aiguiller :slight_smile:

J’avance à petits pas:

J’en suis la :

<link href='https://fonts.googleapis.com/css?family=Montserrat' rel='stylesheet'> 
<a class="button" href="#">Mezzanine</a>

<div class="button" data-type="action" data-cmd_id="#id#" data-cmd_uid="#uid#" onClick="$('#switch-#id#').toggleClass('toggle-on'); jeedom.cmd.execute({id: '#id#'});">

</div>

 <style>
.button {
    display: inline-block;
    text-align: center;
    vertical-align: middle;
    padding: 16px 26px;
    border: 0px solid #ffffff;
    border-radius: 12px;
    background: #979997;
    background: -webkit-gradient(linear, left top, left bottom, from(#979997), to(#979997));
    background: -moz-linear-gradient(top, #979997, #979997);
    background: linear-gradient(to bottom, #979997, #979997);
    -webkit-box-shadow: #cccccc 2px 0px 19px 0px;
    -moz-box-shadow: #cccccc 2px 0px 19px 0px;
    box-shadow: #cccccc 2px 0px 19px 0px;
    text-shadow: #3a4439 1px 1px 1px;
    font: normal normal normal 20px trebuchet ms;
    color: #ffffff;
    text-decoration: none;
}
.button:hover,
.button:focus {
    background: #b5b8b5;
    background: -webkit-gradient(linear, left top, left bottom, from(#b5b8b5), to(#b5b8b5));
    background: -moz-linear-gradient(top, #b5b8b5, #b5b8b5);
    background: linear-gradient(to bottom, #b5b8b5, #b5b8b5);
    color: #ffffff;
    text-decoration: none;
}
.button:active {
    background: #5b5c5b;
    background: -webkit-gradient(linear, left top, left bottom, from(#5b5c5b), to(#979997));
    background: -moz-linear-gradient(top, #5b5c5b, #979997);
    background: linear-gradient(to bottom, #5b5c5b, #979997);
}
.button:before{
    content:  "\0000a0";
    display: inline-block;
    height: 24px;
    width: 24px;
    line-height: 24px;
    margin: 0 4px -6px -4px;
    position: relative;
    top: 0px;
    left: 0px;
    background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAEJklEQVRIiaWU329TZRjHP+/p6Y+d/trW7hf7wQJjwQ2DDIeGTGUkJJRQVKKLhjuMf4BR44WJV4ZEjTdLSPTCGwM3QERTHCg6lIRJZuhgbIyUAgO7sc123bqu69rTc7w4nRa6ytBvcvLm5H2f7/d5v8/zvIIngN53QEJoXhDNgAWIAuPCF0iXihFrIj7rV4DDmOS3UBxbsNhkhARqFtKLs6SXzoH+ufAFgk8soPf5n8VsPo53XStuD0im4kPpFEQnVBbmetH5QOwLqGsS0M/6d2GzB2hscSBb8hFSflMrDojPwPT9U+j6m8JniMilyfc3Yy07SVOrA9kKSh3YqkG2G3lpGViehVQE1JQRVFENiNeYGg8BHwJIJdMX0mfUNXuxusHbCa5WsJSDZAZJBlkBewN4dxjrCiqqwFnxnn7W31byBnqfvwWH+yCOKvBsA0kBUz1IHhA2IAfaAmiToM0Z4gCLEWOtqreQnHsHeHt1iwQHcXkk3K1gKge5DYS14IAMUoXx5SYgNw7OFliOgboE1jKw2ffrfX5LKYuew1kD1mqQn3qE/BGY6kGqNYqvFFhlU2oRrCsS0C+8BJLUhqMGTDV5Sx4DuQmQwFpZICwDVBffIO0qx6o0I9tBqizaXh1mkJwgWUDkO1/XQCe9mkU7UZw2ox3/xZoiWFZIDWTSGQSR1QRexVUJZhegrrJdCiqoi4AOWg5SySBCm31IIDgWrk0o7btx5Iumza+RXDPadmnK+J2PQU79Suz9/uFBO3rsxI7+5T0b5vUN+bgHQO7x/LlpyMYhPWM8gNHJEXT9GBRM8tDNcK0kxJ4T536l/6aT+aQJ9GVQbxkZlkx+HjI3IX4dclmYuJ1AzR4S+86kAUwAQ2Ph6onpmS9e6OzoiUxPy5eHRrE7G6mrNGOzpAwSqQyEhX/ex6wxZMkBiA9DKg6R21GWkq8IX2BwRV8A9A8OnXQqyoGJmRlLXZWX0z9e4N7kFD2+bro7ynDb88XWBWTSoCYgG4PUNCRjkIhpLMS/RdfeFb4z44UXFJeujnRZZPn8n7NzNk+Fm9Dd+2xqbuSnS4OMhu/w+t5udm9O4iYEqSgsxCG1kCKdCpNTQ8AV4BvhC4RWc1A2SaZD0ficrbLcze17EVrWN3B1LETn1nZqvB5On7+IRBe7rLGQe3GkH/gOGBC+QOLx1Qc5GAxKHR3buDV+n41NDQzdCLFpfSN3IhNkslm6tj/z/g8DwYGmnsN3Ol5smVoLaSFM4T8evGxXlM3Pd243D14bZeP6BsL3IqhqjuVM9uOLvwd//vqTj3778mhv8knJAUyeuoay6yOjb7hdrqXurp3mqzdCqLkcieTip1dGxvpO9R4Z+C/EfwtUrqsfQ+f6teHhuS3t7QPbtz59eXB49PiN8N1fTvUeufR/yAH+Akkah35tHWpZAAAAAElFTkSuQmCC") no-repeat left center transparent;
    background-size: 100% 100%;
}

</style>

<script type="text/javascript">
  jeedom.cmd.update['#id#'] = function(_options){
  if (_options.display_value == '1' || _options.display_value == 1 || _options.display_value == '99' || _options.display_value == 99 || _options.display_value == 'on') {      document.getElementById('check#id#').checked = true;
      if (jeedom.cmd.normalizeName('#name#') == 'on') {
        $('.cmd[data-cmd_uid=#uid#]').hide();
      }else{
          $('.cmd[data-cmd_id=#id#]').show();
      }
    } else {
      document.getElementById('check#id#').checked = false;
      if (jeedom.cmd.normalizeName('#name#') == 'off') {
        $('.cmd[data-cmd_uid=#uid#]').hide();
      }else{
          $('.cmd[data-cmd_id=#id#]').show();
      }
    }
  }
  jeedom.cmd.update['#id#']({display_value:'#state#'});
</script>

Et le résultat donne:

spot

Je voudrais juste un bouton pour allumer / éteindre et non 4 :slight_smile:

Bonsoir,

Voici un widget qui se rapproche des icones de homekit :

(supprimer l’extension txt après telechargement)
cmd.action.other.homekit.html.txt (10,1 Ko)

Paramètres optionnels

Les Paramètre optionnels ne sont pas obligatoires, le widget peut se baser sur l’icone qui est attribué sur la commande :

image

2 « J'aime »

Merci beaucoup pour l’aide. Je vais tester

C’est plutot bien, merci pour le partage.
Je tente de le modifier pour en faire juste un virtuel de type info en binaire:

J’ai juste modifié cette ligne :

<div class="cmd cmd-widget reportModeHidden" data-type="info" data-subtype="binary" data-cmd_id="#id#" data-cmd_uid="#uid#" data-version="#version#" data-eqLogic_id="#eqLogic_id#">
  <!--

Petit souci je pense il y a autre chose à modifier car quand je passe dessus avec la souris je peux encore cliquer dessus.

Autre question, je souhaiterais que pour le widget info la forme rectangulaire avec les angles arrondis soit également un rond. j’ai tenté de joué sur les paramètres suivants:

Sans titre

en augmentant cela fonctionne par contre si je mets une valeur comme 40 par ex cela reste forme rectangle.

Si vous avez une idée. Merci

Hello,

Et Oui sa ne suffit pas, il est spécialement conçu pour une commande action.

Je suis pas sur de comprendre, mais pour l’arrondi autour de la tuile il faut jouer avec le paramêtre optionnel radiusTuile

Merci pour ta réponse. Pour la tuile je me suis mal exprimé.

Sans titre

Je voudrais que la forme grise claire forme un rond d’un diamètre un peu plus grand que le rond gris foncé.

J’ai fais ceci:

ttt

Un nom court (1) et une largeur très petite mais il y a je pense un min fixé.

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.