diff --git a/public/assets/css/app.css b/public/assets/css/app.css index e72bf0c..794de8c 100755 --- a/public/assets/css/app.css +++ b/public/assets/css/app.css @@ -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; } diff --git a/src/App/Avatar/Lorelei.php b/src/App/Avatar/Lorelei.php index 121a55c..d926559 100644 --- a/src/App/Avatar/Lorelei.php +++ b/src/App/Avatar/Lorelei.php @@ -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 : ''; } }