mirror of
				https://github.com/advplyr/audiobookshelf.git
				synced 2025-11-03 19:07:00 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			86 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
			
		
		
	
	
			86 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
<template>
 | 
						|
  <div class="inline-flex">
 | 
						|
    <input v-model="input" type="range" :min="min" :max="max" :step="step" />
 | 
						|
 | 
						|
    <p class="text-sm ml-2">{{ input }}%</p>
 | 
						|
  </div>
 | 
						|
</template>
 | 
						|
 | 
						|
<script>
 | 
						|
export default {
 | 
						|
  props: {
 | 
						|
    value: [String, Number],
 | 
						|
    min: Number,
 | 
						|
    max: Number,
 | 
						|
    step: Number
 | 
						|
  },
 | 
						|
  data() {
 | 
						|
    return {}
 | 
						|
  },
 | 
						|
  computed: {
 | 
						|
    input: {
 | 
						|
      get() {
 | 
						|
        return this.value
 | 
						|
      },
 | 
						|
      set(val) {
 | 
						|
        this.$emit('input', val)
 | 
						|
      }
 | 
						|
    }
 | 
						|
  },
 | 
						|
  methods: {},
 | 
						|
  mounted() {}
 | 
						|
}
 | 
						|
</script>
 | 
						|
 | 
						|
<style scoped>
 | 
						|
input[type='range'] {
 | 
						|
  -webkit-appearance: none;
 | 
						|
  appearance: none;
 | 
						|
  background: transparent;
 | 
						|
  cursor: pointer;
 | 
						|
}
 | 
						|
input[type='range']:focus {
 | 
						|
  outline: none;
 | 
						|
}
 | 
						|
 | 
						|
/* chromium */
 | 
						|
input[type='range']::-webkit-slider-runnable-track {
 | 
						|
  background-color: rgb(0 0 0 / 0.25);
 | 
						|
  border-radius: 9999px;
 | 
						|
  height: 0.75rem;
 | 
						|
}
 | 
						|
input[type='range']::-webkit-slider-thumb {
 | 
						|
  -webkit-appearance: none;
 | 
						|
  appearance: none;
 | 
						|
  margin-top: -0.25rem;
 | 
						|
  border-radius: 9999px;
 | 
						|
  background-color: rgb(255 255 255 / 0.7);
 | 
						|
  height: 1.25rem;
 | 
						|
  width: 1.25rem;
 | 
						|
}
 | 
						|
input[type='range']:focus::-webkit-slider-thumb {
 | 
						|
  border: 1px solid #6b6b6b;
 | 
						|
  outline: 3px solid #6b6b6b;
 | 
						|
  outline-offset: 0.125rem;
 | 
						|
}
 | 
						|
 | 
						|
/* firefox */
 | 
						|
input[type='range']::-moz-range-track {
 | 
						|
  background-color: rgb(0 0 0 / 0.25);
 | 
						|
  border-radius: 9999px;
 | 
						|
  height: 0.75rem;
 | 
						|
}
 | 
						|
input[type='range']::-moz-range-thumb {
 | 
						|
  border: none;
 | 
						|
  border-radius: 9999px;
 | 
						|
  margin-top: -0.25rem;
 | 
						|
  background-color: rgb(255 255 255 / 0.7);
 | 
						|
  height: 1.25rem;
 | 
						|
  width: 1.25rem;
 | 
						|
}
 | 
						|
input[type='range']:focus::-moz-range-thumb {
 | 
						|
  border: 1px solid #6b6b6b;
 | 
						|
  outline: 3px solid #6b6b6b;
 | 
						|
  outline-offset: 0.125rem;
 | 
						|
}
 | 
						|
</style> |