# Modifier class

Namespace: [Grasshopper2.UI.Skinning](https://developer.rhino3d.com/api/gh2/namespace/grasshopper2.ui.skinning.md) · Assembly: [Grasshopper2](https://developer.rhino3d.com/api/gh2/assembly/grasshopper2.md)

```cs
public abstract class Modifier
```

A step applied to an inherited value on its way from the source property to the property that inherits it. Colour modifiers work in Oklab, so equal amounts look like equal changes. Amounts are integer percentages (or whole degrees for hue), which is as fine as the UI needs. The set of modifiers is closed; the nested types are all there are.

**Derived types:** [Modifier.Contrast](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.skinning.modifier.contrast.md), [Modifier.CopyHue](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.skinning.modifier.copyhue.md), [Modifier.Foreground](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.skinning.modifier.foreground.md), [Modifier.Hue](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.skinning.modifier.hue.md), [Modifier.Luminance](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.skinning.modifier.luminance.md), [Modifier.Mix](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.skinning.modifier.mix.md), [Modifier.Offset](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.skinning.modifier.offset.md), [Modifier.Opacity](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.skinning.modifier.opacity.md), [Modifier.Saturation](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.skinning.modifier.saturation.md), [Modifier.Scale](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.skinning.modifier.scale.md)

## Properties

- [Dependencies](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.skinning.modifier/dependencies.md): Gets the properties this modifier reads besides the value it modifies. Most modifiers read none; a mix towards another property reads that one.
- [Kind](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.skinning.modifier/kind.md)

## Methods

- [Apply](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.skinning.modifier/apply.md)
- [ToString](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.skinning.modifier/tostring.md)
- [ToText](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.skinning.modifier/totext.md): Write this modifier the way it appears in a skin definition file, for example "Luminance -20%".
- [TryParse](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.skinning.modifier/tryparse.md): (static) Parse a modifier from its text form.
- [WithoutReferences](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.skinning.modifier/withoutreferences.md): A copy of this modifier with every property reference replaced by the colour it resolves to right now, so the modifier can be applied without a definition at hand. Modifiers without references return themselves.
