vuestic-ui
Version:
Vue 3 UI Framework
110 lines • 3.7 kB
CSS
:root,
:host {
--va-collapse-padding: 0.75rem;
--va-collapse-gap: 0.5rem;
--va-collapse-transition: all 0.3s linear;
--va-collapse-popout-margin: 0.5rem -0.5rem;
--va-collapse-inset-margin: 0.5rem 0.5rem;
--va-collapse-body-transition: opacity 0.1s linear;
--va-collapse-body-wrapper-transition: height 0.3s linear, background 0.3s linear;
--va-collapse-body-width: 100%;
--va-collapse-header-content-cursor: pointer;
--va-collapse-header-content-background-color: #f5f8f9;
--va-collapse-header-content-box-shadow: var(--va-box-shadow);
--va-collapse-header-content-border-radius: 0.375rem;
--va-collapse-header-content-padding-top: 0.75rem;
--va-collapse-header-content-padding-bottom: 0.75rem;
--va-collapse-header-content-padding-left: 1rem;
--va-collapse-header-content-text-font-weight: 600;
--va-collapse-header-content-icon-min-width: 1.5rem;
--va-collapse-header-content-icon-margin-left: 0.5rem;
--va-collapse-header-content-icon-margin-right: 0.5rem;
--va-collapse-header-content-icon-color: var(--va-background-element);
--va-collapse-expand-icon-transition: transform 0.3s linear;
/* Solid */
--va-collapse-solid-box-shadow: var(--va-box-shadow);
--va-collapse-solid-border-radius: 0.375rem;
--va-collapse-solid-header-content-background-color: #f5f8f9;
--va-collapse-solid-header-content-box-shadow: none;
--va-collapse-solid-header-content-border-radius: 0.375rem;
--va-collapse-solid-header-content-transition: background-color ease-in 0.3s;
--va-collapse-solid-body-border-radius: 0 0 0.375rem 0.375rem;
--va-collapse-solid-body-margin-top: 0;
}
.va-collapse {
transition: var(--va-collapse-transition, var(--va-swing-transition));
font-family: var(--va-font-family);
display: flex;
flex-direction: column;
}
.va-collapse__body-wrapper {
transition: var(--va-collapse-body-wrapper-transition);
overflow: auto;
}
.va-collapse__body-wrapper--bordered {
border-bottom: 1px solid var(--va-background-border);
box-sizing: content-box;
}
.va-collapse--colored-header:not(.va-collapse--expanded) .va-collapse__body-wrapper--bordered {
border-bottom: none;
}
.va-collapse--colored-body.va-collapse--expanded .va-collapse__body-wrapper--bordered {
border-bottom: none;
}
.va-collapse__body {
top: 0;
left: 0;
width: var(--va-collapse-body-width);
transition: var(--va-collapse-body-transition);
opacity: 0;
}
.va-collapse__content {
padding: var(--va-collapse-padding);
padding-top: calc(var(--va-collapse-padding) / 1.5);
box-sizing: border-box;
}
.va-collapse__content:empty {
padding: 0;
}
.va-collapse__header {
display: flex;
justify-content: space-between;
align-items: center;
gap: var(--va-collapse-gap);
cursor: var(--va-collapse-header-content-cursor);
padding: var(--va-collapse-padding);
transition: all 0.2s ease-in-out;
}
.va-collapse__header__text {
width: 100%;
font-weight: var(--va-collapse-header-content-text-font-weight);
}
.va-collapse__header:focus-visible {
outline: 2px solid var(--va-focus) ;
border-radius: var(--va-collapse-header-content-border-radius);
}
.va-collapse--expanded .va-collapse__body {
opacity: 1;
}
.va-collapse__expand-icon {
transition: var(--va-collapse-expand-icon-transition);
}
.va-collapse__expand-icon--expanded {
transform: rotate(180deg);
}
.va-collapse--popout {
margin: var(--va-collapse-popout-margin);
}
.va-collapse--inset {
margin: var(--va-collapse-inset-margin);
}
.va-collapse--disabled {
cursor: default;
opacity: 0.4;
-webkit-user-select: none;
-moz-user-select: none;
user-select: none;
}
.va-collapse--height-changing .va-collapse__body-wrapper {
overflow: hidden;
}