Ethan Dalool
84d966ff3d
No visual change now, but writing it down helps communicate intention with regards to the size of other elements.
246 lines
4.1 KiB
CSS
246 lines
4.1 KiB
CSS
/*
|
|
These properties are used by javascript functions.
|
|
getComputedStyle(document.documentElement).getPropertyValue("--narrow").trim() === "1"
|
|
*/
|
|
@media screen and (min-width: 800px)
|
|
{
|
|
:root
|
|
{
|
|
--wide: 1;
|
|
}
|
|
}
|
|
@media screen and (max-width: 800px)
|
|
{
|
|
:root
|
|
{
|
|
--narrow: 1;
|
|
}
|
|
}
|
|
|
|
.hidden
|
|
{
|
|
display: none !important;
|
|
}
|
|
|
|
html
|
|
{
|
|
height: 100vh;
|
|
box-sizing: border-box;
|
|
color: var(--color_text_normal);
|
|
}
|
|
|
|
*, *:before, *:after
|
|
{
|
|
box-sizing: inherit;
|
|
color: inherit;
|
|
}
|
|
|
|
body
|
|
{
|
|
display: grid;
|
|
grid-template:
|
|
"header" auto
|
|
"content_body" 1fr
|
|
/1fr;
|
|
|
|
min-height: 100%;
|
|
margin: 0;
|
|
|
|
background-color: var(--color_primary);
|
|
}
|
|
|
|
a
|
|
{
|
|
color: var(--color_text_link);
|
|
cursor: pointer;
|
|
}
|
|
|
|
input, select, textarea
|
|
{
|
|
background-color: var(--color_textfields);
|
|
}
|
|
|
|
input::placeholder, textarea::placeholder
|
|
{
|
|
color: var(--color_text_placeholder);
|
|
opacity: 1;
|
|
}
|
|
|
|
pre
|
|
{
|
|
white-space: pre-line;
|
|
}
|
|
|
|
.bold
|
|
{
|
|
font-weight: bold;
|
|
}
|
|
|
|
#header
|
|
{
|
|
grid-area: header;
|
|
display: flex;
|
|
flex-direction: row;
|
|
|
|
height: 18px;
|
|
margin: 8px;
|
|
background-color: var(--color_transparency);
|
|
}
|
|
#header button
|
|
{
|
|
border: 0;
|
|
cursor: pointer;
|
|
background-color: transparent;
|
|
}
|
|
.header_element
|
|
{
|
|
flex: 1;
|
|
display: flex;
|
|
justify-content: center;
|
|
}
|
|
.header_element:hover
|
|
{
|
|
background-color: var(--color_transparency);
|
|
}
|
|
|
|
#content_body
|
|
{
|
|
grid-area: content_body;
|
|
display: grid;
|
|
grid-auto-rows: min-content;
|
|
grid-gap: 8px;
|
|
|
|
/*
|
|
8px all around except the top, where the header already has a margin.
|
|
*/
|
|
margin: 8px;
|
|
margin-top: 0;
|
|
}
|
|
|
|
button,
|
|
button *
|
|
{
|
|
color: var(--color_text_normal);
|
|
}
|
|
button:disabled
|
|
{
|
|
background-color: #cccccc !important;
|
|
}
|
|
button
|
|
{
|
|
border-top: 2px solid var(--color_highlight);
|
|
border-left: 2px solid var(--color_highlight);
|
|
border-right: 2px solid var(--color_shadow);
|
|
border-bottom: 2px solid var(--color_shadow);
|
|
}
|
|
button:active
|
|
{
|
|
border-top: 2px solid var(--color_shadow);
|
|
border-left: 2px solid var(--color_shadow);
|
|
border-right: 2px solid var(--color_highlight);
|
|
border-bottom: 2px solid var(--color_highlight);
|
|
}
|
|
.gray_button
|
|
{
|
|
background-color: #cccccc;
|
|
}
|
|
.green_button
|
|
{
|
|
background-color: #6df16f;
|
|
}
|
|
.red_button
|
|
{
|
|
background-color: #ff4949;
|
|
}
|
|
.yellow_button
|
|
{
|
|
background-color: #ffea57;
|
|
}
|
|
|
|
.tabbed_container
|
|
{
|
|
display: flex;
|
|
flex-direction: column;
|
|
}
|
|
.tabbed_container .tab_buttons
|
|
{
|
|
display: flex;
|
|
flex-direction: row;
|
|
flex-wrap: wrap;
|
|
}
|
|
.tabbed_container .tab_button
|
|
{
|
|
/* outline: none; prevents the blue outline left after clicking on it */
|
|
outline: none;
|
|
flex: 1;
|
|
font-family: inherit;
|
|
font-size: 1.3em;
|
|
border-radius: 8px 8px 0 0;
|
|
background-color: transparent;
|
|
}
|
|
.tabbed_container .tab_button:hover
|
|
{
|
|
background-color: var(--color_transparency);
|
|
}
|
|
.tabbed_container .tab,
|
|
.tabbed_container .tab_button
|
|
{
|
|
border-width: 2px;
|
|
border-style: solid;
|
|
border-color: #888;
|
|
}
|
|
.tabbed_container .tab_button.tab_button_inactive
|
|
{
|
|
border-top-color: transparent;
|
|
border-left-color: transparent;
|
|
border-right-color: transparent;
|
|
}
|
|
.tabbed_container .tab_button.tab_button_active
|
|
{
|
|
background-color: var(--color_transparency);
|
|
border-bottom-color: transparent;
|
|
}
|
|
.tabbed_container .tab
|
|
{
|
|
/* This will be set by javascript after the tabs have been initialized.
|
|
That way, the tab panes don't have a missing top border while the dom is
|
|
loading or if javascript is disabled.
|
|
/*border-top-color: transparent;*/
|
|
}
|
|
|
|
#message_area
|
|
{
|
|
display: grid;
|
|
grid-auto-flow: row;
|
|
grid-auto-rows: min-content;
|
|
grid-gap: 8px;
|
|
padding: 8px;
|
|
overflow-y: auto;
|
|
background-color: var(--color_transparency);
|
|
}
|
|
#message_area > :last-child
|
|
{
|
|
/*
|
|
For some reason, the message_area's 8px padding doesn't apply to the bottom
|
|
when the container is scrolled.
|
|
*/
|
|
margin-bottom: 8px;
|
|
}
|
|
|
|
.message_bubble
|
|
{
|
|
padding: 2px;
|
|
word-wrap: break-word;
|
|
}
|
|
.message_bubble *
|
|
{
|
|
color: var(--color_text_bubble);
|
|
}
|
|
.message_positive
|
|
{
|
|
background-color: #afa;
|
|
}
|
|
.message_negative
|
|
{
|
|
background-color: #faa;
|
|
}
|