zulip/static/styles/subscriptions.css
Brock Whittaker 431a69a769 Change filtered/desaturated checkbox to SVG for performance.
Due to the fact that getComputedValue is called when using filter and
opacity attributes, it is much more efficient to use an SVG that has a
changing fill color rather than something that may be interpreted by
browsers as a layout change that requires layout recalculation.

This should result in noticeably smoother and more responsive :hover
events for the streams with greyed checkmarks.
2017-01-16 18:26:09 -08:00

840 lines
15 KiB
CSS

#subs_page_loading_indicator {
margin: 10px auto;
}
.subscriber_list_loading_indicator {
margin: 10px auto;
}
.subscription-email-hint-image {
float: right;
width: 80px;
padding-right: 60px;
}
.subscription_header.collapsed {
background-color: inherit;
}
.color_swatch {
display: inline-block;
height: 18px;
width: 18px;
padding: 0;
margin: 0 0 0 10px;
vertical-align: middle;
}
.subscriptions {
margin-top: 55px;
padding-left: 15px;
}
.subscriptions div #response {
overflow-wrap: break-word;
}
#subscriptions_table .subscription_block {
padding-left: 0.5em;
vertical-align: middle;
}
.subscription-info-container {
display: inline-block;
/* subtract out the width of the subscribe button and arrow. */
width: calc(100% - 260px);
/* to center the container vertically. */
margin-top: 13px;
}
.subscription-setting-icon {
vertical-align: top;
display: inline-block;
}
.subscription-info {
display: inline-block;
/* to provide space for the setting-icon. */
max-width: calc(100% - 31px);
margin-top: 1px;
overflow: hidden;
word-wrap: normal;
white-space: nowrap;
text-overflow: ellipsis;
}
.subscription-info .light {
font-weight: 300;
}
#add_new_subscription {
text-align: left;
}
#create_or_filter_stream_row > .subscription_table_elem {
text-align: left;
}
#subscriptions-status {
position: fixed;
z-index: 999;
display: block;
left: 300px;
right: 300px;
margin: 0px auto;
opacity: 0.9 !important;
top: 55px;
max-width: 800px;
}
#close-subscriptions-status {
position: absolute;
top: 8px;
cursor: pointer;
font-size: 17px;
right: 8px;
}
.subscription_header {
min-height: 47px;
}
.subscription-name-row {
display: inline-block;
}
.subscription-name-row,
.subscription-description-row {
vertical-align: top;
}
.subscription_header .subscription_lock {
font-size: 23px;
display: inline-block;
vertical-align: middle;
margin-left: 12px;
margin-right: 1px;
}
.subscription_settings .btn {
border-radius: 2px;
}
.subscription_settings ul {
list-style-type: none;
}
.stream-email {
font-family: Monaco, Menlo, Consolas, "Courier New", monospace;
padding: 5px;
font-size: 0.9em;
background-color: #EEE;
border: 1px solid #DDD;
border-radius: 4px;
}
.subscription-control-label {
display: inline-block;
vertical-align: middle;
line-height: 18px;
padding: 5px;
}
.sp-preview {
width: 20px;
border: none;
box-shadow: 0px 0px 1px rgba(0,0,0,1);
}
.sp-replacer {
margin-right: 12px;
border: none;
box-shadow: 0px 0px 2px rgba(0,0,0,0.8);
}
.stream-email .email-address {
display: block;
margin: auto;
white-space: -moz-pre-wrap !important;
white-space: -pre-wrap;
white-space: -o-pre-wrap;
white-space: pre-wrap;
word-wrap: break-word;
word-break: break-all;
white-space: normal;
}
.muted-sub {
color: #A3A3A3;
}
.mute-note {
font-size: 90%;
font-color: #525252;
}
.hide-mute-note {
display: none;
}
.sub_setting_control {
display: inline-block;
margin-right: 10px;
}
.stream-row:hover .preview-stream {
display: inline-block;
}
.preview-stream {
display: none;
float: right;
padding: 3px 10px;
border: 1px solid #ccc;
margin: 9px 10px 0px 0px;
color: #333;
}
.preview-stream:hover {
color: #333;
text-decoration: none;
background-color: #ebebeb;
border: 1px solid #adadad;
}
.btn.sub_unsub_button {
display: inline-block;
min-width: 140px;
float: right;
margin-top: 9px;
margin-right: 10px;
}
.sub_arrow {
float: right;
line-height: 47px;
padding: 0 15px 0 0;
}
#create_or_filter_stream_row td {
background-color: #f3f3f3;
border-color: #BBB;
border-bottom: 1px solid #BBB;
}
#create_or_filter_stream_row input[type="text"] {
width: 220px;
margin: 5px 0 20px 38px;
}
form#add_new_subscription {
float: right;
margin: 0;
}
#create_stream_button {
margin: 0px 0px 0px 5px;
border: none;
outline: none;
background-color: transparent;
font-size: 2.2em;
font-weight: 300;
line-height: 1;
color: #aaa;
display: inline-block;
transition: all 0.2s ease;
padding-bottom: 0px;
padding-top: 0px;
}
#create_stream_button:hover {
color: #444;
}
#create_stream_description {
width: calc(100% - 15px);
}
#stream_name_error {
display: none;
margin-left: 2px;
color: #FF0000;
}
.sub_settings_title {
line-height: 30px;
margin: 10px 0;
font-size: 16px;
}
.new-stream-name,
.stream-rename-button {
margin-top: 10px;
}
.settings_committed {
margin: 10px;
}
.subscriber-list-box {
text-align: center;
}
.subscriber_list_container {
margin-top: 10px;
display: inline-block;
margin: auto;
max-height: 300px;
overflow: auto;
text-align: left;
}
.subscriber-list {
width: auto;
margin: auto;
background: #efefef;
border-radius: 6px;
}
.subscriber-list tr:nth-child(even) {
background: #fafafa;
}
.subscriber-name,
.subscriber-email {
padding: 5px;
}
.subscriber-name {
padding-left: 8px;
}
.subscriber-email {
margin-left: 20px;
padding-right: 8px;
}
.subscriber_list_add {
margin: auto;
text-align: center;
}
.remove-subscriber-form {
margin: 0px 0px 0px 0px;
}
#subscription-status {
width: 200px;
position: absolute;
left: 50%;
margin-left: -100px;
bottom: 30px;
text-align: center;
border-radius: 2px;
}
#subscriptions h1 {
font-size: 25px;
font-weight: 300;
padding-top: 40px;
}
#subscriptions .streams-icon {
margin-right: 10px;
font-size: 20px;
}
.change-stream-privacy {
width: 100%;
text-align: center;
}
.change-stream-privacy-feedback {
display: none;
}
.subscriptions-overlay-bg {
font: menu;
position: fixed;
top: 0;
left: 0;
width: 100vw;
height: 100vh;
background-color: rgba(20,20,20,0.7);
color: #444;
}
.subscriptions-container {
position: relative;
height: 95%;
background-color: #fff;
border-radius: 4px;
padding: 0px;
width: 97%;
overflow: hidden;
max-width: 1200px;
max-height: 1000px;
}
.subscriptions-header {
padding: 12px;
text-align: center;
text-transform: uppercase;
font-weight: 700;
border-bottom: 1px solid #ddd;
}
.subscriptions-container .exit {
font-weight: 400;
position: absolute;
top: 10px;
right: 10px;
color: #AAA;
cursor: pointer;
}
.subscriptions-container .exit-sign {
position: relative;
top: 3px;
margin-left: 3px;
font-size: 1.7em;
font-weight: 300;
cursor: pointer;
}
.subscriptions-container .left,
.subscriptions-container .right {
position: relative;
display: inline-block;
vertical-align: top;
width: 50%;
height: calc(100% - 45px);
margin: 0px -2px;
}
.subscriptions-container .right {
width: calc(50% + 1px);
}
.subscriptions-container .right .nothing-selected {
display: block;
margin-top: calc(45vh - 30px - 1em);
text-align: center;
font-size: 1em;
color: #aaa;
pointer-events: none;
-webkit-font-smoothing: antialiased;
}
.subscriptions-container .left {
border-right: 1px solid #ddd;
}
.subscriptions-container .left .search-container {
padding: 6px 8px;
border-bottom: 1px solid #ddd;
}
.subscriptions-container .right .display-type {
padding: 6px;
text-align: center;
font-weight: 600;
border-bottom: 1px solid #ddd;
}
.subscriptions-container .display-type.preview:after {
content: "Preview";
}
.subscriptions-container .display-type.preferences:after {
content: "Preferences";
}
.subscriptions-container .display-type .stream-info-title {
display: none;
font-size: 1em;
line-height: 1;
margin: 9px 0px;
font-weight: 400;
font-weight: 600;
color: #444;
}
.subscriptions-container .right #preview_iframe {
width: 100%;
height: calc(100% - 45px);
border: none;
background-color: #FAFAFA;
box-shadow: inset 0px 0px 50px rgba(0,0,0,0.5);
background-image: url(../images/preview-loading.png);
background-size: 150px auto;
background-position: center center;
background-repeat: no-repeat;
}
.subscriptions-container input[type=text].small {
border: 1px solid #ccc;
border-radius: 4px;
padding: 3px;
outline: none;
color: #444;
text-align: center;
}
.subscriptions-container input[type=text].small:focus {
text-align: left;
}
.subscriptions-container input[type=text].small:valid {
text-align: left;
}
#search_stream_name {
width: 190px;
padding: 3px 5px;
margin: 2px 0px;
display: inline-block;
border-radius: 5px;
box-shadow: none;
}
.create-stream-title {
font-size: 1.5em;
font-weight: 600;
}
.stream-creation-body section.block {
margin-bottom: 20px;
}
.stream-creation-body #make-invite-only label span.icon-vector-globe {
margin-left: 14px;
margin-right: 10px;
}
.stream-creation-body #make-invite-only label span.icon-vector-lock {
margin-left: 15px;
margin-right: 11px;
}
.stream-creation-body #announce-new-stream div[class^="icon"] {
margin-left: 3px;
margin-right: 8px;
}
.streams-list {
overflow: auto;
height: calc(100% - 45px);
width: 100%;
}
.stream-row {
padding: 15px 10px;
border-bottom: 1px solid #eee;
cursor: pointer;
}
.stream-row.active {
background-color: #eee;
}
.stream-row > div {
display: inline-block;
vertical-align: top;
}
.stream-row .check {
width: 25px;
height: 35px;
position: relative;
margin-right: 8px;
background-size: 60% auto;
background-repeat: no-repeat;
background-position: center center;
}
.stream-row .check svg {
fill: transparent;
width: 70%;
margin: 0% 15%;
}
.stream-row:hover .check:not(.checked) svg,
.stream-row.active:hover .check:not(.checked) svg {
fill: #ddd;
}
.stream-row .checked svg {
fill: #52c2af;
}
.stream-row .icon {
width: 35px;
height: 35px;
margin-right: 8px;
background-color: purple;
border-radius: 4px;
color: #fff;
}
.stream-row .icon .symbol {
font-weight: 600;
font-size: 1.1em;
}
.stream-row .icon .icon-vector-lock {
font-size: 1.4em;
}
.stream-row .icon .hashtag {
font-size: 1.4em;
font-weight: 600;
}
.stream-row .sub-info-box {
width: calc(100% - 90px);
}
.stream-row .sub-info-box .top-bar > div {
display: inline-block;
vertical-align: top;
}
.stream-row .sub-info-box .top-bar .stream-name {
font-weight: 600;
}
.stream-row .sub-info-box .top-bar .message-count,
.stream-row .sub-info-box .top-bar .subscriber-count {
float: right;
color: #aaa;
}
.stream-row .sub-info-box .top-bar .subscriber-count {
margin-left: 10px;
}
.stream-row .sub-info-box .top-bar .subscriber-count-text {
margin-right: 5px;
}
.stream-row .sub-info-box .description {
margin-top: 2px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
line-height: 1;
}
#subscription_overlay .stream-description:empty:after,
.stream-row .sub-info-box .description:empty:after {
content: attr(data-no-description);
font-style: italic;
color: #aaa;
}
#subscription_overlay #stream-creation {
max-height: calc(100% - 102px);
overflow: auto;
outline: none;
}
#subscription_overlay #stream-creation .modal-footer {
position: absolute;
bottom: 0;
width: calc(100% - 30px);
}
#stream-creation .stream-creation-body {
padding: 15px;
}
.stream-row .settings-dropdown-trigger {
float: right;
margin-left: 10px;
color: #aaa;
}
.add-user-label {
margin: 8px 0px;
}
#stream_creation_form {
margin: 0px;
}
#subscription_overlay .inner-box {
margin: 20px;
}
#subscription_overlay .stream-header {
margin-bottom: 20px;
}
#subscription_overlay .stream-header .stream-name {
display: inline-block;
font-size: 1.5em;
font-weight: 600;
}
#subscription_overlay .stream-header .large-icon {
display: inline-block;
margin-right: 5px;
font-size: 1.5em;
}
#subscription_overlay .stream-description {
font-size: 0.9em;
margin-bottom: 5px;
}
#subscription_overlay .subscription-type {
margin-bottom: 10px;
font-size: 0.9em;
color: #888;
}
#subscription_overlay .subscription-type b {
font-weight: 600;
color: #666;
}
#subscription_overlay .stream-header .large-icon.hash::after {
position: relative;
top: 1px;
content: "#";
font-weight: 800;
}
#subscription_overlay {
display: none;
position: fixed;
top: 0px;
left: 0px;
width: 100vw;
height: 100vh;
background-color: rgba(0,0,0,0.8);
overflow: auto;
z-index: 102;
}
#subscription_overlay.show {
display: block;
}
#subscription_overlay .settings {
position: relative;
height: calc(100% - 45px);
overflow-y: auto;
}
#subscription_overlay .subscription_settings {
display: none;
position: relative;
width: 100%;
margin: 0 auto;
border-radius: 4px;
top: -1px;
}
#subscription_overlay .subscription_settings.show {
display: block;
}
#subscription_overlay .subscription_settings ul {
margin: 0px;
padding: 10px;
background-color: #EEE;
border: 1px solid #DDD;
border-radius: 4px;
}
#subscription_overlay .subscription_settings ul li {
border-bottom: 1px solid #DDD;
padding: 5px 0px;
}
#subscription_overlay .subscription_settings ul li input[type=checkbox] {
margin-top: 0px;
}
#subscription_overlay .subscription_settings ul li:last-of-type {
border-bottom: none;
}
#subscription_overlay .subscription_settings ul li .sp-replacer {
box-shadow: none;
}
@media (max-width: 1130px) {
.subscriptions-container {
max-width: 95%;
}
#subscription_overlay .left {
width: 40%;
}
#subscription_overlay .right {
width: calc(60% - 1px);
}
#search_stream_name {
width: 100px;
margin-top: 2px;
margin-bottom: 0px;
}
}
@media (max-width: 1024px) {
#search_stream_name {
display: none;
}
}
@media (max-width: 1000px) {
.search-container {
text-align: center;
}
}
@media (max-width: 700px) {
#subscription_overlay .left,
#subscription_overlay .right {
display: block;
width: 100%;
}
#subscription_overlay .left {
overflow: auto;
height: 30%;
}
#subscription_overlay .right {
overflow: auto;
height: calc(70% - 45px);
border-top: 1px solid #ddd;
}
#subscription_overlay .display-type {
display: none;
}
#subscription_overlay .subscriptions-container {
height: 95%;
}
#subscription_overlay .subscription_settings {
overflow: visible;
}
#subscription_overlay .settings {
height: auto;
overflow: visible;
}
}