@lyra/components
Version:
Basic UX components
245 lines (197 loc) • 4.36 kB
CSS
@import 'part:@lyra/base/theme/variables-style';
.root {
composes: root from 'part:@lyra/components/formfields/default-style';
& & {
/* nested inside itself */
margin: 0;
}
}
.root + .root {
margin-top: var(--medium-padding);
}
.fieldset {
margin: 0;
padding: 0;
border: none;
/* user agent sets min-width this to --webkit-min-content */
min-width: 0;
}
.header {
display: flex;
align-items: center;
margin-bottom: var(--small-padding);
}
.headerMain {
flex-grow: 1;
}
.headerStatus {
padding: var(--small-padding);
}
.validationIconError {
composes: validationIconError from 'part:@lyra/base/theme/forms/validation-style';
}
@media (--screen-medium) {
.columns4 .fieldWrapper {
display: grid;
grid-gap: var(--medium-padding);
grid-template-columns: repeat(4, 1fr);
}
.columns3 .fieldWrapper {
display: grid;
grid-gap: var(--medium-padding);
grid-template-columns: repeat(3, 1fr);
}
.columns2 .fieldWrapper {
display: grid;
grid-gap: var(--medium-padding);
grid-template-columns: repeat(2, 1fr);
}
}
.transparent {
background-color: transparent;
}
.columns1 {
composes: root;
}
.columns2 {
composes: root;
}
.content {
position: relative;
display: none;
background-color: transparent;
@nest &.isOpen {
display: block;
}
@nest .transparent & {
background-color: transparent;
}
& & {
/* nested inside itself */
border: none;
padding: 0;
box-shadow: none;
}
@nest .hasErrors:focus-within & {
box-shadow: var(--component-box-shadow--error) ;
}
}
.canFocus > .fieldset > .inner > .content {
padding: var(--small-padding);
border-radius: var(--border-radius-base);
box-shadow: var(--component-box-shadow);
@media (--screen-medium) {
padding: var(--medium-padding);
}
}
.level1 > .fieldset > .inner > .content {
background-color: var(--component-bg);
box-shadow: var(--component-box-shadow);
padding: var(--small-padding);
border-radius: var(--border-radius-base);
@media (--screen-medium) {
padding: var(--medium-padding);
}
}
.level2 > .fieldset > .inner > .content {
background-color: var(--component-bg);
box-shadow: var(--component-box-shadow);
padding: var(--small-padding);
border-radius: var(--border-radius-base);
@media (--screen-medium) {
padding: var(--medium-padding);
}
}
.root {
outline: none;
}
.root:not(.level1):focus > .fieldset > .inner > .content {
box-shadow: var(--component-box-shadow--focus);
}
.root:not(.level2):focus > .fieldset > .inner > .content {
box-shadow: var(--component-box-shadow--focus);
}
.level1:focus > .fieldset > .inner > .content {
box-shadow: var(--component-box-shadow--focus);
}
.level2:focus > .fieldset > .inner > .content {
box-shadow: var(--component-box-shadow--focus);
}
.inner {
display: block;
}
.legend + .description {
margin-top: calc(var(--small-padding) / 3);
}
.legend + .content {
margin-top: var(--small-padding);
}
.description + .content {
margin-top: var(--small-padding);
}
.legend {
composes: headingLevel_1 from 'part:@lyra/base/theme/typography/forms-style';
display: block;
width: 100%;
margin: 0;
padding: 0;
user-select: none;
cursor: default;
@nest .level2 & {
font-size: var(--font-size-base);
text-transform: none;
}
@nest .level3 & {
font-size: var(--font-size-base);
text-transform: none;
}
@nest .level4 & {
font-size: var(--font-size-base);
text-transform: none;
}
@nest .level5 & {
font-size: var(--font-size-base);
text-transform: none;
}
}
.level1,
.level2,
.level3,
.level4 {
display: block;
box-shadow: none;
}
.arrow {
display: inline-block;
width: 1em;
height: 1em;
overflow: hidden;
line-height: 1;
margin: 0;
padding: 0;
position: relative;
margin-right: 0.25em;
vertical-align: middle;
transition: transform 0.1s linear;
transform: rotate(-90deg);
margin-top: -0.1em;
@nest &.isOpen {
transform: rotate(0);
}
@nest & svg {
position: absolute;
transform: scale(1.2);
}
}
.description {
composes: description from 'part:@lyra/base/theme/typography/text-blocks-style';
margin: 0;
padding: 0;
display: none;
@nest &.isOpen {
display: block;
}
}
.debugNestingLevel {
display: none;
}