261 lines
4.1 KiB
CSS
261 lines
4.1 KiB
CSS
@font-face {
|
|
src: url('ircfmt.woff2') format('woff2');
|
|
font-family: 'IRC Formatting';
|
|
font-weight: normal;
|
|
font-style: normal;
|
|
}
|
|
body {
|
|
margin: 0;
|
|
padding: 0;
|
|
/* Firefox only renders C0 within the textarea, why? */
|
|
font-family: 'IRC Formatting', sans-serif;
|
|
font-size: clamp(0.5rem, 2vw, 1rem);
|
|
}
|
|
.xP {
|
|
display: flex;
|
|
flex-direction: column;
|
|
overflow: hidden;
|
|
height: 100vh;
|
|
/* https://caniuse.com/viewport-unit-variants */
|
|
height: 100dvh;
|
|
}
|
|
|
|
.overlay {
|
|
padding: .6em .9em;
|
|
background: #eee;
|
|
border: 1px outset #eee;
|
|
position: absolute;
|
|
left: 50%;
|
|
top: 50%;
|
|
transform: translate(-50%, -50%);
|
|
text-align: center;
|
|
z-index: 1;
|
|
}
|
|
.title, .status {
|
|
padding: .05em .3em;
|
|
background: #eee;
|
|
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: baseline;
|
|
column-gap: .3em;
|
|
|
|
position: relative;
|
|
border-top: 3px solid #ccc;
|
|
border-bottom: 2px solid #888;
|
|
}
|
|
.title {
|
|
/* To approximate right-aligned space-between. */
|
|
flex-direction: row-reverse;
|
|
}
|
|
.title:before, .status:before {
|
|
content: " ";
|
|
position: absolute;
|
|
left: 0;
|
|
right: 0;
|
|
height: 2px;
|
|
top: -2px;
|
|
background: #fff;
|
|
}
|
|
.title:after, .status:after {
|
|
content: " ";
|
|
position: absolute;
|
|
left: 0;
|
|
right: 0;
|
|
height: 1px;
|
|
bottom: -1px;
|
|
background: #ccc;
|
|
}
|
|
|
|
.toolbar {
|
|
display: flex;
|
|
align-items: baseline;
|
|
margin-right: -.3em;
|
|
}
|
|
.indicator {
|
|
margin: 0 .3em;
|
|
}
|
|
button {
|
|
font: inherit;
|
|
background: transparent;
|
|
border: 1px solid transparent;
|
|
padding: 0 .3em;
|
|
}
|
|
button:focus {
|
|
border: 1px dotted #000;
|
|
}
|
|
button:hover {
|
|
border-left: 1px solid #fff;
|
|
border-top: 1px solid #fff;
|
|
border-right: 1px solid #888;
|
|
border-bottom: 1px solid #888;
|
|
}
|
|
button:hover:active {
|
|
border-left: 1px solid #888;
|
|
border-top: 1px solid #888;
|
|
border-right: 1px solid #fff;
|
|
border-bottom: 1px solid #fff;
|
|
}
|
|
|
|
.middle {
|
|
flex: auto;
|
|
display: flex;
|
|
flex-direction: row;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.list {
|
|
overflow-y: auto;
|
|
border-right: 2px solid #ccc;
|
|
min-width: 10em;
|
|
flex-shrink: 0;
|
|
}
|
|
.item {
|
|
padding: .05em .3em;
|
|
cursor: default;
|
|
}
|
|
.item.highlighted {
|
|
color: #ff5f00;
|
|
}
|
|
.item.activity {
|
|
font-weight: bold;
|
|
}
|
|
.item:hover {
|
|
background: #f8f8f8;
|
|
}
|
|
.item.current {
|
|
font-style: italic;
|
|
background: #eee;
|
|
}
|
|
|
|
/* Only Firefox currently supports align-content: safe end, thus this. */
|
|
.buffer-container {
|
|
flex: auto;
|
|
display: flex;
|
|
flex-direction: column;
|
|
overflow: hidden;
|
|
position: relative;
|
|
}
|
|
.filler {
|
|
flex: auto;
|
|
}
|
|
.buffer {
|
|
display: grid;
|
|
grid-template-columns: max-content minmax(0, 1fr);
|
|
overflow-y: auto;
|
|
}
|
|
.log {
|
|
font-family: monospace;
|
|
overflow-y: auto;
|
|
}
|
|
.log, .content, .completions {
|
|
/* Note: https://bugs.chromium.org/p/chromium/issues/detail?id=1261435 */
|
|
white-space: break-spaces;
|
|
overflow-wrap: break-word;
|
|
}
|
|
.log, .buffer .content {
|
|
padding: .1em .3em;
|
|
}
|
|
|
|
.leaked {
|
|
opacity: 50%;
|
|
}
|
|
.date {
|
|
padding: .3em;
|
|
grid-column: span 2;
|
|
font-weight: bold;
|
|
}
|
|
.unread {
|
|
grid-column: span 2;
|
|
border-top: 1px solid #ff5f00;
|
|
}
|
|
.time {
|
|
padding: .1em .3em;
|
|
background: #f8f8f8;
|
|
color: #bbb;
|
|
border-right: 1px solid #ccc;
|
|
}
|
|
.time.hidden:after {
|
|
border-top: .2em dotted #ccc;
|
|
display: block;
|
|
width: 50%;
|
|
margin: 0 auto;
|
|
content: "";
|
|
}
|
|
.mark {
|
|
padding-right: .3em;
|
|
text-align: center;
|
|
display: inline-block;
|
|
min-width: 2em;
|
|
}
|
|
.mark.error {
|
|
color: red;
|
|
}
|
|
.mark.join {
|
|
color: green;
|
|
}
|
|
.mark.part {
|
|
color: red;
|
|
}
|
|
.mark.action {
|
|
color: darkred;
|
|
}
|
|
.content .b {
|
|
font-weight: bold;
|
|
}
|
|
.content .i {
|
|
font-style: italic;
|
|
}
|
|
.content .u {
|
|
text-decoration: underline;
|
|
}
|
|
.content .s {
|
|
text-decoration: line-through;
|
|
}
|
|
.content .m {
|
|
font-family: monospace;
|
|
}
|
|
|
|
.completions {
|
|
position: absolute;
|
|
left: 0;
|
|
right: 0;
|
|
bottom: 0;
|
|
background: #fff;
|
|
padding: .05em .3em;
|
|
border-top: 1px solid #888;
|
|
|
|
max-height: 50%;
|
|
display: flex;
|
|
flex-flow: column wrap;
|
|
column-gap: .6em;
|
|
overflow-x: auto;
|
|
}
|
|
.input {
|
|
flex-shrink: 0;
|
|
border: 2px inset #eee;
|
|
overflow: hidden;
|
|
resize: vertical;
|
|
display: flex;
|
|
}
|
|
.input:focus-within {
|
|
border-color: #ff5f00;
|
|
}
|
|
.prompt {
|
|
padding: .05em .3em;
|
|
border-right: 1px solid #ccc;
|
|
background: #f8f8f8;
|
|
font-weight: bold;
|
|
}
|
|
textarea {
|
|
font: inherit;
|
|
padding: .05em .3em;
|
|
margin: 0;
|
|
border: 0;
|
|
flex-grow: 1;
|
|
resize: none;
|
|
}
|
|
textarea:focus {
|
|
outline: none;
|
|
}
|