1
0
mirror of git://f0xx.org/android_cast synced 2026-07-29 05:37:52 +03:00
This commit is contained in:
Anton Afanasyeu
2026-05-27 22:53:49 +02:00
parent 43f802de5d
commit 2b7397edd2
16 changed files with 1843 additions and 262 deletions

View File

@@ -169,70 +169,307 @@
z-index: 1;
}
.hub-compass-hit {
.hub-clock-widget {
position: fixed;
left: calc(50% + 252px);
top: calc(50% + 226px);
width: 110px;
height: 110px;
z-index: 2;
border-radius: 50%;
border: 2px solid rgba(219, 229, 241, 0.45);
background:
radial-gradient(circle at 35% 35%, rgba(231, 236, 243, 0.35), rgba(10, 14, 20, 0.22) 68%, rgba(10, 14, 20, 0.1) 100%);
box-shadow:
-6px -8px 8px rgba(160, 215, 255, 0.12),
8px 10px 14px rgba(9, 13, 19, 0.24);
cursor: pointer;
transform: translate(-50%, -50%) scale(1);
transition: transform 0.22s ease, border-width 0.22s ease, box-shadow 0.22s ease;
left: calc(50% + 290px);
top: calc(50% - 300px);
width: min(420px, 42vw);
min-width: 330px;
z-index: 3;
border: 1px solid rgba(255, 255, 255, 0.72);
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.48);
border-radius: 18px;
overflow: hidden;
background: linear-gradient(180deg, rgba(18, 24, 34, 0.92), rgba(13, 18, 28, 0.9));
backdrop-filter: blur(1.5px);
transition: transform 0.2s ease, box-shadow 0.2s ease, filter 0.2s ease;
cursor: move;
user-select: none;
touch-action: none;
padding: 30px;
box-sizing: border-box;
}
.hub-compass-hit::before,
.hub-compass-hit::after {
content: "";
.hub-clock-widget:hover {
transform: scale(1.035);
box-shadow: 0 16px 42px rgba(0, 0, 0, 0.62), 0 0 26px rgba(155, 205, 255, 0.22);
filter: saturate(1.04);
}
.cw-row {
width: 100%;
display: grid;
border-top: 1px solid rgba(255, 255, 255, 0.32);
}
.cw-row:first-child { border-top: 0; }
.cw-row-main { grid-template-columns: 1fr; }
.cw-row-mid { grid-template-columns: repeat(4, 1fr); }
.cw-row-world { grid-template-columns: repeat(3, 1fr); }
.cw-cell {
border-left: 1px solid rgba(255, 255, 255, 0.32);
min-height: 42px;
padding: 6px;
}
.cw-cell:first-child { border-left: 0; }
.cw-main-cell {
min-height: 168px;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
gap: 6px;
padding: 0;
background: linear-gradient(180deg, rgba(30, 40, 28, 0.85), rgba(20, 28, 20, 0.85));
}
.cw-line-time {
width: 100%;
display: flex;
justify-content: center;
}
.cw-line-time .cw-time-main {
font-weight: 800;
}
.cw-time-main {
display: inline-flex;
align-items: flex-end;
justify-content: center;
gap: 2px;
line-height: 1;
font-weight: 700;
width: 100%;
max-width: 100%;
}
.ot-lcd-line {
display: inline-flex;
align-items: flex-end;
gap: 4px;
}
.ot-lcd-bold .ot-glyph-wrap--bold {
transform: scale(1.12, 1.2);
}
#cw-hm-lcd .ot-glyph {
height: 68px;
width: auto;
}
.ot-lcd-sec {
margin-left: 8px;
}
.ot-lcd-sec .ot-glyph-wrap:first-child {
margin-right: 8px;
}
.ot-lcd-sec .ot-glyph {
height: 32px;
width: auto;
}
.ot-lcd-tz .ot-glyph {
height: 30px;
width: auto;
}
.ot-lcd-tz {
margin-left: 14px;
}
.ot-glyph-wrap {
display: inline-block;
line-height: 0;
transform-origin: bottom center;
}
.ot-glyph-wrap--bold {
transform: scale(1.08, 1.14);
}
.ot-glyph {
fill: #d8f6b8;
filter: drop-shadow(0 0 5px rgba(190, 240, 150, 0.38));
}
.ot-glyph .ot-grid rect {
fill: rgba(20, 30, 24, 0.85);
filter: drop-shadow(0 0 1.4px rgba(135, 205, 255, 0.5));
}
.ot-glyph .ot-active {
fill: #d8f6b8;
}
.ot-colon-blink {
animation: cwBlink 1.25s linear infinite;
}
.cw-line-region {
color: #b8c2d4;
font-size: 10px;
letter-spacing: 0.16em;
font-weight: 300;
text-transform: uppercase;
width: 100%;
text-align: center;
}
.cw-line-date {
color: #c5d0e2;
font-size: 10px;
letter-spacing: 0.12em;
font-weight: 400;
text-transform: uppercase;
width: 100%;
text-align: center;
}
.cw-row-mid {
display: none;
}
.cw-world-cell {
min-height: 178px;
display: flex;
flex-direction: column;
align-items: center;
gap: 5px;
padding: 25px 6px;
background: rgba(20, 28, 40, 0.62);
}
.cw-world-label {
color: #a6b0c2;
font-size: 9.5px;
letter-spacing: 0.12em;
margin-top: 0;
margin-bottom: 8px;
}
.cw-dial {
width: 95px;
height: 95px;
border-radius: 50%;
position: relative;
border: 2px solid rgba(239, 243, 252, 0.8);
background: radial-gradient(circle at 35% 30%, rgba(255, 255, 255, 0.36), rgba(255, 255, 255, 0) 36%), #edf2fb;
box-shadow: inset -5px -5px 10px rgba(0, 0, 0, 0.14), inset 6px 7px 9px rgba(255, 255, 255, 0.42);
}
.cw-roman {
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
border-radius: 1px;
background: rgba(231, 236, 243, 0.82);
transition: width 0.22s ease, height 0.22s ease;
width: 15px;
height: 15px;
margin: -7.5px;
transform: rotate(calc(var(--i) * 30deg)) translateY(-34px) rotate(calc(var(--i) * -30deg));
font-family: "Times New Roman", serif;
font-size: 9px;
font-weight: 700;
color: #223147;
text-align: center;
}
.hub-compass-hit::before {
width: 3px;
height: 46px;
.cw-roman-major {
font-size: 11.5px;
opacity: 1;
}
.hub-compass-hit::after {
width: 46px;
height: 3px;
.cw-roman-minor {
font-size: 3.2px;
opacity: 0.25;
}
.hub-compass-hit:hover,
.hub-compass-hit:focus-visible {
transform: translate(-50%, -50%) scale(1.25);
border-width: 2.3px;
box-shadow:
-8px -10px 10px rgba(180, 228, 255, 0.22),
14px 16px 22px rgba(7, 10, 16, 0.34),
22px 26px 34px rgba(6, 8, 14, 0.42);
outline: none;
.cw-resize-handle {
position: absolute;
width: 32px;
height: 32px;
z-index: 6;
display: grid;
color: rgba(220, 236, 255, 0.9);
filter: drop-shadow(0 0 4px rgba(150, 200, 255, 0.35));
pointer-events: auto;
background: transparent;
}
.hub-compass-hit:hover::before,
.hub-compass-hit:hover::after,
.hub-compass-hit:focus-visible::before,
.hub-compass-hit:focus-visible::after {
width: 52px;
height: 3.45px;
.cw-resize-handle svg {
width: 16px;
height: 16px;
fill: currentColor;
pointer-events: none;
}
.hub-compass-hit:hover::before,
.hub-compass-hit:focus-visible::before {
width: 3.45px;
height: 52px;
.cw-resize-sw {
left: 0;
bottom: 0;
cursor: nesw-resize;
place-items: end start;
}
.cw-resize-nw {
left: 0;
top: 0;
cursor: nwse-resize;
place-items: start start;
transform: scaleY(-1);
}
.cw-resize-ne {
right: 0;
top: 0;
cursor: nesw-resize;
place-items: start end;
transform: scale(-1, -1);
}
.cw-resize-se {
right: 0;
bottom: 0;
cursor: nwse-resize;
place-items: end end;
transform: scale(-1, 1);
}
.cw-hand {
position: absolute;
left: 50%;
top: 50%;
transform-origin: 50% 100%;
transform: translate(-50%, -100%) rotate(0deg);
border-radius: 99px;
}
.cw-hour { width: 4px; height: 26%; background: #1f2f46; }
.cw-minute { width: 3px; height: 35%; background: #2e4767; }
.cw-second { width: 1.5px; height: 39%; background: #b63b3b; }
.cw-pin {
position: absolute;
left: 50%;
top: 50%;
width: 7px;
height: 7px;
margin-left: -3.5px;
margin-top: -3.5px;
border-radius: 50%;
background: #101928;
border: 1px solid #f3f6ff;
}
@keyframes cwBlink {
0%, 20% { opacity: 0; }
20.01%, 60% { opacity: 1; }
60.01%, 100% { opacity: 0; }
}
.hub-docs-modal {
@@ -252,12 +489,89 @@
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
width: min(980px, calc(100vw - 40px));
max-height: calc(100vh - 56px);
width: 90vw;
height: 90vh;
max-width: 90vw;
max-height: 90vh;
display: flex;
flex-direction: column;
}
.hub-docs-layout {
display: grid;
grid-template-columns: minmax(220px, 28%) 1fr;
gap: 0;
flex: 1;
min-height: 0;
border-top: 1px solid var(--border);
}
.hub-docs-toc {
margin: 0;
border-radius: 0;
border: 0;
border-right: 1px solid var(--border);
overflow: auto;
padding: 10px;
}
.hub-docs-toc-title {
margin: 0 0 8px;
font-size: 12px;
letter-spacing: 0.08em;
text-transform: uppercase;
}
.hub-docs-toc-group + .hub-docs-toc-group {
margin-top: 10px;
padding-top: 8px;
border-top: 1px solid var(--border);
}
.hub-docs-toc-head,
.hub-docs-toc-leaf {
display: block;
width: 100%;
text-align: left;
border: 0;
background: transparent;
color: var(--text);
cursor: pointer;
padding: 8px 10px;
border-radius: 8px;
font: inherit;
}
.hub-docs-toc-head {
font-weight: 700;
letter-spacing: 0.04em;
}
.hub-docs-toc-leaf {
margin-left: 8px;
font-weight: 600;
font-size: 13px;
}
.hub-docs-toc-head:hover,
.hub-docs-toc-leaf:hover,
.hub-docs-toc-head:focus-visible,
.hub-docs-toc-leaf:focus-visible {
background: var(--row-hover);
outline: none;
}
.hub-docs-panels {
overflow: auto;
padding: 10px 12px 14px;
min-height: 0;
}
.hub-docs-section .detail-tree-body {
font-size: 14px;
line-height: 1.5;
}
.hub-docs-header {
display: flex;
align-items: center;
@@ -321,6 +635,13 @@
}
@media (max-width: 860px) {
.hub-clock-widget {
left: auto;
right: 10px;
top: 10px;
width: min(94vw, 420px);
min-width: 0;
}
.hub-cards {
grid-template-columns: 1fr;
max-width: 420px;