MineWatchAI / assets /style.css
Ashkan Taghipour (The University of Western Australia)
Initial commit
f5648f5
/* RehabWatch Custom Styles */
/* Main container styling */
.main .block-container {
padding-top: 2rem;
padding-bottom: 2rem;
max-width: 1200px;
}
/* Header styling */
h1 {
color: #2E7D32;
}
h2, h3 {
color: #1B5E20;
}
/* Sidebar styling */
.css-1d391kg {
background-color: #F5F5F5;
}
/* Sidebar header - Analysis Hub */
[data-testid="stSidebar"] > div:first-child {
padding-top: 1rem;
}
[data-testid="stSidebar"] h2 {
background: linear-gradient(135deg, #2E7D32, #4CAF50);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
font-weight: 700;
}
/* Mobile sidebar toggle enhancement */
[data-testid="collapsedControl"] {
background-color: #2E7D32;
border-radius: 8px;
padding: 8px;
}
[data-testid="collapsedControl"]:hover {
background-color: #1B5E20;
}
[data-testid="collapsedControl"] svg {
color: white;
}
/* Button styling */
.stButton > button {
border-radius: 8px;
font-weight: 600;
transition: all 0.3s ease;
}
.stButton > button:hover {
transform: translateY(-2px);
box-shadow: 0 4px 12px rgba(46, 125, 50, 0.3);
}
/* Primary button */
.stButton > button[kind="primary"] {
background-color: #2E7D32;
border-color: #2E7D32;
}
.stButton > button[kind="primary"]:hover {
background-color: #1B5E20;
border-color: #1B5E20;
}
/* Metric cards */
[data-testid="metric-container"] {
background-color: #FAFAFA;
border: 1px solid #E0E0E0;
border-radius: 8px;
padding: 1rem;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}
[data-testid="metric-container"]:hover {
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}
/* Success/Error messages */
.stSuccess {
background-color: #E8F5E9;
border-left: 4px solid #4CAF50;
}
.stError {
background-color: #FFEBEE;
border-left: 4px solid #F44336;
}
.stWarning {
background-color: #FFF3E0;
border-left: 4px solid #FF9800;
}
.stInfo {
background-color: #E3F2FD;
border-left: 4px solid #2196F3;
}
/* Tab styling */
.stTabs [data-baseweb="tab-list"] {
gap: 8px;
}
.stTabs [data-baseweb="tab"] {
background-color: #F5F5F5;
border-radius: 8px 8px 0 0;
padding: 10px 20px;
}
.stTabs [aria-selected="true"] {
background-color: #2E7D32;
color: white;
}
/* Expander styling */
.streamlit-expanderHeader {
background-color: #F5F5F5;
border-radius: 8px;
}
/* Progress bar */
.stProgress > div > div > div {
background-color: #4CAF50;
}
/* Map container */
iframe {
border-radius: 8px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
/* Download buttons */
.stDownloadButton > button {
background-color: #1976D2;
color: white;
border: none;
}
.stDownloadButton > button:hover {
background-color: #1565C0;
}
/* Date input */
.stDateInput > div {
border-radius: 8px;
}
/* Select box */
.stSelectbox > div > div {
border-radius: 8px;
}
/* Text input */
.stTextInput > div > div {
border-radius: 8px;
}
/* Footer styling */
footer {
visibility: hidden;
}
/* Custom scrollbar */
::-webkit-scrollbar {
width: 8px;
height: 8px;
}
::-webkit-scrollbar-track {
background: #F5F5F5;
}
::-webkit-scrollbar-thumb {
background: #BDBDBD;
border-radius: 4px;
}
::-webkit-scrollbar-thumb:hover {
background: #9E9E9E;
}
/* Responsive adjustments */
@media (max-width: 768px) {
.main .block-container {
padding-left: 0.5rem;
padding-right: 0.5rem;
}
h1 {
font-size: 1.6rem;
}
h2 {
font-size: 1.3rem;
}
h3 {
font-size: 1.1rem;
}
/* Make metrics stack vertically on mobile */
[data-testid="metric-container"] {
padding: 0.5rem;
margin-bottom: 0.5rem;
}
/* Smaller score display on mobile */
.score-display span {
font-size: 48px !important;
}
/* Make charts more compact */
.plotly-graph-div {
height: 280px !important;
}
/* Improve tab navigation on mobile */
.stTabs [data-baseweb="tab"] {
padding: 8px 12px;
font-size: 0.85rem;
}
/* Better button sizing on mobile */
.stButton > button {
padding: 0.6rem 1rem;
font-size: 0.9rem;
}
/* Reduce map height on mobile */
iframe {
max-height: 350px;
}
}
/* Extra small screens */
@media (max-width: 480px) {
.main .block-container {
padding-left: 0.3rem;
padding-right: 0.3rem;
}
h1 {
font-size: 1.4rem;
}
/* Stack columns on very small screens */
[data-testid="column"] {
width: 100% !important;
flex: 100% !important;
}
}
/* Animation for loading */
@keyframes pulse {
0%, 100% {
opacity: 1;
}
50% {
opacity: 0.5;
}
}
.loading {
animation: pulse 1.5s ease-in-out infinite;
}
/* Score display styling */
.score-display {
text-align: center;
padding: 20px;
border-radius: 10px;
margin-bottom: 20px;
}
.score-excellent {
background-color: rgba(27, 94, 32, 0.1);
}
.score-good {
background-color: rgba(76, 175, 80, 0.1);
}
.score-moderate {
background-color: rgba(255, 152, 0, 0.1);
}
.score-low {
background-color: rgba(183, 28, 28, 0.1);
}
/* Chart container */
.plotly-graph-div {
border-radius: 8px;
}
/* Table styling */
.dataframe {
border-radius: 8px;
overflow: hidden;
}
.dataframe th {
background-color: #2E7D32;
color: white;
}
.dataframe tr:nth-child(even) {
background-color: #F5F5F5;
}
/* Tooltip styling */
[data-testid="stTooltipIcon"] {
color: #757575;
}
[data-testid="stTooltipIcon"]:hover {
color: #2E7D32;
}