diff --git a/tests/functional/tests/portal.spec.ts b/tests/functional/tests/portal.spec.ts index 95e24f2..e40524c 100644 --- a/tests/functional/tests/portal.spec.ts +++ b/tests/functional/tests/portal.spec.ts @@ -48,9 +48,10 @@ test("provides usable contact actions", async ({ page }) => { "https://wa.me/393331234567", ); await expect(page.getByText("Seguici sui social")).toBeVisible(); - await expect(page.locator(".social-links a")).toHaveCount(2); + await expect(page.locator(".social-links a")).toHaveCount(3); await expect(page.locator(".social-link-instagram")).toHaveCount(1); await expect(page.locator(".social-link-facebook")).toHaveCount(1); + await expect(page.locator(".social-link-youtube")).toHaveCount(1); await expect(page.getByRole("link", { name: "Instagram" })).toHaveAttribute( "href", "https://instagram.com/", @@ -59,7 +60,11 @@ test("provides usable contact actions", async ({ page }) => { "href", "https://facebook.com/", ); - await expect(page.locator(".social-links .social-icon")).toHaveCount(2); + await expect(page.getByRole("link", { name: "YouTube" })).toHaveAttribute( + "href", + "https://youtube.com/", + ); + await expect(page.locator(".social-links .social-icon")).toHaveCount(3); await expect(page.locator(".contact-actions .contact-icon")).toHaveCount(3); await expect(page.locator(".contact-info .contact-icon")).toHaveCount(1); }); diff --git a/wordpress/theme/azionelab/front-page.php b/wordpress/theme/azionelab/front-page.php index 80f9ca8..e78c1fa 100644 --- a/wordpress/theme/azionelab/front-page.php +++ b/wordpress/theme/azionelab/front-page.php @@ -16,6 +16,7 @@ $social_links = array_values( array( array( 'label' => 'Instagram', 'url' => trim( azionelab_mod( 'contact_instagram' ) ), 'icon' => 'instagram' ), array( 'label' => 'Facebook', 'url' => trim( azionelab_mod( 'contact_facebook' ) ), 'icon' => 'facebook' ), + array( 'label' => 'YouTube', 'url' => trim( azionelab_mod( 'contact_youtube' ) ), 'icon' => 'youtube' ), ), static fn ( array $link ): bool => '' !== $link['url'] ) @@ -198,7 +199,7 @@ $social_links = array_values( - + diff --git a/wordpress/theme/azionelab/functions.php b/wordpress/theme/azionelab/functions.php index 172df3e..29d255b 100644 --- a/wordpress/theme/azionelab/functions.php +++ b/wordpress/theme/azionelab/functions.php @@ -31,6 +31,7 @@ function azionelab_defaults(): array { 'contact_whatsapp' => '+39 333 123 4567', 'contact_instagram' => 'https://instagram.com/', 'contact_facebook' => 'https://facebook.com/', + 'contact_youtube' => 'https://youtube.com/', 'contact_address' => "Via dell'Epomeo 9999, Napoli", 'footer_text' => 'Uno spazio aperto a chi desidera incontrare il teatro, insieme.', ); @@ -86,6 +87,10 @@ function azionelab_social_icon( string $network ): string { return ''; } + if ( 'youtube' === $network ) { + return ''; + } + return ''; } @@ -169,6 +174,7 @@ function azionelab_customize_register( WP_Customize_Manager $customizer ): void 'contact_whatsapp' => array( 'azionelab_contacts', 'WhatsApp', 'text' ), 'contact_instagram' => array( 'azionelab_contacts', 'Instagram', 'url' ), 'contact_facebook' => array( 'azionelab_contacts', 'Facebook', 'url' ), + 'contact_youtube' => array( 'azionelab_contacts', 'YouTube', 'url' ), 'contact_address' => array( 'azionelab_contacts', 'Indirizzo', 'text' ), 'footer_text' => array( 'azionelab_contacts', 'Testo footer', 'text' ), ); diff --git a/wordpress/theme/azionelab/style.css b/wordpress/theme/azionelab/style.css index e8d5f1b..fb14572 100644 --- a/wordpress/theme/azionelab/style.css +++ b/wordpress/theme/azionelab/style.css @@ -29,6 +29,7 @@ Text Domain: azionelab *, *::before, *::after { box-sizing: border-box; } html { scroll-behavior: smooth; } +.visually-hidden { position: absolute; overflow: hidden; width: 1px; height: 1px; padding: 0; border: 0; margin: -1px; clip: rect(0 0 0 0); white-space: nowrap; } body { margin: 0; color: var(--color-dark-text); @@ -180,24 +181,22 @@ blockquote { margin: 2rem 0 0; padding-left: 1.5rem; border-left: 3px solid var( .empty-state { padding: 2rem; border: 1px dashed var(--color-muted); border-radius: var(--radius); color: var(--color-muted); text-align: center; } .contacts { color: var(--color-bg-light); background: var(--color-dark); } .contacts .eyebrow { color: var(--color-primary-soft); } -.contacts .lead { color: rgba(255, 248, 239, 0.8); } +.contacts .lead { max-width: 38rem; color: rgba(255, 248, 239, 0.8); } .contact-grid { display: grid; gap: 2.5rem; } .contact-info { display: grid; position: relative; margin-top: 1.6rem; padding-left: 3rem; } .contact-info p { margin: 0; } .contact-info .contact-icon { top: 0.1rem; left: 0; color: var(--color-sand); } -.contact-actions { display: grid; gap: 0.8rem; } -.contact-action { display: grid; position: relative; padding: 1rem 1.1rem 1rem 4rem; border: 1px solid rgba(255,255,255,0.18); border-radius: 0.9rem; text-decoration: none; } +.contact-actions { display: grid; align-content: start; gap: 0.8rem; } +.contact-action { display: grid; position: relative; min-height: 5.75rem; padding: 1rem 1.1rem 1rem 4rem; border: 1px solid rgba(255,255,255,0.18); border-radius: 0.9rem; align-content: center; text-decoration: none; } .contact-action span { color: var(--color-sand); font-size: 0.78rem; text-transform: uppercase; } .contact-icon { position: absolute; top: 1rem; left: 1.1rem; width: 2rem; height: 2rem; color: var(--color-primary-soft); } .contact-icon-whatsapp { color: #25d366; } .social-promo { margin-top: 1.6rem; padding-top: 1.25rem; border-top: 1px solid rgba(255, 248, 239, 0.22); } .social-promo-title { margin-bottom: 0.8rem; color: var(--color-sand); font-size: 0.78rem; font-weight: 750; letter-spacing: 0.13em; text-transform: uppercase; } .social-links { display: flex; flex-wrap: wrap; gap: 0.75rem; } -.social-links a { display: inline-flex; min-height: 3.2rem; padding: 0.68rem 1rem; border: 1px solid rgba(255, 248, 239, 0.75); border-radius: 0.55rem; align-items: center; gap: 0.62rem; background: #fff8ef; color: var(--color-dark-text); font-size: 1.28rem; font-weight: 850; line-height: 1; text-decoration: none; box-shadow: 0 14px 32px rgba(29, 26, 23, 0.22); } -.social-link-instagram span { background: linear-gradient(135deg, #f58529 0%, #dd2a7b 48%, #8134af 100%); background-clip: text; color: transparent; font-family: "Brush Script MT", "Segoe Script", cursive; font-size: 1.55rem; font-weight: 700; } -.social-link-facebook span { color: #1877f2; font-family: var(--font-sans); font-size: 1.42rem; font-weight: 850; letter-spacing: -0.05em; } +.social-links a { display: inline-flex; width: 3.85rem; height: 3.85rem; border: 1px solid rgba(255, 248, 239, 0.7); border-radius: 0.75rem; align-items: center; justify-content: center; background: #fff8ef; color: var(--color-dark-text); line-height: 1; text-decoration: none; box-shadow: 0 14px 32px rgba(29, 26, 23, 0.18); } .social-links a:hover { background: white; transform: translateY(-2px); } -.social-icon { width: 1.85rem; height: 1.85rem; flex: 0 0 auto; } +.social-icon { width: 2.45rem; height: 2.45rem; flex: 0 0 auto; } .site-footer { padding-block: 2rem; color: #f7efe4; background: var(--color-dark-text); } .site-footer a { color: #fff8ef; } .footer-inner { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.75rem 1.5rem; font-size: 0.85rem; } @@ -236,7 +235,8 @@ blockquote { margin: 2rem 0 0; padding-left: 1.5rem; border-left: 3px solid var( .shows-grid { grid-template-columns: repeat(2, 1fr); } .gallery-grid { grid-template-columns: repeat(4, 1fr); } .gallery-item:nth-child(3n + 1) { grid-column: span 2; } - .contact-grid { grid-template-columns: 1fr 0.9fr; } + .contact-grid { grid-template-columns: minmax(0, 1fr) minmax(20rem, 0.78fr); align-items: center; } + .contact-actions { width: min(100%, 34rem); justify-self: end; } } @media (min-width: 64rem) {