signal-desktop/stylesheets/_ios.scss
Scott Nonnenberg 293be5d9f6 Truncate long filenames in attachments
The :before technique for adding the icon was removed, because it
resulted in some rendering issues when the layout pressure in the
message bubble got too high - you would see a partial icon. This
solution shrinks the icon a bit when the filename wants to expand to
take its space.

The iOS bubble width also needed special care to ensure it didn't expand
to accommodate the very wide filenames. Beyond that, overflow: hidden
needed to be applied at several levels to make everything behave as
expected.

FREEBIE
2017-08-04 12:03:25 -07:00

230 lines
4.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;
.conversation-title {
line-height: $header-height;
.verified-icon {
@include color-svg('/images/verified-check.svg', #454545);
}
}
.avatar { display: none; }
}
.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;
}
.attachments .bubbled {
border-radius: 15px;
margin-bottom: 0.25em;
padding: 10px;
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;
}
}
.bubble {
.content {
margin-bottom: 5px;
.body {
display: inline-block;
padding: 10px;
position: relative;
word-break: break-word;
&: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;
}
}
}
.content, .attachments img {
border-radius: 15px;
}
.attachments img {
background-color: white;
}
.meta {
clear: both;
}
}
.incoming .bubbled {
background-color: white;
color: black;
float: left;
max-width: 100%;
&:before {
left: -1px;
background-color: white;
}
&:after {
left: -6px;
}
}
.incoming .content {
background-color: white;
color: black;
float: left;
.body {
&:before {
left: -1px;
background-color: white;
}
&:after {
left: -6px;
}
}
}
.outgoing {
.content, .attachments .bubbled {
background-color: $blue;
max-width: 100%;
&, .body, a {
@include invert-text-color;
}
float: right;
}
}
.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;
}
margin-bottom: 1px;
}
.hourglass {
@include hourglass(#999);
}
}