extension Properties {
  public struct Color: Property, SimpleProperty, StyleComponent {
    public let label = "color"
    public let value: String

    public init(_ value: Color) {
      self.value = value.stringValue
    }
  }

  public struct Opacity: Property, SimpleProperty, StyleComponent {
    public let label = "opacity"
    public let value: String

    public init(_ value: Double) {
      self.value = String(value)
    }

    public init(_ value: PropertyValues.Reset) {
      self.value = value.stringValue
    }
  }
}

extension Properties {
  public struct Color: Property, SimpleProperty, StyleComponent {
    public let label = "color"
    public let value: String

    public init(_ value: Color) {
      self.value = value.stringValue
    }
  }

  public struct Opacity: Property, SimpleProperty, StyleComponent {
    public let label = "opacity"
    public let value: String

    public init(_ value: String) {
      self.value = value
    }
  }
}

--- 
+++ 
@@ -12,8 +12,12 @@
     public let label = "opacity"
     public let value: String
 
-    public init(_ value: String) {
-      self.value = value
+    public init(_ value: Double) {
+      self.value = String(value)
+    }
+
+    public init(_ value: PropertyValues.Reset) {
+      self.value = value.stringValue
     }
   }
 }
Make opacity property use a double
