zulip/static/styles/components.css
Yago González f62b8ea080 css: Properly wrap text inside tabs.
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).
2017-04-14 14:15:37 -07:00

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);
}