test stylistic choices

This commit is contained in:
2026-02-11 15:15:32 -06:00
parent b1e75bd91f
commit 99bf0f6c5f
2 changed files with 110 additions and 14 deletions

View File

@@ -43,7 +43,7 @@ SERVICES = [
} }
] ]
# Check interval: 2 hours = 7200 seconds # Check interval: 30 mins
CHECK_INTERVAL = 1800 CHECK_INTERVAL = 1800
# File to store status history # File to store status history
@@ -158,10 +158,10 @@ class ServiceMonitor:
if result['status'] == 'online': if result['status'] == 'online':
service_data['last_online'] = result['timestamp'] service_data['last_online'] = result['timestamp']
# Add to check history (keep last 720 checks = 60 days at 2hr intervals) # Add to check history (keep last 2880 checks = 60 days at 2hr intervals)
service_data['checks'].append(result) service_data['checks'].append(result)
if len(service_data['checks']) > 720: if len(service_data['checks']) > 2880:
service_data['checks'] = service_data['checks'][-720:] service_data['checks'] = service_data['checks'][-2880:]
self.status_data['last_check'] = datetime.now().isoformat() self.status_data['last_check'] = datetime.now().isoformat()
self.save_history() self.save_history()

View File

@@ -24,6 +24,15 @@ html, body {
scroll-behavior: smooth; scroll-behavior: smooth;
} }
/* Enhanced link styling throughout site */
a {
transition: color 0.2s ease, opacity 0.2s ease;
}
a:hover {
opacity: 0.8;
}
body { body {
margin: 0; margin: 0;
background-attachment: fixed; background-attachment: fixed;
@@ -275,13 +284,30 @@ tr {
.foregroundContent { .foregroundContent {
padding-left: 8rem; padding-left: 8rem;
padding-right: 2em; padding-right: 2em;
padding-bottom: 1rem; padding-bottom: 2em;
padding-top: 2em;
} }
.foregroundContent p { .foregroundContent p {
line-height: 1.5em; line-height: 1.5em;
} }
.concentratedHead {
position: relative;
padding-bottom: 0.5em;
margin-bottom: 1em;
}
.concentratedHead::after {
content: '';
position: absolute;
bottom: 0;
left: 0;
width: 60px;
height: 3px;
background: linear-gradient(90deg, rgba(156, 49, 45, 0.8) 0%, transparent 100%);
}
.homeground { .homeground {
background-color: rgb(0, 0, 0, .6); background-color: rgb(0, 0, 0, .6);
} }
@@ -469,9 +495,12 @@ tr {
#skillTree { #skillTree {
border-left: rgb(139, 36, 36) solid 3px; border-left: rgb(139, 36, 36) solid 3px;
background: rgba(22,22,22,.8); border-radius: 0.5em;
background: rgba(24, 24, 24, 0.85);
font-size: x-large; font-size: x-large;
margin-bottom: 10px; margin-bottom: 10px;
padding: 1em;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
} }
.skill { .skill {
@@ -503,6 +532,13 @@ tr {
.skill > .skillname { .skill > .skillname {
text-decoration: underline; text-decoration: underline;
cursor: pointer;
transition: color 0.2s ease, padding-left 0.2s ease;
padding: 0.2em 0;
}
.skill > .skillname:hover {
padding-left: 0.3em;
} }
.skill > .skillname::after { .skill > .skillname::after {
@@ -523,6 +559,7 @@ tr {
.skill[data-length="0"] > .skillname { .skill[data-length="0"] > .skillname {
text-decoration: none; text-decoration: none;
cursor: default;
} }
@@ -530,6 +567,7 @@ tr {
padding: 0px; padding: 0px;
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
gap: 1.5em;
margin-left: auto; margin-left: auto;
margin-right: auto; margin-right: auto;
width: 100%; width: 100%;
@@ -538,12 +576,30 @@ tr {
.project { .project {
border-top: .3rem rgba(156, 49, 45, .8) solid; border-top: .3rem rgba(156, 49, 45, .8) solid;
background-color: rgb(24, 24, 24, .85); background-color: rgb(24, 24, 24, .85);
border-radius: 0.5em;
transition: transform 0.3s ease, box-shadow 0.3s ease;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}
.project:hover {
transform: translateY(-4px);
box-shadow: 0 6px 12px rgba(0, 0, 0, 0.4);
}
.projTitle {
padding: 1rem 1.5rem;
border-bottom: 1px solid rgba(168, 168, 168, 0.2);
} }
.projTitle>* { .projTitle>* {
margin: 0; margin: 0;
} }
.projTitle h3 {
font-size: 1.2rem;
color: #ecebeb;
}
.projBody { .projBody {
position: relative; position: relative;
z-index: 3; z-index: 3;
@@ -612,10 +668,12 @@ tr {
.project a img, .project a p { .project a img, .project a p {
padding: .5rem; padding: .5rem;
filter: invert(100%) sepia(0%) saturate(1%) hue-rotate(52deg) brightness(106%) contrast(101%); filter: invert(100%) sepia(0%) saturate(1%) hue-rotate(52deg) brightness(106%) contrast(101%);
transition: filter 0.2s ease, transform 0.2s ease;
} }
.project a img:hover, .project a p:hover { .project a img:hover, .project a p:hover {
filter: invert(66%) sepia(0%) saturate(3964%) hue-rotate(99deg) brightness(100%) contrast(105%); filter: invert(66%) sepia(0%) saturate(3964%) hue-rotate(99deg) brightness(100%) contrast(105%);
transform: scale(1.1);
} }
.incomplete { .incomplete {
@@ -723,9 +781,10 @@ tr {
.homeSubContent { .homeSubContent {
background-color: rgb(24, 24, 24, .85); background-color: rgb(24, 24, 24, .85);
padding: 0 8em; padding: 2em 8em;
padding-top: 1em;
border-top: solid 4px rgba(139,36,36,0.5); border-top: solid 4px rgba(139,36,36,0.5);
border-radius: 0.5em 0.5em 0 0;
box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.3);
} }
#homeProjects { #homeProjects {
@@ -755,13 +814,15 @@ tr {
} }
#chessProfile { #chessProfile {
border-radius: 5px; border-radius: 0.5em;
border-top: solid 3px rgba(139, 36, 36, 0.5);
width: 300px; width: 300px;
height: calc(125px + 2em); height: calc(125px + 2em);
color: #AAAAAA; color: #AAAAAA;
display: grid; display: grid;
grid-template-columns: 1fr 1fr; grid-template-columns: 1fr 1fr;
cursor: pointer; cursor: pointer;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
} }
.chessInfo { .chessInfo {
@@ -883,8 +944,16 @@ tr {
max-width: 360px; max-width: 360px;
padding: 10px; padding: 10px;
border: solid 2px #553; border: solid 2px #553;
border-radius: 0.5em;
background-image: url("/static/photos/wood.jpg"); background-image: url("/static/photos/wood.jpg");
cursor: pointer; cursor: pointer;
transition: transform 0.3s ease, box-shadow 0.3s ease;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
}
.bookshelf:hover {
transform: translateY(-3px);
box-shadow: 0 6px 12px rgba(0, 0, 0, 0.5);
} }
.bookshelfHeader { .bookshelfHeader {
@@ -898,6 +967,7 @@ tr {
display: flex; display: flex;
justify-content: space-around; justify-content: space-around;
flex-wrap: wrap; flex-wrap: wrap;
gap: 1em;
} }
.bookContainer > a { .bookContainer > a {
@@ -913,6 +983,14 @@ tr {
margin: auto; margin: auto;
width: 75px; width: 75px;
height: 112px; height: 112px;
transition: transform 0.3s ease, box-shadow 0.3s ease;
border-radius: 2px;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
}
.book img:hover {
transform: translateY(-5px) scale(1.05);
box-shadow: 0 6px 12px rgba(0, 0, 0, 0.5);
} }
.book h4 { .book h4 {
@@ -924,9 +1002,18 @@ tr {
.bookReview { .bookReview {
width: min(100%, 30em); width: min(100%, 30em);
padding: 1em; padding: 1.5em;
border: solid 3px rgba(139, 36, 36, 0.5); border-top: solid 4px rgba(139, 36, 36, 0.5);
border-radius: 0.5em;
background: rgba(24, 24, 24, 0.85);
flex-grow: 1; flex-grow: 1;
transition: transform 0.3s ease, box-shadow 0.3s ease;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}
.bookReview:hover {
transform: translateY(-3px);
box-shadow: 0 6px 12px rgba(0, 0, 0, 0.4);
} }
.bookcover { .bookcover {
@@ -938,13 +1025,15 @@ tr {
margin-bottom: 2em; margin-bottom: 2em;
margin-top: 2em; */ margin-top: 2em; */
justify-content: left; justify-content: left;
gap: 1.5em;
} }
.boxed { .boxed {
background-color: rgba(24, 24, 24, 0.85); background-color: rgba(24, 24, 24, 0.85);
border: solid 0.5em rgba(139, 36, 36, 0.5); border-top: solid 4px rgba(139, 36, 36, 0.5);
border-radius: 0.5em; border-radius: 0.5em;
padding: 1em; padding: 1.5em;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
} }
.emPad { .emPad {
@@ -966,7 +1055,14 @@ tr {
} }
.timeline-item { .timeline-item {
border-left: solid #AAAAAA 3px; border-left: solid rgba(156, 49, 45, 0.6) 3px;
padding-left: 1em;
margin-bottom: 1.5em;
transition: border-color 0.3s ease;
}
.timeline-item:hover {
border-left-color: rgba(156, 49, 45, 1);
} }
.timeline-item h2 { .timeline-item h2 {