Reduction
All checks were successful
Build and Deploy Nuxt / build (push) Successful in 40s

This commit is contained in:
2026-09-21 23:37:27 +02:00
parent 42084aeeb4
commit 626612b8f0
14 changed files with 8 additions and 286 deletions

View File

@@ -1,17 +1,13 @@
// Shared TUI transition mixin /* Global rules shared across pages/components (imported once via nuxt.config css). */
@mixin tui-transition($steps: 2) {
transition: all 0.1s steps($steps, end);
}
// Box-drawing content string for borders (top/bottom frame lines) /* Pages that opt out of the header sprite hide the TableHeader undertable area.
$box-line-top: "═══════════════════"; Selector is prefixed with the element type so it always outranks TableHeader's
scoped `.undertable-wrapper { display: flex }` regardless of stylesheet order. */
/* Global rules - no-sprite pages hide the undertable sprite area */ div.no-sprite .undertable-wrapper {
.no-sprite .undertable-wrapper {
display: none; display: none;
} }
// Dropdown transition keyframes (used by LanguageSelector and ThemeSelector) /* Dropdown transition (used by LanguageSelector and ThemeSelector). */
.dropdown-enter-active, .dropdown-leave-active { .dropdown-enter-active, .dropdown-leave-active {
transition: opacity 0.2s ease, transform 0.2s ease; transition: opacity 0.2s ease, transform 0.2s ease;
} }
@@ -19,14 +15,3 @@ $box-line-top: "═══════════════════";
opacity: 0; opacity: 0;
transform: translateY(-8px); transform: translateY(-8px);
} }
// Dropdown button shared styles
.tui-dropdown-button {
background: var(--color-background-fore);
color: var(--color-text);
font-size: 1em;
border: 1px solid var(--color-border-color);
padding: 8px 12px;
border-radius: 0;
cursor: pointer;
}

View File

@@ -79,14 +79,6 @@ border: 1px solid var(--color-border-color);
background-color: var(--color-selected); background-color: var(--color-selected);
} }
} }
/* Dropdown transitions */
.dropdown-enter-active, .dropdown-leave-active {
transition: opacity 0.2s ease, transform 0.2s ease;
}
.dropdown-enter-from, .dropdown-leave-to {
opacity: 0;
transform: translateY(-8px);
}
.dropdown { .dropdown {
z-index: 10; z-index: 10;

View File

@@ -157,15 +157,6 @@ border: 1px solid var(--color-border-color);
margin-right: 15px; margin-right: 15px;
} }
/* Dropdown transitions */
.dropdown-enter-active, .dropdown-leave-active {
transition: opacity 0.2s ease, transform 0.2s ease;
}
.dropdown-enter-from, .dropdown-leave-to {
opacity: 0;
transform: translateY(-8px);
}
/* Dropdown */ /* Dropdown */
.dropdown { .dropdown {
z-index: 10; z-index: 10;
@@ -234,16 +225,6 @@ border: 1px solid var(--color-border-color);
} }
} }
.two-columns {
display: flex;
flex-grow: 1;
flex-direction: row;
}
.section {
flex-grow: 1;
}
.stacked { .stacked {
flex-direction: column; flex-direction: column;
} }

View File

@@ -187,9 +187,3 @@ const onSubmit = async () => {
} }
} }
</style> </style>
<style lang="scss">
.no-sprite .undertable-wrapper {
display: none;
}
</style>

View File

@@ -87,8 +87,4 @@ useSeo({
font-size: 1.4rem; font-size: 1.4rem;
} }
} }
.no-sprite .undertable-wrapper {
display: none;
}
</style> </style>

View File

@@ -265,9 +265,3 @@ const displayedArt = computed(() => {
} }
} }
</style> </style>
<style lang="scss">
.no-sprite .undertable-wrapper {
display: none;
}
</style>

View File

@@ -91,8 +91,4 @@ useSeo({
font-size: 1.4rem; font-size: 1.4rem;
} }
} }
.no-sprite .undertable-wrapper {
display: none;
}
</style> </style>

View File

@@ -193,9 +193,3 @@ const displayedPosts = computed(() => {
} }
} }
</style> </style>
<style lang="scss">
.no-sprite .undertable-wrapper {
display: none;
}
</style>

View File

@@ -73,9 +73,3 @@ h1 {
} }
} }
</style> </style>
<style lang="scss">
.no-sprite .undertable-wrapper {
display: none;
}
</style>

View File

@@ -320,10 +320,6 @@ const sectionTargets = {
margin-bottom: 0; margin-bottom: 0;
} }
.tui-frame:last-child {
margin-bottom: 0;
}
@media screen and (min-width: 1200px) { @media screen and (min-width: 1200px) {
margin-top: 290px; margin-top: 290px;
} }
@@ -440,18 +436,6 @@ const sectionTargets = {
} }
} }
.project-card-corner {
position: absolute;
width: 14px;
height: 14px;
border-color: #cfcfcf;
&.tl { top: -1px; left: -1px; border-top: 2px solid; border-left: 2px solid; }
&.tr { top: -1px; right: -1px; border-top: 2px solid; border-right: 2px solid; }
&.bl { bottom: -1px; left: -1px; border-bottom: 2px solid; border-left: 2px solid; }
&.br { bottom: -1px; right: -1px; border-bottom: 2px solid; border-right: 2px solid; }
}
.project-title { .project-title {
font-family: 'Hurmit', monospace; font-family: 'Hurmit', monospace;
color: inherit; color: inherit;
@@ -501,137 +485,6 @@ const sectionTargets = {
letter-spacing: 0.5px; letter-spacing: 0.5px;
} }
.stats-section {
margin-top: 32px;
}
.stats-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 10px;
}
.stat-card {
position: relative;
background: var(--color-background-fore);
border: 2px solid var(--color-border-color);
box-shadow:
inset 1px -1px 0px 0px rgba(0,0,0,0.3),
4px -4px 0px 0px var(--color-container-shadow);
padding: 0;
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
gap: 0;
overflow: hidden;
transition: all 0.1s steps(2, end);
&:hover {
border-color: var(--color-link);
box-shadow:
inset 1px -1px 0px 0px rgba(0,0,0,0.3),
4px -4px 0px 0px var(--color-link);
}
.stat-card-corner {
position: absolute;
width: 12px;
height: 12px;
border-color: #cfcfcf;
&.tl { top: -1px; left: -1px; border-top: 2px solid; border-left: 2px solid; }
&.tr { top: -1px; right: -1px; border-top: 2px solid; border-right: 2px solid; }
&.bl { bottom: -1px; left: -1px; border-bottom: 2px solid; border-left: 2px solid; }
&.br { bottom: -1px; right: -1px; border-bottom: 2px solid; border-right: 2px solid; }
}
}
.stat-card-frame-top {
position: absolute;
top: -2px;
left: 14px;
right: 14px;
height: 0;
color: var(--color-border-color);
font-family: 'Hurmit', monospace;
font-size: 0;
line-height: 0;
white-space: nowrap;
&::before {
content: "═════";
}
}
.stat-card-frame-bottom {
position: absolute;
bottom: -2px;
left: 14px;
right: 14px;
height: 0;
color: var(--color-border-color);
font-family: 'Hurmit', monospace;
font-size: 0;
line-height: 0;
white-space: nowrap;
&::before {
content: "═════";
}
}
.stat-card-header {
background-color: var(--color-link);
color: var(--color-background-fore);
padding: 3px 12px;
font-family: 'Hurmit', monospace;
font-size: 0.55rem;
letter-spacing: 2px;
text-transform: uppercase;
width: 100%;
text-align: center;
box-shadow: inset 0 -2px 0px 0px rgba(0,0,0,0.3);
}
.stat-card-content {
padding: 16px 10px;
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
gap: 8px;
width: 100%;
}
.stat-pixel-art {
width: 36px;
height: 36px;
margin-bottom: 2px;
fill: var(--color-link);
filter: drop-shadow(0 0 4px var(--color-link));
image-rendering: pixelated;
}
.stat-number {
font-family: 'Hurmit', monospace;
font-size: 1.6rem;
color: var(--color-link);
text-shadow: 0 0 8px var(--color-link), 0 0 4px var(--color-link);
font-weight: bold;
letter-spacing: 2px;
}
.stat-label {
font-family: 'Hurmit', monospace;
color: var(--color-text);
font-size: 0.65rem;
line-height: 1.35;
text-transform: uppercase;
letter-spacing: 0.5px;
opacity: 0.8;
}
.tui-list { .tui-list {
list-style: none; list-style: none;
margin: 0; margin: 0;
@@ -765,16 +618,7 @@ const sectionTargets = {
pointer-events: none; pointer-events: none;
} }
@keyframes blink-cursor {
0%, 50% { opacity: 1; }
51%, 100% { opacity: 0; }
}
@media (max-width: 900px) { @media (max-width: 900px) {
.stats-grid {
grid-template-columns: repeat(2, 1fr);
}
.grid { .grid {
grid-template-columns: repeat(2, minmax(200px, 1fr)); grid-template-columns: repeat(2, minmax(200px, 1fr));
} }
@@ -811,33 +655,6 @@ const sectionTargets = {
font-size: 0.82rem; font-size: 0.82rem;
} }
.stats-grid {
grid-template-columns: repeat(2, 1fr);
gap: 8px;
}
.stat-card-header {
padding: 2px 8px;
font-size: 0.5rem;
}
.stat-card-content {
padding: 12px 6px;
}
.stat-number {
font-size: 1.4rem;
}
.stat-label {
font-size: 0.6rem;
}
.stat-pixel-art {
width: 28px;
height: 28px;
}
.grid { .grid {
grid-template-columns: 1fr; grid-template-columns: 1fr;
padding: 16px 0; padding: 16px 0;
@@ -849,10 +666,6 @@ const sectionTargets = {
} }
@media (max-width: 400px) { @media (max-width: 400px) {
.stats-grid {
grid-template-columns: 1fr;
}
.section-title { .section-title {
font-size: 1rem; font-size: 1rem;
padding-left: 0; padding-left: 0;

View File

@@ -581,9 +581,3 @@ const onSubmit = async () => {
} }
} }
</style> </style>
<style lang="scss">
.no-sprite .undertable-wrapper {
display: none;
}
</style>

View File

@@ -113,9 +113,3 @@ const localePath = useLocalePath();
filter: blur(10px); filter: blur(10px);
} }
</style> </style>
<style lang="scss">
.no-sprite .undertable-wrapper {
display: none;
}
</style>

View File

@@ -267,9 +267,3 @@ function navigateToProject(project) {
} }
} }
</style> </style>
<style lang="scss">
.no-sprite .undertable-wrapper {
display: none;
}
</style>

View File

@@ -8,7 +8,8 @@ export default defineNuxtConfig({
css: [ css: [
'~/assets/css/colors.scss', '~/assets/css/colors.scss',
'~/assets/css/fonts.scss', '~/assets/css/fonts.scss',
'~/assets/css/main.scss' '~/assets/css/main.scss',
'~/assets/css/shared.scss'
], ],
runtimeConfig: { runtimeConfig: {