206 lines
4.3 KiB
CSS
206 lines
4.3 KiB
CSS
@import url("https://fonts.googleapis.com/css2?family=Montserrat:wght@400;700;900&display=swap");
|
|
|
|
/* ================= GLOBAL ================= */
|
|
|
|
html,
|
|
body,
|
|
[class*="css"],
|
|
.stApp {
|
|
background-color: #ffffff !important;
|
|
font-family: "Montserrat", sans-serif !important;
|
|
color: #262730 !important;
|
|
}
|
|
|
|
/* Hilangkan header Streamlit */
|
|
header[data-testid="stHeader"] {
|
|
background-color: rgba(255, 255, 255, 0) !important;
|
|
}
|
|
[data-testid="stDecoration"] {
|
|
display: none !important;
|
|
}
|
|
|
|
/* Hilangkan link default app */
|
|
[data-testid="stSidebarNav"] ul li:first-child {
|
|
display: none !important;
|
|
}
|
|
|
|
/* ================= SIDEBAR ================= */
|
|
|
|
[data-testid="stSidebar"] {
|
|
background: #3498db !important;
|
|
padding: 30px 22px;
|
|
}
|
|
|
|
/* reset list */
|
|
[data-testid="stSidebarNav"] ul {
|
|
padding: 0 !important;
|
|
}
|
|
|
|
[data-testid="stSidebarNav"] li {
|
|
list-style: none;
|
|
margin-bottom: 14px;
|
|
}
|
|
|
|
/* ================= BUTTON ================= */
|
|
|
|
[data-testid="stSidebarNav"] a {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
|
|
height: 58px;
|
|
border-radius: 20px;
|
|
border: 2px solid rgba(0, 0, 0, 0.5);
|
|
|
|
background: transparent;
|
|
|
|
font-weight: 900;
|
|
font-size: 25px;
|
|
letter-spacing: 0.3px;
|
|
text-transform: uppercase;
|
|
|
|
text-decoration: none !important;
|
|
|
|
transition: all 0.25s ease;
|
|
}
|
|
|
|
/* paksa teks putih */
|
|
[data-testid="stSidebarNav"] a span {
|
|
color: #ffffff !important;
|
|
}
|
|
|
|
/* ================= HOVER ================= */
|
|
|
|
[data-testid="stSidebarNav"] a:hover {
|
|
background: rgba(255, 255, 255, 0.95) !important;
|
|
}
|
|
|
|
[data-testid="stSidebarNav"] a:hover span {
|
|
color: #3498db !important;
|
|
}
|
|
|
|
/* ================= ACTIVE ================= */
|
|
|
|
[data-testid="stSidebarNav"] a[aria-current="page"] {
|
|
background: rgba(255, 255, 255, 0.92) !important;
|
|
box-shadow: 0 3px 8px rgba(0, 0, 0, 0.15);
|
|
}
|
|
|
|
[data-testid="stSidebarNav"] a[aria-current="page"] span {
|
|
color: #3498db !important;
|
|
}
|
|
|
|
/* ================= HEADER ================= */
|
|
|
|
.blue-header {
|
|
background-color: #3498db;
|
|
padding: 18px 30px;
|
|
border-radius: 15px;
|
|
color: white !important;
|
|
font-weight: 900;
|
|
font-size: 28px;
|
|
text-align: center;
|
|
margin-bottom: 25px;
|
|
box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.1);
|
|
}
|
|
|
|
/* ================= METRIC ================= */
|
|
|
|
.metric-card {
|
|
background-color: #ffffff;
|
|
padding: 20px;
|
|
border-radius: 15px;
|
|
border: 1px solid #e0e0e0;
|
|
box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.08);
|
|
text-align: center;
|
|
}
|
|
|
|
.metric-title {
|
|
font-size: 16px;
|
|
color: #7f8c8d;
|
|
font-weight: 700;
|
|
}
|
|
|
|
.metric-value {
|
|
font-size: 32px;
|
|
font-weight: 900;
|
|
color: #3498db;
|
|
}
|
|
|
|
/* ================= INPUT ================= */
|
|
|
|
.stTextInput input,
|
|
.stTextArea textarea {
|
|
background-color: #ffffff !important;
|
|
color: #262730 !important;
|
|
border: 2px solid #3498db !important; /* ✅ tetap ada garis */
|
|
border-radius: 12px;
|
|
padding: 12px;
|
|
font-weight: 500;
|
|
}
|
|
|
|
/* ================= DROPDOWN CLEAN ================= */
|
|
|
|
.stSelectbox [data-baseweb="select"] {
|
|
background: #ffffff !important;
|
|
border: none !important; /* hilang garis kotak */
|
|
border-radius: 12px;
|
|
box-shadow: 0 0 0 2px rgba(52, 152, 219, 0.18) !important; /* ✅ modern glow */
|
|
padding: 6px;
|
|
}
|
|
|
|
/* hover */
|
|
.stSelectbox [data-baseweb="select"]:hover {
|
|
box-shadow: 0 0 0 2px rgba(52, 152, 219, 0.28) !important;
|
|
}
|
|
|
|
/* focus */
|
|
.stSelectbox [data-baseweb="select"]:focus-within {
|
|
box-shadow: 0 0 0 2.5px rgba(52, 152, 219, 0.45) !important;
|
|
}
|
|
|
|
/* hilangkan outline default */
|
|
.stSelectbox * {
|
|
outline: none !important;
|
|
}
|
|
|
|
/* ================= BUTTON ================= */
|
|
|
|
.stButton > button,
|
|
.stDownloadButton > button {
|
|
background-color: #3498db !important;
|
|
color: white !important;
|
|
border-radius: 12px;
|
|
border: none;
|
|
padding: 10px 35px;
|
|
font-weight: 900;
|
|
transition: 0.3s ease;
|
|
}
|
|
|
|
.stButton > button:hover {
|
|
background-color: #2980b9 !important;
|
|
transform: scale(1.03);
|
|
}
|
|
|
|
/* ================= INFO ================= */
|
|
|
|
.stInfo {
|
|
background-color: #e3f2fd !important;
|
|
color: #1976d2 !important;
|
|
border-radius: 10px;
|
|
}
|
|
|
|
.stSuccess {
|
|
background-color: #e8f5e9 !important;
|
|
color: #2e7d32 !important;
|
|
border-radius: 10px;
|
|
}
|
|
|
|
/* ================= UPLOAD ================= */
|
|
|
|
.stFileUploader section {
|
|
background-color: #f8f9fa !important;
|
|
border: 2px dashed #3498db !important;
|
|
border-radius: 15px;
|
|
}
|