avatar
All checks were successful
Deploy / deploy (push) Successful in 51s

This commit is contained in:
2026-07-27 02:38:04 +02:00
parent f59d50f778
commit f757c4522e
2 changed files with 32 additions and 18 deletions

View File

@@ -263,13 +263,13 @@ body {
.avatar-component-card__thumb img { width: 100%; height: 100%; object-fit: cover; object-position: center top; display: block; transform-origin: center; }
.avatar-component-card__label { font-size: 12px; font-weight: 700; color: var(--color-text); text-align: center; }
.avatar-component-card:has(input:checked) { border-color: var(--color-primary); box-shadow: 0 0 0 3px rgba(52,72,90,0.14); }
.avatar-component-panel--eyes .avatar-component-card__thumb img,
.avatar-component-panel--eyebrows .avatar-component-card__thumb img { transform: scale(2.05) translateY(-12%); }
.avatar-component-panel--mouth .avatar-component-card__thumb img { transform: scale(2.0) translateY(10%); }
.avatar-component-panel--glasses .avatar-component-card__thumb img { transform: scale(1.95) translateY(-4%); }
.avatar-component-panel--hair .avatar-component-card__thumb img { transform: scale(1.9) translateY(-20%); }
.avatar-component-panel--beard .avatar-component-card__thumb img { transform: scale(1.95) translateY(7%); }
.avatar-component-panel--earrings .avatar-component-card__thumb img { transform: scale(1.85) translateY(-1%); }
.avatar-component-panel--eyes .avatar-component-card__thumb img { transform: scale(2.45) translateY(-12%); }
.avatar-component-panel--eyebrows .avatar-component-card__thumb img { transform: scale(2.7) translateY(-18%); }
.avatar-component-panel--mouth .avatar-component-card__thumb img { transform: scale(2.2) translateY(14%); }
.avatar-component-panel--glasses .avatar-component-card__thumb img { transform: scale(2.55) translateY(-11%); }
.avatar-component-panel--hair .avatar-component-card__thumb img { transform: scale(2.15) translateY(-31%); }
.avatar-component-panel--beard .avatar-component-card__thumb img { transform: scale(2.25) translateY(11%); }
.avatar-component-panel--earrings .avatar-component-card__thumb img { transform: scale(2.35) translateY(-6%); }
.avatar-seed-picker { width: 100%; display: grid; gap: 12px; padding: 18px; background: rgba(255,255,255,0.82); border: 1px solid var(--color-border); border-radius: 18px; }
.avatar-seed-picker[hidden] { display: none; }
.avatar-seed-picker__head { display: flex; justify-content: space-between; gap: 12px; align-items: center; }

View File

@@ -21,17 +21,14 @@ final class Lorelei
public static function options(): array
{
$variants24 = self::variantOptions(24);
$optional24 = ['' => 'Automatisch'] + $variants24;
return [
'avatar_lorelei_eyes_variant' => $variants24,
'avatar_lorelei_eyebrows_variant' => $variants24,
'avatar_lorelei_mouth_variant' => $variants24,
'avatar_lorelei_glasses_variant' => $optional24,
'avatar_lorelei_hair_variant' => $optional24,
'avatar_lorelei_beard_variant' => $optional24,
'avatar_lorelei_earrings_variant' => $optional24,
'avatar_lorelei_eyes_variant' => self::variantOptions(24),
'avatar_lorelei_eyebrows_variant' => self::variantOptions(13),
'avatar_lorelei_mouth_variant' => self::mouthVariantOptions(),
'avatar_lorelei_glasses_variant' => ['' => 'Automatisch'] + self::variantOptions(5),
'avatar_lorelei_hair_variant' => ['' => 'Automatisch'] + self::variantOptions(48),
'avatar_lorelei_beard_variant' => ['' => 'Automatisch'] + self::variantOptions(2),
'avatar_lorelei_earrings_variant' => ['' => 'Automatisch'] + self::variantOptions(3),
];
}
@@ -192,6 +189,23 @@ final class Lorelei
return $options;
}
private static function mouthVariantOptions(): array
{
$options = [];
for ($index = 1; $index <= 18; $index++) {
$key = sprintf('happy%02d', $index);
$options[$key] = 'Freundlich ' . $index;
}
for ($index = 1; $index <= 9; $index++) {
$key = sprintf('sad%02d', $index);
$options[$key] = 'Zurueckhaltend ' . $index;
}
return $options;
}
public static function normalizeVariant(string $value): string
{
$value = strtolower(trim($value));
@@ -199,6 +213,6 @@ final class Lorelei
return '';
}
return preg_match('/^variant\d{2}$/', $value) === 1 ? $value : '';
return preg_match('/^(variant\d{2}|happy\d{2}|sad\d{2})$/', $value) === 1 ? $value : '';
}
}