@statusfy/core
Version:
Core of Statusfy
574 lines (443 loc) • 9.19 kB
CSS
/* Custom Styles */
@import '@statusfy/common/lib/style/base';
main {
min-height: calc(100vh - 14rem);
}
.btn {
@apply inline-block rounded font-medium border py-2 px-4 shadow;
color: var(--grey-darkest);
background-color: var(--white);
border-color: var(--grey-light);
&:hover {
@apply shadow-md;
color: var(--black);
border-color: var(--grey);
}
}
.badge {
@apply rounded-full text-sm font-semibold px-3 py-1;
}
.popover {
@apply absolute rounded px-4 py-3 shadow m-1 max-w-xs text-center text-sm;
color: var(--white);
background-color: var(--grey-darkest);
}
.timeline-container,
.scheduled-container {
@apply mt-6;
> h2 {
@apply text-2xl mb-4 font-medium;
}
}
/* timeline */
.timeline {
@apply list-reset m-0 p-0;
}
.timeline-incident {
@apply border-l-2 ml-2 relative pt-0 pb-6 pl-6;
border-color: var(--grey-light);
&:last-child {
border-color: var(--transparent);
}
&::before {
@apply w-6 h-6 border-2 absolute rounded-full z-10;
background-color: var(--white);
border-color: var(--grey-light);
content: ' ';
left: -13px;
top: 0;
}
&::before {
border-color: var(--grey-darker);
.under-maintenance& {
border-color: var(--grey-darker);
}
.degraded-performance& {
border-color: var(--purple);
}
.partial-outage& {
border-color: var(--orange);
}
.major-outage& {
border-color: var(--red);
}
.operational& {
border-color: var(--grey-light);
}
}
}
.timeline-incident-title {
@apply text-xl font-medium mb-4;
}
.timeline-incident-body {
@apply pb-2;
.message {
color: var(--grey-darker);
}
}
/* Incidents */
.incident {
background-color: var(--white);
border-color: var(--grey-light);
@apply leading-normal p-4 pt-6 shadow rounded my-4 border;
.incident-header {
@apply flex flex-col justify-between;
@screen sm {
@apply flex-row;
}
&.level-0 {
.incident-title {
@apply block;
}
}
}
.incident-title {
@apply flex items-start justify-between flex-row-reverse mb-4;
@screen sm {
@apply items-center flex-row;
}
&.level-0 {
@apply text-center;
}
.badge {
@apply block text-center;
color: var(--white);
@screen sm {
@apply mr-2;
}
}
a {
color: var(--black);
* {
@apply text-lg block;
}
}
}
.incident-subtitle {
@apply flex flex-col items-center justify-between;
@screen sm {
@apply flex-row;
}
time {
@apply font-medium;
}
.status {
@apply my-2;
@screen sm {
@apply mb-0;
}
}
}
.incident-systems {
@apply mb-2 text-center;
.badge {
@apply inline-block ml-2 mb-2;
color: var(--grey-darker);
background-color: var(--grey-lighter);
}
}
&.under-maintenance {
&.unresolved {
.incident-title {
.badge {
background-color: var(--grey-darker);
}
a {
color: var(--grey-darker);
}
}
}
.incident-subtitle .status {
color: var(--grey-darker);
}
}
&.degraded-performance {
&.unresolved {
.incident-title {
.badge {
background-color: var(--purple);
}
a {
color: var(--purple);
}
}
}
.incident-subtitle .status {
color: var(--purple);
}
}
&.partial-outage {
&.unresolved {
.incident-title {
.badge {
background-color: var(--orange);
}
a {
color: var(--orange);
}
}
}
.incident-subtitle .status {
color: var(--orange);
}
}
&.major-outage {
&.unresolved {
.incident-title {
.badge {
background-color: var(--red);
}
a {
color: var(--red);
}
}
}
.incident-subtitle .status {
color: var(--red);
}
}
&.resolved {
.incident-title {
.badge {
background-color: var(--green);
}
}
}
&.scheduled {
.incident-title {
display: block;
text-align: center;
}
}
}
.incident-body {
> p,
> div {
@apply my-4;
}
.markdown {
@apply mb-0
}
a {
color: var(--blue);
&.external {
svg {
color: var(--grey-dark);
}
}
}
.update-block {
@apply flex flex-col-reverse border-b mb-0 py-2;
&:first-child {
@apply pt-0;
.update-block-content {
@apply mt-0
}
}
&:last-child {
@apply border-b-0 mb-0 pb-0;
.update-block-date {
@apply mb-0
}
}
}
.update-block-date {
@apply my-2 text-sm;
color: var(--grey-dark);
}
.update-block-content {
@apply flex-initial my-2;
}
.update-block-title {
@apply font-semibold mb-2 text-lg;
}
}
/* Systems */
.systems-container {
@apply py-2 px-2 shadow rounded my-4 border;
background-color: var(--white);
border-color: var(--grey-light);
}
.system {
@apply p-4 m-2 rounded;
background-color: var(--grey-lighter);
.system-title {
color: var(--grey-darker);
}
.system-title-info {
@apply cursor-pointer;
color: var(--grey-dark)
}
.system-status {
@apply text-right;
color: var(--grey-darker);
}
&.under-maintenance {
.system-status {
color: var(--grey-darker);
}
}
&.degraded-performance {
.system-status {
color: var(--purple);
}
}
&.partial-outage {
.system-status {
color: var(--orange);
}
}
&.major-outage {
.system-status {
color: var(--red);
}
}
&.operational {
.system-status {
color: var(--green);
}
}
}
/* Systems */
.global-status {
@apply content-center py-4 px-2 shadow rounded my-4 text-2xl;
background-color: var(--grey-lighter);
color: var(--white);
.global-status-icon {
@apply ml-2;
}
&.under-maintenance {
background-color: var(--grey-darker);
}
&.degraded-performance {
background-color: var(--purple);
}
&.partial-outage {
background-color: var(--orange);
}
&.major-outage {
background-color: var(--red);
}
&.operational {
background-color: var(--green);
}
}
/* Footer */
.footer {
a {
color: var(--grey-darker);
&:hover {
color: var(--black) ;
}
}
.footer-links {
@apply flex flex-col items-center justify-between py-4;
color: var(--grey-dark);
> div {
@apply my-2;
> a:not(:last-child) {
@apply mr-4;
}
}
@screen sm {
@apply flex-row;
}
}
.footer-language-swticher {
@apply text-center mb-6 mt-4;
@screen sm {
@apply mt-2;
}
a {
@apply mx-2;
&.active {
@apply font-medium;
color: var(--black);
}
}
}
}
/* Header */
.header {
@apply pt-4 my-2 flex flex-col items-center content-center flex-no-wrap;
@screen lg {
@apply flex-row items-stretch;
}
.logo-container {
@apply flex-none;
}
.logo {
@apply h-10;
}
.title {
@apply font-normal mx-4 my-2 text-xl flex-none;
}
.subscribe-container {
@apply flex-1 text-right my-2;
@screen lg {
@apply my-0;
}
.modal-container {
background-color: rgba(0, 0, 0, 0.5);
@apply fixed z-50 pin overflow-auto flex;
}
.modal-body {
background-color: var(--white);
/* @apply fixed shadow-inner max-w-md pin-b pin-x align-top m-auto justify-end p-8 w-full flex flex-col; */
@apply fixed shadow-inner max-w-md pin-b pin-x align-top m-auto justify-end w-full flex flex-col rounded-t;
@screen md {
@apply justify-center rounded h-auto shadow relative rounded;
}
.tabs-header {
@apply flex flex-col flex-no-wrap items-stretch content-center justify-between pt-2;
@screen md {
@apply flex-row;
}
> span {
color: var(--grey-dark);
@apply flex-1 text-center font-medium py-3 cursor-pointer;
&:hover {
color: var(--grey-darkest);
}
&.active {
color: var(--black);
@apply flex-1 text-center font-bold;
@screen md {
border-bottom-color: var(--black);
@apply border-b-2 font-semibold;
}
}
}
}
.tabs-container {
@apply flex flex-col items-center py-6;
> div {
@apply flex flex-col items-center py-6 text-center;
p {
@apply my-4;
}
}
}
}
.modal-title {
@apply my-4 px-4;
h1 {
@apply text-left font-medium text-2xl mb-4;
@screen md {
@apply text-center;
}
}
p {
color: var(--grey-darkest);
@apply text-center;
}
.icon {
@apply absolute pin-t pin-r pt-4 px-4;
.svg-icon {
color: var(--grey-dark);
@apply cursor-pointer;
}
}
}
}
}