rupkotha / assets /styles.css
Deb
rupkotha_1st_commit
f655146
Raw
History Blame Contribute Delete
9.91 kB
/* Rupkotha β€” calm "storybook" theme. Professional, low-contrast, presentable.
Soft parchment/lavender background, deep slate-indigo ink, muted terracotta +
dusty-gold accents. Warm and gentle β€” not high-contrast. */
@import url('https://fonts.googleapis.com/css2?family=Baloo+2:wght@500;600;700&family=Noto+Sans+Bengali:wght@500;600;700&family=Nunito:wght@400;500;600;700;800&display=swap');
:root {
--bg-1: #eef0f7; /* soft lavender mist */
--bg-2: #f7f2ea; /* warm cream */
--ink: #333a5c; /* deep slate-indigo (headings) */
--ink-body: #4a5170; /* body text */
--ink-soft: #7b81a0; /* secondary/placeholder */
--panel: #ffffff;
--panel-2: #fbfaf6;
--panel-brd: rgba(51, 58, 92, 0.10);
--accent: #c4865a; /* muted terracotta */
--accent-2: #d6a463; /* dusty gold */
--accent-ink: #5a3a1e;
--story-bg: #fbf6ec; /* parchment */
--story-ink: #43392b;
--radius: 20px;
--radius-sm: 13px;
--shadow: 0 12px 34px rgba(46, 52, 88, 0.10);
--shadow-sm: 0 4px 14px rgba(46, 52, 88, 0.08);
}
/* ── Background: soft, calm gradient (no harsh dark) ──────────────────── */
.gradio-container,
.gradio-container .fillable,
body {
background:
radial-gradient(900px 480px at 85% -12%, rgba(214, 164, 99, 0.10), transparent 60%),
radial-gradient(820px 460px at 5% -6%, rgba(150, 160, 210, 0.12), transparent 58%),
linear-gradient(165deg, var(--bg-1) 0%, var(--bg-2) 70%) !important;
color: var(--ink-body) !important;
font-family: 'Nunito', ui-sans-serif, system-ui, sans-serif;
}
.gradio-container { max-width: 100% !important; margin: 0 !important; padding: 0 28px !important; }
/* ── Hero ────────────────────────────────────────────────────────────── */
#hero { text-align: center; padding: 1.7rem 1rem 0.4rem; }
#hero .hero-moon {
font-size: 2.6rem; line-height: 1;
filter: drop-shadow(0 6px 14px rgba(196, 134, 90, 0.30));
animation: float 6s ease-in-out infinite;
}
@keyframes float { 0%,100%{ transform: translateY(0) } 50%{ transform: translateY(-6px) } }
#hero h1 {
font-family: 'Baloo 2', 'Noto Sans Bengali', sans-serif;
font-size: 2.5rem; font-weight: 700; margin: .3rem 0 .25rem;
color: var(--ink);
letter-spacing: .2px;
}
#hero p { color: var(--ink-soft); font-size: 1.05rem; max-width: 560px; margin: 0 auto; }
/* ── Panels (soft cards) ─────────────────────────────────────────────── */
#studio { gap: 22px !important; margin-top: .8rem; align-items: stretch; }
.panel {
background: var(--panel) !important;
border: 1px solid var(--panel-brd) !important;
border-radius: var(--radius) !important;
box-shadow: var(--shadow);
padding: 18px 20px !important;
}
.panel .block, .panel .form, .panel .gr-group, .panel fieldset {
background: transparent !important; border: none !important; box-shadow: none !important;
}
/* Section headers inside panels. */
.panel-head {
display: flex; align-items: center; gap: .55rem;
font-family: 'Baloo 2', sans-serif; font-weight: 600;
font-size: 1.1rem; color: var(--ink);
margin: .7rem 0 .4rem;
}
.panel-head .step {
display: inline-grid; place-items: center;
width: 1.5rem; height: 1.5rem; border-radius: 50%;
background: linear-gradient(135deg, var(--accent-2), var(--accent));
color: #fff; font-size: .82rem; font-weight: 700;
box-shadow: var(--shadow-sm);
}
/* ── Labels & text ───────────────────────────────────────────────────── */
.gradio-container label,
.gradio-container .gr-text { color: var(--ink-body) !important; }
.gradio-container label > span,
.gradio-container .gr-form > span { font-weight: 600 !important; color: var(--ink) !important; }
/* ── Inputs ──────────────────────────────────────────────────────────── */
.gradio-container input[type="text"],
.gradio-container textarea,
.gradio-container .gr-dropdown,
.gradio-container select {
background: var(--panel-2) !important;
border: 1px solid rgba(51, 58, 92, 0.14) !important;
border-radius: var(--radius-sm) !important;
color: var(--ink) !important;
font-size: 1.04rem !important;
}
.gradio-container input::placeholder,
.gradio-container textarea::placeholder { color: var(--ink-soft) !important; }
.gradio-container input:focus,
.gradio-container textarea:focus {
border-color: var(--accent) !important;
box-shadow: 0 0 0 3px rgba(196, 134, 90, 0.16) !important;
}
/* Upload drop zone. */
.upload-box, .upload-box .center, .upload-box .wrap {
border-radius: var(--radius-sm) !important;
border: 1.5px dashed rgba(196, 134, 90, 0.45) !important;
background: rgba(214, 164, 99, 0.06) !important;
color: var(--ink-body) !important;
}
/* ── Image preview gallery ───────────────────────────────────────────── */
.preview {
border-radius: var(--radius-sm) !important;
border: 1px solid var(--panel-brd) !important;
background: var(--panel-2) !important;
padding: 6px !important; margin-top: .4rem;
}
.preview .thumbnail-item, .preview img, .preview button.thumbnail-item {
border-radius: 10px !important;
box-shadow: var(--shadow-sm);
}
/* ── Buttons ─────────────────────────────────────────────────────────── */
#generate-btn {
font-family: 'Baloo 2', sans-serif !important;
font-size: 1.3rem !important; font-weight: 700 !important;
padding: .85rem 1.5rem !important; margin-top: .9rem !important; width: 100% !important;
background: linear-gradient(135deg, var(--accent-2), var(--accent)) !important;
color: #fff !important; border: none !important; border-radius: 999px !important;
box-shadow: 0 8px 22px rgba(196, 134, 90, 0.32) !important;
transition: transform .15s ease, box-shadow .15s ease !important;
}
#generate-btn:hover { transform: translateY(-2px); box-shadow: 0 12px 28px rgba(196,134,90,.40) !important; }
#generate-btn:active { transform: translateY(0); }
#save-btn {
font-weight: 700 !important; border-radius: 999px !important;
border: 1.5px solid var(--accent) !important; color: var(--accent) !important;
background: transparent !important; margin-top: .5rem !important;
}
#save-btn:hover { background: rgba(196, 134, 90, 0.10) !important; }
/* ── Story panel ─────────────────────────────────────────────────────── */
.story-panel { display: flex; flex-direction: column; }
.story-text textarea {
font-family: 'Baloo 2', 'Noto Sans Bengali', serif !important;
font-size: 1.32rem !important; line-height: 1.85 !important;
background: var(--story-bg) !important;
color: var(--story-ink) !important;
border: 1px solid rgba(196, 134, 90, 0.18) !important;
border-radius: var(--radius-sm) !important;
padding: 1.1rem 1.3rem !important;
min-height: 180px; /* small floor for the empty state; grows to fit content */
height: auto !important;
overflow-y: auto;
}
/* ── Model badge ─────────────────────────────────────────────────────── */
.model-badge p {
display: inline-block; margin: .3rem 0 0 !important;
background: rgba(214, 164, 99, 0.12);
border: 1px solid rgba(196, 134, 90, 0.30);
border-radius: 999px; padding: .35rem 1rem;
font-size: .82rem; color: var(--accent-ink) !important;
}
/* ── Saved stories ───────────────────────────────────────────────────── */
.section-title {
font-family: 'Baloo 2', sans-serif; font-weight: 600; font-size: 1.28rem;
color: var(--ink); text-align: center; margin: 1.8rem 0 .7rem;
}
#history-row { gap: 16px !important; }
.saved-card {
background: var(--panel) !important;
border: 1px solid var(--panel-brd) !important;
border-radius: var(--radius) !important;
box-shadow: var(--shadow-sm); padding: 14px 16px !important;
}
.saved-text, .saved-text p {
font-family: 'Baloo 2', 'Noto Sans Bengali', sans-serif;
font-size: 1rem !important; line-height: 1.62; color: var(--story-ink) !important;
}
.saved-badge { display: inline-block; margin-top: .5rem; font-size: .72rem; color: var(--accent); }
#stack-note {
text-align: center; color: var(--ink-soft);
font-size: .9rem; margin: 1.8rem 0 1rem;
}
#stack-note b { color: var(--accent); }
/* ── Accessibility ───────────────────────────────────────────────────── */
.gradio-container *:focus-visible {
outline: 3px solid var(--accent) !important; outline-offset: 2px;
}
@media (prefers-reduced-motion: reduce) {
#hero .hero-moon { animation: none !important; }
.gradio-container * { animation: none !important; transition: none !important; }
}
/* ── Mobile ──────────────────────────────────────────────────────────── */
@media (max-width: 820px) {
#studio { flex-direction: column !important; }
#hero h1 { font-size: 2rem; }
.story-text textarea { font-size: 1.22rem !important; min-height: 240px; }
}