@mixin theme() {
  .dynamic-grid {
    .dynamic-grid-header {
      display: flex;
      flex-direction: column;

      &.sticky-header {
        position: sticky;
        z-index: 1;
        top: 0;
      }

      .sort-actions {
        pointer-events: none;
        cursor: pointer;

        display: flex;
        flex-direction: column;

        color: inherit;
      }

      .dynamic-grid-row {
        flex: 1;
      }

      .dynamic-grid-header-action {
        position: sticky;
        z-index: 2;
        right: 0;

        display: flex;
        align-items: center;

        height: 44px;
        margin-top: -44px;
        margin-left: auto;

        color: var(--dg-header-name-color);

        background-color: var(--dg-bg);
        border-bottom: 1px solid var(--dg-divider-color);

        &:hover {
          color: var(--dg-header-name-active-color);
        }

        &:focus-within {
          color: var(--dg-header-action-active-color);
        }

        &:empty {
          display: none;
        }
      }

      .dynamic-grid-header-cell {
        user-select: none;

        position: relative;

        overflow: hidden;
        display: flex;
        align-items: center;

        font-size: 12px;
        font-weight: 500;
        color: var(--dg-header-name-color);
        white-space: nowrap;

        background-color: var(--dg-bg);

        &::before {
          content: '';

          position: absolute;
          z-index: 1;
          top: 0;
          right: 0;
          bottom: 0;

          width: 16px;

          background: linear-gradient(to right, hsl(0deg 0% 100% / 0%), var(--dg-bg) 70%, var(--dg-bg));
        }

        &.col-sorted {
          color: var(--dg-header-name-active-color);
        }

        .header-cell-content {
          cursor: pointer;
          display: flex;
          align-items: center;
          width: 100%;

          &:hover {
            color: var(--dg-header-name-active-color);
          }
        }

        &:not(.col-sorted) {
          .sort-actions {
            opacity: 0;
          }
        }

        &:hover {
          .sort-actions {
            opacity: 1;
          }

          .resizer-bar {
            opacity: 1;
          }
        }
      }
    }
  }
}
