discourse/app/assets/stylesheets/desktop/topic-post.scss
Jacob Chapel 0d0d9adb80 FIX: Make extra info header properly responseive
The current solution assumed the width of the logo which caused
the user info and icons bar to shift down when the title is shown.

This fixes that by making the extra info wrapper responsive
and use up the full width, not needing manual breakpoints.
2014-09-11 01:21:19 -07:00

1066 lines
20 KiB
SCSS

.container {
@extend .clearfix;
max-width: $large-width;
margin-right: auto;
margin-left: auto;
}
.full-width {
margin-left: 0;
}
h1 .topic-statuses .topic-status i {
font-size: 20px;
vertical-align: middle;
}
.logo-small {
margin-right: 8px;
width: auto;
max-width: 80px;
height: auto;
max-height: 40px;
}
.post-cloak {
padding: 0;
&:first-of-type {
border-top: none;
}
.reply-to-tab {
position: absolute;
right: 420px;
z-index: 400;
padding: 13px 6px 5px;
font-size: 12px;
color: scale-color($primary, $lightness: 50%);
}
.gutter {
.reply-new {
.discourse-no-touch & {
opacity:0;
transition: opacity linear 0.4s;
-webkit-transition: opacity linear 0.4s;
}
.discourse-touch & {opacity: 1;}
}
}
div.actions, .post-actions {
.discourse-no-touch & {
opacity: 0.2;
transition: opacity linear 0.4s;
-webkit-transition: opacity linear 0.4s;
}
.discourse-touch & {opacity: 1;}
}
&:hover div.actions, &:hover .post-actions {
opacity: 1;
}
&:hover .gutter {
.reply-new,
.track-link {
opacity:1;
}
}
}
section.post-menu-area {
position: relative;
}
nav.post-controls {
padding: 0;
button {
color: scale-color($primary, $lightness: 60%);
margin-right: 2px;
}
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 {
background: dark-light-diff($primary, $secondary, 90%, -65%);
padding: 8px 15px;
padding-bottom: 20px;
margin-left: 0;
span.badge-posts {color: scale-color($primary, $lightness: 60%);}
&:hover {
background: dark-light-diff($primary, $secondary, 90%, -65%);
span.badge-posts {color: $primary;}
}
i {
margin-left: 5px;
}
}
button.create {
margin-right: 0;
color: $tertiary;
background: dark-light-diff($tertiary, $secondary, 90%, -65%);
padding: 8px 20px;
margin-left: 10px;
&:hover { color: $secondary;
background: dark-light-diff($tertiary, $secondary, 0%, -20%)
}
&:active {
background: dark-light-diff($tertiary, $secondary, 50%, -35%);
@include box-shadow(inset 0 1px 3px rgba(0,0,0, .3));
}
}
.create i {
margin-right: 5px;
}
button {
font-size: 16px;
padding: 8px 10px;
vertical-align: top;
background: transparent;
border: none;
margin-left: 3px;
transition: all linear 0.15s;
&:hover {
background: scale-color-diff();
color: $primary;
}
&:active {
@include box-shadow(inset 0 1px 3px rgba(0,0,0, .4));
}
&.hidden {
display: none;
}
&.admin {
position: relative;
}
&.delete:hover {
background: $danger;
color: $secondary;
}
&.like:hover {
color: $love;
background: dark-light-diff($love, $secondary, 85%, -60%)
}
&.has-like {color: $love;}
&.has-like[disabled]:hover {
background: transparent;
}
&.bookmark {padding: 8px 11px; }
.read-icon {
&:before {
font-family: "FontAwesome";
content: "\f02e";
}
&.unseen {
&:before {
content: "\f097";
}
}
&.bookmarked {
&:before {
color: $tertiary;
}
}
}
}
.post-admin-menu {
background-color: $secondary;
width: 205px;
padding: 10px;
border: 1px solid scale-color-diff();
position: absolute;
text-align: left;
bottom: 0;
right: 0;
z-index: 1000;
display: none;
h3 {
margin-top: 0;
color: $primary;
font-size: 1em;
}
ul {
list-style: none;
margin: 10px 0 0 0;
}
li {
width: 176px;
margin-bottom: 5px;
i.fa {
width: 14px;
margin-right: 14px;
}
}
}
}
.embedded-posts {
h1, h2, h3 {margin: 10px 0;}
a.mention {background: darken(scale-color-diff(), 10%);}
p img {
max-width: 579px;
}
.topic-body {
width: 86%;
padding-left: 1%;
padding-right: 1%;
border: none;
}
.topic-avatar {
width: 45px;
margin: 0 10px 0 15px;
border: none;
}
// bottom means "reply expansion" below a post
&.bottom {
&.hidden {display: block; opacity: 0; }
}
&.bottom .arrow {float: right; margin: 0 0 0 0;}
&.bottom {
margin-top: -11px;
// WARNING *ONLY* DO THIS ON REPLY EXPANSIONS!
// auto-sizing of images causes massive havoc with regular post stream
// but we have to do this on reply expansions because the width is
// unavoidably narrower than a regular post
.lightbox-wrapper img {
width: 100%;
height: auto;
}
}
// top means "in reply to expansion" above a post
&.top {
margin-left: 56px;
width: 701px;
// WARNING *ONLY* DO THIS ON REPLY EXPANSIONS!
// auto-sizing of images causes massive havoc with regular post stream
// but we have to do this on reply expansions because the width is
// unavoidably narrower than a regular post
.lightbox-wrapper img {
width: 100%;
height: auto;
}
}
&.top.topic-body {padding-left: 0; padding-right: 0;}
.post-date {color: scale-color($primary, $lightness: 50%);}
.fa-arrow-up {margin-left: 5px;}
.row {border-top: 1px solid darken(scale-color-diff(), 10%); padding-top: 7px;}
.reply:first-of-type .row {border-top: none;}
background: dark-light-diff($primary, $secondary, 90%, -65%);
.quote .title, blockquote, .onebox, .onebox-result {
background: darken(scale-color-diff(), 5%);
border-left: 5px solid darken(scale-color-diff(), 12%);
}
.topic-meta-data {
position: relative;
}
.topic-meta-data h5 {
position: absolute;
z-index: 1;
font-size: 13px;
a {
font-weight: bold;
color: scale-color($primary, $lightness: 30%);
}
}
.arrow {color: scale-color($primary, $lightness: 50%);}
}
.bottom-round nav.post-controls .show-replies {
background: scale-color-diff();
margin-bottom: 0;
padding-bottom: 8px;
&:hover {background: scale-color-diff();
}
}
.post-action {
.relative-date {
margin-left: 5px;
}
.avatar { margin-right: 2px; }
}
a.star {
display: inline-block;
float: left;
}
.topic-map {
margin: 20px 0 0 0;
background: dark-light-diff($primary, $secondary, 90%, -65%);
.buttons .btn {
&:hover {border: 1px solid $primary !important;}
}
h3 {
margin-bottom: 4px;
color: $primary;
line-height: 23px;
}
h4 {
margin: 1px 0 2px 0;
color: scale-color($primary, $lightness: 50%);
font-weight: normal;
font-size: 12px;
line-height: 15px;
}
p,
.participants {
margin: 0 0 7px;
}
ul {
margin: 0;
list-style: none;
}
span.domain {
font-size: 10px;
color: scale-color($primary, $lightness: 50%);
}
.avatars {
> div {
float: left;
position: relative;
margin: 3px 0;
}
.post-count {
position: absolute;
top: 2px;
right: 6px;
padding: 0 4px;
font-weight: normal;
font-size: 11px;
line-height: 14px;
}
/* limit to one line of avatars for now */
height:30px;
overflow:hidden;
}
.avatar {
float: left;
margin-right: 4px;
}
.map {
.secondary {text-align: center;}
li {
float: left;
padding: 7px 10px;
&:last-of-type {
border-right: 0;
}
&:nth-child(3) { text-align:center; }
}
a, .number {
line-height: 20px;
}
.number, i {
color: $primary;
}
.avatar a {
float: left;
}
}
.avatars,
.links,
.information {
padding: 7px 10px;
color: $primary;
}
.information {
border-top: 2px solid scale-color-diff();
}
.participants { // PMs //
.user {float: left; margin: 7px 20px 7px 0;}
}
.topic-links {
.badge-notification {
margin: 1px 5px 5px 0;
}
}
td {
vertical-align: top;
padding:1px;
}
.buttons {
float: right;
.btn {
border: 0;
border-bottom: 1px solid dark-light-diff($primary, $secondary, 80%, -75%);
padding: 0 23px;
color: $primary;
background: dark-light-diff($primary, $secondary, 80%, -75%);
&:hover {
background: dark-light-diff($primary, $secondary, 65%, -85%);
color: $primary;
border: none !important;
border-bottom: 1px solid dark-light-diff($primary, $secondary, 65%, -85%) !important;
span.badge-posts {color: $primary;}
}
&.collapsed {
border-bottom: 0;
padding-bottom: 1px;
}
.fa {
margin: 0;
font-size: 18px;
line-height: 52px;
}
}
}
}
#topic-footer-buttons {
padding: 10px 10px 0 0;
p {
line-height: 32px;
color: $primary;
}
.btn {
margin-bottom: 5px;
margin-right: 10px;
.fa-star {margin-right: 5px;}
}
}
#suggested-topics {
clear: left;
padding: 20px 0 15px 0;
.topic-list {
> tbody > tr {
&:nth-child(odd) {
background-color: darken($secondary, 3%);
}
&:nth-child(even) {
background-color: $secondary;
}
}
}
table {
box-shadow: none;
border-radius: 0;
margin-top: 10px;
}
.title {
font-size: 14px; line-height: 8px;
}
}
span.post-count {
background: $primary;
color: $secondary;
opacity: .8;
}
button.expand-post {
margin-top: 10px;
}
.quote-button.visible {
display: block;
}
iframe {
max-width: 100%;
}
.extra-info-wrapper {
overflow: hidden;
.topic-statuses {
i { color: $header_primary; }
i.fa-envelope { color: $danger; }
.unpinned { color: $header_primary; }
}
.topic-link {
color: $header_primary;
display: block;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
}
.extra-info {
h1 {
margin: 5px 0 0 0;
font-size: 1.6em;
line-height: 1.3em;
}
a.star {
margin-right: 7px;
font-size: 20px;
margin-top: 6px;
color: dark-light-diff($secondary, $primary, 80%, -20%) !important;
}
a.star.starred {color: $danger !important;}
.topic-statuses {
margin-top: -2px;
}
.badge-category {
vertical-align: top;
margin-top: 2px;
float: left;
margin-right: 5px;
}
}
.open >.dropdown-menu {
display: block;
}
.btn-group {
position: relative;
}
.dropdown-toggle {
float: left;
position: relative;
}
a.mention {
padding: 2px 4px;
color: $primary;
background: scale-color-diff();
}
.modal-body {
input[type=text] {
font-size: 16px;
}
}
.moderator {
.topic-body {
background-color: dark-light-diff($highlight, $secondary, 50%, -80%);
}
}
.deleted {
.topic-body {
background-color: dark-light-diff(rgba($danger,.7), $secondary, 50%, -60%);
}
}
#share-link {
width: 365px;
margin-left: -4px;
}
.post-select {
float: right;
margin-right: 20px;
margin-top: -20px;
}
#show-topic-admin {
right: 20px;
padding: 5px 8px;
margin-top: 5px;
}
.topic-admin-menu {
h3 {margin-top: 0;}
}
.deleted-user-avatar {
font-size: 36px;
}
.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;
a.mention {background: darken(scale-color-diff(), 10%);}
}
// 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;
}
/* quotes with attribution */
.quote {
&>blockquote {
.onebox-result {
background-color: scale-color-diff();
}
}
.title {
border-left: 5px solid darken(scale-color-diff(), 10%);
background-color: scale-color-diff();
color: scale-color($primary, $lightness: 30%);
padding: 12px 12px 0 12px;
/* blockquote is underneath this and has top margin */
.avatar { margin-right: 7px; }
img { margin-top: -4px; }
}
aside {
.quote, .title, blockquote, .onebox, .onebox-result {
background: darken(scale-color-diff(), 5%);
border-left: 5px solid darken(scale-color-diff(), 12%);
}
aside.quote>blockquote, aside.quote>.title {
border-left: 0;
}
}
}
.quote-controls, .quote-controls .back:before, .quote-controls .quote-other-topic:before {
color: scale-color($primary, $lightness: 50%);
}
.gutter {
margin-top: 13px;
width: 100%;
box-sizing: border-box;
z-index: 1;
padding-left: 757px;
ul {margin: 0;}
li {margin-bottom: 10px;}
i {font-size: 12px;}
.reply-new, .track-link {
padding-left: 27px;
display: block;
overflow: hidden;
}
.post-links {
list-style-type: none;
position: relative;
line-height: 18px;
word-wrap: break-word;
a i {
position: relative;
margin-right: 7px;
margin-top: -2px;
margin-left: -17px;
}
a.track-link {color: scale-color($primary, $lightness: 50%);}
a.toggle-more {
display: block;
text-align: right;
}
}
}
// variables are used to calculate the width of .gap
$topic-body-width: 690px;
$topic-body-width-padding: 11px;
$topic-avatar-width: 45px;
.topic-body {
width: $topic-body-width;
float: left;
position: relative;
z-index: 2;
border-top: 1px solid dark-light-diff($primary, $secondary, 90%, -75%);
padding: 12px $topic-body-width-padding 15px $topic-body-width-padding;
&.highlighted {
background-color: dark-light-diff($tertiary, $secondary, 90%, -40%);
}
}
.topic-avatar {
border-top: 1px solid dark-light-diff($primary, $secondary, 90%, -75%);
padding-top: 16px;
width: $topic-avatar-width;
float: left;
position: relative;
z-index: 2;
}
.gap {
background-color: scale-color-diff();
padding: 5px 0;
color: lighten($primary, 30%);
cursor: pointer;
text-align: center;
width: calc(#{$topic-avatar-width} + #{$topic-body-width} + 2 * #{$topic-body-width-padding});
}
.posts-wrapper {
position: relative;
}
.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: 1000;
display: none;
float: left;
width: 550px;
margin: 1px 0 0;
list-style: none;
background-color: $secondary;
border: 1px solid scale-color-diff();
box-shadow: 0 1px 5px rgba(0,0,0, .4);
background-clip: padding-box;
span {font-size: 12px;}
.title {font-weight: bold; display: block; font-size: 14px;}
}
.dropdown-menu a {
display: block;
padding: 9px;
clear: both;
font-weight: normal;
line-height: 18px;
color: $primary;
& > 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: dark-light-diff($highlight, $secondary, 50%, -70%);
}
.dropdown-menu .disabled > a,
.dropdown-menu .disabled > a:hover {
text-decoration: none;
color: $primary;
background-color: dark-light-diff($tertiary, $secondary, 90%, -60%);
cursor: default;
}
.dropdown-menu .icon {
margin-top: 3px;
float: left;
font-size: 18px;
}
.open > .dropdown-menu {
display: block;
clear: both;
}
#selected-posts {
padding-left: 20px;
margin-left: 330px;
width: 200px;
position: fixed;
z-index: 1000;
left: 50%;
background-color: dark-light-diff($tertiary, $secondary, 90%, -40%);
border: 1px solid $tertiary;
padding: 5px;
margin-bottom: 5px;
button {
width: 180px;
margin: 4px auto;
display: inline-block;
text-align: left;
}
&.hidden {
display: none;
}
.controls {
margin-top: 10px;
}
p {
font-size: 13px;
margin: 0 0 10px 0;
}
p.cancel {
margin: 10px 0 0 0;
}
h3 {
font-size: 25px;
color: $primary;
margin-bottom: 5px;
i {
margin-right: 7px;
}
}
.btn {
border: none;
color: $secondary;
font-weight: normal;
margin-bottom: 10px;
background: scale-color($tertiary, $lightness: 50%);
&[href] {
color: $secondary;
}
&:hover
{
color: $secondary;
background: scale-color($tertiary, $lightness: 20%);
}
&:active {
@include linear-gradient(darken($tertiary, 18%), darken($tertiary, 12%));
@include box-shadow(inset 0 1px 3px rgba(0,0,0, 0.2));
color: $secondary;
}
&[disabled] {
text-shadow: 0 1px 0 rgba($primary, 0.2);
@include linear-gradient($tertiary, darken($tertiary, 20%));
@include box-shadow((inset 0 1px 0 rgba(0,0,0, 0.33), inset 0 -1px 2px rgba($primary, 0.2)));
}
}
}
.topic-post {
&.selected {
article.boxed {
.select-posts {
button.select-post {
background-color: scale-color($tertiary, $lightness: 50%);
color: $secondary;
}
}
.topic-body {
.contents:after {
display: none;
}
}
}
}
article.boxed {
position: relative;
.select-posts {
position: absolute;
right: 5px;
z-index: 490;
top: 4px;
button {
background-color: scale-color($primary, $lightness: 70%);
border-top: 1px solid $tertiary;
border-left: 1px solid $tertiary;
border-bottom: 1px solid scale-color-diff();
border-right: 1px solid scale-color-diff();
color: $primary;
}
}
}
}
a.attachment:before {
display: inline-block;
margin-right: 4px;
font-family: "FontAwesome";
content: "\f019";
}
.private_message .gutter, .deleted-topic .gutter,.read_restricted .gutter {
position: relative;
}
.deleted-topic .gutter:before {
display: block;
position: absolute;
left: 767px;
color: rgba(dark-light-diff($primary, $secondary, 90%, -65%) , .8);
font: 90px/1 FontAwesome;
content: "\f05c";
z-index: -5;
}
.topic-meta-data {
&:after {
visibility: hidden;
display: block;
font-size: 0;
content: " ";
clear: both;
height: 0;
}
.post-info {
display: inline-block;
float: right;
font-size: 12px;
margin-top: 1px;
a {color: scale-color($primary, $lightness: 50%);}
}
}
span.highlighted {
background-color: dark-light-diff($tertiary, $secondary, 90%, -40%);
}
.username.new-user a {
color: scale-color($primary, $lightness: 70%);
}
.read-state {
color: scale-color($tertiary, $lightness: 50%);
position: absolute;
right: -2px;
top: 13px;
font-size: 8px;
}
.read-state.read {
opacity: 0;
-webkit-transition: opacity 1s ease-out;
transition: opacity 1s ease-out;
}
/* Tablet (portrait) ----------- */
@media all
and (max-width : 1140px) {
.post-cloak .reply-to-tab {
right: 320px;
}
}
@media all
and (max-width : 975px) {
.post-cloak .reply-to-tab {
right: 300px;
}
}
@media all
and (max-width : 940px) {
.post-cloak .reply-to-tab {
right: 250px;
}
}
@media all
and (max-width : 870px) {
.gutter {
display: none;
}
.topic-avatar {
width: 5%;
}
.post-cloak .reply-to-tab {
right: 15%;
}
.topic-body {
width: 91%;
padding-left: 2%;
}
.embedded-posts {
// top means "in reply to expansion" above a post
&.top {
margin-left: 6%;
width: 91%;
}
}
}