// discussion - elements - navigation // ==================== // ------ // Discussion Forums Page Header // ------ .discussion-board > .page-header { .has-breadcrumbs .breadcrumbs { margin-bottom: calc(var(--baseline) / 2); font-size: font-size(base); font-weight: font-weight(semi-bold); line-height: var(--line-height-base); } } // ----------- // Browse menu // ----------- .forum-nav-browse-menu-wrapper { border-bottom: 1px solid var(--forum-color-border); background: theme-color("light"); } .forum-nav-browse-filter { position: relative; border-bottom: 1px solid var(--forum-color-border); padding: calc(var(--baseline) / 4); } .forum-nav-browse-filter .icon { @include right(calc(var(--baseline)/4 + 1px + calc(var(--baseline) / 4))); // Wrapper padding + border + input padding font-size: var(--forum-small-font-size); position: absolute; margin-top: -6px; top: 75%; } .forum-nav-browse-filter-input { width: 100%; } .forum-nav-browse-menu-following { .icon { @include float(left); @include left(calc(var(--baseline) / 2)); position: relative; top: 13px; } .forum-nav-browse-title { @include padding-left(calc(var(--baseline) * 1.5)); } } .forum-nav-browse-menu-item { margin-bottom: 0; } .forum-nav-browse-title { @include text-align(left); display: block; width: 100%; border: 0; border-radius: 0; border-bottom: 1px solid var(--forum-color-border); padding: calc(var(--baseline) / 2); background: transparent; box-shadow: none; background-image: none; cursor: pointer; &:hover, &:focus, &.is-focused { // switched from a to button; // need to override button styles background-image: none !important; box-shadow: none !important; background: var(--forum-color-background) !important; /* stylelint-disable-line */ } } .forum-nav-browse-title .icon { @include margin-right(calc(var(--baseline) / 2)); } .forum-nav-browse-menu { @include padding-left(0); margin: 0; font-size: var(--forum-base-font-size); overflow-y: scroll; list-style: none; max-height: 600px; } .forum-nav-browse-submenu { list-style: none; margin: 0; padding: 0; li { .forum-nav-browse-title { @include padding-left(var(--baseline)); } } } // ------------------- // Sort and filter bar // ------------------- .forum-nav-refine-bar { @include clearfix(); @include border-radius(var(--forum-border-radius), var(--forum-border-radius), 0, 0); font-size: var(--forum-small-font-size); border-bottom: 1px solid var(--forum-color-border); background-color: theme-color("light"); padding: calc(var(--baseline) / 4) calc(var(--baseline) / 2); color: var(--black); } .forum-nav-filter-main { @include text-align(left); @include float(left); box-sizing: border-box; width: 50%; } .forum-nav-filter-cohort, .forum-nav-sort { @include text-align(right); box-sizing: border-box; } .forum-nav-filter-cohort { .discussion-board & { @include float(right); @include text-align(right); width: 50%; } } .forum-nav-sort { @include float(right); } %forum-nav-select { border: none; max-width: 100%; background-color: transparent; } .forum-nav-filter-main-control { @extend %forum-nav-select; } .forum-nav-filter-cohort-control { @extend %forum-nav-select; max-width: 60%; } .forum-nav-sort-control { @extend %forum-nav-select; } // ----------- // Thread list // ----------- .forum-nav-thread-list { padding-left: 0 !important; // should *not* be RTLed, see below for explanation min-height: 60px; // @TODO: Remove this when we have a real empty state for the discussion thread list max-height: 800px; border-bottom: 1px solid theme-color("light"); margin: 0; overflow-y: auto; list-style: none; border-radius: 0 0 3px 3px; .forum-nav-thread-labels { margin: 5px 0 0; // Overrides overspecific courseware CSS from: // https://github.com/openedx/edx-platform/blob/master/lms/static/sass/course/courseware/_courseware.scss#L470 // note this should *not* be RTLed, as the rule it overrides is not RTLed padding-left: 0 !important; } .thread-preview-body { margin-top: calc(var(--baseline) / 4); color: var(--forum-color-response-count); font-size: var(--forum-small-font-size); overflow: hidden; white-space: nowrap; text-overflow: ellipsis; @include rtl { // This is counterintuitive, but when showing a preview of the first part of RTL text, using direction: rtl // will actually show the _last_ part of that text. direction: ltr; } } } // Overrides underspecific styles from courseware css .course-wrapper .course-content .forum-nav-thread-list-wrapper .forum-nav-thread-list { @include padding-left(0); list-style: none; .forum-nav-thread { margin: 0; } } .forum-nav-thread { border-bottom: 1px solid var(--forum-color-border); background-color: var(--forum-color-background); margin-bottom: 0; &:last-child { // Overrides pattern library default li:last-child style border-bottom: 1px solid var(--forum-color-border); } .forum-nav-thread-link { @include border-left(3px solid transparent); display: flex; padding: calc(var(--baseline) / 2); transition: none; align-items: center; justify-content: space-between; color: var(--forum-color-read-post); &:hover, &:active, &:focus { text-decoration: none; } &:hover { background-color: var(--forum-color-hover-thread); } &.is-active { background-color: var(--forum-color-reading-thread); } .forum-nav-thread-unread-comments-count { display: inline-block; font-size: var(--forum-small-font-size); white-space: nowrap; } } &.never-read { .forum-nav-thread-link { @include border-left(3px solid var(--forum-color-never-read-post)); color: var(--forum-color-never-read-post); } } } %forum-nav-thread-wrapper { display: inline-block; vertical-align: middle; } .forum-nav-thread-wrapper-0 { @extend %forum-nav-thread-wrapper; @include margin-right(calc(var(--baseline) / 5)); align-self: flex-start; .icon { font-size: var(--forum-base-font-size); width: 18px; text-align: center; &::before { @include rtl { @include transform(scale(-1, 1)); // RTL for font awesome question mark } } } } .forum-nav-thread-wrapper-1 { @extend %forum-nav-thread-wrapper; margin: 0 calc(var(--baseline) / 4); // 125 is the width we need to save for the "X new" comments indicator - and we want to clip the preview // at the same length whether there are unread comments for this story or not. max-width: calc(100% - 75px); flex-grow: 1; // This column should consume all the available space } .forum-nav-thread-wrapper-2 { @extend %forum-nav-thread-wrapper; @include text-align(right); min-width: 40px; white-space: nowrap; } .forum-nav-thread-title { @include margin-left(0); font-size: var(--forum-base-font-size); display: block; } %forum-nav-thread-wrapper-2-content { @include margin-right(calc(var(--baseline) / 4)); font-size: var(--forum-small-font-size); display: inline-block; text-align: center; color: var(--black); &:last-child { @include margin-right(0); } } .forum-nav-thread-votes-count { @extend %forum-nav-thread-wrapper-2-content; } .forum-nav-thread-comments-count { @extend %forum-nav-thread-wrapper-2-content; @extend %t-weight4; position: relative; @include margin-left(calc(var(--baseline) / 4)); margin-bottom: calc(var(--baseline) / 4); // Because tail is position: absolute border-radius: var(--forum-border-radius); padding: calc(var(--baseline) / 10) calc(var(--baseline) / 5); min-width: 2em; // Fit most comment counts but allow expansion if necessary background-color: theme-color("light"); // Speech bubble tail &::after { content: ''; display: block; position: absolute; bottom: calc(-1 * var(--baseline) / 4); @include right(calc(var(--baseline) / 4)); width: 0; height: 0; border-style: solid; @include border-width(0, calc(var(--baseline) / 4), calc(var(--baseline) / 4), 0); @include border-color(transparent, var(--forum-color-border), transparent, transparent); } } .forum-nav-load-more { border-bottom: 1px solid var(--forum-color-border); background-color: theme-color("light"); } %forum-nav-load-more-content { display: block; padding: var(--baseline) 0; text-align: center; } .forum-nav-load-more-link { @extend %forum-nav-load-more-content; color: var(--link-color); width: 100%; &:hover, &:focus { color: var(--forum-color-active-text); // !important overrides the one set here: // https://github.com/openedx/edx-platform/blob/master/lms/static/sass/elements/_controls.scss#L472 background-color: var(--forum-color-active-thread) !important; } } .forum-nav-loading { @extend %forum-nav-load-more-content; }