kisan-sathi / assets /custom.css
sxandie's picture
mock run working
fa6ab79
Raw
History Blame Contribute Delete
5.34 kB
/* Kisan-Sathi Premium Mobile UI Design */
@import url('https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700&family=Noto+Sans+Devanagari:wght@400;500;700&display=swap');
:root {
--bg-gradient: linear-gradient(135deg, #0b1511 0%, #060a08 100%);
--card-bg: rgba(18, 30, 25, 0.7);
--card-border: rgba(255, 255, 255, 0.08);
--accent-primary: #10b981; /* Emerald green */
--accent-hover: #059669;
--accent-secondary: #f59e0b; /* Amber for calendars/warnings */
--text-primary: #f3f4f6;
--text-muted: #9ca3af;
--danger-red: #ef4444;
}
body, .gradio-container {
background: var(--bg-gradient) !important;
font-family: 'Outfit', 'Noto Sans Devanagari', -apple-system, sans-serif !important;
color: var(--text-primary) !important;
}
/* Glassmorphism Cards */
.gradio-container .gr-box,
.gradio-container .gr-panel,
.gradio-container .gr-card {
background: var(--card-bg) !important;
border: 1px solid var(--card-border) !important;
backdrop-filter: blur(12px) !important;
border-radius: 16px !important;
box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.37) !important;
}
/* Typography settings */
h1 {
font-weight: 700 !important;
letter-spacing: -0.02em !important;
background: linear-gradient(to right, #10b981, #34d399, #f59e0b) !important;
-webkit-background-clip: text !important;
-webkit-text-fill-color: transparent !important;
font-size: 2.2rem !important;
margin-bottom: 0.5rem !important;
text-align: center !important;
}
p, span, label {
color: var(--text-primary) !important;
}
/* Buttons Styling */
.gradio-container button.primary {
background: linear-gradient(135deg, #10b981 0%, #059669 100%) !important;
border: none !important;
color: white !important;
font-weight: 600 !important;
font-size: 1.1rem !important;
border-radius: 12px !important;
padding: 14px 24px !important;
min-height: 54px !important; /* Touch target */
cursor: pointer !important;
transition: all 0.3s ease !important;
box-shadow: 0 4px 15px rgba(16, 185, 129, 0.3) !important;
}
.gradio-container button.primary:hover {
transform: translateY(-2px) !important;
box-shadow: 0 6px 20px rgba(16, 185, 129, 0.4) !important;
}
.gradio-container button.secondary {
background: rgba(255, 255, 255, 0.08) !important;
border: 1px solid var(--card-border) !important;
color: var(--text-primary) !important;
font-weight: 500 !important;
border-radius: 12px !important;
padding: 12px 20px !important;
min-height: 50px !important;
transition: all 0.3s ease !important;
}
.gradio-container button.secondary:hover {
background: rgba(255, 255, 255, 0.15) !important;
border-color: rgba(255, 255, 255, 0.2) !important;
}
/* Chat interface customization */
.chatbot-wrap {
border-radius: 16px !important;
overflow: hidden !important;
}
.message.user {
background: rgba(16, 185, 129, 0.15) !important;
border: 1px solid rgba(16, 185, 129, 0.3) !important;
border-radius: 18px 18px 2px 18px !important;
color: var(--text-primary) !important;
}
.message.bot {
background: rgba(255, 255, 255, 0.05) !important;
border: 1px solid var(--card-border) !important;
border-radius: 18px 18px 18px 2px !important;
color: var(--text-primary) !important;
}
/* Large Input Targets */
.gradio-container input,
.gradio-container textarea,
.gradio-container select {
background: rgba(0, 0, 0, 0.2) !important;
border: 1px solid var(--card-border) !important;
border-radius: 10px !important;
color: var(--text-primary) !important;
padding: 12px !important;
font-size: 1.05rem !important;
}
.gradio-container input:focus,
.gradio-container textarea:focus,
.gradio-container select:focus {
border-color: var(--accent-primary) !important;
box-shadow: 0 0 0 2px rgba(16, 185, 129, 0.2) !important;
}
/* Tabs layout styling */
.tabs {
border-bottom: 1px solid var(--card-border) !important;
margin-bottom: 20px !important;
}
.tab-nav button {
font-size: 1.1rem !important;
font-weight: 500 !important;
padding: 12px 20px !important;
color: var(--text-muted) !important;
border: none !important;
background: none !important;
border-bottom: 3px solid transparent !important;
transition: all 0.3s ease !important;
}
.tab-nav button.selected {
color: var(--accent-primary) !important;
border-bottom-color: var(--accent-primary) !important;
font-weight: 600 !important;
}
/* Micro-animations */
@keyframes fadeIn {
from { opacity: 0; transform: translateY(10px); }
to { opacity: 1; transform: translateY(0); }
}
.welcome-box {
animation: fadeIn 0.6s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}
/* Custom Table/DataFrame styling */
.gradio-container table {
background: transparent !important;
}
.gradio-container th {
background: rgba(16, 185, 129, 0.1) !important;
color: var(--accent-primary) !important;
font-weight: 600 !important;
}
.gradio-container td {
border-bottom: 1px solid var(--card-border) !important;
}
/* Mobile responsive constraints */
@media (max-width: 600px) {
h1 {
font-size: 1.7rem !important;
}
.gradio-container button.primary {
width: 100% !important;
}
}