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) {