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,98 @@
.bluetooth-device {
background-repeat: no-repeat;
background-position: right 3rem top 50%;
-moz-padding-end: 2rem;
}
.bluetooth-device:before {
content: "";
width: 3rem;
height: 3rem;
background: url(images/bluetooth_sprite.png) no-repeat 3rem 3rem / 39rem;
position: absolute;
offset-inline-end: 0;
top: 50%;
margin-top: -1.5rem;
}
.bluetooth-device.icon-hidden:before {
display: none;
}
.bluetooth-type-audio-card:before {
background-position: 0 0;
}
.bluetooth-type-audio-input-microphone:before {
background-position: -3rem 0;
}
.bluetooth-type-battery:before {
background-position: -6rem 0;
}
.bluetooth-type-camera-photo:before {
background-position: -9rem 0;
}
.bluetooth-type-camera-video:before {
background-position: -12rem 0;
}
.bluetooth-type-camera-web:before {
background-position: -15rem 0;
}
.bluetooth-type-computer:before {
background-position: -18rem 0;
}
.bluetooth-type-drive-harddisk:before {
background-position: -21rem 0;
}
.bluetooth-type-drive-optical:before {
background-position: -24rem 0;
}
.bluetooth-type-drive-removable-media:before {
background-position: -27rem 0;
}
.bluetooth-type-input-gaming:before {
background-position: -30rem 0;
}
.bluetooth-type-input-keyboard:before {
background-position: -33rem 0;
}
.bluetooth-type-input-mouse:before {
background-position: -36rem 0;
}
.bluetooth-type-input-tablet:before {
background-position: 0 -3rem;
}
.bluetooth-type-media-flash:before {
background-position: -3rem -3rem;
}
.bluetooth-type-media-floppy:before {
background-position: -6rem -3rem;
}
.bluetooth-type-media-optical:before {
background-position: -9rem -3rem;
}
.bluetooth-type-media-tape:before {
background-position: -12rem -3rem;
}
.bluetooth-type-modem:before {
background-position: -15rem -3rem;
}
.bluetooth-type-multimedia-player:before {
background-position: -18rem -3rem;
}
.bluetooth-type-network-wired:before {
background-position: -21rem -3rem;
}
.bluetooth-type-network-wireless:before {
background-position: -24rem -3rem;
}
.bluetooth-type-pda:before,
.bluetooth-type-phone:before {
background-position: -27rem -3rem;
}
.bluetooth-type-printer:before {
background-position: -30rem -3rem;
}
.bluetooth-type-scanner:before {
background-position: -33rem -3rem;
}
.bluetooth-type-video-display:before {
background-position: -36rem -3rem;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 622 B

View file

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Generator: Adobe Illustrator 19.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="-223 225 64 64" enable-background="new -223 225 64 64" xml:space="preserve">
<g>
<g>
<path fill="#02C5ED" d="M-188,256.9l6.4-6.4c1.4-1.4,1.4-3.7,0-5.1L-193,234l-0.2,17.8l-7.6-7.5c-0.1-0.1-0.1-0.1-0.2-0.2h-0.4
c-0.4,1.2-0.8,2.4-1.1,3.7l9.2,9.2l-9.2,9.1c0.3,1.3,0.7,2.5,1.1,3.7h0.4c0.1-0.1,0.1-0.1,0.2-0.2l7.6-7.5V280l11.6-11.5
c1.4-1.4,1.4-3.7,0-5.1L-188,256.9z M-189.4,242.9l4.2,4.2l0,0c0.5,0.5,0.5,1.2,0,1.7l0,0l-4.3,4.3v-10.2H-189.4z M-185,266.7
l-4.3,4.3v-10.2l4.2,4.2l0,0C-184.6,265.5-184.6,266.2-185,266.7L-185,266.7z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 945 B

View file

@ -0,0 +1,169 @@
ul {
margin: 0;
padding: 0;
overflow: hidden;
list-style: none;
}
ul li {
box-sizing: border-box;
position: relative;
margin: 0 1.5rem;
border-top: 0.1rem solid #e6e6e3;
color: #000;
}
ul li:first-child {
border-top: none;
}
ul+ul li:first-child {
border-top: 0.1rem solid #e6e6e3;
}
ul li.sound-setting {
min-height: 7.9rem;
}
ul li label:not([for]) {
background: none;
}
ul li > a,
ul li > span,
ul li > small,
ul li > label > span,
ul li > label > small {
text-decoration: none;
outline: 0;
color: #000;
box-sizing: border-box;
font-size: 1.9rem;
padding: 0 3rem;
margin: 0 -1.5rem;
}
ul li,
ul li > a,
ul li > label {
min-height: 6rem;
display: flex;
flex-direction: column;
justify-content: center;
}
ul li > a,
ul li > label {
min-height: 6rem;
padding-top: 0.5rem;
padding-bottom: 0.5rem;
}
ul li[hidden] {
display: none;
}
ul li > a > span {
pointer-events: none;
}
ul li.active a,
ul li.active span,
ul li:not([aria-disabled="true"]) > small + a:active,
ul li:not([aria-disabled="true"]) > a:active,
ul li:not([aria-disabled="true"]) > small + a:focus,
ul li:not([aria-disabled="true"]) > a:focus {
background-color: #b2f2ff;
color: #222;
}
ul li[aria-disabled="true"] > a {
color: #797e80;
opacity: 0.6;
pointer-events: none;
}
ul > li > progress {
display: inline-block;
margin: 0;
padding: 0;
}
ul > li > progress + span {
display: inline-block;
vertical-align: middle;
margin: 0;
padding: 0;
padding-inline-start: 1rem;
color: #505b5b;
font-size: 1.4rem;
line-height: 6rem;
}
ul > li > progress.overlapping-icon {
position: absolute;
right: 3rem;
top: 50%;
margin-top: -1.5rem;
}
ul > li > progress.hidden {
display: none;
}
ul li > a span:nth-of-type(2):not(.button) {
position: absolute;
offset-inline-end: 1.5rem;
color: #505859;
line-height: 6rem;
height: 6rem;
top: 0;
}
ul li > *,
ul li > label > *,
ul li > a > * {
display: block;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
ul li > small,
ul li > label > small,
ul li > a > small {
display: block;
font-size: 1.4rem;
color: #505859;
pointer-events: none;
}
small.multiline > span {
display: block;
}
ul li > label {
font-size: 1.9rem;
line-height: 1.9rem;
font-weight: 400;
margin: 0;
}
ul li > label ~ input {
margin-bottom: 1.5rem;
}
ul li button,
ul li a.bb-button {
display: inline-block;
margin: 1rem 0;
white-space: normal;
}
ul li label {
text-transform: none;
}
ul li > label:not([for]) {
margin-inline-start: -1.5rem;
margin-inline-end: -1.5rem;
padding-inline-start: 1.5rem;
padding-inline-end: 1.5rem;
width: 100%;
height: calc(100% - 1rem);
min-height: 5rem;
overflow: visible;
display: flex;
}
ul li > label:not([for]) > span {
line-height: normal;
height: auto;
}
ul li p {
font-size: 1.9rem;
line-height: 1.9rem;
font-weight: 400;
margin: 0;
padding: 1.5rem 1.5rem 1rem;
}
ul li p + label:not([for]) {
top: 2.5rem;
height: calc(100% - 2.5rem);
}

View file

@ -0,0 +1,21 @@
html, body {
margin: 0;
padding: 0;
font-size: 10px;
background-color: #26272c;
}
body {
width: 100%;
height: 100%;
overflow: hidden;
font-family: sans-serif;
color: #fff;
}
* {
-moz-user-select: none;
}
input[type="text"],
textarea,
[contenteditable="true"] {
-moz-user-select: text;
}

View file

@ -0,0 +1,61 @@
html, body {
margin: 0;
padding: 0;
width: 100%;
height: 100%;
font-size: 10px;
overflow: hidden;
}
* {
-moz-user-select: none;
}
input[type="text"],
textarea,
[contenteditable="true"] {
-moz-user-select: text;
}
#pair-view {
padding: 0;
}
#pair-view h2 {
font-size: 1.6rem;
font-weight: 400;
border: none;
margin: 2.2rem 0 1.4rem;
line-height: 1.4rem;
padding: 0 1.5rem;
}
#pair-view > section {
height: 100%;
padding: 0 1.5rem;
}
#label-name {
border-top: 0.1rem solid #696969;
font-size: 2.5rem;
line-height: 5rem;
padding: 0 1.5rem;
word-break: break-all;
}
#pair-description {
margin: 0;
padding: 1rem 1.5rem 0;
border-top-color: #696969;
font-size: 2rem;
line-height: 2.7rem;
font-weight: 300;
}
#passkey {
position: absolute;
bottom: 11rem;
offset-inline-start: 1.5rem;
width: calc(100% - 3rem);
font-size: 3rem;
font-weight: 400;
text-align: center;
}
@media screen and (max-height: 400px) {
#pair-description {
display: none;
}
}

View file

@ -0,0 +1,92 @@
html, body {
margin: 0;
padding: 0;
width: 100%;
height: 100%;
font-size: 10px;
overflow: hidden;
}
section[role="region"] {
position: absolute;
top: 0;
offset-inline-start: 0;
width: 100%;
height: 100%;
border: 0;
background-color: #f4f4f4;
overflow: hidden;
}
section[role="region"] > header {
position: absolute;
}
section[role="region"] > div {
position: absolute;
top: 5rem;
right: 0;
bottom: 0;
left: 0;
width: 100%;
height: calc(100% - 5rem);
overflow-y: scroll;
will-change: scroll-position;
}
.explanation {
padding: 0.5rem 3rem;
font-style: italic;
font-size: 1.4rem;
color: #505859;
}
.description {
font-size: 1.7rem;
line-height: 2.3rem;
white-space: normal;
-moz-hyphens: auto;
}
.description p,
.description a,
.description label {
font-size: 1.7rem;
line-height: 2.3rem;
white-space: normal;
}
.description label {
padding: 0;
}
.description label span {
height: auto;
min-height: 6rem;
padding-top: 1.2rem;
padding-bottom: 1.2rem;
font-size: 1.7rem;
line-height: 2.3rem;
white-space: normal;
}
.description small {
font-size: 1.7rem;
color: #505859;
}
.hint label span {
top: 2.9rem !important;
}
.hint span {
line-height: 6rem;
}
.hint .explanation {
font-style: normal;
position: relative;
margin-top: -2rem;
padding: 0.5rem 4rem 1.3rem;
padding-inline-start: 1.5rem;
white-space: normal;
}
.hint > gaia-switch ~ .explanation,
.hint > label:not([for]) ~ .explanation {
padding-inline-end: 8rem;
}
.hint .explanation[hidden] {
display: none;
}
#update-device-name > section input {
margin: 1rem 0;
}

View file

@ -0,0 +1,24 @@
html, body {
margin: 0;
padding: 0;
font-size: 10px;
background-color: #26272c;
}
body {
width: 100%;
height: 100%;
overflow: hidden;
font-family: sans-serif;
color: #fff;
}
* {
-moz-user-select: none;
}
input[type="text"],
textarea,
[contenteditable="true"] {
-moz-user-select: text;
}
#icon {
width: 6.4rem;
}