mirror of
https://github.com/discourse/discourse.git
synced 2025-03-01 16:08:55 +08:00

``` WARNING: Sass's behavior for declarations that appear after nested rules will be changing to match the behavior specified by CSS in an upcoming version. To keep the existing behavior, move the declaration above the nested rule. To opt into the new behavior, wrap the declaration in `& {}`. More info: https://sass-lang.com/d/mixed-decls ```
319 lines
6.6 KiB
SCSS
319 lines
6.6 KiB
SCSS
.timeline-loading {
|
|
width: 900px;
|
|
}
|
|
|
|
.timeline-container {
|
|
box-sizing: border-box;
|
|
z-index: z("timeline");
|
|
|
|
&.timeline-docked-bottom {
|
|
.timeline-footer-controls {
|
|
opacity: 0;
|
|
pointer-events: none;
|
|
cursor: default;
|
|
}
|
|
}
|
|
|
|
&.timeline-fullscreen.show {
|
|
max-height: 700px;
|
|
@media (prefers-reduced-motion: no-preference) {
|
|
transition: max-height 0.4s ease-out;
|
|
}
|
|
|
|
@media screen and (max-height: 425px) {
|
|
max-height: 75vh;
|
|
}
|
|
|
|
.topic-timeline {
|
|
.timeline-footer-controls {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
max-width: calc(100% - 9em); // 9em is the width of the timeline
|
|
}
|
|
}
|
|
|
|
.timeline-controls {
|
|
display: table-cell;
|
|
vertical-align: top;
|
|
}
|
|
}
|
|
|
|
&.timeline-fullscreen {
|
|
max-height: 0;
|
|
position: fixed;
|
|
margin-left: 0;
|
|
background-color: var(--secondary);
|
|
bottom: 0;
|
|
left: 0;
|
|
right: 0;
|
|
border-top: 1px solid var(--primary-low);
|
|
box-shadow: var(--shadow-composer);
|
|
padding: 20px 0;
|
|
z-index: z("fullscreen");
|
|
|
|
@media (prefers-reduced-motion: no-preference) {
|
|
transition: max-height 0.3s ease-in;
|
|
}
|
|
|
|
@media screen and (max-height: 425px) {
|
|
padding-top: 10px;
|
|
}
|
|
|
|
.back-button {
|
|
display: none;
|
|
}
|
|
|
|
.topic-timeline {
|
|
width: 100%;
|
|
table-layout: fixed;
|
|
margin-left: 0;
|
|
margin-right: 0;
|
|
display: table;
|
|
touch-action: none;
|
|
|
|
.timeline-date-wrapper {
|
|
text-align: right;
|
|
}
|
|
|
|
.post-excerpt {
|
|
max-width: 650px;
|
|
line-height: var(--line-height-large);
|
|
display: block;
|
|
@include line-clamp(8);
|
|
@media screen and (max-height: 425px) {
|
|
@include line-clamp(5);
|
|
}
|
|
}
|
|
|
|
.username {
|
|
color: var(--primary-high-or-secondary-low);
|
|
word-wrap: break-word;
|
|
font-weight: bold;
|
|
}
|
|
|
|
.title {
|
|
margin-top: 0;
|
|
padding-left: 1em;
|
|
display: table-cell;
|
|
vertical-align: top;
|
|
width: 100%;
|
|
|
|
h2 {
|
|
margin-top: 0;
|
|
display: block;
|
|
line-height: var(--line-height-medium);
|
|
font-size: var(--font-up-2);
|
|
@include line-clamp(4);
|
|
}
|
|
|
|
a {
|
|
color: var(--primary);
|
|
}
|
|
}
|
|
|
|
.timeline-last-read {
|
|
right: 0;
|
|
margin-left: 0;
|
|
|
|
.progress {
|
|
display: none;
|
|
}
|
|
}
|
|
|
|
.timeline-footer-controls {
|
|
display: none;
|
|
position: absolute;
|
|
bottom: 20px;
|
|
left: 10px;
|
|
|
|
.topic-admin-menu {
|
|
display: flex;
|
|
}
|
|
}
|
|
|
|
.timeline-scrollarea-wrapper {
|
|
display: table-cell;
|
|
padding-right: 1.5em;
|
|
width: 7em;
|
|
}
|
|
|
|
.timeline-scrollarea {
|
|
border-right: 1px solid var(--tertiary-low-or-tertiary-high);
|
|
border-left: none;
|
|
max-width: 120px;
|
|
|
|
.timeline-scroller {
|
|
position: relative;
|
|
margin-right: -1.5em;
|
|
padding-right: 1.5em;
|
|
justify-content: flex-end;
|
|
|
|
.timeline-scroller-content {
|
|
box-sizing: border-box;
|
|
max-width: 100%;
|
|
overflow: hidden;
|
|
text-align: right;
|
|
padding-left: 0;
|
|
padding-right: 1em;
|
|
}
|
|
|
|
.timeline-handle {
|
|
float: none;
|
|
width: 11px;
|
|
position: relative;
|
|
right: -6px;
|
|
}
|
|
}
|
|
|
|
.timeline-padding {
|
|
margin-left: 0;
|
|
margin-right: -1em;
|
|
}
|
|
}
|
|
}
|
|
|
|
.timeline-scrollarea-wrapper::after {
|
|
content: "";
|
|
display: table;
|
|
clear: both;
|
|
}
|
|
}
|
|
|
|
.topic-timeline {
|
|
transition: opacity 0.2s ease-in;
|
|
touch-action: none;
|
|
min-width: 6em;
|
|
|
|
.topic-admin-menu .btn {
|
|
height: 100%;
|
|
}
|
|
|
|
.timeline-controls {
|
|
margin-bottom: 1em;
|
|
}
|
|
|
|
.timeline-date-wrapper {
|
|
max-width: 9em;
|
|
overflow-wrap: anywhere;
|
|
}
|
|
|
|
.timeline-footer-controls {
|
|
// this is absolutely positioned to avoid
|
|
// adding extra height below short topics
|
|
// above the topic-footer-controls
|
|
position: absolute;
|
|
margin-top: 1em;
|
|
display: flex;
|
|
gap: 0.5em;
|
|
flex-wrap: wrap;
|
|
|
|
@media (prefers-reduced-motion: no-preference) {
|
|
transition: opacity 0.2s ease-in;
|
|
}
|
|
|
|
button:last-child {
|
|
margin-right: 0;
|
|
}
|
|
}
|
|
|
|
.start-date {
|
|
color: var(--primary-med-or-secondary-med);
|
|
}
|
|
|
|
.timeline-scrollarea {
|
|
margin-top: 0.5em;
|
|
margin-left: 0.5em;
|
|
border-left: 1px solid var(--tertiary-low-or-tertiary-high);
|
|
position: relative;
|
|
transform: translateZ(0);
|
|
}
|
|
|
|
.timeline-padding {
|
|
transition: height 0.15s ease-out;
|
|
cursor: pointer;
|
|
|
|
// this element has a click event
|
|
// the negative margin lets this element overlap
|
|
// the scrollarea's vertical track and thus it
|
|
// enables taps on the track to work
|
|
margin-left: -1em;
|
|
|
|
.widget-dragging & {
|
|
transition: none;
|
|
}
|
|
|
|
.dragging & {
|
|
transition: none;
|
|
}
|
|
}
|
|
|
|
.timeline-handle {
|
|
border-radius: 0.8em;
|
|
width: 0.35em;
|
|
background-color: var(--tertiary-low-or-tertiary-high);
|
|
height: 100%;
|
|
float: left;
|
|
z-index: z("base") + 1;
|
|
outline: 1px solid transparent;
|
|
margin-left: 0.5px;
|
|
}
|
|
|
|
.timeline-scroller-content {
|
|
box-sizing: border-box;
|
|
max-width: 100%;
|
|
overflow: hidden;
|
|
padding-left: 1em;
|
|
position: absolute; // prevents text length from impacting width
|
|
max-height: 3em; // this hides the date when the count + date would wrap to more than 2 lines
|
|
}
|
|
|
|
.timeline-ago {
|
|
color: var(--primary-med-or-secondary-med);
|
|
max-width: 4.6em;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
}
|
|
|
|
.timeline-scroller {
|
|
@include unselectable;
|
|
margin-left: -0.22em;
|
|
cursor: ns-resize;
|
|
display: flex;
|
|
align-items: center;
|
|
|
|
.back-button {
|
|
margin-top: 1em;
|
|
}
|
|
}
|
|
|
|
.timeline-replies {
|
|
overflow: hidden;
|
|
overflow-wrap: break-word;
|
|
font-weight: bold;
|
|
}
|
|
|
|
.timeline-last-read {
|
|
position: absolute;
|
|
margin-left: -0.35em;
|
|
z-index: z("base") + 2; // above timeline-handle
|
|
|
|
.progress {
|
|
font-size: 0.8em;
|
|
color: var(--tertiary);
|
|
margin-right: 1em;
|
|
}
|
|
}
|
|
|
|
.back-button {
|
|
min-height: unset;
|
|
padding: 2px 5px;
|
|
}
|
|
|
|
.now-date {
|
|
display: inline-block;
|
|
color: var(--primary-med-or-secondary-med);
|
|
margin-top: 0.5em;
|
|
}
|
|
}
|
|
}
|