VulpesOS/overrides/communications.gaiamobile.org/contacts/style/app.css
OverSu b38dea0597 Publish Vulpes Preview 15 sources for desktop, Android and Tundra
Share Gaia assets and adapters, keep private profiles and development documents local, and update both public READMEs.
2026-09-30 23:13:03 +02:00

627 lines
13 KiB
CSS

/* ROOT */
/* Global */
html {
width: 100%;
height: 100%;
margin: 0;
padding: 0;
font-size: 62.5%;
overflow: hidden;
position: relative;
background-color: white;
-moz-user-select: none;
}
body {
color: #fff;
font-size: 1.6rem;
line-height: 2.2rem;
text-align: center;
vertical-align: middle;
}
/* Text conventions */
h1, h2, h3, h4, h5, h6 {
margin: 0;
padding: 0;
font-weight: normal;
}
ul, ol, dl, dt, dd {
padding: 0;
margin: 0;
list-style-type: none;
}
p, li {
word-wrap: break-word;
margin: 0;
padding: 0;
}
q {
quotes: none;
display: block;
}
pre, blockquote {
padding: 0;
margin: 0;
}
em {
font-style: italic;
}
address {
font-style: normal;
display: inline;
}
abbr, acronym {
cursor: default;
border: none;
}
strong {
font-weight: bold;
}
b {
font-weight: 600;
}
small {
font-size: 1.1rem;
line-height: 1rem;
color: #999;
}
/* Links */
a {
text-decoration: none;
outline: none;
color: #333;
}
a:hover {
text-decoration: none;
}
a img {
border: none;
}
a abbr {
cursor: pointer;
}
/* Icons */
span.icon {
font-style: normal;
}
span.icon + b, span.icon + span {
vertical-align: middle;
}
/* Tables */
table {
border-collapse: collapse;
border-spacing: 0;
width: 100%;
}
td {
vertical-align: top;
}
caption, th {
text-align: start;
}
caption {
text-indent: -9999rem;
width: 0;
height: 0;
overflow: hidden;
}
/* Forms */
form {
margin: 0;
}
input:focus, textarea:focus {
outline: none;
}
textarea {
resize: none;
overflow: auto;
height: 4.6rem;
}
[contenteditable] {
outline: none;
word-wrap: break-word;
}
/* Media */
img {
display: block;
padding: 0;
margin: 0;
width: 100%;
}
img:-moz-broken {
line-height: 1.1rem;
overflow: hidden;
}
/* HTML 5 */
article, aside, details, figcaption, figure, footer, header, hgroup,
menu, nav, section, video, audio, canvas, progress, meter, time {
display: block;
padding: 0;
margin: 0;
}
/* APP */
/* view */
.view {
position: absolute;
overflow: hidden;
top: 0;
left: 0;
width: 100%;
height: 100%;
transform: translate(0, 0);
}
.view:not(.view-noscroll) {
overflow-x: hidden;
overflow-y: auto;
}
.view-right {
transform: translateX(100%);
}
.view-bottom {
transform: translateY(100%);
}
/* Rewritting from buttons.css */
section[role="region"] > gaia-header button,
section[role="region"] > gaia-header a {
white-space: normal;
}
/* Buttons inside list redefinition */
li button span {
font-size: 0;
}
li button span[data-l10n-id] {
font-size: 1.6rem;
}
/* Extending components */
li button.activity > b em {
color: #727272;
font-style: normal;
}
[data-type="list"] li p {
margin-inline-start: 1.5rem;
}
/* BB Lists extending */
#view-contacts-list [data-type="list"] {
/**
* BiDi note:
* the non-symmetrical padding accomodates the A-Z scrollbar,
* which is always on the right edge of the screen
*/
padding: 2.5rem 3.5rem 0 1.5rem; /* BiDi-proof */
}
[data-type="list"] gaia-header {
padding: 0;
padding-inline-start: 1.5rem;
position: sticky;
top: -1.5rem;
background: #FFF;
z-index: 2;
}
[data-type="list"].active li:after {
offset-inline-end: 0;
}
/* JS helper */
[data-type="list"] li p,
[data-type="list"] li aside {
pointer-events: none;
}
[data-type="list"] li aside.pack-end {
margin: 0;
margin-inline-end: 1rem;
}
/* Selection tag extended from shared/style/buttons.css */
.view-select-tag .selection-list li button {
background-color: #fff;
}
.view-select-tag .selection-list li button.icon-selected:before {
background: transparent image-set(url("gphx/bitmap/default/lists/tick.png") 1x, url("gphx/bitmap/default/lists/tick@1.5x.png") 1.5x, url("gphx/bitmap/default/lists/tick@2x.png") 2x, url("gphx/bitmap/default/lists/tick@2.25x.png") 2.25x) no-repeat center center / 2rem;
}
#custom-tag {
margin-bottom: 2rem;
}
/* Body */
.view-body {
position: relative;
height: calc(100% - 5rem);
}
#view-screenshot.contact-list > #view-screenshot-body {
position: relative;
height: 100%;
width: 100%;
background: -moz-element(#view-contacts-list);
}
.view-body-inner {
overflow-x: hidden;
overflow-y: auto;
position: absolute;
left: 0;
top: 0;
bottom: 0;
z-index: 5;
width: 100%;
box-sizing: border-box;
background: #fff;
color: #333;
text-align: start;
will-change: scroll-position;
}
/* Removes scroll from the view body inner */
.view-noscroll .view-body-inner {
width: calc(100% + 1.5rem);
}
/* STACK: inline block list items; */
.stack {
letter-spacing: -0.4rem;
text-align: center;
}
.stack > li {
display: inline-block;
vertical-align: middle;
letter-spacing: 0;
}
/* ICONS */
span.icon {
font-size: 0;
background: transparent no-repeat center center;
background-size: 100% auto;
display: inline-block;
}
/* GENERIC BUTTONS */
span.icon.icon-delete {
background-image: image-set(url("/contacts/style/gphx/bitmap/default/forms/delete.png") 1x, url("/contacts/style/gphx/bitmap/default/forms/delete@1.5x.png") 1.5x, url("/contacts/style/gphx/bitmap/default/forms/delete@2x.png") 2x, url("/contacts/style/gphx/bitmap/default/forms/delete@2.25x.png") 2.25x);
background-size: 3rem;
width: 3rem;
}
span.icon.icon-addimage {
background-image: image-set(url("/contacts/style/gphx/bitmap/default/forms/add.png") 1x, url("/contacts/style/gphx/bitmap/default/forms/add@1.5x.png") 1.5x, url("/contacts/style/gphx/bitmap/default/forms/add@2x.png") 2x, url("/contacts/style/gphx/bitmap/default/forms/add@2.25x.png") 2.25x);
background-size: 3rem;
width: 7rem;
height: 3rem;
}
span.icon.icon-address {
background-image: image-set(url("/contacts/style/gphx/bitmap/default/buttons/location.png") 1x, url("/contacts/style/gphx/bitmap/default/buttons/location@1.5x.png") 1.5x, url("/contacts/style/gphx/bitmap/default/buttons/location@2x.png") 2x, url("/contacts/style/gphx/bitmap/default/buttons/location@2.25x.png") 2.25x);
}
li button.icon-link:before {
background-image: image-set(url("/contacts/style/gphx/bitmap/default/buttons/link.png") 1x, url("/contacts/style/gphx/bitmap/default/buttons/link@1.5x.png") 1.5x, url("/contacts/style/gphx/bitmap/default/buttons/link@2x.png") 2x, url("/contacts/style/gphx/bitmap/default/buttons/link@2.25x.png") 2.25x);
}
li button.icon-share:before {
background-image: image-set(url("/contacts/style/gphx/bitmap/default/buttons/share.png") 1x, url("/contacts/style/gphx/bitmap/default/buttons/share@1.5x.png") 1.5x, url("/contacts/style/gphx/bitmap/default/buttons/share@2x.png") 2x, url("/contacts/style/gphx/bitmap/default/buttons/share@2.25x.png") 2.25x);
}
/* Extending icons */
li button.icon-fav:before {
background-image: image-set(url("/contacts/style/images/icon-fav-button-off.png") 1x, url("/contacts/style/images/icon-fav-button-off@1.5x.png") 1.5x, url("/contacts/style/images/icon-fav-button-off@2x.png") 2x, url("/contacts/style/images/icon-fav-button-off@2.25x.png") 2.25x);
offset-inline-end: 0.5rem;
}
li button.icon-fav.on:before {
background-image: image-set(url("/contacts/style/images/icon-fav-button-on.png") 1x, url("/contacts/style/images/icon-fav-button-on@1.5x.png") 1.5x, url("/contacts/style/images/icon-fav-button-on@2x.png") 2x, url("/contacts/style/images/icon-fav-button-on@2.25x.png") 2.25x);
}
li button.icon-fb-profile:before {
background-image: image-set(url("/contacts/style/gphx/bitmap/default/buttons/fb_profile.png") 1x, url("/contacts/style/gphx/bitmap/default/buttons/fb_profile@1.5x.png") 1.5x, url("/contacts/style/gphx/bitmap/default/buttons/fb_profile@2x.png") 2x, url("/contacts/style/gphx/bitmap/default/buttons/fb_profile@2.25x.png") 2.25x);
}
li button.icon-add:before {
background-image: image-set(url("/contacts/style/images/Add_button.png") 1x, url("/contacts/style/images/Add_button@1.5x.png") 1.5x, url("/contacts/style/images/Add_button@2x.png") 2x, url("/contacts/style/images/Add_button@2.25x.png") 2.25x);
offset-inline-start: 0.2rem
}
li button.icon-find-and-merge:before {
background-image: image-set(url("/contacts/style/images/findandmerge.png") 1x, url("/contacts/style/images/findandmerge@1.5x.png") 1.5x, url("/contacts/style/images/findandmerge@2x.png") 2x, url("/contacts/style/images/findandmerge@2.25x.png") 2.25x);
background-size: 3rem;
}
/* Block type (long text) */
.action-block {
height: auto;
min-height: 4rem;
word-wrap: normal;
}
.action-block b {
display: block;
overflow: hidden;
line-height: 1.4em;
}
.action-block span {
display: block;
overflow: hidden;
text-overflow: ellipsis;
}
/* FILL FLOW: general components for helping in defining basic flows in forms; */
.fill-flow {
padding-inline-end: 0;
}
/* ROW: horizontal separation for elements; */
.fillflow-row {
position: relative;
}
.fillflow-left {
margin-inline-end: 0.7rem;
}
.fillflow-twocols {
overflow: hidden;
}
.fillflow-twocols button {
width: calc(50% - 0.5rem);
}
html[dir="ltr"] .fillflow-twocols button { float: left; }
html[dir="rtl"] .fillflow-twocols button { float: right; }
html[dir="ltr"] .fillflow-twocols button:last-child { float: right; }
html[dir="rtl"] .fillflow-twocols button:last-child { float: left; }
/* ROW ACTION */
.fillflow-row-action {
position: absolute;
offset-inline-end: 0;
top: 0;
width: auto;
height: auto;
padding-top: 0;
}
.fillflow-row-action span.icon {
border: none;
margin: 0;
height: 3.8rem;
}
/* MEDIA: specific ratio used in forms; */
.fillflow-media {
margin: 0;
margin-inline-end: 1rem;
margin-bottom: 0.5rem;
width: 7rem;
height: 7rem;
position: relative;
z-index: 0;
border: 1px solid #c7c7c7;
background-color: #fff;
border-radius: 7rem;
box-sizing: border-box;
}
.fillflow-media:active {
color: #fff;
background: rgba(105,230,255,0.5);
}
.fillflow-media.with-photo:active {
background: none;
}
.fillflow-media p {
position: absolute;
margin: 0;
padding: 0;
offset-inline-start: -1.5rem;
top: 2rem;
text-align: center;
z-index: -1;
width: 10rem;
}
.fillflow-media p em {
display: block;
color: #858585;
font-size: 1.1rem;
font-weight: normal;
font-style: italic;
margin-top: 1.8rem;
overflow: hidden;
text-overflow: ellipsis;
}
.fillflow-media .edit-photo {
z-index: 1;
display: none;
pointer-events: none;
margin-top: 3.6rem;
}
.with-photo .edit-photo {
display: block;
}
.fillflow-media #photo-button {
width: 100%;
height: 100%;
background: none;
line-height: inherit;
padding: 0;
}
.fillflow-media img {
width: 100%;
height: 100%;
background: #fff no-repeat center center;
background-size: cover;
}
/* We don't need a delete button on the first section */
.fillflow-media .img-delete-button {
display: none;
}
#thumbnail-action {
margin: 0 1.5rem 0.5rem 1.5rem;
}
/* JUMPER */
nav[data-type="scrollbar"] {
z-index: 6;
}
nav[data-type="scrollbar"].selecting {
bottom: 4.2rem;
}
nav[data-type="scrollbar"] ol > li > * {
pointer-events: none;
}
#groups-container.selecting {
height: calc(100% - 7rem);
}
.contact-checkbox {
offset-inline-start: 0 !important;
display: none !important;
}
.contact-checkbox-selecting {
display: block !important;
}
/* FB contacts will be disabled when adding .disable-fb-items to contact list */
.disable-fb-items li[data-fb-uid] {
color: #333333;
opacity: 0.25;
pointer-events: none;
}
/* This makes the checkbox appear unchecked when using .disable-fb-items */
.disable-fb-items li[data-fb-uid] label span:after {
background-position: center top;
}
#groups-list.selecting .group-section li,
#search-list.selecting li {
padding-inline-start: 2rem;
}
form[role="dialog"].no-overlay {
background: none;
pointer-events: none;
position: fixed;
}
form[role="dialog"].no-overlay button {
pointer-events: auto;
}
#selectable-form {
background: none;
}
#groups-list[data-type="list"].active.selecting li:not(:active):after {
display:none !important;
}
#import-settings button {
margin: 1.5rem;
width: calc(100% - 3rem);
}
#contact-list-ice {
padding-inline-start: 1rem
}
#contact-list-ice li {
display: flex;
align-items: baseline;
}
#contact-list-ice span {
width: 3rem;
height: 3rem;
background: image-set(url("/contacts/style/images/icon_ice.png") 1x, url("/contacts/style/images/icon_ice@1.5x.png") 1.5x, url("/contacts/style/images/icon_ice@2x.png") 2x, url("/contacts/style/images/icon_ice@2.25x.png") 2.25x) no-repeat 0 0 / 3rem auto transparent;
}
#groups-list.selecting #contact-list-ice {
display:none;
}
#ice-list {
min-height: 100%;
background: #FFF;
text-align: start;
}
.ice-contact {
font-size: 1.6rem;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
width: 24rem;
}
/* .ice-contact is a <bdi> */
html[dir="ltr"] .ice-contact { text-align: left; }
html[dir="rtl"] .ice-contact { text-align: right; }
#contacts-form-notes textarea {
height: 9rem;
}
#search-list li.contact-item {
-moz-user-select: none;
text-align: start;
}