Skip to content

Commit 9563be6

Browse files
authored
Merge pull request #20 from abdonmorales/dev (Christmas 2025)
Fixing UI bugs and rolling out the rest of the UI refresh. (Christmas 2025)
2 parents cf52c50 + c427743 commit 9563be6

14 files changed

Lines changed: 586 additions & 323 deletions

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
"@astrojs/react": "^4.4.2",
2424
"@types/react": "^19.1.10",
2525
"@types/react-dom": "^19.1.7",
26-
"astro": "^5.16.4",
26+
"astro": "^5.16.6",
2727
"react": "^19.1.1",
2828
"react-dom": "^19.1.1"
2929
},

src/components/CallToAction.astro

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,16 @@ const { href } = Astro.props;
2121
line-height: 1.1;
2222
border-radius: 999rem;
2323
overflow: hidden;
24-
background: var(--gradient-accent-orange);
25-
box-shadow: var(--shadow-md);
24+
background:
25+
linear-gradient(145deg, color-mix(in srgb, #fff 12%, transparent), transparent 50%),
26+
var(--gradient-accent-orange);
27+
border: 1px solid color-mix(in srgb, var(--accent-regular) 55%, transparent);
28+
box-shadow: 0 16px 36px color-mix(in srgb, var(--accent-regular) 28%, transparent);
29+
-webkit-backdrop-filter: blur(12px) saturate(1.25);
30+
backdrop-filter: blur(12px) saturate(1.25);
31+
transition: transform var(--theme-transition), box-shadow var(--theme-transition);
2632
white-space: nowrap;
33+
will-change: transform, box-shadow;
2734
}
2835

2936
@media (min-width: 20em) {
@@ -47,6 +54,11 @@ const { href } = Astro.props;
4754
background-color: hsla(var(--gray-999-basis), 0.3);
4855
}
4956

57+
a:hover {
58+
transform: translateY(-1px);
59+
box-shadow: 0 20px 42px color-mix(in srgb, var(--accent-regular) 32%, transparent);
60+
}
61+
5062
@media (min-width: 50em) {
5163
a {
5264
padding: 1.125rem 2.5rem;

src/components/ContactCTA.astro

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import CallToAction from './CallToAction.astro';
33
import Icon from './Icon.astro';
44
---
55

6-
<aside>
6+
<aside class="contact-cta glass-panel flush">
77
<h2>Interested in working together?</h2>
88
<CallToAction href="mailto:abdonmorales@utexas.edu">
99
Send Me a Message
@@ -12,16 +12,16 @@ import Icon from './Icon.astro';
1212
</aside>
1313

1414
<style>
15-
aside {
15+
.contact-cta {
1616
display: flex;
1717
flex-direction: column;
1818
align-items: center;
19-
gap: 3rem;
20-
border-top: 1px solid var(--gray-800);
21-
border-bottom: 1px solid var(--gray-800);
22-
padding: 5rem 1.5rem;
23-
background-color: var(--gray-999_40);
24-
box-shadow: var(--shadow-sm);
19+
gap: 2.5rem;
20+
padding: clamp(3rem, 5vw, 4.25rem) clamp(1.5rem, 3vw, 2.75rem);
21+
border-radius: 1.75rem;
22+
box-shadow: var(--glass-shadow-medium);
23+
backdrop-filter: var(--glass-blur-medium);
24+
-webkit-backdrop-filter: var(--glass-blur-medium);
2525
}
2626

2727
h2 {
@@ -31,8 +31,8 @@ import Icon from './Icon.astro';
3131
}
3232

3333
@media (min-width: 50em) {
34-
aside {
35-
padding: 7.5rem;
34+
.contact-cta {
35+
padding: clamp(3.5rem, 5vw, 5.5rem);
3636
flex-direction: row;
3737
flex-wrap: wrap;
3838
justify-content: space-between;

src/components/Footer.astro

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
11
---
22
import Icon from './Icon.astro';
3+
import { version as astroVersion } from 'astro/package.json';
4+
35
const currentYear = new Date().getFullYear();
46
const endCopyYear = new Date().getFullYear() + 2;
57
---
68

7-
<footer>
9+
<footer class="footer-shell glass-panel flush">
810
<div class="group">
911
<p>
10-
Designed & Developed in Austin, Texas with <a href="https://astro.build/">Astro 5.14.1</a>
12+
Designed & Developed in Austin, Texas with <a href="https://astro.build/">Astro {astroVersion}</a>
1113
<Icon icon="rocket-launch" size="1.2em" />
1214
</p>
1315
<p>&copy; {currentYear} - {endCopyYear} Abdon Morales.</p>
@@ -19,26 +21,29 @@ const endCopyYear = new Date().getFullYear() + 2;
1921
</p>
2022
</footer>
2123
<style>
22-
footer {
24+
.footer-shell {
2325
display: flex;
2426
flex-direction: column;
25-
gap: 3rem;
27+
gap: 2rem;
2628
margin-top: auto;
27-
padding: 3rem 2rem 3rem;
29+
padding: 2.5rem clamp(1.5rem, 3vw, 3rem);
2830
text-align: center;
2931
color: var(--gray-400);
3032
font-size: var(--text-sm);
33+
border-radius: 1.5rem;
34+
backdrop-filter: var(--glass-blur-light);
35+
-webkit-backdrop-filter: var(--glass-blur-light);
3136
}
3237

33-
footer a {
38+
.footer-shell a {
3439
color: var(--gray-400);
3540
text-decoration: 1px solid underline transparent;
3641
text-underline-offset: 0.25em;
3742
transition: text-decoration-color var(--theme-transition);
3843
}
3944

40-
footer a:hover,
41-
footer a:focus {
45+
.footer-shell a:hover,
46+
.footer-shell a:focus {
4247
text-decoration-color: currentColor;
4348
}
4449

@@ -56,10 +61,10 @@ const endCopyYear = new Date().getFullYear() + 2;
5661
}
5762

5863
@media (min-width: 50em) {
59-
footer {
64+
.footer-shell {
6065
flex-direction: row;
6166
justify-content: space-between;
62-
padding: 2.5rem 5rem;
67+
padding: 2.5rem clamp(2rem, 4vw, 4rem);
6368
}
6469

6570
.group {

src/components/MainHead.astro

Lines changed: 5 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -66,22 +66,9 @@ const canonicalURL = new URL(Astro.url.pathname, Astro.site ?? 'https://abdonmor
6666
/>
6767
</noscript>
6868
<script is:inline>
69-
// This code is inlined in the head to make dark mode instant & blocking.
70-
const getThemePreference = () => {
71-
if (typeof localStorage !== 'undefined' && localStorage.getItem('theme')) {
72-
return localStorage.getItem('theme');
73-
}
74-
return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';
75-
};
76-
const isDark = getThemePreference() === 'dark';
77-
document.documentElement.classList[isDark ? 'add' : 'remove']('theme-dark');
78-
79-
if (typeof localStorage !== 'undefined') {
80-
// Watch the document element and persist user preference when it changes.
81-
const observer = new MutationObserver(() => {
82-
const isDark = document.documentElement.classList.contains('theme-dark');
83-
localStorage.setItem('theme', isDark ? 'dark' : 'light');
84-
});
85-
observer.observe(document.documentElement, { attributes: true, attributeFilter: ['class'] });
86-
}
69+
// Force dark mode for now; toggle intentionally disabled.
70+
document.documentElement.classList.add('theme-dark');
71+
try {
72+
localStorage.setItem('theme', 'dark');
73+
} catch (_) {}
8774
</script>

0 commit comments

Comments
 (0)