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

Binary file not shown.

View file

@ -0,0 +1,44 @@
/* Generated by grunt-webfont */
/* Based on https://github.com/endtwist/fontcustom/blob/master/lib/fontcustom/templates/fontcustom.css */
@font-face {
font-family: "gaia-icons";
src: url("fonts/gaia-icons.ttf") format("truetype");
font-weight: 500;
font-style: normal;
}
[data-icon]:after,
.ligature-icons {
font-family: "gaia-icons";
content: attr(data-icon);
display: inline-block;
font-weight: 500;
font-style: normal;
text-transform: none;
text-rendering: optimizeLegibility;
font-size: 24px;
-webkit-font-smoothing: antialiased;
position: absolute;
padding: 0 0.4rem;
text-align: center;
}
.menu-item[data-icon]:after {
line-height: 4rem;
width: 4rem;
}
.option-menu[data-icon]:after {
width: 4rem;
/* use flex to align center */
display: flex;
justify-content: center; /* align horizontal */
align-items: center; /* algin vertical */
height: 100%;
top: 0;
bottom: 0;
left: 0;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

View file

@ -0,0 +1,115 @@
ul {
list-style-type: none;
}
ul, li {
margin: 0;
padding: 0;
/* have a default height for setting vertical align */
height: 4rem;
}
.menu-item {
width: calc(100% - 4.4rem);
height: 4rem;
font-size: 20px;
color: black;
display: inline-block;
/* add padding 4rem for left space for icon */
padding: 0.2rem 4.2rem 0.2rem 0.2rem;
}
.menu-item span {
width: 100%;
display: inline-block;
line-height: 4rem;
}
.settings-group .menu-item span {
text-align: right;
}
.settings-items .menu-item {
width: calc(100% - 6rem);
padding-left: 1rem;
padding-right: 5rem;
}
.settings-items .menu-item span[data-value]:after {
content: attr(data-value);
position: absolute;
right: 0;
/**
* The .settings-items is 2/3 window size, and the .settings-detail is 1/3
* window size with no margin right.
* We need to calculate the space of .settings-detail while
* .settings-detail shows up:
* the left position of .settings-items is 2/3 window size + 5rem
* the left position of .settings-detail is 1/3 window size
* the width of menu item 100% = (1/3 windows size + 5rem)
* the space covered by .settings-detail is 100% - 5rem
*/
width: calc(100% / 2 - 5rem);
}
.settings-detail .menu-item {
width: calc(100% - 2rem);
padding-left: 1rem;
padding-right: 1rem;
}
.option-menu .menu-item {
width: calc(100% - 6rem);
margin-left: 4rem;
}
.option-menu .menu-item .selected {
font-weight: bold;
}
/**
* -------------------------------------------
* main focus is on settings list
*/
body[data-active='list'] .settings-group .menu-item {
width: calc(100% - 4rem);
padding: 0 4rem 0 0;
}
body[data-active='list'] .settings-group span {
display: none;
}
/**
* ===========================================
*/
/**
* -------------------------------------------
* main focus is on option menu
*/
body[data-active='option-menu'] .settings-group .menu-item {
width: calc(100% - 4rem);
padding: 0 4rem 0 0;
}
body[data-active='option-menu'] .settings-group span {
display: none;
}
body[data-active='option-menu'] .settings-items ul {
/**
* The .settings-items is 2/3 window size, and the .settings-detail is 1/3
* window size with no margin right.
* We need to calculate the left space of .settings-items when
* .settings-detail shows up:
* the left position of .settings-items is 2/3 window size + 5rem
* the left position of .settings-detail is 1/3 window size
* the size of option menu is 1/3 window size + 5rem
*/
width: calc(100% / 2 + 5rem);
}
/**
* ===========================================
*/

View file

@ -0,0 +1,130 @@
.panel-title {
font-size: 30px;
height: 3rem;
margin: 0;
}
.layer-container {
position: absolute;
top: 3rem;
bottom: 3rem;
overflow: hidden;
transition: width 0.2s ease-in-out;
}
.menu-container {
background-color: white;
height: calc(100% - 6rem);
border: 1px solid black;
}
/* root panel */
.settings-group section {
padding-top: 1rem;
padding-bottom: 1rem;
border-top-right-radius: 1rem;
border-bottom-right-radius: 1rem;
border-left: solid 0.5rem orange;
}
.settings-items section {
padding-top: 1rem;
padding-bottom: 1rem;
border-top-right-radius: 1rem;
border-bottom-right-radius: 1rem;
border-top-left-radius: 1rem;
border-bottom-left-radius: 1rem;
}
.settings-detail section {
padding-top: 1rem;
padding-bottom: 1rem;
border-top-left-radius: 1rem;
border-bottom-left-radius: 1rem;
}
.settings-detail.layer-container {
transition: all 0.2s ease-in-out;
}
.settings-group {
/* 4rem option menu + 1rem spacing + 1rem spacing*/
right: calc(100% * 2 / 3 + 6rem);
}
.settings-items {
/* 5rem = 4rem option menu + 1rem spacing*/
right: 5rem;
width: calc(100% * 2 / 3);
}
/* state of different panels
* note menu-items is also aware of active state
*/
/**
* -------------------------------------------
* main focus is on group list
*/
body[data-active='group'] .settings-group {
width: 14rem;
}
body[data-active='group'] .settings-detail {
display: none;
}
/**
* ===========================================
*/
/**
* -------------------------------------------
* main focus is on settings list
*/
body[data-active='list'] .settings-group {
/* 4rem for icon + 0.5rem for border-left + 0.1rem for border right */
width: 4.6rem;
}
body[data-active='list'] .settings-detail:not([data-type]) {
width: 0;
right: -4rem;
}
body[data-active='list'] .settings-detail[data-type='option-menu'] {
width: 4rem;
right: 0;
}
/**
* ===========================================
*/
/**
* -------------------------------------------
* main focus is on option-menu
*/
body[data-active='option-menu'] .settings-group {
/* 4rem for icon + 0.5rem for border-left + 0.1rem for border right */
width: 4.6rem;
}
/**
* hide detail panel if it doesn't in option-menu mode.
*/
body[data-active='option-menu'] .settings-detail:not([data-type]) {
width: 0;
right: -4rem;
}
body[data-active='option-menu'] .settings-detail[data-type='option-menu'] {
width: calc(100% / 3);
right: 0;
}
/**
* ===========================================
*/

View file

@ -0,0 +1,12 @@
html {
font-size: 10px;
}
html, body {
width: 100%;
height: 100%;
overflow: hidden;
margin: 0;
padding: 0;
background-color:rgba(0, 0, 0, 0.5);
}