0
0
Fork 0
mirror of https://github.com/discourse/discourse.git synced 2026-08-06 10:47:18 +08:00
discourse/plugins/discourse-details/assets/stylesheets/details.scss
Renato Atilio 25e80511f7
UX: rich editor [details] caret hover and padding (#33057)
Improves the styles for the [details] caret pseudo-element on the rich
editor.

Additionally, having `summary` have no `pointer-events` is important so
Firefox doesn't mess with our caret positioning when clicking it.
2025-06-03 15:23:21 -03:00

152 lines
2.6 KiB
SCSS
Vendored

details {
position: relative;
.topic-body .cooked &,
.d-editor-preview,
&.details__boxed,
.ProseMirror & {
background-color: var(--primary-very-low);
padding: 0.25rem 0.75rem;
margin-bottom: 0.5rem;
&:not([open]) {
&:hover,
&:focus,
&:focus-within {
background-color: var(--d-hover);
}
}
aside.quote .title,
blockquote,
code {
background-color: rgb(var(--primary-rgb), 0.05);
}
}
}
details.details__boxed {
summary {
font-weight: bold;
}
}
details,
summary {
outline: none;
}
summary {
> p {
margin-block: 0;
padding-block: 1rem;
}
}
summary:first-of-type {
cursor: pointer;
display: block;
}
summary::before {
content: "\25BA";
margin-right: 0.25em;
}
details[open] > summary::before,
details.open > summary::before {
content: "\25BC";
}
/* hide native indicator */
summary::-webkit-details-marker {
display: none;
}
.topic-body .cooked,
.d-editor-preview {
.elided {
background-color: unset;
padding: 0;
&:not([open]) {
// specificity needed to overrule non-elided
&:hover,
&:focus,
&:focus-within {
background-color: unset;
}
summary:hover {
background: var(--d-hover);
}
}
&[open] {
background: var(--primary-very-low);
padding: 0.5rem 0.75rem;
summary {
padding: 0;
}
}
summary::before {
content: "" !important;
display: none;
}
summary {
@include unselectable;
display: flex;
align-items: center;
justify-content: center;
text-align: center;
box-sizing: border-box;
margin: 0;
padding: 0.5rem 0.75rem;
color: var(--primary-medium);
background: var(--primary-very-low);
width: min-content;
line-height: 1;
&:hover,
&:focus,
&:focus-within {
color: var(--primary);
cursor: pointer;
}
}
}
}
.ProseMirror {
// No hover effect when editing - the hover is only on the caret
details {
&:not([open]) {
&:hover,
&:focus,
&:focus-within {
background-color: var(--primary-very-low);
}
}
}
summary {
// Important for Firefox so clicking on summary allows proper caret positioning
pointer-events: none;
&:hover {
&::before {
background: var(--primary-low);
}
}
&::before {
pointer-events: auto;
padding: var(--space-1) var(--space-2);
margin-left: calc(-1 * var(--space-2));
border-radius: var(--d-border-radius);
}
}
}