Files
kryz-go/app/globals.css
T

188 lines
3.7 KiB
CSS

:root {
--bg-1: #f8f2e6;
--bg-2: #dce9f4;
--panel: #f9f8f3;
--panel-line: #d8d1c4;
--ink: #1f2633;
--muted: #586173;
--primary: #0a5f94;
--primary-press: #084d79;
--disabled: #9fa9b8;
--controls-height: 10svh;
--controls-safe: env(safe-area-inset-bottom);
--controls-total-height: calc(var(--controls-height) + var(--controls-safe));
}
* {
box-sizing: border-box;
}
html,
body {
margin: 0;
height: 100%;
}
body {
color: var(--ink);
font-family: 'Trebuchet MS', 'Avenir Next', 'Segoe UI', sans-serif;
background:
radial-gradient(circle at 16% 18%, rgba(255, 255, 255, 0.85) 0%, rgba(255, 255, 255, 0) 44%),
linear-gradient(140deg, var(--bg-1), var(--bg-2));
overflow: hidden;
}
.home-layout {
position: relative;
height: 100svh;
width: 100%;
padding: 1rem;
padding-bottom: calc(var(--controls-total-height) + 1rem);
overflow: hidden;
}
.website-zone {
height: 100%;
min-height: 0;
}
.website-panel {
height: 100%;
border-radius: 1rem;
border: 1px solid var(--panel-line);
background: var(--panel);
box-shadow:
0 1.2rem 2.2rem rgba(18, 50, 73, 0.12),
inset 0 0.1rem 0.2rem rgba(255, 255, 255, 0.7);
display: grid;
grid-template-rows: auto 1fr;
overflow: hidden;
}
.website-panel__header {
border-bottom: 1px solid var(--panel-line);
padding: 0.75rem 1rem;
background: linear-gradient(180deg, rgba(255, 255, 255, 0.7), rgba(247, 242, 233, 0.9));
}
.website-panel__label {
margin: 0;
text-transform: uppercase;
letter-spacing: 0.12em;
font-size: 0.68rem;
font-weight: 700;
color: var(--muted);
}
.website-panel__url {
margin: 0.25rem 0 0;
font-size: clamp(0.82rem, 2.2vw, 0.96rem);
color: var(--ink);
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.website-panel__content {
min-height: 0;
}
.website-panel__frame {
width: 100%;
height: 100%;
border: none;
background: #ffffff;
}
.radio-controls-wrap {
position: fixed;
left: 0;
right: 0;
bottom: 0;
height: var(--controls-total-height);
padding: 0.5rem 1rem;
padding-bottom: calc(0.5rem + var(--controls-safe));
border-top: 1px solid rgba(28, 41, 62, 0.16);
background: linear-gradient(180deg, rgba(255, 250, 242, 0.95), rgba(239, 235, 225, 0.98));
backdrop-filter: blur(7px);
}
.radio-controls {
height: 100%;
max-width: 48rem;
margin: 0 auto;
display: grid;
gap: 0.55rem;
grid-template-columns: 1fr auto;
align-items: center;
}
.radio-controls__status {
margin: 0;
color: var(--muted);
font-size: clamp(0.8rem, 2.2vw, 1rem);
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.radio-controls__buttons {
display: grid;
grid-auto-flow: column;
gap: 0.6rem;
}
.radio-controls button {
appearance: none;
border: none;
border-radius: 0.7rem;
background: var(--primary);
color: #ffffff;
font-size: 1rem;
font-weight: 700;
padding: 0.78rem 1rem;
cursor: pointer;
transition: transform 120ms ease, background 120ms ease;
}
.radio-controls button.playpause {
width: clamp(2.9rem, 9vw, 4rem);
aspect-ratio: 1 / 1;
font-size: clamp(1.15rem, 4vw, 1.7rem);
padding: 0;
}
.radio-controls button:hover:not(:disabled) {
background: var(--primary-press);
}
.radio-controls button:active:not(:disabled) {
transform: translateY(1px);
}
.radio-controls button:disabled {
cursor: not-allowed;
background: var(--disabled);
}
@media (max-width: 560px) {
.home-layout {
padding: 0.65rem;
padding-bottom: calc(var(--controls-total-height) + 0.65rem);
}
.radio-controls-wrap {
padding-left: 0.65rem;
padding-right: 0.65rem;
}
.radio-controls {
grid-template-columns: minmax(0, 1fr) auto;
gap: 0.5rem;
}
.radio-controls__buttons {
justify-content: end;
}
}