discourse/app/assets/stylesheets/common/base/topic.scss

410 lines
8.2 KiB
SCSS

@keyframes button-jump-up {
0% {
margin-bottom: -60px;
}
50% {
margin-bottom: 10px;
}
65% {
margin-bottom: 0px;
}
77% {
margin-bottom: 5px;
}
100% {
margin-bottom: 0px;
}
}
[class*="archetype-"] {
--below-topic-margin: 0.75em;
}
.container.posts {
display: grid;
grid-template-areas: "posts timeline";
grid-template-columns: auto auto;
margin-bottom: var(--below-topic-margin);
> .row {
grid-area: posts;
max-width: calc(
100vw - 16px
); // 16px is the left + right padding on .wrap in common/base/discourse.scss
}
.timeline-container {
margin-left: unset !important;
/* This is a temporary override to ease the transition
to the sticky position timeline for themes with custom timeline positioning.
Without this those themes would render topics unreadable. */
}
// timeline
@media screen and (min-width: 925px) {
// at 925px viewport width and above the timeline is visible (see topic-navigation.js)
.topic-navigation {
grid-area: timeline;
align-self: start;
@include sticky;
top: 6em;
margin-left: 1em;
z-index: z("timeline");
}
}
// progress bar
@media screen and (max-width: 924px) {
// at 924px viewport width and below the progress bar is visible (see topic-navigation.js)
grid-template-areas: "posts posts";
.timeline-container:not(.timeline-fullscreen) {
display: none; // hiding this because sometimes the JS switch lags and causes layout issues
}
.timeline-container {
.timeline-scroller-content {
position: relative;
}
}
}
}
@media screen and (max-width: 924px) {
.post-stream {
// make space for the topic progress bar to dock
padding-bottom: 2em;
}
}
.progress-back-container {
z-index: z("dropdown");
margin-right: 0;
animation-duration: 0.5s;
animation-name: button-jump-up;
width: 145px;
text-align: center;
margin-bottom: 0px;
position: absolute;
right: 0;
top: -120%; // above parent container + some extra space
.btn {
margin: 0;
}
}
#topic-progress-wrapper {
display: flex;
right: 9px; // 8px padding on #main-outlet + 1px right border
.topic-admin-menu-button-container {
display: flex;
> span {
display: flex;
}
}
.topic-admin-popup-menu.right-side {
position: absolute;
bottom: 0;
right: 0;
left: auto;
transition: bottom 0.5s;
transform: translateZ(
0
); // iOS11 Rendering bug https://meta.discourse.org/t/wrench-menu-not-disappearing-on-ios/94297
}
}
#topic-progress-wrapper.docked {
.topic-admin-popup-menu.right-side {
bottom: -150px; // Prevents menu from being too high when a topic is very short
}
}
.topic-status-info,
.topic-timer-info {
border-top: 1px solid var(--primary-low);
margin: 0;
max-width: 758px;
&:empty {
padding: 0;
}
span .d-icon {
font-size: $font-down-1;
}
.topic-timer-heading,
.slow-mode-heading {
display: flex;
align-items: center;
margin: 0;
padding: var(--below-topic-margin) 0;
}
.slow-mode-remove,
.topic-timer-modify {
display: flex;
margin-left: auto;
align-self: flex-start;
}
button {
font-size: $font-down-2;
background: transparent;
}
}
.title-wrapper {
display: flex;
flex-wrap: wrap;
button {
margin: 0 0.5em 0 0;
}
a.topic-featured-link {
display: inline-block;
}
.topic-statuses {
line-height: 1.2;
margin-right: 0.15em;
&:empty {
margin-right: 0;
}
.d-icon {
color: var(--primary-medium);
}
}
}
h1 {
margin: 0 0 4px 0;
}
a.badge-category {
margin-top: 5px;
}
#topic-title {
.title-wrapper {
display: flex;
flex-wrap: wrap;
width: 90%;
a.topic-featured-link {
display: inline-block;
}
}
h1 {
margin: 0 0 4px 0;
width: 100%;
}
a.badge-category {
margin-top: 5px;
}
a.edit-topic .d-icon {
font-size: 0.8em;
}
.edit-topic-title {
display: flex;
flex-wrap: wrap;
box-sizing: border-box;
max-width: 758px;
#edit-title {
flex: 1 1 auto;
}
.category-chooser,
.mini-tag-chooser {
flex: 1 1 49%;
margin: 0 0 9px 0;
@media all and (max-width: 500px) {
flex: 1 1 100%;
}
}
.mini-tag-chooser {
margin-left: 2%;
@media all and (max-width: 500px) {
margin-left: 0;
}
}
.select-kit .category-row {
max-width: unset;
}
}
}
.private-message-glyph {
color: var(--primary-medium);
height: 0.95em;
}
.private-message-glyph-wrapper {
float: left;
margin-right: 0.25em;
}
.private_message {
#topic-title {
.edit-topic-title {
position: relative;
.private-message-glyph {
position: absolute;
left: 0.75em;
top: 6px;
}
#edit-title {
width: calc(100% - 50px);
padding-left: 2.25em;
}
.mini-tag-chooser {
margin-left: 0;
@include breakpoint(mobile-large, min-width) {
.selected-name {
max-width: 500px;
}
}
}
}
}
}
.topic-title-outlet {
clear: both;
}
.has-pending-posts {
display: flex;
justify-content: space-between;
padding: 0.5em;
background-color: var(--highlight-medium);
margin-top: 1em;
max-width: 757px;
}
.suggested-topics-wrapper.related-messages-wrapper {
.suggested-topics:nth-of-type(n + 2) {
thead {
display: none;
}
}
}
// Target the .badge-category text, the bullet icon needs to maintain `display: block`
.suggested-topics h3 .badge-wrapper.bullet span.badge-category,
.suggested-topics h3 .badge-wrapper.box span,
.suggested-topics h3 .badge-wrapper.bar span {
display: inline;
}
.suggested-topics h3 .badge-wrapper.bullet span.badge-category {
// Override vertical-align: text-top from `badges.css.scss`
vertical-align: baseline;
line-height: $line-height-medium;
}
.suggested-topics h3 .badge-wrapper.bullet,
.suggested-topics h3 .badge-wrapper.bullet span.badge-category-parent-bg,
.suggested-topics h3 .badge-wrapper.bullet span.badge-category-bg {
// Top of bullet aligns with top of line - adjust line height to vertically align bullet.
line-height: 0.8;
}
.suggested-topics .badge-wrapper.bullet span.badge-category,
.suggested-topics .badge-wrapper.bar span.badge-category {
max-width: 150px;
}
.suggested-topics .suggested-topics-title {
display: flex;
align-items: center;
}
.post-links-container {
@include unselectable;
clear: both;
.post-links {
margin-top: 1em;
padding-top: 1em;
border-top: 1px solid var(--primary-low);
li:last-of-type {
margin-bottom: 1em;
}
}
.expand-links {
color: var(--primary-med-or-secondary-med);
}
.track-link {
display: flex;
align-items: center;
span:not(.badge) {
@include ellipsis;
}
}
ul {
margin: 0;
list-style: none;
li {
margin-bottom: 0.5em;
a[href] {
color: var(--primary-med-or-secondary-med);
}
.clicks {
margin-left: 0.5em;
flex: 0 0 auto;
}
.d-icon {
font-size: $font-down-2;
margin: 0 0.5em 0 0;
}
}
}
a.reply-new {
.d-icon {
background: var(--secondary);
border-radius: 20px;
transition: all linear 0.15s;
}
&:hover {
color: var(--tertiary);
.d-icon {
background: var(--tertiary-low);
}
}
}
}
a.topic-featured-link {
display: inline-block;
text-transform: lowercase;
color: var(--primary-med-or-secondary-med);
font-size: 0.875rem;
.d-icon {
margin-right: 3px;
}
}
.topic-area {
.pending-posts {
max-width: calc(
#{$topic-body-width} + #{$topic-avatar-width} + #{$topic-body-width-padding *
2}
);
.reviewable-item {
.post-body {
max-height: unset;
}
}
}
}
.published-page-notice {
display: flex;
justify-content: space-between;
padding-bottom: 1em;
max-width: calc(
#{$topic-body-width} + #{$topic-avatar-width} + #{$topic-body-width-padding *
2}
);
align-items: center;
.is-public {
padding: 0.25em 0.5em;
font-size: $font-down-2;
background: var(--tertiary);
color: var(--secondary);
border-radius: 3px;
text-transform: lowercase;
}
}