             fieldR.text = String.init(format: "%1.3f", RGBA.red)
             fieldG.text = String.init(format: "%1.3f", RGBA.green)
             fieldB.text = String.init(format: "%1.3f", RGBA.blue)
+        }
+    }
+    
+    open class ComponentDisplayValueHSB : ComponentDisplayValue {
+        
+        public let fieldH = {
+            return UITextField()
+        }()
+        public let fieldS = {
+            return UITextField()
+        }()
+        public let fieldB = {
+            return UITextField()
+        }()
+        
+        public let stack = {
+            return UIStackView()
+        }()
+        
+        public init(configuration:Configuration.Display.Value, colorArrayManager:ColorArrayManager, handler:@escaping Handler) {
+            
+            stack.axis          = .horizontal
+            stack.distribution  = .equalCentering
+            stack.alignment     = .center
+            
+            stack.addArrangedSubview(UIView())
+            for field in [fieldH,fieldS,fieldB] {
+                field.text              = "0.000"
+                field.textColor         = .white
+                field.backgroundColor   = .gray
+                field.textAlignment     = .center
+                field.sizeToFit()
+                stack.addArrangedSubview(field)
+            }
+            stack.addArrangedSubview(UIView())
+            
+            super.init(height           : fieldS.frame.height + configuration.margin*2,
+                       configuration    : configuration,
+                       colorLimit       : 1,
+                       colorArrayManager: colorArrayManager,
+                       handler          : handler)
+            
+            self.addSubview(stack)
+            
+            for field in [fieldH,fieldS,fieldB] {
+                field.delegate = self
+            }
+            
+            stack.constrainCenterToSuperview()
+            stack.constrainWidthToSuperview()
+            
+            super.addTap()
+        }
+        
+        required public init?(coder aDecoder: NSCoder) {
+            fatalError("init(coder:) has not been implemented")
+        }
+        
+        override open func textFieldDidEndEditing(_ textField: UITextField) {
+            switch textField {
+            case fieldH:
+                if let text = textField.text, let value = CGFloat(text.trimmed()) {
+                    handler(colorArrayManager.color.withHue(value.clampedTo01))
+                }
+            case fieldS:
+                if let text = textField.text, let value = CGFloat(text.trimmed()) {
+                    handler(colorArrayManager.color.withSaturation(value.clampedTo01))
+                }
+            case fieldB:
+                if let text = textField.text, let value = CGFloat(text.trimmed()) {
+                    handler(colorArrayManager.color.withBrightness(value.clampedTo01))
+                }
+            default: break
+            }
+        }
+        
+        override open func updateFromColor() {
+            
+            super.updateFromColor()
+            
+            let HSBA = colorArrayManager.color.HSBA
+            
+            fieldH.font = configuration.font
+            fieldS.font = configuration.font
+            fieldB.font = configuration.font
+            
+            if configuration.colorize {
+                fieldH.backgroundColor  = configuration.background.hue
+                fieldS.backgroundColor  = configuration.background.saturation
+                fieldB.backgroundColor  = configuration.background.brightness
+                fieldH.textColor        = configuration.foreground.hue
+                fieldS.textColor        = configuration.foreground.saturation
+                fieldB.textColor        = configuration.foreground.brightness
+            }
+            else {
+                fieldH.backgroundColor  = configuration.background.none
+                fieldS.backgroundColor  = configuration.background.none
+                fieldB.backgroundColor  = configuration.background.none
+                fieldH.textColor        = configuration.foreground.none
+                fieldS.textColor        = configuration.foreground.none
+                fieldB.textColor        = configuration.foreground.none
+            }
+            
+            fieldH.text = String.init(format: "%1.3f", HSBA.hue)
+            fieldS.text = String.init(format: "%1.3f", HSBA.saturation)
+            fieldB.text = String.init(format: "%1.3f", HSBA.brightness)
         }
     }
     

            fieldG.font = configuration.font
            fieldB.font = configuration.font

            if colorified {
                fieldR.backgroundColor  = configuration.background.red
                fieldG.backgroundColor  = configuration.background.green
                fieldB.backgroundColor  = configuration.background.blue

            super.updateFromColor()
            let font    = configuration.font
            let hex     = colorArrayManager.color.representationOfRGBAasHexadecimal
            if configuration.colorize {
                var representation = NSAttributedString.init()
                representation += "0x" | font | UIColor.gray
                representation += hex[0] | [
