import { Meta } from "@storybook/addon-docs";

<Meta title="Tokens/Spacing" />

<style>{`
  .subheading {
    --mediumdark: '#999999';
    font-weight: 900;
    font-size: 13px;
    color: var(--black);
    letter-spacing: 6px;
    line-height: 24px;
    text-transform: uppercase;
    margin-bottom: 12px;
    margin-top: 40px;
  }

  .preview-list {
    display: grid;
    grid-template-columns: 1fr;
    row-gap: 10px;
  }

  .preview-item {
    display: block;
    border: 1px solid #00000010;
    border-radius: var(--radius-base);
    color: #333333;
    display: flex;
    flex-direction: row-reverse;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding-left: 20px;
  }

  .preview-item-preview {
    padding-top: var(--spacing-8);
    padding-left: var(--spacing-8);
    border-top-right-radius: var(--radius-base);
    background-color: var(--neutral-100);
    display: flex;
    align-items: flex-end;
    justify-content: flex-end;
    overflow: hidden;
    width: 50%;
  }
  .preview-item-preview-radius {
    box-shadow: -1px -2px 10px;
    color: var(--neutral-300);
    background-color: var(--neutral-500);
    transition: all 150ms ease-out;
  }

  .preview-item strong {
    font-weight: 600;
    display: block;
    letter-spacing: 0.25px;
    color: var(--neutral-600);
  }

  .preview-item span {
    font-size: var(--sizing-sm);
    line-height: 20px;
  }

  .tip {
    display: inline-block;
    border-radius: 1em;
    font-size: 15px;
    line-height: 12px;
    font-weight: 700;
    background: #E7FDD8;
    color: #66BF3C;
    padding: 4px 12px;
    margin-right: 10px;
    vertical-align: top;
  }

  .tip-wrapper {
    margin-top: var(--spacing-8);
    margin-bottom: var(--spacing-8);
  }

  .tip-wrapper code {
    display: inline-block;
  }

  
`}</style>

# Spacing

Space units create visual rhythm and balance.

## Using spacing tokens

<div className="tip-wrapper">
  <span className="tip">Tip</span>Spacing are defined as CSS Custom properties,
  to use them, use: <code>var(--spacing-4)</code> as the CSS property value.
</div>

```
padding: var(--spacing-4);
padding-bottom: var(--spacing-4);
gap: var(--spacing-4);
```

### How to apply space units

1 / Use small spacers (`--spacing-1` to `--spacing-4`) between elements that have a close functional relationship. This indicates that they are related to each other.

2 / Use larger spacers (`--spacing-5` and up) to separate components that have weaker functional relationships or no relationship at all. This helps a user differentiate between one form field and the next.

The general rule is pretty simple: Start with the largest spacing unit and work your way down. This keeps the interface feeling airy and less cramped. There are times where you would want to use smaller spacers, for example, when you have a lot of data that needs to be easily scanable without any interaction from the user.

<div className="preview-list">
  <div className="preview-item">
    <div className="preview-item-preview">
      <span
        className="preview-item-preview-radius"
        style={{ width: "var(--spacing-0)", height: "var(--spacing-0)" }}
      ></span>
    </div>
    <span>
      <strong>var(--spacing-0)</strong>
      <span
        style={{ color: "var(--neutral-400)", fontSize: "var(--sizing-xs)" }}
      >
        0px
      </span>
    </span>
  </div>
  <div className="preview-item">
    <div className="preview-item-preview">
      <span
        className="preview-item-preview-radius"
        style={{ width: "var(--spacing-px)", height: "var(--spacing-px)" }}
      ></span>
    </div>
    <span>
      <strong>var(--spacing-px)</strong>
      <span
        style={{ color: "var(--neutral-400)", fontSize: "var(--sizing-xs)" }}
      >
        1px
      </span>
    </span>
  </div>
  <div className="preview-item">
    <div className="preview-item-preview">
      <span
        className="preview-item-preview-radius"
        style={{ width: "var(--spacing-0-5)", height: "var(--spacing-0-5)" }}
      ></span>
    </div>
    <span>
      <strong>var(--spacing-0-5)</strong>
      <span
        style={{ color: "var(--neutral-400)", fontSize: "var(--sizing-xs)" }}
      >
        2px
      </span>
    </span>
  </div>
  <div className="preview-item">
    <div className="preview-item-preview">
      <span
        className="preview-item-preview-radius"
        style={{ width: "var(--spacing-1)", height: "var(--spacing-1)" }}
      ></span>
    </div>
    <span>
      <strong>var(--spacing-1)</strong>
      <span
        style={{ color: "var(--neutral-400)", fontSize: "var(--sizing-xs)" }}
      >
        4px
      </span>
    </span>
  </div>
  <div className="preview-item">
    <div className="preview-item-preview">
      <span
        className="preview-item-preview-radius"
        style={{ width: "var(--spacing-1-5)", height: "var(--spacing-1-5)" }}
      ></span>
    </div>
    <span>
      <strong>var(--spacing-1-5)</strong>
      <span
        style={{ color: "var(--neutral-400)", fontSize: "var(--sizing-xs)" }}
      >
        6px
      </span>
    </span>
  </div>
  <div className="preview-item">
    <div className="preview-item-preview">
      <span
        className="preview-item-preview-radius"
        style={{ width: "var(--spacing-2)", height: "var(--spacing-2)" }}
      ></span>
    </div>
    <span>
      <strong>var(--spacing-2)</strong>
      <span
        style={{ color: "var(--neutral-400)", fontSize: "var(--sizing-xs)" }}
      >
        8px
      </span>
    </span>
  </div>
  <div className="preview-item">
    <div className="preview-item-preview">
      <span
        className="preview-item-preview-radius"
        style={{ width: "var(--spacing-2-5)", height: "var(--spacing-2-5)" }}
      ></span>
    </div>
    <span>
      <strong>var(--spacing-2-5)</strong>
      <span
        style={{ color: "var(--neutral-400)", fontSize: "var(--sizing-xs)" }}
      >
        10px
      </span>
    </span>
  </div>
  <div className="preview-item">
    <div className="preview-item-preview">
      <span
        className="preview-item-preview-radius"
        style={{ width: "var(--spacing-3)", height: "var(--spacing-3)" }}
      ></span>
    </div>
    <span>
      <strong>var(--spacing-3)</strong>
      <span
        style={{ color: "var(--neutral-400)", fontSize: "var(--sizing-xs)" }}
      >
        12px
      </span>
    </span>
  </div>
  <div className="preview-item">
    <div className="preview-item-preview">
      <span
        className="preview-item-preview-radius"
        style={{ width: "var(--spacing-3-5)", height: "var(--spacing-3-5)" }}
      ></span>
    </div>
    <span>
      <strong>var(--spacing-3-5)</strong>
      <span
        style={{ color: "var(--neutral-400)", fontSize: "var(--sizing-xs)" }}
      >
        14px
      </span>
    </span>
  </div>
  <div className="preview-item">
    <div className="preview-item-preview">
      <span
        className="preview-item-preview-radius"
        style={{ width: "var(--spacing-4)", height: "var(--spacing-4)" }}
      ></span>
    </div>
    <span>
      <strong>var(--spacing-4)</strong>
      <span
        style={{ color: "var(--neutral-400)", fontSize: "var(--sizing-xs)" }}
      >
        16px
      </span>
    </span>
  </div>
  <div className="preview-item">
    <div className="preview-item-preview">
      <span
        className="preview-item-preview-radius"
        style={{ width: "var(--spacing-5)", height: "var(--spacing-5)" }}
      ></span>
    </div>
    <span>
      <strong>var(--spacing-5)</strong>
      <span
        style={{ color: "var(--neutral-400)", fontSize: "var(--sizing-xs)" }}
      >
        20px
      </span>
    </span>
  </div>
  <div className="preview-item">
    <div className="preview-item-preview">
      <span
        className="preview-item-preview-radius"
        style={{ width: "var(--spacing-6)", height: "var(--spacing-6)" }}
      ></span>
    </div>
    <span>
      <strong>var(--spacing-6)</strong>
      <span
        style={{ color: "var(--neutral-400)", fontSize: "var(--sizing-xs)" }}
      >
        24px
      </span>
    </span>
  </div>
  <div className="preview-item">
    <div className="preview-item-preview">
      <span
        className="preview-item-preview-radius"
        style={{ width: "var(--spacing-7)", height: "var(--spacing-7)" }}
      ></span>
    </div>
    <span>
      <strong>var(--spacing-7)</strong>
      <span
        style={{ color: "var(--neutral-400)", fontSize: "var(--sizing-xs)" }}
      >
        28px
      </span>
    </span>
  </div>
  <div className="preview-item">
    <div className="preview-item-preview">
      <span
        className="preview-item-preview-radius"
        style={{ width: "var(--spacing-8)", height: "var(--spacing-8)" }}
      ></span>
    </div>
    <span>
      <strong>var(--spacing-8)</strong>
      <span
        style={{ color: "var(--neutral-400)", fontSize: "var(--sizing-xs)" }}
      >
        32px
      </span>
    </span>
  </div>
  <div className="preview-item">
    <div className="preview-item-preview">
      <span
        className="preview-item-preview-radius"
        style={{ width: "var(--spacing-9)", height: "var(--spacing-9)" }}
      ></span>
    </div>
    <span>
      <strong>var(--spacing-9)</strong>
      <span
        style={{ color: "var(--neutral-400)", fontSize: "var(--sizing-xs)" }}
      >
        36px
      </span>
    </span>
  </div>
  <div className="preview-item">
    <div className="preview-item-preview">
      <span
        className="preview-item-preview-radius"
        style={{ width: "var(--spacing-10)", height: "var(--spacing-10)" }}
      ></span>
    </div>
    <span>
      <strong>var(--spacing-10)</strong>
      <span
        style={{ color: "var(--neutral-400)", fontSize: "var(--sizing-xs)" }}
      >
        40px
      </span>
    </span>
  </div>
  <div className="preview-item">
    <div className="preview-item-preview">
      <span
        className="preview-item-preview-radius"
        style={{ width: "var(--spacing-11)", height: "var(--spacing-11)" }}
      ></span>
    </div>
    <span>
      <strong>var(--spacing-11)</strong>
      <span
        style={{ color: "var(--neutral-400)", fontSize: "var(--sizing-xs)" }}
      >
        44px
      </span>
    </span>
  </div>
  <div className="preview-item">
    <div className="preview-item-preview">
      <span
        className="preview-item-preview-radius"
        style={{ width: "var(--spacing-12)", height: "var(--spacing-12)" }}
      ></span>
    </div>
    <span>
      <strong>var(--spacing-12)</strong>
      <span
        style={{ color: "var(--neutral-400)", fontSize: "var(--sizing-xs)" }}
      >
        48px
      </span>
    </span>
  </div>
  <div className="preview-item">
    <div className="preview-item-preview">
      <span
        className="preview-item-preview-radius"
        style={{ width: "var(--spacing-14)", height: "var(--spacing-14)" }}
      ></span>
    </div>
    <span>
      <strong>var(--spacing-14)</strong>
      <span
        style={{ color: "var(--neutral-400)", fontSize: "var(--sizing-xs)" }}
      >
        56px
      </span>
    </span>
  </div>
  <div className="preview-item">
    <div className="preview-item-preview">
      <span
        className="preview-item-preview-radius"
        style={{ width: "var(--spacing-16)", height: "var(--spacing-16)" }}
      ></span>
    </div>
    <span>
      <strong>var(--spacing-16)</strong>
      <span
        style={{ color: "var(--neutral-400)", fontSize: "var(--sizing-xs)" }}
      >
        64px
      </span>
    </span>
  </div>
  <div className="preview-item">
    <div className="preview-item-preview">
      <span
        className="preview-item-preview-radius"
        style={{ width: "var(--spacing-20)", height: "var(--spacing-20)" }}
      ></span>
    </div>
    <span>
      <strong>var(--spacing-20)</strong>
      <span
        style={{ color: "var(--neutral-400)", fontSize: "var(--sizing-xs)" }}
      >
        80px
      </span>
    </span>
  </div>
  <div className="preview-item">
    <div className="preview-item-preview">
      <span
        className="preview-item-preview-radius"
        style={{ width: "var(--spacing-24)", height: "var(--spacing-24)" }}
      ></span>
    </div>
    <span>
      <strong>var(--spacing-24)</strong>
      <span
        style={{ color: "var(--neutral-400)", fontSize: "var(--sizing-xs)" }}
      >
        96px
      </span>
    </span>
  </div>
  <div className="preview-item">
    <div className="preview-item-preview">
      <span
        className="preview-item-preview-radius"
        style={{ width: "var(--spacing-28)", height: "var(--spacing-28)" }}
      ></span>
    </div>
    <span>
      <strong>var(--spacing-28)</strong>
      <span
        style={{ color: "var(--neutral-400)", fontSize: "var(--sizing-xs)" }}
      >
        112px
      </span>
    </span>
  </div>
  <div className="preview-item">
    <div className="preview-item-preview">
      <span
        className="preview-item-preview-radius"
        style={{ width: "var(--spacing-32)", height: "var(--spacing-32)" }}
      ></span>
    </div>
    <span>
      <strong>var(--spacing-32)</strong>
      <span
        style={{ color: "var(--neutral-400)", fontSize: "var(--sizing-xs)" }}
      >
        128px
      </span>
    </span>
  </div>
  <div className="preview-item">
    <div className="preview-item-preview">
      <span
        className="preview-item-preview-radius"
        style={{ width: "var(--spacing-36)", height: "var(--spacing-36)" }}
      ></span>
    </div>
    <span>
      <strong>var(--spacing-36)</strong>
      <span
        style={{ color: "var(--neutral-400)", fontSize: "var(--sizing-xs)" }}
      >
        144px
      </span>
    </span>
  </div>
  <div className="preview-item">
    <div className="preview-item-preview">
      <span
        className="preview-item-preview-radius"
        style={{ width: "var(--spacing-40)", height: "var(--spacing-40)" }}
      ></span>
    </div>
    <span>
      <strong>var(--spacing-40)</strong>
      <span
        style={{ color: "var(--neutral-400)", fontSize: "var(--sizing-xs)" }}
      >
        160px
      </span>
    </span>
  </div>
  <div className="preview-item">
    <div className="preview-item-preview">
      <span
        className="preview-item-preview-radius"
        style={{ width: "var(--spacing-44)", height: "var(--spacing-44)" }}
      ></span>
    </div>
    <span>
      <strong>var(--spacing-44)</strong>
      <span
        style={{ color: "var(--neutral-400)", fontSize: "var(--sizing-xs)" }}
      >
        176px
      </span>
    </span>
  </div>
  <div className="preview-item">
    <div className="preview-item-preview">
      <span
        className="preview-item-preview-radius"
        style={{ width: "var(--spacing-48)", height: "var(--spacing-48)" }}
      ></span>
    </div>
    <span>
      <strong>var(--spacing-48)</strong>
      <span
        style={{ color: "var(--neutral-400)", fontSize: "var(--sizing-xs)" }}
      >
        192px
      </span>
    </span>
  </div>
  <div className="preview-item">
    <div className="preview-item-preview">
      <span
        className="preview-item-preview-radius"
        style={{ width: "var(--spacing-52)", height: "var(--spacing-52)" }}
      ></span>
    </div>
    <span>
      <strong>var(--spacing-52)</strong>
      <span
        style={{ color: "var(--neutral-400)", fontSize: "var(--sizing-xs)" }}
      >
        208px
      </span>
    </span>
  </div>
  <div className="preview-item">
    <div className="preview-item-preview">
      <span
        className="preview-item-preview-radius"
        style={{ width: "var(--spacing-56)", height: "var(--spacing-56)" }}
      ></span>
    </div>
    <span>
      <strong>var(--spacing-56)</strong>
      <span
        style={{ color: "var(--neutral-400)", fontSize: "var(--sizing-xs)" }}
      >
        224px
      </span>
    </span>
  </div>
  <div className="preview-item">
    <div className="preview-item-preview">
      <span
        className="preview-item-preview-radius"
        style={{ width: "var(--spacing-60)", height: "var(--spacing-60)" }}
      ></span>
    </div>
    <span>
      <strong>var(--spacing-60)</strong>
      <span
        style={{ color: "var(--neutral-400)", fontSize: "var(--sizing-xs)" }}
      >
        240px
      </span>
    </span>
  </div>
  <div className="preview-item">
    <div className="preview-item-preview">
      <span
        className="preview-item-preview-radius"
        style={{ width: "var(--spacing-64)", height: "var(--spacing-64)" }}
      ></span>
    </div>
    <span>
      <strong>var(--spacing-64)</strong>
      <span
        style={{ color: "var(--neutral-400)", fontSize: "var(--sizing-xs)" }}
      >
        256px
      </span>
    </span>
  </div>
  <div className="preview-item">
    <div className="preview-item-preview">
      <span
        className="preview-item-preview-radius"
        style={{ width: "var(--spacing-72)", height: "var(--spacing-72)" }}
      ></span>
    </div>
    <span>
      <strong>var(--spacing-72)</strong>
      <span
        style={{ color: "var(--neutral-400)", fontSize: "var(--sizing-xs)" }}
      >
        288px
      </span>
    </span>
  </div>
  <div className="preview-item">
    <div className="preview-item-preview">
      <span
        className="preview-item-preview-radius"
        style={{ width: "var(--spacing-80)", height: "var(--spacing-80)" }}
      ></span>
    </div>
    <span>
      <strong>var(--spacing-80)</strong>
      <span
        style={{ color: "var(--neutral-400)", fontSize: "var(--sizing-xs)" }}
      >
        320px
      </span>
    </span>
  </div>
  <div className="preview-item">
    <div className="preview-item-preview">
      <span
        className="preview-item-preview-radius"
        style={{ width: "var(--spacing-96)", height: "var(--spacing-96)" }}
      ></span>
    </div>
    <span>
      <strong>var(--spacing-96)</strong>
      <span
        style={{ color: "var(--neutral-400)", fontSize: "var(--sizing-xs)" }}
      >
        384px
      </span>
    </span>
  </div>
</div>
