AnsysLPFMTrame-App / style.css
udbhav
Recreate Trame_app branch with clean history
67fb03c
/* ===== Base Styles ===== */
body {
padding: 2rem;
font-family: -apple-system, BlinkMacSystemFont, "Arial", sans-serif;
}
h1 {
font-size: 16px;
margin-top: 0;
}
p {
color: rgb(107, 114, 128);
font-size: 15px;
margin: 0;
}
.card {
max-width: 620px;
margin: 0 auto;
padding: 0;
border: 1px solid lightgray;
border-radius: 16px;
}
/* ===== Gradio UI Spacing Fixes ===== */
/* Remove spacing between Input Geometry title and upload button */
.gradio-container .panel h3 {
margin-bottom: 0 !important;
padding-bottom: 0 !important;
}
/* File upload component spacing */
#geom_file {
margin-top: 0 !important;
padding-top: 0 !important;
}
#geom_file .wrap,
#geom_file .border,
#geom_file .upload-box {
margin-top: 0 !important;
padding-top: 0 !important;
}
#geom_file label,
#geom_file input[type="file"] {
margin: 0 !important;
}
/* ===== Fixed Height for Upload Panel ===== */
/* Maintain fixed height for the Input Geometry panel */
.gradio-container .panel:has(#geom_file) {
min-height: 500px !important;
height: 500px !important;
}
/* Ensure the file upload area maintains height during upload */
#geom_file {
height: 500px !important;
min-height: 500px !important;
}
/* Keep the Model3D viewer container at fixed height even when hidden */
.gradio-container .model3d-container {
height: 500px !important;
min-height: 500px !important;
}
/* Ensure the panel doesn't shrink during upload */
.gradio-container .panel .gr-block {
min-height: 500px !important;
}
/* ===== Example Geometry Buttons ===== */
/* Style the example geometry buttons */
.gradio-container .panel button[data-testid*="example"] {
background: #F3F4F6 !important;
border: 1px solid #E5E7EB !important;
color: #374151 !important;
border-radius: 8px !important;
padding: 8px 16px !important;
font-weight: 500 !important;
transition: all 0.2s ease !important;
}
.gradio-container .panel button[data-testid*="example"]:hover {
background: #8B5CF6 !important;
border-color: #8B5CF6 !important;
color: white !important;
transform: translateY(-1px) !important;
}
/* Example geometry section styling */
.gradio-container .panel h3:contains("Examples") {
margin-bottom: 16px !important;
}
/* Example card styling */
.example-card {
background: white !important;
border: 1px solid #E5E7EB !important;
border-radius: 12px !important;
padding: 16px !important;
margin: 8px !important;
transition: all 0.2s ease !important;
text-align: center !important;
}
.example-card:hover {
border-color: #8B5CF6 !important;
box-shadow: 0 4px 12px rgba(139, 92, 246, 0.1) !important;
}
.example-card .card-label {
background: #8B5CF6 !important;
color: white !important;
padding: 4px 8px !important;
border-radius: 12px !important;
font-size: 12px !important;
font-weight: 500 !important;
display: inline-block !important;
margin-bottom: 12px !important;
}
/* Example card buttons */
.example-card button {
width: 100% !important;
background: #F3F4F6 !important;
border: 1px solid #E5E7EB !important;
color: #374151 !important;
border-radius: 8px !important;
padding: 8px 16px !important;
font-weight: 500 !important;
transition: all 0.2s ease !important;
}
.example-card button:hover {
background: #8B5CF6 !important;
border-color: #8B5CF6 !important;
color: white !important;
transform: translateY(-1px) !important;
}
/* Example card Model3D preview styling */
.example-card .model3d-container {
border-radius: 8px !important;
margin: 8px !important;
overflow: hidden !important;
}
.example-card .model3d-container canvas {
border-radius: 8px !important;
}
.colorbar-no-controls img {
height: 100% !important;
width: auto !important;
object-fit: contain !important;
}
.prediction-stats {
margin-top: 10px;
padding: 10px;
background-color: rgba(0, 0, 0, 0.05);
border-radius: 5px;
border-left: 3px solid #007acc;
}
.prediction-stats h3, .prediction-stats h4 {
margin: 5px 0;
}
.prediction-stats ul {
margin: 5px 0;
padding-left: 20px;
}
.prediction-stats li {
margin: 2px 0;
font-size: 14px;
}
/* ===== Boundary Conditions Styling ===== */
/* Style the boundary conditions group to match dropdown theme */
.gradio-container .gr-group {
background: transparent !important;
border: none !important;
border-radius: 0 !important;
padding: 0 !important;
margin: 8px 0 !important;
}
/* Style the boundary conditions title to match sub application purple theme */
.gradio-container .gr-group h3 {
color: #8B5CF6 !important;
font-weight: 600 !important;
margin-bottom: 12px !important;
}
/* More specific selector for boundary conditions title */
.gradio-container .gr-group .gr-markdown h3 {
color: #8B5CF6 !important;
font-weight: 600 !important;
}
/* Even more specific for markdown content */
.gradio-container .gr-group .gr-markdown {
color: #8B5CF6 !important;
}
.gradio-container .gr-group .gr-markdown h3,
.gradio-container .gr-group .gr-markdown h3 * {
color: #8B5CF6 !important;
}
/* Specific styling for boundary conditions title */
.boundary-conditions-title h3 {
color: #8B5CF6 !important;
font-weight: 600 !important;
}
.boundary-conditions-title {
color: #8B5CF6 !important;
}
/* More aggressive targeting for boundary conditions title */
.gradio-container .boundary-conditions-title,
.gradio-container .boundary-conditions-title *,
.gradio-container .boundary-conditions-title h3,
.gradio-container .boundary-conditions-title h3 *,
.gradio-container .boundary-conditions-title .gr-markdown,
.gradio-container .boundary-conditions-title .gr-markdown * {
color: #8B5CF6 !important;
}
/* Target the markdown content directly */
.gradio-container .gr-group .boundary-conditions-title .gr-markdown h3 {
color: #8B5CF6 !important;
font-weight: 600 !important;
}
/* Style the boundary conditions markdown content */
.boundary-conditions {
background: transparent !important;
border: none !important;
border-radius: 0 !important;
padding: 0 !important;
margin-top: 8px !important;
font-size: 14px !important;
line-height: 1.6 !important;
}
/* Style the velocity slider container */
.slider-container {
margin-bottom: 12px !important;
}
/* Ensure consistent spacing in boundary conditions */
.boundary-conditions ul {
margin: 0 !important;
padding-left: 16px !important;
}
.boundary-conditions li {
margin: 8px 0 !important;
padding: 4px 0 !important;
line-height: 1.8 !important;
}
/* More aggressive spacing for boundary conditions */
.boundary-conditions p {
margin: 8px 0 !important;
line-height: 1.8 !important;
}
.boundary-conditions {
line-height: 1.8 !important;
}
/* Target the markdown content more specifically */
.gradio-container .boundary-conditions * {
margin: 6px 0 !important;
line-height: 1.8 !important;
}
/* Add gap between boundary conditions title and content */
.gradio-container .gr-group .dropdown {
margin-bottom: 20px !important;
}
/* Add gap after the boundary conditions title */
.gradio-container .gr-group .dropdown h3 {
margin-bottom: 20px !important;
}
/* Force transparent background for all boundary conditions elements */
.gradio-container .gr-group,
.gradio-container .gr-group *,
.gradio-container .gr-group .gr-markdown,
.gradio-container .gr-group .gr-markdown *,
.gradio-container .gr-group .dropdown,
.gradio-container .gr-group .dropdown *,
.gradio-container .gr-group .boundary-conditions,
.gradio-container .gr-group .boundary-conditions * {
background: transparent !important;
background-color: transparent !important;
}
/* Remove any borders from boundary conditions */
.gradio-container .gr-group,
.gradio-container .gr-group .gr-markdown,
.gradio-container .gr-group .dropdown,
.gradio-container .gr-group .boundary-conditions {
border: none !important;
border-color: transparent !important;
box-shadow: none !important;
}
#bc_box {
background-color: transparent !important;
box-shadow: none !important;
border: none !important;
}
#bc_group {
background-color: #8B5CF6 !important;
box-shadow: none !important;
border: none !important;
}