zulip/static/styles/app_components.scss
Anders Kaseorg 27fac76da8 styles: Move media queries into the files they override.
Webpack code splitting will make the inclusion order of CSS files less
obvious, and we need to guarantee that these rules follow the rules
they override.

Signed-off-by: Anders Kaseorg <anders@zulipchat.com>
2019-10-28 15:39:17 -07:00

384 lines
8.0 KiB
SCSS

/* Reusable, object-oriented CSS base components for the Zulip webapp
(not included in the portico CSS) */
.flex {
width: 100%;
height: 100%;
display: flex;
align-items: center;
justify-content: center;
}
.hide {
display: none;
}
.light {
font-weight: 300;
}
.inline-block {
display: inline-block;
}
.display-block {
display: block !important;
}
.box-shadow {
box-shadow: 0px 0px 10px hsla(0, 0%, 0%, 0.1);
}
.bg-white {
background-color: hsl(0, 0%, 100%);
}
.clear-float {
clear: both;
}
.invisible {
visibility: hidden;
}
.new-style {
/* -- base button styling -- */
.button {
padding: 7px 14px;
margin: 0;
min-width: 130px;
font-weight: 400;
line-height: normal;
text-align: center;
background-color: hsl(0, 0%, 100%);
color: inherit;
outline: none;
border: 1px solid hsl(0, 0%, 80%);
border-radius: 2px;
box-shadow: none;
cursor: pointer;
transition: all 0.2s ease;
/* -- button style variations -- */
&.no-style {
padding: 0px;
background-color: transparent;
border: none;
min-width: 0px;
width: auto;
outline: none;
box-shadow: none !important;
}
&.rounded {
border-radius: 4px;
}
&.green {
background-color: hsl(150, 31%, 53%);
}
&.grey {
background-color: hsl(0, 0%, 67%);
}
&.standalone {
margin-top: 10px;
}
&.small {
font-size: 0.8rem;
min-width: inherit;
padding: 6px 10px;
}
&.small-flex {
width: auto;
min-width: inherit;
}
&:hover,
&:focus {
border-color: hsl(0, 0%, 60%);
}
&:active {
border-color: hsl(0, 0%, 60%);
color: inherit;
background-color: hsl(0, 0%, 95%);
}
&.sea-green {
color: hsl(156, 41%, 40%);
border-color: hsl(156, 28%, 70%);
&:hover,
&:focus {
border-color: hsl(156, 30%, 50%);
}
&:active {
border-color: hsl(156, 30%, 40%);
color: hsl(156, 44%, 43%);
background-color: hsl(154, 33%, 96%);
}
}
&.btn-warning {
color: hsl(35, 70%, 56%);
border-color: hsl(35, 98%, 84%);
&:hover,
&:focus {
border-color: hsl(35, 55%, 70%);
}
&:active {
color: hsl(35, 82%, 40%);
border-color: hsl(35, 55%, 70%);
background-color: hsl(33, 48%, 96%);
}
}
&.btn-danger {
color: hsl(357, 64%, 72%);
border-color: hsl(4, 56%, 82%);
&:hover,
&:focus {
border-color: hsl(2, 46%, 68%);
}
&:active {
color: hsl(357, 55%, 63%);
border-color: hsl(2, 46%, 68%);
background-color: hsl(7, 82%, 98%);
}
}
&.btn-link {
color: hsl(208, 56%, 53%);
text-decoration: none;
&:hover,
&:focus {
color: hsl(208, 56%, 38%);
}
}
&[disabled="disabled"] {
cursor: not-allowed;
filter: saturate(0);
background-color: hsl(0, 0%, 93%);
color: hsl(0, 3%, 52%);
&:hover {
background-color: hsl(0, 0%, 93%);
color: hsl(156, 39%, 54%);
border-color: hsl(156, 39%, 77%);
}
}
}
/* -- tab switcher -- */
.tab-switcher {
font-weight: initial;
margin: 2px 4px;
display: inline-block;
.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: hsl(0, 0%, 100%);
cursor: pointer;
justify-content: center;
align-items: center;
&:focus {
outline: none;
}
&:not(.selected) {
border: 1px solid hsl(0, 0%, 80%);
}
&.first {
border-radius: 5px 0px 0px 5px;
border-right: 1px solid transparent;
}
&.middle {
border-right: 1px solid transparent;
}
&.last {
border-radius: 0px 5px 5px 0px;
}
&.selected {
position: relative;
background-color: hsl(0, 0%, 53%);
color: hsl(0, 0%, 100%);
border: 1px solid hsl(0, 0%, 47%);
z-index: 2;
}
&.disabled {
pointer-events: none;
color: hsl(0, 0%, 80%);
border-color: hsl(0, 0%, 87%);
}
}
&.large .ind-tab {
width: 100%;
}
&.allow-overflow {
display: flex;
.ind-tab {
display: flex;
text-overflow: initial;
white-space: initial;
vertical-align: middle;
}
}
}
}
/* -- unified overlay design component -- */
.overlay {
position: fixed;
top: 0;
left: 0;
width: 100vw;
height: 100vh;
overflow: auto;
-webkit-overflow-scrolling: touch;
background-color: hsla(0, 0%, 13%, 0.8);
z-index: 105;
pointer-events: none;
opacity: 0;
transition: opacity 0.2s ease-in;
overflow: hidden;
.overlay-content {
transform: translateY(20px);
transition: transform 0.2s ease-in;
z-index: 102;
}
&.show {
opacity: 1;
pointer-events: all;
transition-timing-function: ease-out;
.overlay-content {
transform: translateY(0px);
transition-timing-function: ease-out;
}
}
}
.input-append {
font-size: 90%;
letter-spacing: -.3em;
}
.input-append input[type=text],
.new-style input[type=text] {
border-radius: 5px;
box-shadow: none;
margin: 0px;
}
.clear_search_button {
&:hover {
color: hsl(0, 0%, 0%);
}
&[disabled] {
visibility: hidden;
}
&,
&:focus,
&:active,
&[disabled]:hover {
position: relative;
right: 20px;
background: none;
border: none;
text-align: center;
padding-top: 8px;
padding-left: 4px;
color: hsl(0, 0%, 80%);
text-shadow: none;
outline: none !important;
box-shadow: none;
z-index: 5;
.user_status_overlay & {
margin-left: -26px;
right: 0;
padding-top: 6px;
}
}
}
.grey-box {
margin: 0px;
padding: 5px 10px;
background-color: hsl(0, 0%, 98%);
border: 1px solid hsl(0, 0%, 87%);
border-radius: 4px;
list-style-type: none;
}
.white-box {
background-color: hsl(0, 0%, 100%);
border: 1px solid hsl(0, 0%, 87%);
}
.guest-avatar {
position: relative;
overflow: hidden;
&::after {
content: " ";
background-color: hsl(0, 0%, 47%);
position: absolute;
bottom: -30%;
right: -30%;
width: 50%;
height: 50%;
transform: rotate(45deg);
}
}
@media (max-width: 767px) {
/* Override Bootstrap's responsive grid to display input at full width */
.input-append .stream-list-filter {
/* Input width = 100% - 10px margin x2 - 6px padding x2 - 1px border x2. */
width: calc(100% - 34px);
margin-left: 10px;
}
}