signal-desktop/stylesheets/_ios.scss
Scott Nonnenberg 6413e75f82
iOS: Handle portrait image that doesn't fill message box
It would have rounded corners inside of the bubble, which is not what
we want. This makes the bubble itself have the rounded corners, and then
it cuts off anything that would extend past its edges.
2018-04-13 18:10:51 -07:00

327 lines
6.3 KiB
SCSS

$ios-header-border-color: rgba(0,0,0,0.05);
$ios-border-color: rgba(0,0,0,0.1);
.ios {
#header {
height: $header-height;
border-bottom: 1px solid $ios-header-border-color;
border-width: 0 1px 1px 0;
background-color: $grey_l;
color: $grey_d;
h1 { display: none; }
}
.gutter {
border-right: 1px solid $ios-border-color;
.content {
height: calc(100% - #{$header-height});
background: $ios-border-color;
}
.contact {
background: $grey_l;
margin-right: 0;
&.selected {
background: $blue;
color: white;
.last-timestamp {
color: white;
}
}
}
}
.banner {
top: 15px;
}
.tool-bar {
float: left;
padding: 15px;
}
input[type=text]:active,
input[type=text]:focus,
input[type=search]:active,
input[type=search]:focus,
input[type=search].active,
form.active {
outline-offset: 0;
outline: -webkit-focus-ring-color auto 5px;
}
input.search {
border-radius: 5px;
width: 220px;
height: 34px;
padding-left: $search-padding-left-ios;
line-height: 34px;
background-color: #dddddd;
&.active.rtl {
background-position : left $search-padding-left-ios center;
}
}
.conversation-header {
background-color: $grey_l;
color: $grey_d;
border-color: $ios-header-border-color;
text-align: left;
// Without this, it interacts poorly with 100% height placeholder shown on startup
position: absolute;
top: 0;
width: 100%;
z-index: 1;
.conversation-title {
line-height: $header-height;
.verified-icon {
@include color-svg('../images/verified-check.svg', #454545);
}
}
.avatar { display: none; }
}
.conversation .panel {
position: absolute;
top: $header-height;
bottom: 0;
width: 100%;
}
.settings h3,
.menu-list li {
text-transform: capitalize;
}
.bottom-bar {
padding: 15px;
min-height: 30px;
border-top: 1px solid $ios-border-color;
form.send {
border-radius: 5px;
border: 1px solid $ios-border-color;
}
}
.error-message.content,
.control .content {
padding: 10px;
}
.message-list {
.quote {
border-top-left-radius: 15px;
border-top-right-radius: 15px;
border-bottom-left-radius: 0px;
border-bottom-right-radius: 0px;
// Not ideal, but necessary to override the specificity of the android theme color
// classes used in conversations.scss
background-color: white !important;
border: 1px solid $grey_l1_5 !important;
border-bottom: none !important;
margin-top: 0px;
margin-bottom: 0px;
margin-left: 0px;
margin-right: 0px;
.primary {
padding: 10px;
.text,
.filename-label,
.type-label {
border-left: 2px solid $grey_l1;
padding: 5px;
padding-left: 7px;
// Without this smaller bottom padding, text beyond four lines still shows up!
padding-bottom: 2px;
color: black;
}
.author {
display: none;
}
.ios-label {
display: block;
color: $grey_l1;
font-size: smaller;
margin-bottom: 3px;
}
}
.icon-container {
height: 61px;
width: 61px;
min-width: 61px;
.circle-background {
left: 12px;
right: 12px;
top: 12px;
bottom: 12px;
background-color: $blue !important;
}
.icon {
left: 18px;
right: 18px;
top: 18px;
bottom: 18px;
background-color: white !important;
}
.inner {
padding: 12px;
}
}
.from-me {
.primary {
.text,
.filename-label,
.type-label {
border-left: 2px solid $blue;
}
}
}
}
.incoming {
.bubble {
.quote {
border-left: none;
border: none !important;
border-bottom: 1px solid lightgray !important;
}
}
}
.bubble {
.quote.from-me {
.primary {
.text,
.filename-label,
.type-label {
border-left: 2px solid $blue;
}
}
}
}
.outgoing .bubble .quote,
.private .message-list .incoming .bubble .quote {
margin-top: 0px;
}
.outgoing .bubble .quote .icon-container .circle-background {
background-color: lightgray !important;
}
}
.attachments .bubbled {
border-radius: 15px;
padding: 10px;
padding-top: 0px;
padding-bottom: 5px;
position: relative;
}
.inner-bubble {
border-radius: 15px;
margin-bottom: 5px;
overflow: hidden;
.body {
margin-top: 0;
display: inline-block;
padding: 10px;
position: relative;
word-break: break-word;
}
}
.inner-bubble.with-tail {
position: relative;
&:before, &:after {
content: '';
display: block;
border-radius: 20px;
position: absolute;
width: 10px;
}
&:before {
right: -1px;
bottom: -3px;
height: 10px;
border-radius: 20px;
background: $blue;
}
&:after {
height: 11px;
right: -6px;
bottom: -3px;
background: #eee;
}
.attachments img {
border-bottom-left-radius: 0px;
border-bottom-right-radius: 0px;
}
}
.meta {
clear: both;
}
.outgoing .inner-bubble.with-tail {
background-color: $blue;
max-width: 100%;
&, .body, a {
@include invert-text-color;
}
float: right;
}
.incoming .inner-bubble.with-tail {
background-color: white;
color: black;
float: left;
max-width: 100%;
&:before {
left: -1px;
background-color: white;
}
&:after {
left: -6px;
}
}
.outgoing .attachments .fileView .icon {
@include color-svg('../images/file.svg', white);
&.audio {
@include color-svg('../images/audio.svg', white);
}
&.video {
@include color-svg('../images/video.svg', white);
}
&.voice {
@include color-svg('../images/voice.svg', white);
}
}
.attachment {
a {
border-radius: 15px;
}
}
.hourglass {
@include hourglass(#999);
}
}