ucsd-cse112/team13

View on GitHub
src/core-tooltip/CoreTooltipElement.css

Summary

Maintainability
Test Coverage
:host {
    --back-color: white;
    --border-color: black;
    --arrow-size: 0.5rem;
    --offset: 0px;

    display: inline-block;
    position: absolute;
    top: calc(0% - var(--offset));
    left: 50%;
    transform: translate(-50%, calc(-100% - var(--arrow-size)));

    opacity: 0;
    transition: opacity 0.3s ease;

    z-index: 1000;

    pointer-events: none;
}

#tooltip-back {
    min-width: var(--arrow-size);
    min-height: var(--arrow-size);

    border-style: solid;
    border-radius: 0.5rem;
    border-color: var(--border-color);

    display: flex;
    flex-direction: row;
    padding: 0.5rem;
    background: var(--back-color);
}

#tooltip-back::after {
    content: " ";
    position: absolute;
    top: 100%; /* At the bottom of the tooltip */
    left: 50%;
    border-width: var(--arrow-size);
    border-style: solid;
    border-color: var(--border-color) transparent transparent transparent;
    transform: translate(-50%, 0%);
}

:host([effect=light]) {
    color: black;
    --border-color: black;
    --back-color: white;
}

:host([effect=dark]) {
    color: white;
    --border-color: black;
    --back-color: black;
}

:host([placement=right]) {
    top: 50%;
    left: calc(100% + var(--offset));
    transform: translate(var(--arrow-size), -50%);
}
:host([placement=right]) span#tooltip-back::after {
    top: 50%;
    left: 0%; /* At the left of the tooltip */
    border-color: transparent var(--border-color) transparent transparent;
    transform: translate(-100%, -50%);
}

:host([placement=left]) {
    top: 50%;
    left: calc(0% - var(--offset));
    transform: translate(calc(-100% - var(--arrow-size)), -50%);
}
:host([placement=left]) span#tooltip-back::after {
    top: 50%;
    left: 100%; /* At the right of the tooltip */
    border-color: transparent transparent transparent var(--border-color);
    transform: translate(0%, -50%);
}

:host([placement=bottom]) {
    top: calc(100% + var(--offset));
    left: 50%;
    transform: translate(-50%, var(--arrow-size));
}
:host([placement=bottom]) span#tooltip-back::after {
    top: 0%; /* At the top of the tooltip */
    left: 50%;
    border-color: transparent transparent var(--border-color) transparent;
    transform: translate(-50%, -100%);
}

:host([no-visible-arrow]) {
    --arrow-size : 0rem;
}