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.
This commit is contained in:
OverSu 2026-09-30 23:13:03 +02:00
commit b38dea0597
25901 changed files with 9982925 additions and 369 deletions

View file

@ -0,0 +1,78 @@
#call-info-view {
position: absolute;
top: 0;
background: white;
width: 100vw;
height: calc(100vh - 4.5rem);
color: #333;
}
#call-info-view p {
margin: 0;
}
.ci__wrapper {
padding: 1.4rem 1.5rem 0;
}
.ci__calls-wrapper {
padding: 0 0.9rem 1.4rem;
padding-inline-start: 1.5rem;
margin-bottom: 1.6rem;
border-bottom: 1px solid #e7e7e7;
}
.ci__group-info {
display: flex;
font-size: 1.6rem;
font-weight: 500;
}
.ci__grow {
flex-grow: 1;
}
.call-duration {
display: flex;
margin-top: 1rem;
font-size: 1.4rem;
}
.cd__duration {
text-align: end;
}
.ci__direction-icon {
width: 2rem;
height: 2rem;
background-size: cover;
}
.icon-outgoing {
background-image: image-set(url("images/call_info/callinfo_ic_outgoing.png") 1x, url("images/call_info/callinfo_ic_outgoing@1.5x.png") 1.5x, url("images/call_info/callinfo_ic_outgoing@2x.png") 2x, url("images/call_info/callinfo_ic_outgoing@2.25x.png") 2.25x);
}
.icon-incoming {
background-image: image-set(url("images/call_info/callinfo_ic_incoming.png") 1x, url("images/call_info/callinfo_ic_incoming@1.5x.png") 1.5x, url("images/call_info/callinfo_ic_incoming@2x.png") 2x, url("images/call_info/callinfo_ic_incoming@2.25x.png") 2.25x);
}
.icon-missed {
background-image: image-set(url("images/call_info/callinfo_ic_missed.png") 1x, url("images/call_info/callinfo_ic_missed@1.5x.png") 1.5x, url("images/call_info/callinfo_ic_missed@2x.png") 2x, url("images/call_info/callinfo_ic_missed@2.25x.png") 2.25x);
}
/**
* As <gaia-header> does not support <h1 dir="auto"> children, a <bdi> element
* must be nested and specific ellipsis rules must be applied.
*
* Horizontal padding must be applied in order to:
* - not overlap the [action="back"] button
* - keep the title centered
* (the magic 50px value corresponds to the size of the "back" button).
*/
#call-info-title {
display: block;
text-overflow: ellipsis;
overflow: hidden;
padding-left: 50px;
padding-right: 50px;
}

View file

@ -0,0 +1,298 @@
/* Overriding BB styles for headers */
section[role="region"] > header:first-child .icon {
pointer-events: auto;
}
/* Overriding BB styles for edit mode */
form[role="dialog"][data-type="edit"] gaia-header {
pointer-events: auto;
}
#call-log-container[data-type="list"] section {
background: #fff;
}
#sticky {
position: absolute;
/* The sticky element is positioned at the beginning of the list. */
top: 0;
/* The width is not 100% so the scrollbar is visible. */
width: calc(100% - 1.5rem);
/* The height needs to be kept in sync with the header height. */
height: 3.1rem;
/* Those style will affect the bagroundImage: -moz-element. */
background-repeat: no-repeat;
}
html[dir="ltr"] #sticky { background-position: left 1.5rem top 0; }
html[dir="rtl"] #sticky { background-position: right 1.5rem top 0; }
#call-log-container[data-type="list"] header {
background: #fff;
}
/* Override Building Block styles for lists */
#call-log-container[data-type="list"] {
padding: 0;
}
#call-log-container[data-type="list"] header {
margin: 0 1.5rem;
}
#call-log-container[data-type="list"] ol {
padding: 0 1.5rem;
/* Bug 967880 - [Call Log] Background doesn't scroll with the logs causing
* expensive over-invalidation.
*/
background-color: white;
}
#call-log-container[data-type="list"] li {
height: 6rem;
box-sizing: border-box;
}
/* For preventig active status with withheld number */
#call-log-container[data-type="list"] li[data-phone-number=""]:after,
#call-log-container[data-type="list"] li[data-phone-number=""]:active:after {
background-color: transparent;
}
#call-log-container[data-type="list"] li a p {
line-height: 2.4rem;
}
#call-log-container[data-type="list"] li a p:nth-last-of-type(3) {
padding: 0;
}
button[disabled],
input[type="text"][disabled],
a.bb-button[disabled],
a.bb-button[disabled] * {
pointer-events: none;
}
input[type="text"][disabled],
a.bb-button[disabled] {
opacity: 0.3;
}
li, ol, ul {
margin: 0;
padding: 0;
border: 0;
font-size: 100%;
font: inherit;
vertical-align: baseline;
}
ol, ul {
list-style: none;
}
.hide {
display: none;
}
.view-body {
color: black;
height: calc(100% - 9.1rem);
position: absolute;
overflow: hidden;
width: 100%;
}
.view-body-inner {
height: 100%;
overflow: auto;
}
.view-body-inner ol {
overflow: hidden;
}
.icon-container {
height: 100%;
width: 5rem;
}
html[dir="ltr"] .icon-container { float: left; }
html[dir="rtl"] .icon-container { float: right; }
.icon-incoming,
.icon-outgoing,
.icon-missed {
background-size: 3rem;
}
/* .first-sim and .second-sim classes should only affect the style
* if the .dual-sim class is set on the container */
[data-type="list"] aside.icon.icon-incoming {
background-image: image-set(url("images/CallLog_30x30_incoming.png") 1x, url("images/CallLog_30x30_incoming@1.5x.png") 1.5x, url("images/CallLog_30x30_incoming@2x.png") 2x, url("images/CallLog_30x30_incoming@2.25x.png") 2.25x);
}
[data-type="list"].dual-sim aside.icon.icon-incoming.first-sim {
background-image: image-set(url("images/CallLog_30x30_incoming-first-sim.png") 1x, url("images/CallLog_30x30_incoming-first-sim@1.5x.png") 1.5x, url("images/CallLog_30x30_incoming-first-sim@2x.png") 2x, url("images/CallLog_30x30_incoming-first-sim@2.25x.png") 2.25x);
}
[data-type="list"].dual-sim aside.icon.icon-incoming.second-sim {
background-image: image-set(url("images/CallLog_30x30_incoming-second-sim.png") 1x, url("images/CallLog_30x30_incoming-second-sim@1.5x.png") 1.5x, url("images/CallLog_30x30_incoming-second-sim@2x.png") 2x, url("images/CallLog_30x30_incoming-second-sim@2.25x.png") 2.25x);
}
[data-type="list"] aside.icon.icon-outgoing {
background-image: image-set(url("images/CallLog_30x30_outgoing.png") 1x, url("images/CallLog_30x30_outgoing@1.5x.png") 1.5x, url("images/CallLog_30x30_outgoing@2x.png") 2x, url("images/CallLog_30x30_outgoing@2.25x.png") 2.25x);
}
[data-type="list"].dual-sim aside.icon.icon-outgoing.first-sim {
background-image: image-set(url("images/CallLog_30x30_outgoing-first-sim.png") 1x, url("images/CallLog_30x30_outgoing-first-sim@1.5x.png") 1.5x, url("images/CallLog_30x30_outgoing-first-sim@2x.png") 2x, url("images/CallLog_30x30_outgoing-first-sim@2.25x.png") 2.25x);
}
[data-type="list"].dual-sim aside.icon.icon-outgoing.second-sim {
background-image: image-set(url("images/CallLog_30x30_outgoing-second-sim.png") 1x, url("images/CallLog_30x30_outgoing-second-sim@1.5x.png") 1.5x, url("images/CallLog_30x30_outgoing-second-sim@2x.png") 2x, url("images/CallLog_30x30_outgoing-second-sim@2.25x.png") 2.25x);
}
[data-type="list"] aside.icon.icon-missed {
background-image: image-set(url("images/CallLog_30x30_missed.png") 1x, url("images/CallLog_30x30_missed@1.5x.png") 1.5x, url("images/CallLog_30x30_missed@2x.png") 2x, url("images/CallLog_30x30_missed@2.25x.png") 2.25x);
}
[data-type="list"].dual-sim aside.icon.icon-missed.first-sim {
background-image: image-set(url("images/CallLog_30x30_missed-first-sim.png") 1x, url("images/CallLog_30x30_missed-first-sim@1.5x.png") 1.5x, url("images/CallLog_30x30_missed-first-sim@2x.png") 2x, url("images/CallLog_30x30_missed-first-sim@2.25x.png") 2.25x);
}
[data-type="list"].dual-sim aside.icon.icon-missed.second-sim {
background-image: image-set(url("images/CallLog_30x30_missed-second-sim.png") 1x, url("images/CallLog_30x30_missed-second-sim@1.5x.png") 1.5x, url("images/CallLog_30x30_missed-second-sim@2x.png") 2x, url("images/CallLog_30x30_missed-second-sim@2.25x.png") 2.25x);
}
.log-item * {
pointer-events: none;
}
.log-item .primary-info {
display: flex;
}
/* Decrease padding defined by BB styles to compensate increased line-height */
.log-item .primary-info:first-of-type {
padding-top: 0.8rem;
}
.log-item a > p {
width: calc(100% - 4rem);
}
.log-item.missed-call .primary-info {
color: #bc1515;
}
.log-item .primary-info-main {
min-width: 0;
}
.log-item .primary-info-main bdi {
display: block;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.log-item .retry-count {
margin-inline-start: 0.5rem;
}
.log-item .additional-info {
display: inline-flex;
justify-content: space-between;
margin-top: -0.4rem;
}
.log-item .type-carrier {
overflow: hidden;
text-overflow: ellipsis;
}
.log-item .call-time {
margin-inline-start: 0.5rem;
}
.log-item .pack-checkbox {
visibility: hidden;
}
/* Edit mode state */
.recents-edit form[role="dialog"][data-type="edit"] header,
.recents-edit form[role="dialog"][data-type="edit"] > menu {
transform: translateY(0);
}
html[dir="ltr"] .recents-edit .pack-checkbox.call-log-selection {
transform: translateX(4rem);
}
html[dir="rtl"] .recents-edit .pack-checkbox.call-log-selection {
transform: translateX(-4rem);
}
.recents-edit .log-item a {
visibility: hidden;
}
html[dir="ltr"] .recents-edit .log-item a { transform: translateX(3rem); }
html[dir="rtl"] .recents-edit .log-item a { transform: translateX(-3rem); }
.recents-edit .log-item a > aside,
.recents-edit .log-item a > p {
visibility: visible;
}
.recents-edit .log-item a > p {
width: calc(100% - 6.5rem);
}
.recents-edit .log-item .pack-checkbox {
pointer-events: auto;
visibility: visible;
}
/*
No result container
*/
#no-result-container {
background: image-set(url("images/ComLog_200x200_clock.png") 1x, url("images/ComLog_200x200_clock@1.5x.png") 1.5x, url("images/ComLog_200x200_clock@2x.png") 2x, url("images/ComLog_200x200_clock@2.25x.png") 2.25x) fixed no-repeat center / 20rem;
height: 100%;
margin: 0 1.5rem;
}
#no-result-message {
position: relative;
top: 11.5rem;
border-top: .1rem solid rgba(96,96,96,.5);
padding: 1rem 1.5rem;
}
#no-result-message > p {
text-align: start;
line-height: 3rem;
font-size: 2.2rem;
font-weight: 300;
color: #606060;
margin: 0;
}
.recents-edit #edit-mode {
display: block;
}
.recents-edit .recents-filter-container {
display: none;
}
.recents-edit .view-body {
height: calc(100% - 7.6rem);
}
.filter .log-item:not(.missed-call) {
display: none;
}
.filter .groupFiltered {
display: none;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 508 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 752 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 972 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 528 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 780 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 998 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 459 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 660 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1,009 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 853 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 498 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 703 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 939 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 503 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 722 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 943 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 451 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 636 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 891 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 504 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 756 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 970 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 521 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 779 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1,004 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 452 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 657 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1,015 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 860 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 351 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 493 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 441 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 448 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 615 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 558 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 369 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 506 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 467 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 580 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 667 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 632 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 579 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 691 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 595 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 754 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 796 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 204 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 262 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 225 B

View file

@ -0,0 +1,33 @@
.suggestion-bar {
display: flex;
margin-top: -4.5rem;
height: 4.5rem;
font-size: 1.7rem;
position: absolute;
width: 100%;
color: #033B37;
}
.suggestion-count {
width: 5.5rem;
box-sizing: border-box;
border-inline-start: 1px solid rgba(255,255,255,0.2);
padding-inline-end: 2rem;
padding-inline-start: 1rem;
line-height: 4.5rem;
text-align: center;
}
.suggestion-count.more {
background-image: image-set(url("/dialer/style/images/suggestion/actionicon_dialer_more.png") 1x, url("/dialer/style/images/suggestion/actionicon_dialer_more@1.5x.png") 1.5x, url("/dialer/style/images/suggestion/actionicon_dialer_more@2x.png") 2x, url("/dialer/style/images/suggestion/actionicon_dialer_more@2.25x.png") 2.25x);
background-repeat: no-repeat;
background-size: 3rem;
}
html[dir="ltr"] .suggestion-count.more { background-position: right 0 bottom 0.8rem; }
html[dir="rtl"] .suggestion-count.more { background-position: left 0 bottom 0.8rem; }
.suggestion-bar .contact-item:active,
.suggestion-bar .suggestion-count:active {
background-color: #94eee9;
transition: background-color 0.2s ease;
}

View file

@ -0,0 +1,93 @@
/* Structure for toolbar*/
.icon-recents {
background-image: image-set(url("images/recents.png") 1x, url("images/recents@1.5x.png") 1.5x, url("images/recents@2x.png") 2x, url("images/recents@2.25x.png") 2.25x);
}
.icon-contacts {
background-image: image-set(url("images/contacts.png") 1x, url("images/contacts@1.5x.png") 1.5x, url("images/contacts@2x.png") 2x, url("images/contacts@2.25x.png") 2.25x);
}
.icon-keypad {
background-image: image-set(url("images/dialpad.png") 1x, url("images/dialpad@1.5x.png") 1.5x, url("images/dialpad@2x.png") 2x, url("images/dialpad@2.25x.png") 2.25x);
}
/* Making lazy loading look nice */
#contacts-view .bb-tabpanel,
#recents-view.hidden .bb-tabpanel {
background-color: white;
}
#contacts-view .bb-tabpanel:before,
#recents-view.hidden .bb-tabpanel:before {
position: absolute;
left: 0;
right: 0;
height: 5rem;
background-color: var(--header-background);
content: "";
}
#iframe-contacts-container {
overflow: hidden;
}
#iframe-contacts {
position: absolute;
}
#recents-view.hidden .bb-tabpanel section {
display: none;
}
.no-opacity {
opacity: 0 !important;
}
/* For showing/hiding navbar */
#views:before {
transform: translateX(0);
}
#views.hide-toolbar:before {
transform: translateX(100%);
}
#views > li > .icon {
z-index: 2;
}
#views.hide-toolbar > li {
background: none;
pointer-events: none;
}
#views.hide-toolbar > li:before,
#views.hide-toolbar > li > .icon {
transform: translateY(100%);
visibility: hidden;
}
#views.hide-toolbar #iframe-contacts-container {
height: 100%;
}
#views .bb-tabpanel {
pointer-events: all;
}
#contacts-view .bb-tabpanel {
height: calc(100% - 4.5rem);
z-index: 1;
}
/* Original Gaia glyphs stay sharp on high-density devices. */
#option-recents, #option-contacts, #option-keypad { background-image:none; }
#option-recents::before, #option-contacts::before, #option-keypad::before {
font-family:gaia-icons; font-size:30px; line-height:45px;
font-weight:normal; font-style:normal; text-rendering:optimizeLegibility;
}
#option-recents::before { content:"recent-calls"; }
#option-contacts::before { content:"contacts"; }
#option-keypad::before { content:"dialpad"; }