Changeset 357536
- Timestamp:
- 11/06/2026 04:58:43 AM (33 hours ago)
- Location:
- stackwise/1.2.1
- Files:
-
- 24 edited
- 1 copied
-
. (copied) (copied from stackwise/1.2.0 )
-
404.php (modified) (2 diffs)
-
archive.php (modified) (1 diff)
-
assets/css/editor-style.css (modified) (6 diffs)
-
assets/js/navigation.js (modified) (3 diffs)
-
assets/js/theme-toggle.js (modified) (4 diffs)
-
front-page.php (modified) (1 diff)
-
functions.php (modified) (7 diffs)
-
header.php (modified) (2 diffs)
-
inc/block-patterns.php (modified) (8 diffs)
-
inc/customizer.php (modified) (5 diffs)
-
inc/template-functions.php (modified) (1 diff)
-
inc/template-tags.php (modified) (2 diffs)
-
index.php (modified) (1 diff)
-
languages/stackwise.pot (modified) (10 diffs)
-
page.php (modified) (1 diff)
-
readme.txt (modified) (4 diffs)
-
search.php (modified) (1 diff)
-
searchform.php (modified) (1 diff)
-
single.php (modified) (1 diff)
-
style.css (modified) (23 diffs)
-
template-contact.php (modified) (1 diff)
-
template-parts/homepage/blog-preview.php (modified) (1 diff)
-
template-parts/homepage/hero.php (modified) (2 diffs)
-
template-parts/homepage/page-section.php (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
stackwise/1.2.1/404.php
r351334 r357536 12 12 ?> 13 13 14 <main id="primary" class="site-main" role="main" >14 <main id="primary" class="site-main" role="main" tabindex="-1"> 15 15 <div class="sw-container"> 16 16 <section class="error-404 not-found"> … … 27 27 <div class="sw-404-actions"> 28 28 <a href="<?php echo esc_url( home_url( '/' ) ); ?>" class="sw-btn sw-btn-primary"> 29 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" >29 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"> 30 30 <path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"></path> 31 31 <polyline points="9 22 9 12 15 12 15 22"></polyline> -
stackwise/1.2.1/archive.php
r351334 r357536 12 12 ?> 13 13 14 <main id="primary" class="site-main" role="main" >14 <main id="primary" class="site-main" role="main" tabindex="-1"> 15 15 <div class="sw-container"> 16 16 <?php get_template_part( 'template-parts/archive-header' ); ?> -
stackwise/1.2.1/assets/css/editor-style.css
r351334 r357536 484 484 } 485 485 486 /* Button: Outline */487 .wp-block-button.is-style-s w-outline .wp-block-button__link {486 /* Button: Outline Accent (stackwise-outline) */ 487 .wp-block-button.is-style-stackwise-outline .wp-block-button__link { 488 488 border: 1px solid currentColor; 489 489 background-color: transparent; … … 491 491 } 492 492 493 .wp-block-button.is-style-s w-outline .wp-block-button__link:hover,494 .wp-block-button.is-style-s w-outline .wp-block-button__link:focus {493 .wp-block-button.is-style-stackwise-outline .wp-block-button__link:hover, 494 .wp-block-button.is-style-stackwise-outline .wp-block-button__link:focus { 495 495 background-color: var(--sw-color-bg-secondary); 496 496 color: var(--sw-color-accent); … … 498 498 499 499 /* Paragraph: Terminal */ 500 p.is-style-s w-terminal {500 p.is-style-stackwise-terminal { 501 501 padding: 0.5em 1em; 502 502 border-left: 3px solid var(--sw-color-accent); … … 509 509 510 510 /* Group: Card */ 511 .wp-block-group.is-style-s w-card {511 .wp-block-group.is-style-stackwise-card { 512 512 padding: var(--sw-spacing-lg); 513 513 border: 1px solid var(--sw-color-border); … … 517 517 518 518 /* Quote: Accent Border */ 519 .wp-block-quote.is-style-s w-accent {519 .wp-block-quote.is-style-stackwise-accent { 520 520 padding: var(--sw-spacing-md) var(--sw-spacing-lg); 521 521 border-left: 4px solid var(--sw-color-accent); … … 525 525 } 526 526 527 .wp-block-quote.is-style-s w-accent cite {527 .wp-block-quote.is-style-stackwise-accent cite { 528 528 font-size: var(--sw-font-size-sm); 529 529 color: var(--sw-color-text-muted); -
stackwise/1.2.1/assets/js/navigation.js
r351334 r357536 6 6 * - Updating aria-expanded on the toggle button 7 7 * - Closing the menu when the Escape key is pressed 8 * - Keeping keyboard focus inside the open toggle menu and the dark mode toggle 8 9 * - Closing the menu when a click occurs outside the nav 9 10 * - Collapsing the desktop menu into the toggle when its items do not fit … … 83 84 84 85 // ------------------------------------------------------------------------- 86 // Keep keyboard focus inside the open toggle menu 87 // 88 // The cycle is: menu toggle, the visible menu links, then the dark mode 89 // toggle (it stays visible in the header while the menu is open). Tab on 90 // the last control goes back to the menu toggle and Shift+Tab on the menu 91 // toggle goes to the last control, so focus never moves into the page 92 // behind the menu. 93 // ------------------------------------------------------------------------- 94 var themeToggle = document.getElementById( 'theme-toggle' ); 95 96 function isVisible( el ) { 97 return el.offsetWidth > 0 || el.offsetHeight > 0; 98 } 99 100 document.addEventListener( 'keydown', function ( event ) { 101 if ( 'Tab' !== event.key || ! isOpen() ) { 102 return; 103 } 104 105 var controls = [ menuToggle ].concat( 106 Array.prototype.filter.call( 107 primaryMenu.querySelectorAll( 'a[href], button:not([disabled])' ), 108 isVisible 109 ) 110 ); 111 112 if ( themeToggle && isVisible( themeToggle ) ) { 113 controls.push( themeToggle ); 114 } 115 116 var first = controls[ 0 ]; 117 var last = controls[ controls.length - 1 ]; 118 var active = document.activeElement; 119 120 if ( event.shiftKey && active === first ) { 121 event.preventDefault(); 122 last.focus(); 123 } else if ( ! event.shiftKey && active === last ) { 124 event.preventDefault(); 125 first.focus(); 126 } else if ( -1 === controls.indexOf( active ) ) { 127 event.preventDefault(); 128 first.focus(); 129 } 130 } ); 131 132 // ------------------------------------------------------------------------- 85 133 // Close when clicking outside the nav 86 134 // ------------------------------------------------------------------------- … … 101 149 102 150 document.body.classList.remove( 'sw-nav-collapsed' ); 151 document.body.classList.add( 'sw-nav-measuring' ); 152 153 // Hidden sub-menus are positioned outside the header and would add to 154 // its scroll width, so take them out of the layout while measuring. 155 // Nothing is painted in between, so this causes no flicker. 156 var subMenus = primaryMenu.querySelectorAll( '.sub-menu, .children' ); 157 158 Array.prototype.forEach.call( subMenus, function ( subMenu ) { 159 subMenu.style.display = 'none'; 160 } ); 103 161 104 162 var overflows = wideScreen.matches && headerInner.scrollWidth > headerInner.clientWidth; 163 164 Array.prototype.forEach.call( subMenus, function ( subMenu ) { 165 subMenu.style.display = ''; 166 } ); 167 document.body.classList.remove( 'sw-nav-measuring' ); 105 168 106 169 if ( overflows ) { -
stackwise/1.2.1/assets/js/theme-toggle.js
r315795 r357536 53 53 54 54 /** 55 * Return a translated fallback label passed from PHP (stackwiseToggle). 56 * 57 * @param {string} key 'labelDark' or 'labelLight'. 58 * @return {string} 59 */ 60 function getLabel( key ) { 61 return ( window.stackwiseToggle && window.stackwiseToggle[ key ] ) || ''; 62 } 63 64 /** 55 65 * Apply a theme by setting / removing data-theme on <html>. 56 66 * … … 70 80 'aria-label', 71 81 toggleButton.getAttribute( 'data-label-dark' ) || 72 'Switch to dark mode'82 getLabel( 'labelDark' ) 73 83 ); 74 84 } else { … … 76 86 'aria-label', 77 87 toggleButton.getAttribute( 'data-label-light' ) || 78 'Switch to light mode'88 getLabel( 'labelLight' ) 79 89 ); 80 90 } … … 93 103 } 94 104 95 // Apply saved preference immediately (before the first paint). 105 // Apply the saved preference. An inline script in wp_head already set 106 // data-theme before the first paint; this also updates the button label. 96 107 var savedTheme = getSavedTheme(); 97 108 if ( savedTheme ) { -
stackwise/1.2.1/front-page.php
r351334 r357536 21 21 ?> 22 22 23 <main id="primary" class="site-main sw-front-page" role="main" >23 <main id="primary" class="site-main sw-front-page" role="main" tabindex="-1"> 24 24 25 25 <?php -
stackwise/1.2.1/functions.php
r351334 r357536 16 16 * Define theme constants 17 17 */ 18 define( 'STACKWISE_VERSION', '1.2. 0' );18 define( 'STACKWISE_VERSION', '1.2.1' ); 19 19 define( 'STACKWISE_DIR', get_template_directory() ); 20 20 define( 'STACKWISE_URI', get_template_directory_uri() ); … … 46 46 set_post_thumbnail_size( 1200, 750, true ); 47 47 48 // Add custom image sizes. 48 // Add custom image sizes. stackwise-project is used by the Projects section of the Stackwise Companion plugin. 49 49 add_image_size( 'stackwise-project', 800, 500, true ); 50 50 add_image_size( 'stackwise-blog', 600, 400, true ); … … 229 229 ); 230 230 231 // Fallback labels for the toggle button, used if its data attributes are missing. 232 wp_localize_script( 233 'stackwise-theme-toggle', 234 'stackwiseToggle', 235 array( 236 'labelDark' => __( 'Switch to dark mode', 'stackwise' ), 237 'labelLight' => __( 'Switch to light mode', 'stackwise' ), 238 ) 239 ); 240 231 241 // Typing effect (only on front page). 232 242 if ( is_front_page() ) { … … 257 267 258 268 /** 269 * Apply the saved or system light mode before the first paint. 270 * 271 * The theme-toggle.js script loads in the footer, so without this script visitors 272 * who chose light mode would briefly see the dark default. The script is a 273 * fixed string and contains no user data. 274 */ 275 function stackwise_print_theme_mode_script() { 276 wp_print_inline_script_tag( 277 "(function(){try{var t=localStorage.getItem('stackwise-theme');if('light'===t||(!t&&window.matchMedia&&window.matchMedia('(prefers-color-scheme: light)').matches)){document.documentElement.setAttribute('data-theme','light');}}catch(e){}}());" 278 ); 279 } 280 add_action( 'wp_head', 'stackwise_print_theme_mode_script', 1 ); 281 282 /** 259 283 * Get Google Fonts URL 260 284 * … … 280 304 281 305 /** 306 * Default lines for the hero typing effect, one per line. 307 * 308 * @return string Translated default lines separated by new lines. 309 */ 310 function stackwise_get_default_typing_text() { 311 return implode( 312 "\n", 313 array( 314 __( 'Full Stack Developer', 'stackwise' ), 315 __( 'Frontend Engineer', 'stackwise' ), 316 __( 'Backend Developer', 'stackwise' ), 317 __( 'UI/UX Enthusiast', 'stackwise' ), 318 ) 319 ); 320 } 321 322 /** 282 323 * Get typing effect strings from customizer 283 324 * … … 285 326 */ 286 327 function stackwise_get_typing_strings() { 287 $strings = get_theme_mod( 'stackwise_hero_typing_text', "Full Stack Developer\nFrontend Engineer\nBackend Developer\nUI/UX Enthusiast");328 $strings = get_theme_mod( 'stackwise_hero_typing_text', stackwise_get_default_typing_text() ); 288 329 return array_map( 'trim', explode( "\n", $strings ) ); 289 330 } … … 500 541 } 501 542 add_filter( 'excerpt_more', 'stackwise_excerpt_more' ); 502 503 /**504 * Enqueue block editor assets505 */506 function stackwise_block_editor_assets() {507 wp_enqueue_style(508 'stackwise-editor-style',509 STACKWISE_URI . '/assets/css/editor-style.css',510 array(),511 STACKWISE_VERSION512 );513 }514 add_action( 'enqueue_block_editor_assets', 'stackwise_block_editor_assets' ); -
stackwise/1.2.1/header.php
r351334 r357536 72 72 73 73 <button class="theme-toggle" id="theme-toggle" aria-label="<?php esc_attr_e( 'Toggle dark/light mode', 'stackwise' ); ?>" data-label-dark="<?php esc_attr_e( 'Switch to dark mode', 'stackwise' ); ?>" data-label-light="<?php esc_attr_e( 'Switch to light mode', 'stackwise' ); ?>"> 74 <svg class="sun-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" >74 <svg class="sun-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"> 75 75 <circle cx="12" cy="12" r="5"></circle> 76 76 <line x1="12" y1="1" x2="12" y2="3"></line> … … 83 83 <line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line> 84 84 </svg> 85 <svg class="moon-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" >85 <svg class="moon-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"> 86 86 <path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path> 87 87 </svg> -
stackwise/1.2.1/inc/block-patterns.php
r351334 r357536 39 39 $items = ''; 40 40 foreach ( $group['items'] as $item ) { 41 $items .= '< li>' . esc_html( $item ) . '</li>';41 $items .= '<!-- wp:list-item --><li>' . esc_html( $item ) . '</li><!-- /wp:list-item -->'; 42 42 } 43 43 $columns .= '<!-- wp:column {"className":"sw-skill-card"} --><div class="wp-block-column sw-skill-card">' … … 86 86 'categories' => array( 'stackwise' ), 87 87 'content' => '<!-- wp:group {"className":"sw-pattern-intro","layout":{"type":"constrained"}} --><div class="wp-block-group sw-pattern-intro">' 88 . '<!-- wp:paragraph {"className":"is-style-s w-terminal"} --><p class="is-style-sw-terminal">' . esc_html__( '> Hello, world', 'stackwise' ) . '</p><!-- /wp:paragraph -->'88 . '<!-- wp:paragraph {"className":"is-style-stackwise-terminal"} --><p class="is-style-stackwise-terminal">' . esc_html__( '> Hello, world', 'stackwise' ) . '</p><!-- /wp:paragraph -->' 89 89 . '<!-- wp:heading --><h2 class="wp-block-heading">' . esc_html__( 'I build fast, accessible websites', 'stackwise' ) . '</h2><!-- /wp:heading -->' 90 90 . '<!-- wp:paragraph {"className":"sw-lead"} --><p class="sw-lead">' . esc_html__( 'Full stack developer working with WordPress, PHP and JavaScript. I care about clean code and interfaces that work for everyone.', 'stackwise' ) . '</p><!-- /wp:paragraph -->' 91 91 . '<!-- wp:buttons --><div class="wp-block-buttons">' 92 92 . '<!-- wp:button --><div class="wp-block-button"><a class="wp-block-button__link wp-element-button">' . esc_html__( 'See my work', 'stackwise' ) . '</a></div><!-- /wp:button -->' 93 . '<!-- wp:button {"className":"is-style-s w-outline"} --><div class="wp-block-button is-style-sw-outline"><a class="wp-block-button__link wp-element-button">' . esc_html__( 'Contact me', 'stackwise' ) . '</a></div><!-- /wp:button -->'93 . '<!-- wp:button {"className":"is-style-stackwise-outline"} --><div class="wp-block-button is-style-stackwise-outline"><a class="wp-block-button__link wp-element-button">' . esc_html__( 'Contact me', 'stackwise' ) . '</a></div><!-- /wp:button -->' 94 94 . '</div><!-- /wp:buttons -->' 95 95 . '</div><!-- /wp:group -->', … … 115 115 'description' => esc_html__( 'A card with a project name, a short description, technology tags and a link.', 'stackwise' ), 116 116 'categories' => array( 'stackwise' ), 117 'content' => '<!-- wp:group {"className":"is-style-s w-card sw-project-card-pattern"} --><div class="wp-block-group is-style-sw-card sw-project-card-pattern">'117 'content' => '<!-- wp:group {"className":"is-style-stackwise-card sw-project-card-pattern"} --><div class="wp-block-group is-style-stackwise-card sw-project-card-pattern">' 118 118 . '<!-- wp:heading {"level":3} --><h3 class="wp-block-heading">' . esc_html__( 'Project name', 'stackwise' ) . '</h3><!-- /wp:heading -->' 119 119 . '<!-- wp:paragraph --><p>' . esc_html__( 'What the project does, the problem it solves and your role in it.', 'stackwise' ) . '</p><!-- /wp:paragraph -->' 120 120 . '<!-- wp:paragraph {"className":"sw-tech-tags"} --><p class="sw-tech-tags"><code>React</code> <code>Node.js</code> <code>PostgreSQL</code></p><!-- /wp:paragraph -->' 121 121 . '<!-- wp:buttons --><div class="wp-block-buttons">' 122 . '<!-- wp:button {"className":"is-style-s w-outline"} --><div class="wp-block-button is-style-sw-outline"><a class="wp-block-button__link wp-element-button">' . esc_html__( 'View project', 'stackwise' ) . '</a></div><!-- /wp:button -->'122 . '<!-- wp:button {"className":"is-style-stackwise-outline"} --><div class="wp-block-button is-style-stackwise-outline"><a class="wp-block-button__link wp-element-button">' . esc_html__( 'View project', 'stackwise' ) . '</a></div><!-- /wp:button -->' 123 123 . '</div><!-- /wp:buttons -->' 124 124 . '</div><!-- /wp:group -->', … … 179 179 'description' => esc_html__( 'A quote from a client or colleague with their name.', 'stackwise' ), 180 180 'categories' => array( 'stackwise' ), 181 'content' => '<!-- wp:quote {"className":"is-style-s w-accent"} --><blockquote class="wp-block-quote is-style-sw-accent">'181 'content' => '<!-- wp:quote {"className":"is-style-stackwise-accent"} --><blockquote class="wp-block-quote is-style-stackwise-accent">' 182 182 . '<!-- wp:paragraph --><p>' . esc_html__( 'Add a short quote from someone you have worked with.', 'stackwise' ) . '</p><!-- /wp:paragraph -->' 183 183 . '<cite>' . esc_html__( 'Name, role and company', 'stackwise' ) . '</cite></blockquote><!-- /wp:quote -->', … … 195 195 'core/button', 196 196 array( 197 'name' => 's w-outline',198 'label' => esc_html__( 'Outline ', 'stackwise' ),197 'name' => 'stackwise-outline', 198 'label' => esc_html__( 'Outline Accent', 'stackwise' ), 199 199 ) 200 200 ); … … 203 203 'core/paragraph', 204 204 array( 205 'name' => 's w-terminal',205 'name' => 'stackwise-terminal', 206 206 'label' => esc_html__( 'Terminal', 'stackwise' ), 207 207 ) … … 211 211 'core/group', 212 212 array( 213 'name' => 's w-card',213 'name' => 'stackwise-card', 214 214 'label' => esc_html__( 'Card', 'stackwise' ), 215 215 ) … … 219 219 'core/quote', 220 220 array( 221 'name' => 's w-accent',221 'name' => 'stackwise-accent', 222 222 'label' => esc_html__( 'Accent Border', 'stackwise' ), 223 223 ) -
stackwise/1.2.1/inc/customizer.php
r351334 r357536 184 184 'stackwise_hero_typing_text', 185 185 array( 186 'default' => "Full Stack Developer\nFrontend Engineer\nBackend Developer\nUI/UX Enthusiast",186 'default' => stackwise_get_default_typing_text(), 187 187 'sanitize_callback' => 'sanitize_textarea_field', 188 188 ) … … 506 506 array( 507 507 'default' => 3, 508 'sanitize_callback' => ' absint',508 'sanitize_callback' => 'stackwise_sanitize_blog_posts_count', 509 509 ) 510 510 ); … … 518 518 'input_attrs' => array( 519 519 'min' => 1, 520 'max' => 6,520 'max' => 20, 521 521 ), 522 522 ) … … 600 600 601 601 /** 602 * Sanitize checkbox values. 603 * 604 * @param bool$checked Whether the checkbox is checked.602 * Sanitize checkbox values. Accepts true, 1, '1' and 'true' as checked. 603 * 604 * @param mixed $checked Whether the checkbox is checked. 605 605 * @return bool 606 606 */ 607 607 function stackwise_sanitize_checkbox( $checked ) { 608 return ( ( isset( $checked ) && true === $checked ) ? true : false);608 return rest_sanitize_boolean( $checked ); 609 609 } 610 610 … … 630 630 return in_array( $value, array( 3, 6, 9 ), true ) ? $value : 3; 631 631 } 632 633 /** 634 * Sanitize the number of posts in the Latest Articles section: 1 to 20. 635 * 636 * @param mixed $value Number of posts. 637 * @return int 638 */ 639 function stackwise_sanitize_blog_posts_count( $value ) { 640 return min( 20, max( 1, absint( $value ) ) ); 641 } -
stackwise/1.2.1/inc/template-functions.php
r351334 r357536 31 31 } 32 32 add_filter( 'nav_menu_css_class', 'stackwise_nav_menu_item_classes', 10, 3 ); 33 34 /**35 * Display the archive description or term description.36 *37 * Used in archive.php and search.php.38 *39 * @return void40 */41 function stackwise_archive_description() {42 if ( is_search() ) {43 printf(44 /* translators: %s: search query. */45 '<p>' . esc_html__( 'Search results for: %s', 'stackwise' ) . '</p>',46 '<strong>' . esc_html( get_search_query() ) . '</strong>'47 );48 return;49 }50 51 $description = get_the_archive_description();52 if ( $description ) {53 echo '<div class="archive-description">' . wp_kses_post( $description ) . '</div>';54 }55 }56 57 /**58 * Return a human-readable relative date for recent posts (e.g. "3 days ago")59 * and a formatted date for older posts.60 *61 * @return string Formatted date string.62 */63 function stackwise_get_relative_date() {64 $post_date = get_the_time( 'U' );65 $now = current_time( 'timestamp' ); // phpcs:ignore WordPress.DateTime.CurrentTimeTimestamp.Requested66 $diff = $now - $post_date;67 $days = floor( $diff / DAY_IN_SECONDS );68 69 if ( $days < 1 ) {70 return esc_html__( 'Today', 'stackwise' );71 } elseif ( $days < 7 ) {72 /* translators: %d: number of days */73 return sprintf( esc_html( _n( '%d day ago', '%d days ago', $days, 'stackwise' ) ), $days );74 }75 76 return esc_html( get_the_date() );77 }78 79 /**80 * Get post reading time estimate.81 *82 * Alias kept for templates that may call this directly. Prints the value.83 *84 * @return void85 */86 function stackwise_reading_time() {87 echo esc_html( stackwise_get_reading_time() );88 } -
stackwise/1.2.1/inc/template-tags.php
r351334 r357536 219 219 'twitter' => array( 220 220 'label' => __( 'Twitter', 'stackwise' ), 221 'icon' => '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 4l11.733 16h4.267l-11.733 -16 z"></path><path d="M4 20l6.768 -6.768m2.46 -2.46l6.772 -6.772"></path></svg>',221 'icon' => '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 4l11.733 16h4.267l-11.733 -16l-4.267 0"></path><path d="M4 20l6.768 -6.768m2.46 -2.46l6.772 -6.772"></path></svg>', 222 222 ), 223 223 'instagram' => array( … … 231 231 'devto' => array( 232 232 'label' => __( 'Dev.to', 'stackwise' ), 233 'icon' => '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path d="M7.42 10.05c-.18-.16-.46-.23-.84-.23H6 v4.36h.58c.37 0 .65-.08.84-.23.21-.17.31-.45.31-.87v-2.15c0-.43-.1-.71-.31-.88zM20.57 3H3.43C2.64 3 2 3.64 2 4.43v15.14c0 .79.64 1.43 1.43 1.43h17.14c.79 0 1.43-.64 1.43-1.43V4.43c0-.79-.64-1.43-1.43-1.43zM8.93 14.27c0 .9-.56 2.27-2.34 2.27H4.68V7.46h1.98c1.67 0 2.27 1.3 2.27 2.23v4.58zm4.09-4.2H10.9v1.81h1.29v1.4H10.9v1.81h2.12v1.4H10.2a.66.66 0 01-.66-.66V8.12c0-.36.3-.66.66-.66h2.82v1.4h-.01zm5.69 5.54c-.55 1.2-1.27 1.38-2.06 1.38-.79 0-1.49-.44-1.86-1.38l-1.62-6.14h1.62l1.11 4.81 1.11-4.81h1.6l-1.62 6.14h.72z"/></svg>',233 'icon' => '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path d="M7.42 10.05c-.18-.16-.46-.23-.84-.23H6l.02 2.44.04 2.45.56-.02c.41 0 .63-.07.83-.26.24-.24.26-.36.26-2.2 0-1.91-.02-1.96-.29-2.18zM0 4.94v14.12h24V4.94H0zM8.56 15.3c-.44.58-1.06.77-2.53.77H4.71V8.53h1.4c1.67 0 2.16.18 2.6.9.27.43.29.6.32 2.57.05 2.23-.02 2.73-.47 3.3zm5.09-5.47h-2.47v1.77h1.52v1.28l-.72.04-.75.03v1.77l1.22.03 1.2.04v1.28h-1.6c-1.53 0-1.6-.01-1.87-.3l-.3-.28v-3.16c0-3.02.01-3.18.25-3.48.23-.31.25-.31 1.88-.31h1.64v1.3zm4.68 5.45c-.17.43-.64.79-1 .79-.18 0-.45-.15-.67-.39-.32-.32-.45-.63-.82-2.08l-.9-3.39-.45-1.67h.76c.4 0 .75.02.75.05 0 .06 1.16 4.54 1.26 4.83.04.15.32-.7.73-2.3l.66-2.52.74-.04c.4-.02.73 0 .73.04 0 .14-1.67 6.38-1.8 6.68z"></path></svg>', 234 234 ), 235 235 'codepen' => array( -
stackwise/1.2.1/index.php
r351334 r357536 16 16 ?> 17 17 18 <main id="primary" class="site-main" role="main" >18 <main id="primary" class="site-main" role="main" tabindex="-1"> 19 19 <div class="sw-container"> 20 20 <?php get_template_part( 'template-parts/archive-header' ); ?> -
stackwise/1.2.1/languages/stackwise.pot
r351334 r357536 3 3 msgid "" 4 4 msgstr "" 5 "Project-Id-Version: Stackwise 1.2. 0\n"5 "Project-Id-Version: Stackwise 1.2.1\n" 6 6 "Report-Msgid-Bugs-To: https://wordpress.org/support/theme/stackwise\n" 7 7 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" … … 10 10 "Content-Type: text/plain; charset=UTF-8\n" 11 11 "Content-Transfer-Encoding: 8bit\n" 12 "POT-Creation-Date: 2026- 09-29T05:40:47+00:00\n"12 "POT-Creation-Date: 2026-10-12T06:13:38+00:00\n" 13 13 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 14 14 "X-Generator: WP-CLI 2.12.0\n" … … 73 73 #: footer.php:40 74 74 #: functions.php:56 75 #: functions.php: 38675 #: functions.php:427 76 76 msgid "Footer Menu" 77 77 msgstr "" … … 108 108 109 109 #: functions.php:55 110 #: functions.php: 369110 #: functions.php:410 111 111 #: header.php:53 112 112 msgid "Primary Menu" … … 121 121 msgstr "" 122 122 123 #: functions.php:326 123 #: functions.php:236 124 #: header.php:73 125 msgid "Switch to dark mode" 126 msgstr "" 127 128 #: functions.php:237 129 #: header.php:73 130 msgid "Switch to light mode" 131 msgstr "" 132 133 #: functions.php:314 134 #: inc/customizer.php:150 135 #: template-parts/homepage/hero.php:12 136 msgid "Full Stack Developer" 137 msgstr "" 138 139 #: functions.php:315 140 msgid "Frontend Engineer" 141 msgstr "" 142 143 #: functions.php:316 144 msgid "Backend Developer" 145 msgstr "" 146 147 #: functions.php:317 148 msgid "UI/UX Enthusiast" 149 msgstr "" 150 151 #: functions.php:367 124 152 msgctxt "Theme starter content" 125 153 msgid "Home" 126 154 msgstr "" 127 155 128 #: functions.php:3 31156 #: functions.php:372 129 157 msgctxt "Theme starter content" 130 158 msgid "About Me" 131 159 msgstr "" 132 160 133 #: functions.php:3 32161 #: functions.php:373 134 162 msgctxt "Theme starter content" 135 163 msgid "I am a developer who builds fast, accessible websites. Use this page to tell visitors who you are, what you work on and what you care about." 136 164 msgstr "" 137 165 138 #: functions.php:3 33166 #: functions.php:374 139 167 msgctxt "Theme starter content" 140 168 msgid "Add a featured image to this page to show a photo next to this text on the front page." 141 169 msgstr "" 142 170 143 #: functions.php:3 37171 #: functions.php:378 144 172 msgctxt "Theme starter content" 145 173 msgid "What I Do" 146 174 msgstr "" 147 175 148 #: functions.php:3 42176 #: functions.php:383 149 177 msgctxt "Theme starter content" 150 178 msgid "Blog" 151 179 msgstr "" 152 180 153 #: functions.php:3 46154 #: functions.php: 380181 #: functions.php:387 182 #: functions.php:421 155 183 msgctxt "Theme starter content" 156 184 msgid "Contact" 157 185 msgstr "" 158 186 159 #: functions.php:3 48187 #: functions.php:389 160 188 msgctxt "Theme starter content" 161 189 msgid "Have a project in mind or just want to say hello? Add a contact form block from your form plugin here, and set your email address and location in Appearance > Customize > Theme Options." 162 190 msgstr "" 163 191 164 #: functions.php: 374192 #: functions.php:415 165 193 msgctxt "Theme starter content" 166 194 msgid "About" … … 179 207 msgstr "" 180 208 181 #: header.php:73182 msgid "Switch to dark mode"183 msgstr ""184 185 #: header.php:73186 msgid "Switch to light mode"187 msgstr ""188 189 209 #: inc/block-patterns.php:24 190 210 msgid "Frontend" … … 384 404 385 405 #: inc/block-patterns.php:198 386 msgid "Outline "406 msgid "Outline Accent" 387 407 msgstr "" 388 408 … … 436 456 msgstr "" 437 457 438 #: inc/customizer.php:150439 #: template-parts/homepage/hero.php:12440 msgid "Full Stack Developer"441 msgstr ""442 443 458 #: inc/customizer.php:158 444 459 msgid "Subtitle / Job Title" … … 626 641 msgid "Dribbble URL" 627 642 msgstr "" 628 629 #. translators: %s: search query.630 #: inc/template-functions.php:45631 #, php-format632 msgid "Search results for: %s"633 msgstr ""634 635 #: inc/template-functions.php:70636 msgid "Today"637 msgstr ""638 639 #. translators: %d: number of days640 #: inc/template-functions.php:73641 #, php-format642 msgid "%d day ago"643 msgid_plural "%d days ago"644 msgstr[0] ""645 msgstr[1] ""646 643 647 644 #: inc/template-tags.php:56 … … 778 775 #. translators: %s: page title, only visible to screen readers. 779 776 #: template-contact.php:55 780 #: template-parts/homepage/page-section.php: 67777 #: template-parts/homepage/page-section.php:77 781 778 #, php-format 782 779 msgid "Edit %s" -
stackwise/1.2.1/page.php
r351334 r357536 17 17 ?> 18 18 19 <main id="primary" class="site-main" role="main" >19 <main id="primary" class="site-main" role="main" tabindex="-1"> 20 20 <div class="sw-container"> 21 21 <div class="sw-singular"> -
stackwise/1.2.1/readme.txt
r351334 r357536 33 33 * Seven block patterns: Intro, Skills Columns, Project Card, Experience 34 34 Timeline Item, Call to Action, Code Showcase and Testimonial 35 * Four block styles: Outline button, Terminal paragraph, Card group and35 * Four block styles: Outline Accent button, Terminal paragraph, Card group and 36 36 Accent Border quote 37 37 * Responsive layouts for phones, tablets, laptops and desktops, in dark and … … 103 103 104 104 == Changelog == 105 106 = 1.2.1 = 107 * Fixed: keyboard focus stays inside the open mobile menu. 108 * Fixed: form fields show a visible focus outline. 109 * Fixed: the skip link moves focus to the main content. 110 * Fixed: floated images in posts no longer push the post navigation aside. 111 * Fixed: the default hero typing text is translatable. 112 * Changed: block style names use the stackwise- prefix. 113 * Removed: unused template functions. 114 * Fixed: the About, Services and Contact sections stay hidden when no page is chosen, instead of repeating the front page content. 115 * Fixed: the search field shows a visible focus outline. 116 * Fixed: the block editor no longer loads the editor stylesheet twice (console warning). 117 * Fixed: the desktop menu no longer collapses into the menu button because of hidden third-level sub-menus. 118 * Changed: third-level and deeper menu items are listed inside their parent dropdown, indented, so deep menus stay on the screen. 119 * Fixed: the dark mode toggle is part of the keyboard focus cycle of the open mobile menu. 120 * Fixed: front page sections from the starter content show in the Customizer preview. 121 * Fixed: light mode is applied before the page is painted, so there is no dark flash. 122 * Fixed: long comment author names wrap between words. 123 * Fixed: the Number of Posts option is limited to 1-20 and checkbox options accept any checked value. 124 * Changed: the X, Dev.to and mail icons now come from Tabler Icons and Simple Icons, and decorative icons are hidden from screen readers. 125 * Changed: the Outline button style is named "Outline Accent" so it differs from the core Outline style. 126 * Changed: the Skills Columns pattern uses the current list block markup. 127 * Changed: the dark mode toggle's fallback labels are translatable. 128 * Added: a Privacy section and a Resources section with the license of every bundled resource in the readme. 129 * Fixed: a long site title no longer breaks out of the header; it uses at most two lines, and the menu collapses into the menu button when it does not fit next to the title. 130 * Fixed: long menu item names wrap in the mobile menu instead of being cut off. 131 * Changed: the menu button shows a close (X) icon while the menu is open. 105 132 106 133 = 1.2.0 = … … 129 156 * Initial release 130 157 158 == Privacy == 159 160 Stackwise does not collect, store or send any personal data. 161 162 * The dark mode toggle saves the visitor's choice ("light" or "dark") in the browser's localStorage under the key `stackwise-theme`. It stays in the visitor's browser and is never sent to the site or to anyone else. 163 * The theme loads the Inter and JetBrains Mono fonts from Google Fonts (https://fonts.google.com). When a page loads, the visitor's browser requests the fonts from Google's servers, which receive the visitor's IP address. See the Google Privacy Policy: https://policies.google.com/privacy 164 131 165 == Copyright == 132 166 … … 145 179 GNU General Public License for more details. 146 180 181 == Resources == 182 147 183 This theme uses the following third-party resources: 148 184 149 Inter Typeface, Copyright 2020 The Inter Project Authors 185 Inter 186 Copyright 2016 The Inter Project Authors 150 187 License: SIL Open Font License, version 1.1 151 Source: https://rsms.me/inter/ 152 153 JetBrains Mono, Copyright 2020 JetBrains s.r.o. 188 Source: https://github.com/rsms/inter 189 Loaded from Google Fonts: https://fonts.google.com/specimen/Inter 190 191 JetBrains Mono 192 Copyright 2020 The JetBrains Mono Project Authors 154 193 License: SIL Open Font License, version 1.1 155 Source: https://www.jetbrains.com/legalnotice/ 156 157 Both fonts are loaded from Google Fonts (https://fonts.google.com) over HTTPS. 158 No font files are bundled locally in the theme package. 159 160 SVG icons used in the social links section are from Feather Icons. 161 License: MIT License 162 Source: https://feathericons.com/ 163 164 All images bundled with this theme (screenshot.png) are original works 165 created for this theme and are released under GPL v2 or later. 194 Source: https://github.com/JetBrains/JetBrainsMono 195 Loaded from Google Fonts: https://fonts.google.com/specimen/JetBrains+Mono 196 197 Both fonts are loaded from Google Fonts over HTTPS. No font files are 198 bundled in the theme package. 199 200 Feather Icons 201 Copyright (c) 2013-2023 Cole Bemis 202 License: MIT License, https://opensource.org/licenses/MIT 203 Source: https://feathericons.com/ (https://github.com/feathericons/feather) 204 Icons used: sun, moon, search, home, folder, download, arrow-right, github, 205 linkedin, instagram, youtube, codepen, dribbble. 206 207 Tabler Icons 208 Copyright (c) 2020-2026 Paweł Kuna 209 License: MIT License, https://opensource.org/licenses/MIT 210 Source: https://tabler.io/icons (https://github.com/tabler/tabler-icons) 211 Icons used: brand-x (X social link), mail (Contact section email button). 212 213 Simple Icons 214 Copyright: Simple Icons contributors, dedicated to the public domain 215 License: CC0 1.0 Universal, https://creativecommons.org/publicdomain/zero/1.0/ 216 Source: https://simpleicons.org/ (https://github.com/simple-icons/simple-icons) 217 Icons used: devdotto (Dev.to social link). 218 219 Screenshot (screenshot.png) 220 Copyright 2026 Rahul Tank 221 License: GPLv2 or later, https://www.gnu.org/licenses/gpl-2.0.html 222 Source: an original screenshot of the theme, created for this theme. It 223 contains no third-party photos; the fonts and icons shown are listed above. -
stackwise/1.2.1/search.php
r351334 r357536 12 12 ?> 13 13 14 <main id="primary" class="site-main" role="main" >14 <main id="primary" class="site-main" role="main" tabindex="-1"> 15 15 <div class="sw-container"> 16 16 <?php get_template_part( 'template-parts/archive-header' ); ?> -
stackwise/1.2.1/searchform.php
r351334 r357536 18 18 <button type="submit" class="search-submit"> 19 19 <span class="screen-reader-text"><?php echo esc_html_x( 'Search', 'submit button', 'stackwise' ); ?></span> 20 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" >20 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"> 21 21 <circle cx="11" cy="11" r="8"></circle> 22 22 <line x1="21" y1="21" x2="16.65" y2="16.65"></line> -
stackwise/1.2.1/single.php
r351334 r357536 12 12 ?> 13 13 14 <main id="primary" class="site-main" role="main" >14 <main id="primary" class="site-main" role="main" tabindex="-1"> 15 15 <div class="sw-container"> 16 16 <?php -
stackwise/1.2.1/style.css
r351334 r357536 4 4 Author URI: https://profiles.wordpress.org/rahultank/ 5 5 Description: A clean, modern portfolio and blog theme for developers and tech professionals. Stackwise ships with a dark/light mode toggle, a customizable hero section with an optional typing effect, a latest posts preview, social links, a footer widget area and seven block patterns. It is built for keyboard navigation and fast loading, and it works with the block editor. 6 Version: 1.2. 06 Version: 1.2.1 7 7 Requires at least: 6.0 8 8 Tested up to: 7.1 … … 410 410 align-items: center; 411 411 justify-content: space-between; 412 gap: var(--sw-spacing-md); 412 413 height: 100%; 413 414 } 414 415 416 /* 417 * A long site title uses at most two lines and is then shortened with an 418 * ellipsis, so the header keeps its height. While navigation.js measures 419 * whether the menu fits, the title keeps its full width (.sw-nav-measuring), 420 * so a menu that does not fit next to the full title collapses into the toggle. 421 */ 415 422 .site-branding { 416 423 display: flex; 417 424 align-items: center; 418 425 gap: var(--sw-spacing-sm); 426 min-width: 0; 427 } 428 429 .sw-nav-measuring .site-branding { 430 flex-shrink: 0; 419 431 } 420 432 421 433 .site-title { 434 min-width: 0; 422 435 margin: 0; 423 436 font-family: var(--sw-font-mono); … … 427 440 428 441 .site-title a { 442 display: -webkit-box; 443 -webkit-box-orient: vertical; 444 -webkit-line-clamp: 2; 445 line-clamp: 2; 446 overflow: hidden; 447 padding-block: 1px; 429 448 color: var(--sw-color-text-primary); 449 line-height: 1.3; 430 450 text-decoration: none; 451 overflow-wrap: anywhere; 431 452 } 432 453 … … 449 470 .main-navigation { 450 471 display: flex; 472 flex-shrink: 0; 451 473 align-items: center; 452 474 gap: var(--sw-spacing-lg); … … 507 529 } 508 530 531 /* 532 * Third and deeper levels are listed inside their parent dropdown, indented, 533 * instead of flying out to the side. Deep menus then never run off the 534 * right edge of the screen. 535 */ 509 536 .nav-menu .sub-menu .sub-menu, 510 537 .nav-menu .children .children { 511 top: 0; 512 left: 100%; 538 position: static; 539 min-width: 0; 540 padding: 0 0 0 var(--sw-spacing-md); 541 background: none; 542 border: 0; 543 box-shadow: none; 544 opacity: 1; 545 visibility: inherit; 546 transform: none; 547 } 548 549 .nav-menu .sub-menu .menu-item-has-children > a::after, 550 .nav-menu .children .page_item_has_children > a::after { 551 display: none; 513 552 } 514 553 … … 566 605 .sw-nav-collapsed .nav-menu.nav-menu--open { 567 606 display: flex; 607 } 608 609 /* In the toggle menu, long item names wrap instead of running off the screen. */ 610 .sw-nav-collapsed .nav-menu a { 611 white-space: normal; 612 overflow-wrap: break-word; 568 613 } 569 614 … … 634 679 @media (prefers-reduced-motion: reduce) { 635 680 .nav-menu .sub-menu, 636 .nav-menu .children { 681 .nav-menu .children, 682 .menu-toggle .bar { 637 683 transition: none; 638 684 } … … 659 705 margin: 4px 0; 660 706 background-color: currentColor; 661 transition: color var(--sw-transition-fast), background-color var(--sw-transition-fast), border-color var(--sw-transition-fast); 707 transition: background-color var(--sw-transition-fast), opacity var(--sw-transition-fast), transform var(--sw-transition-fast); 708 } 709 710 /* The open menu toggle shows a close (X) icon. */ 711 .menu-toggle--open .bar:nth-last-child(3) { 712 transform: translateY(6px) rotate(45deg); 713 } 714 715 .menu-toggle--open .bar:nth-last-child(2) { 716 opacity: 0; 717 } 718 719 .menu-toggle--open .bar:last-child { 720 transform: translateY(-6px) rotate(-45deg); 662 721 } 663 722 … … 1406 1465 .sw-contact-form input:focus, 1407 1466 .sw-contact-form textarea:focus { 1408 outline: none; 1467 outline: 2px solid var(--sw-color-accent); 1468 outline-offset: 2px; 1409 1469 border-color: var(--sw-color-accent); 1410 1470 } … … 1483 1543 } 1484 1544 1545 /* The ring sits on the wrapper because overflow: hidden would clip an outline on the field. */ 1485 1546 .search-form-wrapper:focus-within { 1486 1547 border-color: var(--sw-color-accent); 1548 outline: 2px solid var(--sw-color-accent); 1549 outline-offset: 2px; 1487 1550 } 1488 1551 … … 1501 1564 .search-form .search-field:focus { 1502 1565 outline: none; 1503 box-shadow: none;1504 1566 } 1505 1567 … … 1777 1839 textarea:focus, 1778 1840 select:focus { 1779 outline: none; 1841 outline: 2px solid var(--sw-color-accent); 1842 outline-offset: 2px; 1780 1843 border-color: var(--sw-color-accent); 1781 1844 } … … 1846 1909 } 1847 1910 1911 /* The skip link target receives focus programmatically; it is not a control. */ 1912 #primary[tabindex="-1"]:focus { 1913 outline: 0; 1914 } 1915 1848 1916 /*-------------------------------------------------------------- 1849 1917 # Alignments … … 2976 3044 } 2977 3045 3046 /* Contain floated images (alignleft, alignright) inside the post content. */ 3047 .entry-content::after { 3048 content: ""; 3049 display: table; 3050 clear: both; 3051 } 3052 2978 3053 /* Previous / next post */ 2979 3054 .post-navigation { 3055 clear: both; 2980 3056 margin-top: var(--sw-spacing-2xl); 2981 3057 padding: 0; … … 3046 3122 } 3047 3123 3124 /* 3125 * Names and dates wrap between words. "anywhere" would let the flex items 3126 * shrink to one character wide, so it is only used for the comment text; 3127 * here a word is broken only when it is longer than the whole line. 3128 */ 3129 .comment-meta { 3130 flex-wrap: wrap; 3131 row-gap: var(--sw-spacing-xs); 3132 overflow-wrap: break-word; 3133 } 3134 3048 3135 .comment-author { 3049 3136 display: flex; 3050 3137 align-items: center; 3051 3138 gap: var(--sw-spacing-sm); 3139 min-width: 0; 3140 } 3141 3142 .comment-author .fn { 3143 min-width: 0; 3052 3144 } 3053 3145 … … 3164 3256 } 3165 3257 3166 .sw-blog-title a, 3167 .site-title a { 3258 .sw-blog-title a { 3168 3259 display: inline-block; 3169 3260 padding-block: 1px; … … 3233 3324 } 3234 3325 3235 /* Button: Outline */3236 .wp-block-button.is-style-s w-outline .wp-block-button__link {3326 /* Button: Outline Accent (stackwise-outline) */ 3327 .wp-block-button.is-style-stackwise-outline .wp-block-button__link { 3237 3328 border: 1px solid currentColor; 3238 3329 background-color: transparent; … … 3240 3331 } 3241 3332 3242 .wp-block-button.is-style-s w-outline .wp-block-button__link:hover,3243 .wp-block-button.is-style-s w-outline .wp-block-button__link:focus {3333 .wp-block-button.is-style-stackwise-outline .wp-block-button__link:hover, 3334 .wp-block-button.is-style-stackwise-outline .wp-block-button__link:focus { 3244 3335 background-color: var(--sw-color-bg-secondary); 3245 3336 color: var(--sw-color-accent); … … 3247 3338 3248 3339 /* Paragraph: Terminal */ 3249 p.is-style-s w-terminal {3340 p.is-style-stackwise-terminal { 3250 3341 padding: 0.5em 1em; 3251 3342 border-left: 3px solid var(--sw-color-accent); … … 3258 3349 3259 3350 /* Group: Card */ 3260 .wp-block-group.is-style-s w-card {3351 .wp-block-group.is-style-stackwise-card { 3261 3352 padding: var(--sw-spacing-lg); 3262 3353 border: 1px solid var(--sw-color-border); … … 3266 3357 3267 3358 /* Quote: Accent Border */ 3268 .wp-block-quote.is-style-s w-accent {3359 .wp-block-quote.is-style-stackwise-accent { 3269 3360 padding: var(--sw-spacing-md) var(--sw-spacing-lg); 3270 3361 border-left: 4px solid var(--sw-color-accent); … … 3274 3365 } 3275 3366 3276 .wp-block-quote.is-style-s w-accent cite {3367 .wp-block-quote.is-style-stackwise-accent cite { 3277 3368 font-size: var(--sw-font-size-sm); 3278 3369 color: var(--sw-color-text-muted); … … 3396 3487 .nav-menu a { 3397 3488 padding: var(--sw-spacing-md); 3489 white-space: normal; 3490 overflow-wrap: break-word; 3398 3491 } 3399 3492 -
stackwise/1.2.1/template-contact.php
r351334 r357536 19 19 ?> 20 20 21 <main id="primary" class="site-main" role="main" >21 <main id="primary" class="site-main" role="main" tabindex="-1"> 22 22 <div class="sw-container"> 23 23 <?php -
stackwise/1.2.1/template-parts/homepage/blog-preview.php
r351334 r357536 15 15 $stackwise_args = array( 16 16 'post_type' => 'post', 17 'posts_per_page' => absint( $stackwise_posts_count ),17 'posts_per_page' => stackwise_sanitize_blog_posts_count( $stackwise_posts_count ), 18 18 'ignore_sticky_posts' => true, 19 19 'no_found_rows' => true, -
stackwise/1.2.1/template-parts/homepage/hero.php
r351334 r357536 57 57 <?php if ( $stackwise_btn_primary_text && $stackwise_btn_primary_url ) : ?> 58 58 <a href="<?php echo esc_url( $stackwise_btn_primary_url ); ?>" class="sw-btn sw-btn-primary"> 59 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" >59 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"> 60 60 <path d="M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z"></path> 61 61 </svg> … … 66 66 <?php if ( $stackwise_btn_secondary_text && $stackwise_btn_secondary_url ) : ?> 67 67 <a href="<?php echo esc_url( $stackwise_btn_secondary_url ); ?>" class="sw-btn sw-btn-secondary"> 68 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" >68 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"> 69 69 <path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path> 70 70 <polyline points="7 10 12 15 17 10"></polyline> -
stackwise/1.2.1/template-parts/homepage/page-section.php
r351334 r357536 16 16 */ 17 17 18 $stackwise_ section_page = isset( $args['page_id'] ) ? get_post( absint( $args['page_id'] ) ) : null;18 $stackwise_page_id = isset( $args['page_id'] ) ? absint( $args['page_id'] ) : 0; 19 19 20 if ( ! $stackwise_section_page || 'page' !== $stackwise_section_page->post_type || 'publish' !== $stackwise_section_page->post_status || post_password_required( $stackwise_section_page ) ) { 20 // No page chosen: hide the section. get_post( 0 ) would return the current global post. 21 if ( ! $stackwise_page_id ) { 22 return; 23 } 24 25 $stackwise_section_page = get_post( $stackwise_page_id ); 26 27 // Starter content pages stay auto-drafts until the Customizer changes are published. 28 $stackwise_allowed_statuses = is_customize_preview() ? array( 'publish', 'auto-draft' ) : array( 'publish' ); 29 30 if ( ! $stackwise_section_page || 'page' !== $stackwise_section_page->post_type || ! in_array( $stackwise_section_page->post_status, $stackwise_allowed_statuses, true ) || post_password_required( $stackwise_section_page ) ) { 21 31 return; 22 32 } … … 54 64 <div class="sw-fp-contact-links"> 55 65 <a class="sw-btn sw-btn-secondary" href="<?php echo esc_url( 'mailto:' . antispambot( $stackwise_contact_email ) ); ?>"> 56 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false">< rect x="3" y="5" width="18" height="14" rx="2"></rect><polyline points="3 7 12 13 21 7"></polyline></svg>66 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M3 7a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v10a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-10"></path><path d="M3 7l9 6l9 -6"></path></svg> 57 67 <?php echo esc_html( antispambot( $stackwise_contact_email ) ); ?> 58 68 </a>
Note:
See TracChangeset
for help on using the changeset viewer.
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)