In vue.js component, how to use props in css? In vue.js component, how to use props in css? vue.js vue.js

In vue.js component, how to use props in css?


You actually can!

You should define the CSS variables in a Computed Property, then call the computed property as a style attribute to the element that will require the CSS variable, and finally you may use the variable within the tags at the bottom of your document.

new Vue({  el: '#app',  data: function() {    return {      baseFontSize: 1,      bgHoverColor: "#00cc00",      hoverContent: "Hovering!"    }  },  computed: {    cssProps() {      return {        '--hover-font-size': (this.baseFontSize * 2) + "em",        '--bg-hover-color': this.bgHoverColor,        '--hover-content': JSON.stringify(this.hoverContent)      }    }  }})
div {  margin: 1em;}div.test:hover {  background-color: var(--bg-hover-color);  font-size: var(--hover-font-size);}div.test:hover::after {  margin-left: 1em;  content: var(--hover-content);}
<script src="https://unpkg.com/vue/dist/vue.js"></script><div id="app" :style="cssProps">  <div>Hover text: <input type="text" v-model="hoverContent"></div>  <div>Hover color: <input type="color" v-model="bgHoverColor"></div>  <div class="test">Hover over me</div></div>