.docs-properties {
  --line-color: #b3c399;
  --level-width: 30px;

  display: table;
  width: 100%;
  position: relative;
  padding-left: 14px;

  &::before {
    content: '';
    position: absolute;
    top: 25px;
    left: 0;
    bottom: 28px;
    border-left: 1px solid var(--line-color);
  }

  // Required to allow elements inside
  // table cells to be 100% height.
  // https://stackoverflow.com/questions/3215553/make-a-div-fill-an-entire-table-cell
  height: fit-content;

  &__param {
    display: table-row;
    position: relative;

    &::before {
      content: '';
      position: absolute;
      height: 1px;
      top: -18px;
      left: calc(-14px + var(--level-width) * var(--level));
      width: 14px;
      height: 44px;
      border-left: 1px solid var(--line-color);
      border-bottom: 1px solid var(--line-color);
    }

    &:not(:last-child)::after {
      content: '';
      position: absolute;
      height: 1px;
      top: 26px;
      left: calc(-14px + var(--level-width) * var(--level));
      width: 14px;
      height: 100%;
      border-left: 1px solid var(--line-color);
    }

    &-group {
      // Lends only it's structure to allow :last-child to target.
      display: contents;
    }
  }

  > .docs-properties__param:first-child::before {
    border-left: none;
  }

  &__name {
    padding-left: calc(var(--level-width) * var(--level)) !important;
  }

  &__name,
  &__description {
    display: table-cell;
    padding: 12px 20px 12px 0;
    vertical-align: top;
  }

  &__name {
    width: 0;
    min-width: 150px;
  }

  &__description {
    .docs-properties__param:not(:last-child) & {
      border-bottom: 1px solid #e9e9e9;
    }
  }

  &__required {
    color: #d64c46;
    margin-top: 0.5em;
    font-size: 13px;
    font-weight: 600;
  }

  &__default {
    margin-top: 1em;
    font-size: 14px;

    &-title {
      font-weight: 600;
    }

    > pre {
      background-color: #ececec;
      padding: 5px 10px;
      border-radius: 3px;
      margin-top: 0.5em;
      margin-bottom: 0.5em;
    }

    > code {
      background-color: #ececec;
      padding: 0.1em 0.4em;
      border-radius: 3px;
    }
  }

  &__types {
    font-size: 14px;

    span {
      color: #777;
      font-weight: 500;
    }

    code {
      background-color: #ececec;
      padding: 0.1em 0.4em;
      border-radius: 3px;
    }
  }

  &__divider {
    height: 4px;
  }

  &__note {
    font-size: 1.1em;
    padding: 0 0.2em;
    cursor: pointer;
  }
}
