2020-07-17 14:44:31 -04:00
|
|
|
$quote-share-maxwidth: 150px;
|
|
|
|
|
2019-05-03 14:26:37 -04:00
|
|
|
.button-count.has-pending {
|
|
|
|
span {
|
2020-08-03 22:57:10 -04:00
|
|
|
background-color: var(--danger);
|
|
|
|
color: var(--secondary);
|
2019-05-03 14:26:37 -04:00
|
|
|
border-radius: 10px;
|
|
|
|
padding: 0.25em 0.5em;
|
|
|
|
display: inline-block;
|
|
|
|
font-size: 0.8em;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2015-12-01 17:27:32 -05:00
|
|
|
.placeholder-avatar {
|
|
|
|
display: inline-block;
|
|
|
|
width: 45px;
|
|
|
|
height: 45px;
|
|
|
|
border-radius: 50%;
|
2019-04-26 12:29:48 -04:00
|
|
|
position: relative;
|
|
|
|
overflow: hidden;
|
|
|
|
&:before {
|
|
|
|
animation: placeHolderShimmer 4s linear infinite forwards;
|
|
|
|
position: absolute;
|
|
|
|
left: 0;
|
|
|
|
content: "";
|
|
|
|
background: linear-gradient(
|
|
|
|
to right,
|
2020-08-03 22:57:10 -04:00
|
|
|
var(--primary-very-low) 10%,
|
|
|
|
var(--primary-low) 28%,
|
|
|
|
var(--primary-very-low) 43%
|
2019-04-26 12:29:48 -04:00
|
|
|
);
|
|
|
|
height: 45px;
|
|
|
|
width: 700px;
|
|
|
|
}
|
2015-12-01 17:27:32 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
.placeholder-text {
|
2019-04-26 12:29:48 -04:00
|
|
|
margin-left: 11px;
|
2015-12-01 17:27:32 -05:00
|
|
|
display: inline-block;
|
2019-04-26 12:29:48 -04:00
|
|
|
width: calc(100% - 11px);
|
2015-12-01 17:27:32 -05:00
|
|
|
height: 1.5em;
|
|
|
|
margin-bottom: 0.6em;
|
|
|
|
}
|
|
|
|
|
2014-05-11 21:28:24 -04:00
|
|
|
.names {
|
2018-09-05 17:48:31 -04:00
|
|
|
flex: 1 1 auto;
|
|
|
|
overflow: hidden;
|
2018-06-08 05:49:31 -04:00
|
|
|
span.first {
|
2019-02-22 21:28:58 -05:00
|
|
|
display: flex;
|
|
|
|
align-items: baseline;
|
2018-06-08 05:49:31 -04:00
|
|
|
font-weight: bold;
|
|
|
|
}
|
|
|
|
|
|
|
|
span {
|
|
|
|
font-size: $font-0;
|
|
|
|
margin-right: 8px;
|
|
|
|
display: inline-block;
|
2019-11-06 14:00:29 -05:00
|
|
|
@include ellipsis;
|
2018-11-26 16:49:57 -05:00
|
|
|
vertical-align: middle;
|
2018-06-08 05:49:31 -04:00
|
|
|
a {
|
2020-08-03 22:57:10 -04:00
|
|
|
color: var(--primary-high-or-secondary-low);
|
2018-06-08 05:49:31 -04:00
|
|
|
}
|
|
|
|
}
|
|
|
|
.fa {
|
|
|
|
font-size: $font-down-1;
|
2020-08-03 22:57:10 -04:00
|
|
|
color: var(--primary-med-or-secondary-med);
|
2018-11-07 13:05:43 -05:00
|
|
|
}
|
2018-11-26 16:49:57 -05:00
|
|
|
.svg-icon-title {
|
|
|
|
margin-left: 3px;
|
|
|
|
margin-right: 0px;
|
|
|
|
}
|
2018-06-08 05:49:31 -04:00
|
|
|
.new_user a,
|
|
|
|
.user-title,
|
|
|
|
.user-title a {
|
2020-08-03 22:57:10 -04:00
|
|
|
color: var(--primary-med-or-secondary-med);
|
2018-06-08 05:49:31 -04:00
|
|
|
}
|
2014-05-11 21:28:24 -04:00
|
|
|
}
|
2014-06-05 02:59:18 -04:00
|
|
|
|
2014-06-30 18:53:22 -04:00
|
|
|
// global styles for the cooked HTML content in posts (and preview)
|
2018-06-08 05:49:31 -04:00
|
|
|
.cooked,
|
|
|
|
.d-editor-preview {
|
2014-06-24 03:40:12 -04:00
|
|
|
word-wrap: break-word;
|
2018-01-12 17:27:38 -05:00
|
|
|
line-height: $line-height-large;
|
2020-11-09 00:03:36 -05:00
|
|
|
|
|
|
|
> *:first-child {
|
|
|
|
margin-top: 0;
|
|
|
|
}
|
|
|
|
|
2018-06-08 05:49:31 -04:00
|
|
|
h1,
|
|
|
|
h2,
|
|
|
|
h3,
|
|
|
|
h4,
|
|
|
|
h5,
|
|
|
|
h6 {
|
2018-01-21 22:22:30 -05:00
|
|
|
margin: 30px 0 10px;
|
|
|
|
line-height: $line-height-medium;
|
2021-05-03 13:56:58 -04:00
|
|
|
a.anchor {
|
2021-10-26 13:43:20 -04:00
|
|
|
opacity: 0;
|
|
|
|
transition: opacity 0.25s;
|
2021-05-03 13:56:58 -04:00
|
|
|
&:before {
|
|
|
|
content: svg-uri(
|
|
|
|
'<svg xmlns="http://www.w3.org/2000/svg" width="16px" height="16px" viewBox="0 0 512 512" fill="#{$primary-medium}"><path d="M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z"></path></svg>'
|
|
|
|
);
|
|
|
|
line-height: 1.4;
|
|
|
|
margin-left: -20px;
|
|
|
|
padding-right: 4px;
|
|
|
|
position: absolute;
|
|
|
|
}
|
|
|
|
}
|
2021-10-26 13:43:20 -04:00
|
|
|
|
|
|
|
// show when hovering where icon should be
|
|
|
|
// show when hovering header
|
|
|
|
.discourse-no-touch & a.anchor:hover,
|
|
|
|
.discourse-no-touch &:hover a.anchor {
|
|
|
|
opacity: 1;
|
2021-03-23 04:45:06 -04:00
|
|
|
}
|
2018-01-12 17:27:38 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
h1 {
|
2021-07-13 21:15:58 -04:00
|
|
|
font-size: var(--font-up-3-rem);
|
2018-01-12 17:27:38 -05:00
|
|
|
}
|
2018-01-21 22:22:30 -05:00
|
|
|
|
2018-01-12 17:27:38 -05:00
|
|
|
h2 {
|
2021-07-13 21:15:58 -04:00
|
|
|
font-size: var(--font-up-2-rem);
|
2018-01-12 17:27:38 -05:00
|
|
|
}
|
2018-01-21 22:22:30 -05:00
|
|
|
|
2018-01-12 17:27:38 -05:00
|
|
|
h3 {
|
2021-07-13 21:15:58 -04:00
|
|
|
font-size: var(--font-up-1-rem);
|
2018-01-12 17:27:38 -05:00
|
|
|
}
|
2018-01-21 22:22:30 -05:00
|
|
|
|
2018-01-12 17:27:38 -05:00
|
|
|
h4 {
|
2021-07-13 21:15:58 -04:00
|
|
|
font-size: var(--font-0-rem);
|
2018-01-12 17:27:38 -05:00
|
|
|
}
|
2018-01-21 22:22:30 -05:00
|
|
|
|
2018-01-12 17:27:38 -05:00
|
|
|
h5 {
|
2021-07-13 21:15:58 -04:00
|
|
|
font-size: var(--font-down-1-rem);
|
2018-01-12 17:27:38 -05:00
|
|
|
}
|
2018-01-21 22:22:30 -05:00
|
|
|
|
2018-01-12 17:27:38 -05:00
|
|
|
h6 {
|
2021-07-13 21:15:58 -04:00
|
|
|
font-size: var(--font-down-2-rem);
|
2017-12-15 11:29:15 -05:00
|
|
|
}
|
2018-01-21 22:22:30 -05:00
|
|
|
|
2018-06-08 05:49:31 -04:00
|
|
|
a {
|
|
|
|
word-wrap: break-word;
|
|
|
|
}
|
2020-05-12 22:51:28 -04:00
|
|
|
|
2021-02-15 11:17:30 -05:00
|
|
|
mark {
|
2020-05-12 22:51:28 -04:00
|
|
|
text-decoration: none;
|
|
|
|
}
|
2020-05-12 23:12:46 -04:00
|
|
|
|
2018-06-08 05:49:31 -04:00
|
|
|
ins {
|
2020-08-03 22:57:10 -04:00
|
|
|
background-color: var(--success-low);
|
2022-01-31 17:42:14 -05:00
|
|
|
text-decoration: underline;
|
2018-06-08 05:49:31 -04:00
|
|
|
}
|
|
|
|
del {
|
2020-08-03 22:57:10 -04:00
|
|
|
background-color: var(--danger-low);
|
2022-01-31 17:42:14 -05:00
|
|
|
text-decoration: line-through;
|
2018-06-08 05:49:31 -04:00
|
|
|
}
|
2021-02-15 11:17:30 -05:00
|
|
|
mark {
|
|
|
|
background-color: var(--highlight);
|
|
|
|
}
|
2018-01-23 10:34:37 -05:00
|
|
|
// Prevents users from breaking posts with tag nesting
|
2018-06-08 05:49:31 -04:00
|
|
|
big {
|
|
|
|
font-size: 1.5rem;
|
|
|
|
}
|
|
|
|
small {
|
|
|
|
font-size: 0.75rem;
|
|
|
|
}
|
|
|
|
small small {
|
|
|
|
font-size: 0.75em;
|
|
|
|
}
|
|
|
|
big big {
|
|
|
|
font-size: 1em;
|
|
|
|
}
|
|
|
|
sub sub sub {
|
|
|
|
bottom: 0;
|
|
|
|
}
|
|
|
|
sup sup sup {
|
|
|
|
top: 0;
|
|
|
|
}
|
2014-06-30 05:06:13 -04:00
|
|
|
}
|
|
|
|
|
2018-06-08 05:49:31 -04:00
|
|
|
.cooked,
|
|
|
|
.d-editor-preview {
|
2015-01-26 11:00:18 -05:00
|
|
|
video {
|
|
|
|
max-width: 100%;
|
|
|
|
}
|
2015-04-30 17:05:04 -04:00
|
|
|
sup sup {
|
|
|
|
top: 0;
|
|
|
|
}
|
2021-06-18 09:15:03 -04:00
|
|
|
|
|
|
|
img:not(.thumbnail):not(.ytp-thumbnail-image):not(.emoji) {
|
|
|
|
max-width: 100%;
|
2022-02-04 09:40:54 -05:00
|
|
|
height: auto;
|
2022-04-05 08:43:17 -04:00
|
|
|
|
|
|
|
@supports not (aspect-ratio: 1) {
|
|
|
|
// (see javascripts/discourse/app/initializers/image-aspect-ratio.js)
|
|
|
|
height: var(--calculated-height);
|
|
|
|
}
|
2021-06-18 09:15:03 -04:00
|
|
|
}
|
2015-01-26 11:00:18 -05:00
|
|
|
}
|
2017-12-07 12:40:39 -05:00
|
|
|
|
|
|
|
// add staff color
|
|
|
|
.moderator {
|
2017-12-20 21:24:59 -05:00
|
|
|
.regular > .cooked {
|
2020-08-03 22:57:10 -04:00
|
|
|
background-color: var(--highlight-low-or-medium);
|
2017-12-07 12:40:39 -05:00
|
|
|
}
|
2017-12-20 21:24:59 -05:00
|
|
|
.clearfix > .topic-meta-data > .names {
|
2017-12-07 16:10:54 -05:00
|
|
|
span.user-title {
|
2020-08-03 22:57:10 -04:00
|
|
|
color: var(--primary-high-or-secondary-low);
|
2018-08-13 01:29:46 -04:00
|
|
|
a {
|
2020-08-03 22:57:10 -04:00
|
|
|
background-color: var(--highlight-low-or-medium);
|
2018-08-13 01:29:46 -04:00
|
|
|
padding-left: 4px;
|
|
|
|
padding-right: 4px;
|
|
|
|
}
|
2017-12-07 12:40:39 -05:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2018-06-20 13:06:20 -04:00
|
|
|
.topic-meta-data {
|
|
|
|
display: flex;
|
|
|
|
align-items: flex-start;
|
|
|
|
|
|
|
|
.names {
|
|
|
|
margin-right: auto;
|
|
|
|
}
|
|
|
|
|
|
|
|
.post-infos {
|
|
|
|
display: flex;
|
2018-09-19 18:53:48 -04:00
|
|
|
flex: 0 0 auto;
|
2018-11-30 21:31:36 -05:00
|
|
|
align-items: center;
|
2018-06-20 13:06:20 -04:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2022-01-04 09:44:54 -05:00
|
|
|
nav.post-controls {
|
|
|
|
padding: 0;
|
|
|
|
display: flex;
|
|
|
|
align-items: center;
|
|
|
|
justify-content: space-between;
|
|
|
|
color: var(--primary-low-mid);
|
|
|
|
|
|
|
|
.actions {
|
|
|
|
display: inline-flex;
|
|
|
|
text-align: right;
|
|
|
|
margin-left: auto;
|
|
|
|
|
|
|
|
// Some buttons can be doubled up, like likes or flags
|
|
|
|
.double-button {
|
|
|
|
display: inline-flex;
|
|
|
|
flex: 0 1 auto;
|
|
|
|
align-items: center;
|
|
|
|
white-space: nowrap;
|
|
|
|
button {
|
|
|
|
// It looks really confusing when one half a double button has an inner shadow on click.
|
|
|
|
&:active {
|
|
|
|
box-shadow: none;
|
|
|
|
}
|
|
|
|
&.my-likes,
|
|
|
|
&.read-indicator,
|
|
|
|
&.regular-likes {
|
|
|
|
// Like count on posts
|
|
|
|
.d-icon {
|
|
|
|
color: var(--primary-low-mid);
|
|
|
|
padding-left: 0.45em;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
&.has-like {
|
|
|
|
// Like button after I've liked
|
|
|
|
.d-icon {
|
|
|
|
color: var(--love);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
&[disabled] {
|
|
|
|
// Disabled like button
|
|
|
|
cursor: not-allowed;
|
|
|
|
}
|
|
|
|
&.button-count {
|
|
|
|
// Like count button
|
|
|
|
height: 100%; // sometimes the font might be shorter than the icon
|
|
|
|
&:not(.my-likes) {
|
|
|
|
padding-right: 0;
|
|
|
|
}
|
|
|
|
+ .toggle-like {
|
|
|
|
// Like button when like count is present
|
|
|
|
padding-left: 0.45em;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
a,
|
|
|
|
button {
|
|
|
|
color: var(--primary-low-mid-or-secondary-high);
|
|
|
|
.d-icon {
|
|
|
|
opacity: 1;
|
|
|
|
}
|
|
|
|
display: inline-block;
|
|
|
|
}
|
|
|
|
|
|
|
|
button {
|
|
|
|
flex: 0 1 auto;
|
|
|
|
font-size: var(--font-up-1);
|
|
|
|
padding: 8px 10px;
|
|
|
|
vertical-align: top;
|
|
|
|
background: transparent;
|
|
|
|
border: none;
|
|
|
|
&.d-hover,
|
|
|
|
&:focus,
|
|
|
|
&:active {
|
|
|
|
outline: none;
|
|
|
|
background: var(--primary-low);
|
|
|
|
color: var(--primary);
|
|
|
|
}
|
|
|
|
&.hidden {
|
|
|
|
display: none;
|
|
|
|
}
|
|
|
|
&.admin {
|
|
|
|
position: relative;
|
|
|
|
}
|
|
|
|
&.delete.d-hover,
|
|
|
|
&.delete:hover,
|
|
|
|
&.delete:focus {
|
|
|
|
background: var(--danger);
|
|
|
|
color: var(--secondary);
|
|
|
|
.d-icon {
|
|
|
|
color: var(--secondary);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
&.bookmarked .d-icon {
|
|
|
|
color: var(--tertiary);
|
|
|
|
}
|
|
|
|
&.create {
|
|
|
|
margin-right: 0;
|
|
|
|
color: var(--primary-high-or-secondary-low);
|
|
|
|
.d-icon {
|
|
|
|
color: var(--primary-high-or-secondary-low);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.show-replies {
|
|
|
|
font-size: var(--font-up-1);
|
|
|
|
font-size: inherit;
|
|
|
|
padding: 10px;
|
|
|
|
color: var(--primary-medium);
|
|
|
|
&:hover,
|
|
|
|
&:focus {
|
|
|
|
outline: none;
|
|
|
|
color: var(--primary);
|
|
|
|
background: var(--primary-low);
|
|
|
|
}
|
|
|
|
.d-icon {
|
|
|
|
font-size: var(--font-down-1);
|
|
|
|
}
|
|
|
|
.d-button-label + .d-icon {
|
|
|
|
margin-left: 0.45em;
|
|
|
|
margin-right: 0;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2021-07-21 10:41:04 -04:00
|
|
|
.deleted {
|
|
|
|
.regular > .cooked {
|
|
|
|
background-color: var(--danger-low-mid);
|
|
|
|
}
|
|
|
|
.topic-meta-data:not(.embedded-reply) {
|
|
|
|
color: var(--danger);
|
|
|
|
|
|
|
|
.post-info a,
|
|
|
|
a {
|
|
|
|
color: currentColor;
|
|
|
|
}
|
|
|
|
|
|
|
|
.d-icon {
|
|
|
|
color: currentColor;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
nav.post-controls {
|
|
|
|
color: var(--danger);
|
|
|
|
|
|
|
|
.show-replies,
|
|
|
|
button.reply.create {
|
|
|
|
color: var(--danger);
|
|
|
|
.d-icon {
|
|
|
|
color: var(--danger);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
.widget-button {
|
|
|
|
&:hover {
|
|
|
|
color: currentColor;
|
|
|
|
background: var(--danger-low);
|
|
|
|
.d-icon {
|
|
|
|
color: currentColor;
|
|
|
|
}
|
|
|
|
}
|
2022-03-29 11:58:50 -04:00
|
|
|
&[disabled]:hover {
|
|
|
|
background-color: transparent;
|
|
|
|
cursor: not-allowed;
|
|
|
|
}
|
2021-07-21 10:41:04 -04:00
|
|
|
&.fade-out {
|
|
|
|
opacity: 1;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
.d-icon {
|
|
|
|
color: var(--danger);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
.post-action {
|
|
|
|
color: var(--danger);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2021-11-08 13:21:16 -05:00
|
|
|
@keyframes heartBump {
|
|
|
|
0% {
|
|
|
|
transform: scale(1);
|
|
|
|
}
|
|
|
|
50% {
|
|
|
|
transform: scale(1.5);
|
|
|
|
}
|
|
|
|
100% {
|
|
|
|
transform: scale(1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.has-like .d-icon.heart-animation {
|
|
|
|
animation: heartBump 0.4s;
|
|
|
|
}
|
|
|
|
|
2021-12-15 13:13:06 -05:00
|
|
|
@keyframes slideout {
|
|
|
|
from {
|
|
|
|
max-height: 60px;
|
|
|
|
}
|
|
|
|
|
|
|
|
to {
|
|
|
|
max-height: 9999px;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2014-06-30 18:53:22 -04:00
|
|
|
// we use aside to hold expandable quotes (versus, say, static blockquotes)
|
|
|
|
aside.quote {
|
|
|
|
margin-top: 1em;
|
|
|
|
margin-bottom: 1em;
|
2014-09-14 02:02:46 -04:00
|
|
|
|
2018-06-08 05:49:31 -04:00
|
|
|
.badge-wrapper {
|
|
|
|
margin-left: 5px;
|
|
|
|
}
|
2015-02-02 05:08:01 -05:00
|
|
|
|
2014-09-14 02:02:46 -04:00
|
|
|
.title {
|
2015-08-19 13:27:17 -04:00
|
|
|
@include post-aside;
|
|
|
|
|
2020-08-03 22:57:10 -04:00
|
|
|
color: var(--primary-high-or-secondary-low);
|
2019-12-17 23:25:16 -05:00
|
|
|
padding: 12px 12px 0px 12px;
|
2015-05-22 05:11:18 -04:00
|
|
|
// blockquote is underneath this and has top margin
|
2018-06-08 05:49:31 -04:00
|
|
|
.avatar {
|
|
|
|
margin-right: 7px;
|
|
|
|
}
|
|
|
|
img {
|
|
|
|
margin-top: -4px;
|
|
|
|
}
|
2014-12-24 02:23:47 -05:00
|
|
|
@include unselectable;
|
2014-09-14 02:02:46 -04:00
|
|
|
}
|
|
|
|
|
2014-07-01 03:19:56 -04:00
|
|
|
// blockquote is docked within aside for content
|
|
|
|
blockquote {
|
|
|
|
margin-top: 0;
|
2021-12-15 13:13:06 -05:00
|
|
|
.expanded-quote {
|
|
|
|
overflow: hidden;
|
|
|
|
animation: slideout 1s ease-in-out;
|
|
|
|
&.icon-only {
|
|
|
|
text-align: center;
|
|
|
|
font-size: var(--font-up-4);
|
|
|
|
padding-top: 0.5em;
|
|
|
|
padding-bottom: 0.5em;
|
|
|
|
color: var(--primary-medium);
|
|
|
|
}
|
|
|
|
}
|
2014-07-01 03:19:56 -04:00
|
|
|
}
|
2014-06-30 18:53:22 -04:00
|
|
|
}
|
|
|
|
|
2018-06-08 05:49:31 -04:00
|
|
|
.quote-controls,
|
|
|
|
.quote-controls .d-icon {
|
2020-08-03 22:57:10 -04:00
|
|
|
color: var(--primary-low-mid-or-secondary-high);
|
2014-09-14 02:02:46 -04:00
|
|
|
}
|
|
|
|
|
2021-02-15 06:31:35 -05:00
|
|
|
.quote-controls {
|
|
|
|
.quote-toggle {
|
|
|
|
padding: 0;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2014-06-30 05:06:13 -04:00
|
|
|
.cooked .highlight {
|
2020-08-03 22:57:10 -04:00
|
|
|
background-color: var(--tertiary-low);
|
2014-06-30 05:06:13 -04:00
|
|
|
padding: 2px;
|
|
|
|
margin: -2px;
|
2014-06-24 20:39:55 -04:00
|
|
|
}
|
|
|
|
|
2019-03-06 04:20:45 -05:00
|
|
|
.post-ignored {
|
|
|
|
font-style: italic;
|
|
|
|
}
|
|
|
|
|
2014-06-24 20:39:55 -04:00
|
|
|
.post-action {
|
2020-08-03 22:57:10 -04:00
|
|
|
color: var(--primary-medium);
|
2018-06-08 05:49:31 -04:00
|
|
|
.undo-action,
|
|
|
|
.act-action {
|
2014-06-24 20:39:55 -04:00
|
|
|
margin-left: 5px;
|
|
|
|
}
|
|
|
|
}
|
2014-07-22 02:52:26 -04:00
|
|
|
|
2020-06-19 10:44:21 -04:00
|
|
|
.small-user-list .unknown {
|
|
|
|
display: inline-block;
|
2020-08-03 22:57:10 -04:00
|
|
|
background-color: var(--primary-low);
|
2020-06-19 10:44:21 -04:00
|
|
|
width: 25px;
|
|
|
|
height: 25px;
|
|
|
|
border-radius: 50%;
|
|
|
|
vertical-align: middle;
|
|
|
|
margin-right: 0.25em;
|
|
|
|
}
|
|
|
|
|
2014-07-22 02:52:26 -04:00
|
|
|
.post-hidden {
|
2019-12-18 11:34:33 -05:00
|
|
|
.topic-avatar,
|
|
|
|
.cooked,
|
|
|
|
.topic-meta-data,
|
|
|
|
.post-actions {
|
|
|
|
opacity: 0.5;
|
|
|
|
}
|
2014-09-03 23:16:19 -04:00
|
|
|
}
|
|
|
|
|
2016-07-12 03:03:42 -04:00
|
|
|
.topic-post.staged {
|
|
|
|
opacity: 0.4;
|
|
|
|
}
|
|
|
|
|
2014-09-03 23:16:19 -04:00
|
|
|
.quote-controls {
|
|
|
|
float: right;
|
2017-10-06 15:27:02 -04:00
|
|
|
display: flex;
|
2018-12-11 21:17:31 -05:00
|
|
|
align-items: center;
|
|
|
|
a {
|
|
|
|
margin-left: 0.3em;
|
2014-09-03 23:16:19 -04:00
|
|
|
}
|
|
|
|
}
|
2014-09-07 16:55:31 -04:00
|
|
|
|
|
|
|
.quote-button {
|
|
|
|
display: none;
|
|
|
|
position: absolute;
|
2018-01-16 19:05:12 -05:00
|
|
|
z-index: z("dropdown");
|
2017-03-10 14:57:43 -05:00
|
|
|
opacity: 0.9;
|
2020-08-03 22:57:10 -04:00
|
|
|
background-color: var(--secondary-high);
|
2021-09-15 11:10:30 -04:00
|
|
|
flex-direction: column;
|
2014-09-07 16:55:31 -04:00
|
|
|
|
2022-01-16 20:05:05 -05:00
|
|
|
&.animated {
|
|
|
|
transition: top 0.1s linear, left 0.1s linear;
|
|
|
|
}
|
|
|
|
|
2020-07-17 14:44:31 -04:00
|
|
|
&.visible {
|
2021-09-15 11:10:30 -04:00
|
|
|
display: flex;
|
|
|
|
}
|
|
|
|
|
2021-09-22 03:34:29 -04:00
|
|
|
&.fast-editing {
|
|
|
|
opacity: 1;
|
|
|
|
}
|
|
|
|
|
2021-09-15 11:10:30 -04:00
|
|
|
.buttons {
|
|
|
|
display: flex;
|
|
|
|
}
|
|
|
|
|
|
|
|
.extra {
|
|
|
|
display: flex;
|
|
|
|
flex-direction: column;
|
|
|
|
width: 100%;
|
|
|
|
}
|
|
|
|
|
|
|
|
.fast-edit-container {
|
|
|
|
display: flex;
|
2021-09-22 03:34:29 -04:00
|
|
|
padding: 0.5em;
|
|
|
|
padding-top: 0;
|
2021-09-15 11:10:30 -04:00
|
|
|
flex-direction: column;
|
|
|
|
align-items: flex-start;
|
|
|
|
|
|
|
|
#fast-edit-input {
|
|
|
|
margin: 0;
|
|
|
|
width: 300px;
|
|
|
|
height: 90px;
|
|
|
|
}
|
|
|
|
|
|
|
|
.save-fast-edit {
|
2021-09-22 03:34:29 -04:00
|
|
|
margin-top: 0.5em;
|
2021-09-15 11:10:30 -04:00
|
|
|
}
|
2014-09-07 16:55:31 -04:00
|
|
|
}
|
|
|
|
|
2020-07-17 14:44:31 -04:00
|
|
|
.btn,
|
|
|
|
.btn:hover,
|
|
|
|
.d-icon,
|
|
|
|
.btn:hover .d-icon {
|
2020-08-03 22:57:10 -04:00
|
|
|
color: var(--secondary-or-primary);
|
2020-07-17 14:44:31 -04:00
|
|
|
}
|
|
|
|
|
2021-11-19 16:15:10 -05:00
|
|
|
.btn-primary,
|
|
|
|
.btn-primary:hover,
|
|
|
|
.btn-primary .d-icon,
|
|
|
|
.btn-primary:hover .d-icon {
|
|
|
|
color: var(--secondary);
|
|
|
|
}
|
|
|
|
|
2020-07-17 14:44:31 -04:00
|
|
|
.insert-quote + .quote-sharing {
|
2020-07-29 09:09:37 -04:00
|
|
|
border-left: 1px solid rgba(255, 255, 255, 0.3);
|
2020-07-17 14:44:31 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
.quote-sharing {
|
|
|
|
vertical-align: middle;
|
|
|
|
display: inline-flex;
|
|
|
|
align-items: center;
|
|
|
|
|
|
|
|
.btn {
|
|
|
|
display: inline-flex;
|
|
|
|
align-items: center;
|
|
|
|
}
|
|
|
|
|
|
|
|
.quote-share-label {
|
|
|
|
opacity: 1;
|
|
|
|
max-width: $quote-share-maxwidth;
|
|
|
|
transition: opacity 0.3s ease-in-out, max-width 0.3s ease-in-out,
|
|
|
|
padding 0.3s ease-in-out;
|
|
|
|
}
|
|
|
|
|
|
|
|
&:hover .quote-share-label {
|
|
|
|
background: transparent;
|
|
|
|
opacity: 0;
|
|
|
|
max-width: 0px;
|
|
|
|
padding: 6px 0px;
|
|
|
|
}
|
|
|
|
|
|
|
|
.quote-share-label + .quote-share-buttons {
|
|
|
|
opacity: 0;
|
|
|
|
overflow: hidden;
|
|
|
|
max-width: 0;
|
|
|
|
display: inline-flex;
|
|
|
|
transition: opacity 0.3s ease-in-out, max-width 0.3s ease-in-out;
|
|
|
|
}
|
|
|
|
|
|
|
|
&:hover .quote-share-label + .quote-share-buttons {
|
|
|
|
max-width: $quote-share-maxwidth;
|
|
|
|
opacity: 1;
|
|
|
|
}
|
2014-09-07 16:55:31 -04:00
|
|
|
}
|
2014-09-10 09:25:31 -04:00
|
|
|
}
|
|
|
|
|
2021-12-08 19:38:39 -05:00
|
|
|
.post-avatar,
|
2018-06-08 05:49:31 -04:00
|
|
|
.topic-avatar,
|
|
|
|
.user-card-avatar {
|
2016-08-18 11:18:18 -04:00
|
|
|
position: relative;
|
|
|
|
}
|
|
|
|
|
2018-01-12 17:27:38 -05:00
|
|
|
.topic-map {
|
2020-08-03 22:57:10 -04:00
|
|
|
background: var(--primary-very-low);
|
|
|
|
border: 1px solid var(--primary-low);
|
2018-02-12 15:16:27 -05:00
|
|
|
border-top: none; // would cause double top border
|
2018-04-20 11:42:06 -04:00
|
|
|
|
2018-01-12 17:27:38 -05:00
|
|
|
.avatars {
|
|
|
|
> div {
|
|
|
|
float: left;
|
|
|
|
position: relative;
|
|
|
|
margin: 3px 0;
|
|
|
|
}
|
|
|
|
.post-count {
|
|
|
|
position: absolute;
|
|
|
|
right: 0;
|
|
|
|
border-radius: 100px;
|
|
|
|
padding: 3px 5px;
|
|
|
|
text-align: center;
|
|
|
|
font-weight: normal;
|
|
|
|
font-size: $font-down-2;
|
|
|
|
line-height: $line-height-small;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.avatar {
|
|
|
|
float: left;
|
|
|
|
margin-right: 4px;
|
|
|
|
}
|
|
|
|
|
2018-02-12 15:16:27 -05:00
|
|
|
section {
|
2020-08-03 22:57:10 -04:00
|
|
|
border-top: 1px solid var(--primary-low);
|
2018-02-12 15:16:27 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
ul {
|
|
|
|
margin: 0;
|
|
|
|
list-style: none;
|
|
|
|
}
|
|
|
|
|
|
|
|
h3 {
|
|
|
|
margin-bottom: 4px;
|
2020-08-03 22:57:10 -04:00
|
|
|
color: var(--primary);
|
2018-02-12 15:16:27 -05:00
|
|
|
line-height: $line-height-large;
|
|
|
|
font-weight: normal;
|
|
|
|
font-size: $font-0;
|
|
|
|
}
|
|
|
|
|
2018-11-02 10:07:22 -04:00
|
|
|
h4 {
|
2018-02-12 15:16:27 -05:00
|
|
|
margin: 1px 0 2px 0;
|
2020-08-03 22:57:10 -04:00
|
|
|
color: var(--primary-med-or-secondary-med);
|
2018-02-12 15:16:27 -05:00
|
|
|
font-weight: normal;
|
|
|
|
font-size: $font-down-1;
|
|
|
|
line-height: $line-height-small;
|
|
|
|
}
|
|
|
|
|
|
|
|
span.domain {
|
|
|
|
font-size: $font-down-2;
|
2020-08-03 22:57:10 -04:00
|
|
|
color: var(--primary-med-or-secondary-med);
|
2018-02-12 15:16:27 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
td {
|
|
|
|
vertical-align: top;
|
2018-06-08 05:49:31 -04:00
|
|
|
padding: 1px;
|
2021-05-25 15:43:58 -04:00
|
|
|
word-break: break-all;
|
2018-02-12 15:16:27 -05:00
|
|
|
}
|
|
|
|
|
2018-05-02 16:25:27 -04:00
|
|
|
.topic-links {
|
|
|
|
tr {
|
|
|
|
border: none;
|
|
|
|
}
|
|
|
|
.badge-notification {
|
|
|
|
margin: 1px 5px 2px 0;
|
|
|
|
}
|
|
|
|
}
|
2018-08-01 16:20:14 -04:00
|
|
|
|
2018-08-27 09:41:34 -04:00
|
|
|
.controls {
|
|
|
|
display: flex;
|
|
|
|
align-items: center;
|
|
|
|
|
|
|
|
.btn {
|
|
|
|
margin-right: 0.5em;
|
|
|
|
|
|
|
|
&:last-child {
|
|
|
|
margin: 0;
|
2018-08-01 16:20:14 -04:00
|
|
|
}
|
|
|
|
}
|
2018-08-27 09:41:34 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
.participants {
|
|
|
|
display: flex;
|
|
|
|
flex-wrap: wrap;
|
|
|
|
align-items: center;
|
2019-03-08 03:23:26 -05:00
|
|
|
|
|
|
|
& + .controls {
|
|
|
|
margin-top: 0.5em;
|
|
|
|
}
|
2018-08-01 16:20:14 -04:00
|
|
|
|
2018-08-29 04:07:49 -04:00
|
|
|
&.hide-names .user {
|
|
|
|
.username,
|
|
|
|
.group-name {
|
|
|
|
display: none;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2018-08-01 16:20:14 -04:00
|
|
|
.user {
|
2020-08-03 22:57:10 -04:00
|
|
|
border: 1px solid var(--primary-low);
|
2018-08-27 09:41:34 -04:00
|
|
|
border-radius: 0.25em;
|
|
|
|
padding: 0;
|
|
|
|
margin: 0.125em 0.25em 0.125em 0;
|
2018-08-01 16:20:14 -04:00
|
|
|
display: flex;
|
|
|
|
align-items: center;
|
2018-08-27 09:41:34 -04:00
|
|
|
height: 26px;
|
|
|
|
|
|
|
|
.user-link,
|
|
|
|
.group-link {
|
2020-08-03 22:57:10 -04:00
|
|
|
color: var(--primary-high);
|
2018-08-27 09:41:34 -04:00
|
|
|
|
|
|
|
&:hover {
|
2020-08-03 22:57:10 -04:00
|
|
|
color: var(--primary);
|
2018-08-01 16:20:14 -04:00
|
|
|
}
|
|
|
|
}
|
2018-08-27 09:41:34 -04:00
|
|
|
|
|
|
|
.avatar,
|
|
|
|
.d-icon-users {
|
|
|
|
margin-left: 0.25em;
|
|
|
|
margin-right: 0.25em;
|
|
|
|
}
|
|
|
|
|
|
|
|
.username,
|
|
|
|
.group-name {
|
|
|
|
margin-right: 0.25em;
|
2018-08-01 17:05:35 -04:00
|
|
|
}
|
2018-08-27 09:41:34 -04:00
|
|
|
|
|
|
|
&:last-child {
|
|
|
|
margin-right: 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
.remove-invited {
|
|
|
|
display: flex;
|
2019-01-21 13:40:55 -05:00
|
|
|
flex: 1 0 0px;
|
2018-08-27 09:41:34 -04:00
|
|
|
align-items: center;
|
|
|
|
justify-content: center;
|
|
|
|
box-sizing: border-box;
|
|
|
|
border-radius: 0 0.25em 0.25em 0;
|
2018-08-29 04:11:44 -04:00
|
|
|
padding-top: 0;
|
|
|
|
padding-bottom: 0;
|
|
|
|
height: 100%;
|
2018-08-27 09:41:34 -04:00
|
|
|
}
|
2018-08-01 16:20:14 -04:00
|
|
|
}
|
2018-08-29 04:07:49 -04:00
|
|
|
}
|
2018-08-27 09:41:34 -04:00
|
|
|
|
2018-08-29 04:07:49 -04:00
|
|
|
.add-remove-participant-btn {
|
|
|
|
.d-icon {
|
|
|
|
margin-left: 0.25em;
|
2018-08-01 16:20:14 -04:00
|
|
|
}
|
|
|
|
}
|
2018-01-12 17:27:38 -05:00
|
|
|
}
|
|
|
|
|
2018-06-08 05:49:31 -04:00
|
|
|
.topic-avatar,
|
|
|
|
.avatar-flair-preview,
|
|
|
|
.user-card-avatar,
|
|
|
|
.topic-map .poster,
|
2018-12-17 04:44:34 -05:00
|
|
|
.user-profile-avatar,
|
2020-03-30 21:40:11 -04:00
|
|
|
.user-image,
|
|
|
|
.latest-topic-list-item {
|
2017-01-18 11:37:43 -05:00
|
|
|
.avatar-flair {
|
|
|
|
display: flex;
|
|
|
|
align-items: center;
|
|
|
|
justify-content: center;
|
|
|
|
background-repeat: no-repeat;
|
|
|
|
background-position: center;
|
|
|
|
position: absolute;
|
|
|
|
bottom: 0;
|
|
|
|
right: -6px;
|
|
|
|
}
|
2016-09-15 16:15:08 -04:00
|
|
|
}
|
2018-06-08 05:49:31 -04:00
|
|
|
.topic-avatar .avatar-flair,
|
|
|
|
.avatar-flair-preview .avatar-flair,
|
2018-12-17 04:44:34 -05:00
|
|
|
.collapsed-info .user-profile-avatar .avatar-flair,
|
2020-03-30 21:40:11 -04:00
|
|
|
.user-image .avatar-flair,
|
|
|
|
.latest-topic-list-item .avatar-flair {
|
2016-09-15 16:15:08 -04:00
|
|
|
background-size: 20px 20px;
|
|
|
|
width: 20px;
|
|
|
|
height: 20px;
|
2016-08-16 12:34:04 -04:00
|
|
|
&.rounded {
|
|
|
|
background-size: 18px 18px;
|
|
|
|
border-radius: 12px;
|
|
|
|
width: 24px;
|
|
|
|
height: 24px;
|
2016-08-18 11:18:18 -04:00
|
|
|
bottom: -2px;
|
2016-08-16 12:34:04 -04:00
|
|
|
right: -8px;
|
|
|
|
}
|
|
|
|
}
|
2018-06-08 05:49:31 -04:00
|
|
|
.user-card-avatar .avatar-flair,
|
|
|
|
.user-profile-avatar .avatar-flair {
|
2016-09-15 16:15:08 -04:00
|
|
|
background-size: 40px 40px;
|
|
|
|
width: 40px;
|
|
|
|
height: 40px;
|
|
|
|
&.rounded {
|
|
|
|
background-size: 30px 30px;
|
|
|
|
border-radius: 24px;
|
|
|
|
width: 40px;
|
|
|
|
height: 40px;
|
|
|
|
bottom: -2px;
|
|
|
|
right: -4px;
|
|
|
|
}
|
2016-09-19 14:04:51 -04:00
|
|
|
.fa {
|
2018-01-12 17:27:38 -05:00
|
|
|
font-size: $font-up-4;
|
2016-09-19 14:04:51 -04:00
|
|
|
}
|
2016-09-15 16:15:08 -04:00
|
|
|
}
|
2017-01-18 11:37:43 -05:00
|
|
|
.topic-map .poster .avatar-flair {
|
|
|
|
right: 0;
|
|
|
|
background-size: 12px 12px;
|
|
|
|
width: 16px;
|
|
|
|
height: 16px;
|
|
|
|
bottom: -3px;
|
2020-08-03 22:57:10 -04:00
|
|
|
color: var(--primary);
|
2017-01-18 11:37:43 -05:00
|
|
|
&.rounded {
|
|
|
|
background-size: 12px 12px;
|
|
|
|
border-radius: 8px;
|
|
|
|
width: 16px;
|
|
|
|
height: 16px;
|
|
|
|
bottom: -2px;
|
|
|
|
right: 0;
|
|
|
|
}
|
2019-01-21 12:37:49 -05:00
|
|
|
.d-icon {
|
|
|
|
font-size: $font-down-2;
|
2017-01-18 11:37:43 -05:00
|
|
|
}
|
|
|
|
}
|
2015-12-04 16:49:02 -05:00
|
|
|
|
2018-01-12 17:27:38 -05:00
|
|
|
.map {
|
|
|
|
&:first-of-type {
|
|
|
|
display: flex;
|
|
|
|
.buttons {
|
|
|
|
margin-left: auto;
|
|
|
|
order: 15;
|
|
|
|
.btn {
|
|
|
|
height: 100%;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2015-08-18 18:51:50 -04:00
|
|
|
.topic-body {
|
2016-02-22 04:17:50 -05:00
|
|
|
// this is necessary for ANYTHING that extends past the right edge of
|
|
|
|
// the post body, such as an image in a deeply nested list, image in
|
|
|
|
// a deeply nested blockquote, and so on.. you get the idea.
|
2018-10-05 10:51:27 -04:00
|
|
|
.cooked {
|
|
|
|
overflow: hidden;
|
2021-06-08 04:58:18 -04:00
|
|
|
|
|
|
|
.button-wrapper {
|
|
|
|
display: none;
|
|
|
|
}
|
2018-10-05 10:51:27 -04:00
|
|
|
}
|
2020-03-24 05:12:52 -04:00
|
|
|
.group-request {
|
2020-08-03 22:57:10 -04:00
|
|
|
border-top: 1px solid var(--primary-low);
|
2020-03-24 05:12:52 -04:00
|
|
|
padding-top: 0.5em;
|
|
|
|
}
|
2015-08-18 18:51:50 -04:00
|
|
|
&.highlighted {
|
2016-12-05 17:20:52 -05:00
|
|
|
animation: background-fade-highlight 2.5s ease-out;
|
2015-08-18 18:51:50 -04:00
|
|
|
}
|
2020-03-20 12:15:58 -04:00
|
|
|
.deleted & {
|
|
|
|
// Disable so the deleted background is visible immediately
|
|
|
|
&.highlighted {
|
|
|
|
animation: none;
|
|
|
|
}
|
|
|
|
}
|
2015-08-18 18:51:50 -04:00
|
|
|
}
|
2014-09-10 09:25:31 -04:00
|
|
|
|
|
|
|
.post-info {
|
2018-06-25 10:50:16 -04:00
|
|
|
flex: 0 0 auto;
|
|
|
|
margin-right: 0.5em;
|
2018-06-20 15:39:36 -04:00
|
|
|
|
2018-06-25 10:50:16 -04:00
|
|
|
&.post-date {
|
|
|
|
margin-right: 0;
|
|
|
|
}
|
2018-06-08 05:49:31 -04:00
|
|
|
&.via-email,
|
|
|
|
&.whisper,
|
|
|
|
&.post-locked {
|
2017-07-27 15:03:41 -04:00
|
|
|
.d-icon {
|
2018-01-12 17:27:38 -05:00
|
|
|
font-size: $font-0;
|
2014-09-10 09:25:31 -04:00
|
|
|
}
|
|
|
|
}
|
2017-01-16 02:54:51 -05:00
|
|
|
|
2017-09-12 09:37:47 -04:00
|
|
|
.wiki,
|
|
|
|
.last-wiki-edit {
|
2020-08-03 22:57:10 -04:00
|
|
|
color: var(--wiki);
|
2014-09-10 09:25:31 -04:00
|
|
|
}
|
2017-01-16 02:54:51 -05:00
|
|
|
|
2014-09-10 09:25:31 -04:00
|
|
|
&.via-email {
|
2020-08-03 22:57:10 -04:00
|
|
|
color: var(--primary-low-mid-or-secondary-high);
|
2014-09-10 09:25:31 -04:00
|
|
|
}
|
2014-10-17 13:28:23 -04:00
|
|
|
&.raw-email {
|
|
|
|
cursor: pointer;
|
|
|
|
}
|
2021-01-22 11:09:39 -05:00
|
|
|
&.edits {
|
|
|
|
.widget-button {
|
|
|
|
display: flex;
|
|
|
|
align-items: center;
|
|
|
|
|
|
|
|
.d-button-label {
|
|
|
|
order: 0;
|
|
|
|
padding-right: 0.25em;
|
2021-01-22 20:31:01 -05:00
|
|
|
color: var(--primary-med-or-secondary-med);
|
|
|
|
transition: color 0.25s;
|
2021-01-22 11:09:39 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
.d-icon {
|
|
|
|
order: 1;
|
2021-01-22 20:31:01 -05:00
|
|
|
transition: color 0.25s;
|
2021-01-27 20:38:15 -05:00
|
|
|
color: var(--primary-med-or-secondary-med);
|
2021-01-22 20:31:01 -05:00
|
|
|
}
|
|
|
|
.discourse-no-touch & {
|
|
|
|
&:hover {
|
|
|
|
.d-button-label {
|
|
|
|
color: var(--primary-high);
|
|
|
|
}
|
|
|
|
.d-icon {
|
|
|
|
color: var(--primary-high);
|
|
|
|
}
|
|
|
|
}
|
2021-01-22 11:09:39 -05:00
|
|
|
}
|
2021-04-20 21:03:47 -04:00
|
|
|
&:focus {
|
|
|
|
@include default-focus;
|
|
|
|
background: transparent;
|
|
|
|
}
|
2021-01-22 11:09:39 -05:00
|
|
|
}
|
|
|
|
}
|
2014-09-10 09:25:31 -04:00
|
|
|
}
|
2014-09-13 01:58:15 -04:00
|
|
|
|
|
|
|
pre {
|
|
|
|
code {
|
2015-06-25 23:30:32 -04:00
|
|
|
word-wrap: normal;
|
2014-09-13 01:58:15 -04:00
|
|
|
display: block;
|
2019-01-09 12:36:51 -05:00
|
|
|
padding: 0.5em;
|
2020-08-03 22:57:10 -04:00
|
|
|
color: var(--primary);
|
|
|
|
background: var(--blend-primary-secondary-5);
|
2014-09-13 01:58:15 -04:00
|
|
|
max-height: 500px;
|
|
|
|
}
|
2021-11-21 19:43:03 -05:00
|
|
|
|
|
|
|
.bidi-warning,
|
|
|
|
.bidi-warning span {
|
|
|
|
font-style: normal;
|
|
|
|
background-color: var(--highlight);
|
|
|
|
color: var(--danger);
|
|
|
|
cursor: help;
|
|
|
|
}
|
2014-09-13 01:58:15 -04:00
|
|
|
}
|
|
|
|
|
2022-02-28 17:37:24 -05:00
|
|
|
.codeblock-buttons {
|
2020-04-21 09:02:13 -04:00
|
|
|
display: block;
|
|
|
|
position: relative;
|
|
|
|
overflow: visible;
|
|
|
|
|
2022-02-28 17:37:24 -05:00
|
|
|
.codeblock-button-wrapper {
|
2020-04-21 09:02:13 -04:00
|
|
|
position: absolute;
|
|
|
|
right: 0;
|
2022-02-28 17:37:24 -05:00
|
|
|
display: flex;
|
|
|
|
|
|
|
|
.copy-cmd {
|
|
|
|
right: 0;
|
|
|
|
}
|
|
|
|
.copy-fullscreen {
|
|
|
|
right: 28px;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.copy-cmd,
|
|
|
|
.fullscreen-cmd {
|
|
|
|
@include unselectable;
|
|
|
|
top: 0;
|
2020-04-21 09:02:13 -04:00
|
|
|
min-height: 0;
|
|
|
|
font-size: $font-down-2;
|
|
|
|
min-height: 0;
|
|
|
|
font-size: $font-down-2;
|
2021-03-16 22:22:35 -04:00
|
|
|
opacity: 0.7;
|
2020-04-21 09:02:13 -04:00
|
|
|
|
2022-02-28 17:37:24 -05:00
|
|
|
&.action-complete {
|
2020-04-21 09:02:13 -04:00
|
|
|
.d-icon {
|
2020-08-03 22:57:10 -04:00
|
|
|
color: var(--tertiary);
|
2020-04-21 09:02:13 -04:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.d-icon {
|
|
|
|
pointer-events: none;
|
|
|
|
margin-right: 0;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2018-06-08 05:49:31 -04:00
|
|
|
kbd {
|
2020-06-01 09:00:56 -04:00
|
|
|
align-items: center;
|
2020-08-03 22:57:10 -04:00
|
|
|
border: 1px solid var(--primary-low-mid);
|
|
|
|
background: var(--primary-very-low);
|
2020-06-01 09:00:56 -04:00
|
|
|
border-bottom-width: 2px;
|
|
|
|
border-radius: 3px;
|
|
|
|
box-sizing: border-box;
|
2020-08-03 22:57:10 -04:00
|
|
|
color: var(--primary);
|
2020-06-01 09:00:56 -04:00
|
|
|
display: inline-flex;
|
2018-01-12 17:27:38 -05:00
|
|
|
font-size: $font-down-1;
|
2020-06-01 09:00:56 -04:00
|
|
|
justify-content: center;
|
2018-01-12 17:27:38 -05:00
|
|
|
line-height: $line-height-large;
|
2020-06-01 09:00:56 -04:00
|
|
|
margin: 0 0.15em;
|
|
|
|
min-width: 24px;
|
|
|
|
padding: 0.15em 0.6em;
|
2014-09-13 01:58:15 -04:00
|
|
|
|
2015-03-02 11:00:05 -05:00
|
|
|
// don't allow more than 3 nested elements to prevent FF from crashing
|
|
|
|
// cf. http://what.thedailywtf.com/t/nested-elements/7927
|
|
|
|
// 3 levels are needed to prevent highlighted words being hidden
|
|
|
|
// cf. https://meta.discourse.org/t/word-disappears-when-searched-and-in-details-summary-kbd-b/25741
|
2018-06-08 05:49:31 -04:00
|
|
|
* * * {
|
|
|
|
display: none;
|
|
|
|
}
|
2014-09-22 12:55:13 -04:00
|
|
|
}
|
2015-01-12 05:24:06 -05:00
|
|
|
|
|
|
|
// we assume blockquotes have their own margins, so all blockquotes
|
|
|
|
// will remove margins from first (top) and last (bottom) child elements
|
|
|
|
blockquote > *:first-child {
|
|
|
|
margin-top: 0 !important;
|
|
|
|
}
|
|
|
|
blockquote > *:last-child {
|
|
|
|
margin-bottom: 0 !important;
|
|
|
|
}
|
2015-06-29 03:47:07 -04:00
|
|
|
|
|
|
|
.gap {
|
2019-01-21 17:57:47 -05:00
|
|
|
padding: 0.25em 0 0.5em 56px; // 45px (topic avatar) + 11px (margin) = 56px
|
2020-08-03 22:57:10 -04:00
|
|
|
color: var(--primary-med-or-secondary-high);
|
2015-06-29 03:47:07 -04:00
|
|
|
cursor: pointer;
|
2017-05-05 20:06:13 -04:00
|
|
|
text-transform: uppercase;
|
|
|
|
font-weight: bold;
|
2018-01-12 17:27:38 -05:00
|
|
|
font-size: $font-down-1;
|
2015-06-29 03:47:07 -04:00
|
|
|
}
|
2015-07-03 14:57:07 -04:00
|
|
|
|
2019-08-27 08:09:00 -04:00
|
|
|
.who-liked,
|
|
|
|
.who-read {
|
2015-07-10 00:48:44 -04:00
|
|
|
transition: height 0.5s;
|
2015-07-03 14:57:07 -04:00
|
|
|
a {
|
|
|
|
margin: 0 0.25em 0.5em 0;
|
|
|
|
display: inline-block;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2018-06-08 05:49:31 -04:00
|
|
|
.cooked table,
|
|
|
|
.d-editor-preview table {
|
2015-07-20 02:56:32 -04:00
|
|
|
thead {
|
|
|
|
th {
|
|
|
|
text-align: left;
|
|
|
|
padding-bottom: 2px;
|
2019-02-26 21:40:17 -05:00
|
|
|
font-weight: bold;
|
2020-08-03 22:57:10 -04:00
|
|
|
color: var(--primary);
|
2015-07-20 02:56:32 -04:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2019-02-26 21:40:17 -05:00
|
|
|
td {
|
|
|
|
padding: 3px 3px 3px 0.5em;
|
2015-07-20 02:56:32 -04:00
|
|
|
}
|
|
|
|
}
|
2015-07-08 01:10:53 -04:00
|
|
|
|
2015-07-27 13:05:31 -04:00
|
|
|
.small-action {
|
2018-02-08 17:04:29 -05:00
|
|
|
display: flex;
|
|
|
|
align-items: center;
|
2018-10-05 18:37:23 -04:00
|
|
|
max-width: 758px;
|
2020-08-03 22:57:10 -04:00
|
|
|
border-top: 1px solid var(--primary-low);
|
2015-07-27 13:05:31 -04:00
|
|
|
.topic-avatar {
|
2018-04-20 11:42:06 -04:00
|
|
|
align-self: flex-start;
|
2018-06-08 05:49:31 -04:00
|
|
|
padding: 0.7em 0;
|
2015-07-27 13:05:31 -04:00
|
|
|
border-top: none;
|
2018-02-08 17:04:29 -05:00
|
|
|
margin-right: 11px;
|
2019-01-21 17:57:47 -05:00
|
|
|
flex: 0 0 auto;
|
2018-11-26 16:49:57 -05:00
|
|
|
.d-icon {
|
2018-01-12 17:27:38 -05:00
|
|
|
font-size: 2em;
|
2015-07-27 13:05:31 -04:00
|
|
|
width: 45px;
|
|
|
|
text-align: center;
|
2020-08-03 22:57:10 -04:00
|
|
|
color: var(--primary-low-mid);
|
2015-07-27 13:05:31 -04:00
|
|
|
}
|
|
|
|
}
|
2017-11-15 08:20:16 -05:00
|
|
|
|
2021-10-19 18:13:27 -04:00
|
|
|
&.deleted {
|
2020-08-03 22:57:10 -04:00
|
|
|
background-color: var(--danger-low-mid);
|
2017-11-10 16:45:06 -05:00
|
|
|
}
|
2015-07-27 13:05:31 -04:00
|
|
|
|
2016-05-13 04:40:44 -04:00
|
|
|
.small-action-desc.timegap {
|
2020-08-03 22:57:10 -04:00
|
|
|
color: var(--primary-medium);
|
2016-05-13 04:40:44 -04:00
|
|
|
}
|
2017-11-10 16:45:06 -05:00
|
|
|
|
2015-07-27 13:05:31 -04:00
|
|
|
.small-action-desc {
|
2018-04-20 11:42:06 -04:00
|
|
|
display: flex;
|
2018-02-08 17:04:29 -05:00
|
|
|
flex-wrap: wrap;
|
|
|
|
flex: 1 1 100%;
|
|
|
|
align-items: center;
|
|
|
|
padding: 1em 0;
|
2015-07-27 13:05:31 -04:00
|
|
|
text-transform: uppercase;
|
|
|
|
font-weight: bold;
|
2018-01-12 17:27:38 -05:00
|
|
|
font-size: $font-down-1;
|
2020-08-03 22:57:10 -04:00
|
|
|
color: var(--primary-medium);
|
2019-06-05 12:47:49 -04:00
|
|
|
min-width: 0; // Allows flex container to shrink
|
2015-07-29 21:19:30 -04:00
|
|
|
|
2021-04-26 18:55:50 -04:00
|
|
|
button {
|
|
|
|
align-self: flex-start;
|
2022-04-15 11:43:32 -04:00
|
|
|
font-size: var(--font-up-1);
|
|
|
|
.d-icon {
|
|
|
|
font-size: var(--font-down-1);
|
|
|
|
}
|
2021-04-26 18:55:50 -04:00
|
|
|
}
|
|
|
|
|
2015-07-29 21:19:30 -04:00
|
|
|
.custom-message {
|
2018-04-20 11:42:06 -04:00
|
|
|
flex: 1 1 100%;
|
2015-07-29 21:19:30 -04:00
|
|
|
text-transform: none;
|
|
|
|
font-weight: normal;
|
2018-01-12 17:27:38 -05:00
|
|
|
font-size: $font-up-1;
|
2018-02-08 17:04:29 -05:00
|
|
|
order: 12;
|
2019-06-05 12:47:49 -04:00
|
|
|
word-break: break-word;
|
|
|
|
min-width: 0; // Allows content like oneboxes to shrink
|
2015-07-29 21:19:30 -04:00
|
|
|
p {
|
2018-02-08 17:04:29 -05:00
|
|
|
margin-bottom: 0;
|
2015-07-29 21:19:30 -04:00
|
|
|
}
|
|
|
|
}
|
2018-02-08 17:04:29 -05:00
|
|
|
a.trigger-user-card {
|
|
|
|
align-self: stretch;
|
|
|
|
}
|
2015-07-27 13:05:31 -04:00
|
|
|
.avatar {
|
|
|
|
margin-right: 0.8em;
|
|
|
|
float: left;
|
|
|
|
}
|
|
|
|
|
2015-07-29 21:19:30 -04:00
|
|
|
> p {
|
2015-07-27 13:05:31 -04:00
|
|
|
margin: 0;
|
2021-04-26 18:55:50 -04:00
|
|
|
padding-right: 0.5em;
|
2018-02-08 17:04:29 -05:00
|
|
|
line-height: $line-height-medium;
|
|
|
|
flex: 1 1;
|
2015-07-27 13:05:31 -04:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
button {
|
|
|
|
background: transparent;
|
|
|
|
border: 0;
|
2018-02-08 17:04:29 -05:00
|
|
|
order: 9;
|
|
|
|
&:last-of-type {
|
2018-06-08 05:49:31 -04:00
|
|
|
margin-left: auto;
|
|
|
|
order: 8;
|
2018-02-08 17:04:29 -05:00
|
|
|
}
|
2015-07-27 13:05:31 -04:00
|
|
|
}
|
2021-07-07 00:40:40 -04:00
|
|
|
|
|
|
|
&.topic-post-visited {
|
|
|
|
border-top: none;
|
|
|
|
|
|
|
|
+ .small-action {
|
|
|
|
border-top: none;
|
|
|
|
}
|
|
|
|
|
|
|
|
.topic-post-visited-line {
|
|
|
|
text-align: center;
|
|
|
|
border-bottom: 1px solid var(--danger-medium);
|
|
|
|
line-height: 0.1em;
|
|
|
|
margin: 1rem 0px;
|
|
|
|
width: 100%;
|
|
|
|
|
|
|
|
.topic-post-visited-message {
|
|
|
|
background-color: var(--secondary);
|
|
|
|
color: var(--danger-medium);
|
|
|
|
font-size: $font-down-1;
|
|
|
|
padding: 0 8px;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2015-07-27 13:05:31 -04:00
|
|
|
}
|
2015-09-12 14:44:20 -04:00
|
|
|
|
|
|
|
.whisper {
|
2016-02-16 12:47:54 -05:00
|
|
|
.post-info.whisper {
|
|
|
|
margin-left: 0.5em;
|
|
|
|
}
|
2015-09-12 14:44:20 -04:00
|
|
|
.topic-body {
|
|
|
|
.cooked {
|
|
|
|
font-style: italic;
|
2020-08-03 22:57:10 -04:00
|
|
|
color: var(--primary-medium);
|
2015-09-12 14:44:20 -04:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2016-04-17 22:26:43 -04:00
|
|
|
|
2020-02-14 13:02:56 -05:00
|
|
|
a.mention {
|
2020-07-29 22:38:38 -04:00
|
|
|
display: inline-block; // https://bugzilla.mozilla.org/show_bug.cgi?id=1656119
|
2020-02-14 13:02:56 -05:00
|
|
|
font-weight: bold;
|
|
|
|
font-size: 0.93em;
|
2020-08-03 22:57:10 -04:00
|
|
|
color: var(--primary-high-or-secondary-low);
|
2020-07-29 22:38:38 -04:00
|
|
|
padding: 0 4px 1px;
|
2020-08-03 22:57:10 -04:00
|
|
|
background: var(--primary-low);
|
2020-02-14 13:02:56 -05:00
|
|
|
border-radius: 8px;
|
|
|
|
}
|
|
|
|
|
2020-02-18 14:38:13 -05:00
|
|
|
span.mention {
|
|
|
|
font-weight: bold;
|
|
|
|
font-size: 0.93em;
|
2020-08-03 22:57:10 -04:00
|
|
|
color: var(--primary);
|
2020-02-18 14:38:13 -05:00
|
|
|
}
|
|
|
|
|
2018-06-08 05:49:31 -04:00
|
|
|
a.mention-group {
|
2022-04-26 08:30:55 -04:00
|
|
|
display: inline-block;
|
2016-04-17 22:26:43 -04:00
|
|
|
font-weight: bold;
|
|
|
|
font-size: 0.93em;
|
2020-08-03 22:57:10 -04:00
|
|
|
color: var(--primary);
|
2020-02-18 14:38:13 -05:00
|
|
|
|
|
|
|
&.notify,
|
|
|
|
.small-action-desc & {
|
2020-08-03 22:57:10 -04:00
|
|
|
color: var(--primary-high-or-secondary-low);
|
2020-02-14 12:27:46 -05:00
|
|
|
padding: 2px 4px;
|
2020-08-03 22:57:10 -04:00
|
|
|
background: var(--primary-low);
|
2020-02-14 12:27:46 -05:00
|
|
|
border-radius: 8px;
|
|
|
|
}
|
2016-04-17 22:26:43 -04:00
|
|
|
}
|
2016-07-10 23:01:25 -04:00
|
|
|
|
2018-11-11 21:04:30 -05:00
|
|
|
.suggested-topics {
|
2017-06-12 15:46:01 -04:00
|
|
|
.topics {
|
|
|
|
padding-bottom: 15px;
|
|
|
|
}
|
2019-01-23 13:12:16 -05:00
|
|
|
.suggested-topics-message {
|
|
|
|
.badge-wrapper {
|
|
|
|
margin-right: 0;
|
|
|
|
}
|
|
|
|
}
|
2017-06-12 15:46:01 -04:00
|
|
|
}
|
2017-09-01 10:26:13 -04:00
|
|
|
|
2017-11-15 05:30:47 -05:00
|
|
|
.large-image-placeholder {
|
|
|
|
> a {
|
|
|
|
&.link {
|
|
|
|
margin-right: 10px;
|
|
|
|
}
|
|
|
|
|
2018-06-08 05:49:31 -04:00
|
|
|
> * {
|
|
|
|
overflow: hidden;
|
2018-11-26 16:49:57 -05:00
|
|
|
vertical-align: middle;
|
2018-06-08 05:49:31 -04:00
|
|
|
}
|
2017-11-15 05:30:47 -05:00
|
|
|
|
2018-11-26 16:49:57 -05:00
|
|
|
> .d-icon {
|
2020-08-03 22:57:10 -04:00
|
|
|
color: var(--primary-med-or-secondary-med);
|
2017-11-15 05:30:47 -05:00
|
|
|
margin-right: 6px;
|
2018-01-12 17:27:38 -05:00
|
|
|
font-size: $font-0;
|
|
|
|
line-height: $line-height-large;
|
2017-11-15 05:30:47 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
> span.url {
|
|
|
|
display: inline-block;
|
|
|
|
max-width: 300px;
|
|
|
|
margin-right: 6px;
|
|
|
|
text-overflow: ellipsis;
|
|
|
|
white-space: nowrap;
|
|
|
|
}
|
|
|
|
|
|
|
|
> span.help {
|
|
|
|
display: inline-block;
|
2020-08-03 22:57:10 -04:00
|
|
|
color: var(--primary-med-or-secondary-med);
|
2018-01-12 17:27:38 -05:00
|
|
|
font-size: $font-down-1;
|
2017-11-15 05:30:47 -05:00
|
|
|
font-style: italic;
|
2018-01-12 17:27:38 -05:00
|
|
|
line-height: $line-height-large;
|
2017-11-15 08:20:16 -05:00
|
|
|
margin-bottom: 1px;
|
|
|
|
}
|
|
|
|
|
|
|
|
> span.badge-notification {
|
|
|
|
vertical-align: unset;
|
2017-11-15 05:30:47 -05:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
FEATURE: Allow hotlinked media to be blocked (#16940)
This commit introduces a new site setting: `block_hotlinked_media`. When enabled, all attempts to hotlink media (images, videos, and audio) will fail, and be replaced with a linked placeholder. Exceptions to the rule can be added via `block_hotlinked_media_exceptions`.
`download_remote_image_to_local` can be used alongside this feature. In that case, hotlinked images will be blocked immediately when the post is created, but will then be replaced with the downloaded version a few seconds later.
This implementation is purely server-side, and does not impact the composer preview.
Technically, there are two stages to this feature:
1. `PrettyText.sanitize_hotlinked_media` is called during `PrettyText.cook`, and whenever new images are introduced by Onebox. It will iterate over all src/srcset attributes in the post HTML and check if they're allowed. If not, the attributes will be removed and replaced with a `data-blocked-hotlinked-src(set)` attribute
2. In the `CookedPostProcessor`, we iterate over all `data-blocked-hotlinked-src(set)` attributes and check whether we have a downloaded version of the media. If yes, we update the src to use the downloaded version. If not, the entire media element is replaced with a placeholder. The placeholder is labelled 'external media', and is a link to the offsite media.
2022-06-07 10:23:04 -04:00
|
|
|
.broken-image,
|
|
|
|
.blocked-hotlinked-placeholder {
|
|
|
|
&:not(a) {
|
|
|
|
color: var(--primary-low-mid-or-secondary-high);
|
|
|
|
}
|
|
|
|
|
2020-04-21 14:00:47 -04:00
|
|
|
display: inline-flex;
|
FEATURE: Allow hotlinked media to be blocked (#16940)
This commit introduces a new site setting: `block_hotlinked_media`. When enabled, all attempts to hotlink media (images, videos, and audio) will fail, and be replaced with a linked placeholder. Exceptions to the rule can be added via `block_hotlinked_media_exceptions`.
`download_remote_image_to_local` can be used alongside this feature. In that case, hotlinked images will be blocked immediately when the post is created, but will then be replaced with the downloaded version a few seconds later.
This implementation is purely server-side, and does not impact the composer preview.
Technically, there are two stages to this feature:
1. `PrettyText.sanitize_hotlinked_media` is called during `PrettyText.cook`, and whenever new images are introduced by Onebox. It will iterate over all src/srcset attributes in the post HTML and check if they're allowed. If not, the attributes will be removed and replaced with a `data-blocked-hotlinked-src(set)` attribute
2. In the `CookedPostProcessor`, we iterate over all `data-blocked-hotlinked-src(set)` attributes and check whether we have a downloaded version of the media. If yes, we update the src to use the downloaded version. If not, the entire media element is replaced with a placeholder. The placeholder is labelled 'external media', and is a link to the offsite media.
2022-06-07 10:23:04 -04:00
|
|
|
flex-direction: column;
|
2020-08-03 22:57:10 -04:00
|
|
|
border: 1px solid var(--primary-low);
|
FEATURE: Allow hotlinked media to be blocked (#16940)
This commit introduces a new site setting: `block_hotlinked_media`. When enabled, all attempts to hotlink media (images, videos, and audio) will fail, and be replaced with a linked placeholder. Exceptions to the rule can be added via `block_hotlinked_media_exceptions`.
`download_remote_image_to_local` can be used alongside this feature. In that case, hotlinked images will be blocked immediately when the post is created, but will then be replaced with the downloaded version a few seconds later.
This implementation is purely server-side, and does not impact the composer preview.
Technically, there are two stages to this feature:
1. `PrettyText.sanitize_hotlinked_media` is called during `PrettyText.cook`, and whenever new images are introduced by Onebox. It will iterate over all src/srcset attributes in the post HTML and check if they're allowed. If not, the attributes will be removed and replaced with a `data-blocked-hotlinked-src(set)` attribute
2. In the `CookedPostProcessor`, we iterate over all `data-blocked-hotlinked-src(set)` attributes and check whether we have a downloaded version of the media. If yes, we update the src to use the downloaded version. If not, the entire media element is replaced with a placeholder. The placeholder is labelled 'external media', and is a link to the offsite media.
2022-06-07 10:23:04 -04:00
|
|
|
align-items: center;
|
|
|
|
justify-content: center;
|
2020-01-26 20:39:05 -05:00
|
|
|
|
|
|
|
.d-icon {
|
|
|
|
margin: 16px;
|
FEATURE: Allow hotlinked media to be blocked (#16940)
This commit introduces a new site setting: `block_hotlinked_media`. When enabled, all attempts to hotlink media (images, videos, and audio) will fail, and be replaced with a linked placeholder. Exceptions to the rule can be added via `block_hotlinked_media_exceptions`.
`download_remote_image_to_local` can be used alongside this feature. In that case, hotlinked images will be blocked immediately when the post is created, but will then be replaced with the downloaded version a few seconds later.
This implementation is purely server-side, and does not impact the composer preview.
Technically, there are two stages to this feature:
1. `PrettyText.sanitize_hotlinked_media` is called during `PrettyText.cook`, and whenever new images are introduced by Onebox. It will iterate over all src/srcset attributes in the post HTML and check if they're allowed. If not, the attributes will be removed and replaced with a `data-blocked-hotlinked-src(set)` attribute
2. In the `CookedPostProcessor`, we iterate over all `data-blocked-hotlinked-src(set)` attributes and check whether we have a downloaded version of the media. If yes, we update the src to use the downloaded version. If not, the entire media element is replaced with a placeholder. The placeholder is labelled 'external media', and is a link to the offsite media.
2022-06-07 10:23:04 -04:00
|
|
|
font-size: var(--font-up-5);
|
|
|
|
}
|
|
|
|
|
|
|
|
.notice {
|
|
|
|
margin: 0 0.5em 0.5em 0.5em;
|
2020-01-26 20:39:05 -05:00
|
|
|
}
|
2017-09-01 10:26:13 -04:00
|
|
|
}
|
2017-12-07 12:40:39 -05:00
|
|
|
|
|
|
|
/* below standard tablet portrait ----------- */
|
|
|
|
|
2018-06-20 13:06:20 -04:00
|
|
|
.reply-to-tab {
|
|
|
|
display: flex;
|
|
|
|
align-items: center;
|
|
|
|
margin-right: 2em;
|
|
|
|
|
|
|
|
img {
|
|
|
|
margin: 0 0.25em;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2018-07-20 16:37:43 -04:00
|
|
|
// Select posts
|
|
|
|
|
|
|
|
.topic-post {
|
|
|
|
&.selected {
|
|
|
|
article.boxed {
|
|
|
|
.select-posts {
|
|
|
|
button.select-post {
|
2020-08-03 22:57:10 -04:00
|
|
|
background-color: var(--tertiary);
|
|
|
|
color: var(--secondary);
|
|
|
|
border-color: var(--tertiary);
|
2018-07-20 16:37:43 -04:00
|
|
|
}
|
|
|
|
}
|
|
|
|
.topic-body {
|
|
|
|
.contents:after {
|
|
|
|
display: none;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
article.boxed {
|
|
|
|
position: relative;
|
|
|
|
.select-posts {
|
|
|
|
position: absolute;
|
|
|
|
right: 5em;
|
2018-07-22 21:40:50 -04:00
|
|
|
z-index: z("dropdown");
|
2018-07-20 16:37:43 -04:00
|
|
|
top: 0.5em;
|
|
|
|
height: 100px;
|
|
|
|
button {
|
|
|
|
margin-left: 8px;
|
2020-08-03 22:57:10 -04:00
|
|
|
background-color: var(--primary-low);
|
|
|
|
color: var(--primary);
|
2018-07-20 16:37:43 -04:00
|
|
|
box-shadow: shadow("dropdown");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2018-06-08 05:49:31 -04:00
|
|
|
@media all and (max-width: 767px) {
|
2017-12-07 12:40:39 -05:00
|
|
|
.reply-to-tab {
|
2018-06-08 05:49:31 -04:00
|
|
|
span {
|
|
|
|
display: none;
|
|
|
|
}
|
2017-12-07 12:40:39 -05:00
|
|
|
}
|
|
|
|
.user-title {
|
|
|
|
float: left;
|
|
|
|
clear: left;
|
|
|
|
}
|
|
|
|
}
|
2018-04-25 21:59:47 -04:00
|
|
|
|
|
|
|
.signup-cta {
|
2021-04-20 13:00:39 -04:00
|
|
|
box-sizing: border-box;
|
|
|
|
max-width: calc(#{$topic-body-width} + 4.5em);
|
|
|
|
padding: 3em 5em 2em 56px; // 45px (topic avatar) + 11px (margin) = 56px
|
|
|
|
@include breakpoint(mobile-extra-large) {
|
|
|
|
padding: 1.5em 1.5em 0.25em;
|
|
|
|
}
|
|
|
|
h3 {
|
|
|
|
margin-bottom: 0.5em;
|
|
|
|
}
|
2018-04-25 21:59:47 -04:00
|
|
|
a {
|
|
|
|
text-decoration: underline;
|
|
|
|
}
|
|
|
|
.buttons {
|
2021-04-20 13:00:39 -04:00
|
|
|
display: flex;
|
|
|
|
flex-wrap: wrap;
|
|
|
|
align-items: center;
|
|
|
|
margin: 1.5em 0 1em;
|
|
|
|
> * {
|
|
|
|
margin-bottom: 0.5em;
|
|
|
|
}
|
|
|
|
.btn {
|
|
|
|
margin-right: 0.5em;
|
|
|
|
white-space: nowrap;
|
|
|
|
&.btn-remind {
|
|
|
|
background: var(--primary-very-low);
|
|
|
|
margin-right: auto;
|
|
|
|
@include hover {
|
|
|
|
background: var(--primary-medium);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@include breakpoint(mobile-extra-large) {
|
|
|
|
&.btn-primary {
|
|
|
|
margin-right: 100%;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2018-04-25 21:59:47 -04:00
|
|
|
}
|
|
|
|
}
|
2019-03-08 03:48:35 -05:00
|
|
|
|
|
|
|
.post-notice {
|
2019-07-09 07:42:02 -04:00
|
|
|
align-items: center;
|
2020-08-03 22:57:10 -04:00
|
|
|
background-color: var(--tertiary-low);
|
|
|
|
border-top: 1px solid var(--primary-low);
|
2019-07-09 07:42:02 -04:00
|
|
|
display: flex;
|
2019-11-25 07:32:19 -05:00
|
|
|
max-width: calc(
|
|
|
|
#{$topic-body-width} + (#{$topic-body-width-padding} * 2) + #{$topic-avatar-width} -
|
|
|
|
(0.8em * 2)
|
|
|
|
);
|
2019-07-09 07:42:02 -04:00
|
|
|
padding: 0.8em;
|
2019-03-18 12:20:49 -04:00
|
|
|
|
|
|
|
&.old {
|
|
|
|
background-color: unset;
|
2020-08-03 22:57:10 -04:00
|
|
|
color: var(--primary-medium);
|
2019-03-19 09:43:56 -04:00
|
|
|
|
|
|
|
.d-icon {
|
2020-08-03 22:57:10 -04:00
|
|
|
color: var(--primary-medium);
|
2019-03-19 09:43:56 -04:00
|
|
|
}
|
2019-03-18 12:20:49 -04:00
|
|
|
}
|
2019-03-08 03:48:35 -05:00
|
|
|
|
|
|
|
p {
|
|
|
|
margin: 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
.d-icon {
|
2019-03-08 16:02:51 -05:00
|
|
|
font-size: 2em;
|
2020-08-03 22:57:10 -04:00
|
|
|
color: var(--primary-high);
|
2019-03-08 16:02:51 -05:00
|
|
|
margin-right: 0.65em;
|
2019-03-08 03:48:35 -05:00
|
|
|
}
|
|
|
|
}
|
2019-07-29 11:54:23 -04:00
|
|
|
|
|
|
|
#topic-footer-buttons {
|
2021-04-22 16:11:47 -04:00
|
|
|
margin: var(--below-topic-margin) 0;
|
|
|
|
padding: 0;
|
2020-05-23 00:56:13 -04:00
|
|
|
|
|
|
|
.topic-footer-main-buttons {
|
|
|
|
display: flex;
|
|
|
|
flex-wrap: wrap;
|
2021-01-27 21:40:45 -05:00
|
|
|
align-items: stretch; // aligns items by making them the same height
|
2021-11-12 04:21:34 -05:00
|
|
|
button,
|
|
|
|
details {
|
2021-01-27 16:17:08 -05:00
|
|
|
margin-right: 0.54em;
|
2020-05-23 00:56:13 -04:00
|
|
|
}
|
2021-03-17 22:42:52 -04:00
|
|
|
> * {
|
|
|
|
margin-bottom: 0.5em; // all immediate children should have a bottom margin in case of wrapping
|
|
|
|
}
|
2020-05-23 00:56:13 -04:00
|
|
|
.topic-admin-menu-button-container {
|
|
|
|
display: inline-flex;
|
2021-10-29 09:23:15 -04:00
|
|
|
.topic-admin-menu-button {
|
2021-01-27 21:40:45 -05:00
|
|
|
display: flex; // to make this button match siblings behavior, all of its parents need to be flex
|
|
|
|
}
|
2020-05-23 00:56:13 -04:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.pinned-button:not(.is-hidden) + .topic-notifications-button {
|
|
|
|
margin-top: 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
.pinned-button,
|
|
|
|
.topic-notifications-button {
|
2021-03-17 22:42:52 -04:00
|
|
|
margin: 0.5em 0 1em;
|
2020-05-23 00:56:13 -04:00
|
|
|
|
|
|
|
.reason {
|
2020-08-03 22:57:10 -04:00
|
|
|
color: var(--primary-high);
|
2020-05-23 00:56:13 -04:00
|
|
|
display: inline-flex;
|
|
|
|
margin: 0;
|
|
|
|
align-items: center;
|
|
|
|
|
2021-03-17 22:42:52 -04:00
|
|
|
.dropdown-select-box {
|
|
|
|
.select-kit-selected-name {
|
|
|
|
width: 100%;
|
|
|
|
overflow: hidden;
|
|
|
|
}
|
|
|
|
.name {
|
|
|
|
@include ellipsis;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2020-05-23 00:56:13 -04:00
|
|
|
.text {
|
|
|
|
margin-left: 0.5em;
|
2021-03-17 22:42:52 -04:00
|
|
|
line-height: $line-height-medium;
|
2020-05-23 00:56:13 -04:00
|
|
|
}
|
|
|
|
}
|
2019-07-29 11:54:23 -04:00
|
|
|
}
|
|
|
|
}
|
2020-05-29 02:05:21 -04:00
|
|
|
|
|
|
|
.post-admin-menu {
|
|
|
|
display: inline-flex;
|
|
|
|
flex-direction: column;
|
|
|
|
box-sizing: border-box;
|
|
|
|
width: auto;
|
|
|
|
max-width: 320px;
|
|
|
|
position: absolute;
|
|
|
|
text-align: left;
|
|
|
|
bottom: -2px;
|
|
|
|
right: 15px;
|
|
|
|
}
|
2020-12-10 12:02:07 -05:00
|
|
|
|
|
|
|
.posts-filtered-notice {
|
|
|
|
position: -webkit-sticky;
|
|
|
|
position: sticky;
|
|
|
|
background-color: var(--tertiary-low);
|
|
|
|
bottom: 0;
|
|
|
|
padding: 1em;
|
|
|
|
margin-top: 0.5em;
|
|
|
|
text-align: center;
|
|
|
|
z-index: 2;
|
|
|
|
display: flex;
|
|
|
|
justify-content: center;
|
|
|
|
align-items: center;
|
|
|
|
max-width: calc(
|
|
|
|
#{$topic-body-width} + (#{$topic-body-width-padding} * 2) + #{$topic-avatar-width} -
|
|
|
|
(0.8em * 2)
|
|
|
|
);
|
|
|
|
|
|
|
|
.filtered-avatar {
|
|
|
|
margin: 0 0.5em;
|
|
|
|
+ .names {
|
|
|
|
flex: inherit;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.filtered-replies-show-all {
|
|
|
|
margin-left: 1em;
|
|
|
|
}
|
|
|
|
|
|
|
|
.filtered-user-row {
|
|
|
|
@include ellipsis;
|
|
|
|
}
|
|
|
|
}
|
2021-04-22 11:28:35 -04:00
|
|
|
|
2021-04-28 10:48:00 -04:00
|
|
|
.pausable-animated-image {
|
2021-04-22 11:28:35 -04:00
|
|
|
position: relative;
|
2021-04-28 10:48:00 -04:00
|
|
|
display: inline-block;
|
|
|
|
|
|
|
|
> canvas,
|
|
|
|
> .animated-image-overlay {
|
2021-04-22 11:28:35 -04:00
|
|
|
position: absolute;
|
2021-04-28 10:48:00 -04:00
|
|
|
bottom: 0;
|
|
|
|
right: 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
> canvas {
|
|
|
|
background-color: var(--primary-very-low);
|
|
|
|
}
|
|
|
|
|
|
|
|
> .animated-image-overlay {
|
|
|
|
pointer-events: none;
|
|
|
|
text-align: right;
|
|
|
|
display: flex;
|
|
|
|
justify-content: flex-end;
|
|
|
|
align-items: flex-end;
|
|
|
|
> .d-icon {
|
|
|
|
cursor: pointer;
|
|
|
|
padding: 0.5em;
|
|
|
|
margin: 0.5em;
|
|
|
|
background-color: rgba(var(--always-black-rgb), 0.25);
|
|
|
|
color: var(--secondary-or-primary);
|
|
|
|
cursor: pointer;
|
|
|
|
display: none;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
img.animated {
|
|
|
|
cursor: pointer;
|
|
|
|
}
|
|
|
|
|
|
|
|
html.no-touch
|
|
|
|
&:not(.paused-animated-image)
|
|
|
|
.animated:hover
|
|
|
|
+ .animated-image-overlay
|
|
|
|
.d-icon-pause {
|
|
|
|
display: initial;
|
2021-04-22 11:28:35 -04:00
|
|
|
}
|
|
|
|
|
2021-04-28 10:48:00 -04:00
|
|
|
&.paused-animated-image
|
|
|
|
.animated.manually-paused
|
|
|
|
+ .animated-image-overlay
|
|
|
|
.d-icon-play {
|
|
|
|
display: initial;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.paused-animated-image {
|
2021-04-22 11:28:35 -04:00
|
|
|
img.animated {
|
|
|
|
// need to keep the image hidden but clickable
|
|
|
|
// so the user can resume animation
|
|
|
|
opacity: 0;
|
|
|
|
}
|
|
|
|
}
|
2021-10-25 15:06:28 -04:00
|
|
|
|
|
|
|
.open-popup-link {
|
|
|
|
position: sticky;
|
|
|
|
left: 0.5rem;
|
|
|
|
top: 0.5rem;
|
|
|
|
opacity: 0%;
|
|
|
|
white-space: nowrap;
|
|
|
|
display: block;
|
|
|
|
}
|
|
|
|
|
|
|
|
.fullscreen-table-wrapper {
|
|
|
|
transition: all 0.6s cubic-bezier(0.165, 0.84, 0.44, 1);
|
|
|
|
display: block;
|
|
|
|
}
|
|
|
|
|
|
|
|
.expand-table-icon {
|
|
|
|
margin-right: 4px;
|
|
|
|
}
|
|
|
|
|
2022-02-28 17:37:24 -05:00
|
|
|
.fullscreen-table-modal .modal-inner-container,
|
|
|
|
.fullscreen-code-modal .modal-inner-container {
|
2021-10-25 15:06:28 -04:00
|
|
|
width: max-content;
|
|
|
|
max-width: 90%;
|
|
|
|
margin: 0 auto;
|
|
|
|
padding: 10px;
|
|
|
|
|
|
|
|
.modal-body {
|
|
|
|
padding-top: 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
thead {
|
|
|
|
position: sticky;
|
|
|
|
top: 0;
|
|
|
|
z-index: 1;
|
|
|
|
background-color: var(--secondary);
|
|
|
|
}
|
|
|
|
|
|
|
|
tbody {
|
|
|
|
overflow-x: hidden;
|
|
|
|
}
|
|
|
|
|
|
|
|
td {
|
|
|
|
padding: 0.5rem;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2022-02-28 17:37:24 -05:00
|
|
|
.fullscreen-code-modal {
|
|
|
|
pre code {
|
|
|
|
max-width: none;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2021-10-25 15:06:28 -04:00
|
|
|
html.discourse-no-touch .fullscreen-table-wrapper:hover {
|
|
|
|
border-radius: 5px;
|
|
|
|
box-shadow: 0 2px 5px 0 rgba(var(--always-black-rgb), 0.1),
|
|
|
|
0 2px 10px 0 rgba(var(--always-black-rgb), 0.1);
|
|
|
|
.open-popup-link {
|
|
|
|
opacity: 100%;
|
|
|
|
}
|
|
|
|
}
|