2021-10-24 23:48:06 +00:00
|
|
|
/*
|
|
|
|
This file contains styles that I want on almost all webpages that I make,
|
|
|
|
not specific to one project.
|
|
|
|
*/
|
|
|
|
|
2021-05-20 06:43:08 +00:00
|
|
|
/*
|
|
|
|
These properties are used by javascript functions.
|
|
|
|
getComputedStyle(document.documentElement).getPropertyValue("--narrow").trim() === "1"
|
|
|
|
*/
|
2020-09-19 03:53:10 +00:00
|
|
|
@media screen and (min-width: 800px)
|
|
|
|
{
|
|
|
|
:root
|
|
|
|
{
|
|
|
|
--wide: 1;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@media screen and (max-width: 800px)
|
|
|
|
{
|
|
|
|
:root
|
|
|
|
{
|
|
|
|
--narrow: 1;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2020-09-03 18:50:16 +00:00
|
|
|
.hidden
|
|
|
|
{
|
|
|
|
display: none !important;
|
2017-12-16 22:13:02 +00:00
|
|
|
}
|
2018-09-23 22:08:39 +00:00
|
|
|
|
2018-10-22 01:46:27 +00:00
|
|
|
html
|
|
|
|
{
|
|
|
|
height: 100vh;
|
2019-09-10 22:32:35 +00:00
|
|
|
box-sizing: border-box;
|
2021-01-08 03:24:17 +00:00
|
|
|
color: var(--color_text_normal);
|
2019-09-10 22:32:35 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
*, *:before, *:after
|
|
|
|
{
|
|
|
|
box-sizing: inherit;
|
2021-01-08 03:24:17 +00:00
|
|
|
color: inherit;
|
2018-10-22 01:46:27 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
body
|
|
|
|
{
|
2020-09-03 18:50:16 +00:00
|
|
|
display: grid;
|
|
|
|
grid-template:
|
|
|
|
"header" auto
|
|
|
|
"content_body" 1fr
|
|
|
|
/1fr;
|
|
|
|
|
2021-01-02 19:35:46 +00:00
|
|
|
min-height: 100%;
|
2018-10-22 01:46:27 +00:00
|
|
|
margin: 0;
|
|
|
|
|
2020-09-03 18:50:16 +00:00
|
|
|
background-color: var(--color_primary);
|
|
|
|
}
|
2020-01-15 00:17:59 +00:00
|
|
|
|
|
|
|
a
|
|
|
|
{
|
|
|
|
color: var(--color_text_link);
|
|
|
|
cursor: pointer;
|
|
|
|
}
|
2018-10-22 01:46:27 +00:00
|
|
|
|
2018-11-05 02:36:17 +00:00
|
|
|
input, select, textarea
|
|
|
|
{
|
2020-06-25 17:03:50 +00:00
|
|
|
background-color: var(--color_textfields);
|
2018-11-05 02:36:17 +00:00
|
|
|
}
|
|
|
|
|
2021-12-15 04:30:38 +00:00
|
|
|
input:disabled,
|
|
|
|
select:disabled,
|
|
|
|
textarea:disabled
|
|
|
|
{
|
|
|
|
background-color: var(--color_text_placeholder);
|
|
|
|
}
|
|
|
|
|
2018-11-05 02:36:17 +00:00
|
|
|
input::placeholder, textarea::placeholder
|
2018-10-22 01:46:27 +00:00
|
|
|
{
|
|
|
|
color: var(--color_text_placeholder);
|
|
|
|
opacity: 1;
|
|
|
|
}
|
|
|
|
|
2020-09-03 18:50:16 +00:00
|
|
|
pre
|
2016-09-18 08:33:46 +00:00
|
|
|
{
|
2020-09-03 18:50:16 +00:00
|
|
|
white-space: pre-line;
|
2016-09-18 08:33:46 +00:00
|
|
|
}
|
2018-10-22 01:46:27 +00:00
|
|
|
|
2020-09-06 00:47:29 +00:00
|
|
|
.bold
|
|
|
|
{
|
|
|
|
font-weight: bold;
|
|
|
|
}
|
|
|
|
|
2016-09-18 08:33:46 +00:00
|
|
|
#header
|
|
|
|
{
|
2018-09-23 22:08:39 +00:00
|
|
|
grid-area: header;
|
2020-09-03 18:50:16 +00:00
|
|
|
display: flex;
|
|
|
|
flex-direction: row;
|
2017-03-31 02:34:39 +00:00
|
|
|
|
2021-05-31 02:18:16 +00:00
|
|
|
height: 18px;
|
2018-10-22 01:46:27 +00:00
|
|
|
margin: 8px;
|
2020-06-25 17:03:50 +00:00
|
|
|
background-color: var(--color_transparency);
|
2018-09-23 22:08:39 +00:00
|
|
|
}
|
2018-08-18 05:23:40 +00:00
|
|
|
#header button
|
|
|
|
{
|
|
|
|
border: 0;
|
|
|
|
cursor: pointer;
|
2018-10-22 01:46:27 +00:00
|
|
|
background-color: transparent;
|
2018-08-18 05:23:40 +00:00
|
|
|
}
|
2016-09-18 08:33:46 +00:00
|
|
|
.header_element
|
|
|
|
{
|
|
|
|
flex: 1;
|
2020-09-03 18:50:16 +00:00
|
|
|
display: flex;
|
2017-03-31 02:34:39 +00:00
|
|
|
justify-content: center;
|
2016-09-18 08:33:46 +00:00
|
|
|
}
|
|
|
|
.header_element:hover
|
|
|
|
{
|
2020-09-03 18:50:16 +00:00
|
|
|
background-color: var(--color_transparency);
|
2018-11-13 06:15:59 +00:00
|
|
|
}
|
|
|
|
|
2020-09-03 18:50:16 +00:00
|
|
|
#content_body
|
2018-11-13 06:15:59 +00:00
|
|
|
{
|
2020-09-03 18:50:16 +00:00
|
|
|
grid-area: content_body;
|
2018-11-13 06:15:59 +00:00
|
|
|
display: grid;
|
|
|
|
grid-auto-rows: min-content;
|
2020-09-03 18:50:16 +00:00
|
|
|
grid-gap: 8px;
|
2018-11-13 06:15:59 +00:00
|
|
|
|
2022-03-09 01:30:17 +00:00
|
|
|
margin: 8px;
|
|
|
|
}
|
|
|
|
#header:not(.hidden) + #content_body
|
|
|
|
{
|
2020-09-19 04:12:28 +00:00
|
|
|
/*
|
2022-03-09 01:30:17 +00:00
|
|
|
The header already has a margin.
|
2020-09-19 04:12:28 +00:00
|
|
|
*/
|
2020-09-03 18:50:16 +00:00
|
|
|
margin-top: 0;
|
2019-08-14 20:49:08 +00:00
|
|
|
}
|
2017-12-16 22:13:02 +00:00
|
|
|
|
2022-03-09 01:04:44 +00:00
|
|
|
.panel
|
|
|
|
{
|
|
|
|
background-color: var(--color_transparency);
|
|
|
|
border-radius: 5px;
|
|
|
|
padding: 8px;
|
|
|
|
}
|
|
|
|
|
2018-10-22 01:46:27 +00:00
|
|
|
button,
|
|
|
|
button *
|
|
|
|
{
|
2020-09-03 18:50:16 +00:00
|
|
|
color: var(--color_text_normal);
|
2018-10-22 01:46:27 +00:00
|
|
|
}
|
2019-06-15 20:26:39 +00:00
|
|
|
button:disabled
|
|
|
|
{
|
|
|
|
background-color: #cccccc !important;
|
|
|
|
}
|
2020-08-08 04:07:30 +00:00
|
|
|
button
|
|
|
|
{
|
2020-09-09 22:57:53 +00:00
|
|
|
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);
|
2020-08-08 04:07:30 +00:00
|
|
|
}
|
|
|
|
button:active
|
|
|
|
{
|
2020-09-09 22:57:53 +00:00
|
|
|
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);
|
2020-08-08 04:07:30 +00:00
|
|
|
}
|
2018-07-29 03:18:10 +00:00
|
|
|
.gray_button
|
|
|
|
{
|
|
|
|
background-color: #cccccc;
|
|
|
|
}
|
2017-04-23 04:21:44 +00:00
|
|
|
.green_button
|
2016-09-18 08:33:46 +00:00
|
|
|
{
|
|
|
|
background-color: #6df16f;
|
|
|
|
}
|
2017-04-23 04:21:44 +00:00
|
|
|
.red_button
|
|
|
|
{
|
|
|
|
background-color: #ff4949;
|
|
|
|
}
|
2017-12-16 22:13:02 +00:00
|
|
|
.yellow_button
|
2017-04-23 04:21:44 +00:00
|
|
|
{
|
2017-12-16 22:13:02 +00:00
|
|
|
background-color: #ffea57;
|
|
|
|
}
|
|
|
|
|
2020-09-03 18:54:14 +00:00
|
|
|
.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;
|
2020-09-03 19:04:18 +00:00
|
|
|
background-color: transparent;
|
|
|
|
}
|
|
|
|
.tabbed_container .tab_button:hover
|
|
|
|
{
|
|
|
|
background-color: var(--color_transparency);
|
2020-09-03 18:54:14 +00:00
|
|
|
}
|
|
|
|
.tabbed_container .tab,
|
|
|
|
.tabbed_container .tab_button
|
|
|
|
{
|
|
|
|
border-width: 2px;
|
|
|
|
border-style: solid;
|
|
|
|
border-color: #888;
|
|
|
|
}
|
2020-09-03 19:04:18 +00:00
|
|
|
.tabbed_container .tab_button.tab_button_inactive
|
2020-09-03 18:54:14 +00:00
|
|
|
{
|
|
|
|
border-top-color: transparent;
|
|
|
|
border-left-color: transparent;
|
|
|
|
border-right-color: transparent;
|
|
|
|
}
|
2020-09-03 19:04:18 +00:00
|
|
|
.tabbed_container .tab_button.tab_button_active
|
2020-09-03 18:54:14 +00:00
|
|
|
{
|
2020-09-03 19:04:18 +00:00
|
|
|
background-color: var(--color_transparency);
|
2020-09-03 18:54:14 +00:00
|
|
|
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;*/
|
|
|
|
}
|
|
|
|
|
2016-12-21 09:11:50 +00:00
|
|
|
#message_area
|
|
|
|
{
|
2020-09-15 22:03:11 +00:00
|
|
|
display: grid;
|
|
|
|
grid-auto-flow: row;
|
|
|
|
grid-auto-rows: min-content;
|
|
|
|
grid-gap: 8px;
|
|
|
|
padding: 8px;
|
2017-03-31 02:34:39 +00:00
|
|
|
overflow-y: auto;
|
2020-06-25 17:03:50 +00:00
|
|
|
background-color: var(--color_transparency);
|
2016-12-21 09:11:50 +00:00
|
|
|
}
|
2020-09-15 22:03:11 +00:00
|
|
|
#message_area > :last-child
|
2016-09-18 08:33:46 +00:00
|
|
|
{
|
2020-09-15 22:03:11 +00:00
|
|
|
/*
|
|
|
|
For some reason, the message_area's 8px padding doesn't apply to the bottom
|
|
|
|
when the container is scrolled.
|
|
|
|
*/
|
|
|
|
margin-bottom: 8px;
|
|
|
|
}
|
2017-03-31 02:34:39 +00:00
|
|
|
|
2020-09-15 22:03:11 +00:00
|
|
|
.message_bubble
|
|
|
|
{
|
|
|
|
padding: 2px;
|
2017-03-04 06:30:57 +00:00
|
|
|
word-wrap: break-word;
|
2016-09-18 08:33:46 +00:00
|
|
|
}
|
2019-08-14 20:49:08 +00:00
|
|
|
.message_bubble *
|
|
|
|
{
|
2020-09-25 23:27:47 +00:00
|
|
|
color: var(--color_text_bubble);
|
2019-08-14 20:49:08 +00:00
|
|
|
}
|
2016-12-21 09:11:50 +00:00
|
|
|
.message_positive
|
2016-09-18 08:33:46 +00:00
|
|
|
{
|
|
|
|
background-color: #afa;
|
|
|
|
}
|
2016-12-21 09:11:50 +00:00
|
|
|
.message_negative
|
2016-09-18 08:33:46 +00:00
|
|
|
{
|
|
|
|
background-color: #faa;
|
2016-11-07 02:00:30 +00:00
|
|
|
}
|