.wrap { max-width: $large-width; } .full-width { margin-left: 0; } .topic-post:first-child { nav.post-controls .post-admin-menu { bottom: -125px; } } .topic-body { // this ensures consistent top margin on topic posts even if the first line of a post // is a top-margin-less element like a list or image. .regular { margin-top: 15px; } padding: 0; &:first-of-type { border-top: none; } .reply-to-tab { z-index: z("base") + 1; color: dark-light-choose($primary-medium, $secondary-medium); } .actions .fade-out { .discourse-no-touch & { opacity: 0.7; transition: background 0.25s, opacity 0.7s ease-in-out; } .discourse-touch & { opacity: 1; } } &:hover .actions .fade-out, .selected .actions .fade-out { opacity: 1; } } section.post-menu-area { position: relative; padding-left: 11px; } .post-links-container { margin-left: 11px; } nav.post-controls { padding: 0; // Some buttons can be doubled up, like likes or flags .double-button { display: inline-flex; color: $primary-low-mid; margin-right: 0.15em; &:hover { button { background: $primary-low; color: $primary-medium; } } button { // It looks really confusing when one half a double button has an inner shadow on click. &:active { box-shadow: none; } margin-left: 0; margin-right: 0; &.my-likes, &.read-indicator, &.regular-likes { // Like count on posts .d-icon { color: $primary-low-mid; padding-left: 0.45em; } } &.like { // Like button with 0 likes &.d-hover { background: $love-low; .d-icon { color: $love; } } } &.has-like { // Like button after I've liked .d-icon { color: $love; } &.d-hover { background: $primary-low; .d-icon { color: $primary-medium; } } } &[disabled] { // Disabled like button cursor: not-allowed; } &.button-count { // Like count button &:not(.my-likes) { padding-right: 0; } &.d-hover { color: $primary; } + .toggle-like { // Like button when like count is present padding-left: 0.45em; &.d-hover { background: $primary-low; } } } } } a, button { color: dark-light-choose($primary-low-mid, $secondary-high); .d-icon { opacity: 1; } margin-right: 2px; display: inline-block; } a.toggle-likes { padding: 8px 0; margin-right: -3px; } span.badge-posts { margin-right: 5px; transition: all linear 0.15s; } .actions { text-align: right; float: right; display: inline-block; .more-actions { display: none; overflow: hidden; } } .show-replies { margin-left: -10px; font-size: inherit; span.badge-posts { color: dark-light-choose($primary-medium, $secondary-high); } &:hover { background: $primary-low; span.badge-posts { color: $primary; } } .d-icon { margin-left: 5px; font-size: $font-down-1; } } button.create { margin-right: 0; color: dark-light-choose($primary-high, $secondary-low); margin-left: 10px; .d-icon { color: dark-light-choose($primary-high, $secondary-low); } } .create .d-icon { margin-right: 5px; } button { font-size: $font-up-1; padding: 8px 10px; vertical-align: top; background: transparent; border: none; margin-left: 3px; &.d-hover, &:focus { background: $primary-low; color: $primary; } &:active { box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.4); } &.hidden { display: none; } &.admin { position: relative; } &.delete.d-hover, &.delete:hover, &.delete:focus { background: $danger; color: $secondary; .d-icon { color: $secondary; } } &.bookmark { padding: 8px 11px; &.bookmarked .d-icon { color: $tertiary; } } } .post-admin-menu { display: inline-flex; flex-direction: column; box-sizing: border-box; background-color: $secondary; width: auto; max-width: 320px; padding: 10px; border: 1px solid $primary-low; position: absolute; text-align: left; bottom: -2px; right: 15px; z-index: z("dropdown"); h3 { margin-top: 0; color: $primary; font-size: $font-0; } ul { list-style: none; margin: 10px 0 0 0; } li { margin-bottom: 5px; .d-icon { width: 14px; margin-right: 10px; } } } } pre.copy-codeblocks .copy-cmd:not(.copied) { opacity: 0; transition: 0.2s; visibility: hidden; } pre.copy-codeblocks:hover .copy-cmd { opacity: 1; visibility: visible; } .embedded-posts { h1, h2, h3 { margin: 10px 0; } border: 1px solid $primary-low; .topic-body { box-sizing: border-box; width: calc(100% - 70px); // [100% - .topic-avatar width] // WARNING: overflow hide is required for quoted / embedded images // which expect "normal" post width, but expansions are narrower overflow: hidden; } // this is covered by .topic-body .regular on a normal post // but no such class structure exists for an embedded, expanded post .cooked { margin-top: 15px; } .topic-avatar { padding-left: 25px; padding-top: 15px; } .collapse-down, .collapse-up { position: absolute; color: $primary-medium; background: $secondary; border: 1px solid $primary-low; padding: 6px 9px 8px; z-index: 99; // Needs to be higher than topic-avatar .d-icon { color: currentColor; } .discourse-no-touch & { &:hover { background: $primary-low; color: $primary-high; .d-icon { color: currentColor; } } } } // bottom means "reply expansion" below a post &.bottom { border-top: none; margin-bottom: 20px; margin-left: 11px; &.hidden { display: block; opacity: 0; } } &.bottom { .collapse-up { transform: translate(-50%, -164%); } .row { padding-bottom: 0.5em; .topic-avatar, .topic-body { border-top: 1px solid $primary-low; } } } // top means "in reply to expansion" above a post &.top { border-bottom: none; .collapse-down { transform: translate(-50%, 55%); } margin-left: 56px; width: 699px; .row { border-bottom: none; .topic-avatar, .topic-body { border-top: 1px solid $primary-low; } } } &.top.topic-body { padding: 0; } .post-date { color: dark-light-choose($primary-medium, $secondary-high); } .d-icon-arrow-up, .d-icon-arrow-down { margin-left: 5px; } .reply:first-of-type .row { border-top: none; } .topic-meta-data { position: relative; } .topic-meta-data h5 { position: absolute; z-index: z("base"); font-size: $font-down-1; a { font-weight: bold; color: dark-light-choose($primary-low-mid, $secondary-high); } } .arrow { color: dark-light-choose($primary-medium, $secondary-high); } } .post-action { .relative-date { margin-left: 5px; } .avatar { margin-right: 2px; } } .topic-map { margin: 20px 0 20px 11px; .map { .secondary { text-align: center; } li { float: left; padding: 7px 10px; &:last-of-type { border-right: 0; } &:nth-child(3) { text-align: center; } } .number { color: $primary-high; } .number, .d-icon { font-size: $font-up-2; line-height: $line-height-medium; } button .d-icon, button:hover .d-icon { color: $primary-high; } .avatar a { float: left; } .topic-map-post { margin-top: 6px; } } .avatars, .links, .information { padding: 7px 10px 7px 10px; color: $primary; } .buttons { float: right; .btn { border: 0; padding: 0 23px; color: dark-light-choose($primary-medium, $secondary-high); background: blend-primary-secondary(5%); border-left: 1px solid $primary-low; border-top: 1px solid transparent; &:hover { color: $primary; background: $primary-low; } &.collapsed { padding-bottom: 1px; } .fa { margin: 0; font-size: $font-up-2; line-height: 52px; } } } .link-summary .btn { color: dark-light-choose($primary-medium, $secondary-high); background: blend-primary-secondary(5%); width: 100%; &:hover { color: $primary; background: dark-light-diff($primary, $secondary, 90%, -80%); } } } #topic-footer-buttons { max-width: calc(690px + (11px * 2) + 45px); .bookmark { .d-icon-bookmark.bookmarked { color: $tertiary; } } .bookmark.bookmarked .d-icon-bookmark, .bookmark.bookmarked .d-icon-discourse-bookmark-clock { color: $tertiary; } .feature-on-profile.featured-on-profile .d-icon-id-card { color: $tertiary; } } .suggested-topics { clear: left; padding: 20px 0 15px 0; table { margin-top: 10px; } } .suggested-topics .topic-statuses .topic-status { padding: 0; .d-icon { font-size: 1em; } } span.post-count { background: $primary; color: $secondary; opacity: 0.8; } button.expand-post { margin-top: 10px; margin-left: $topic-body-width-padding; } .quote-button.visible { display: block; } iframe { max-width: 100%; } video { max-height: 500px; } .video { // Height determined by aspect-ratio max-height: 500px; > video { max-height: unset; } } @-webkit-keyframes fadein { from { opacity: 0; } to { opacity: 1; } } @keyframes fadein { from { opacity: 0; } to { opacity: 1; } } .open > .dropdown-menu { display: block; } .btn-group { position: relative; } .dropdown-toggle { float: left; position: relative; } .deleted { .topic-body { background-color: dark-light-diff( rgba($danger, 0.7), $secondary, 50%, -60% ); } } .post-select { float: right; margin-right: 20px; margin-top: -20px; } .deleted-user-avatar { font-size: $font-up-6; } .info-line { margin: 10px 0; color: $primary; } /* solo quotes */ blockquote { /* leave browser defaults for top and bottom here */ margin-left: 0; margin-right: 0; padding: 12px; } /* quotes with attribution */ .quote { & > blockquote { .onebox-result { background-color: $primary-very-low; } } aside { .quote, .title, blockquote, .onebox, .onebox-result { background: $primary-very-low; border-left: 5px solid $primary-low; } aside.quote > blockquote, aside.quote > .title { border-left: 0; } } } // variables are used to calculate the width of .gap .topic-body { width: calc(#{$topic-body-width} + (#{$topic-body-width-padding} * 2)); float: left; position: relative; border-top: 1px solid $primary-low; padding: 12px 0 0 0; .topic-meta-data, .cooked { padding: 0 $topic-body-width-padding 0.25em $topic-body-width-padding; } .group-request { padding: 0.5em $topic-body-width-padding 0 $topic-body-width-padding; } a.expand-hidden { padding-left: $topic-body-width-padding; } } .topic-avatar { border-top: 1px solid $primary-low; padding-top: 15px; width: $topic-avatar-width; float: left; z-index: z("base") + 1; } .gap { width: calc( #{$topic-avatar-width} + #{$topic-body-width} + 2 * #{$topic-body-width-padding} ); box-sizing: border-box; } /* hide the reply border above the time gap notices */ .time-gap + .topic-post .topic-body, .time-gap + .topic-post .topic-avatar { border-top: none; } .time-gap + .topic-post .embedded-posts.top { border-bottom: 1px solid $primary-low; } .posts-wrapper { position: relative; -webkit-font-smoothing: subpixel-antialiased; } .dropdown { position: relative; } .caret { display: inline-block; width: 0; height: 0; vertical-align: middle; border-top: 4px solid $primary; border-right: 4px solid transparent; border-left: 4px solid transparent; content: ""; margin-left: 5px; } .dropdown-menu { position: absolute; bottom: 115%; left: 0; z-index: z("dropdown"); display: none; float: left; width: 550px; margin: 1px 0 0; list-style: none; background-color: $secondary; border: 1px solid $primary-low; box-shadow: shadow("dropdown"); background-clip: padding-box; span { font-size: $font-down-1; color: dark-light-choose($primary-medium, $secondary-medium); } span.title { font-weight: bold; display: block; font-size: $font-0; color: $primary; } } .dropdown-menu a { display: block; padding: 9px; clear: both; font-weight: normal; line-height: $line-height-medium; color: $primary; transition: all linear 0.15s; & > div { margin-left: 26px; } } .dropdown-menu li > a:hover, .dropdown-menu .active > a, .dropdown-menu .active > a:hover { color: $primary; text-decoration: none; background-color: $highlight-medium; } .dropdown-menu .disabled > a, .dropdown-menu .disabled > a:hover { text-decoration: none; color: $primary; background-color: $tertiary-low; cursor: default; } .dropdown-menu .icon { margin-top: 3px; float: left; font-size: $font-up-2; } .open > .dropdown-menu { display: block; clear: both; } .selected-posts { width: 200px; position: fixed; z-index: z("dropdown"); box-shadow: shadow("card"); padding: 0.714em; margin-bottom: 5px; right: 10px; @include breakpoint(extra-large, min-width) { right: auto; margin-left: 330px; left: 50%; } button { width: 100%; margin: 4px auto; display: inline-block; text-align: left; } &.hidden { display: none; } .controls { margin-top: 10px; } p { font-size: $font-down-1; margin: 0 0 10px 0; } p.cancel { margin: 10px 0 0 0; } h3 { font-size: $font-up-4; color: $primary; margin-bottom: 5px; .d-icon { margin-right: 7px; } } } a.attachment:before { display: inline-block; margin-right: 4px; // ideally, the SVG used here should be in HTML and reference the SVG sprite content: svg-uri( '' ); vertical-align: middle; } .topic-meta-data { align-items: center; .names { display: flex; align-items: center; } &:after { visibility: hidden; display: block; font-size: 0; content: " "; clear: both; height: 0; } .post-info { a { color: dark-light-choose($primary-medium, $secondary-medium); } a.wiki { color: $wiki; } } } .who-liked, .who-read { margin-top: 20px; margin-bottom: 0; width: 100%; text-align: right; } span.highlighted { background-color: $tertiary-low; } .first.new-user:not(.staff) a { color: $primary-low-mid; } .read-state { position: absolute; // We use absolute positioning here because we want it to display in the padding align-self: center; color: $tertiary-medium; right: 0; font-size: 0.571em; } .read-state.read { visibility: hidden; opacity: 0; transition: visibility 1s, opacity ease-out 1s; } .signup-cta { width: $topic-body-width; } /* Tablet (portrait) ----------- */ @media all and (max-width: 790px) { .topic-avatar { width: 45px; } .topic-post .reply-to-tab { right: 15%; } .topic-body { box-sizing: border-box; width: calc(100% - 47px); //100% - [width of .topic-avatar + 2px] } .embedded-posts { // top means "in reply to expansion" above a post &.top { width: calc(100% - 56px); // [100% - margin-left] } } }