client / static /css /mobile.css
P01yH3dr0n's picture
launch
774fe36
Raw
History Blame Contribute Delete
9.89 kB
/* ===== Mobile Responsive (< 768px) ===== */
/* ── Global ── */
@media (max-width: 768px) {
html { font-size: 18px; }
/* Header */
.page-header {
padding: 8px 12px;
min-height: 44px;
gap: 6px;
}
.page-header h2 {
font-size: 0.95rem;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
min-width: 0;
flex-shrink: 1;
}
.header-right {
gap: 6px;
flex-shrink: 0;
}
.anlas-display {
font-size: 0.72rem;
padding: 3px 6px;
}
.header-logout-btn {
font-size: 0.85rem;
padding: 2px 4px;
}
.queue-status {
display: none;
}
/* Sidebar */
.sidebar {
width: 260px;
}
.sidebar-overlay.active {
display: block;
}
/* ── Generate Page ── */
.gen-layout {
flex-direction: column;
}
.gen-params {
width: 100% !important;
max-width: none !important;
min-width: 0 !important;
max-height: none;
border-right: none;
flex: 0 0 auto;
max-height: 55%;
overflow: hidden;
}
/* Make params scrollable with limited initial height,
expandable via a toggle */
.gen-params-scroll {
padding: 12px;
overflow-y: auto;
}
.gen-resizer {
display: none !important;
}
.gen-result {
min-height: 200px;
flex: 1 1 0%;
}
.gen-result-image {
padding: 8px;
}
.gen-result-info {
padding: 8px 12px;
max-height: 120px;
}
/* Seed row */
.seed-row {
flex-wrap: nowrap;
}
.seed-row .form-input {
min-width: 0;
}
/* Collapsible sections */
.collapsible-content.open {
max-height: 8000px;
}
/* Generate button */
.btn-generate {
padding: 14px;
font-size: 1.05rem;
position: sticky;
bottom: 0;
z-index: 5;
}
/* ── Director Tools Page ── */
.dt-layout {
flex-direction: column;
}
.dt-left {
border-right: none !important;
flex: 0 0 auto;
max-height: 55%;
overflow: hidden;
}
.dt-left .dt-panel-body {
overflow-y: auto;
}
.dt-right {
flex: 1 1 0%;
min-height: 200px;
}
.dt-controls {
max-height: none;
overflow-y: visible;
}
.dt-req-type-row {
flex-wrap: wrap;
}
.dt-btn-row {
flex-wrap: wrap;
}
.dt-btn-row .btn-mask {
min-width: 0;
font-size: 0.72rem;
padding: 5px 4px;
}
.dt-send-row {
padding: 6px 10px;
}
.dt-send-row .btn-mask {
font-size: 0.72rem;
padding: 5px 4px;
}
.dt-generate-bar {
padding: 8px 12px;
}
.dt-output-img-large {
max-height: 35vh;
}
/* ── PNG Info Page ── */
.pi-layout {
flex-direction: column;
}
.pi-left {
max-width: none !important;
border-right: none !important;
flex: 0 0 auto;
max-height: 55%;
overflow: hidden;
}
.pi-right {
flex: 1 1 0%;
min-height: 200px;
}
.pi-preview-img {
max-height: 30vh;
}
.pi-raw-text {
max-height: 120px;
}
/* ── Tagger Page ── */
.tagger-layout {
flex-direction: column;
}
.tagger-left {
max-width: none !important;
border-right: none !important;
flex: 0 0 auto;
max-height: 55%;
overflow: hidden;
}
.tagger-left .tagger-panel-body {
overflow-y: auto;
}
.tagger-right {
flex: 1 1 0%;
min-height: 200px;
}
.tagger-preview-img {
max-height: 25vh;
}
.tagger-param-row {
flex-wrap: wrap;
gap: 4px;
}
/* ── History Page ── */
.history-layout {
flex-direction: column;
}
.history-left {
flex: 1;
min-height: 0;
}
.history-right {
width: 100% !important;
max-width: none !important;
min-width: 0 !important;
border-left: none !important;
border-top: 1px solid var(--border);
flex-shrink: 0;
}
#history-grid {
grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
gap: 3px;
padding: 4px;
}
.history-detail-img-wrap {
max-height: 25vh;
}
.history-detail-img-wrap img {
max-height: 25vh;
}
.history-action-bar {
padding: 6px 8px;
}
.history-btn-row {
gap: 3px;
}
.history-btn-row .btn-mask {
font-size: 0.68rem;
padding: 4px 3px;
}
.history-search-bar {
padding: 6px 8px;
}
/* ── Cloud Page ── */
.cloud-layout {
flex-direction: column;
}
.cloud-sidebar {
width: 100% !important;
min-width: 0 !important;
max-height: 70px;
border-right: none !important;
border-bottom: 1px solid var(--border);
flex-shrink: 0;
}
.cloud-sidebar-body {
display: flex;
overflow-x: auto;
overflow-y: hidden;
gap: 0;
}
.cloud-date-item {
white-space: nowrap;
border-left: none;
border-bottom: 3px solid transparent;
padding: 6px 10px;
font-size: 0.75rem;
}
.cloud-date-item.active {
border-left-color: transparent;
border-bottom-color: var(--accent);
}
.cloud-main {
flex: 1;
min-height: 0;
}
#cloud-grid {
grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
gap: 3px;
padding: 4px;
}
.cloud-detail-panel {
width: 100% !important;
max-width: none !important;
min-width: 0 !important;
border-left: none !important;
border-top: 1px solid var(--border);
flex-shrink: 0;
}
/* ── Settings Page ── */
.settings-scroll {
padding: 12px;
}
.settings-section {
padding: 12px 14px;
}
.settings-row {
flex-wrap: wrap;
gap: 6px;
}
.settings-row label {
flex: 1;
min-width: 120px;
}
/* ── Tag Autocomplete ── */
.tac-popup {
max-width: calc(100vw - 16px);
min-width: 220px;
left: 8px !important;
max-height: 200px;
}
.tac-item {
padding: 6px 8px;
font-size: 0.78rem;
}
.tac-item-name {
max-width: 140px;
}
.tac-item-zh {
font-size: 0.68rem;
}
/* ── Upload Dropzone ── */
.upload-dropzone {
padding: 12px;
}
.upload-dropzone-text {
font-size: 0.8rem;
}
.upload-icon {
font-size: 1.2rem;
}
/* ── Vibe Items ── */
.vibe-ref-item, .vibe-file-item {
flex-direction: column;
align-items: stretch;
}
.vibe-ref-thumb-wrap, .vibe-file-thumb-wrap {
width: 100%;
height: auto;
max-height: 80px;
}
.vibe-ref-thumb, .vibe-file-thumb {
width: 100%;
height: auto;
max-height: 80px;
object-fit: contain;
}
/* ── Character Grid ── */
.char-grid {
max-width: 130px;
}
/* ── Extra Input ── */
.extra-preview-img {
max-height: 250px;
}
.extra-btn-row {
flex-wrap: wrap;
}
.extra-btn-row .btn-mask {
font-size: 0.75rem;
min-width: 0;
}
/* ── Mode Switch ── */
.mode-label {
padding: 7px 8px;
font-size: 0.8rem;
}
/* ── Slider ── */
.slider-value {
min-width: 36px;
font-size: 0.78rem;
padding: 3px 4px;
}
/* ── Misc ── */
[data-tooltip]::after {
display: none;
}
.form-divider {
margin: 12px 0;
}
}
/* ===== Extra small screens (< 400px) ===== */
@media (max-width: 400px) {
html { font-size: 12px; }
.page-header h2 {
font-size: 0.85rem;
}
.anlas-display {
display: none;
}
.gen-params-scroll {
padding: 10px 8px;
max-height: 50vh;
}
#history-grid, #cloud-grid {
grid-template-columns: repeat(auto-fill, minmax(80px, 1fr));
}
.settings-section {
padding: 10px;
}
.tac-popup {
max-height: 160px;
}
}
/* ===== Touch improvements ===== */
@media (hover: none) and (pointer: coarse) {
/* Larger touch targets */
.nav-item {
padding: 12px 14px;
}
.btn-icon {
width: 40px;
height: 40px;
}
.tac-item {
padding: 8px 10px;
min-height: 36px;
}
/* Show remove buttons always on touch */
.vibe-ref-remove,
.vibe-file-download {
opacity: 1;
}
.history-card {
-webkit-tap-highlight-color: transparent;
}
/* Prevent zoom on input focus */
input[type="text"],
input[type="number"],
input[type="search"],
textarea,
select {
font-size: 16px !important;
}
}
/* ===== Mobile Toast ===== */
.mobile-toast {
display: none;
position: fixed;
bottom: 20px;
left: 50%;
transform: translateX(-50%);
background: var(--bg-card);
border: 1px solid var(--border);
border-radius: var(--radius);
padding: 8px 16px;
font-size: 0.8rem;
color: var(--text-secondary);
z-index: 10001;
box-shadow: 0 4px 20px var(--shadow);
align-items: center;
gap: 6px;
white-space: nowrap;
max-width: calc(100vw - 32px);
overflow: hidden;
text-overflow: ellipsis;
}
.mobile-toast.show {
display: flex;
}