/* */ @import "scss/colours"; @import "scss/mixins"; @import "scss/typography"; @import "scss/controls"; $min-touch-target: 44px; @view-transition { navigation: auto; } html { @include breakpoint(phablet) { scroll-padding-top: 80px; } } html, body { overscroll-behavior-x: none; } body { font-size: 0.95rem; } a { text-decoration: none; border: solid 2px transparent; } .container { width: 100%; padding-right: 0.75rem; padding-left: 0.75rem; margin-right: auto; margin-left: auto; max-width: inherit; @include breakpoint(phablet) { } @include breakpoint(tablet) { max-width: 960px; } @include breakpoint(laptop) { max-width: 1200px; } @include breakpoint(desktop) { max-width: 1550px; } @include breakpoint(bigbig) { max-width: 1880px; } } @include breakpoint(tablet) { .navbar-expand-lg .navbar-nav .dropdown-menu { overflow-y: auto; max-height: 90vh; overflow-x: hidden; } } .low_bandwidth { .dropdown-toggle::after { display: none; } } .display-inline { display: inline; } .skip-link { position: absolute; top: -40px; /* Adjust as needed to hide the link off-screen */ left: 0; background-color: #fff; /* Background color to cover the link for screen readers */ z-index: 1060; /* Ensure it's above other content */ } .skip-link:focus { top: 0; /* Bring the link back into view when it receives focus */ } #outer_container, footer { //overscroll-behavior-x: none; a:not(.btn):hover { text-decoration: underline; } a:not(.btn):has(span.fe):hover { /* do not have underlines on icons */ text-decoration: none; } a:not(.btn):active { border: dotted 2px #0A5CA0; } } div.navbar { border-bottom: 1px solid rgba(0, 40, 100, 0.12); min-height: 60px; background-color: var(--bs-body-bg); } .navbar-brand { line-height: 46px; img { margin-right: 20px; } } .navbar-light .navbar-nav .nav-link { outline-style: none; } .navbar-toggler { border: none; height: 48px; } .navbar-light .navbar-toggler-icon { background-image: url(/static/images/menu.svg); width: 35px; height: 40px; background-position: top; } .dropdown.active { background-color: $primary-colour; } .navbar-light .navbar-nav .active > .nav-link { color: white; opacity: 0.9; } .tab-content > .tab-pane { border-right: solid 1px #dee2e6; border-bottom: solid 1px #dee2e6; border-left: solid 1px #dee2e6; border-radius: 0 0 5px 5px; padding: 10px 15px 0 15px; } .dropdown-menu { .dropdown-item.active { background-color: $primary-colour; } } #outer_container { margin-top: -1px; @include breakpoint(tablet) { margin-top: 1rem; padding-top: 0.25rem; } } .form-group { margin-bottom: 1.1rem; &.required { label { &:after { content: '*'; color: red; margin-left: 2px; font-size: 80%; position: relative; top: -1px; } } } } .card { max-width: 380px; margin-left: auto; margin-right: auto; .card-body > p > img, .card-body > p > a > img { max-width: 100%; } } #breadcrumb_nav { font-size: 87%; } @include breakpoint(tablet) { #breadcrumb_nav { display: block; font-size: 87%; .breadcrumb { padding: 0; margin-bottom: 0; background-color: inherit; .breadcrumb-item + .breadcrumb-item::before { content: ">"; } } } } .communities_table { tbody tr th { padding: 0; a { padding-top: 10px; padding-bottom: 10px; width: 100%; display: inline-block; } } } .topics_list { list-style-type: none; display: grid; grid-template-columns: repeat(auto-fit,minmax(152px, 1fr)); > li { padding-bottom: 20px; } } .community_header { background-repeat: no-repeat; background-position: center center; background-size: cover; border-radius: 5px 5px 0 0; /* top-left | top-right | bottom-right | bottom-left */ height: 176px; margin-left: -12px; margin-right: -12px; margin-top: -9px; @include breakpoint(tablet) { height: 240px; } #breadcrumb_nav { @include breakpoint(tablet) { padding-left: 13px; padding-top: 13px; } .breadcrumb { background-color: rgba(0,0,0,0.2); display: inline-block; padding: 5px 10px; @include breakpoint(tablet) { border-radius: 6px; } margin-bottom: 0; .breadcrumb-item { color: white; display: inline-block; a { color: white; } } .breadcrumb-item + .breadcrumb-item::before { content: ">"; color: white; } } } } .community_header_no_background, .community_header { .community_icon { width: 120px; height: auto; } } #choose_topics_card { label.form-control-label { display: none; } .form-group { margin-bottom: 0; } ul.form-control { border: none; list-style-type: none; padding-top: 0; margin-bottom: 0; li { vertical-align: center; label { height: 44px; } } } } .form-check .form-check-input { position: relative; top: 4px; } .post_reply_form { label { display: none; } .form-check { position: absolute; bottom: -14px; left: 122px; label { display: inherit; } } } .add_reply { .form-control-label { display: none; } .form-check { position: absolute; bottom: -14px; left: 122px; } } .view_filter { @include breakpoint(phablet) { float: right; } } .post_list { clear: both; .post_teaser { border-bottom: solid 2px $light-grey; padding-top: 8px; padding-bottom: 8px; h3 { font-size: 110%; margin-top: 4px; margin-bottom: 0; } .meta_row, .main_row, .utilities_row { a { text-decoration: none; } } .main_row { position: relative; .author { margin-bottom: 30px; display: inline-block; max-width: 78%; } } .col_thumbnail { float: right; width: 70px; position: relative; @include breakpoint(tablet) { width: 170px; } } .thumbnail { text-align: center; align-content: center; display: flex; height: 60px; width: 60px; overflow: hidden; @include breakpoint(tablet) { align-items: center; height: 90px; width: 170px; max-width: 100%; } a { display: block; width: 100%; position: relative; } .fe-external, .fe-video, .fe-image, .fe-audio, .fe-magnify { display: block; position: absolute; right: 0; background-color: rgba(256,256,256, 0.7); padding-bottom: 1px; padding-left: 1px; border-radius: 2px; top: 0; } .fe-discussion, .fe-poll, .fe-link { font-size: 52px; opacity: 0.3; } img { height: 60px; width: 60px; border-radius: 5px; object-fit: cover; @include breakpoint(tablet) { height: 90px; width: 170px; max-width: 100%; } &.blur { filter: blur(3px); } } &.lbw { .fe { background: none; } .fe::before { font-size: 28px; padding-right: 7px; } } &.missing_thumbnail { .fe::before { font-size: x-large; opacity: 0.8; } } } &.blocked { opacity: 0.2; font-size: 80%; .voting_buttons { width: 46px; line-height: 24px; .upvote_button, .downvote_button { font-size: 80%; } } } .post_teaser_clickable { cursor: pointer; } } } .post_teaser_body { position: relative; } .post_teaser_article_preview, .post_teaser_link_preview { position: relative; max-height: 100px; overflow: hidden; padding-left: 3px; padding-right: 3px; p { margin: 0; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; /* Limits the text to a specific number of lines */ line-clamp: 2; overflow: hidden; text-overflow: ellipsis; white-space: normal; } } .post_teaser_image_preview { text-align: center; margin-top: 10px; a { display: inline-block; max-width: 512px; } img { max-width: 100%; min-width: 150px; margin-right: 4px; border-radius: 5px; height: auto; } } .post_teaser_video_preview { text-align: center; margin-top: 10px; position: relative; .fe-video { position: absolute; left: 43%; top: 40%; width: 13%; font-size: 64px; background-color: white; opacity: 0.5; } .video-wrapper { position: relative; padding-bottom: 56.25%; /* 16:9 aspect ratio */ height: 0; overflow: hidden; } .video-wrapper img { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; cursor: pointer; border-radius: 5px; } .video-wrapper iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: 0; } } time { white-space: nowrap; } .author { padding-left: 3px; a { border-left: 0; } } .max_width_512 { max-width: 512px; display: inline-block; width: 100%; } .post_utilities_bar { display: flex; min-height: $min-touch-target; /* justify-content: space-between; */ justify-content: left; @include breakpoint(tablet) { justify-content: left; } div { display: flex; justify-content: center; align-items: center; min-width: $min-touch-target; height: $min-touch-target; line-height: $min-touch-target; .dropdown-item { white-space: unset; line-height: 30px; &:active { line-height: 26px; } } } } .post_full .post_utilities_bar { .voting_buttons_new { margin-left: -15px; } } #masonry { display: flex; .column { flex: 1; padding: 0; padding-right: 5px; &:last-child { padding-right: 0; } } .item { position: relative; margin-bottom: 5px; img { width: 100%; display: block; height: auto; /* Ensure aspect ratio is maintained */ } .masonry_thumb a, .masonry_thumb a:active { border: none; } .masonry_info { position: absolute; bottom: 0; background-color: rgba(0, 0, 0, 0.3); width: 100%; text-align: center; .voting_buttons_masonry { width: 100%; display: flex; } p { margin-bottom: 0; a { color: white; text-decoration: none; line-height: 40px; @include breakpoint(laptop) { line-height: 30px; } } } .row { margin-left: 0; margin-right: 0; .col { padding: 0; flex-direction: row; display: inline-flex; a { color: white; padding-top: 6px; @include breakpoint(laptop) { padding-top: 0; } } .upvote_button, .downvote_button { display: inline; color: white; padding-top: 10px; @include breakpoint(laptop) { padding-top: 5px; } width: 50%; position: relative; .htmx-indicator { position: absolute; width: 20px; height: 20px; left: 7px; } &.voted_up { color: $green; } &.voted_down { color: red; } } } .col-8 { justify-content: center; p { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } } .reply_col { justify-content: right; padding-right: 5px; } } } .masonry_info_no_image { background-color: rgba(0, 0, 0, 0.2); width: 100%; text-align: center; p { margin-bottom: 0; a { color: var(--bs-body-color); text-decoration: none; } } } } } .layout_switcher { @include breakpoint(tablet) { float: right; } } .url_thumbnail { float: right; margin-top: -6px; } .post_image { img { max-width: 100%; max-height: 90vh; } } .render_username { display: inline; a img { width: 20px; height: 20px; border-radius: 50%; vertical-align: bottom; } .text-muted { font-size: 13px; } } .comments > .comment { margin-left: 0; border-top: solid 1px $grey; margin-right: 8px; .comment_body { hr { margin-left: 15px; margin-right: 15px; opacity: 0.1; } } &:first-child { border-top: none; padding-top: 0; } } [data-bs-theme=dark] { .post_list .post_teaser { border-bottom: solid 1px $super-dark-grey; .thumbnail .fe { background-color: rgba(0,0,0,0.4); } } .comments > .comment { border-top-color: $super-dark-grey; } .downarea-textarea { .form-control { background-color: $super-dark-grey; color: whitesmoke; } } .comment .replies { border-left-color: $super-dark-grey; border-top-color: $super-dark-grey; } } #replies { scroll-margin-top: 5em; } .post_replies > .col { padding-right: 5px; } .post_type_image { .post_image { img { max-width: 100%; height: auto; } } } .voting_buttons_new { .upvote_button, .downvote_button { position: relative; /* so the htmx-indicators can be position: absolute */ display: inline-block; text-align: center; cursor: pointer; color: rgba(var(--bs-link-color-rgb),var(--bs-link-opacity,1)); min-width: $min-touch-target; min-height: $min-touch-target; span { line-height: $min-touch-target; } &.digits_4 { width: 68px; } &.digits_5 { width: 76px; } &.digits_6 { width: 84px; } &.voted_up { color: green; .fe { font-weight: bold; } } &.voted_down { color: darkred; .fe { font-weight: bold; } } } .upvote_button { .htmx-indicator { left: 13px; top: 14px; } } .downvote_button { .htmx-indicator { left: 12px; top: 14px; } } .htmx-indicator{ position: absolute; left: 3px; width: 20px; height: 20px; top: 0; } .htmx-request .htmx-indicator{ display:inline; position: absolute; width: 20px; height: 20px; right: 14px; top: 5px; opacity: 1!important; } .htmx-request.htmx-indicator{ display:inline; } } .voting_buttons { float: right; display: block; min-width: $min-touch-target + 10; padding: 0 0 5px 5px; line-height: 30px; font-size: 14px; @include breakpoint(laptop) { line-height: 25px; } div { border: solid 1px $primary-colour; } .upvote_button, .downvote_button { position: relative; padding: 0 3px; min-height: $min-touch-target; min-width: $min-touch-target; border-radius: 3px; cursor: pointer; display: flex; align-items: center; justify-content: center; &.digits_4 { width: 68px; } &.digits_5 { width: 76px; } &.digits_6 { width: 84px; } &.voted_up { color: green; font-weight: bold; } &.voted_down { color: darkred; font-weight: bold; } } .downvote_button { margin-top: 5px; } .htmx-indicator{ position: absolute; width: 20px; height: 20px; } .htmx-request .htmx-indicator{ display:inline; position: absolute; width: 20px; height: 20px; right: 14px; top: 5px; opacity: 1!important; } .htmx-request.htmx-indicator{ display:inline; } a { text-decoration: none; } } .comment { clear: both; margin-left: 15px; padding-left: 0px; padding-top: 8px; .limit_height { position: relative; &.expanded { max-height: none; .show-more { display: none; } } } .show-more { text-decoration: none; display: block; text-align: center; background-color: $dark-grey; color: white; margin-bottom: 15px; height: 30px; .fe-angles-down, .fe-angles-up { margin-top: 7px; display: inline-block; } @include breakpoint(laptop) { height: 23px; .fe-angles-down, .fe-angles-up { display: inline; } } } .comment_author .author_link { img { width: 25px; height: 25px; border-radius: 50%; vertical-align: middle; } } .comment_community { display: inline-block; img { height: 1rem; width: auto; } } a.unhide { display: none; text-decoration: none; } .comment_actions { margin-top: -18px; display: flex; min-height: $min-touch-target; /* justify-content: space-between; */ justify-content: left; @include breakpoint(tablet) { justify-content: left; } div { display: flex; justify-content: center; align-items: center; min-width: $min-touch-target; height: $min-touch-target; line-height: $min-touch-target; } .notify_toggle { font-size: 87%; } .dropdown-item { white-space: unset; line-height: 30px; &:active { line-height: 26px; } } } .replies { margin-top: 0; border-left: solid 1px $light-grey; border-top: solid 1px $light-grey; } } .hide-labels label { display: none; } #add_local_community_form { #url { width: 297px; display: inline-block; padding-left: 3px; } } #reasons { border: none; list-style-type: none; padding: 0; overflow-y: auto; height: 230px; } .table { tr th { vertical-align: middle; } } .show_menu { display: block!important; } .moderator_list { list-style-type: none; padding-left: 0; li { display: inline-block; padding-right: 5px; } } fieldset { legend { font-weight: bold; } } .profile_action_buttons, .rh_action_buttons { float: right; } .preview_image_shown { z-index: 1; position: relative; max-width: 92vw; height: auto; cursor: pointer; @include breakpoint(tablet) { max-width: 760px; } @include breakpoint(laptop) { max-width: 800px; } @include breakpoint(desktop) { max-width: 850px; } @include breakpoint(bigbig) { max-width: 1180px; } } .mobile_create_post { float: right; } .post_body, .comment_body { word-wrap: break-word; img { max-height: 40vh; max-width: 100%; height: auto; } blockquote { border-left: 2px solid var(--bs-secondary); padding: 0.1em 5px; font-style: italic; } table.table { display: block; width: 100%; overflow-x: auto; } ol, ul { li { margin-bottom: 7px; > p { margin-bottom: 0; } } } } .skip-link:focus { top: 0; } #choose_communities_in_topic_card { max-width: inherit; overflow: hidden; } #choose_community { table th { white-space: nowrap; overflow: hidden; img { vertical-align: middle; } } } .warning_badge { font-size: 12px; border-radius: 2px; margin-right: 2px; overflow: hidden; text-overflow: ellipsis; vertical-align: text-bottom; line-height: 20px; padding: 0 4px; &.nsfw { border:1px solid #FF585B; color:#FF585B; } &.nsfl { border:1px solid black; color:black; } } h1 .warning_badge { position: relative; left: 15px; top: -6px; } [data-bs-theme=dark] .warning_badge.nsfl { border:1px solid white; color:white; } .post_title { .warning_badge { line-height: 32px; margin-left: 15px; } } .conversation { position: relative; .message { width: 90%; @include breakpoint(tablet) { width: 70%; } max-width: 100%; margin-bottom: 15px; clear: both; &.from_other_party { float: right; } &.from_me { float: left; } } .message_created_at { float: right; } form .form-control-label { display: none; } .conversation_options { position: absolute; bottom: 0; right: 0; } } .form-control-file { width: 100%; overflow: hidden; } .profile_bio { img { max-width: 100%; height: auto; } } .wiki_page { img { max-width: 100%; height: auto; } } #post_reply_markdown_editor_enabler { display: none; position: absolute; bottom: 3px; right: 0; @include breakpoint(phablet) { display: inline-block; } } .create_post_markdown_editor_enabler { text-align: right; margin-bottom: 10px; display: block; } .redo_search { display: inline; input[type=search] { width: unset; display: inline; font-size: inherit; line-height: initial; max-width: 100%; } } .responsive-video { max-width: 100%; max-height: 90vh; } .post_language_chooser { @include breakpoint(phablet) { label { display: none; } select { max-width: 150px; float: right; margin-top: -5px; } } } .language-float-right { @include breakpoint(phablet) { max-width: 150px; float: right; } } #pollChoicesFieldset { margin-bottom: 20px; } .post_poll { ul { list-style: none; padding-left: 0; li { margin-bottom: 5px; .vote_bar { .vote_score { background-color: $grey; color: white; text-align: right; padding-right: 5px; font-weight: bold; } } } } } #baguetteBox-overlay { overflow: scroll; } .card-title { font-size: 140%; } .card-header { h2 { margin-bottom: 5px; } } .alert-info, .alert-message, .alert-error { color: #0c5460; background-color: #d1ecf1; border-color: #bee5eb; @include breakpoint(tablet) { padding-left: 1.8rem; padding-right: 1.8rem; } } .alert-error { color: #722047; background-color: #f8d7da; } .main_pane { border: solid 1px $light-grey; border-radius: 5px; padding-top: 8px; padding-bottom: 12px; .url_thumbnail { width: 120px; height: auto; img { width: 100%; height: auto; } } } .side_pane { img { max-width: 100%; } .list-group-item:first-child { padding-top: 0; } } [data-bs-theme=dark] .main_pane { border-color: $super-dark-grey; } [data-bs-theme=dark] .form-control { background-color: $super-dark-grey; color: $lightest-grey; &:focus { background-color: $super-dark-grey; color: $lightest-grey; } } .community_icon { width: 20vw; height: 20vw; max-width: 30px!important; max-height: 30px; min-width: 20px; min-height: 20px; vertical-align: text-top; } .list-group-item .community_icon { vertical-align: middle; } .community_icon_big { width: 20vw; height: 20vw; max-width: 120px; max-height: 120px; min-width: 80px; min-height: 80px; object-fit: cover; } .community_icon_small { width: 20px; height: 20px; margin-right: 3px; } .bump_up { position: absolute; top: 115px; left: 26px; } .external_link_icon { width: 12px; height: 12px; margin-left: 4px; margin-bottom: 3px; } form { h5 { padding-top: 12px; } } .coolfieldset, .coolfieldset.expanded{ border:1px solid $light-grey; border-radius: 5px; padding: 0 20px; } .coolfieldset.collapsed{ border:0; border-top:1px solid $grey; border-radius: 0; } .coolfieldset legend{ padding-left:13px; font-weight:bold; cursor:pointer; background-color: white; display: block; position: relative; top: -11px; &.tweak-top { top: -18px; } } .coolfieldset legend, .coolfieldset.expanded legend{ background: whitesmoke url(/static/images/expanded.gif) no-repeat center left; } .coolfieldset.collapsed legend{ background: whitesmoke url(/static/images/collapsed.gif) no-repeat center left; } .domain_link { color: #777; font-size: 73%; a { color: #777; } } .comment_author { a { } } .low_score { .hide_button, .comment_author { a { font-weight: normal; color: $dark-grey; } } } .communities_table tr td { vertical-align: middle; padding-top: 6px; &:first-child { padding-top: 8px; } } .table tbody tr th { a { font-weight: normal; } } .text-right { text-align: right; } .pull-right { margin-left: auto; } #timeSpent { cursor: wait; } .ellipsis::after { content: "…"; } .option_list { list-style-type: none; margin-bottom: 0; li { margin-bottom: 15px; .fe { position: relative; top: 1px; } } } .field_hint { margin-top: -15px; display: block; margin-bottom: 10px; } .alert { width: 96%; } .reported { background-color: antiquewhite; } .dropdown-header { color: black; } .current_post { background-color: aliceblue; .replies { background-color: var(--bs-body-bg); } } [data-bs-theme=dark] .current_post { background-color: $super-dark-grey; } .h1, h1 { @include breakpoint(tablet) { font-size: 2rem; } } .h2, h2 { @include breakpoint(tablet) { font-size: 1.8rem; } } .h3, h3 { @include breakpoint(tablet) { font-size: 1.6rem; } } .sender_list { border-right: solid 1px #ddd; } .message { border: solid 1px #ddd; border-radius: 5px; padding: 8px 15px 0 15px; &.from_other_party { float: right; } &.from_me { color: var(--bs-card-cap-color); background-color: var(--bs-card-cap-bg); } } #subtopic_nav { position: relative; left: -15px; li a { border: dotted 2px transparent; } } .post_tags { list-style: none; padding-left: 0; .post_tag { display: inline-block; } } #home_announcement { padding: 0.5rem 1rem; color: var(--bs-card-cap-color); background-color: rgba(var(--bs-body-color-rgb), 0.03); border-bottom: var(--bs-border-width) solid var(--bs-border-color-translucent); margin-top: -8px; margin-bottom: 8px; margin-right: calc(var(--bs-gutter-x) * -.5); margin-left: calc(var(--bs-gutter-x) * -.5); p { margin-bottom: 0; } } .pt-05 { padding-top: .12rem !important; } .render_username { position: relative; .author_link { display: inline-block; } @include breakpoint(laptop) { .author_link:hover + .user_preview, .user_preview:hover { display: inline-block !important; position: absolute; top: 17px; left: 0; background-color: white; z-index: 20; } .user_preview .card { width: 300px; .preview_avatar_image { max-width: 50%; img { max-width: 100%; } } } } } #preview:has(p, a, h1, h2, h3, ul, ol) { border: solid 1px #ddd; border-radius: 5px; padding: 5px 10px; margin-bottom: 15px; } /* high contrast */ @import "scss/high_contrast"; [data-bs-theme="dark"] .dropdown-header { color: white; } @import "scss/print";