e2ed
Version:
E2E testing framework over Playwright
791 lines (750 loc) • 16.4 kB
CSS
:root {
--main-color: #084ee8;
--main-bg-color: #f4f4f4;
--font-color: #111;
--subtitle-color: #6f6e6e;
--broken-color: #8f6900;
--failed-color: #de2607;
--passed-color: #3d7704;
--skipped-color: #6f6c6c;
--unknown-color: #bf31a6;
--button-bg-color: #fff;
--broken-bg-color: #fffae6;
--failed-bg-color: #ffe7e6;
/* --passed-bg-color: #d9e4ce; */
--skipped-bg-color: #f2f2f2;
--unknown-bg-color: #fbe8ff;
--step-panel-bg-color: #f8f8f9;
--border-color: #eceff1;
--button-hover-bg-color: #e4edfe;
--nav-bg-color: #2e3135; /* #343434; */
--drag-container-width: 8px;
--test-details-padding: 15px;
--test-link-selected-color: hsl(54 100% 90%);
--link-color: #0000ee;
--link-visited-color: #551a8b;
}
@media (prefers-color-scheme: dark) {
:root {
--main-bg-color: #272727;
--font-color: rgba(255, 255, 255, 0.75);
--border-color: #525252;
--button-bg-color: #2e3135;
--step-panel-bg-color: #23282d;
--button-hover-bg-color: #003cbd;
--passed-color: #306001;
--failed-color: #a61b03;
--unknown-color: #aa138e;
--failed-bg-color: hsl(0 28% 21%);
--test-link-selected-color: hsl(221 31% 20%);
--link-color: #38a2ff;
--link-visited-color: #b68fff;
}
}
body {
margin: 0;
padding: 0;
width: 100%;
height: 100vh;
display: grid;
grid-template-columns: auto 1fr;
grid-template-rows: 1fr;
font-family: system-ui;
font-size: 14px;
color: var(--font-color);
}
button,
button:focus,
button:active,
button:hover {
box-sizing: border-box;
cursor: pointer;
background-color: transparent;
background: none;
}
button:disabled {
color: #1010104d;
cursor: not-allowed;
}
a,
a:hover,
a:active,
a:focus {
color: var(--link-color);
text-decoration-line: none;
}
a:hover {
text-decoration-line: underline;
}
a:visited {
color: var(--link-visited-color);
}
.header {
margin: 0 0 20px 0;
padding: 4px;
display: flex;
justify-content: center;
border-bottom: 1px solid var(--subtitle-color);
}
/* errors */
.errors {
padding: 2px 6px;
}
.errors .__error {
color: var(--failed-color);
margin: 4px 0;
}
/* warnings */
.warnings {
padding: 2px 6px;
}
.warnings .__error {
color: var(--broken-color);
margin: 4px 0;
}
.logo {
width: 100%;
height: auto;
display: block;
}
/* nav */
.nav {
width: 100px;
background-color: var(--nav-bg-color);
overflow-y: auto;
}
.nav-tabs {
display: flex;
flex-direction: column;
}
.nav-tabs__button {
padding: 15px;
box-sizing: border-box;
flex-shrink: 0;
font-size: 16px;
color: #b5b5b5;
text-align: left;
transition: all 0.3s ease;
white-space: nowrap;
border: none;
}
.nav-tabs__button[aria-selected='true'],
.nav-tabs__button[aria-selected='true']:hover,
.nav-tabs__button[aria-selected='true']:active,
.nav-tabs__button[aria-selected='true']:focus {
border-right: 4px solid var(--main-color);
color: #fff;
cursor: default;
}
.nav-tabs__button:not(:disabled):hover {
color: #fff;
}
/* main */
.main {
display: flex;
height: 100%;
background-color: var(--main-bg-color);
overflow: hidden;
}
.main__section {
padding-bottom: 25px;
overflow-y: auto;
}
.main__section._position_left {
width: calc(40% - var(--drag-container-width));
min-width: 180px;
}
.main__section._position_left._size_mini .test-button {
flex-wrap: wrap;
}
.main__section._position_left._size_mini .test-button__name {
width: 100%;
order: 5;
}
.main__section._position_left._size_mini .test-button__time {
order: 4;
}
.main__section._position_right {
width: 60%;
}
/* toolbar */
.toolbar {
padding: 7px 10px;
display: flex;
justify-content: flex-end;
gap: 10px;
border-width: 1px 0;
border-style: solid;
border-color: var(--border-color);
white-space: nowrap;
}
.toolbar__group {
display: flex;
gap: 5px;
align-items: center;
white-space: nowrap;
overflow-x: auto;
}
.toolbar__button {
padding: 0;
border: none;
}
/* color-cell */
.color-cell {
padding: 2px 5px;
color: #fff;
border-radius: 3px;
white-space: nowrap;
font-size: 14px;
font-weight: bold;
}
.color-cell_type_tag {
background-color: var(--main-color);
}
/* retry */
.retry .__title {
margin: 14px 0 7px;
padding: 0 10px;
}
.retry .__date {
margin: 0 0 10px 0;
padding: 0 10px;
color: var(--subtitle-color);
}
/* test */
.test-button {
padding: 7px 10px;
width: 100%;
display: flex;
gap: 5px;
font-size: 14px;
align-items: flex-start;
color: var(--font-color);
background-color: var(--button-bg-color);
border: none;
}
.test-button {
min-width: 180px;
border-bottom: 1px solid var(--border-color);
}
.test-button:hover {
border-bottom: 1px solid var(--border-color);
background-color: var(--button-hover-bg-color);
}
.test-button:first-of-type {
border-top: 1px solid var(--border-color);
}
.test-button[aria-selected='true'] {
background-color: var(--test-link-selected-color);
cursor: default;
}
.test-button__time {
color: var(--subtitle-color);
flex-grow: 1;
text-align: right;
flex-shrink: 0;
user-select: text;
}
.test-button__order {
width: 35px;
text-align: left;
flex-shrink: 0;
user-select: text;
}
.test-button__name {
text-align: left;
overflow-wrap: break-word;
overflow: hidden;
user-select: text;
}
.test-button__parameters {
color: var(--subtitle-color);
overflow-wrap: initial;
}
.test-button__parameters::before {
content: ' ';
}
.test-button::before,
.step-expanded_status_passed::before,
.step-expanded_status_failed::before {
margin: 0 auto;
width: 16px;
height: 16px;
display: flex;
justify-content: center;
align-items: center;
flex-shrink: 0;
border-radius: 24px;
font-size: 15px;
line-height: 16px;
font-weight: bold;
color: #fff;
}
.test-button_status_passed::before,
.step-expanded_status_passed::before {
content: '\2713';
}
.test-button_status_unknown::before {
content: '\003F';
}
.test-button_status_skipped::before {
content: '\2212';
}
.test-button_status_broken::before {
content: '\0021';
}
.test-button_status_failed::before,
.step-expanded_status_failed::before {
content: '\00D7';
}
.test-button_status_passed::before,
.toolbar__button_status_passed[aria-pressed='false'],
.color-cell_status_passed,
.step-expanded_status_passed::before {
background-color: var(--passed-color);
}
.test-button_status_skipped::before,
.toolbar__button_status_skipped[aria-pressed='false'],
.color-cell_status_skipped {
background-color: var(--skipped-color);
}
.test-button_status_failed::before,
.toolbar__button_status_failed[aria-pressed='false'],
.color-cell_status_failed,
.step-expanded_status_failed::before {
background-color: var(--failed-color);
}
.test-button_status_broken::before,
.toolbar__button_status_broken[aria-pressed='false'],
.color-cell_status_broken {
background-color: var(--broken-color);
}
.test-button_status_unknown::before,
.toolbar__button_status_unknown[aria-pressed='false'],
.color-cell_status_unknown {
background-color: var(--unknown-color);
}
/* test-details */
.test-details__path {
margin: 10px 0;
padding: 0 var(--test-details-padding);
font-size: 18px;
color: var(--subtitle-color);
overflow-wrap: break-word;
}
.test-details__title {
margin: 0;
padding: 0 var(--test-details-padding) var(--test-details-padding);
font-size: 24px;
line-height: 32px;
overflow-wrap: break-word;
}
.test-details__status {
margin-right: 10px;
position: relative;
font-size: 21px;
}
.toolbar__button {
padding: 2px 5px;
color: #fff;
white-space: nowrap;
font-size: 14px;
font-weight: bold;
border: 1px solid transparent;
border-radius: 3px;
box-shadow: 1px 1px 1px 0px #828282;
}
.toolbar__button[aria-pressed='true'] {
background-color: #fff;
box-shadow: none;
}
.toolbar__button_status_unknown[aria-pressed='true'] {
color: var(--unknown-color);
border-color: var(--unknown-color);
}
.toolbar__button_status_broken[aria-pressed='true'] {
color: var(--broken-color);
border-color: var(--broken-color);
}
.toolbar__button_status_passed[aria-pressed='true'] {
color: var(--passed-color);
border-color: var(--passed-color);
}
.toolbar__button_status_skipped[aria-pressed='true'] {
color: var(--skipped-color);
border-color: var(--skipped-color);
}
.toolbar__button_status_failed[aria-pressed='true'] {
color: var(--failed-color);
border-color: var(--failed-color);
}
/* test-tabs */
.test-tabs {
border-bottom: 1px solid var(--border-color);
white-space: nowrap;
overflow-x: auto;
}
.test-tabs__button {
padding: 7px var(--test-details-padding);
border: none;
font-size: 16px;
transition: all 0.3s ease;
}
.test-tabs__button,
.test-tabs__button:focus,
.test-tabs__button:active,
.test-tabs__button:hover {
background-color: #fff;
border-bottom: 3px solid #fff;
}
.test-tabs__button[aria-selected='true'],
.test-tabs__button[aria-selected='true']:hover,
.test-tabs__button[aria-selected='true']:active,
.test-tabs__button[aria-selected='true']:focus {
border-bottom-color: var(--main-color);
color: var(--main-color);
cursor: default;
}
.test-tabs__button[aria-selected='false']:not(:disabled):hover {
border-bottom-color: var(--border-color);
color: var(--main-color);
}
.test-tabs__button:disabled {
background-color: var(--main-bg-color);
border-color: var(--main-bg-color);
}
.test-tabs__button:disabled:hover {
border-color: var(--main-bg-color);
cursor: default;
}
/* .drag-container */
.drag-container {
width: var(--drag-container-width);
height: 100%;
cursor: ew-resize;
background-color: var(--border-color);
}
.drag-container::after {
margin: -20px 1px 1px;
position: relative;
top: 50%;
content: '';
width: calc(100% - 2px);
height: 40px;
border: 2px dotted #cdcdd0;
display: block;
box-sizing: border-box;
}
/* overview */
.overview {
margin: 0 0 15px 0;
padding: 15px 0 0 0;
}
.overview__title {
margin: 0 0 10px 0;
padding: 0 var(--test-details-padding);
}
/* status-detail */
.status-detail {
width: 100%;
display: flex;
overflow: auto;
}
.status-detail_status_broken {
background-color: var(--broken-bg-color);
}
.status-detail_status_failed {
background-color: var(--failed-bg-color);
}
.status-detail_status_skipped {
background-color: var(--skipped-bg-color);
}
.status-detail_status_unknown {
background-color: var(--unknown-bg-color);
}
.status-detail__content {
flex-grow: 1;
padding: 0 var(--test-details-padding);
}
.status-detail__button {
margin: 7px 0;
padding: 0 var(--test-details-padding);
min-width: 100%;
border: none;
text-align: left;
}
.status-detail__button:hover {
background-color: var(--button-hover-bg-color);
}
.status-detail__button-text {
padding: 10px 0;
width: 100%;
display: block;
white-space: pre-wrap;
}
.status-detail__panel {
margin: 0;
padding: var(--test-details-padding);
display: none;
border-top: 1px solid var(--border-color);
white-space: pre;
}
.status-detail__button[aria-expanded='true'] + .status-detail__panel {
display: block;
}
.test-details-empty {
padding: var(--test-details-padding);
text-align: center;
}
.overview .test-details-empty {
padding-top: 0;
text-align: left;
}
.test-description {
margin: 0;
padding: 0 var(--test-details-padding);
}
.test-description_type_meta {
margin-bottom: 15px;
padding-top: 15px;
}
.test-description__term {
display: inline-block;
color: #5d5b5b;
}
.test-description__term::after {
content: ': ';
}
.test-description_type_meta .test-description__term {
color: var(--font-color);
}
.test-description__definition {
margin: 0;
display: inline;
overflow-wrap: break-word;
}
.test-description__definition:after {
margin: 0 0 7px 0;
display: block;
content: '';
}
.test-description__definition .color-cell {
font-size: 12px;
font-weight: normal;
}
.test-description__definition .color-cell:not(:last-child) {
margin: 0 5px 0 0;
}
/* .step-expanded */
.step-expanded[aria-expanded='true'] {
box-shadow: 0 1px 5px rgb(0 0 0 / 10%);
position: relative;
z-index: 1;
}
.step-expanded_type_inner[aria-expanded='true'] {
position: sticky;
top: 0;
z-index: 0;
}
.step-expanded {
padding: 7px var(--test-details-padding);
width: 100%;
display: flex;
gap: 8px;
border: none;
align-items: flex-start;
font-size: 14px;
color: var(--font-color);
}
.step-expanded.step-expanded_is-empty {
cursor: default;
}
.step-expanded_type_inner {
padding: 7px calc(var(--test-details-padding) * 2);
transition: top 0.2s linear;
align-items: center;
}
.step-expanded {
border-bottom: 1px solid var(--border-color);
}
.step-expanded.step-expanded_type_inner[aria-expanded='true'] {
border-bottom: none;
}
.step-expanded,
.step-expanded:focus,
.step-expanded:active {
background-color: var(--button-bg-color);
}
.step-expanded:hover {
border-bottom: 1px solid var(--border-color);
background-color: var(--button-hover-bg-color);
}
.step-expanded::after,
.step-expanded_type_inner::before {
margin-top: 4px;
content: '';
display: block;
width: 6px;
height: 6px;
flex-shrink: 0;
border-right: 2px solid var(--font-color);
border-top: 2px solid var(--font-color);
background: none;
transition: transform 0.3s ease-in-out;
}
.step-expanded::after {
margin-right: 3px;
transform: translate(0, -25%) rotate(135deg);
}
.step-expanded_type_inner::before {
margin-top: 0;
transform: rotate(45deg);
}
.step-expanded_type_inner::after {
display: none;
}
.step-expanded-panel {
margin: 0;
display: none;
box-sizing: border-box;
}
.step-expanded[aria-expanded='true'] + .step-expanded-panel {
display: block;
}
.step-expanded-panel > pre {
margin: 0 0 6px 0;
}
.step-expanded[aria-expanded='true']::after {
transform: translate(0, 25%) rotate(-45deg);
}
.step-expanded_type_inner[aria-expanded='true']::before {
transform: rotate(135deg) translateX(-50%);
}
.step-expanded__content {
margin: 0;
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
}
.step__panel {
width: 100%;
padding: 10px var(--test-details-padding);
box-sizing: border-box;
overflow: auto;
background-color: var(--step-panel-bg-color);
}
.step-expanded__name {
text-align: left;
overflow-wrap: break-word;
overflow: hidden;
user-select: text;
}
.step-expanded__time {
flex-grow: 1;
text-align: right;
color: var(--subtitle-color);
user-select: text;
}
@media (max-width: 1366px) {
.nav {
width: 75px;
}
.nav-tabs__button {
padding: 10px;
font-size: 14px;
}
.toolbar__group::-webkit-scrollbar,
.test-tabs::-webkit-scrollbar {
display: none;
}
.retry .__title {
margin: 10px 0 7px;
}
.toolbar__group {
gap: 8px;
}
.toolbar__button {
padding: 10px 10px;
min-width: 38px;
min-height: 38px;
}
.test-button {
padding: 13px 10px;
}
.nav-tabs__button,
.test-button,
.test-tabs__button,
.step-expanded_type_inner {
min-height: 42px;
}
}
@media (max-width: 768px) {
body {
min-height: 100vh;
height: auto;
grid-template-columns: 1fr;
grid-template-rows: auto 1fr;
}
.header {
margin-bottom: 0;
}
.logo {
width: 100px;
}
.nav {
width: 100vw;
overflow: hidden;
}
.nav-tabs {
max-width: 100vw;
flex-direction: row;
scrollbar-width: none;
overflow-x: scroll;
}
.nav-tabs::-webkit-scrollbar {
display: none;
}
.nav-tabs__button,
.nav-tabs__button:focus,
.nav-tabs__button:active,
.nav-tabs__button:hover {
border-bottom: 3px solid var(--nav-bg-color);
}
.nav-tabs__button[aria-selected='true'],
.nav-tabs__button[aria-selected='true']:hover,
.nav-tabs__button[aria-selected='true']:active,
.nav-tabs__button[aria-selected='true']:focus {
border-right: none;
border-bottom-color: #64b5f6;
}
.test-details__title {
font-size: 18px;
line-height: 24px;
}
.test-details__status {
font-size: 16px;
}
.main {
flex-direction: column;
}
.main__section._position_left,
.main__section._position_right {
width: 100%;
height: auto;
}
.drag-container {
display: none;
}
}
@media (max-width: 360px) {
.test-button {
flex-wrap: wrap;
}
.test-button__name {
width: 100%;
order: 5;
}
.test-button__time {
order: 4;
}
}