terrazzo 0.2.8

The Terrazzo library to build dynamic web pages in Rust
Documentation
.tabs {
    display: flex;
    flex-direction: column;

    --padding: 10px;
}

.titles {
    flex-grow: 0;
    z-index: 1;

    >ul {
        list-style: none;
        margin: 0;
        padding: 0;
    }
}

li.title {
    border: 0;
    margin: 0;
    padding: var(--padding);

    &:hover,
    &.selected {
        background-color: red;
    }
}

.items {
    flex-grow: 1;
    z-index: 0;

    &>ul {
        list-style: none;
        margin: 0;
        padding: 0;

        .item {
            display: none;
            visibility: hidden;

            &.selected {
                display: block;
                visibility: visible;
            }
        }
    }
}

.title-show-sep {
    display: block;
    visibility: visible;
    border: 0;
    margin: 0;
    padding: 0;
    height: 100%;

    --sep-zone: 50px;

    .title-drop-zone {
        height: 100px;
        position: absolute;
        z-index: 100;
        width: var(--sep-zone);
    }

    .title-drop-sep {
        position: relative;
        height: 100%;

        &::before {
            content: "";
            height: 100%;
            position: absolute;
            background-color: gray;

            --width: 2px;
            width: var(--width);
            left: calc(-1 * var(--width)/2);
        }
    }

    &.title-dropping .title-drop-sep {
        &::before {
            background-color: white;
            --width: 8px;
        }
    }
}

.titles {
    .title-show-sep:first-child {
        .title-drop-sep::before {
            left: 0px;
        }
    }

    .title-show-sep:last-child {
        .title-drop-sep::before {
            left: calc(-1 * var(--width));
        }
    }
}

.title-hide-sep {
    display: none;
    visibility: hidden;
}