Improve look of SQL explorer page, and improve validation of exercise selection in workouts

This commit is contained in:
Peter Stockings
2026-02-04 12:37:05 +11:00
parent 09d90b5a1e
commit 3f3725d277
8 changed files with 464 additions and 261 deletions

View File

@@ -10,7 +10,7 @@ tr.htmx-swapping td {
bottom: 0px;
left: 0px;
right: 0px;
background-color: rgba(0,0,0,0.9);
background-color: rgba(0, 0, 0, 0.9);
z-index: 1000;
/* Flexbox centers the .modal-content vertically and horizontally */
display: flex;
@@ -22,42 +22,42 @@ tr.htmx-swapping td {
animation-timing-function: ease;
}
#modal > .modal-underlay {
/* underlay takes up the entire viewport. This is only
#modal>.modal-underlay {
/* underlay takes up the entire viewport. This is only
required if you want to click to dismiss the popup */
position: absolute;
z-index: -1;
top: 0px;
bottom: 0px;
left: 0px;
right: 0px;
}
position: absolute;
z-index: -1;
top: 0px;
bottom: 0px;
left: 0px;
right: 0px;
}
#modal > .modal-content {
/* Display properties for visible dialog*/
border: solid 1px #999;
border-radius: 8px;
box-shadow: 0px 0px 20px 0px rgba(0,0,0,0.3);
background-color: white;
/* Animate when opening */
animation-name: zoomIn;
animation-duration: 150ms;
animation-timing-function: ease;
}
#modal>.modal-content {
/* Display properties for visible dialog*/
border: solid 1px #999;
border-radius: 8px;
box-shadow: 0px 0px 20px 0px rgba(0, 0, 0, 0.3);
background-color: white;
/* Animate when opening */
animation-name: zoomIn;
animation-duration: 150ms;
animation-timing-function: ease;
}
#modal.closing {
/* Animate when closing */
animation-name: fadeOut;
animation-duration: 150ms;
animation-timing-function: ease;
}
#modal.closing {
/* Animate when closing */
animation-name: fadeOut;
animation-duration: 150ms;
animation-timing-function: ease;
}
#modal.closing > .modal-content {
/* Aniate when closing */
animation-name: zoomOut;
animation-duration: 150ms;
animation-timing-function: ease;
}
#modal.closing>.modal-content {
/* Aniate when closing */
animation-name: zoomOut;
animation-duration: 150ms;
animation-timing-function: ease;
}
@keyframes fadeIn {
0% {
@@ -99,20 +99,29 @@ tr.htmx-swapping td {
}
}
.loading-indicator{
display:none;
.loading-indicator {
display: none;
}
.htmx-request .loading-indicator{
display:flex;
.htmx-request .loading-indicator {
display: flex;
}
.htmx-request.loading-indicator{
display:flex;
.htmx-request.loading-indicator {
display: flex;
}
@keyframes slideInLeft {
from { transform: translateX(-100%); opacity: 0; }
to { transform: translateX(0); opacity: 1; }
from {
transform: translateX(-100%);
opacity: 0;
}
to {
transform: translateX(0);
opacity: 1;
}
}
.animate-slideInLeft {
@@ -122,12 +131,76 @@ tr.htmx-swapping td {
}
@keyframes fadeIn {
from { opacity: 0; }
to { opacity: 1; }
from {
opacity: 0;
}
to {
opacity: 1;
}
}
.animate-fadeIn {
animation-name: fadeIn;
animation-duration: 0.5s;
animation-fill-mode: both;
}
/* SQL Explorer Custom Styles */
.sql-editor-container {
background: #1e1e1e;
border-radius: 0.5rem;
padding: 0.5rem;
box-shadow: inset 0 2px 4px 0 rgba(0, 0, 0, 0.06);
}
.sql-editor-textarea {
background: transparent !important;
color: #dcdcdc !important;
font-family: 'Fira Code', 'Courier New', Courier, monospace;
line-height: 1.5;
tab-size: 4;
border: none !important;
outline: none !important;
width: 100%;
}
.glass-card {
background: rgba(255, 255, 255, 0.7);
backdrop-filter: blur(10px);
-webkit-backdrop-filter: blur(10px);
border: 1px solid rgba(255, 255, 255, 0.3);
}
.btn-premium {
position: relative;
overflow: hidden;
transition: all 0.3s ease;
}
.btn-premium::after {
content: '';
position: absolute;
top: 0;
left: -100%;
width: 100%;
height: 100%;
background: linear-gradient(90deg,
transparent,
rgba(255, 255, 255, 0.2),
transparent);
transition: 0.5s;
}
.btn-premium:hover::after {
left: 100%;
}
.table-zebra tbody tr:nth-child(even) {
background-color: rgba(243, 244, 246, 0.5);
}
.table-zebra tbody tr:hover {
background-color: rgba(229, 231, 235, 0.8);
}