react-amiga-guru-meditation
Version:
A React Error Boundary styled like the Amiga Guru Meditation — accessible, themeable, zero runtime dependencies, ARIA-compliant, CSS variables theming.
106 lines • 3.16 kB
CSS
/* src/AmigaErrorBoundary.module.css */
.AmigaErrorBoundary_root {
position: relative;
z-index: var(--ragm-z-index, 9999);
box-sizing: border-box;
border: var(--ragm-border-width, 6px) var(--ragm-border-style, solid) var(--ragm-fg, #ff2222);
background-color: var(--ragm-bg, #000000);
color: var(--ragm-fg, #ff2222);
padding: var(--ragm-padding, 24px);
text-align: center;
font-family: var(--ragm-font-family, "Times New Roman", Times, serif);
font-size: var(--ragm-font-size, 18px);
font-weight: var(--ragm-font-weight, 400);
line-height: var(--ragm-line-height, 1.4);
animation-name: AmigaErrorBoundary_ragm-blink;
animation-duration: var(--ragm-blink-duration, 1s);
animation-timing-function: step-end;
animation-iteration-count: infinite;
animation-direction: alternate;
}
.AmigaErrorBoundary_root * {
box-sizing: border-box;
}
.AmigaErrorBoundary_noBlink {
animation: none;
}
.AmigaErrorBoundary_portal {
position: fixed;
inset: 0;
z-index: var(--ragm-z-index, 9999);
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
padding: var(--ragm-portal-padding, 0);
background-color: var(--ragm-bg, #000000);
color: var(--ragm-fg, #ff2222);
border: var(--ragm-border-width, 6px) var(--ragm-border-style, solid) var(--ragm-fg, #ff2222);
font-family: var(--ragm-font-family, "Times New Roman", Times, serif);
font-size: var(--ragm-font-size, 18px);
font-weight: var(--ragm-font-weight, 400);
line-height: var(--ragm-line-height, 1.4);
text-align: center;
animation-name: AmigaErrorBoundary_ragm-blink;
animation-duration: var(--ragm-blink-duration, 1s);
animation-timing-function: step-end;
animation-iteration-count: infinite;
animation-direction: alternate;
}
.AmigaErrorBoundary_portal .AmigaErrorBoundary_root {
border: 0;
background: transparent;
animation: none;
padding: var(--ragm-padding, 24px);
max-width: var(--ragm-max-width, 760px);
width: 100%;
}
.AmigaErrorBoundary_title {
margin: 0 0 12px;
}
.AmigaErrorBoundary_message {
margin: 0 0 12px;
}
.AmigaErrorBoundary_code {
font-family: var(--ragm-mono-family, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);
word-break: break-word;
}
.AmigaErrorBoundary_details {
text-align: left;
margin: 16px auto 0;
padding: 12px;
border: 1px dashed var(--ragm-fg, #ff2222);
font-size: 0.85em;
max-width: var(--ragm-details-max-width, 100%);
}
.AmigaErrorBoundary_details summary {
cursor: pointer;
font-weight: bold;
margin-bottom: 8px;
user-select: none;
}
.AmigaErrorBoundary_details pre {
margin: 0;
white-space: pre-wrap;
word-break: break-word;
font-family: var(--ragm-mono-family, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);
font-size: 12px;
}
@keyframes AmigaErrorBoundary_ragm-blink {
0% {
border-color: var(--ragm-fg, #ff2222);
}
50% {
border-color: var(--ragm-bg, #000000);
}
100% {
border-color: var(--ragm-fg, #ff2222);
}
}
@media (prefers-reduced-motion: reduce) {
.AmigaErrorBoundary_root,
.AmigaErrorBoundary_portal {
animation: none;
}
}
/*# sourceMappingURL=index.css.map */