Merge branch 'main' of https://git.nianxx.cn/wangxuming/makelore
Some checks failed
Electron E2E / Electron E2E (macos-latest) (push) Has been cancelled
Electron E2E / Electron E2E (ubuntu-latest) (push) Has been cancelled
Electron E2E / Electron E2E (windows-latest) (push) Has been cancelled

This commit is contained in:
2026-08-15 10:40:33 +08:00
31 changed files with 1153 additions and 241 deletions

View File

@@ -445,14 +445,23 @@ html[data-ui-language='ru'] {
}
}
/* Adapted from Uiverse.io card by Pravins01 (odd-fly-66). The card keeps the
* original pseudo-element rotation and blur animation, with Makelore colors. */
/* Adapted from Uiverse.io card by Smit-Prajapati (smart-liger-5). The
* original glass layers are softened for Makelore's horizontal module cards
* and single light visual system. */
.module-option-card {
--module-option-frame-orange: 237 114 47;
--module-option-inner-gap-y: 0.0625rem;
--module-option-inner-gap-x: 0.0625rem;
--module-option-plate-inset: 0;
--module-option-motion-duration: 280ms;
--module-option-motion-ease: cubic-bezier(0.16, 1, 0.3, 1);
position: relative;
z-index: 0;
overflow: visible;
height: clamp(7rem, 11vw, 8.5rem);
min-width: 0;
perspective: 1100px;
transform-style: preserve-3d;
}
/* The module chooser uses a single vertical rail so each horizontal card has
@@ -470,54 +479,128 @@ html[data-ui-language='ru'] {
}
.module-option-card-surface {
position: absolute;
display: flex;
min-height: 100%;
min-height: 0;
flex-direction: row;
align-items: stretch;
border: 1px solid hsl(var(--border) / 0.75);
box-shadow: 0 1px 2px hsl(220 20% 16% / 0.035), 0 12px 30px hsl(220 20% 16% / 0.045);
}
.module-option-card::before {
position: absolute;
top: -1%;
left: -1%;
z-index: -10;
content: '';
width: 102%;
height: 102%;
margin: auto;
border-radius: 10px;
background: linear-gradient(-45deg, hsl(var(--brand)) 0%, hsl(var(--brand-blue)) 100%);
overflow: visible;
pointer-events: none;
transition: transform 600ms cubic-bezier(0.175, 0.885, 0.32, 1.275);
z-index: 1;
inset: var(--module-option-plate-inset);
width: auto;
height: auto;
border: 1px solid transparent;
border-radius: calc(0.75rem - var(--module-option-inner-gap-x));
background: hsl(var(--background));
box-shadow:
0 1px 0 hsl(var(--background) / 0.96),
0 0.5rem 1rem hsl(var(--foreground) / 0.07);
-webkit-backdrop-filter: none;
backdrop-filter: none;
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
will-change: transform;
transform: none;
transform-style: preserve-3d;
transition:
background 260ms ease,
border-color 220ms ease,
box-shadow 260ms ease,
-webkit-backdrop-filter 260ms ease,
backdrop-filter 260ms ease,
transform var(--module-option-motion-duration) var(--module-option-motion-ease),
opacity 260ms ease;
}
.module-option-card::after {
.module-option-card-frame {
position: absolute;
inset: 0;
z-index: -1;
content: '';
background: linear-gradient(-45deg, hsl(var(--brand)) 0%, hsl(var(--brand-blue)) 100%);
transform: translate3d(0, 0, 0) scale(0.95);
filter: blur(20px);
z-index: 0;
display: none;
border: 0;
border-radius: 0.75rem;
background: rgb(var(--module-option-frame-orange));
box-shadow:
0 1px 2px hsl(220 20% 16% / 0.035),
0 12px 30px hsl(220 20% 16% / 0.045);
pointer-events: none;
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
will-change: transform;
transform-origin: center center;
transform-style: preserve-3d;
transform: none;
transition:
transform var(--module-option-motion-duration) var(--module-option-motion-ease);
}
.module-option-card-hit-area {
position: absolute;
inset: 0;
z-index: 20;
pointer-events: auto;
background: transparent;
}
.module-option-card-surface * {
pointer-events: none;
}
.module-option-card:hover::after,
.module-option-card:focus-visible::after {
filter: blur(30px);
.module-option-card:hover .module-option-card-frame,
.module-option-card:focus-visible .module-option-card-frame {
transform: rotate3d(1, 1, 0, 16deg) translate3d(0.5rem, 0.2rem, 0);
}
.module-option-card:hover .module-option-card-surface,
.module-option-card:focus-visible .module-option-card-surface {
background: linear-gradient(
140deg,
hsl(var(--background) / 0.98) 0%,
hsl(var(--background) / 0.82) 52%,
hsl(var(--background) / 0.94) 100%
);
border-color: rgb(255 255 255);
-webkit-backdrop-filter: blur(14px) saturate(1.35);
backdrop-filter: blur(14px) saturate(1.35);
box-shadow:
0 0 0 1px hsl(var(--brand) / 0.24),
0 0 1.25rem hsl(var(--brand) / 0.2),
0 0 2.5rem hsl(var(--brand) / 0.12),
0 0.9rem 1.5rem hsl(var(--foreground) / 0.1);
transform: rotate3d(1, 1, 0, 16deg) translate3d(0.25rem, -0.25rem, 28px);
}
.module-option-card-image {
width: clamp(7rem, 22%, 10rem);
height: 100%;
flex: 0 0 clamp(7rem, 22%, 10rem);
width: clamp(7.125rem, calc(26% - var(--module-option-inner-gap-x)), 10.625rem);
height: calc(100% - var(--module-option-inner-gap-y) - var(--module-option-inner-gap-y));
flex: 0 0 clamp(7.125rem, calc(26% - var(--module-option-inner-gap-x)), 10.625rem);
align-self: center;
margin: var(--module-option-inner-gap-y) 0 var(--module-option-inner-gap-y) var(--module-option-inner-gap-x);
overflow: hidden;
border-radius: 0.75rem 0 0 0.75rem;
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
will-change: transform;
transform: none;
transform-style: preserve-3d;
transition: transform var(--module-option-motion-duration) var(--module-option-motion-ease);
}
.module-option-card-image-media {
transition: transform 320ms cubic-bezier(0.22, 1, 0.36, 1);
display: block;
border-radius: inherit;
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
image-rendering: auto;
transform: translate3d(0, 0, 0);
will-change: transform;
transition: transform 240ms var(--module-option-motion-ease);
}
.module-option-card:hover .module-option-card-image,
.module-option-card:focus-visible .module-option-card-image {
transform: translate3d(-0.08rem, -0.08rem, 48px) scale(1.015);
}
.module-option-card-content {
@@ -528,61 +611,112 @@ html[data-ui-language='ru'] {
justify-content: center;
padding: clamp(0.75rem, 1.6vw, 1.25rem);
padding-right: clamp(2.75rem, 5vw, 4rem);
transform: none;
transform-style: preserve-3d;
transition: transform var(--module-option-motion-duration) var(--module-option-motion-ease);
}
.module-option-card-content > * {
position: relative;
transform-style: preserve-3d;
transition: transform var(--module-option-motion-duration) var(--module-option-motion-ease);
}
.module-option-card:hover .module-option-card-content,
.module-option-card:focus-visible .module-option-card-content {
transform: translate3d(0, 0, 44px);
}
.module-option-card-title {
font-size: clamp(1rem, 1.8vw, 1.35rem);
line-height: 1.25;
transform: none;
transition-delay: 0ms;
}
.module-option-card:hover .module-option-card-title,
.module-option-card:focus-visible .module-option-card-title {
transform: translate3d(0, 0, 54px);
transition-delay: 40ms;
}
.module-option-card-description {
margin-top: clamp(0.375rem, 0.7vw, 0.625rem);
font-size: clamp(0.75rem, 1.1vw, 0.95rem);
line-height: clamp(1.1rem, 1.5vw, 1.5rem);
transform: none;
transition-delay: 0ms;
}
.module-option-card:hover .module-option-card-description,
.module-option-card:focus-visible .module-option-card-description {
transform: translate3d(0, 0, 24px);
transition-delay: 60ms;
}
.module-option-card-status {
margin-top: clamp(0.375rem, 0.7vw, 0.625rem);
font-size: clamp(0.625rem, 0.75vw, 0.75rem);
line-height: 1.25;
transform: none;
transition-delay: 0ms;
}
.module-option-card-arrow {
top: clamp(0.5rem, 1vw, 0.75rem);
right: clamp(0.5rem, 1vw, 0.75rem);
width: clamp(1.75rem, 2.8vw, 2rem);
height: clamp(1.75rem, 2.8vw, 2rem);
}
.module-option-card-arrow-icon {
width: clamp(1rem, 1.8vw, 1.25rem);
height: clamp(1rem, 1.8vw, 1.25rem);
.module-option-card:hover .module-option-card-status,
.module-option-card:focus-visible .module-option-card-status {
transform: translate3d(0, 0, 20px);
transition-delay: 80ms;
}
.module-option-card.module-option-card-disabled::before,
.module-option-card.module-option-card-disabled::after {
background: hsl(var(--muted-foreground) / 0.28);
filter: none;
display: none;
}
.module-option-card.module-option-card-disabled:hover::before,
.module-option-card.module-option-card-disabled:focus-visible::before {
.module-option-card.module-option-card-disabled:hover .module-option-card-surface,
.module-option-card.module-option-card-disabled:focus-visible .module-option-card-surface {
transform: none;
}
.module-option-card.module-option-card-disabled:hover::after,
.module-option-card.module-option-card-disabled:focus-visible::after {
filter: none;
.module-option-card.module-option-card-disabled:hover,
.module-option-card.module-option-card-disabled:focus-visible {
box-shadow:
0 1px 2px hsl(220 20% 16% / 0.035),
0 12px 30px hsl(220 20% 16% / 0.045);
transform: none;
}
.module-option-card:hover::before,
.module-option-card:focus-visible::before {
transform: rotate(-1deg) scaleX(1.01) scaleY(1.04);
.module-option-card.module-option-card-disabled .module-option-card-frame {
border: 0;
background: linear-gradient(135deg, hsl(var(--brand) / 0.18) 0%, hsl(var(--brand-soft) / 0.34) 100%);
box-shadow:
0 1px 2px hsl(220 20% 16% / 0.035),
0 12px 30px hsl(220 20% 16% / 0.045);
}
.module-option-card.module-option-card-disabled:hover .module-option-card-frame,
.module-option-card.module-option-card-disabled:focus-visible .module-option-card-frame {
transform: none;
}
.module-option-card.module-option-card-disabled:hover .module-option-card-image,
.module-option-card.module-option-card-disabled:focus-visible .module-option-card-image,
.module-option-card.module-option-card-disabled:hover .module-option-card-content,
.module-option-card.module-option-card-disabled:focus-visible .module-option-card-content {
transform: none;
}
.module-option-card.module-option-card-disabled .module-option-card-content > * {
transform: none;
}
.module-option-card.module-option-card-disabled .module-option-card-surface {
background: transparent;
}
.module-option-card:hover .module-option-card-image-media,
.module-option-card:focus-visible .module-option-card-image-media {
transform: scale(1.04);
transform: scale(1.015);
}
.module-option-card:disabled:hover .module-option-card-image-media,
@@ -776,13 +910,28 @@ html[data-ui-language='ru'] {
transform: none;
}
.module-option-card::before {
.module-option-card:hover .module-option-card-frame,
.module-option-card:focus-visible .module-option-card-frame,
.module-option-card:hover .module-option-card-surface,
.module-option-card:focus-visible .module-option-card-surface {
transform: none;
}
.module-option-card:hover::after,
.module-option-card:focus-visible::after {
filter: blur(20px);
.module-option-card:hover .module-option-card-image,
.module-option-card:focus-visible .module-option-card-image,
.module-option-card:hover .module-option-card-content,
.module-option-card:focus-visible .module-option-card-content {
transform: none;
}
.module-option-card:hover .module-option-card-content > *,
.module-option-card:focus-visible .module-option-card-content > * {
transform: none;
}
.module-option-card:hover .module-option-card-image-media,
.module-option-card:focus-visible .module-option-card-image-media {
transform: none;
}
.brand-spark {