xdesign-vue-next
Version:
XDesign Component for vue-next
236 lines (235 loc) • 6.81 kB
CSS
.x-timeline {
font: var(--td-font-body-medium);
color: var(--td-text-color-primary);
box-sizing: border-box;
margin: 0;
padding: 0;
list-style: none;
display: flex;
flex-direction: column;
}
.x-timeline-item {
min-height: 72px;
display: flex;
flex-direction: row;
position: relative;
}
.x-timeline-item__label.x-timeline-item__label--alternate {
position: absolute;
}
.x-timeline-item__wrapper {
width: 8px;
position: relative;
}
.x-timeline-item__wrapper .x-timeline-item__dot {
box-sizing: unset;
position: absolute;
width: 4px;
height: 4px;
border: 2px solid transparent;
border-radius: 50%;
top: 8px;
}
.x-timeline-item__wrapper .x-timeline-item__dot--primary {
border-color: var(--td-brand-color);
}
.x-timeline-item__wrapper .x-timeline-item__dot--default {
border-color: var(--td-component-border);
}
.x-timeline-item__wrapper .x-timeline-item__dot--success {
border-color: var(--td-success-color);
}
.x-timeline-item__wrapper .x-timeline-item__dot--warning {
border-color: var(--td-warning-color);
}
.x-timeline-item__wrapper .x-timeline-item__dot--error {
border-color: var(--td-error-color);
}
.x-timeline-item__wrapper .x-timeline-item__dot--custom {
position: relative;
left: 50%;
transform: translateX(-50%);
top: 4px;
border: 0;
}
.x-timeline-item__wrapper .x-timeline-item__dot--custom .x-timeline-item__dot-content {
position: absolute;
left: 50%;
transform: translateX(-50%);
top: 0;
}
.x-timeline-item__wrapper .x-timeline-item__tail {
position: absolute;
border-left: 2px solid transparent;
left: 50%;
height: calc(100% - (8px * 2 + 8px));
bottom: 0;
transform: translateX(-50%);
padding-bottom: var(--td-comp-size-s);
border-color: var(--td-component-border);
box-sizing: border-box;
}
.x-timeline-item__wrapper .x-timeline-item__tail--theme-dot {
border-style: dashed;
border-right: 0;
}
.x-timeline-item__label {
color: var(--td-text-color-secondary);
font-size: var(--td-font-size-body-medium);
}
.x-timeline-item__content {
flex: 1;
padding-left: var(--td-comp-margin-l);
font-size: var(--td-font-size-body-large);
}
.x-timeline-item--last .x-timeline-item__tail {
display: none;
}
.x-timeline-label.x-timeline-label--alternate.x-timeline-left .x-timeline-item__label {
text-align: right;
left: 0;
}
.x-timeline-label.x-timeline-label--alternate.x-timeline-left .x-timeline-item__wrapper {
margin-left: 100px;
}
.x-timeline-label.x-timeline-label--alternate.x-timeline-right .x-timeline-item__label {
text-align: left;
right: 0;
}
.x-timeline-label.x-timeline-label--alternate.x-timeline-right .x-timeline-item__wrapper {
margin-right: 100px;
}
.x-timeline-right .x-timeline-item {
flex-direction: row-reverse;
}
.x-timeline-right .x-timeline-item__content {
text-align: right;
padding-left: 0;
padding-right: var(--td-comp-margin-l);
}
.x-timeline-alternate .x-timeline-item-left {
margin-left: calc(50% - (8px / 2));
}
.x-timeline-alternate .x-timeline-item-right {
text-align: right;
flex-direction: row-reverse;
margin-right: calc(50% - (8px / 2));
}
.x-timeline-alternate .x-timeline-item-right .x-timeline-item__content {
padding-right: var(--td-comp-margin-l);
padding-left: 0;
}
.x-timeline-label.x-timeline-alternate .x-timeline-item__label {
width: 100%;
}
.x-timeline-label.x-timeline-alternate .x-timeline-item-left .x-timeline-item__label--alternate {
left: 0;
transform: translateX(-100%);
text-align: right;
padding-right: var(--td-comp-margin-l);
}
.x-timeline-label.x-timeline-alternate .x-timeline-item-right .x-timeline-item__label--alternate {
right: 0;
transform: translateX(100%);
text-align: left;
padding-left: var(--td-comp-margin-l);
}
.x-timeline-horizontal {
min-height: 200px;
flex-direction: row;
align-items: center;
}
.x-timeline-horizontal .x-timeline-item {
flex-direction: column;
padding-right: 8px;
min-width: 160px;
}
.x-timeline-horizontal .x-timeline-item__wrapper {
width: 100%;
height: 8px;
}
.x-timeline-horizontal .x-timeline-item__wrapper .x-timeline-item__dot {
position: absolute;
top: 50%;
transform: translateY(-50%);
left: unset;
width: 4px;
height: 4px;
border-radius: 50%;
}
.x-timeline-horizontal .x-timeline-item__wrapper .x-timeline-item__dot--custom {
position: relative;
top: 50%;
transform: translateY(-50%);
border: 0;
}
.x-timeline-horizontal .x-timeline-item__wrapper .x-timeline-item__dot--custom .x-timeline-item__dot-content {
position: absolute;
left: 0;
transform: translateY(-50%);
top: 50%;
}
.x-timeline-horizontal .x-timeline-item__wrapper .x-timeline-item__tail {
left: calc(8px + var(--td-comp-margin-s));
top: 50%;
transform: translateY(-50%);
width: calc(100% - calc(8px + var(--td-comp-margin-s)));
border: 0;
border-top: 2px solid transparent;
padding-bottom: 0;
border-color: var(--td-component-border);
}
.x-timeline-horizontal .x-timeline-item__wrapper .x-timeline-item__tail--theme-dot {
border-style: dashed;
border-right: 0;
}
.x-timeline-horizontal .x-timeline-item__content {
padding-left: unset;
padding-top: var(--td-comp-margin-l);
flex: unset;
}
.x-timeline-vertical .x-timeline-item__content {
padding-bottom: var(--td-comp-margin-l);
}
.x-timeline-label.x-timeline-horizontal.x-timeline-top .x-timeline-item__label--alternate {
top: 0;
width: 100%;
transform: translateY(-100%);
padding-bottom: 0;
}
.x-timeline-label.x-timeline-horizontal.x-timeline-bottom .x-timeline-item {
flex-direction: column-reverse;
}
.x-timeline-label.x-timeline-horizontal.x-timeline-bottom .x-timeline-item__wrapper {
padding-top: 0;
}
.x-timeline-label.x-timeline-horizontal.x-timeline-bottom .x-timeline-item__label--alternate {
padding-top: var(--td-comp-margin-l);
bottom: 0;
width: 100%;
transform: translateY(100%);
}
.x-timeline-label.x-timeline-horizontal.x-timeline-bottom .x-timeline-item__content {
padding-top: 0;
padding-bottom: var(--td-comp-margin-l);
}
.x-timeline-label.x-timeline-horizontal.x-timeline-alternate .x-timeline-item-top .x-timeline-item__label--alternate {
top: 0;
width: 100%;
transform: translateY(-100%);
padding-bottom: var(--td-comp-margin-l);
}
.x-timeline-label.x-timeline-horizontal.x-timeline-alternate .x-timeline-item-bottom {
flex-direction: column-reverse;
position: relative;
transform: translateY(calc(-100% + 8px));
}
.x-timeline-label.x-timeline-horizontal.x-timeline-alternate .x-timeline-item-bottom .x-timeline-item__content {
padding-bottom: var(--td-comp-margin-l);
padding-top: unset;
}
.x-timeline-label.x-timeline-horizontal.x-timeline-alternate .x-timeline-item-bottom .x-timeline-item__label--alternate {
bottom: 0;
transform: translateY(100%);
padding-top: var(--td-comp-margin-l);
}