mirror of
https://github.com/zulip/zulip.git
synced 2026-07-12 21:04:41 +08:00
The tabs can have text inside them that is wider than 90px, especially in some unexpected cases (e.g. a translation longer than the original English string). This type of tabs can be seen in the following popover menus: - Stream subscriptions - Help (with hotkeys, formatting info, etc.) - Settings Now text wider than the tab is ellipsized so it doesn't cause any problem with the rest of the layout, except in the help popover (where it gets wrapped).
317 lines
5.6 KiB
CSS
317 lines
5.6 KiB
CSS
/* Reusable, object-oriented CSS base components for the Zulip redesign */
|
|
|
|
.flex {
|
|
width: 100%;
|
|
height: 100%;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
|
|
.hide {
|
|
display: none;
|
|
}
|
|
|
|
.light {
|
|
font-weight: 300;
|
|
}
|
|
|
|
.display-none {
|
|
display: none;
|
|
}
|
|
|
|
.inline-block {
|
|
display: inline-block;
|
|
}
|
|
|
|
.box-shadow {
|
|
box-shadow: 0px 0px 10px rgba(0,0,0,0.1);
|
|
}
|
|
|
|
.bg-white {
|
|
background-color: #FFF;
|
|
}
|
|
|
|
.clear-float {
|
|
clear: both;
|
|
}
|
|
|
|
.invisible {
|
|
visibility: hidden;
|
|
}
|
|
|
|
/* -- base button styling -- */
|
|
.new-style .button {
|
|
padding: 8px 15px;
|
|
margin: 0;
|
|
min-width: 130px;
|
|
|
|
font-weight: 400;
|
|
text-align: center;
|
|
|
|
background-color: #478fca;
|
|
color: #FFF;
|
|
outline: none;
|
|
border: none;
|
|
border-radius: 2px;
|
|
|
|
cursor: pointer;
|
|
transition: all 0.3s ease;
|
|
}
|
|
|
|
/* -- button states -- */
|
|
.new-style .button:hover {
|
|
-webkit-filter: brightness(1.1);
|
|
-moz-filter: brightness(1.1);
|
|
filter: brightness(1.1);
|
|
}
|
|
|
|
.new-style .button.white:hover {
|
|
border-color: #888;
|
|
background-color: #e4e4e4;
|
|
}
|
|
|
|
.new-style .button:active {
|
|
-webkit-filter: brightness(0.9);
|
|
-moz-filter: brightness(0.9);
|
|
filter: brightness(0.9);
|
|
}
|
|
|
|
.new-style .button[disabled="disabled"] {
|
|
cursor: not-allowed;
|
|
-webkit-filter: saturate(0);
|
|
-moz-filter: saturate(0);
|
|
filter: saturate(0);
|
|
}
|
|
|
|
/* -- button style variations -- */
|
|
.new-style .button.no-style {
|
|
padding: 0px;
|
|
background-color: transparent;
|
|
border: none;
|
|
min-width: 0px;
|
|
width: auto;
|
|
outline: none;
|
|
box-shadow: none !important;
|
|
}
|
|
|
|
.new-style .button.rounded {
|
|
border-radius: 4px;
|
|
}
|
|
|
|
.new-style .button.green {
|
|
background-color: #64ad89;
|
|
}
|
|
|
|
.new-style .button.grey {
|
|
background-color: #aaa;
|
|
}
|
|
|
|
.new-style .button.white {
|
|
padding: 7px 14px;
|
|
background-color: #fff;
|
|
color: inherit;
|
|
border: 1px solid #CCC;
|
|
box-shadow: none;
|
|
}
|
|
|
|
.new-style .button.standalone {
|
|
margin-top: 10px;
|
|
}
|
|
|
|
.new-style .button.small {
|
|
font-size: 0.8rem;
|
|
min-width: inherit;
|
|
padding: 6px 10px;
|
|
}
|
|
|
|
.new-style .button.btn-danger {
|
|
color: #fff;
|
|
background-color: #d9534f;
|
|
border-color: #d43f3a;
|
|
}
|
|
|
|
.new-style .button.btn-warning {
|
|
color: #fff;
|
|
background-color: #f0ad4e;
|
|
border-color: #eea236;
|
|
}
|
|
|
|
.new-style .button.sea-green {
|
|
background-color: #24cac2;
|
|
color: #fff;
|
|
}
|
|
|
|
.new-style .button.small-flex {
|
|
width: auto;
|
|
min-width: inherit;
|
|
}
|
|
|
|
/* -- tab switcher -- */
|
|
|
|
.new-style .tab-switcher {
|
|
font-weight: initial;
|
|
margin: 2px 4px;
|
|
display: inline-block;
|
|
}
|
|
|
|
.new-style .tab-switcher .ind-tab {
|
|
display: inline-block;
|
|
width: 90px;
|
|
margin: 0px -0.5px;
|
|
text-align: center;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
overflow: hidden;
|
|
vertical-align: bottom; /* See http://stackoverflow.com/a/43266155/ */
|
|
padding: 3px 10px;
|
|
background-color: #fff;
|
|
cursor: pointer;
|
|
justify-content: center;
|
|
align-items: center;
|
|
}
|
|
|
|
.informational-overlays .tab-switcher {
|
|
display: flex;
|
|
}
|
|
|
|
.informational-overlays .tab-switcher .ind-tab {
|
|
display: flex;
|
|
text-overflow: initial;
|
|
white-space: initial;
|
|
vertical-align: middle;
|
|
}
|
|
|
|
.new-style .tab-switcher.large .ind-tab {
|
|
width: 130px;
|
|
}
|
|
|
|
.new-style .tab-switcher .ind-tab:not(.selected) {
|
|
border: 1px solid #ccc;
|
|
}
|
|
|
|
.new-style .tab-switcher .ind-tab.first {
|
|
border-radius: 5px 0px 0px 5px;
|
|
border-right: 1px solid transparent;
|
|
}
|
|
|
|
.new-style .tab-switcher .ind-tab.middle {
|
|
border-right: 1px solid transparent;
|
|
}
|
|
|
|
.new-style .tab-switcher .ind-tab.last {
|
|
border-radius: 0px 5px 5px 0px;
|
|
}
|
|
|
|
.new-style .tab-switcher .ind-tab.selected {
|
|
position: relative;
|
|
background: #888;
|
|
color: #fff;
|
|
border: 1px solid #777;
|
|
z-index: 2;
|
|
}
|
|
|
|
.new-style .tab-switcher .ind-tab.disabled {
|
|
pointer-events: none;
|
|
color: #CCC;
|
|
border-color: #DDD;
|
|
}
|
|
|
|
.new-style label.checkbox {
|
|
padding: 0px;
|
|
display: inline-block;
|
|
vertical-align: top;
|
|
}
|
|
|
|
.new-style label.checkbox input[type=checkbox] {
|
|
display: none;
|
|
}
|
|
|
|
.new-style label.checkbox + label {
|
|
width: calc(100% - 40px);
|
|
}
|
|
|
|
.new-style label.checkbox input[type=checkbox] ~ span {
|
|
display: inline-block;
|
|
vertical-align: middle;
|
|
position: relative;
|
|
top: 0px;
|
|
|
|
padding: 1px;
|
|
margin: 0px 5px 0px 0px;
|
|
height: 12px;
|
|
width: 12px;
|
|
|
|
font-weight: 300;
|
|
line-height: 0.8;
|
|
font-size: 1.3rem;
|
|
text-align: center;
|
|
border: 2px solid #ccc;
|
|
color: #ccc;
|
|
|
|
border-radius: 4px;
|
|
|
|
cursor: pointer;
|
|
}
|
|
|
|
.new-style label.checkbox input[type=checkbox]:checked ~ span {
|
|
color: transparent;
|
|
|
|
background-image: url(/static/images/checkbox-green.png);
|
|
background-size: 85%;
|
|
background-position: 50% 50%;
|
|
background-repeat: no-repeat;
|
|
-webkit-filter: grayscale(1);
|
|
}
|
|
|
|
.new-style label.checkbox input[type=checkbox]:disabled ~ span {
|
|
opacity: 0.3;
|
|
}
|
|
|
|
.new-style input[type=text] {
|
|
border-radius: 5px;
|
|
box-shadow: none;
|
|
}
|
|
|
|
.new-style a.no-style {
|
|
color: inherit;
|
|
}
|
|
|
|
/* -- unified overlay design component -- */
|
|
.overlay {
|
|
position: fixed;
|
|
top: 0;
|
|
left: 0;
|
|
width: 100vw;
|
|
height: 100vh;
|
|
overflow: auto;
|
|
-webkit-overflow-scrolling: touch;
|
|
|
|
background-color: rgba(32,32,32,0.8);
|
|
z-index: 105;
|
|
|
|
pointer-events: none;
|
|
opacity: 0;
|
|
|
|
transition: opacity 0.3s ease;
|
|
}
|
|
|
|
.overlay.show {
|
|
opacity: 1;
|
|
pointer-events: all;
|
|
}
|
|
|
|
.overlay .overlay-content {
|
|
-webkit-transform: scale(0.5);
|
|
transform: scale(0.5);
|
|
|
|
z-index: 102;
|
|
|
|
transition: transform 0.3s ease;
|
|
}
|
|
|
|
.overlay.show .overlay-content {
|
|
-webkit-transform: scale(1);
|
|
transform: scale(1);
|
|
}
|