Patches
This commit is contained in:
@@ -69,6 +69,48 @@ const Toast = (() => {
|
||||
return { show };
|
||||
})();
|
||||
|
||||
/* Equalize steps+image pattern column heights */
|
||||
(() => {
|
||||
const collectColumns = (layout) => {
|
||||
const inner = layout.querySelector(":scope > .wp-block-group__inner-container");
|
||||
if (inner) return Array.from(inner.children);
|
||||
return Array.from(layout.children);
|
||||
};
|
||||
|
||||
const hasTiles = (el) => !!el.querySelector(".grid.grid--4, .wp-block-group.grid.grid--4");
|
||||
const hasImage = (el) => !!el.querySelector(".wp-block-image img, img");
|
||||
|
||||
const equalize = () => {
|
||||
const layouts = $$(".section .grid.grid--2, .wp-block-group.section .wp-block-group.grid.grid--2");
|
||||
layouts.forEach((layout) => {
|
||||
const columns = collectColumns(layout).filter((el) => el.nodeType === 1);
|
||||
if (columns.length < 2) return;
|
||||
|
||||
const tilesCol = columns.find(hasTiles);
|
||||
const imageCol = columns.find((el) => el !== tilesCol && hasImage(el));
|
||||
if (!tilesCol || !imageCol) return;
|
||||
|
||||
tilesCol.style.minHeight = "";
|
||||
imageCol.style.minHeight = "";
|
||||
|
||||
const h = Math.max(tilesCol.offsetHeight, imageCol.offsetHeight);
|
||||
if (!h) return;
|
||||
tilesCol.style.minHeight = `${h}px`;
|
||||
imageCol.style.minHeight = `${h}px`;
|
||||
});
|
||||
};
|
||||
|
||||
let raf = 0;
|
||||
const schedule = () => {
|
||||
if (raf) cancelAnimationFrame(raf);
|
||||
raf = requestAnimationFrame(equalize);
|
||||
};
|
||||
|
||||
window.addEventListener("load", schedule);
|
||||
window.addEventListener("resize", schedule);
|
||||
schedule();
|
||||
})();
|
||||
|
||||
/* Clipboard copy helper */
|
||||
async function copyText(text, label="Kopiert.") {
|
||||
try {
|
||||
|
||||
@@ -1,7 +1,23 @@
|
||||
<?php if (!defined('ABSPATH')) exit; ?>
|
||||
|
||||
<footer class="footer">
|
||||
<span class="muted"><?php echo esc_html(get_bloginfo('name')); ?> · Theme v<?php echo esc_html(wp_get_theme()->get('Version')); ?></span>
|
||||
<div class="footer__inner">
|
||||
<nav class="footer__nav" aria-label="<?php esc_attr_e('Footer Navigation', 'juconnect'); ?>">
|
||||
<?php if (has_nav_menu('footer')): ?>
|
||||
<div class="navgroup__title"><?php esc_html_e('Quick Links', 'juconnect'); ?></div>
|
||||
<?php endif; ?>
|
||||
<?php
|
||||
wp_nav_menu([
|
||||
'theme_location' => 'footer',
|
||||
'container' => false,
|
||||
'menu_class' => 'footer__menu',
|
||||
'fallback_cb' => false,
|
||||
'depth' => 1,
|
||||
]);
|
||||
?>
|
||||
</nav>
|
||||
<span class="muted"><?php echo esc_html(get_bloginfo('name')); ?> - Theme v<?php echo esc_html(wp_get_theme()->get('Version')); ?></span>
|
||||
</div>
|
||||
</footer>
|
||||
</main>
|
||||
</div>
|
||||
|
||||
@@ -19,9 +19,17 @@ function juconnect_setup() {
|
||||
add_action('after_setup_theme', 'juconnect_setup');
|
||||
|
||||
function juconnect_assets() {
|
||||
$ver = wp_get_theme()->get('Version');
|
||||
wp_enqueue_style('juconnect-style', get_stylesheet_uri(), [], $ver);
|
||||
wp_enqueue_script('juconnect-app', get_template_directory_uri().'/assets/js/app.js', [], $ver, true);
|
||||
$theme_ver = wp_get_theme()->get('Version');
|
||||
$style_ver = filemtime(get_stylesheet_directory() . '/style.css');
|
||||
$script_ver = filemtime(get_template_directory() . '/assets/js/app.js');
|
||||
if (!$style_ver) {
|
||||
$style_ver = $theme_ver;
|
||||
}
|
||||
if (!$script_ver) {
|
||||
$script_ver = $theme_ver;
|
||||
}
|
||||
wp_enqueue_style('juconnect-style', get_stylesheet_uri(), [], $style_ver);
|
||||
wp_enqueue_script('juconnect-app', get_template_directory_uri().'/assets/js/app.js', [], $script_ver, true);
|
||||
}
|
||||
add_action('wp_enqueue_scripts', 'juconnect_assets');
|
||||
|
||||
@@ -68,7 +76,7 @@ function juconnect_render_sidenav_nav() {
|
||||
|
||||
// Add styleguide classes to WP menus
|
||||
function juconnect_nav_link_attributes($atts, $item, $args, $depth){
|
||||
if (!empty($args->theme_location) && $args->theme_location === 'primary'){
|
||||
if (!empty($args->theme_location) && in_array($args->theme_location, ['primary', 'footer'], true)){
|
||||
$existing = isset($atts['class']) ? $atts['class'].' ' : '';
|
||||
$atts['class'] = $existing . 'navlink';
|
||||
}
|
||||
|
||||
@@ -339,7 +339,14 @@ a{ color: inherit; }
|
||||
}
|
||||
|
||||
/* Sections */
|
||||
.section{ margin: 0 0 var(--s6) 0; }
|
||||
.section{
|
||||
margin: 0 0 var(--s6) 0;
|
||||
padding-bottom: var(--s4);
|
||||
}
|
||||
.wp-block-group.section{
|
||||
padding-bottom: var(--s4);
|
||||
margin-bottom: var(--s4) !important;
|
||||
}
|
||||
.section__head{ margin-bottom: var(--s4); }
|
||||
.main .wp-block-group.section{
|
||||
width: 100%;
|
||||
@@ -355,6 +362,45 @@ a{ color: inherit; }
|
||||
padding-top: var(--s4);
|
||||
border-top: 1px solid var(--line);
|
||||
}
|
||||
.footer__inner{
|
||||
display: flex;
|
||||
align-items: flex-end;
|
||||
justify-content: space-between;
|
||||
gap: var(--s3);
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
.footer__nav{
|
||||
min-width: 0;
|
||||
}
|
||||
.footer__menu{
|
||||
list-style: none;
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
flex-wrap: wrap;
|
||||
gap: 6px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
.footer__menu > li{
|
||||
margin: 0;
|
||||
}
|
||||
.footer__menu a.navlink{
|
||||
padding: 8px 10px;
|
||||
border-radius: 10px;
|
||||
}
|
||||
.footer__menu .current-menu-item > a.navlink,
|
||||
.footer__menu .current-page-ancestor > a.navlink{
|
||||
background: rgba(29,53,79,.10);
|
||||
border-color: rgba(29,53,79,.18);
|
||||
color: var(--text);
|
||||
}
|
||||
|
||||
@media (max-width: 760px){
|
||||
.footer__inner{
|
||||
flex-direction: column;
|
||||
align-items: flex-start;
|
||||
}
|
||||
}
|
||||
|
||||
/* Typography helpers */
|
||||
.h1{ font-size: var(--fs-1); line-height: var(--lh-tight); margin: 0 0 var(--s2) 0; }
|
||||
@@ -381,6 +427,77 @@ a{ color: inherit; }
|
||||
.wp-block-group.grid.grid--2 > .wp-block-group__inner-container{ grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
|
||||
.wp-block-group.grid.grid--3 > .wp-block-group__inner-container{ grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
|
||||
.wp-block-group.grid.grid--4 > .wp-block-group__inner-container{ grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
|
||||
.wp-block-group.grid.grid--2 > .wp-block-group__inner-container{
|
||||
align-items: stretch !important;
|
||||
}
|
||||
.grid.grid--2{
|
||||
align-items: stretch !important;
|
||||
}
|
||||
.grid.grid--2 > .wp-block-group,
|
||||
.grid.grid--2 > .card{
|
||||
height: 100% !important;
|
||||
align-self: stretch !important;
|
||||
}
|
||||
.grid.grid--2 > .wp-block-group{
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
.grid.grid--2 > .wp-block-group > .grid{
|
||||
flex: 1;
|
||||
}
|
||||
.grid.grid--4 > .card{
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
.wp-block-group.grid.grid--2 > .wp-block-group__inner-container > .wp-block-group{
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
height: 100% !important;
|
||||
align-self: stretch !important;
|
||||
}
|
||||
.wp-block-group.grid.grid--2 > .wp-block-group__inner-container > .wp-block-group > .wp-block-group__inner-container{
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
height: 100% !important;
|
||||
}
|
||||
.wp-block-group.grid.grid--2 > .wp-block-group__inner-container > .wp-block-group > .wp-block-group.grid{
|
||||
flex: 1;
|
||||
}
|
||||
.wp-block-group.grid.grid--2 > .wp-block-group__inner-container > .wp-block-group > .wp-block-group__inner-container > .wp-block-group.grid{
|
||||
flex: 1;
|
||||
}
|
||||
.wp-block-group.grid.grid--2 > .wp-block-group__inner-container > .wp-block-group > .wp-block-group__inner-container > .wp-block-group.grid > .wp-block-group__inner-container{
|
||||
height: 100%;
|
||||
}
|
||||
.wp-block-group.grid.grid--4 > .wp-block-group__inner-container > .card{
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
.wp-block-group.grid.grid--2 > .wp-block-group__inner-container > .card{
|
||||
height: 100% !important;
|
||||
align-self: stretch !important;
|
||||
}
|
||||
.main .wp-block-group.section + .wp-block-group.section{
|
||||
margin-top: var(--s4);
|
||||
}
|
||||
.main .wp-block-group.section + .section{
|
||||
margin-top: var(--s4);
|
||||
}
|
||||
|
||||
/* Fallback for pages built with core Columns instead of grid classes */
|
||||
.section .wp-block-columns{
|
||||
align-items: stretch !important;
|
||||
}
|
||||
.section .wp-block-column{
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
.section .wp-block-column > .wp-block-group,
|
||||
.section .wp-block-column > .card{
|
||||
height: 100% !important;
|
||||
}
|
||||
.section > .grid + .grid{ margin-top: var(--s4); }
|
||||
.section > .grid + .card,
|
||||
.section > .card + .grid{ margin-top: var(--s4); }
|
||||
@@ -919,7 +1036,7 @@ a{ color: inherit; }
|
||||
.topnav__submenu{
|
||||
list-style:none;
|
||||
position:absolute;
|
||||
top: calc(100% + 8px);
|
||||
top: 100%;
|
||||
right: 0;
|
||||
min-width: 240px;
|
||||
margin: 0;
|
||||
@@ -930,7 +1047,8 @@ a{ color: inherit; }
|
||||
box-shadow: var(--shadow);
|
||||
display:none;
|
||||
}
|
||||
.topnav__list li:hover > .topnav__submenu{ display:block; }
|
||||
.topnav__list li:hover > .topnav__submenu,
|
||||
.topnav__list li:focus-within > .topnav__submenu{ display:block; }
|
||||
.topnav__submenu a.navlink{
|
||||
display:flex;
|
||||
width: 100%;
|
||||
@@ -938,6 +1056,24 @@ a{ color: inherit; }
|
||||
border-radius: 12px;
|
||||
}
|
||||
|
||||
/* Touch devices don't have hover; expose submenus inline for reliable access */
|
||||
@media (hover: none){
|
||||
.topnav__list > li{ width: 100%; }
|
||||
.topnav__list a.navlink{ width: 100%; }
|
||||
.topnav__submenu{
|
||||
position: static;
|
||||
display: block;
|
||||
min-width: 0;
|
||||
margin-top: 4px;
|
||||
padding: 4px 0 0 12px;
|
||||
border: 0;
|
||||
border-left: 1px solid var(--line);
|
||||
border-radius: 0;
|
||||
background: transparent;
|
||||
box-shadow: none;
|
||||
}
|
||||
}
|
||||
|
||||
/* Hide original sidenav if any page still contains it */
|
||||
.sidenav{ display:none !important; }
|
||||
|
||||
@@ -989,7 +1125,7 @@ a{ color: inherit; }
|
||||
.wp-block-buttons .wp-block-button{ margin: 0; }
|
||||
|
||||
/* Groups: don't add unexpected margins that break cards/grids */
|
||||
.wp-block-group{ margin: 0; }
|
||||
.wp-block-group:not(.section){ margin: 0; }
|
||||
|
||||
/* Images: prevent WP default inline styles from breaking rounded cards */
|
||||
.wp-block-image img{ max-width: 100%; height: auto; }
|
||||
|
||||
Reference in New Issue
Block a user