shoelace/src/components/tree-item/tree-item.styles.ts

146 wiersze
3.1 KiB
TypeScript

import { css } from 'lit';
import componentStyles from '../../styles/component.styles';
export default css`
${componentStyles}
:host {
display: block;
outline: 0;
z-index: 0;
}
:host(:focus) {
outline: 0;
}
slot:not([name])::slotted(sl-icon) {
margin-inline-end: var(--sl-spacing-x-small);
}
.tree-item {
position: relative;
display: flex;
align-items: stretch;
flex-direction: column;
color: var(--sl-color-neutral-700);
cursor: pointer;
user-select: none;
white-space: nowrap;
}
.tree-item__checkbox {
pointer-events: none;
}
.tree-item__expand-button,
.tree-item__checkbox,
.tree-item__label {
font-family: var(--sl-font-sans);
font-size: var(--sl-font-size-medium);
font-weight: var(--sl-font-weight-normal);
line-height: var(--sl-line-height-normal);
letter-spacing: var(--sl-letter-spacing-normal);
}
.tree-item__default-toggle-button {
transition: var(--sl-transition-medium) transform ease;
}
:host([expanded]) .tree-item__default-toggle-button {
transform: rotate(90deg);
}
:host([expanded]) .tree-item--rtl .tree-item__default-toggle-button {
transform: rotate(-90deg);
}
.tree-item--rtl {
outline: dotted 1px tomato;
}
.tree-item__checkbox::part(base) {
display: flex;
align-items: center;
}
.tree-item__indentation {
display: block;
width: 1em;
flex-shrink: 0;
}
.tree-item__expand-button {
display: flex;
align-items: center;
justify-content: center;
box-sizing: content-box;
color: var(--sl-color-neutral-500);
padding: var(--sl-spacing-x-small);
width: 1rem;
height: 1rem;
cursor: pointer;
}
.tree-item__expand-button--visible {
cursor: pointer;
}
.tree-item__item {
display: flex;
align-items: center;
border-inline-start: solid 3px transparent;
}
.tree-item--disabled .tree-item__item {
opacity: 0.5;
outline: none;
cursor: not-allowed;
}
:host(:focus-visible) .tree-item__item {
outline: var(--sl-focus-ring);
outline-offset: var(--sl-focus-ring-offset);
z-index: 2;
}
:host(:not([aria-disabled='true'])) .tree-item--selected .tree-item__item {
background-color: var(--sl-color-neutral-100);
border-inline-start-color: var(--sl-color-primary-600);
}
:host(:not([aria-disabled='true'])) .tree-item__expand-button {
color: var(--sl-color-neutral-600);
}
.tree-item__label {
display: flex;
align-items: center;
transition: var(--sl-transition-fast) color;
}
.tree-item__children {
font-size: calc(1em + var(--indent-size, var(--sl-spacing-medium)));
}
/* Indentation lines */
.tree-item__children {
position: relative;
}
.tree-item__children::before {
content: '';
position: absolute;
top: var(--indent-guide-offset);
bottom: var(--indent-guide-offset);
left: calc(1em - (var(--indent-guide-width) / 2) - 1px);
border-inline-end: var(--indent-guide-width) var(--indent-guide-style) var(--indent-guide-color);
z-index: 1;
}
.tree-item--rtl .tree-item__children::before {
left: auto;
right: 1em;
}
`;