> ## Documentation Index
> Fetch the complete documentation index at: https://docs.alumio.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Logic: Not

> Checks that no conditions match.

export const FormField = ({property, label, required = false, diType, uiPatterns, children}) => {
  const patterns = Array.isArray(uiPatterns) ? uiPatterns : uiPatterns ? [uiPatterns] : [];
  return <div style={{
    margin: '1.5rem 0'
  }}>
      <div style={{
    display: 'flex',
    alignItems: 'baseline',
    flexWrap: 'wrap',
    gap: '0.5rem',
    marginBottom: '0.25rem'
  }}>
        <strong>{label}</strong>
        <span style={{
    fontSize: '0.7rem',
    fontWeight: 600,
    textTransform: 'uppercase',
    letterSpacing: '0.04em',
    color: required ? '#6241f5' : '#6b7280'
  }}>
          {required ? 'Required' : 'Optional'}
        </span>
      </div>

      <div>{children}</div>

      {diType || patterns.length > 0 ? <p style={{
    fontSize: '0.85rem',
    color: '#6b7280',
    marginBottom: 0
  }}>
          {diType ? <>
              See the <a href={`/references/${diType}`}>{diType}</a> reference.{' '}
            </> : null}
          {patterns.length > 0 ? <>
              Accepts a <a href={`/documentation/placeholders-and-patterns/patterns#${patterns[0]}`}>pattern</a>.
            </> : null}
        </p> : null}
    </div>;
};

Reverses the result of the check you give it. In its most common use you add a single condition and this turns its answer around: where that condition would match, "Not" does not, and where it would not match, "Not" does. Use it to express the opposite of a check you already have, for example to accept every order whose status is *not* "cancelled".

When you add more than one condition, they are first combined as an "And" (so on their own they would match only together) and "Not" then reverses that combined answer. In practice the rule matches when the conditions do *not* all match, and fails only when every one of them matches. For a clear, predictable result, add a single condition.

This documentation describes: [Schema](/schemas/condition/logic-not)

## Fields

<FormField property="conditions[]" label="Conditions" diType="condition">
  The check (or checks) to reverse. Add a single condition for a straightforward negation, such as an equality check or an empty check. If you add more than one, they are combined with "And" first and the combined result is then reversed. Each entry is another condition you pick and configure.
</FormField>

## Sample data

This rule reverses a single check on an order's `status`: it matches every order whose status is *not* "cancelled".

| Field     | Value              |
| --------- | ------------------ |
| Condition | Equals `cancelled` |

| Status      | Equals "cancelled"? | Matches? |
| ----------- | ------------------- | -------- |
| `paid`      | no                  | yes      |
| `cancelled` | yes                 | no       |

```json Configuration theme={null}
{
  "prototype": "logic-not",
  "parameters": {
    "conditions": [
      { "prototype": "equals", "parameters": { "value": "cancelled" } }
    ]
  }
}
```
