I think there are going to be issues with this, as some of our skin-defined colors have alpha values in them, which we might lose when converting to HEX.

Rather than maintaining the data-isDefault flag on all of the fields, it might be easier to just grab the full object containing all selected values and loop through all of them. For non-color fields, we can just check if the value is the same as the original. For color fields, we can use tinyColor (https://github.com/bgrins/TinyColor) to convert the selected and default value to rgba and check for equality. If they are the same, we can delete it from the object. This should save quite a few lines of code and reduces the likelihood of setting an incorrect data-isDefault flag.

Spectrum already uses tinyColor, so we might not have to include it.