| 
									
										
										
										
											2022-06-09 12:51:19 +02:00
										 |  |  | /* | 
					
						
							| 
									
										
										
										
											2022-06-21 10:48:42 +02:00
										 |  |  | 	GoToSocial | 
					
						
							| 
									
										
										
										
											2024-01-13 16:33:53 +01:00
										 |  |  | 	Copyright (C) GoToSocial Authors admin@gotosocial.org | 
					
						
							|  |  |  | 	SPDX-License-Identifier: AGPL-3.0-or-later | 
					
						
							| 
									
										
										
										
											2022-06-09 12:51:19 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-06-21 10:48:42 +02:00
										 |  |  | 	This program is free software: you can redistribute it and/or modify | 
					
						
							|  |  |  | 	it under the terms of the GNU Affero General Public License as published by | 
					
						
							|  |  |  | 	the Free Software Foundation, either version 3 of the License, or | 
					
						
							|  |  |  | 	(at your option) any later version. | 
					
						
							| 
									
										
										
										
											2022-06-09 12:51:19 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-06-21 10:48:42 +02:00
										 |  |  | 	This program is distributed in the hope that it will be useful, | 
					
						
							|  |  |  | 	but WITHOUT ANY WARRANTY; without even the implied warranty of | 
					
						
							|  |  |  | 	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
					
						
							|  |  |  | 	GNU Affero General Public License for more details. | 
					
						
							| 
									
										
										
										
											2022-06-09 12:51:19 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-06-21 10:48:42 +02:00
										 |  |  | 	You should have received a copy of the GNU Affero General Public License | 
					
						
							|  |  |  | 	along with this program.  If not, see <http://www.gnu.org/licenses/>. | 
					
						
							| 
									
										
										
										
											2022-06-09 12:51:19 +02:00
										 |  |  | */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-01-05 13:39:31 +01:00
										 |  |  | /*************************************** | 
					
						
							|  |  |  | ***** SECTION 0: IMPORTS AND FONTS ***** | 
					
						
							|  |  |  | ****************************************/ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-08-08 10:40:51 +02:00
										 |  |  | @import "modern-normalize/modern-normalize.css"; | 
					
						
							| 
									
										
										
										
											2025-05-30 11:06:08 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | /* Default to dark prism, choose light if prefers-color-scheme light */ | 
					
						
							|  |  |  | @import url("_prism-dark.css"); | 
					
						
							|  |  |  | @import url("_prism-light.css") screen and (prefers-color-scheme: light); | 
					
						
							| 
									
										
										
										
											2025-04-14 12:57:58 +02:00
										 |  |  | @import "./_fonts.css"; | 
					
						
							| 
									
										
										
										
											2022-07-04 16:23:59 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-12-27 11:23:52 +01:00
										 |  |  | /************************************* | 
					
						
							|  |  |  | ***** SECTION 1: HANDY VARIABLES ***** | 
					
						
							|  |  |  | **************************************/ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* | 
					
						
							|  |  |  | 	Standard border radius | 
					
						
							|  |  |  | 	for nice squircles. | 
					
						
							|  |  |  | */ | 
					
						
							| 
									
										
										
										
											2022-06-21 10:48:42 +02:00
										 |  |  | $br: 0.4rem; | 
					
						
							| 
									
										
										
										
											2023-12-27 11:23:52 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | /* | 
					
						
							|  |  |  | 	Border radius for items that | 
					
						
							|  |  |  | 	are framed/bordered inside | 
					
						
							|  |  |  | 	something with $br, eg avatar, | 
					
						
							|  |  |  | 	header img, etc. | 
					
						
							|  |  |  | */ | 
					
						
							| 
									
										
										
										
											2022-09-29 12:02:41 +02:00
										 |  |  | $br-inner: 0.2rem;  | 
					
						
							| 
									
										
										
										
											2022-06-21 10:48:42 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-12-27 11:23:52 +01:00
										 |  |  | /* | 
					
						
							|  |  |  | 	Fork-Awesome 'fa-fw' fixed icon width; | 
					
						
							|  |  |  | 	keep in sync with https://github.com/ForkAwesome/Fork-Awesome/blob/a99579ae3e735ee70e51ed62dfcee3172b5b2db7/css/fork-awesome.css#L50 | 
					
						
							| 
									
										
										
										
											2023-05-11 17:46:32 +02:00
										 |  |  | */ | 
					
						
							|  |  |  | $fa-fw: 1.28571429em; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-04-09 14:14:20 +02:00
										 |  |  | /* | 
					
						
							|  |  |  | 	Outline to give links when they're | 
					
						
							|  |  |  | 	focused (ie., by clicking or tabbing to them). | 
					
						
							|  |  |  | */ | 
					
						
							|  |  |  | $link-focus-outline: 0.25rem dotted $link-fg; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* | 
					
						
							|  |  |  | 	Outline to give buttons when they're | 
					
						
							|  |  |  | 	focused (ie., by clicking or tabbing to them). | 
					
						
							|  |  |  | */ | 
					
						
							|  |  |  | $button-focus-outline: 0.25rem dashed $button-focus-border; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* | 
					
						
							|  |  |  | 	Outline to give input elements like radio buttons | 
					
						
							|  |  |  | 	and checkboxes when they're focused (ie., by clicking | 
					
						
							|  |  |  | 	or tabbing to them). | 
					
						
							|  |  |  | */ | 
					
						
							|  |  |  | $input-clickable-focus-outline: 0.25rem dashed $input-focus-border; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* | 
					
						
							|  |  |  | 	Outline to give summary elements when they're | 
					
						
							|  |  |  | 	focused (ie., by clicking or tabbing to them). | 
					
						
							|  |  |  | */ | 
					
						
							|  |  |  | $summary-focus-outline: 0.25rem dotted $link-fg; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* | 
					
						
							|  |  |  | 	Outline to give <pre> elements when they're | 
					
						
							|  |  |  | 	focused (ie., by clicking or tabbing to them). | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	This is used when we've got a preformatted | 
					
						
							|  |  |  | 	code block with a scroll bar inside of it. | 
					
						
							|  |  |  | */ | 
					
						
							|  |  |  | $pre-focus-outline: 0.25rem dashed $link-fg; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-12-27 11:23:52 +01:00
										 |  |  | /****************************************** | 
					
						
							|  |  |  | ***** SECTION 2: BASIC GLOBAL STYLING ***** | 
					
						
							|  |  |  | *******************************************/ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-06-21 19:46:10 +02:00
										 |  |  | html, body { | 
					
						
							|  |  |  | 	padding: 0; | 
					
						
							|  |  |  | 	margin: 0; | 
					
						
							| 
									
										
										
										
											2022-07-04 16:23:59 +02:00
										 |  |  | 	background: $bg; | 
					
						
							| 
									
										
										
										
											2021-06-21 19:46:10 +02:00
										 |  |  | 	color: $fg; | 
					
						
							| 
									
										
										
										
											2022-07-04 16:23:59 +02:00
										 |  |  | 	font-family: "Noto Sans", sans-serif; | 
					
						
							| 
									
										
										
										
											2022-09-29 12:02:41 +02:00
										 |  |  | 	scrollbar-color: $orange1 $gray3; | 
					
						
							| 
									
										
										
										
											2021-06-21 19:46:10 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | body { | 
					
						
							| 
									
										
										
										
											2022-06-09 12:51:19 +02:00
										 |  |  | 	line-height: 1.5em; | 
					
						
							|  |  |  | 	position: relative; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-07-04 16:23:59 +02:00
										 |  |  | a { | 
					
						
							| 
									
										
										
										
											2022-09-29 12:02:41 +02:00
										 |  |  | 	color: $link-fg; | 
					
						
							| 
									
										
										
										
											2025-04-09 14:14:20 +02:00
										 |  |  | 	&:focus-visible { | 
					
						
							|  |  |  | 		outline: $link-focus-outline; | 
					
						
							|  |  |  | 	} | 
					
						
							| 
									
										
										
										
											2022-07-04 16:23:59 +02:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2021-09-13 14:45:33 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-12-27 11:23:52 +01:00
										 |  |  | /* | 
					
						
							|  |  |  | 	Normalize margins of first and last children. | 
					
						
							|  |  |  | 	We generally don't want to open a paragraph or | 
					
						
							|  |  |  | 	paragraph-like element with a top margin or | 
					
						
							|  |  |  | 	close it with a bottom margin. | 
					
						
							|  |  |  | */ | 
					
						
							| 
									
										
										
										
											2022-07-04 16:23:59 +02:00
										 |  |  | main { | 
					
						
							| 
									
										
										
										
											2023-12-27 11:23:52 +01:00
										 |  |  | 	p:first-child, ol:first-child, ul:first-child { | 
					
						
							| 
									
										
										
										
											2022-07-04 16:23:59 +02:00
										 |  |  | 		margin-top: 0; | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-12-27 11:23:52 +01:00
										 |  |  | 	p:last-child, ol:last-child, ul:last-child { | 
					
						
							| 
									
										
										
										
											2022-07-04 16:23:59 +02:00
										 |  |  | 		margin-bottom: 0; | 
					
						
							|  |  |  | 	} | 
					
						
							| 
									
										
										
										
											2021-06-21 19:46:10 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-07-09 10:44:10 +02:00
										 |  |  | .button, button { | 
					
						
							| 
									
										
										
										
											2023-12-27 11:23:52 +01:00
										 |  |  | 	border-radius: $br-inner; | 
					
						
							| 
									
										
										
										
											2022-09-29 12:02:41 +02:00
										 |  |  | 	color: $button-fg; | 
					
						
							|  |  |  | 	background: $button-bg; | 
					
						
							| 
									
										
										
										
											2022-07-04 16:23:59 +02:00
										 |  |  | 	box-shadow: $boxshadow; | 
					
						
							| 
									
										
										
										
											2022-09-29 12:02:41 +02:00
										 |  |  | 	border: $button-border; | 
					
						
							| 
									
										
										
										
											2021-06-21 19:46:10 +02:00
										 |  |  | 	text-decoration: none; | 
					
						
							|  |  |  | 	font-size: 1.2rem; | 
					
						
							|  |  |  | 	font-weight: bold; | 
					
						
							|  |  |  | 	padding: 0.5rem; | 
					
						
							| 
									
										
										
										
											2021-07-09 10:44:10 +02:00
										 |  |  | 	border: none; | 
					
						
							|  |  |  | 	cursor: pointer; | 
					
						
							| 
									
										
										
										
											2022-07-08 02:01:00 -06:00
										 |  |  | 	text-align: center; | 
					
						
							|  |  |  | 	font-family: 'Noto Sans', sans-serif; | 
					
						
							| 
									
										
										
										
											2021-06-21 19:46:10 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-09-29 12:02:41 +02:00
										 |  |  | 	&.danger { | 
					
						
							|  |  |  | 		color: $button-danger-fg; | 
					
						
							|  |  |  | 		background: $button-danger-bg; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		&:hover { | 
					
						
							|  |  |  | 			background: $button-danger-hover-bg; | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-04-13 13:25:10 +02:00
										 |  |  | 	&:disabled, | 
					
						
							|  |  |  | 	&.disabled { | 
					
						
							| 
									
										
										
										
											2022-11-25 15:49:48 +01:00
										 |  |  | 		color: $white2; | 
					
						
							|  |  |  | 		background: $gray2; | 
					
						
							| 
									
										
										
										
											2024-04-13 13:25:10 +02:00
										 |  |  | 		cursor: not-allowed; | 
					
						
							| 
									
										
										
										
											2022-11-25 15:49:48 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | 		&:hover { | 
					
						
							|  |  |  | 			background: $gray3; | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-06-21 19:46:10 +02:00
										 |  |  | 	&:hover { | 
					
						
							| 
									
										
										
										
											2022-09-29 12:02:41 +02:00
										 |  |  | 		background: $button-hover-bg; | 
					
						
							| 
									
										
										
										
											2021-06-21 19:46:10 +02:00
										 |  |  | 	} | 
					
						
							| 
									
										
										
										
											2025-04-09 14:14:20 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	&:focus-visible { | 
					
						
							|  |  |  | 		outline: $button-focus-outline; | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | summary:focus-visible { | 
					
						
							|  |  |  | 	outline: $summary-focus-outline; | 
					
						
							| 
									
										
										
										
											2021-06-21 19:46:10 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-12-27 11:23:52 +01:00
										 |  |  | /* | 
					
						
							|  |  |  | 	Form styling - used in settings frontend as well. | 
					
						
							|  |  |  | */ | 
					
						
							|  |  |  | input, select, textarea, .input { | 
					
						
							|  |  |  | 	box-sizing: border-box; | 
					
						
							|  |  |  | 	border: 0.15rem solid $input-border; | 
					
						
							|  |  |  | 	border-radius: 0.1rem; | 
					
						
							|  |  |  | 	color: $fg; | 
					
						
							|  |  |  | 	background: $input-bg; | 
					
						
							|  |  |  | 	width: 100%; | 
					
						
							|  |  |  | 	font-family: 'Noto Sans', sans-serif; | 
					
						
							|  |  |  | 	font-size: 1rem; | 
					
						
							|  |  |  | 	padding: 0.3rem; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	&:focus, &:active { | 
					
						
							|  |  |  | 		border-color: $input-focus-border; | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-04-09 14:14:20 +02:00
										 |  |  | 	&[type=checkbox]:focus-visible, | 
					
						
							|  |  |  | 	&[type=radio]:focus-visible { | 
					
						
							|  |  |  | 		outline: $input-clickable-focus-outline; | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-12-27 11:23:52 +01:00
										 |  |  | 	&:invalid, .invalid & { | 
					
						
							|  |  |  | 		border-color: $input-error-border; | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	&:disabled { | 
					
						
							|  |  |  | 		background: transparent; | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	&::placeholder { | 
					
						
							|  |  |  | 		opacity: 1; | 
					
						
							|  |  |  | 		color: $fg-reduced | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-08-21 10:43:43 +02:00
										 |  |  | select { | 
					
						
							|  |  |  | 	/* | 
					
						
							|  |  |  | 		By default this looks awful on Gnome | 
					
						
							|  |  |  | 		Web so restyle a bit to try to make | 
					
						
							|  |  |  | 		it consistent with firefox + chrome. | 
					
						
							|  |  |  | 	*/ | 
					
						
							|  |  |  | 	appearance: none; | 
					
						
							|  |  |  | 	line-height: 1.5rem; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-12-27 11:23:52 +01:00
										 |  |  | /* | 
					
						
							|  |  |  | 	Squeeze emojis so they fit inline in text. | 
					
						
							|  |  |  | */ | 
					
						
							|  |  |  | .emoji { | 
					
						
							|  |  |  | 	width: 1.45em; | 
					
						
							|  |  |  | 	height: 1.45em; | 
					
						
							|  |  |  | 	margin: -0.2em 0.02em 0; | 
					
						
							|  |  |  | 	object-fit: contain; | 
					
						
							|  |  |  | 	vertical-align: middle; | 
					
						
							| 
									
										
										
										
											2024-07-21 14:22:08 +02:00
										 |  |  | 	 | 
					
						
							|  |  |  | 	@media (prefers-reduced-motion: no-preference) { | 
					
						
							|  |  |  | 		/* | 
					
						
							|  |  |  | 			Enlarge emojis on hover to give | 
					
						
							|  |  |  | 			viewer a good look at them. | 
					
						
							|  |  |  | 		*/ | 
					
						
							|  |  |  | 		transition: 0.1s; | 
					
						
							|  |  |  | 		&:hover, &:active { | 
					
						
							|  |  |  | 			transform: scale(2); | 
					
						
							|  |  |  | 			background-color: $bg; | 
					
						
							|  |  |  | 			box-shadow: $boxshadow; | 
					
						
							|  |  |  | 			border: $boxshadow-border; | 
					
						
							|  |  |  | 			border-radius: $br-inner; | 
					
						
							|  |  |  | 		} | 
					
						
							| 
									
										
										
										
											2023-12-27 11:23:52 +01:00
										 |  |  | 	} | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* | 
					
						
							| 
									
										
										
										
											2025-06-13 14:22:56 +02:00
										 |  |  | 	Restyle lists. | 
					
						
							| 
									
										
										
										
											2023-12-27 11:23:52 +01:00
										 |  |  | */ | 
					
						
							|  |  |  | ul { | 
					
						
							| 
									
										
										
										
											2025-06-13 14:22:56 +02:00
										 |  |  | 	li::marker { | 
					
						
							| 
									
										
										
										
											2023-12-27 11:23:52 +01:00
										 |  |  | 		color: $border-accent; | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | ol { | 
					
						
							|  |  |  | 	li::marker { | 
					
						
							|  |  |  | 		font-weight: bold; | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* | 
					
						
							|  |  |  | 	Outdent block quotes a bit; use | 
					
						
							| 
									
										
										
										
											2024-02-19 16:51:57 +01:00
										 |  |  | 	orange strip for left border. | 
					
						
							| 
									
										
										
										
											2023-12-27 11:23:52 +01:00
										 |  |  | */ | 
					
						
							|  |  |  | blockquote { | 
					
						
							| 
									
										
										
										
											2024-09-21 18:36:32 +02:00
										 |  |  | 	padding: 0.5rem; | 
					
						
							| 
									
										
										
										
											2023-12-27 11:23:52 +01:00
										 |  |  | 	border-left: 0.2rem solid $border-accent; | 
					
						
							|  |  |  | 	margin: 0; | 
					
						
							| 
									
										
										
										
											2024-02-19 16:34:45 +01:00
										 |  |  | 	font-style: normal; | 
					
						
							| 
									
										
										
										
											2024-02-19 16:51:57 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	/* | 
					
						
							|  |  |  | 		Same background color we | 
					
						
							|  |  |  | 		use for code blocks | 
					
						
							|  |  |  | 	*/ | 
					
						
							|  |  |  | 	background-color: $gray2; | 
					
						
							| 
									
										
										
										
											2024-09-21 18:36:32 +02:00
										 |  |  | 	border-radius: 0; | 
					
						
							| 
									
										
										
										
											2023-12-27 11:23:52 +01:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* | 
					
						
							|  |  |  | 	Nice dashed orange line | 
					
						
							|  |  |  | 	for horizontal rules. | 
					
						
							|  |  |  | */ | 
					
						
							|  |  |  | hr { | 
					
						
							|  |  |  | 	border: 0; | 
					
						
							|  |  |  | 	border-top: 1px dashed $border-accent; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* | 
					
						
							|  |  |  | 	Don't indent definition | 
					
						
							|  |  |  | 	lists and definitions. | 
					
						
							|  |  |  | */ | 
					
						
							|  |  |  | dl { | 
					
						
							|  |  |  | 	margin: 0; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	dd { | 
					
						
							|  |  |  | 		margin-left: 0; | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | label { | 
					
						
							|  |  |  | 	cursor: pointer; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-01-05 13:39:31 +01:00
										 |  |  | /* | 
					
						
							| 
									
										
										
										
											2025-04-14 12:57:58 +02:00
										 |  |  | 	Set our own nice background and | 
					
						
							|  |  |  | 	font for monospace code and pre blocks. | 
					
						
							| 
									
										
										
										
											2024-01-05 13:39:31 +01:00
										 |  |  | */ | 
					
						
							|  |  |  | pre, pre[class*="language-"], | 
					
						
							|  |  |  | code, code[class*="language-"] { | 
					
						
							| 
									
										
										
										
											2025-04-14 12:57:58 +02:00
										 |  |  | 	font-family: "Noto Sans Mono", monospace; | 
					
						
							| 
									
										
										
										
											2024-01-05 13:39:31 +01:00
										 |  |  | 	background-color: $gray2; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* | 
					
						
							|  |  |  | 	Just code on its own inside status | 
					
						
							|  |  |  | 	content, ie, `here is some code`. | 
					
						
							|  |  |  | */ | 
					
						
							|  |  |  | code { | 
					
						
							|  |  |  | 	padding: 0.25rem; | 
					
						
							|  |  |  | 	border-radius: $br-inner; | 
					
						
							|  |  |  | 	white-space: pre-wrap; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* | 
					
						
							|  |  |  | 	Restyle Prism code highlighting toolbar | 
					
						
							|  |  |  | 	plugin buttons to our own button style. | 
					
						
							|  |  |  | 	 | 
					
						
							|  |  |  | 	We have to use really specific selectors | 
					
						
							|  |  |  | 	because of how specific prism.css is. | 
					
						
							|  |  |  | */ | 
					
						
							|  |  |  | div.code-toolbar > div.toolbar { | 
					
						
							|  |  |  | 	margin-right: 0.5rem; | 
					
						
							|  |  |  | 	display: flex; | 
					
						
							|  |  |  | 	gap: 0.25rem; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	> div.toolbar-item { | 
					
						
							|  |  |  | 		> span, > button { | 
					
						
							|  |  |  | 			color: $button-fg; | 
					
						
							|  |  |  | 			background: $button-bg; | 
					
						
							|  |  |  | 			font-weight: bold; | 
					
						
							|  |  |  | 			box-shadow: $boxshadow; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 			&:hover, &:focus { | 
					
						
							|  |  |  | 				color: $button-fg; | 
					
						
							|  |  |  | 			} | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		.copy-to-clipboard-button:hover { | 
					
						
							|  |  |  | 			background: $button-hover-bg; | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | pre, pre[class*="language-"] { | 
					
						
							|  |  |  | 	border-radius: $br; | 
					
						
							|  |  |  | 	padding: 0.5rem; | 
					
						
							|  |  |  | 	white-space: pre; | 
					
						
							|  |  |  | 	overflow-x: auto; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-04-09 14:14:20 +02:00
										 |  |  | 	&:focus { | 
					
						
							|  |  |  | 		outline: $pre-focus-outline; | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-01-05 13:39:31 +01:00
										 |  |  | 	/*  | 
					
						
							|  |  |  | 		Code inside a pre block, ie., | 
					
						
							|  |  |  | 		 | 
					
						
							|  |  |  | 		``` | 
					
						
							|  |  |  | 		here is some code | 
					
						
							|  |  |  | 		``` | 
					
						
							|  |  |  | 	*/ | 
					
						
							|  |  |  | 	code { | 
					
						
							|  |  |  | 		width: 100%; | 
					
						
							|  |  |  | 		padding: 0; | 
					
						
							|  |  |  | 		white-space: pre; | 
					
						
							|  |  |  | 		overflow-x: auto; | 
					
						
							|  |  |  | 		-webkit-overflow-scrolling: touch; | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-12-27 11:23:52 +01:00
										 |  |  | /************************************* | 
					
						
							|  |  |  | ***** SECTION 3: UTILITY CLASSES ***** | 
					
						
							|  |  |  | **************************************/ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* | 
					
						
							|  |  |  | 	Column header that appears at the top | 
					
						
							|  |  |  | 	of threads, at the top of sections of | 
					
						
							|  |  |  | 	profiles (About, Pinned Posts, etc). | 
					
						
							|  |  |  | */ | 
					
						
							|  |  |  | .col-header { | 
					
						
							|  |  |  | 	display: grid; | 
					
						
							|  |  |  | 	grid-template-columns: auto 1fr; | 
					
						
							|  |  |  | 	gap: 1rem; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	justify-content: start; | 
					
						
							|  |  |  | 	align-items: center;  | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	margin: 0; | 
					
						
							|  |  |  | 	background: $profile-bg; | 
					
						
							|  |  |  | 	border-top-left-radius: $br; | 
					
						
							|  |  |  | 	border-top-right-radius: $br; | 
					
						
							|  |  |  | 	padding: 0.75rem; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	a { | 
					
						
							|  |  |  | 		justify-self: end; | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	h1, h2, h3, h4 { | 
					
						
							|  |  |  | 		font-size: 1.2rem; | 
					
						
							|  |  |  | 		line-height: 1.3rem; | 
					
						
							|  |  |  | 		margin: 0; | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .hidden { | 
					
						
							|  |  |  | 	display: none; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-06-21 19:46:10 +02:00
										 |  |  | .nounderline { | 
					
						
							|  |  |  | 	text-decoration: none; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | .accent { | 
					
						
							|  |  |  | 	color: $acc1; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-12-27 11:23:52 +01:00
										 |  |  | .text-cutoff { | 
					
						
							|  |  |  | 	text-overflow: ellipsis; | 
					
						
							|  |  |  | 	overflow: hidden; | 
					
						
							|  |  |  | 	white-space: nowrap; | 
					
						
							| 
									
										
										
										
											2021-06-21 19:46:10 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-12-27 11:23:52 +01:00
										 |  |  | /*  | 
					
						
							|  |  |  | 	Class for lists that don't | 
					
						
							|  |  |  | 	want the orange dot. | 
					
						
							|  |  |  | */ | 
					
						
							|  |  |  | .nodot { | 
					
						
							|  |  |  | 	li::before { | 
					
						
							|  |  |  | 		content: initial; | 
					
						
							| 
									
										
										
										
											2021-06-21 19:46:10 +02:00
										 |  |  | 	} | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-12-27 11:23:52 +01:00
										 |  |  | /* | 
					
						
							| 
									
										
										
										
											2024-04-11 11:45:53 +02:00
										 |  |  | 	Forms and sign-in / sign-up / confirm pages. | 
					
						
							| 
									
										
										
										
											2023-12-27 11:23:52 +01:00
										 |  |  | */ | 
					
						
							| 
									
										
										
										
											2024-04-11 11:45:53 +02:00
										 |  |  | section.with-form { | 
					
						
							| 
									
										
										
										
											2021-06-21 19:46:10 +02:00
										 |  |  | 	form { | 
					
						
							| 
									
										
										
										
											2022-08-08 10:40:51 +02:00
										 |  |  | 		display: flex; | 
					
						
							|  |  |  | 		flex-direction: column; | 
					
						
							|  |  |  | 		gap: 1rem; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		padding-bottom: 1rem; | 
					
						
							|  |  |  | 		padding-top: 1rem; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-04-11 11:45:53 +02:00
										 |  |  | 		p { | 
					
						
							|  |  |  | 			/* | 
					
						
							|  |  |  | 				We use gap so we don't | 
					
						
							|  |  |  | 				need top + bottom margins. | 
					
						
							|  |  |  | 			*/ | 
					
						
							|  |  |  | 			margin-top: 0; | 
					
						
							|  |  |  | 			margin-bottom: 0; | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-08-08 10:40:51 +02:00
										 |  |  | 		label, input { | 
					
						
							|  |  |  | 			padding-left: 0.2rem; | 
					
						
							|  |  |  | 		} | 
					
						
							| 
									
										
										
										
											2021-06-21 19:46:10 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-08-08 10:40:51 +02:00
										 |  |  | 		.labelinput { | 
					
						
							|  |  |  | 			display: flex; | 
					
						
							|  |  |  | 			flex-direction: column; | 
					
						
							|  |  |  | 			gap: 0.4rem; | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-04-11 11:45:53 +02:00
										 |  |  | 		.checkbox { | 
					
						
							|  |  |  | 			display: flex; | 
					
						
							|  |  |  | 			flex-direction: row-reverse; | 
					
						
							|  |  |  | 			gap: 0.4rem; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 			& > input { | 
					
						
							| 
									
										
										
										
											2025-05-06 08:06:52 +00:00
										 |  |  | 				height: 1rem; | 
					
						
							|  |  |  | 				width: 1rem; | 
					
						
							| 
									
										
										
										
											2024-04-11 11:45:53 +02:00
										 |  |  | 				align-self: center; | 
					
						
							|  |  |  | 			} | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-08-08 10:40:51 +02:00
										 |  |  | 		.btn { | 
					
						
							| 
									
										
										
										
											2024-04-11 11:45:53 +02:00
										 |  |  | 			/* Visually separate buttons a bit */ | 
					
						
							| 
									
										
										
										
											2022-08-08 10:40:51 +02:00
										 |  |  | 			margin-top: 1rem; | 
					
						
							| 
									
										
										
										
											2021-06-21 19:46:10 +02:00
										 |  |  | 		} | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-04-11 11:45:53 +02:00
										 |  |  | /*********************************** | 
					
						
							|  |  |  | ***** SECTION 4: SHAMEFUL MESS ***** | 
					
						
							|  |  |  | ************************************/ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* | 
					
						
							|  |  |  | 	EVERYTHING BELOW THIS POINT: | 
					
						
							|  |  |  | 	Should be moved somewhere else | 
					
						
							|  |  |  | 	to avoid cluttering up this file. | 
					
						
							|  |  |  | */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* | 
					
						
							|  |  |  | 	Below section stylings are used | 
					
						
							|  |  |  | 	in transient pages + error templates. | 
					
						
							|  |  |  | */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-02-07 11:04:31 +00:00
										 |  |  | section.error { | 
					
						
							| 
									
										
										
										
											2022-11-08 17:51:44 +01:00
										 |  |  | 	word-break: break-word; | 
					
						
							|  |  |  | 	margin-bottom: 0.5rem; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-07-04 16:23:59 +02:00
										 |  |  | 	pre { | 
					
						
							|  |  |  | 		border: 1px solid #ff000080; | 
					
						
							| 
									
										
										
										
											2023-02-18 16:47:42 +01:00
										 |  |  | 		padding: 0.5rem; | 
					
						
							| 
									
										
										
										
											2022-07-04 16:23:59 +02:00
										 |  |  | 		border-radius: 0.5em; | 
					
						
							|  |  |  | 		background-color: #ff000010; | 
					
						
							|  |  |  | 		font-size: 1.3em; | 
					
						
							|  |  |  | 		white-space: pre-wrap; | 
					
						
							|  |  |  | 	} | 
					
						
							| 
									
										
										
										
											2022-02-07 11:04:31 +00:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-02-18 16:47:42 +01:00
										 |  |  | section.oob-token { | 
					
						
							|  |  |  | 	code { | 
					
						
							|  |  |  | 		background: $gray1; | 
					
						
							|  |  |  | 		padding: 0.5rem; | 
					
						
							|  |  |  | 		margin: 0; | 
					
						
							|  |  |  | 		border-radius: 0.3rem; | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-12-27 11:23:52 +01:00
										 |  |  | /* | 
					
						
							|  |  |  | 	TODO: list and blocklist are only used | 
					
						
							|  |  |  | 	in settings panel and on blocklist page; | 
					
						
							|  |  |  | 	consider moving them somewhere else. | 
					
						
							|  |  |  | */ | 
					
						
							| 
									
										
										
										
											2023-01-25 18:06:41 +01:00
										 |  |  | .list { | 
					
						
							|  |  |  | 	display: flex; | 
					
						
							|  |  |  | 	flex-direction: column; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	.header, .entry { | 
					
						
							|  |  |  | 		padding: 0.5rem; | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	.header { | 
					
						
							|  |  |  | 		border: 0.1rem solid transparent !important; /* for alignment with .entry border padding */ | 
					
						
							|  |  |  | 		background: $gray1 !important; | 
					
						
							|  |  |  | 		display: flex; | 
					
						
							|  |  |  | 		font-weight: bold; | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-01-27 09:09:26 +01:00
										 |  |  | 	.entries { | 
					
						
							|  |  |  | 		display: flex; | 
					
						
							|  |  |  | 		flex-direction: column; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		&.scrolling { | 
					
						
							|  |  |  | 			height: 20rem; | 
					
						
							|  |  |  | 			max-height: 20rem; | 
					
						
							|  |  |  | 			overflow: auto; | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-01-25 18:06:41 +01:00
										 |  |  | 	input[type=checkbox] { | 
					
						
							|  |  |  | 		margin-left: 0.5rem; | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	.entry { | 
					
						
							|  |  |  | 		display: flex; | 
					
						
							|  |  |  | 		flex-wrap: wrap; | 
					
						
							|  |  |  | 		background: $list-entry-bg; | 
					
						
							|  |  |  | 		border: 0.1rem solid transparent; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		&:nth-child(even) { | 
					
						
							|  |  |  | 			background: $list-entry-alternate-bg; | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 	 | 
					
						
							|  |  |  | 		&:hover { | 
					
						
							|  |  |  | 			background: $list-entry-hover-bg; | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 	 | 
					
						
							|  |  |  | 		&:active, &:focus, &:hover, &:target { | 
					
						
							|  |  |  | 			border-color: $fg-accent; | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-05-20 11:47:40 +02:00
										 |  |  | .domain-perm-list { | 
					
						
							| 
									
										
										
										
											2023-01-25 18:06:41 +01:00
										 |  |  | 	box-shadow: $boxshadow; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	.entry { | 
					
						
							|  |  |  | 		display: grid; | 
					
						
							| 
									
										
										
										
											2023-02-07 10:00:13 +01:00
										 |  |  | 		grid-template-columns: max(30%, 10rem) 1fr; | 
					
						
							| 
									
										
										
										
											2023-01-25 18:06:41 +01:00
										 |  |  | 		gap: 0.5rem; | 
					
						
							|  |  |  | 		align-items: start; | 
					
						
							|  |  |  | 		border: $boxshadow-border; | 
					
						
							|  |  |  | 		border-top-color: transparent; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		& > div { | 
					
						
							|  |  |  | 			display: flex; | 
					
						
							|  |  |  | 			align-items: center | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		.domain a { | 
					
						
							|  |  |  | 			font-weight: bold; | 
					
						
							|  |  |  | 			text-decoration: none; | 
					
						
							|  |  |  | 			display: inline-block; /* so it wraps properly */ | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		.public_comment p { | 
					
						
							|  |  |  | 			margin: 0; | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	.header .domain { | 
					
						
							|  |  |  | 		color: $fg; | 
					
						
							|  |  |  | 	} | 
					
						
							| 
									
										
										
										
											2023-02-07 10:00:13 +01:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-12-27 11:23:52 +01:00
										 |  |  | @media screen and (max-width: 30rem) { | 
					
						
							| 
									
										
										
										
											2025-05-20 11:47:40 +02:00
										 |  |  | 	.domain-perm-list .entry { | 
					
						
							| 
									
										
										
										
											2023-12-27 11:23:52 +01:00
										 |  |  | 		grid-template-columns: 1fr; | 
					
						
							|  |  |  | 		gap: 0; | 
					
						
							| 
									
										
										
										
											2023-02-20 16:29:29 +01:00
										 |  |  | 	} | 
					
						
							| 
									
										
										
										
											2023-03-29 12:18:45 +02:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2023-02-20 16:29:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-12-27 11:23:52 +01:00
										 |  |  | /* | 
					
						
							|  |  |  | 	TODO: this is only used on About | 
					
						
							|  |  |  | 	page and in settings application; | 
					
						
							|  |  |  | 	consider moving it somewhere else. | 
					
						
							|  |  |  | */ | 
					
						
							| 
									
										
										
										
											2023-03-29 12:18:45 +02:00
										 |  |  | .account-card { | 
					
						
							|  |  |  | 	display: inline-grid; | 
					
						
							|  |  |  | 	grid-template-columns: auto 1fr; | 
					
						
							|  |  |  | 	grid-template-rows: auto auto; | 
					
						
							|  |  |  | 	text-decoration: none; | 
					
						
							|  |  |  | 	gap: 0.5rem 1rem; | 
					
						
							|  |  |  | 	border-radius: $br; | 
					
						
							|  |  |  | 	padding: 0.5rem; | 
					
						
							|  |  |  | 	min-width: 40%; | 
					
						
							|  |  |  | 	margin-bottom: 0.3rem; | 
					
						
							| 
									
										
										
										
											2023-02-20 16:29:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-03-29 12:18:45 +02:00
										 |  |  | 	background: $list-entry-bg; | 
					
						
							| 
									
										
										
										
											2023-02-20 16:29:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-03-29 12:18:45 +02:00
										 |  |  | 	&:hover { | 
					
						
							|  |  |  | 		background: $list-entry-alternate-bg; | 
					
						
							|  |  |  | 	} | 
					
						
							| 
									
										
										
										
											2023-02-20 16:29:29 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-03-29 12:18:45 +02:00
										 |  |  | 	h3 { | 
					
						
							|  |  |  | 		align-self: end; | 
					
						
							|  |  |  | 		margin: 0; | 
					
						
							|  |  |  | 		color: $fg; | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	img.avatar { | 
					
						
							|  |  |  | 		border-radius: 0.5rem; | 
					
						
							|  |  |  | 		width: 5rem; | 
					
						
							|  |  |  | 		height: 5rem; | 
					
						
							|  |  |  | 		object-fit: cover; | 
					
						
							|  |  |  | 		grid-row: 1 / span 2; | 
					
						
							| 
									
										
										
										
											2023-02-20 16:29:29 +01:00
										 |  |  | 	} | 
					
						
							|  |  |  | } |