     }
   }
   
-  ///the thickness of the track bar. `1.0` by default.
-  @IBInspectable open var trackThickness: CGFloat = 1.0 {
-    didSet {
-      updateTrackLayerFrameAndKnobPositions()
-    }
-  }
-  
-  ///The diameter of the knob. '16' by default.
-  @IBInspectable open var knobDiameter: CGFloat = 25 {
+  ///the thickness of the track bar. `0.05` by default.
+  @IBInspectable open var trackThickness: CGFloat = 0.05 {
+    didSet {
+      updateTrackLayerFrameAndKnobPositions()
+    }
+  }
+  
+  ///Whether the track thickness is true or proportional to its containers frame height
+  @IBInspectable open var trueTrackThickness: Bool = false {
+    didSet {
+      updateTrackLayerFrameAndKnobPositions()
+    }
+  }
+  
+  ///The diameter of the knob. '0.95' by default.
+  @IBInspectable open var knobSize: CGFloat = 0.95 {
+    didSet {
+      updateLayerFramesAndPositions()
+      lowerKnobLayer.setNeedsDisplay()
+      upperKnobLayer.setNeedsDisplay()
+    }
+  }
+  
+  ///Whether the knob size is true or proportional to its containers frame height
+  @IBInspectable open var trueKnobSize: Bool = false {
     didSet {
       updateLayerFramesAndPositions()
       lowerKnobLayer.setNeedsDisplay()

  let trackLayer = RangeSliderTrackLayer()
  let lowerKnobLayer = RangeSliderKnobLayer()
  let upperKnobLayer = RangeSliderKnobLayer()
  
  ///The frame of the `RangeSlider` instance.
  override open var frame: CGRect {

  }
  
  ///Whether or not the slider buttons have a shadow. `true` by default.
  @IBInspectable open var knobHasShadow: Bool = true {
    didSet{
      lowerKnobLayer.setNeedsDisplay()
      upperKnobLayer.setNeedsDisplay()
