Make WordPress Core

Ticket #48110: 48110.8.diff

File 48110.8.diff, 249.5 KB (added by williampatton, 5 years ago)
  • src/wp-admin/css/common.css

    diff --git a/src/wp-admin/css/common.css b/src/wp-admin/css/common.css
    index f03fe26854..d3ed7a9e90 100644
    a b a:focus, 
    272272a:focus .media-icon img,
    273273.wp-person a:focus .gravatar {
    274274        color: #124964;
    275         box-shadow:
    276                 0 0 0 1px #5b9dd9,
    277                 0 0 2px 1px rgba(30, 140, 190, 0.8);
    278                 /* Only visible in Windows High Contrast mode */
    279                 outline: 1px solid transparent;
     275        outline: 1px dotted #555d66;
    280276}
    281277
    282278.ie8 a:focus {
    a:focus .media-icon img, 
    284280}
    285281
    286282#adminmenu a:focus {
    287         box-shadow: none;
    288         /* Only visible in Windows High Contrast mode */
    289         outline: 1px solid transparent;
     283        outline: 1px dotted #555d66;
    290284        outline-offset: -1px;
    291285}
    292286
    img.emoji { 
    839833}
    840834
    841835.tagchecklist .ntdelbutton:focus .remove-tag-icon:before {
    842         box-shadow:
    843                 0 0 0 1px #5b9dd9,
    844                 0 0 2px 1px rgba(30, 140, 190, 0.8);
     836        outline: 1px dotted #555d66;
    845837}
    846838
    847839.key-labels label {
    div.error p, 
    14371429}
    14381430
    14391431.notice-dismiss:focus {
    1440         outline: none;
    1441         box-shadow:
    1442                 0 0 0 1px #5b9dd9,
    1443                 0 0 2px 1px rgba(30, 140, 190, 0.8);
     1432        outline: 1px dotted #555d66;
    14441433}
    14451434
    14461435.ie8 .notice-dismiss:focus {
    img { 
    30733062}
    30743063
    30753064.js .postbox .handlediv:focus .toggle-indicator:before {
    3076         box-shadow:
    3077                 0 0 0 1px #5b9dd9,
    3078                 0 0 2px 1px rgba(30, 140, 190, 0.8);
     3065        outline: 1px dotted #555d66;
    30793066}
    30803067
    30813068/* @todo: appears to be Press This only and overridden */
    img { 
    31703157}
    31713158[role="treeitem"] .folder-label.focus {
    31723159        color: #124964;
    3173         box-shadow:
    3174                 0 0 0 1px #5b9dd9,
    3175                 0 0 2px 1px rgba(30, 140, 190, 0.8);
     3160        outline: 1px dotted #555d66;
    31763161}
    31773162[role="treeitem"].hover,
    31783163[role="treeitem"] .folder-label.hover {
    img { 
    33993384}
    34003385
    34013386.widget-top .widget-action:focus .toggle-indicator:before {
    3402         box-shadow:
    3403                 0 0 0 1px #5b9dd9,
    3404                 0 0 2px 1px rgba(30, 140, 190, 0.8);
     3387        outline: 1px dotted #555d66;
    34053388}
    34063389
    34073390.control-section .accordion-section-title:after,
  • src/wp-admin/css/login.css

    diff --git a/src/wp-admin/css/login.css b/src/wp-admin/css/login.css
    index d5c60f117a..0cbaa88a2c 100644
    a b a:active { 
    3232
    3333a:focus {
    3434        color: #124964;
    35         box-shadow:
    36                 0 0 0 1px #5b9dd9,
    37                 0 0 2px 1px rgba(30, 140, 190, 0.8);
     35        outline: 1px dotted #555d66;
    3836}
    3937
    4038p {
  • src/wp-admin/css/themes.css

    diff --git a/src/wp-admin/css/themes.css b/src/wp-admin/css/themes.css
    index 9f46b63872..185505d549 100644
    a b body.js .theme-browser.search-loading { 
    176176}
    177177
    178178.theme-browser .theme:focus {
    179         border-color: #5b9dd9;
    180         box-shadow: 0 0 2px rgba(30, 140, 190, 0.8);
     179        outline: 1px dotted #555d66;
    181180}
    182181
    183182.theme-browser .theme:focus .more-details {
  • src/wp-content/themes/twentytwenty/404.php

    diff --git a/src/wp-content/themes/twentytwenty/404.php b/src/wp-content/themes/twentytwenty/404.php
    index f00ae375d8..fbf509aa83 100644
    a b get_header(); 
    1414
    1515        <div class="section-inner thin error404-content">
    1616
    17                 <h1 class="entry-title"><?php _e( 'Page Not Found', 'twentytwenty' ); // phpcs:ignore WordPress.Security.EscapeOutput.UnsafePrintingFunction -- core trusts translations ?></h1>
     17                <h1 class="entry-title"><?php _e( 'Page Not Found', 'twentytwenty' ); ?></h1>
    1818
    19                 <div class="intro-text"><p><?php _e( 'The page you were looking for could not be found. It might have been removed, renamed, or did not exist in the first place.', 'twentytwenty' ); // phpcs:ignore WordPress.Security.EscapeOutput.UnsafePrintingFunction -- core trusts translations ?></p></div>
     19                <div class="intro-text"><p><?php _e( 'The page you were looking for could not be found. It might have been removed, renamed, or did not exist in the first place.', 'twentytwenty' ); ?></p></div>
    2020
    2121                <?php
    2222                get_search_form(
    2323                        array(
    24                                 'label' => _x( '404 not found', 'Label', 'twentytwenty' ),
     24                                'label' => __( '404 not found', 'twentytwenty' ),
    2525                        )
    2626                );
    2727                ?>
    2828
    2929        </div><!-- .section-inner -->
    3030
    31         <?php get_template_part( 'template-parts/footer-menus-widgets' ); ?>
    32 
    3331</main><!-- #site-content -->
    3432
     33<?php get_template_part( 'template-parts/footer-menus-widgets' ); ?>
     34
    3535<?php
    3636get_footer();
  • src/wp-content/themes/twentytwenty/assets/css/editor-style-block-rtl.css

    diff --git a/src/wp-content/themes/twentytwenty/assets/css/editor-style-block-rtl.css b/src/wp-content/themes/twentytwenty/assets/css/editor-style-block-rtl.css
    index 719fe509e8..337664dc45 100644
    a b Inter variable font. Usage: 
    7373        max-width: 610px;
    7474}
    7575
    76 .wp-block[data-align="wide"] .wp-block-group .wp-block {
    77         max-width: 100%;
     76.wp-block[data-align="wide"] .wp-block,
     77.wp-block[data-align="full"] .wp-block {
     78        max-width: none;
    7879}
    7980
    80 .wp-block[data-align="full"] .wp-block-group .wp-block {
    81         max-width: 100%;
     81.wp-block[data-align="wide"] .wp-block[data-align="wide"],
     82.wp-block[data-align="full"] .wp-block[data-align="wide"] {
     83        max-width: 1200px;
     84}
     85
     86.wp-block .wp-block[data-type="core/group"]:not([data-align="full"]):not([data-align="wide"]):not([data-align="left"]):not([data-align="right"]),
     87.wp-block .wp-block[data-type="core/cover"]:not([data-align="full"]):not([data-align="wide"]):not([data-align="left"]):not([data-align="right"]) {
     88        margin-right: auto;
     89        margin-left: auto;
     90        max-width: 610px;
     91}
     92
     93.wp-block .wp-block[data-align="full"] {
     94        margin-right: 0;
     95        margin-left: 0;
    8296}
    8397
    8498*[data-align="right"] .wp-block-edit,
    hr.wp-block-separator.is-style-dots::before { 
    641655.editor-styles-wrapper .wp-block-cover .wp-block-cover__inner-container {
    642656        margin: 0 auto;
    643657        max-width: 1200px;
    644         width: calc(100% - 50px);
     658        width: calc(100% - 40px);
    645659}
    646660
    647661[data-align="left"] .wp-block-cover,
    hr.wp-block-separator.is-style-dots::before { 
    651665        max-width: 260px;
    652666}
    653667
    654 .editor-styles-wrapper .wp-block-cover-image .wp-block,
    655 .editor-styles-wrapper .wp-block-cover .wp-block,
    656668.wp-block-cover-image .wp-block-cover-image-text,
    657669.wp-block-cover-image .wp-block-cover-text,
    658670.wp-block-cover-image h2,
    hr.wp-block-separator.is-style-dots::before { 
    660672.wp-block-cover .wp-block-cover-text,
    661673.wp-block-cover h2 {
    662674        max-width: 100%;
    663         padding: 0;
    664 }
    665 
    666 .editor-styles-wrapper .wp-block-cover p {
    667         font-family: inherit;
    668675}
    669676
    670677.editor-styles-wrapper .wp-block-cover a {
    671678        color: inherit;
    672679}
    673680
     681/* Block: Shared Media Styles ---------------- */
     682
     683.wp-block[data-type*="core-embed"][data-align="full"] figcaption,
     684.wp-block[data-type="core/image"][data-align="full"] figcaption,
     685.wp-block[data-type="core/gallery"][data-align="full"] .blocks-gallery-caption {
     686        padding: 0 14px;
     687}
    674688
    675689/* Block: Paragraph -------------------------- */
    676690
    hr.wp-block-separator.is-style-dots::before { 
    982996        margin-top: 0;
    983997}
    984998
     999.wp-block[data-type="core/group"] > .editor-block-list__block-edit > div > .wp-block-group.has-background > .wp-block-group__inner-container > .editor-inner-blocks > .editor-block-list__layout > .wp-block[data-align="full"],
     1000.wp-block[data-type="core/group"][data-align="full"] > .editor-block-list__block-edit > div > .wp-block-group.has-background > .wp-block-group__inner-container > .editor-inner-blocks > .editor-block-list__layout > .wp-block[data-align="full"] {
     1001        margin-right: 0;
     1002        width: 100%;
     1003}
     1004
    9851005/* Block: Paragraph -------------------------- */
    9861006
    9871007
    hr.wp-block-separator.is-style-dots::before { 
    10411061@media ( min-width: 600px ) {
    10421062
    10431063
     1064        /* BLOCK: SHARED MEDIA STYLES */
     1065
     1066        .wp-block[data-type*="core-embed"][data-align="full"] figcaption,
     1067        .wp-block[data-type="core/image"][data-align="full"] figcaption,
     1068        .wp-block[data-type="core/gallery"][data-align="full"] .blocks-gallery-caption {
     1069                padding: 0 45px;
     1070        }
     1071
     1072        /* BLOCK: COLUMNS */
     1073
     1074        .editor-styles-wrapper .wp-block[data-type="core/column"] h1,
     1075        .editor-styles-wrapper .wp-block[data-type="core/column"] h2,
     1076        .editor-styles-wrapper .wp-block[data-type="core/column"] h3,
     1077        .editor-styles-wrapper .wp-block[data-type="core/column"] h4,
     1078        .editor-styles-wrapper .wp-block[data-type="core/column"] h5,
     1079        .editor-styles-wrapper .wp-block[data-type="core/column"] h6 {
     1080                margin: 35px 0 20px 0;
     1081        }
     1082
    10441083        /* BLOCK: PULLQUOTE */
    10451084
    10461085        .editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="right"] .block-editor-block-list__block-edit {
    hr.wp-block-separator.is-style-dots::before { 
    12281267                font-size: 18px;
    12291268        }
    12301269
    1231         /* BLOCK: COVER */
    1232 
    1233         .editor-styles-wrapper .wp-block-cover-image .wp-block-cover__inner-container,
    1234         .editor-styles-wrapper .wp-block-cover .wp-block-cover__inner-container {
    1235                 width: calc(100% - 100px);
    1236         }
    1237 
    12381270        /* BLOCK: GROUP */
    12391271
    12401272        .wp-block[data-align="wide"] .wp-block-group.has-background,
  • src/wp-content/themes/twentytwenty/assets/css/editor-style-block.css

    diff --git a/src/wp-content/themes/twentytwenty/assets/css/editor-style-block.css b/src/wp-content/themes/twentytwenty/assets/css/editor-style-block.css
    index c6ff478998..054b1017ad 100644
    a b Inter variable font. Usage: 
    7373        max-width: 610px;
    7474}
    7575
    76 .wp-block[data-align="wide"] .wp-block-group .wp-block {
    77         max-width: 100%;
     76.wp-block[data-align="wide"] .wp-block,
     77.wp-block[data-align="full"] .wp-block {
     78        max-width: none;
    7879}
    7980
    80 .wp-block[data-align="full"] .wp-block-group .wp-block {
    81         max-width: 100%;
     81.wp-block[data-align="wide"] .wp-block[data-align="wide"],
     82.wp-block[data-align="full"] .wp-block[data-align="wide"] {
     83        max-width: 1200px;
     84}
     85
     86.wp-block .wp-block[data-type="core/group"]:not([data-align="full"]):not([data-align="wide"]):not([data-align="left"]):not([data-align="right"]),
     87.wp-block .wp-block[data-type="core/cover"]:not([data-align="full"]):not([data-align="wide"]):not([data-align="left"]):not([data-align="right"]) {
     88        margin-left: auto;
     89        margin-right: auto;
     90        max-width: 610px;
     91}
     92
     93.wp-block .wp-block[data-align="full"] {
     94        margin-left: 0;
     95        margin-right: 0;
    8296}
    8397
    8498*[data-align="right"] .wp-block-edit,
    hr.wp-block-separator.is-style-dots::before { 
    641655.editor-styles-wrapper .wp-block-cover .wp-block-cover__inner-container {
    642656        margin: 0 auto;
    643657        max-width: 1200px;
    644         width: calc(100% - 50px);
     658        width: calc(100% - 40px);
    645659}
    646660
    647661[data-align="left"] .wp-block-cover,
    hr.wp-block-separator.is-style-dots::before { 
    651665        max-width: 260px;
    652666}
    653667
    654 .editor-styles-wrapper .wp-block-cover-image .wp-block,
    655 .editor-styles-wrapper .wp-block-cover .wp-block,
    656668.wp-block-cover-image .wp-block-cover-image-text,
    657669.wp-block-cover-image .wp-block-cover-text,
    658670.wp-block-cover-image h2,
    hr.wp-block-separator.is-style-dots::before { 
    660672.wp-block-cover .wp-block-cover-text,
    661673.wp-block-cover h2 {
    662674        max-width: 100%;
    663         padding: 0;
    664 }
    665 
    666 .editor-styles-wrapper .wp-block-cover p {
    667         font-family: inherit;
    668675}
    669676
    670677.editor-styles-wrapper .wp-block-cover a {
    671678        color: inherit;
    672679}
    673680
     681/* Block: Shared Media Styles ---------------- */
     682
     683.wp-block[data-type*="core-embed"][data-align="full"] figcaption,
     684.wp-block[data-type="core/image"][data-align="full"] figcaption,
     685.wp-block[data-type="core/gallery"][data-align="full"] .blocks-gallery-caption {
     686        padding: 0 14px;
     687}
    674688
    675689/* Block: Paragraph -------------------------- */
    676690
    hr.wp-block-separator.is-style-dots::before { 
    982996        margin-top: 0;
    983997}
    984998
     999.wp-block[data-type="core/group"] > .editor-block-list__block-edit > div > .wp-block-group.has-background > .wp-block-group__inner-container > .editor-inner-blocks > .editor-block-list__layout > .wp-block[data-align="full"],
     1000.wp-block[data-type="core/group"][data-align="full"] > .editor-block-list__block-edit > div > .wp-block-group.has-background > .wp-block-group__inner-container > .editor-inner-blocks > .editor-block-list__layout > .wp-block[data-align="full"] {
     1001        margin-left: 0;
     1002        width: 100%;
     1003}
     1004
    9851005/* Block: Paragraph -------------------------- */
    9861006
    9871007
    hr.wp-block-separator.is-style-dots::before { 
    10411061@media ( min-width: 600px ) {
    10421062
    10431063
     1064        /* BLOCK: SHARED MEDIA STYLES */
     1065
     1066        .wp-block[data-type*="core-embed"][data-align="full"] figcaption,
     1067        .wp-block[data-type="core/image"][data-align="full"] figcaption,
     1068        .wp-block[data-type="core/gallery"][data-align="full"] .blocks-gallery-caption {
     1069                padding: 0 45px;
     1070        }
     1071
     1072        /* BLOCK: COLUMNS */
     1073
     1074        .editor-styles-wrapper .wp-block[data-type="core/column"] h1,
     1075        .editor-styles-wrapper .wp-block[data-type="core/column"] h2,
     1076        .editor-styles-wrapper .wp-block[data-type="core/column"] h3,
     1077        .editor-styles-wrapper .wp-block[data-type="core/column"] h4,
     1078        .editor-styles-wrapper .wp-block[data-type="core/column"] h5,
     1079        .editor-styles-wrapper .wp-block[data-type="core/column"] h6 {
     1080                margin: 35px 0 20px 0;
     1081        }
     1082
    10441083        /* BLOCK: PULLQUOTE */
    10451084
    10461085        .editor-styles-wrapper .wp-block[data-type="core/pullquote"][data-align="right"] .block-editor-block-list__block-edit {
    hr.wp-block-separator.is-style-dots::before { 
    12281267                font-size: 18px;
    12291268        }
    12301269
    1231         /* BLOCK: COVER */
    1232 
    1233         .editor-styles-wrapper .wp-block-cover-image .wp-block-cover__inner-container,
    1234         .editor-styles-wrapper .wp-block-cover .wp-block-cover__inner-container {
    1235                 width: calc(100% - 100px);
    1236         }
    1237 
    12381270        /* BLOCK: GROUP */
    12391271
    12401272        .wp-block[data-align="wide"] .wp-block-group.has-background,
  • src/wp-content/themes/twentytwenty/assets/css/editor-style-classic-rtl.css

    diff --git a/src/wp-content/themes/twentytwenty/assets/css/editor-style-classic-rtl.css b/src/wp-content/themes/twentytwenty/assets/css/editor-style-classic-rtl.css
    index 343f59415a..863c91d431 100644
    a b  
    88
    99/*
    1010 * Chrome renders extra-wide &nbsp; characters for the Hoefler Text font.
    11  * This results in a jumping cursor when typing in both the Classic and block
    12  * editors. The following font-face override fixes the issue by manually
     11 * This results in a jumping cursor when typing in both the classic editor and
     12 * block editor. The following font-face override fixes the issue by manually
    1313 * inserting a custom font that includes just a Hoefler Text space replacement
    1414 * for that character instead.
    1515 */
    body#tinymce.wp-editor .wp-caption .alignright { 
    373373}
    374374
    375375body#tinymce.wp-editor .alignleft {
    376         float: right;
     376        float: left;
    377377        margin-left: 25px;
    378378        max-width: 260px;
    379379}
    380380
    381381body#tinymce.wp-editor .alignright {
    382         float: left;
     382        float: right;
    383383        margin-right: 25px;
    384384        max-width: 260px;
    385385}
  • src/wp-content/themes/twentytwenty/assets/css/editor-style-classic.css

    diff --git a/src/wp-content/themes/twentytwenty/assets/css/editor-style-classic.css b/src/wp-content/themes/twentytwenty/assets/css/editor-style-classic.css
    index 57718e44d1..841a468746 100644
    a b  
    88
    99/*
    1010 * Chrome renders extra-wide &nbsp; characters for the Hoefler Text font.
    11  * This results in a jumping cursor when typing in both the Classic and block
    12  * editors. The following font-face override fixes the issue by manually
     11 * This results in a jumping cursor when typing in both the classic editor and
     12 * block editor. The following font-face override fixes the issue by manually
    1313 * inserting a custom font that includes just a Hoefler Text space replacement
    1414 * for that character instead.
    1515 */
    body#tinymce.wp-editor .wp-caption .alignright { 
    373373}
    374374
    375375body#tinymce.wp-editor .alignleft {
     376
     377        /*rtl:ignore*/
    376378        float: left;
    377379        margin-right: 25px;
    378380        max-width: 260px;
    379381}
    380382
    381383body#tinymce.wp-editor .alignright {
     384
     385        /*rtl:ignore*/
    382386        float: right;
    383387        margin-left: 25px;
    384388        max-width: 260px;
  • src/wp-content/themes/twentytwenty/assets/js/color-calculations.js

    diff --git a/src/wp-content/themes/twentytwenty/assets/js/color-calculations.js b/src/wp-content/themes/twentytwenty/assets/js/color-calculations.js
    index 9780797433..8ea6a7f94e 100644
    a b _twentyTwentyColor.prototype.getAccentColor = function() { 
    133133 * @param {number} accentHue - The hue for our accent color.
    134134 * @return {Object} - this
    135135 */
    136 function twentyTwentyColor( backgroundColor, accentHue ) { // jshint ignore:line
     136function twentyTwentyColor( backgroundColor, accentHue ) {// jshint ignore:line
    137137        var color = new _twentyTwentyColor( backgroundColor, accentHue );
    138138        color.setAccentColorsArray();
    139139        return color;
  • src/wp-content/themes/twentytwenty/assets/js/index.js

    diff --git a/src/wp-content/themes/twentytwenty/assets/js/index.js b/src/wp-content/themes/twentytwenty/assets/js/index.js
    index 3046247a20..17290b38fa 100644
    a b  
    44
    55var twentytwenty = twentytwenty || {};
    66
     7// Set a default value for scrolled.
     8twentytwenty.scrolled = 0;
     9
    710// polyfill closest
    811// https://developer.mozilla.org/en-US/docs/Web/API/Element/closest#Polyfill
    912if ( ! Element.prototype.closest ) {
    if ( window.NodeList && ! NodeList.prototype.forEach ) { 
    3740}
    3841
    3942// event "polyfill"
    40 
    4143twentytwenty.createEvent = function( eventName ) {
    4244        var event;
    4345        if ( typeof window.Event === 'function' ) {
    twentytwenty.createEvent = function( eventName ) { 
    5153
    5254// matches "polyfill"
    5355// https://developer.mozilla.org/es/docs/Web/API/Element/matches
    54 
    5556if ( ! Element.prototype.matches ) {
    5657        Element.prototype.matches =
    5758                Element.prototype.matchesSelector ||
    twentytwenty.coverModals = { 
    137138
    138139        // Hide and show modals before and after their animations have played out
    139140        hideAndShowModals: function() {
    140                 var modals = document.querySelectorAll( '.cover-modal' ),
    141                         htmlStyle = document.documentElement.style;
     141                var modals, htmlStyle, adminBar, _doc, _win;
     142
     143                _doc = document;
     144                _win = window;
     145                modals = _doc.querySelectorAll( '.cover-modal' );
     146                htmlStyle = _doc.documentElement.style;
     147                adminBar = _doc.querySelector( '#wpadminbar' );
    142148
    143                 var getAdminBarHeight = function( negativeValue ) {
    144                         var adminBar = document.querySelector( '#wpadminbar' );
     149                function getAdminBarHeight( negativeValue ) {
     150                        var currentScroll, height;
     151
     152                        currentScroll = _win.pageYOffset;
    145153
    146154                        if ( adminBar ) {
    147                                 return ( negativeValue ? '-' : '' ) + adminBar.getBoundingClientRect().height + 'px';
     155                                height = currentScroll + adminBar.getBoundingClientRect().height;
     156
     157                                return negativeValue ? -height : height;
    148158                        }
    149159
    150                         return 0;
    151                 };
     160                        return currentScroll === 0 ? 0 : -currentScroll;
     161                }
    152162
    153163                function htmlStyles() {
    154                         var overflow = window.innerHeight > document.documentElement.getBoundingClientRect().height;
     164                        var overflow = _win.innerHeight > _doc.documentElement.getBoundingClientRect().height;
    155165
    156166                        return {
    157167                                'overflow-y': overflow ? 'hidden' : 'scroll',
    158168                                position: 'fixed',
    159169                                width: '100%',
    160                                 top: getAdminBarHeight( true ),
     170                                top: getAdminBarHeight( true ) + 'px',
    161171                                left: 0
    162172                        };
    163173                }
    twentytwenty.coverModals = { 
    165175                // Show the modal
    166176                modals.forEach( function( modal ) {
    167177                        modal.addEventListener( 'toggle-target-before-inactive', function( event ) {
     178                                var styles, paddingTop, offsetY, mQuery;
     179
     180                                styles = htmlStyles();
     181                                offsetY = _win.pageYOffset;
     182                                paddingTop = ( Math.abs( getAdminBarHeight() ) - offsetY ) + 'px';
     183                                mQuery = _win.matchMedia( '(max-width: 600px)' );
     184
    168185                                if ( event.target !== modal ) {
    169186                                        return;
    170187                                }
    171188
    172                                 window.scrollTo( { top: 0 } );
    173 
    174                                 Object.keys( htmlStyles() ).forEach( function( styleKey ) {
    175                                         htmlStyle.setProperty( styleKey, htmlStyles()[ styleKey ] );
     189                                Object.keys( styles ).forEach( function( styleKey ) {
     190                                        htmlStyle.setProperty( styleKey, styles[ styleKey ] );
    176191                                } );
    177192
    178                                 document.body.style.setProperty( 'padding-top', getAdminBarHeight() );
     193                                _win.twentytwenty.scrolled = parseInt( styles.top );
     194
     195                                if ( adminBar ) {
     196                                        _doc.body.style.setProperty( 'padding-top', paddingTop );
     197
     198                                        if ( mQuery.matches ) {
     199                                                if ( offsetY >= getAdminBarHeight() ) {
     200                                                        modal.style.setProperty( 'top', 0 );
     201                                                } else {
     202                                                        modal.style.setProperty( 'top', ( getAdminBarHeight() - offsetY ) + 'px' );
     203                                                }
     204                                        }
     205                                }
    179206
    180207                                modal.classList.add( 'show-modal' );
    181208                        } );
    twentytwenty.coverModals = { 
    187214                                }
    188215
    189216                                setTimeout( function() {
     217                                        var clickedEl;
     218
     219                                        clickedEl = twentytwenty.toggles.clickedEl;
     220
    190221                                        modal.classList.remove( 'show-modal' );
    191222
    192223                                        Object.keys( htmlStyles() ).forEach( function( styleKey ) {
    193224                                                htmlStyle.removeProperty( styleKey );
    194225                                        } );
    195226
    196                                         document.body.style.removeProperty( 'padding-top' );
     227                                        if ( adminBar ) {
     228                                                _doc.body.style.removeProperty( 'padding-top' );
     229                                                modal.style.removeProperty( 'top' );
     230                                        }
     231
     232                                        _win.scrollTo( 0, Math.abs( _win.twentytwenty.scrolled + getAdminBarHeight() ) );
     233
     234                                        _win.twentytwenty.scrolled = 0;
     235
     236                                        if ( clickedEl !== false ) {
     237                                                clickedEl.focus();
     238                                                clickedEl = false;
     239                                        }
    197240                                }, 500 );
    198241                        } );
    199242                } );
    twentytwenty.modalMenu = { 
    393436        // If the current menu item is the last one, return to close button when tab
    394437        goBackToCloseButton: function() {
    395438                document.addEventListener( 'keydown', function( event ) {
    396                         var desktopMenuButton = document.querySelector( '.toggle.close-nav-toggle' );
    397                         var mobileMenuButton = document.querySelector( '.toggle.mobile-nav-toggle' );
    398                         var isMobileMenu = desktopMenuButton ? window.getComputedStyle( desktopMenuButton, null ).getPropertyValue( 'display' ) === 'none' : false;
    399                         var firstMenuItem = isMobileMenu ? mobileMenuButton : desktopMenuButton;
    400 
    401                         var menuLinks = isMobileMenu ?
    402                                 document.querySelectorAll( '.menu-modal .mobile-menu li' ) :
    403                                 document.querySelectorAll( '.menu-modal .expanded-menu li' );
    404 
    405                         var socialLinks = document.querySelectorAll( '.menu-modal .social-menu > li' );
    406                         var hasSocialMenu = document.querySelectorAll( '.menu-modal .social-menu' ).length > 0;
    407                         var lastModalMenuItems = hasSocialMenu ? socialLinks : menuLinks;
    408                         var focusedElementParentLi = twentytwentyFindParents( event.target, 'li' );
    409                         var focusedElementIsInsideModal = twentytwentyFindParents( event.target, '.menu-modal' ).length > 0;
    410                         var lastMenuItem = lastModalMenuItems[lastModalMenuItems.length - 1];
    411 
    412                         var isFirstModalItem = isMobileMenu ?
    413                                 event.target === mobileMenuButton :
    414                                 focusedElementIsInsideModal && event.target === desktopMenuButton;
    415 
    416                         var isLastModalItem = focusedElementIsInsideModal && focusedElementParentLi[0] ?
     439                        var closeMenuButton, mobileMenu, isDesktop, menuLinks, firstLevelmenuLinks, lastMenuLinkToggleButton, lastToogleSubMenuLinkNotOpened, lastMenuLinkHasSubClosedMenu, socialLinks, hasSocialMenu, lastModalMenuItems, focusedElementParentLi, focusedElementIsInsideModal, lastMenuItem, isFirstModalItem, isLastModalItem;
     440
     441                        closeMenuButton = document.querySelector( '.toggle.close-nav-toggle' );
     442                        mobileMenu = document.querySelector( '.mobile-menu' );
     443
     444                        if ( mobileMenu ) {
     445                                return false;
     446                        }
     447
     448                        isDesktop = window.getComputedStyle( mobileMenu, null ).getPropertyValue( 'display' ) === 'none';
     449
     450                        menuLinks = isDesktop ?
     451                                document.querySelectorAll( '.menu-modal .expanded-menu .modal-menu li' ) :
     452                                document.querySelectorAll( '.menu-modal .mobile-menu .modal-menu li' );
     453
     454                        firstLevelmenuLinks = isDesktop ?
     455                                document.querySelectorAll( '.menu-modal .expanded-menu .modal-menu > li' ) :
     456                                document.querySelectorAll( '.menu-modal .mobile-menu .modal-menu > li' );
     457
     458                        if ( firstLevelmenuLinks ) {
     459                                return false;
     460                        }
     461
     462                        lastMenuLinkToggleButton = firstLevelmenuLinks[firstLevelmenuLinks.length - 1].querySelector( '.sub-menu-toggle' ) || undefined;
     463                        lastMenuLinkHasSubClosedMenu = lastMenuLinkToggleButton && ! lastMenuLinkToggleButton.classList.contains( 'active' );
     464
     465                        lastToogleSubMenuLinkNotOpened = isDesktop ?
     466                                document.querySelector( '.menu-modal .expanded-menu .modal-menu .sub-menu .sub-menu-toggle:not(.active)' ) :
     467                                document.querySelector( '.menu-modal .mobile-menu .sub-menu .sub-menu-toggle:not(.active)' );
     468
     469                        socialLinks = document.querySelectorAll( '.menu-modal .social-menu li' );
     470                        hasSocialMenu = document.querySelectorAll( '.menu-modal .social-menu' ).length > 0;
     471                        lastModalMenuItems = hasSocialMenu ? socialLinks : menuLinks;
     472                        focusedElementParentLi = twentytwentyFindParents( event.target, 'li' );
     473                        focusedElementIsInsideModal = twentytwentyFindParents( event.target, '.menu-modal' ).length > 0;
     474
     475                        lastMenuItem = lastModalMenuItems[lastModalMenuItems.length - 1];
     476
     477                        isFirstModalItem = event.target === closeMenuButton;
     478
     479                        isLastModalItem = focusedElementIsInsideModal && focusedElementParentLi[0] ?
    417480                                focusedElementParentLi[0].className === lastMenuItem.className :
    418481                                undefined;
    419482
     483                        if ( lastMenuLinkToggleButton && lastMenuLinkHasSubClosedMenu && ! hasSocialMenu ) { // Last 1st level item has submenu and is closed
     484                                isLastModalItem = event.target === lastMenuLinkToggleButton;
     485                                lastMenuItem = lastMenuLinkToggleButton;
     486                        }
     487                        if ( lastMenuLinkToggleButton && ! lastMenuLinkHasSubClosedMenu && ! hasSocialMenu ) { // Last 1st level item has submenu is opened
     488                                isLastModalItem = event.target === lastToogleSubMenuLinkNotOpened || event.target === menuLinks[menuLinks.length - 1].querySelector( 'a' );
     489                                lastMenuItem = lastToogleSubMenuLinkNotOpened || menuLinks[menuLinks.length - 1].querySelector( 'a' );
     490                        }
     491
    420492                        if ( ! event.shiftKey && event.key === 'Tab' && isLastModalItem ) {
    421493                                // Forward
    422494                                event.preventDefault();
    423                                 firstMenuItem.focus();
     495                                closeMenuButton.focus();
    424496                        }
    425497                        if ( event.shiftKey && event.key === 'Tab' && isFirstModalItem ) {
    426498                                // Backward
    427499                                event.preventDefault();
    428                                 lastMenuItem.querySelector( 'a' ).focus();
     500                                if ( lastMenuItem.querySelector( 'a' ) ) {
     501                                        lastMenuItem.querySelector( 'a' ).focus();
     502                                } else {
     503                                        lastMenuItem.focus();
     504                                }
    429505                        }
    430506                } );
    431507        }
    twentytwenty.primaryMenu = { 
    445521        // by adding the '.focus' class to all 'li.menu-item-has-children' when the focus is on the 'a' element.
    446522        focusMenuWithChildren: function() {
    447523                // Get all the link elements within the primary menu.
    448                 var menu = document.querySelector( '.primary-menu-wrapper' );
    449                 var links = menu.getElementsByTagName( 'a' );
    450                 var i, len;
     524                var menu, links, i, len;
     525
     526                menu = document.querySelector( '.primary-menu-wrapper' );
     527
     528                if ( ! menu ) {
     529                        return false;
     530                }
     531
     532                links = menu.getElementsByTagName( 'a' );
    451533
    452534                // Each time a menu link is focused or blurred, toggle focus.
    453535                for ( i = 0, len = links.length; i < len; i++ ) {
    twentytwenty.primaryMenu = { 
    481563
    482564twentytwenty.toggles = {
    483565
     566        clickedEl: false,
     567
    484568        init: function() {
    485569                // Do the toggle
    486570                this.toggle();
    twentytwenty.toggles = { 
    493577        },
    494578
    495579        performToggle: function( element, instantly ) {
    496                 var toggle, targetString, target, timeOutTime, classToToggle, activeClass;
     580                var self, toggle, _doc, targetString, target, timeOutTime, classToToggle, activeClass;
     581
     582                self = this;
     583                _doc = document;
    497584
    498585                // Get our targets
    499586                toggle = element;
    500587                targetString = toggle.dataset.toggleTarget;
    501588                activeClass = 'active';
    502589
     590                // Elements to focus after modals are closed
     591                if ( ! _doc.querySelectorAll( '.show-modal' ).length ) {
     592                        self.clickedEl = _doc.activeElement;
     593                }
     594
    503595                if ( targetString === 'next' ) {
    504596                        target = toggle.nextSibling;
    505597                } else {
    506                         target = document.querySelector( targetString );
     598                        target = _doc.querySelector( targetString );
    507599                }
    508600
    509601                // Trigger events on the toggle targets before they are toggled
    twentytwenty.toggles = { 
    544636                                toggle.classList.toggle( activeClass );
    545637                        } else {
    546638                                // If not, toggle all toggles with this toggle target
    547                                 document.querySelector( '*[data-toggle-target="' + targetString + '"]' ).classList.toggle( activeClass );
     639                                _doc.querySelector( '*[data-toggle-target="' + targetString + '"]' ).classList.toggle( activeClass );
    548640                        }
    549641
    550642                        // Toggle aria-expanded on the target
    twentytwenty.toggles = { 
    555647
    556648                        // Toggle body class
    557649                        if ( toggle.dataset.toggleBodyClass ) {
    558                                 document.querySelector( 'body' ).classList.toggle( toggle.dataset.toggleBodyClass );
     650                                _doc.querySelector( 'body' ).classList.toggle( toggle.dataset.toggleBodyClass );
    559651                        }
    560652
    561653                        // Check whether to set focus
    562654                        if ( toggle.dataset.setFocus ) {
    563                                 focusElement = document.querySelector( toggle.dataset.setFocus );
     655                                focusElement = _doc.querySelector( toggle.dataset.setFocus );
    564656
    565657                                if ( focusElement ) {
    566658                                        if ( target.classList.contains( activeClass ) ) {
    twentytwenty.toggles = { 
    588680                var self = this;
    589681
    590682                document.querySelectorAll( '*[data-toggle-target]' ).forEach( function( element ) {
    591                         element.addEventListener( 'click', function() {
     683                        element.addEventListener( 'click', function( event ) {
     684                                event.preventDefault();
    592685                                self.performToggle( element );
    593686                        } );
    594687                } );
  • src/wp-content/themes/twentytwenty/classes/class-twentytwenty-customize.php

    diff --git a/src/wp-content/themes/twentytwenty/classes/class-twentytwenty-customize.php b/src/wp-content/themes/twentytwenty/classes/class-twentytwenty-customize.php
    index a0ee4710e0..d87c3f2636 100644
    a b if ( ! class_exists( 'TwentyTwenty_Customize' ) ) { 
    9090                                        $wp_customize,
    9191                                        'header_footer_background_color',
    9292                                        array(
    93                                                 'label'   => esc_html__( 'Header & Footer Background Color', 'twentytwenty' ),
     93                                                'label'   => __( 'Header &amp; Footer Background Color', 'twentytwenty' ),
    9494                                                'section' => 'colors',
    9595                                        )
    9696                                )
    9797                        );
    9898
     99                        // Enable picking an accent color.
     100                        $wp_customize->add_setting(
     101                                'accent_hue_active',
     102                                array(
     103                                        'capability'        => 'edit_theme_options',
     104                                        'sanitize_callback' => array( __CLASS__, 'sanitize_select' ),
     105                                        'transport'         => 'postMessage',
     106                                        'default'           => 'default',
     107                                )
     108                        );
     109
     110                        $wp_customize->add_control(
     111                                'accent_hue_active',
     112                                array(
     113                                        'type'    => 'radio',
     114                                        'section' => 'colors',
     115                                        'label'   => __( 'Primary Color', 'twentytwenty' ),
     116                                        'choices' => array(
     117                                                'default' => __( 'Default', 'twentytwenty' ),
     118                                                'custom'  => __( 'Custom', 'twentytwenty' ),
     119                                        ),
     120                                )
     121                        );
     122
    99123                        /**
    100124                         * Implementation for the accent color.
    101125                         * This is different to all other color options because of the accessibility enhancements.
    if ( ! class_exists( 'TwentyTwenty_Customize' ) ) { 
    136160                                        ),
    137161                                        'type'              => 'theme_mod',
    138162                                        'transport'         => 'postMessage',
    139                                         'sanitize_callback' => array( 'TwentyTwenty_Customize', 'sanitize_accent_accessible_colors' ),
     163                                        'sanitize_callback' => array( __CLASS__, 'sanitize_accent_accessible_colors' ),
    140164                                )
    141165                        );
    142166
    if ( ! class_exists( 'TwentyTwenty_Customize' ) ) { 
    146170                                        $wp_customize,
    147171                                        'accent_hue',
    148172                                        array(
    149                                                 'label'    => esc_html__( 'Accent Color Hue', 'twentytwenty' ),
    150                                                 'section'  => 'colors',
    151                                                 'settings' => 'accent_hue',
    152                                                 'mode'     => 'hue',
     173                                                'section'         => 'colors',
     174                                                'settings'        => 'accent_hue',
     175                                                'description'     => __( 'Apply a custom color for links, buttons, featured images.', 'twentytwenty' ),
     176                                                'mode'            => 'hue',
     177                                                'active_callback' => function() use ( $wp_customize ) {
     178                                                        return ( 'custom' === $wp_customize->get_setting( 'accent_hue_active' )->value() );
     179                                                },
    153180                                        )
    154181                                )
    155182                        );
    if ( ! class_exists( 'TwentyTwenty_Customize' ) ) { 
    164191                        $wp_customize->add_section(
    165192                                'options',
    166193                                array(
    167                                         'title'       => __( 'Theme Options', 'twentytwenty' ),
    168                                         'priority'    => 40,
    169                                         'capability'  => 'edit_theme_options',
    170                                         'description' => __( 'Specific settings for the Twenty Twenty theme.', 'twentytwenty' ),
     194                                        'title'      => __( 'Theme Options', 'twentytwenty' ),
     195                                        'priority'   => 40,
     196                                        'capability' => 'edit_theme_options',
    171197                                )
    172198                        );
    173199
    if ( ! class_exists( 'TwentyTwenty_Customize' ) ) { 
    225251                                array(
    226252                                        'title'       => __( 'Cover Template', 'twentytwenty' ),
    227253                                        'capability'  => 'edit_theme_options',
    228                                         'description' => __( 'Settings for the "Cover Template" page template.', 'twentytwenty' ),
     254                                        'description' => __( 'Settings for the "Cover Template" page template. Add a featured image to use as background.', 'twentytwenty' ),
    229255                                        'priority'    => 42,
    230256                                )
    231257                        );
    if ( ! class_exists( 'TwentyTwenty_Customize' ) ) { 
    294320                                        $wp_customize,
    295321                                        'cover_template_overlay_background_color',
    296322                                        array(
    297                                                 'label'       => __( 'Image Overlay Background Color', 'twentytwenty' ),
    298                                                 'description' => __( 'The color used for the featured image overlay. Defaults to the accent color.', 'twentytwenty' ),
     323                                                'label'       => __( 'Overlay Background Color', 'twentytwenty' ),
     324                                                'description' => __( 'The color used for the overlay. Defaults to the accent color.', 'twentytwenty' ),
    299325                                                'section'     => 'cover_template_options',
    300326                                        )
    301327                                )
    if ( ! class_exists( 'TwentyTwenty_Customize' ) ) { 
    316342                                        $wp_customize,
    317343                                        'cover_template_overlay_text_color',
    318344                                        array(
    319                                                 'label'       => __( 'Image Overlay Text Color', 'twentytwenty' ),
    320                                                 'description' => __( 'The color used for the text in the featured image overlay.', 'twentytwenty' ),
     345                                                'label'       => __( 'Overlay Text Color', 'twentytwenty' ),
     346                                                'description' => __( 'The color used for the text in the overlay.', 'twentytwenty' ),
    321347                                                'section'     => 'cover_template_options',
    322348                                        )
    323349                                )
    if ( ! class_exists( 'TwentyTwenty_Customize' ) ) { 
    337363                        $wp_customize->add_control(
    338364                                'cover_template_overlay_opacity',
    339365                                array(
    340                                         'label'       => __( 'Image Overlay Opacity', 'twentytwenty' ),
     366                                        'label'       => __( 'Overlay Opacity', 'twentytwenty' ),
    341367                                        'description' => __( 'Make sure that the contrast is high enough so that the text is readable.', 'twentytwenty' ),
    342368                                        'section'     => 'cover_template_options',
    343369                                        'type'        => 'range',
    if ( ! class_exists( 'TwentyTwenty_Customize' ) ) { 
    383409                 *
    384410                 * @param string $input The input from the setting.
    385411                 * @param object $setting The selected setting.
     412                 *
     413                 * @return string $input|$setting->default The input from the setting or the default setting.
    386414                 */
    387415                public static function sanitize_select( $input, $setting ) {
    388416                        $input   = sanitize_key( $input );
    if ( ! class_exists( 'TwentyTwenty_Customize' ) ) { 
    393421                /**
    394422                 * Sanitize boolean for checkbox.
    395423                 *
    396                  * @param bool $checked Wethere or not a blox is checked.
     424                 * @param bool $checked Whether or not a box is checked.
     425                 *
     426                 * @return bool
    397427                 */
    398428                public static function sanitize_checkbox( $checked ) {
    399429                        return ( ( isset( $checked ) && true === $checked ) ? true : false );
  • src/wp-content/themes/twentytwenty/classes/class-twentytwenty-svg-icons.php

    diff --git a/src/wp-content/themes/twentytwenty/classes/class-twentytwenty-svg-icons.php b/src/wp-content/themes/twentytwenty/classes/class-twentytwenty-svg-icons.php
    index 3ccccfa48d..c2d9766232 100644
    a b if ( ! class_exists( 'TwentyTwenty_SVG_Icons' ) ) { 
    1818                 * Get the SVG code for the specified icon
    1919                 *
    2020                 * @param string $icon Icon name.
     21                 * @param string $group Icon group.
    2122                 * @param string $color Color.
    2223                 */
    23                 public static function get_svg( $icon, $color = '#1A1A1B' ) {
    24                         $arr = apply_filters( 'twentytwenty_svg_icons', self::$icons );
     24                public static function get_svg( $icon, $group = 'ui', $color = '#1A1A1B' ) {
     25                        if ( 'ui' === $group ) {
     26                                $arr = self::$ui_icons;
     27                        } elseif ( 'social' === $group ) {
     28                                $arr = self::$social_icons;
     29                        } else {
     30                                $arr = array();
     31                        }
    2532                        if ( array_key_exists( $icon, $arr ) ) {
    2633                                $repl = '<svg class="svg-icon" aria-hidden="true" role="img" focusable="false" ';
    2734                                $svg  = preg_replace( '/^<svg /', $repl, trim( $arr[ $icon ] ) ); // Add extra attributes to SVG code.
    if ( ! class_exists( 'TwentyTwenty_SVG_Icons' ) ) { 
    3441                        return null;
    3542                }
    3643
     44                /**
     45                 * GET SOCIAL LINK SVG
     46                 * Detects the social network from a URL and returns the SVG code for its icon.
     47                 *
     48                 * @param string $uri The URL to retrieve SVG for.
     49                 */
     50                public static function get_social_link_svg( $uri ) {
     51                        static $regex_map; // Only compute regex map once, for performance.
     52                        if ( ! isset( $regex_map ) ) {
     53                                $regex_map = array();
     54                                $map       = &self::$social_icons_map; // Use reference instead of copy, to save memory.
     55                                foreach ( array_keys( self::$social_icons ) as $icon ) {
     56                                        $domains            = array_key_exists( $icon, $map ) ? $map[ $icon ] : array( sprintf( '%s.com', $icon ) );
     57                                        $domains            = array_map( 'trim', $domains ); // Remove leading/trailing spaces, to prevent regex from failing to match.
     58                                        $domains            = array_map( 'preg_quote', $domains );
     59                                        $regex_map[ $icon ] = sprintf( '/(%s)/i', implode( '|', $domains ) );
     60                                }
     61                        }
     62                        foreach ( $regex_map as $icon => $regex ) {
     63                                if ( preg_match( $regex, $uri ) ) {
     64                                        return twentytwenty_get_theme_svg( $icon, 'social' );
     65                                }
     66                        }
     67                        return null;
     68                }
     69
    3770                /**
    3871                 * ICON STORAGE
    3972                 * Store the code for all SVGs in an array.
    4073                 *
    4174                 * @var array
    4275                 */
    43                 public static $icons = array(
     76                public static $ui_icons = array(
    4477                        'arrow-down'          => '<svg xmlns="http://www.w3.org/2000/svg" width="22" height="24" viewBox="0 0 22 24">
    4578                <polygon fill="#FFF" points="721.105 856 721.105 874.315 728.083 867.313 730.204 869.41 719.59 880 709 869.41 711.074 867.313 718.076 874.315 718.076 856" transform="translate(-709 -856)"/>
    4679                </svg>',
    if ( ! class_exists( 'TwentyTwenty_SVG_Icons' ) ) { 
    70103                </svg>',
    71104                        'folder'              => '<svg xmlns="http://www.w3.org/2000/svg" width="20" height="19" viewBox="0 0 20 19">
    72105                <path fill="#1A1A1B" d="M2.8,1.85 C2.275329,1.85 1.85,2.27532949 1.85,2.8 L1.85,15.4 C1.85,15.9246705 2.275329,16.35 2.8,16.35 L17.2,16.35 C17.724671,16.35 18.15,15.9246705 18.15,15.4 L18.15,5.5 C18.15,4.97532949 17.724671,4.55 17.2,4.55 L9.1,4.55 C8.8158,4.55 8.550403,4.40796403 8.392757,4.17149517 L6.845094,1.85 L2.8,1.85 Z M17.2,2.85 C18.663555,2.85 19.85,4.03644541 19.85,5.5 L19.85,15.4 C19.85,16.8635546 18.663555,18.05 17.2,18.05 L2.8,18.05 C1.336445,18.05 0.15,16.8635546 0.15,15.4 L0.15,2.8 C0.15,1.33644541 1.336445,0.15 2.8,0.15 L7.3,0.15 C7.5842,0.15 7.849597,0.292035965 8.007243,0.528504833 L9.554906,2.85 L17.2,2.85 Z"/>
     106                </svg>',
     107                        'link'                => '<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18">
     108                <path d="M6.70846497,10.3082552 C6.43780491,9.94641406 6.5117218,9.43367048 6.87356298,9.16301045 C7.23540415,8.89235035 7.74814771,8.96626726 8.01880776,9.32810842 C8.5875786,10.0884893 9.45856383,10.5643487 10.4057058,10.6321812 C11.3528479,10.7000136 12.2827563,10.3531306 12.9541853,9.68145807 L15.3987642,7.23705399 C16.6390369,5.9529049 16.6212992,3.91168563 15.3588977,2.6492841 C14.0964962,1.38688258 12.0552769,1.36914494 10.77958,2.60113525 L9.37230725,4.00022615 C9.05185726,4.31881314 8.53381538,4.31730281 8.21522839,3.99685275 C7.89664141,3.67640269 7.89815174,3.15836082 8.21860184,2.83977385 L9.63432671,1.43240056 C11.5605503,-0.42800847 14.6223793,-0.401402004 16.5159816,1.49220028 C18.4095838,3.38580256 18.4361903,6.44763148 16.5658147,8.38399647 L14.1113741,10.838437 C13.1043877,11.8457885 11.7095252,12.366113 10.2888121,12.2643643 C8.86809903,12.1626156 7.56162126,11.4488264 6.70846497,10.3082552 Z M11.291535,7.6917448 C11.5621951,8.05358597 11.4882782,8.56632952 11.126437,8.83698955 C10.7645959,9.10764965 10.2518523,9.03373274 9.98119227,8.67189158 C9.4124214,7.91151075 8.54143617,7.43565129 7.59429414,7.36781884 C6.6471521,7.29998638 5.71724372,7.64686937 5.04581464,8.31854193 L2.60123581,10.762946 C1.36096312,12.0470951 1.37870076,14.0883144 2.64110228,15.3507159 C3.90350381,16.6131174 5.94472309,16.630855 7.21873082,15.400549 L8.61782171,14.0014581 C8.93734159,13.6819382 9.45538568,13.6819382 9.77490556,14.0014581 C10.0944254,14.320978 10.0944254,14.839022 9.77490556,15.1585419 L8.36567329,16.5675994 C6.43944966,18.4280085 3.37762074,18.401402 1.48401846,16.5077998 C-0.409583822,14.6141975 -0.436190288,11.5523685 1.43418536,9.61600353 L3.88862594,7.16156298 C4.89561225,6.15421151 6.29047483,5.63388702 7.71118789,5.7356357 C9.13190097,5.83738438 10.4383788,6.55117356 11.291535,7.6917448 Z"/>
    73109                </svg>',
    74110                        'search'              => '<svg xmlns="http://www.w3.org/2000/svg" width="23" height="23" viewBox="0 0 23 23">
    75111                <path d="M38.710696,48.0601792 L43,52.3494831 L41.3494831,54 L37.0601792,49.710696 C35.2632422,51.1481185 32.9839107,52.0076499 30.5038249,52.0076499 C24.7027226,52.0076499 20,47.3049272 20,41.5038249 C20,35.7027226 24.7027226,31 30.5038249,31 C36.3049272,31 41.0076499,35.7027226 41.0076499,41.5038249 C41.0076499,43.9839107 40.1481185,46.2632422 38.710696,48.0601792 Z M36.3875844,47.1716785 C37.8030221,45.7026647 38.6734666,43.7048964 38.6734666,41.5038249 C38.6734666,36.9918565 35.0157934,33.3341833 30.5038249,33.3341833 C25.9918565,33.3341833 22.3341833,36.9918565 22.3341833,41.5038249 C22.3341833,46.0157934 25.9918565,49.6734666 30.5038249,49.6734666 C32.7048964,49.6734666 34.7026647,48.8030221 36.1716785,47.3875844 C36.2023931,47.347638 36.2360451,47.3092237 36.2726343,47.2726343 C36.3092237,47.2360451 36.347638,47.2023931 36.3875844,47.1716785 Z" transform="translate(-20 -31)"/>
    if ( ! class_exists( 'TwentyTwenty_SVG_Icons' ) ) { 
    82118                </svg>',
    83119                );
    84120
     121                /**
     122                 * Social Icons – domain mappings.
     123                 *
     124                 * By default, each Icon ID is matched against a .com TLD. To override this behavior,
     125                 * specify all the domains it covers (including the .com TLD too, if applicable).
     126                 *
     127                 * @var array
     128                 */
     129                public static $social_icons_map = array(
     130                        'amazon'      => array(
     131                                'amazon.com',
     132                                'amazon.cn',
     133                                'amazon.in',
     134                                'amazon.fr',
     135                                'amazon.de',
     136                                'amazon.it',
     137                                'amazon.nl',
     138                                'amazon.es',
     139                                'amazon.co',
     140                                'amazon.ca',
     141                        ),
     142                        'apple'       => array(
     143                                'apple.com',
     144                                'itunes.com',
     145                        ),
     146                        'behance'     => array(
     147                                'behance.net',
     148                        ),
     149                        'codepen'     => array(
     150                                'codepen.io',
     151                        ),
     152                        'facebook'    => array(
     153                                'facebook.com',
     154                                'fb.me',
     155                        ),
     156                        'feed'        => array(
     157                                'feed',
     158                        ),
     159                        'google-plus' => array(
     160                                'plus.google.com',
     161                        ),
     162                        'lastfm'      => array(
     163                                'last.fm',
     164                        ),
     165                        'mail'        => array(
     166                                'mailto:',
     167                        ),
     168                        'slideshare'  => array(
     169                                'slideshare.net',
     170                                'slideshare.com',
     171                        ),
     172                        'pocket'      => array(
     173                                'getpocket.com',
     174                        ),
     175                        'twitch'      => array(
     176                                'twitch.tv',
     177                        ),
     178                        'wordpress'   => array(
     179                                'wordpress.com',
     180                                'wordpress.org',
     181                        ),
     182                );
     183
     184                /**
     185                 * Social Icons – svg sources.
     186                 *
     187                 * @var array
     188                 */
     189                public static $social_icons = array(
     190                        '500px'       => '<svg width="14" height="18" viewBox="0 0 14 18" xmlns="http://www.w3.org/2000/svg"><path d="M2.448 11.848c-.047-.152 0-.26.14-.325.141-.065.253-.109.335-.132.14-.047.263-.07.369-.07.105 0 .176.058.21.175.118.317.264.624.44.923s.358.554.545.765V9.756c0-.422.088-.835.264-1.24.176-.403.427-.764.756-1.08.328-.34.714-.6 1.16-.782a3.599 3.599 0 011.37-.273c.493 0 .956.094 1.39.281.433.188.811.443 1.133.765.323.322.578.7.765 1.134s.281.89.281 1.37c0 .493-.093.956-.281 1.39s-.442.811-.765 1.133c-.322.323-.7.578-1.133.765s-.897.281-1.39.281c-.198 0-.38-.008-.544-.026a3.053 3.053 0 01-.58-.132.64.64 0 01-.132-.132c-.064-.076-.061-.237.009-.483.012-.059.05-.155.114-.29.065-.135.167-.185.308-.15.011 0 .111.024.299.07.187.048.345.071.474.071.692 0 1.28-.24 1.767-.72.486-.481.73-1.067.73-1.758 0-.317-.062-.624-.185-.923s-.302-.56-.536-.783c-.235-.234-.504-.413-.81-.536s-.626-.184-.966-.184c-.34 0-.662.07-.967.21-.304.141-.574.34-.808.598-.211.223-.372.475-.484.756s-.167.563-.167.844v4.166c.364.21.75.375 1.16.492a4.783 4.783 0 003.12-.193 4.966 4.966 0 001.574-1.037 4.993 4.993 0 001.037-1.565c.246-.586.37-1.201.37-1.845a4.774 4.774 0 00-1.407-3.393A4.758 4.758 0 009.857 5.51a4.798 4.798 0 00-1.854-.36c-.645 0-1.263.12-1.855.36-.592.24-1.11.589-1.556 1.046l-.325.325c-.217.217-.366.396-.448.536l-.018.018c-.07.082-.149.152-.237.21-.088.06-.255.06-.5 0a.925.925 0 01-.361-.149c-.112-.076-.167-.167-.167-.272V.405c0-.094.038-.182.114-.264a.379.379 0 01.29-.123L11.712 0c.152 0 .243.076.272.229s.044.263.044.334-.012.179-.035.325c-.024.146-.111.22-.264.22H3.573v4.886c.281-.293.633-.58 1.055-.86s.773-.481 1.054-.599c.364-.152.742-.27 1.134-.351a5.786 5.786 0 012.364 0c.387.082.756.2 1.108.351.351.141.685.32 1.002.537.316.216.61.46.879.73a5.982 5.982 0 011.265 1.862 5.843 5.843 0 01.457 2.285c0 .399-.038.791-.114 1.178-.076.387-.19.756-.343 1.108s-.334.685-.545 1.002a5.754 5.754 0 01-1.6 1.6 5.45 5.45 0 01-1.001.526c-.352.165-.72.285-1.108.36a6.08 6.08 0 01-2.337 0 5.137 5.137 0 01-1.125-.36 5.198 5.198 0 01-.994-.527 6.12 6.12 0 01-1.6-1.6 5.154 5.154 0 01-.623-1.23 1.052 1.052 0 01-.053-.158zm4.201-.984c0-.024.006-.05.018-.08s.04-.061.088-.096l.65-.668-.668-.668c-.059-.047-.076-.109-.053-.185a.62.62 0 01.194-.255.371.371 0 01.15-.14.369.369 0 01.149-.035c.035 0 .061.003.079.008.017.006.032.021.044.044l.668.668.65-.65a.2.2 0 01.21-.053.803.803 0 01.413.387c.042.082.027.158-.043.228l-.65.668.632.633c.024.035.05.091.08.167.029.076-.021.185-.15.325a.778.778 0 01-.167.132.339.339 0 01-.167.044l-.105-.035a.17.17 0 01-.088-.07l-.633-.615c-.023.023-.132.134-.325.334-.194.199-.308.31-.343.334 0 .011-.012.023-.035.035s-.059.017-.106.017a.36.36 0 01-.158-.044.605.605 0 01-.158-.114v-.018c-.035-.035-.073-.076-.114-.123s-.062-.105-.062-.175zm1.424-8.912c.55 0 1.093.052 1.626.158s1.052.258 1.556.457c.457.199.879.425 1.265.677.387.251.75.536 1.09.852.094.094.12.188.08.281a1.168 1.168 0 01-.203.3c-.07.07-.138.134-.202.192a.298.298 0 01-.202.088.216.216 0 01-.08-.017.177.177 0 01-.078-.07 11.99 11.99 0 00-1.046-.792 5.607 5.607 0 00-1.029-.544 6.76 6.76 0 00-1.344-.422 7.2 7.2 0 00-1.433-.14c-.422 0-.858.043-1.31.13a7.633 7.633 0 00-1.31.379c-.14.047-.242.009-.307-.114a5.898 5.898 0 00-.15-.273 19.104 19.104 0 01-.06-.22.27.27 0 01-.01-.149c0-.047.015-.088.044-.123s.062-.065.097-.088a7.153 7.153 0 011.424-.413c.527-.1 1.055-.15 1.582-.15zm5.678 13.025c.175.164.26.29.255.377s-.039.15-.097.185l-.044.044-.026.026c-.364.364-.765.692-1.205.985s-.899.545-1.38.756c-.503.222-1.025.386-1.564.492a8.452 8.452 0 01-3.252 0 7.353 7.353 0 01-1.564-.492c-.48-.2-.938-.446-1.372-.739s-.837-.627-1.212-1.002a8.226 8.226 0 01-1.758-2.601 12.433 12.433 0 01-.317-.932 6.897 6.897 0 01-.21-.95c-.024-.14.035-.234.175-.28.14-.047.24-.077.299-.088.152-.024.281-.024.387 0s.164.093.175.21v.036c.024.094.068.284.132.571.065.287.179.63.343 1.028.164.41.375.806.633 1.187.258.38.557.741.896 1.081.329.328.683.618 1.064.87.38.252.782.472 1.204.66.434.187.885.327 1.353.421a7.154 7.154 0 002.83 0 6.72 6.72 0 001.354-.422 8.15 8.15 0 001.213-.668 6.895 6.895 0 001.055-.861l.052-.07a.26.26 0 01.123-.07.198.198 0 01.141.017.604.604 0 01.14.079c.06.041.118.09.176.15z"/></svg>',
     191
     192                        'amazon'      => '<svg width="18" height="16" viewBox="0 0 18 15" xmlns="http://www.w3.org/2000/svg"><path d="M16.004 11.571c.164-.07.29-.035.378.106.088.14.056.27-.097.386a8.912 8.912 0 01-1.635.95c-.586.281-1.199.516-1.838.703a13.92 13.92 0 01-3.842.563c-.867 0-1.706-.076-2.515-.229a13.056 13.056 0 01-4.484-1.74 12.657 12.657 0 01-1.899-1.442c-.082-.07-.094-.147-.035-.23.059-.081.14-.087.246-.017.633.376 1.301.704 2.005.985.703.293 1.43.542 2.18.747.75.206 1.524.361 2.321.466.786.106 1.583.159 2.392.159.551 0 1.114-.03 1.688-.088a17.495 17.495 0 001.723-.264 18.569 18.569 0 001.724-.44 17.07 17.07 0 001.688-.615zm1.934-1.09c.106.129.077.55-.088 1.266-.164.715-.51 1.29-1.037 1.723-.07.07-.138.091-.202.062s-.08-.085-.044-.167c.129-.305.278-.718.448-1.24.17-.522.196-.859.08-1.011-.13-.153-.464-.211-1.003-.176-.54.035-.967.07-1.284.105-.105 0-.164-.029-.176-.087-.011-.06.024-.124.106-.194.563-.387 1.21-.566 1.943-.536.733.03 1.152.114 1.257.255zM9.99 3.834v-.247c0-.21-.006-.43-.018-.659a1.181 1.181 0 00-.193-.607c-.106-.164-.252-.281-.44-.351s-.369-.106-.545-.106c-.34 0-.642.088-.905.264-.264.176-.431.44-.502.791a.48.48 0 01-.123.229.269.269 0 01-.193.088L5.348 3.06a.466.466 0 01-.185-.114c-.053-.053-.073-.132-.062-.238.2-1.043.695-1.755 1.486-2.136A5.592 5.592 0 019.04 0c.422 0 .885.067 1.39.202s.92.36 1.248.677c.422.41.657.874.703 1.39s.07 1.06.07 1.635v2.743c0 .41.074.73.22.958.147.23.297.449.449.66.059.094.09.182.097.264a.288.288 0 01-.097.228c-.2.141-.434.331-.703.572-.27.24-.493.436-.669.589a.278.278 0 01-.202.088.486.486 0 01-.22-.053c-.281-.246-.477-.445-.589-.598a9.661 9.661 0 01-.395-.598c-.493.493-.944.833-1.354 1.02-.41.188-.932.282-1.566.282-.738 0-1.362-.23-1.872-.686-.51-.457-.765-1.143-.765-2.058 0-.727.176-1.327.527-1.802A3.337 3.337 0 016.684 4.43a5.668 5.668 0 011.635-.422c.61-.07 1.167-.129 1.67-.176zM9.638 7.49c.176-.316.279-.624.308-.923a9.65 9.65 0 00.044-.94V5.24c-.633 0-1.231.109-1.794.326s-.844.694-.844 1.433c0 .387.1.7.3.94s.462.361.79.361c.247 0 .478-.073.695-.22.217-.146.384-.342.501-.589z"/></svg>',
     193
     194                        'apple'       => '<svg width="16" height="19" viewBox="0 0 16 19" xmlns="http://www.w3.org/2000/svg"><path d="M14.94 6.186c-.633.21-1.143.68-1.53 1.406-.386.727-.58 1.418-.58 2.074a4.7 4.7 0 00.669 2.409c.445.761 1.054 1.248 1.828 1.459-.106.363-.252.75-.44 1.16-.199.398-.422.785-.668 1.16s-.504.72-.773 1.037a5.975 5.975 0 01-.826.756 2.503 2.503 0 01-.739.343c-.27.076-.574.114-.914.114-.21 0-.442-.023-.694-.07s-.548-.14-.888-.282a4.333 4.333 0 00-.738-.263 2.533 2.533 0 00-.598-.088c-.14 0-.354.04-.641.123-.287.082-.636.205-1.046.37-.223.07-.428.128-.615.175-.188.047-.346.07-.475.07-.363 0-.709-.073-1.037-.22s-.662-.354-1.002-.624a9.465 9.465 0 01-1.389-1.582 10.162 10.162 0 01-1.01-1.837 10.446 10.446 0 01-.625-2.03C.07 11.143 0 10.428 0 9.702c0-.715.105-1.407.316-2.075a6.08 6.08 0 01.932-1.784c.398-.521.878-.94 1.441-1.257s1.19-.474 1.88-.474c.423 0 .792.04 1.108.123.317.082.616.193.897.334.258.152.507.26.747.325s.483.097.73.097c.187 0 .392-.018.615-.053.222-.035.439-.1.65-.193.539-.211.99-.37 1.353-.475.364-.105.65-.158.862-.158.527 0 1.005.079 1.432.237.428.158.818.396 1.17.712.14.14.278.305.412.492.135.188.267.399.396.633zM7.557 4.217c0-.492.097-.96.29-1.406.194-.445.46-.879.8-1.3.328-.364.715-.66 1.16-.888.446-.229.914-.39 1.406-.484a4.55 4.55 0 01-.254 1.494c-.17.492-.425.944-.765 1.354-.387.422-.794.732-1.222.931-.428.2-.9.3-1.415.3z"/></svg>',
     195
     196                        'bandcamp'    => '<svg width="19" height="6" viewBox="0 0 19 6" xmlns="http://www.w3.org/2000/svg"><path d="M.32 5.811L3.449.361h6.68l-3.13 5.45H.32zm13.289-3.445c.07.105.14.214.21.325.071.111.13.225.177.343a2.953 2.953 0 01.105.808c0 .14-.009.276-.026.405a2.422 2.422 0 01-.08.369c-.034.129-.078.246-.131.351-.053.106-.114.211-.185.317a2.01 2.01 0 01-.237.263 1.046 1.046 0 01-.29.194 2.079 2.079 0 01-.378.132c-.123.029-.255.043-.395.043a2.389 2.389 0 01-.422-.035c-.07 0-.141-.008-.211-.026s-.14-.044-.211-.08a1.46 1.46 0 01-.317-.175 1.12 1.12 0 01-.14-.167 1.724 1.724 0 01-.106-.184h-.035v.562h-.808V.361h.878v2.005a.73.73 0 01.106-.14l.105-.106c.059-.036.109-.07.15-.106.04-.035.085-.07.132-.105a6.737 6.737 0 01.351-.106.492.492 0 01.185-.035h.167c.164 0 .313.012.448.035.135.024.255.059.36.106.141.058.258.123.352.193.094.07.176.158.246.264zm-.457 1.968a.93.93 0 00.044-.228 2.46 2.46 0 01.026-.229c0-.093-.003-.184-.009-.272a.773.773 0 00-.061-.255.938.938 0 00-.097-.246c-.04-.07-.079-.14-.114-.21-.059-.06-.114-.112-.167-.16s-.114-.087-.185-.122c-.07-.059-.149-.097-.237-.114s-.173-.027-.255-.027c-.175 0-.34.035-.492.106a.853.853 0 00-.351.28 1.377 1.377 0 00-.211.45 2.007 2.007 0 00-.044.843l.044.255a.938.938 0 00.096.246c.041.07.08.14.115.21.058.06.117.112.175.159a.909.909 0 00.211.123.688.688 0 00.211.08c.082.017.164.026.246.026.094 0 .182-.012.264-.036s.158-.058.228-.105a.868.868 0 00.194-.132.972.972 0 00.158-.184 2.87 2.87 0 01.123-.22.616.616 0 00.088-.238zm3.973.668a1.1 1.1 0 00.22-.307 1.12 1.12 0 00.096-.396h.879c-.059.27-.135.501-.229.695a1.66 1.66 0 01-.369.5c-.164.141-.345.247-.545.317-.199.07-.427.106-.685.106-.164 0-.317-.018-.457-.053a3.004 3.004 0 01-.387-.123 2.1 2.1 0 01-.343-.194c-.1-.07-.184-.146-.255-.228a1.352 1.352 0 01-.228-.299 2.92 2.92 0 01-.158-.334c-.035-.14-.068-.278-.097-.413a2.045 2.045 0 010-.853c.03-.14.062-.27.097-.386.058-.14.117-.267.176-.378s.128-.22.21-.325c.07-.094.159-.176.264-.247.106-.07.217-.128.334-.175.129-.059.27-.103.422-.132a2.255 2.255 0 011.125.062c.105.035.205.073.299.114.094.04.181.085.263.132.07.07.141.143.211.22.07.075.13.155.176.237.035.093.07.193.106.298.035.106.058.217.07.334h-.879a.964.964 0 00-.114-.325.967.967 0 00-.202-.237c-.07-.059-.159-.103-.264-.132s-.217-.044-.334-.044a.701.701 0 00-.185.026c-.064.018-.12.033-.167.044-.07.024-.14.053-.21.088a.67.67 0 00-.317.317c-.035.07-.07.146-.105.228-.036.106-.062.217-.08.334s-.026.252-.026.404a3.348 3.348 0 00.035.493c.024.07.05.146.08.228a.74.74 0 00.096.194c.035.07.085.131.15.184.064.053.12.097.167.132.07.035.149.061.237.079a1.299 1.299 0 00.633-.026.819.819 0 00.29-.159z"/></svg>',
     197
     198                        'behance'     => '<svg width="19" height="12" viewBox="0 0 19 12" xmlns="http://www.w3.org/2000/svg"><path d="M16.52 2.396h-4.499V1.342h4.499v1.054zM9.069 6.649c.176.246.308.512.395.8.088.286.132.606.132.957 0 .281-.026.542-.079.782-.053.24-.132.46-.237.659-.117.21-.25.398-.396.562a3.975 3.975 0 01-.483.457 4.816 4.816 0 01-.597.317c-.211.093-.434.175-.668.246-.223.046-.457.087-.703.123a5.213 5.213 0 01-.738.052H.318V.427h5.201c.258 0 .51.02.756.062.246.04.486.09.72.15.211.046.405.113.58.201.176.088.346.185.51.29.152.106.29.235.413.387.123.152.231.316.325.492.082.152.144.34.185.562.04.223.061.469.061.738 0 .258-.03.507-.088.747-.058.24-.158.448-.299.624-.117.188-.272.36-.465.518-.194.159-.413.29-.66.396.352.105.65.246.897.422.246.175.451.386.615.632zM2.672 4.927h2.53c.223 0 .425-.015.607-.044.182-.03.343-.097.483-.203.14-.105.246-.234.317-.386.07-.152.105-.352.105-.598a2.03 2.03 0 00-.026-.334.81.81 0 00-.114-.298c-.047-.07-.1-.138-.159-.202s-.134-.126-.228-.185a9.83 9.83 0 00-.237-.114 1.404 1.404 0 00-.29-.097 5.861 5.861 0 01-.317-.044 1.921 1.921 0 00-.316-.026H2.672v2.53zm4.499 3.338c0-.28-.041-.518-.123-.711s-.205-.355-.369-.484a1.573 1.573 0 00-.545-.263 2.697 2.697 0 00-.72-.088H2.672v3.058h2.671a3.8 3.8 0 00.36-.018c.124-.012.238-.03.343-.053.106-.035.202-.07.29-.105.088-.035.179-.082.273-.14a.959.959 0 00.228-.185.741.741 0 00.158-.273c.047-.082.088-.184.123-.307s.053-.267.053-.43zm11.141-.105h-5.8c0 .281.05.568.15.861s.237.521.413.685c.152.153.349.273.589.36.24.089.512.132.817.132.223 0 .43-.032.624-.096.193-.065.372-.161.536-.29.152-.106.275-.211.369-.316s.17-.246.228-.422h1.933c-.152.539-.351.972-.597 1.3a3.439 3.439 0 01-.844.809c-.316.21-.667.374-1.054.492s-.808.175-1.265.175a4.577 4.577 0 01-1.722-.316 4.25 4.25 0 01-.686-.369 3.793 3.793 0 01-.58-.475 3.888 3.888 0 01-.474-.623 4.664 4.664 0 01-.37-.747 5.992 5.992 0 01-.201-.791 4.86 4.86 0 010-1.757c.052-.282.131-.557.237-.826.082-.258.193-.495.334-.712a5.31 5.31 0 01.474-.624 4.11 4.11 0 01.607-.5c.216-.147.448-.285.694-.414.257-.105.527-.184.808-.237a4.76 4.76 0 011.819.018c.299.064.583.16.852.29.246.14.472.298.677.474.205.176.39.37.553.58.176.223.32.466.43.73a5.57 5.57 0 01.423 1.721c.029.323.038.618.026.888zm-2.214-1.441c-.035-.258-.094-.492-.176-.703s-.187-.387-.316-.527a1.301 1.301 0 00-.536-.343 2.19 2.19 0 00-.73-.114 1.96 1.96 0 00-.474.053c-.14.035-.275.088-.404.158a1.803 1.803 0 00-.308.176c-.1.07-.184.152-.255.246-.07.082-.125.17-.166.263-.041.094-.08.193-.115.299a1.135 1.135 0 00-.105.492h3.585z"/></svg>',
     199
     200                        'codepen'     => '<svg width="18" height="19" viewBox="0 0 18 19" xmlns="http://www.w3.org/2000/svg"><path d="M18 6.38v5.5c0 .012-.003.03-.009.053a.29.29 0 00-.009.07v.054a.873.873 0 01-.044.132 2.497 2.497 0 01-.061.132c-.012 0-.018.003-.018.01v.008a.078.078 0 01-.009.035c-.005.012-.014.018-.026.018a.235.235 0 01-.044.061l-.026.027c-.024.012-.041.026-.053.044s-.024.032-.035.044c-.012 0-.02.003-.027.009l-.026.026-8.147 5.413a.135.135 0 01-.052.017c-.012 0-.024.006-.036.018-.023.012-.04.018-.052.018s-.03.005-.053.017c-.035.012-.08.024-.132.035a.69.69 0 01-.3 0 1.357 1.357 0 01-.131-.035.122.122 0 01-.053-.009l-.053-.026a.078.078 0 01-.035-.009l-.053-.026-8.129-5.413a.77.77 0 01-.123-.114 2.032 2.032 0 00-.106-.115H.15c-.006 0-.01-.006-.01-.017-.01 0-.017-.003-.017-.01v-.008a2.499 2.499 0 01-.061-.132.873.873 0 01-.044-.133v-.052c0-.024-.003-.047-.01-.071S0 11.91 0 11.898V6.38c0-.012.003-.03.009-.053s.009-.047.009-.07v-.053a.873.873 0 01.044-.132c.017-.042.038-.086.061-.133.012 0 .018-.003.018-.009v-.008l.017-.018a1.15 1.15 0 01.23-.23L8.515.264C8.54.25 8.557.245 8.57.245s.023-.006.035-.018A.135.135 0 018.657.21c.012 0 .03-.006.053-.018a.819.819 0 01.58 0c.024 0 .041.003.053.009l.053.026c.012 0 .023.003.035.01l.053.026 8.129 5.412a.77.77 0 01.123.114c.035.042.07.08.106.115h.008c.006 0 .01.006.01.018.011 0 .017.003.017.008v.01c.023.046.044.09.061.132a.873.873 0 01.044.132v.053c0 .023.003.047.01.07s.008.041.008.053zm-9.009 4.46l2.551-1.71-2.55-1.71L6.44 9.13l2.551 1.71zm.845-4.918l3.22 2.168 2.551-1.728-5.771-3.825v3.385zm-1.69 0V2.537l-5.77 3.825 2.55 1.728 3.22-2.168zM3.397 9.13L1.689 7.967v2.31L3.396 9.13zm1.53 1.023l-2.55 1.727 5.77 3.826v-3.385l-3.22-2.168zm4.91 2.168v3.385l5.771-3.826-2.551-1.727-3.22 2.168zm4.75-3.19l1.707 1.163v-2.31L14.587 9.13z"/></svg>',
     201
     202                        'deviantart'  => '<svg width="12" height="19" viewBox="0 0 12 19" xmlns="http://www.w3.org/2000/svg"><path d="M11.48.139h-.01v3.608L8.32 9.753l.29.284h2.86v4.513H6.14l-.46.249-1.58 3.003-.32.337H.68v-3.607l3.15-6.006-.29-.284H.68V3.747h5.35l.47-.267L8.08.477 8.4.139z"/></svg>',
     203
     204                        'digg'        => '<svg width="18" height="11" viewBox="0 0 18 11" xmlns="http://www.w3.org/2000/svg"><path d="M5.41 2.554h1.793v6.117H5.41V2.554zM2.879.023h1.793V8.67H-.004V2.554h2.883V.023zm0 3.973h-1.09V7.23h1.09V3.996zM5.41.023h1.793V1.85H5.41V.023zm2.496 2.531h4.676v8.297H7.906V9.41h2.883V8.67H7.906V2.554zM9.7 7.23h1.09V3.995h-1.09V7.23zm8.297-4.676v8.297H13.32V9.41h2.883V8.67H13.32V2.554h4.676zm-1.793 1.441h-1.09V7.23h1.09V3.995z"/></svg>',
     205
     206                        'dribbble'    => '<svg width="19" height="19" viewBox="0 0 19 19" xmlns="http://www.w3.org/2000/svg"><path d="M9.68.139c1.254 0 2.426.234 3.516.703 1.09.48 2.042 1.128 2.856 1.943s1.456 1.766 1.925 2.856.703 2.256.703 3.498c0 1.242-.234 2.408-.703 3.498s-1.11 2.042-1.925 2.856-1.767 1.462-2.856 1.943c-1.102.468-2.274.703-3.516.703s-2.408-.235-3.498-.703c-1.09-.48-2.042-1.128-2.856-1.943s-1.462-1.766-1.943-2.856A8.758 8.758 0 01.68 9.139c0-1.242.234-2.408.703-3.498.48-1.09 1.128-2.042 1.943-2.856S5.092 1.323 6.182.842A8.758 8.758 0 019.68.14zm5.977 4.148a7.736 7.736 0 01-1.16 1.16 12.69 12.69 0 01-1.301.932c-.516.328-1.125.639-1.828.932.093.176.181.36.263.554.082.193.158.383.229.57.035.06.064.121.088.185.023.065.052.132.088.203a12.923 12.923 0 011.88-.106c.622.012 1.178.041 1.67.088s.897.1 1.213.158c.328.059.522.094.58.106 0-.914-.155-1.779-.466-2.593a7.84 7.84 0 00-1.256-2.189zM9.68 1.44a7.741 7.741 0 00-1.793.21c.059.083.182.253.37.51.187.27.412.604.676 1.002.264.399.56.856.888 1.372.316.503.632 1.043.949 1.617 1.371-.516 2.37-1.081 2.997-1.697.627-.615.964-.975 1.01-1.08a7.29 7.29 0 00-1.09-.81 8.176 8.176 0 00-1.22-.606 6.813 6.813 0 00-1.346-.378 7.332 7.332 0 00-1.44-.14zm-3.234.738a7.587 7.587 0 00-1.512.932 8.169 8.169 0 00-1.257 1.248 7.56 7.56 0 00-.94 1.494 7.7 7.7 0 00-.58 1.705c.093 0 .345-.006.755-.018.41 0 .938-.026 1.582-.079a30.18 30.18 0 002.198-.272c.832-.13 1.699-.31 2.601-.545a45.446 45.446 0 00-.966-1.617 92.45 92.45 0 00-1.881-2.848zm-4.43 6.96c0 .493.047.974.14 1.442a7.136 7.136 0 001.002 2.584c.247.399.522.768.827 1.108l.492-.739c.281-.41.685-.884 1.213-1.423a14.583 14.583 0 011.916-1.618c.761-.539 1.64-.966 2.636-1.283l.15-.061a.938.938 0 01.132-.044l-.29-.65c-.1-.223-.203-.44-.308-.651-.973.293-1.916.516-2.83.668s-1.734.26-2.461.325c-.727.065-1.324.097-1.793.097-.469.012-.744.012-.826 0v.246zm7.664 7.7c.55 0 1.078-.059 1.582-.176.504-.117.984-.27 1.441-.457a11.367 11.367 0 00-.158-.79c-.07-.376-.17-.818-.299-1.328a31.427 31.427 0 00-.492-1.714c-.199-.633-.433-1.3-.703-2.004 0 .024-.006.036-.018.036h-.017c-1.09.375-2.01.826-2.76 1.353-.762.516-1.38 1.017-1.854 1.503-.475.486-.824.917-1.046 1.292a8.306 8.306 0 00-.387.668c.656.492 1.386.885 2.188 1.178s1.644.439 2.523.439zm4.324-1.336a8.092 8.092 0 001.196-.984c.363-.375.685-.78.966-1.213s.516-.897.703-1.389.323-1.008.405-1.547a8.474 8.474 0 00-.51-.158 11.686 11.686 0 00-2.531-.316c-.551-.012-1.131.029-1.74.123.257.691.474 1.347.65 1.969.176.609.325 1.157.448 1.643s.214.894.273 1.222c.07.316.117.533.14.65z"/></svg>',
     207
     208                        'etsy'        => '<svg width="16" height="19" viewBox="0 0 16 19" xmlns="http://www.w3.org/2000/svg"><path d="M.83.841A.423.423 0 01.9.543C.96.46 1.076.42 1.251.42c.082 0 .333.006.754.017.422.012.924.024 1.51.036s1.21.023 1.876.035 1.287.017 1.86.017c2.35 0 3.947-.064 4.79-.193.842-.128 1.467-.193 1.877-.193.21.012.35.082.42.21s.106.246.106.352-.035.26-.105.465a2.25 2.25 0 00-.105.728c0 .28.023.558.07.833.046.275.07.547.07.816 0 .245-.08.412-.237.5a.901.901 0 01-.43.131c-.105 0-.19-.029-.254-.087s-.097-.193-.097-.404c-.011-.398-.16-.824-.447-1.28-.287-.457-1.868-.685-4.746-.685-1.45 0-2.31.097-2.579.29s-.403.517-.403.973v4.456c0 .246.038.413.114.5.076.088.213.132.412.132h4.176c.397 0 .775-.117 1.131-.35s.565-.644.623-1.229c.012-.292.056-.47.132-.535s.196-.097.36-.097c.151 0 .28.065.385.193.106.13.152.334.14.614-.034.293-.072.597-.113.913-.041.316-.062.678-.062 1.087 0 .422.03.825.088 1.211.058.386.088.731.088 1.035 0 .292-.14.46-.421.5s-.457-.102-.527-.43c-.07-.292-.228-.646-.473-1.061-.246-.415-.825-.623-1.737-.623h-3.72c-.21 0-.362.067-.456.202-.093.134-.14.371-.14.71v4.737c0 .421.108.813.325 1.176s.74.543 1.57.543c.42 0 .912.006 1.473.018a20.7 20.7 0 001.685-.07 10.113 10.113 0 001.631-.263c.527-.13.965-.328 1.316-.597.28-.222.485-.517.614-.886.129-.368.24-.833.333-1.395.047-.245.26-.339.64-.28.38.058.553.386.518.982-.011.28-.108.67-.29 1.167-.18.497-.271.938-.271 1.324v.957c0 .345-.14.517-.421.517-.246 0-.445-.047-.597-.14-.152-.094-.772-.14-1.86-.14-.537 0-1.35.005-2.438.017-1.088 0-2.207.006-3.36.018-1.152.011-2.213.017-3.184.017-.97.012-1.614.018-1.93.018-.222 0-.37-.035-.447-.106s-.114-.175-.114-.315.044-.258.132-.351.23-.14.43-.14c.187 0 .579-.088 1.175-.264.596-.175.895-.79.895-1.842V3.858c0-.561-.1-1.088-.299-1.579-.198-.491-.649-.772-1.35-.842-.281-.035-.439-.102-.474-.202S.83 1.005.83.841z"/></svg>',
     209
     210                        'facebook'    => '<svg width="11" height="19" viewBox="0 0 11 19" xmlns="http://www.w3.org/2000/svg"><path d="M7.05 18.437H3.745V10.21H.968V7.011h2.777V4.656c0-.692.1-1.295.3-1.81.198-.528.477-.97.834-1.328a3.367 3.367 0 011.292-.8A4.903 4.903 0 017.86.437c.586 0 1.107.015 1.564.044.457.03.756.062.897.097v2.847H8.632c-.668 0-1.099.144-1.292.431-.193.287-.29.66-.29 1.116v2.04h3.164l-.422 3.199H7.05v8.226z"/></svg>',
     211
     212                        'feed'        => '<svg width="19" height="19" viewBox="0 0 19 19" xmlns="http://www.w3.org/2000/svg"><path d="M5.12 15.714c0 .668-.232 1.233-.697 1.696a2.321 2.321 0 01-1.703.695c-.67 0-1.238-.232-1.703-.695a2.303 2.303 0 01-.697-1.696c0-.645.232-1.204.697-1.679a2.292 2.292 0 011.703-.712c.67 0 1.238.235 1.703.704.465.468.697 1.03.697 1.687zM.32 9.702V6.257c1.647 0 3.188.31 4.624.932 1.447.632 2.708 1.485 3.785 2.557s1.926 2.33 2.55 3.77a11.6 11.6 0 01.935 4.624H8.755a8.552 8.552 0 00-.635-3.243 8.383 8.383 0 00-1.835-2.734A8.436 8.436 0 001.979 9.86 8.652 8.652 0 00.32 9.702zm0-6.117V.14c2.482 0 4.812.474 6.988 1.424 2.188.937 4.097 2.223 5.727 3.858s2.92 3.542 3.873 5.722c.941 2.191 1.412 4.523 1.412 6.996h-3.459c0-2.004-.382-3.89-1.147-5.66s-1.806-3.314-3.123-4.632a14.708 14.708 0 00-4.624-3.12C4.202 3.966 2.32 3.585.32 3.585z"/></svg>',
     213
     214                        'flickr'      => '<svg width="18" height="9" viewBox="0 0 18 9" xmlns="http://www.w3.org/2000/svg"><path d="M4.08 8.179c-.563 0-1.09-.105-1.582-.316a4.082 4.082 0 01-1.292-.87 4.274 4.274 0 01-.888-1.31C.108 5.19.002 4.663.002 4.1s.105-1.09.316-1.582c.211-.492.501-.923.87-1.292.37-.37.806-.665 1.31-.888A3.973 3.973 0 014.08.023c.563 0 1.09.105 1.582.316.492.211.923.501 1.292.87.37.37.665.806.888 1.31.21.492.316 1.02.316 1.582s-.105 1.09-.316 1.582c-.211.492-.501.923-.87 1.292-.37.369-.806.665-1.31.888-.492.21-1.02.316-1.582.316zm9.844 0c-.563 0-1.09-.105-1.582-.316a4.082 4.082 0 01-1.292-.87 4.274 4.274 0 01-.888-1.31c-.21-.492-.316-1.02-.316-1.582s.105-1.09.316-1.582c.211-.492.501-.923.87-1.292.37-.37.806-.665 1.31-.888a3.973 3.973 0 011.582-.316c.562 0 1.09.105 1.582.316.492.211.923.501 1.292.87.369.37.665.806.888 1.31.21.492.316 1.02.316 1.582s-.106 1.09-.316 1.582c-.211.492-.501.923-.87 1.292-.37.369-.806.665-1.31.888-.492.21-1.02.316-1.582.316z"/></svg>',
     215
     216                        'foursquare'  => '<svg width="14" height="19" viewBox="0 0 14 19" xmlns="http://www.w3.org/2000/svg"><path d="M12.28.101c.727 0 1.195.196 1.406.589.211.392.246.958.106 1.696-.106.492-.252 1.195-.44 2.11-.176.914-.354 1.828-.536 2.742-.182.914-.349 1.734-.5 2.46-.142.716-.224 1.126-.247 1.231-.07.27-.193.571-.37.905-.175.334-.567.501-1.177.501H7.57c-.059 0-.097.006-.114.018l-.132.088c-.023.023-.275.31-.756.861-.48.563-1.005 1.175-1.573 1.837-.568.662-1.093 1.269-1.573 1.82l-.703.826c-.176.21-.384.316-.624.316s-.42-.023-.537-.07c-.105-.035-.225-.132-.36-.29-.135-.159-.202-.413-.202-.765V1.718c0-.316.12-.665.36-1.046.24-.38.683-.571 1.327-.571h9.598zm-.055 10.055l.09-.457.06-.283-.15.74zm.15-.74l.584-2.898-.143.72a251.52 251.52 0 01-.442 2.178zm.584-2.898c.132-.674.264-1.348.393-2.023.188-.914.334-1.617.44-2.109l-.833 4.132zm-1.241-3.816a.517.517 0 00-.097-.448.45.45 0 00-.36-.184H3.562c-.176 0-.32.064-.431.193s-.167.264-.167.404v11.918c0 .012.008.018.026.018s.032-.006.044-.018l.44-.545a55.84 55.84 0 001.01-1.204c.37-.45.724-.882 1.064-1.292.328-.41.533-.662.615-.756.164-.199.302-.325.413-.378.111-.052.29-.079.536-.079h2.566c.2 0 .346-.058.44-.175.094-.118.146-.211.158-.282a35 35 0 00.202-.993c.112-.568.185-.929.22-1.08.012-.165-.038-.317-.15-.458s-.237-.21-.377-.21H6.97c-.21 0-.38-.065-.51-.194s-.193-.3-.193-.51v-.457c0-.211.065-.38.194-.51s.298-.193.51-.193H10.732c.13 0 .252-.05.37-.15s.193-.202.228-.307l.387-2.11z"/></svg>',
     217
     218                        'goodreads'   => '<svg width="13" height="19" viewBox="0 0 13 19" xmlns="http://www.w3.org/2000/svg"><path d="M10.63.418h1.444v12.294c0 .869-.117 1.638-.352 2.307-.247.67-.599 1.233-1.057 1.691s-1.027.804-1.708 1.04c-.681.234-1.462.351-2.343.351-.775 0-1.467-.094-2.078-.281-.61-.2-1.127-.485-1.55-.855a3.653 3.653 0 01-.969-1.347c-.234-.528-.358-1.133-.37-1.814l-.035-.388H2.88v.423c.06.951.39 1.67.995 2.158.605.487 1.495.73 2.669.73 1.409 0 2.442-.325 3.1-.977.657-.652.986-1.664.986-3.038v-1.867c-.458.634-1.075 1.133-1.85 1.497a5.769 5.769 0 01-2.483.546c-.88 0-1.67-.173-2.369-.52s-1.283-.842-1.752-1.488a6.218 6.218 0 01-.969-1.955 8.196 8.196 0 01-.334-2.378c0-.974.135-1.855.405-2.641.27-.799.651-1.48 1.144-2.044S3.51.864 4.202.56C4.893.254 5.662.101 6.508.101c.845 0 1.629.185 2.35.555a4.72 4.72 0 011.77 1.559V.418zm.317 6.13a6.213 6.213 0 00-.361-2.238c-.252-.692-.614-1.274-1.083-1.743a3.753 3.753 0 00-1.268-.846 4.137 4.137 0 00-1.55-.281c-.81 0-1.491.152-2.043.458a3.998 3.998 0 00-1.357 1.215 5.054 5.054 0 00-.74 1.638 7.39 7.39 0 00-.228 1.796c0 .764.1 1.45.3 2.061.199.61.48 1.136.845 1.576s.804.778 1.32 1.013a4.124 4.124 0 001.726.352c.764 0 1.427-.14 1.99-.422a4.218 4.218 0 001.374-1.145c.364-.47.635-1.004.81-1.603s.265-1.21.265-1.832z"/></svg>',
     219
     220                        'google-plus' => '<svg width="19" height="13" viewBox="0 0 19 13" xmlns="http://www.w3.org/2000/svg"><path d="M6.14 5.323h5.45c.082.516.111 1.031.088 1.547s-.112 1.02-.264 1.512a5.708 5.708 0 01-.554 1.31c-.24.416-.536.788-.888 1.116-.34.305-.709.56-1.107.765s-.815.348-1.248.43a6.43 6.43 0 01-1.495.176c-.504 0-.99-.058-1.459-.176a5.32 5.32 0 01-1.107-.439 6.98 6.98 0 01-1.002-.65 4.671 4.671 0 01-.906-.862 6.176 6.176 0 01-.677-1.037 5.985 5.985 0 01-.545-1.846A5.935 5.935 0 01.48 5.288a7.45 7.45 0 01.211-.774c.082-.246.176-.48.281-.703A5.884 5.884 0 012.334 2.08 5.754 5.754 0 014.24.963a6.02 6.02 0 011.97-.307c.68.005 1.324.12 1.933.342.352.13.686.29 1.002.484.317.193.604.419.862.677-.094.093-.19.184-.29.272-.1.088-.19.185-.273.29L8.39 3.776a2.845 2.845 0 00-1.265-.738c-.27-.094-.548-.141-.836-.141s-.57.023-.852.07c-.317.07-.627.19-.932.36-.305.17-.568.367-.791.59-.2.199-.37.416-.51.65-.14.235-.252.475-.334.72-.117.376-.176.754-.176 1.135s.059.753.176 1.116c.129.352.305.68.528.985.222.304.492.562.808.773.2.14.405.26.616.36s.427.168.65.203c.234.047.472.067.712.061.24-.006.472-.026.694-.061.211-.035.428-.097.65-.185.224-.088.429-.19.616-.308.305-.21.557-.471.756-.782.2-.31.334-.647.404-1.01H6.14V5.322zm12.236.14v1.442h-1.969v1.97h-1.442v-1.97h-1.969V5.464h1.97v-1.97h1.441v1.97h1.969z"/></svg>',
     221
     222                        'google'      => '<svg width="18" height="19" viewBox="0 0 18 19" xmlns="http://www.w3.org/2000/svg"><path d="M17.65 8.499c.047.633.038 1.256-.026 1.871a12.714 12.714 0 01-.325 1.819 8.868 8.868 0 01-.896 2.02 7.555 7.555 0 01-1.388 1.704 8.218 8.218 0 01-1.731 1.213 7.965 7.965 0 01-1.959.72 9.909 9.909 0 01-2.31.255 8.672 8.672 0 01-2.293-.325 9.662 9.662 0 01-1.73-.66 7.935 7.935 0 01-1.538-.992c-.515-.41-.981-.867-1.397-1.37s-.77-1.043-1.063-1.617C.772 12.692.59 12.23.45 11.75s-.246-.966-.317-1.458a7.93 7.93 0 01-.07-1.493 9.1 9.1 0 01.158-1.494c.094-.386.202-.77.325-1.15.123-.381.272-.747.448-1.099.27-.515.58-1.007.931-1.475a9.392 9.392 0 012.618-2.267 8.746 8.746 0 011.581-.72A9.498 9.498 0 019.146.1a8.34 8.34 0 011.529.14 8.067 8.067 0 011.493.422c.527.2 1.034.448 1.52.747.486.298.94.647 1.361 1.045-.14.14-.284.287-.43.44-.146.152-.296.298-.448.439-.27.28-.542.556-.817.825s-.553.545-.835.826c-.269-.27-.568-.5-.896-.694a5.15 5.15 0 00-1.036-.465c-.422-.13-.858-.2-1.31-.211s-.892.023-1.326.105a5.833 5.833 0 00-1.458.58c-.457.258-.86.568-1.212.931-.305.305-.568.636-.79.993s-.405.729-.545 1.115a5.67 5.67 0 00-.255 1.757c.006.61.102 1.195.29 1.757h-.035a.603.603 0 01.061.123c.018.047.032.088.044.123.2.492.469.958.808 1.397.34.44.726.805 1.16 1.098a6.2 6.2 0 00.957.545 4.63 4.63 0 001.046.334 5.451 5.451 0 002.143 0c.352-.059.694-.156 1.028-.29s.647-.296.94-.484c.48-.316.878-.717 1.195-1.203.316-.486.527-1.01.632-1.572H9.041V7.41h8.468c.035.175.065.357.088.544s.041.37.053.545z"/></svg>',
     223
     224                        'github'      => '<svg width="17" height="19" viewBox="0 0 17 19" xmlns="http://www.w3.org/2000/svg"><path d="M16.82 6.336c0 1.127-.153 2.049-.458 2.765-.317.716-.725 1.286-1.224 1.709s-1.066.728-1.7.915c-.645.188-1.291.317-1.937.388.211.2.393.478.546.837.153.358.229.807.229 1.347V18.1H6.464a173.584 173.584 0 00-.035-2.783c-1.62.353-2.683.212-3.188-.422l-.758-.951c-.27-.67-.554-1.125-.854-1.365l-.449-.361c-.528-.353-.643-.558-.343-.617l.449-.088c.587.059 1.033.273 1.338.643l.458.555c.517.892 1.127 1.318 1.832 1.277.704-.041 1.221-.138 1.55-.291.059-.376.158-.693.3-.951s.299-.458.475-.599a12.085 12.085 0 01-1.938-.405c-.634-.2-1.206-.51-1.717-.933S2.665 9.817 2.36 9.1c-.317-.716-.475-1.638-.475-2.765 0-.634.108-1.215.325-1.744.218-.528.508-.992.872-1.391-.059-.14-.132-.49-.22-1.048S2.894.911 3.223.101l.757.035C4.485.16 5.301.547 6.43 1.3A11.364 11.364 0 019.352.91c.517 0 1.022.036 1.515.106.493.07.974.164 1.444.282C13.427.536 14.24.145 14.751.128L15.515.1c.318.81.432 1.494.344 2.052s-.167.907-.238 1.048c.388.41.684.878.89 1.4.205.523.308 1.101.308 1.735zM2.096 12.078a.235.235 0 00-.026-.106.134.134 0 00-.08-.07c-.058-.036-.105-.047-.14-.036a.106.106 0 00-.071.07c-.012.024-.006.057.018.098a.163.163 0 00.088.079c.035.012.076.012.123 0s.076-.024.088-.035zm.458.528a.122.122 0 00.035-.123.261.261 0 00-.07-.124c-.036-.058-.077-.088-.124-.088s-.088.006-.123.018c-.012.035-.017.076-.017.123s.017.088.052.124.083.058.141.07c.059.012.094.012.106 0zm.458.67a.18.18 0 00.053-.133.245.245 0 00-.053-.15c-.035-.058-.076-.093-.123-.105a.22.22 0 00-.124 0c-.035.023-.053.064-.053.123s.018.112.053.159c.035.058.077.094.124.105a.22.22 0 00.123 0zm.634.633c.035-.035.044-.082.026-.14a.267.267 0 00-.097-.141c-.035-.06-.082-.091-.14-.097s-.106.014-.141.061c-.036.036-.044.08-.027.132.018.053.05.103.097.15.035.059.082.088.141.088s.106-.017.14-.053zm.88.388c.012-.059-.002-.112-.044-.159s-.085-.076-.132-.088a.469.469 0 00-.202.01c-.065.017-.103.049-.115.096a.177.177 0 00.044.159.274.274 0 00.168.088c.058.011.117.008.176-.01s.094-.05.106-.096zm.705.246c.07 0 .13-.017.176-.052s.07-.077.07-.124a.146.146 0 00-.07-.132.327.327 0 00-.176-.044c-.07 0-.13.018-.176.053-.047.035-.07.076-.07.123 0 .06.023.103.07.132.047.03.106.044.176.044zm.916-.105c.07-.024.129-.056.176-.097s.07-.08.07-.115a.223.223 0 00-.105-.123.284.284 0 00-.176-.017c-.07.023-.13.055-.176.096s-.07.08-.07.115c.023.059.058.1.105.123s.105.03.176.018z"/></svg>',
     225
     226                        'instagram'   => '<svg width="19" height="19" viewBox="0 0 19 19" xmlns="http://www.w3.org/2000/svg"><path d="M9.51 1.757c-1.219 0-2.01.009-2.373.026-.363.018-.791.033-1.283.044a6.324 6.324 0 00-1.046.123 4.488 4.488 0 00-.642.194c-.199.07-.38.16-.545.272a3.267 3.267 0 00-.852.853 2.815 2.815 0 00-.29.562 5.826 5.826 0 00-.176.624c-.059.252-.094.607-.105 1.064-.024.48-.041.902-.053 1.265s-.018 1.149-.018 2.356c0 1.219.009 2.01.027 2.373.017.363.032.79.044 1.283.023.445.064.794.123 1.046s.123.466.193.642c.07.199.161.38.272.544a3.267 3.267 0 00.853.853c.164.111.352.208.562.29.165.059.373.117.624.176.252.058.607.094 1.064.105.48.024.902.041 1.266.053s1.148.018 2.355.018c1.219 0 2.01-.01 2.373-.027s.791-.032 1.283-.044a6.324 6.324 0 001.046-.123c.252-.058.466-.123.642-.193.199-.07.38-.161.545-.273a3.267 3.267 0 00.852-.852c.112-.164.208-.352.29-.563.059-.164.117-.372.176-.624s.094-.606.106-1.063c.023-.48.04-.902.052-1.266s.018-1.148.018-2.355c0-1.219-.009-2.01-.027-2.373a53.213 53.213 0 01-.043-1.283 6.324 6.324 0 00-.124-1.046 4.488 4.488 0 00-.193-.642c-.07-.2-.161-.38-.272-.545s-.244-.322-.396-.474a2.83 2.83 0 00-1.02-.668 5.826 5.826 0 00-.623-.176c-.252-.059-.607-.094-1.064-.106-.48-.023-.902-.04-1.266-.052s-1.148-.018-2.355-.018zm0-1.617c1.23 0 2.036.009 2.417.026.38.018.806.032 1.274.044.493.024.909.067 1.248.132.34.064.65.15.932.255.305.129.589.275.853.44.263.163.518.368.764.615s.454.503.624.773.314.55.43.844c.106.27.194.577.265.923.07.345.11.764.123 1.256.023.48.04.909.052 1.284.012.375.018 1.177.018 2.408s-.009 2.036-.026 2.417c-.018.38-.033.805-.044 1.274a9.181 9.181 0 01-.132 1.248c-.065.34-.15.65-.255.932-.129.304-.275.589-.44.852s-.369.519-.615.765-.504.454-.773.624c-.27.17-.551.313-.844.43-.27.106-.577.194-.923.264-.346.07-.764.112-1.257.123-.48.024-.908.041-1.283.053-.375.012-1.178.018-2.408.018s-2.036-.01-2.417-.027-.806-.032-1.274-.044a9.181 9.181 0 01-1.248-.131c-.34-.065-.65-.15-.932-.255a6.136 6.136 0 01-.853-.44c-.263-.164-.518-.369-.764-.615s-.454-.504-.624-.773c-.17-.27-.314-.551-.43-.844a5.607 5.607 0 01-.265-.923A7.287 7.287 0 01.58 12.83c-.023-.48-.04-.908-.052-1.283C.516 11.173.51 10.37.51 9.14s.009-2.036.026-2.417c.018-.381.033-.806.044-1.275.024-.492.068-.908.132-1.248.065-.34.15-.65.255-.931.129-.305.275-.59.44-.853.164-.264.369-.518.615-.764s.504-.455.773-.625c.27-.17.551-.313.844-.43.27-.106.577-.194.923-.264.345-.07.764-.111 1.257-.123.48-.023.908-.04 1.283-.053S8.279.14 9.51.14zm0 4.36c.645 0 1.248.122 1.81.368a4.53 4.53 0 012.461 2.461c.247.563.37 1.166.37 1.81 0 .645-.123 1.249-.37 1.811a4.53 4.53 0 01-2.46 2.461 4.467 4.467 0 01-1.811.37 4.467 4.467 0 01-1.81-.37 4.53 4.53 0 01-2.461-2.46 4.467 4.467 0 01-.37-1.811c0-.645.123-1.248.37-1.81a4.53 4.53 0 012.46-2.462A4.467 4.467 0 019.51 4.5zm0 7.663c.832 0 1.544-.299 2.136-.896.591-.598.887-1.307.887-2.127 0-.832-.298-1.544-.896-2.136-.598-.592-1.307-.888-2.127-.888-.832 0-1.544.3-2.136.897-.592.598-.887 1.307-.887 2.127 0 .832.298 1.544.896 2.136.598.591 1.307.887 2.127.887zm5.871-7.84c0 .293-.1.548-.299.765a.982.982 0 01-.756.325 1.06 1.06 0 01-.764-.316 1.038 1.038 0 01-.325-.774c0-.292.105-.541.316-.747.21-.205.469-.307.773-.307.293 0 .542.1.747.299.206.199.308.45.308.755z"/></svg>',
     227
     228                        'lastfm'      => '<svg width="19" height="11" viewBox="0 0 19 11" xmlns="http://www.w3.org/2000/svg"><path d="M14.52 10.093c-.89 0-1.647-.094-2.268-.281-.609-.188-1.125-.446-1.547-.774a4.092 4.092 0 01-1.019-1.142 7.805 7.805 0 01-.615-1.389l-.668-2.074c-.246-.75-.563-1.383-.95-1.899-.386-.515-1.03-.773-1.933-.773-.633 0-1.213.258-1.74.773-.528.516-.791 1.407-.791 2.672 0 .985.222 1.764.668 2.338s1.03.862 1.758.862c.808 0 1.456-.2 1.942-.598l.73-.598.667 1.793-.852.545c-.569.363-1.433.545-2.593.545-.715 0-1.353-.105-1.916-.316-.562-.211-1.034-.519-1.415-.923s-.67-.905-.87-1.503c-.2-.598-.299-1.29-.299-2.074 0-.82.1-1.547.299-2.18.2-.645.495-1.186.888-1.626s.876-.776 1.45-1.01C4.02.225 4.688.108 5.45.108c.68 0 1.283.064 1.81.193.528.129.99.34 1.389.633.398.293.738.668 1.02 1.125.292.469.55 1.037.773 1.705l.668 2.074c.246.75.62 1.371 1.125 1.864.504.492 1.277.738 2.32.738.703 0 1.236-.085 1.6-.255.363-.17.545-.448.545-.835 0-.293-.103-.545-.308-.756-.205-.21-.571-.38-1.099-.51l-1.406-.351c-.844-.188-1.453-.504-1.828-.95-.375-.445-.562-1.019-.562-1.722 0-1.125.38-1.899 1.142-2.32s1.612-.633 2.549-.633c1.055 0 1.887.199 2.496.597s.961 1.067 1.055 2.004l-2.074.246c-.036-.433-.19-.747-.466-.94-.276-.193-.66-.29-1.152-.29-.457 0-.811.094-1.063.281-.252.188-.378.457-.378.809 0 .316.08.568.237.756.158.187.466.334.923.44l1.336.28c.879.211 1.55.548 2.013 1.011.463.463.694 1.11.694 1.942 0 1.032-.392 1.764-1.178 2.198-.785.433-1.822.65-3.11.65z"/></svg>',
     229
     230                        'linkedin'    => '<svg width="19" height="19" viewBox="0 0 19 19" xmlns="http://www.w3.org/2000/svg"><path d="M14.27 9.628a1.057 1.057 0 00-.492-.316 2.467 2.467 0 00-.774-.106c-.386 0-.712.059-.975.176a1.64 1.64 0 00-.642.492c-.152.223-.266.492-.343.809s-.114.68-.114 1.09v6.152a.473.473 0 01-.026.15.448.448 0 01-.114.166c-.036.035-.083.068-.141.097s-.117.044-.176.044H7.24c-.047 0-.097-.015-.15-.044s-.108-.062-.167-.097a1.305 1.305 0 01-.096-.15.339.339 0 01-.044-.166V6.57a.31.31 0 01.044-.15 5.8 5.8 0 01.096-.167c.047-.035.097-.067.15-.096s.108-.044.167-.044h3.129a.69.69 0 01.149.017c.053.012.097.03.132.053.035.012.061.041.079.088l.061.158c0 .047.006.094.018.14a.48.48 0 01.018.106v.281c.398-.386.867-.67 1.406-.852a5.59 5.59 0 011.793-.273c.75 0 1.418.088 2.004.264.586.176 1.09.451 1.511.826.422.387.739.856.95 1.407.21.55.316 1.195.316 1.933v7.664a.473.473 0 01-.026.15.448.448 0 01-.115.167c-.035.035-.082.067-.14.096s-.117.044-.176.044h-3.305a.31.31 0 01-.15-.044 5.8 5.8 0 01-.166-.096 1.305 1.305 0 01-.097-.15.339.339 0 01-.044-.167V11c0-.293-.026-.553-.079-.782a1.85 1.85 0 00-.237-.589zm-9.738-5.45c-.211.212-.446.37-.703.475s-.54.159-.844.159c-.293 0-.571-.053-.835-.159s-.501-.263-.712-.474c-.211-.211-.37-.443-.475-.695a2.19 2.19 0 01-.158-.852c0-.293.053-.566.158-.817.106-.252.264-.484.475-.695.21-.21.445-.375.703-.492s.54-.176.844-.176c.293 0 .571.059.835.176s.5.281.712.492c.21.211.369.44.474.686.106.246.159.521.159.826 0 .316-.053.6-.159.852a2.159 2.159 0 01-.474.695zm.527 2.391v11.355a.31.31 0 01-.044.15c-.03.053-.061.108-.097.167a1.305 1.305 0 01-.149.096.339.339 0 01-.167.044H1.368a.31.31 0 01-.15-.044 5.802 5.802 0 01-.167-.096 1.305 1.305 0 01-.096-.15.339.339 0 01-.044-.167V6.57a.31.31 0 01.044-.149c.029-.053.061-.108.096-.167.047-.035.097-.067.15-.097a.339.339 0 01.167-.044h3.234a.31.31 0 01.15.044 5.8 5.8 0 01.166.097c.036.047.068.097.097.15.03.052.044.108.044.166z"/></svg>',
     231
     232                        'mail'        => '<svg width="18" height="13" viewBox="0 0 18 13" xmlns="http://www.w3.org/2000/svg"><path d="M9.6 8.175l8.402-6.856v10.793h-18V1.32l8.403 6.856c.093.07.19.129.29.176s.202.07.307.07.211-.023.317-.07c.105-.047.199-.106.28-.176zm-.598-2.074a.662.662 0 01-.263-.053 1.417 1.417 0 01-.229-.123L1.373.089h15.258L9.495 5.925a.813.813 0 01-.492.176z"/></svg>',
     233
     234                        'medium'      => '<svg width="19" height="16" viewBox="0 0 19 16" xmlns="http://www.w3.org/2000/svg"><path d="M18.39 15.093h-6.856l1.372-1.512c.023-.023.038-.079.044-.167.005-.088.008-.202.008-.342V3.667l-4.5 11.426L3.572 4.441a5.822 5.822 0 01-.167-.457 39.698 39.698 0 01-.15-.474v7.927c0 .164.006.282.018.352.012.07.076.182.193.334l2.074 2.97H.39l2.092-2.97c.117-.152.178-.264.184-.334.006-.07.01-.188.01-.352V3.246c0-.176.002-.293.008-.352.006-.058-.032-.14-.114-.246L.97.222h4.852l4.2 9.3 3.657-9.3h4.711l-1.266 1.565c-.082.094-.131.187-.149.281s-.026.211-.026.352v10.635c0 .14.003.252.008.334.006.082.027.14.062.176l1.371 1.529z"/></svg>',
     235
     236                        'meetup'      => '<svg width="19" height="15" viewBox="0 0 19 15" xmlns="http://www.w3.org/2000/svg"><path d="M12.22 11.542c-.012-.258.012-.504.07-.738s.14-.463.246-.685c.375-.797.75-1.59 1.125-2.38a774.383 774.383 0 001.291-2.742c.053-.123.085-.254.097-.395a1.428 1.428 0 00-.018-.387c-.023-.128-.105-.228-.246-.298-.14-.07-.278-.091-.413-.062s-.255.097-.36.202c-.14.106-.255.232-.343.378a6.41 6.41 0 00-.237.43c-.27.528-.533 1.049-.79 1.564a192.161 192.161 0 01-1.582 3.092l-.773 1.547c-.082.152-.164.301-.246.448a1.8 1.8 0 01-.298.395c-.223.234-.501.39-.835.465-.334.077-.653.05-.957-.079a.87.87 0 01-.519-.535c-.088-.252-.073-.548.044-.888.2-.527.401-1.048.606-1.563s.413-1.031.624-1.547l.316-.843.317-.843c.035-.07.064-.147.087-.229s.041-.158.053-.228a1.094 1.094 0 00-.088-.703.8.8 0 00-.474-.421.77.77 0 00-.598.07c-.199.105-.35.28-.456.527-.246.609-.492 1.221-.738 1.836s-.486 1.227-.72 1.836c-.258.632-.513 1.268-.765 1.906s-.506 1.268-.764 1.889c-.281.68-.68 1.13-1.195 1.353s-1.118.222-1.81 0c-.609-.2-1.068-.563-1.379-1.09-.31-.527-.377-1.112-.202-1.756.13-.528.27-1.055.422-1.582.152-.527.31-1.051.474-1.572.164-.522.328-1.04.492-1.555.176-.527.346-1.048.51-1.564l.457-1.265c.153-.422.316-.837.491-1.247.305-.656.794-1.166 1.467-1.529.674-.363 1.327-.457 1.96-.28.28.07.553.172.816.307s.525.272.782.412c.27.153.522.205.756.159.234-.047.462-.164.685-.352a92.698 92.698 0 00.597-.527c.422-.34.864-.504 1.327-.492.463.012.893.2 1.291.562.07.059.138.118.202.176.065.059.132.117.202.176a.653.653 0 00.378.202.597.597 0 00.413-.114 2.279 2.279 0 011.15-.37c.393-.011.788.024 1.187.106.55.117.978.413 1.282.887s.416.993.334 1.555a7.778 7.778 0 01-.588 2.02 277.748 277.748 0 00-1.626 3.725 9.284 9.284 0 00-.58 1.863c-.011.117-.023.228-.035.334a3.025 3.025 0 00-.017.333c-.012.328.05.583.184.765.135.181.372.313.712.395.21.059.43.105.659.14s.454.077.676.124c.316.07.539.184.668.342.129.158.187.372.175.641-.011.246-.09.446-.237.598s-.372.258-.676.316c-.55.106-1.092.123-1.625.053s-1.052-.217-1.555-.44c-.598-.257-1.051-.629-1.362-1.115-.31-.486-.483-1.057-.518-1.713z"/></svg>',
     237
     238                        'pinterest'   => '<svg width="15" height="19" viewBox="0 0 15 19" xmlns="http://www.w3.org/2000/svg"><path d="M4.77 7.548c0-.387.047-.738.14-1.055.094-.316.247-.61.458-.879.187-.257.404-.457.65-.597.246-.14.51-.211.791-.211.223 0 .422.035.598.105.175.07.328.188.457.352a1.866 1.866 0 01.387 1.16c0 .14-.015.296-.044.466-.03.17-.074.354-.132.554-.047.21-.1.436-.159.676s-.134.495-.228.765c-.082.281-.158.527-.229.738-.07.211-.123.399-.158.563-.07.28-.079.545-.026.79.053.247.167.475.343.686.175.188.378.334.606.44s.483.158.765.158c.492 0 .94-.138 1.344-.413s.765-.689 1.082-1.24c.316-.562.553-1.177.711-1.845s.238-1.4.238-2.197c0-.598-.097-1.143-.29-1.635a3.831 3.831 0 00-.87-1.319 3.932 3.932 0 00-1.398-.835c-.545-.193-1.169-.29-1.872-.29-.785 0-1.494.123-2.127.37a4.48 4.48 0 00-1.67 1.142A4.99 4.99 0 003.03 5.632a5.075 5.075 0 00-.37 1.951c0 .422.06.809.176 1.16.118.352.293.668.528.95a.566.566 0 01.158.28.96.96 0 01.017.317c-.035.082-.07.194-.105.334s-.07.31-.105.51a.397.397 0 01-.07.176.32.32 0 01-.141.105.614.614 0 01-.15.018.852.852 0 01-.167-.018 3.17 3.17 0 01-.949-.606 3.555 3.555 0 01-.703-.94A4.85 4.85 0 01.727 8.69a6.23 6.23 0 01-.14-1.354c0-.316.026-.627.078-.932.053-.304.132-.615.238-.931.105-.317.231-.624.378-.923s.325-.589.536-.87c.21-.293.445-.566.703-.818.258-.252.527-.495.809-.73.292-.222.618-.424.975-.606a7.928 7.928 0 011.204-.483c.422-.117.859-.21 1.31-.281.451-.07.917-.106 1.397-.106.504 0 .988.044 1.45.132.463.088.906.22 1.328.396.421.152.814.342 1.177.571.364.229.686.483.967.765.293.293.55.6.774.923.222.322.421.67.597 1.045.153.364.273.739.36 1.125s.132.774.132 1.16c0 1.055-.131 2.02-.395 2.892a6.954 6.954 0 01-1.222 2.347c-.539.703-1.154 1.225-1.846 1.564-.69.34-1.459.51-2.302.51-.281 0-.554-.03-.818-.088a2.728 2.728 0 01-.764-.299 2.626 2.626 0 01-.633-.413 1.94 1.94 0 01-.422-.536c-.187.82-.343 1.477-.466 1.969s-.214.82-.272.984a7.114 7.114 0 01-.528 1.336 13.037 13.037 0 01-.984 1.618H3.61a15.553 15.553 0 01-.08-1.97c.018-.597.08-1.136.185-1.616L5.086 9.27a3.083 3.083 0 01-.237-.765 5.323 5.323 0 01-.08-.958z"/></svg>',
     239
     240                        'pocket'      => '<svg width="19" height="17" viewBox="0 0 19 17" xmlns="http://www.w3.org/2000/svg"><path d="M18.2 2.721v4.673c0 .492-.03.99-.088 1.493-.058.504-.158.99-.299 1.459-.269.831-.647 1.607-1.133 2.327s-1.068 1.35-1.748 1.89a8.416 8.416 0 01-1.142.807c-.398.246-.814.457-1.247.633s-.878.316-1.335.421a8.79 8.79 0 01-1.37.211c-.48.035-.955.03-1.424-.017a7.998 7.998 0 01-1.405-.229 9.677 9.677 0 01-1.353-.457 8.131 8.131 0 01-1.265-.667 9.857 9.857 0 01-1.985-1.704A8.739 8.739 0 01.983 11.4a9.283 9.283 0 01-.492-1.388 7.71 7.71 0 01-.246-1.423C.21 8.062.195 7.535.201 7.008s.01-1.043.01-1.546V2.3c0-.387.107-.738.324-1.055a1.55 1.55 0 01.87-.632c.105-.035.213-.056.325-.062a6.52 6.52 0 01.342-.008h8.714c.539.011 1.072.017 1.599.017.527 0 1.06.006 1.599.018h1.58c.235-.024.478-.035.73-.035s.5.035.746.105a1.956 1.956 0 01.914.703c.14.21.217.43.228.659.012.228.018.465.018.711zm-3.584 4.076c.07-.2.082-.404.035-.615s-.129-.392-.246-.545a1.232 1.232 0 00-.527-.36 1.236 1.236 0 00-.632-.061 1.4 1.4 0 00-.72.386c-.2.2-.393.387-.58.562a142.695 142.695 0 01-2.74 2.6 21.07 21.07 0 01-1.187-1.097c-.38-.381-.77-.765-1.168-1.151l-.29-.29c-.1-.1-.202-.19-.307-.272a4.673 4.673 0 00-.598-.563c-.164-.105-.351-.166-.562-.184s-.41.009-.597.08c-.422.175-.66.485-.712.93-.052.445.068.814.36 1.107.41.41.817.808 1.221 1.195.404.386.806.773 1.204 1.16.199.175.395.36.588.552.194.194.396.384.606.571.164.164.337.34.519.527.181.188.395.305.64.352a1.308 1.308 0 001.16-.316 62.497 62.497 0 001.23-1.195 111.392 111.392 0 002.425-2.284c.164-.164.34-.33.527-.5.187-.17.304-.367.351-.59z"/></svg>',
     241
     242                        'reddit'      => '<svg width="19" height="16" viewBox="0 0 19 16" xmlns="http://www.w3.org/2000/svg"><path d="M18.19 7.429c0 .375-.105.709-.316 1.002-.211.293-.48.51-.809.65a2.953 2.953 0 01.105.774c0 .726-.21 1.406-.632 2.039-.422.633-.994 1.186-1.714 1.661-.721.475-1.568.853-2.54 1.134a11.8 11.8 0 01-3.13.404c-1.112 0-2.155-.14-3.128-.422-.973-.27-1.82-.641-2.54-1.116-.72-.475-1.292-1.028-1.714-1.661-.422-.645-.633-1.324-.633-2.04 0-.14.009-.28.027-.421.017-.14.044-.27.079-.387a1.753 1.753 0 01-.765-.65 1.719 1.719 0 01-.29-.967c0-.492.17-.908.51-1.248.34-.34.756-.51 1.248-.51.281 0 .536.059.764.176.229.117.42.27.572.457a8.346 8.346 0 011.142-.668c.41-.2.844-.369 1.301-.51.457-.14.938-.252 1.442-.334a11.25 11.25 0 011.564-.14L10.245.257a.295.295 0 01.15-.167.377.377 0 01.236-.044l3.551.844c.024 0 .041.006.053.018l.018.017c.128-.246.304-.442.527-.589s.48-.22.773-.22c.387 0 .712.132.976.396s.395.589.395.976c0 .386-.131.718-.395.993a1.297 1.297 0 01-.976.413c-.386 0-.714-.132-.984-.396a1.335 1.335 0 01-.422-.94h-.14L10.771.785l-1.3 3.867a11.692 11.692 0 013.103.475c.473.14.916.316 1.326.527.422.199.809.427 1.16.685a1.705 1.705 0 011.371-.668c.492 0 .908.17 1.248.51.34.34.51.756.51 1.248zM5.077 8.835c0 .352.129.656.387.914s.562.387.914.387c.351 0 .656-.129.914-.387s.387-.562.387-.914c0-.351-.13-.656-.387-.914s-.563-.387-.914-.387c-.352 0-.656.13-.914.387s-.387.563-.387.914zm7.031 3.586c.035-.035.053-.085.053-.15a.27.27 0 00-.053-.166c-.035-.035-.082-.053-.14-.053s-.106.018-.141.053c-.27.27-.624.466-1.064.589-.439.123-.963.184-1.573.184-.633 0-1.166-.064-1.6-.193s-.779-.322-1.036-.58c-.036-.035-.082-.053-.141-.053s-.106.018-.14.053a.34.34 0 00-.053.175.19.19 0 00.052.141c.305.305.698.527 1.178.668s1.06.211 1.74.211c.692 0 1.278-.073 1.758-.22s.867-.366 1.16-.659zm-.07-2.285c.351 0 .65-.126.896-.378s.37-.56.37-.923c0-.351-.124-.656-.37-.914s-.545-.387-.896-.387c-.375 0-.692.13-.95.387s-.386.563-.386.914c0 .375.132.686.395.932.264.246.578.369.94.369z"/></svg>',
     243
     244                        'skype'       => '<svg width="19" height="19" viewBox="0 0 19 19" xmlns="http://www.w3.org/2000/svg"><path d="M17.6 11.315a4.903 4.903 0 01.492 2.18c0 .68-.129 1.318-.387 1.916a5.054 5.054 0 01-1.045 1.564c-.44.446-.958.797-1.556 1.055a4.661 4.661 0 01-1.899.387c-.421 0-.832-.053-1.23-.159a4.512 4.512 0 01-1.09-.439 5.48 5.48 0 01-.782.114c-.252.018-.507.027-.765.027a8.246 8.246 0 01-3.304-.668 8.475 8.475 0 01-2.681-1.793 8.486 8.486 0 01-1.82-2.69 8.121 8.121 0 01-.667-3.287c0-.305.017-.598.052-.879.036-.281.077-.562.123-.844C.831 7.448.666 7.06.55 6.63S.373 5.772.373 5.338c0-.68.13-1.318.387-1.916a5.054 5.054 0 011.046-1.564c.44-.445.958-.797 1.556-1.055A4.66 4.66 0 015.26.417c.492 0 .958.067 1.398.202.44.134.852.313 1.239.536a9.444 9.444 0 011.441-.106c1.172 0 2.268.223 3.287.668a8.486 8.486 0 012.69 1.82 8.475 8.475 0 011.793 2.68 8.246 8.246 0 01.668 3.305c0 .305-.012.61-.035.914-.024.305-.07.598-.14.879zm-4.008 2.215a3.214 3.214 0 00.598-1.899c0-.28-.03-.55-.088-.808a2.15 2.15 0 00-.264-.668 2.261 2.261 0 00-.395-.563 3.334 3.334 0 00-.554-.457 4.657 4.657 0 00-.66-.351c-.24-.106-.5-.211-.781-.317a9.03 9.03 0 00-.897-.246c-.316-.07-.638-.14-.967-.21l-.72-.185c-.2-.053-.358-.097-.475-.132a2.172 2.172 0 01-.334-.106 9.622 9.622 0 01-.334-.14 2.74 2.74 0 01-.29-.185.825.825 0 01-.202-.202.523.523 0 01-.14-.237.988.988 0 01-.036-.255c0-.164.044-.314.132-.448s.22-.255.395-.36c.176-.13.387-.22.633-.273a4.05 4.05 0 01.844-.08c.316 0 .595.027.835.08.24.053.43.132.571.237.14.106.273.237.396.396.123.158.237.342.343.553.105.14.199.27.28.387.083.117.165.211.247.281.094.07.2.123.316.158.118.036.246.053.387.053.176 0 .34-.03.492-.088a.99.99 0 00.387-.263c.129-.13.22-.261.272-.396.053-.135.08-.272.08-.413a2.13 2.13 0 00-.247-.984 2.612 2.612 0 00-.351-.475 3.635 3.635 0 00-.492-.44 3.688 3.688 0 00-.624-.395 4.436 4.436 0 00-.783-.308 4.034 4.034 0 00-.896-.193 10.103 10.103 0 00-1.072-.053c-.48 0-.923.03-1.328.088a4.956 4.956 0 00-1.133.3 3.913 3.913 0 00-.967.474c-.27.187-.498.404-.686.65-.199.246-.348.516-.448.809-.1.293-.15.597-.15.914 0 .34.05.65.15.931s.237.534.413.756c.176.235.387.44.633.615s.516.323.809.44c.304.14.647.267 1.028.378.38.111.788.208 1.222.29.316.07.606.14.87.21.263.071.489.13.676.177.176.07.34.143.493.22.152.076.28.166.386.272.13.105.22.228.273.369.053.14.079.287.079.44 0 .21-.053.404-.158.58s-.264.333-.475.474c-.21.164-.463.281-.756.352-.293.07-.615.105-.967.105-.246 0-.474-.017-.685-.053a2.144 2.144 0 01-.545-.158 2.167 2.167 0 01-.958-.949 16.982 16.982 0 00-.237-.457 1.965 1.965 0 00-.211-.43 1.295 1.295 0 00-.282-.308.876.876 0 00-.342-.194 1.434 1.434 0 00-.396-.052c-.176 0-.337.026-.483.079s-.279.132-.396.237a.869.869 0 00-.272.37c-.053.14-.08.286-.08.439 0 .246.045.495.133.747.087.252.22.506.395.764.176.27.384.507.624.712.24.205.501.378.782.519.41.21.867.369 1.371.474s1.055.159 1.653.159c.515 0 .993-.039 1.432-.115.44-.076.841-.19 1.204-.342a4.995 4.995 0 001.011-.563c.287-.21.525-.457.712-.738z"/></svg>',
     245
     246                        'slideshare'  => '<svg width="18" height="19" viewBox="0 0 18 19" xmlns="http://www.w3.org/2000/svg"><path d="M6.5 5.901c.586 0 1.084.193 1.494.58.41.387.615.85.615 1.389 0 .55-.208 1.016-.624 1.397s-.91.572-1.485.572a2.098 2.098 0 01-1.494-.58c-.41-.387-.615-.85-.615-1.39 0-.55.208-1.016.624-1.397.416-.38.91-.571 1.485-.571zm4.992-.035c.598 0 1.105.193 1.52.58.417.387.625.85.625 1.389 0 .562-.208 1.037-.624 1.424-.416.386-.923.58-1.52.58a2.098 2.098 0 01-1.495-.58 1.88 1.88 0 01-.615-1.424c0-.551.208-1.017.624-1.398s.911-.571 1.485-.571zm5.555 3.129c.27-.188.475-.19.615-.009s.123.396-.052.642c-.317.386-.78.808-1.39 1.265-.608.457-1.376.88-2.302 1.266.492 1.676.516 3.006.07 3.99-.445.997-1.028 1.662-1.749 1.996-.72.334-1.42.36-2.1.079-.668-.293-.99-.873-.967-1.74v-3.27a2.404 2.404 0 00-.492-.106v3.375c.023.868-.3 1.448-.967 1.74-.68.282-1.38.256-2.1-.078-.721-.334-1.299-1-1.732-1.996-.446-.984-.416-2.314.088-3.99-.95-.387-1.732-.809-2.347-1.266-.615-.457-1.087-.879-1.415-1.265-.153-.246-.167-.46-.044-.642.123-.182.325-.179.606.009l.115.079c.04.03.061.05.061.062V2.174c0-.492.173-.908.519-1.248.345-.34.735-.51 1.169-.51h12.62c.446 0 .81.17 1.09.51s.422.756.422 1.248v6.962a.423.423 0 00.185-.08c.03-.029.062-.05.097-.061zm-1.16.668V2.948c0-.563-.085-.973-.255-1.23-.17-.258-.519-.387-1.046-.387H3.406c-.562 0-.937.117-1.125.351S2 2.338 2 2.948v6.75c.55.316 1.096.55 1.635.703.539.14 1.051.238 1.538.29.486.053.928.074 1.327.062.41-.012.75-.024 1.02-.035.246-.012.439.005.58.052.14.047.263.112.369.194.023.023.038.044.044.061s.014.032.026.044c.106.094.211.182.317.264.105.082.199.158.28.228a1.01 1.01 0 01.282-.65c.164-.164.457-.229.879-.193.281.011.621.023 1.02.035.398.012.837-.009 1.318-.062a9.87 9.87 0 001.547-.307 7.72 7.72 0 001.705-.721z"/></svg>',
     247
     248                        'snapchat'    => '<svg width="18" height="18" viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg"><path d="M17.6 13.58c.105.012.196.056.272.131s.102.173.079.29a.639.639 0 01-.036.21c-.035.105-.102.196-.201.272s-.23.16-.394.254c-.2.082-.444.16-.737.236s-.63.15-1.016.22c-.024.035-.044.09-.062.166s-.032.15-.043.22a2.855 2.855 0 00-.106.42.432.432 0 01-.175.236.507.507 0 01-.28.08H14.62a1.03 1.03 0 01-.245-.036 2.836 2.836 0 00-.42-.079 4.292 4.292 0 00-.492-.026c-.128 0-.245.009-.35.026a4.775 4.775 0 01-.35.044c-.211.035-.415.108-.614.22a7.67 7.67 0 00-.649.411 7.636 7.636 0 01-1.043.666c-.391.21-.861.316-1.41.316H8.8c-.55 0-1.02-.108-1.411-.324a11.522 11.522 0 01-1.06-.658 9.375 9.375 0 00-.64-.403 1.88 1.88 0 00-.605-.228 4.775 4.775 0 01-.35-.044 1.916 1.916 0 00-.316-.026c-.222 0-.409.015-.56.044s-.281.05-.386.061c-.082.024-.158.041-.228.053s-.135.017-.193.017c-.152 0-.26-.04-.324-.122s-.12-.158-.167-.228a2.687 2.687 0 00-.105-.42 3.64 3.64 0 00-.044-.22.526.526 0 00-.061-.166c-.386-.07-.725-.14-1.017-.21s-.537-.153-.736-.246a2.321 2.321 0 01-.386-.254.673.673 0 01-.21-.272.188.188 0 01-.035-.105V14c-.023-.094.003-.181.079-.263a.426.426 0 01.272-.14c.268-.059.531-.132.788-.22.257-.087.497-.213.719-.376.222-.129.42-.278.596-.447.175-.17.345-.348.508-.535.292-.339.514-.649.666-.929a6.92 6.92 0 00.246-.473h.035a.999.999 0 00.105-.342.574.574 0 00-.035-.29c-.07-.151-.205-.268-.403-.35-.199-.082-.38-.152-.544-.21-.058-.012-.11-.03-.157-.053s-.088-.04-.123-.052a3.966 3.966 0 01-.386-.184.996.996 0 01-.28-.22c-.152-.116-.237-.23-.254-.341a.877.877 0 01-.009-.272.74.74 0 01.14-.254 1.15 1.15 0 01.263-.237c.059-.035.137-.067.237-.096.099-.03.195-.044.289-.044.047 0 .096.006.149.018.052.011.108.029.166.052.14.07.278.123.412.158.135.035.254.053.36.053.07 0 .131-.006.184-.018a.644.644 0 00.149-.053.7.7 0 00-.027-.184.834.834 0 01-.026-.219 33.536 33.536 0 01-.052-1.928c0-.678.105-1.244.315-1.7.14-.304.3-.587.482-.85.181-.263.383-.494.605-.692.187-.2.388-.368.604-.509.217-.14.447-.268.693-.385.432-.187.835-.307 1.21-.36s.66-.079.858-.079H9.152c.187 0 .467.024.84.07s.772.17 1.193.369c.245.117.476.245.692.385.216.14.418.31.605.509.234.198.444.432.63.7.188.27.351.562.492.877.198.42.295.976.289 1.665-.006.69-.032 1.332-.079 1.928v.246a.614.614 0 01-.035.192c.047 0 .088.006.123.018a.456.456 0 00.14.018c.128 0 .254-.018.377-.053.122-.035.254-.088.394-.158.047-.035.105-.055.175-.061s.129-.009.176-.009c.07 0 .14.006.21.018a.93.93 0 01.193.052c.163.07.304.16.42.272a.526.526 0 01.176.394.721.721 0 01-.044.22.598.598 0 01-.184.254 1.444 1.444 0 01-.307.227c-.123.07-.266.135-.43.193a3.582 3.582 0 00-.122.044.601.601 0 00-.123.061c-.175.059-.365.129-.57.21-.204.082-.341.2-.411.351a.494.494 0 00-.027.28c.018.106.062.223.132.351l.228.456c.14.269.356.575.648.92.292.345.655.67 1.087.973.432.315.952.526 1.56.631z"/></svg>',
     249
     250                        'soundcloud'  => '<svg width="19" height="9" viewBox="0 0 19 9" xmlns="http://www.w3.org/2000/svg"><path d="M1.3 7.415H.948v-2.18H1.3v2.18zm.914.703h-.352v-3.41h.352v3.41zm.703.211h-.351V4.356h.351V8.33zm.738.176h-.351V4.532h.351v3.973zm.88 0h-.352V3.267h.351v5.238zm.738 0H4.92V2.563h.352v5.942zm.879 0H5.8V2.177h.352v6.328zm.738 0h-.352V2h.352v6.504zm.914 0h-.387V2.177h.387v6.328zm.703 0h-.352V2.388h.352v6.117zm.738 0H8.86V1.649h.386v6.856zm.88 0h-.352V1.122h.351v7.383zm6.609-.07H10.58a.303.303 0 01-.193-.07.216.216 0 01-.088-.177v-7.03c0-.071.018-.127.053-.168.035-.04.1-.079.193-.114.211-.082.437-.144.677-.185.24-.04.483-.061.73-.061.503 0 .984.094 1.44.281.458.176.862.422 1.214.738.351.317.632.692.843 1.125.223.434.358.903.405 1.407.14-.047.28-.088.422-.123.14-.036.293-.053.457-.053.609 0 1.13.214 1.564.641s.65.953.65 1.574c0 .609-.213 1.13-.641 1.564-.428.434-.952.65-1.573.65z"/></svg>',
     251
     252                        'spotify'     => '<svg width="19" height="13" viewBox="0 0 19 13" xmlns="http://www.w3.org/2000/svg"><path d="M14.7 12.008a.737.737 0 01-.474.342.697.697 0 01-.58-.096c-.75-.445-1.54-.808-2.37-1.089-.844-.27-1.728-.457-2.653-.562s-1.896-.117-2.915-.035a20 20 0 00-3.161.492.83.83 0 01-.588-.115.795.795 0 01-.36-.483.746.746 0 01.105-.588.83.83 0 01.492-.36 24.104 24.104 0 013.477-.527 17.117 17.117 0 013.205.053c1.025.117 2 .334 2.924.65.937.304 1.82.714 2.652 1.23.187.105.305.263.351.473s.012.416-.105.615zm1.546-3.442a.955.955 0 01-.598.43.94.94 0 01-.737-.114 13.108 13.108 0 00-2.845-1.265 16.552 16.552 0 00-3.223-.702 17.724 17.724 0 00-3.346-.07c-1.124.07-2.189.257-3.196.562-.246.082-.489.058-.729-.07s-.407-.317-.5-.563a1.03 1.03 0 01.079-.755.876.876 0 01.588-.474 16.48 16.48 0 013.618-.667c1.253-.094 2.5-.07 3.74.07a17.96 17.96 0 013.619.79c1.17.375 2.242.86 3.213 1.458.223.152.37.36.44.623.07.264.029.513-.123.747zm1.756-4.004c-.153.28-.39.46-.712.535a1.24 1.24 0 01-.904-.114c-1.019-.609-2.172-1.083-3.46-1.423-1.3-.327-2.617-.544-3.951-.65s-2.635-.105-3.9 0c-1.276.106-2.4.305-3.371.598a1.055 1.055 0 01-.878-.07 1.185 1.185 0 01-.598-.703 1.215 1.215 0 01.106-.904c.152-.287.386-.478.702-.571C2.15.92 3.42.686 4.847.557S7.74.426 9.237.55s2.975.377 4.427.763c1.451.399 2.769.943 3.951 1.634.281.175.46.418.536.729.076.31.026.606-.15.887z"/></svg>',
     253
     254                        'stumbleupon' => '<svg width="19" height="15" viewBox="0 0 19 15" xmlns="http://www.w3.org/2000/svg"><path d="M9.2 3.602c-.258 0-.48.09-.668.272s-.281.408-.281.677v5.766a4.118 4.118 0 01-.334 1.547c-.211.48-.501.9-.87 1.257-.37.357-.794.641-1.275.852a3.93 3.93 0 01-1.564.316 3.93 3.93 0 01-1.565-.316 4.033 4.033 0 01-1.265-.87c-.364-.37-.65-.8-.862-1.292A3.93 3.93 0 01.2 10.246V7.75h3.094v2.461c0 .258.09.48.272.668a.904.904 0 00.677.281c.258 0 .48-.09.668-.272a.904.904 0 00.281-.677v-5.8c.012-.54.13-1.044.352-1.512.21-.469.498-.88.861-1.23A4.01 4.01 0 017.671.841 3.87 3.87 0 019.2.543a4.009 4.009 0 012.795 1.125c.362.352.65.762.86 1.23.211.47.328.973.352 1.512v1.301l-1.828.528-1.23-.563V4.551c0-.258-.092-.48-.273-.668a.904.904 0 00-.677-.281zm9 6.644a3.93 3.93 0 01-.316 1.565c-.211.492-.498.923-.862 1.292-.363.37-.785.66-1.265.87-.493.211-1.014.317-1.565.317s-1.072-.106-1.564-.317c-.48-.21-.905-.498-1.275-.861a4.016 4.016 0 01-1.204-2.83V7.786l1.23.562 1.829-.562v2.53c0 .259.09.481.272.669a.904.904 0 00.677.281c.258 0 .48-.09.668-.272a.904.904 0 00.281-.677V7.75H18.2v2.496z"/></svg>',
     255
     256                        'tumblr'      => '<svg width="12" height="19" viewBox="0 0 12 19" xmlns="http://www.w3.org/2000/svg"><path d="M.1 8.239V5.673a5.138 5.138 0 001.828-.985c.246-.21.472-.445.677-.703s.378-.539.518-.844c.153-.293.282-.632.387-1.02.106-.386.188-.808.246-1.265h2.567v4.535h4.289V8.24h-4.29v4.606c0 .527.015.958.045 1.292.029.334.073.57.131.712a.99.99 0 00.229.395c.105.111.228.214.37.308.21.117.43.21.658.28.229.071.466.106.712.106.457 0 .914-.076 1.371-.228.457-.152.914-.381 1.371-.686v2.848c-.386.176-.755.331-1.107.466a7.137 7.137 0 01-1.002.307 7.26 7.26 0 01-.958.159c-.346.035-.694.052-1.046.052a8.03 8.03 0 01-1.169-.079 5.926 5.926 0 01-1.01-.237c-.317-.105-.613-.228-.888-.37s-.519-.31-.73-.509a3.638 3.638 0 01-.571-.598 3.28 3.28 0 01-.378-.632 3.428 3.428 0 01-.185-.791 8.727 8.727 0 01-.061-1.108V8.24H.1z"/></svg>',
     257
     258                        'twitch'      => '<svg width="18" height="19" viewBox="0 0 18 19" xmlns="http://www.w3.org/2000/svg"><path d="M12.8 16.061H9.284L6.93 18.417h-2.32V16.06H.284V3.545L1.48.416h16.03v10.97L12.8 16.06zm3.129-5.484V1.963H3.027v11.355h3.515v2.356l2.356-2.356h4.29l2.741-2.742zm-2.742-5.45v4.676H11.64V5.127h1.547zm-5.871 0h1.582v4.676H7.316V5.127z"/></svg>',
     259
     260                        'twitter'     => '<svg width="19" height="16" viewBox="0 0 19 16" xmlns="http://www.w3.org/2000/svg"><path d="M16.6 4.2v.457c0 1.219-.229 2.455-.686 3.709a10.568 10.568 0 01-2.021 3.375c-.89 1.008-1.992 1.834-3.305 2.479-1.3.632-2.8.949-4.5.949-.515 0-1.025-.035-1.53-.106-.503-.07-.992-.175-1.467-.316s-.934-.317-1.38-.527a9.099 9.099 0 01-1.283-.704 9.86 9.86 0 00.879.036c.855 0 1.679-.135 2.47-.405a6.85 6.85 0 002.135-1.177c-.808 0-1.529-.244-2.162-.73a3.782 3.782 0 01-1.318-1.837c.117.035.231.056.343.062s.231.008.36.008a4.54 4.54 0 00.984-.105A3.632 3.632 0 012.01 8.085a3.563 3.563 0 01-.844-2.338v-.07c.246.14.507.252.783.334s.565.123.87.123a3.58 3.58 0 01-1.196-1.292 3.56 3.56 0 01-.316-2.734c.094-.316.223-.615.387-.896.445.562.949 1.072 1.511 1.53a10.59 10.59 0 003.85 1.985c.727.2 1.47.317 2.232.352a3.555 3.555 0 01-.105-.844c0-.504.094-.984.281-1.441.2-.446.466-.835.8-1.17a3.625 3.625 0 011.169-.781c.445-.2.926-.3 1.441-.3.54 0 1.04.106 1.503.317.463.211.865.492 1.204.844a7.969 7.969 0 001.23-.343 6.622 6.622 0 001.126-.536c-.14.422-.352.809-.633 1.16-.281.352-.61.645-.984.88a8.26 8.26 0 001.072-.212 5.848 5.848 0 001.037-.386A8.42 8.42 0 0116.6 4.2z"/></svg>',
     261
     262                        'vimeo'       => '<svg width="19" height="16" viewBox="0 0 19 16" xmlns="http://www.w3.org/2000/svg"><path d="M12.1 3.883c-.21 0-.428.026-.65.08a3.818 3.818 0 00-.685.236c.222-.726.492-1.359.808-1.897s.685-.984 1.107-1.336.896-.609 1.423-.773 1.101-.234 1.722-.21c.926.01 1.608.315 2.047.913s.636 1.488.589 2.67a5.986 5.986 0 01-.281 1.442c-.164.515-.399 1.072-.703 1.669s-.685 1.242-1.142 1.933c-.445.68-.967 1.4-1.564 2.161-.61.785-1.195 1.476-1.757 2.074s-1.102 1.098-1.617 1.502c-.515.404-1.007.706-1.476.905-.469.2-.914.299-1.335.299-.528 0-1.01-.243-1.45-.73-.44-.486-.846-1.215-1.221-2.187-.246-.89-.49-1.778-.73-2.662a251.3 251.3 0 01-.711-2.68c-.281-.96-.565-1.681-.852-2.161-.287-.48-.589-.72-.905-.72-.07 0-.22.07-.448.21s-.548.351-.958.633l-.843-1.09A125.804 125.804 0 013.103 1.81C3.677 1.306 4.19.92 4.641.65 5.09.38 5.47.228 5.774.193c.68-.07 1.236.132 1.67.606.433.475.732 1.233.896 2.276.175 1.101.325 1.994.448 2.68.123.685.22 1.162.29 1.432.187.913.395 1.599.623 2.055s.466.686.712.686c.188 0 .422-.147.703-.44.281-.292.61-.732.984-1.317.363-.598.65-1.125.861-1.582s.334-.843.369-1.16c.047-.503-.032-.887-.237-1.15-.205-.264-.536-.396-.993-.396z"/></svg>',
     263
     264                        'vk'          => '<svg width="19" height="11" viewBox="0 0 19 11" xmlns="http://www.w3.org/2000/svg"><path d="M18.1 9.122c.105.129.234.31.387.545.152.234.222.44.21.615-.07.504-.55.691-1.44.563s-1.536-.106-1.934.07h-.07a2.677 2.677 0 01-1.187-.554 7.723 7.723 0 01-.888-.852 7.918 7.918 0 01-.58-.668c-.222-.281-.462-.399-.72-.352-.387.059-.563.337-.528.835.036.498-.035.888-.21 1.169-.13.234-.422.354-.88.36-.456.006-.878-.008-1.265-.044-1.218-.14-2.18-.498-2.882-1.072a12.286 12.286 0 01-1.864-1.88 1.12 1.12 0 01-.14-.167 3.297 3.297 0 00-.106-.15.426.426 0 01-.052-.061.085.085 0 01-.018-.044c-.035-.035-.07-.076-.105-.123s-.059-.088-.07-.123c-.024-.024-.042-.044-.053-.062s-.018-.032-.018-.044a.54.54 0 01-.088-.114 1.285 1.285 0 00-.088-.132c-.023 0-.038-.009-.044-.026a.11.11 0 00-.026-.044 5.18 5.18 0 01-.106-.185 1.384 1.384 0 00-.105-.167 4.165 4.165 0 00-.211-.316.427.427 0 01-.053-.062.085.085 0 01-.017-.044.47.47 0 01-.088-.123.47.47 0 00-.088-.123.108.108 0 00-.018-.061.085.085 0 01-.017-.044.47.47 0 01-.088-.123.47.47 0 00-.088-.123c0-.024-.006-.044-.018-.062s-.017-.032-.017-.044a27.3 27.3 0 01-1.195-2.214C1.19 2.794 1.05 2.5.91 2.196a2.32 2.32 0 01-.211-.984c.2-.152.451-.225.756-.22.304.007.615.01.931.01.282 0 .604-.01.967-.027s.65.027.861.132c.106.059.217.22.334.483s.229.49.334.677c.14.34.29.647.448.923.159.275.314.542.466.8.024.023.044.05.062.079a.34.34 0 00.044.061c0 .024.003.038.008.044l.027.027c0 .023.009.043.026.061l.044.044.018.018.017.017c.024.035.038.065.044.088s.015.041.027.053l.017.017.018.018c.023.035.044.064.061.088s.032.053.044.088c.13.164.278.36.448.588s.36.326.572.29c.21-.035.34-.251.386-.65.047-.398.07-.756.07-1.072v-.105c.012-.375.007-.745-.017-1.108-.023-.363-.088-.638-.193-.826a.665.665 0 00-.396-.343 2.02 2.02 0 01-.518-.255C6.769.908 7.04.72 7.422.65c.38-.07.823-.105 1.327-.105.422 0 .882.011 1.38.035.498.023.823.164.975.422.176.304.238.682.185 1.133-.053.451-.08.87-.08 1.257a.217.217 0 00-.034.123v.65l-.018.01c-.012.006-.017.014-.017.026v.175c0 .024.005.035.017.035h.018V4.798c.023 0 .035.003.035.009v.132c.023 0 .035.006.035.017V5.044l.009.009.026.026v.071h.035v.07c.024 0 .035.003.035.009v.026c0 .024.006.035.018.035h.018v.035l.017.01c.012.005.018.014.018.026.023 0 .035.005.035.017v.018l.035.035.018.009c.011.006.017.014.017.026H11.561v.035c.024 0 .038.003.044.009l.027.026a.855.855 0 00.562-.316c.14-.176.27-.352.387-.527.023-.035.044-.065.061-.088a.513.513 0 01.044-.053l.01-.018c.006-.012.014-.017.025-.017 0-.024.006-.041.018-.053l.018-.017c.023-.024.038-.041.044-.053s.014-.018.026-.018c0-.023.003-.038.009-.044l.026-.026c0-.023.006-.038.018-.044.011-.006.017-.015.017-.026l.018-.01c.012-.005.017-.014.017-.025a.408.408 0 00.106-.176.427.427 0 00.053-.062.085.085 0 00.017-.044.425.425 0 00.053-.061.085.085 0 00.017-.044c.141-.235.276-.478.405-.73s.263-.524.404-.817c.094-.2.196-.436.308-.712.11-.275.243-.436.395-.483.27-.106.592-.144.967-.114.375.029.744.044 1.107.044.305 0 .671-.006 1.099-.018.427-.012.694.088.8.299.07.176.029.436-.123.782a7.444 7.444 0 01-.334.694c-.235.352-.466.671-.695.958s-.454.577-.676.87c-.024.024-.039.044-.044.062s-.015.032-.027.044l-.017.008a.028.028 0 00-.018.027c-.023 0-.038.009-.044.026s-.015.032-.026.044c0 .024-.006.038-.018.044s-.017.015-.017.026l-.044.044-.027.027-.061.061-.044.044-.457.624c-.176.24-.258.49-.246.747.023.2.111.372.263.519.153.146.3.29.44.43.34.317.636.6.887.853.252.252.507.554.765.905z"/></svg>',
     265
     266                        'wordpress'   => '<svg width="19" height="19" viewBox="0 0 19 19" xmlns="http://www.w3.org/2000/svg"><path d="M9.9.375c1.242 0 2.408.234 3.498.703 1.09.48 2.042 1.128 2.856 1.943s1.462 1.766 1.943 2.856c.469 1.09.703 2.256.703 3.498s-.234 2.408-.703 3.498c-.48 1.09-1.128 2.042-1.943 2.856s-1.766 1.462-2.856 1.943a8.758 8.758 0 01-3.498.703 8.758 8.758 0 01-3.498-.703 9.307 9.307 0 01-2.856-1.943 9.309 9.309 0 01-1.943-2.856C1.134 11.783.9 10.617.9 9.375s.234-2.408.703-3.498A9.307 9.307 0 013.546 3.02a9.309 9.309 0 012.856-1.943A8.758 8.758 0 019.9.375zm-8.086 9a8.042 8.042 0 001.274 4.35 8.625 8.625 0 001.433 1.697 8.287 8.287 0 001.863 1.23L2.517 6.07c-.234.516-.41 1.052-.527 1.609S1.814 8.8 1.814 9.375zM9.9 17.461c.48 0 .946-.038 1.398-.114.45-.077.875-.19 1.274-.343 0-.024-.006-.044-.018-.062s-.017-.032-.017-.044l-2.496-6.82-2.426 7.067a8.284 8.284 0 002.285.316zm1.125-11.883l2.918 8.684.809-2.672c.175-.563.319-1.055.43-1.477s.167-.809.167-1.16c0-.492-.073-.92-.22-1.283a6.964 6.964 0 00-.448-.932c-.199-.34-.378-.66-.536-.958a1.983 1.983 0 01-.237-.94c0-.375.126-.71.378-1.002.252-.293.571-.44.958-.44h.105a8.386 8.386 0 00-1.16-.879 8.651 8.651 0 00-2.742-1.09A8.44 8.44 0 009.9 1.29c-.703 0-1.383.088-2.04.263-.655.176-1.274.422-1.854.739s-1.11.697-1.59 1.142c-.48.457-.903.961-1.266 1.512h.527c.422 0 .885-.018 1.389-.053l.756-.053c.21-.011.325.088.343.3.017.21-.085.333-.308.368l-.272.027c-.182.017-.396.032-.642.044l2.953 8.754 1.758-5.309-1.266-3.445c-.21-.024-.404-.041-.58-.053l-.263-.018c-.211-.023-.308-.143-.29-.36s.137-.32.36-.308l.764.053c.51.035.958.053 1.345.053.422 0 .89-.018 1.406-.053l.774-.053c.21-.011.322.088.334.3.012.21-.088.333-.299.368l-.273.027c-.181.017-.395.032-.641.044zm2.953 10.793a8.14 8.14 0 001.635-1.266 8.137 8.137 0 001.266-1.634 8.362 8.362 0 00.826-1.934 8.224 8.224 0 00.28-2.162c0-.703-.084-1.383-.254-2.04s-.413-1.265-.73-1.827a4.285 4.285 0 01.07.808c0 .422-.049.87-.149 1.345-.1.475-.26.999-.483 1.573l-2.46 7.137z"/></svg>',
     267
     268                        'yelp'        => '<svg width="16" height="19" viewBox="0 0 16 19" xmlns="http://www.w3.org/2000/svg"><path d="M2.8 2.176a.803.803 0 01.325-.316l.202-.106 3.55-1.3c.07-.011.16-.035.271-.07.112-.035.302.035.571.21.153.083.255.261.308.537l.079.413.035 6.079-.097.369a.63.63 0 01-.465.474.73.73 0 01-.589-.105l-.254-.176-3.655-4.99-.228-.36c-.153-.24-.17-.46-.053-.659zM.938 12.542c-.07-.117-.106-.275-.106-.474v-.3l.246-3.056c0-.082.044-.176.132-.281s.184-.188.29-.246c.117-.082.287-.091.51-.027l.333.097 3.795 1.933.281.193c.188.129.281.31.281.545 0 .316-.058.503-.175.562s-.223.117-.317.176l-4.462.983-.334.08c-.223.052-.38-.01-.474-.185zM7.79 18.34a1.14 1.14 0 01-.422.026l-.21-.026-2.988-.949a.926.926 0 01-.28-.193.7.7 0 01-.176-.334c-.047-.152-.012-.325.105-.518l.176-.29 2.986-3.268.273-.184c.181-.123.36-.132.536-.027.175.082.284.202.325.36l.061.238-.07 4.427-.009.325c-.006.217-.108.354-.307.413zm1.827-9.101l2.39-3.795.175-.237a.537.537 0 01.492-.22c.176 0 .307.053.395.158l.132.158 2.038 2.39.08.228c.052.153.06.31.026.475-.036.152-.156.284-.36.395l-.308.167-4.252 1.23-.342.017c-.229.012-.396-.076-.501-.263-.082-.176-.097-.337-.044-.483l.079-.22zm5.587 4.955l-1.792 2.6-.21.123a.89.89 0 01-.458.123c-.152 0-.307-.082-.465-.246l-.238-.246-2.284-3.83-.087-.317c-.059-.21-.018-.386.123-.527.14-.14.292-.205.456-.193l.246.018 4.287 1.37.3.106c.198.07.298.21.298.421 0 .14-.03.275-.088.404l-.088.194z"/></svg>',
     269
     270                        'youtube'     => '<svg xmlns="http://www.w3.org/2000/svg" width="19" height="14" viewBox="0 0 19 14"><path d="M18.216 3.72l.088.905a20.4 20.4 0 01.088 1.977v1.371c0 .739-.029 1.41-.088 2.013l-.088.905-.158.686c-.105.457-.287.826-.545 1.107-.351.352-.7.566-1.046.642-.345.076-.606.12-.782.132-.62.047-1.3.082-2.039.105-.726.024-1.406.041-2.039.053-.633.012-1.16.018-1.582.018H8.636c-.503-.012-1.092-.024-1.766-.036a116.07 116.07 0 01-2.03-.052 27.164 27.164 0 01-1.565-.088c-.2-.035-.495-.085-.888-.15-.392-.064-.764-.272-1.116-.624-.27-.281-.454-.65-.554-1.107l-.149-.686-.088-.905a20.961 20.961 0 01-.088-2.013v-1.37c0-.727.03-1.39.088-1.987l.088-.897.158-.703c.106-.468.287-.832.545-1.09.352-.375.7-.594 1.046-.659.346-.064.607-.102.782-.114a47.09 47.09 0 012.04-.105c.726-.024 1.406-.041 2.038-.053C7.81.983 8.337.977 8.76.977h1.266c.422 0 .95.006 1.582.018.633.012 1.313.03 2.04.053a47.09 47.09 0 012.038.105c.176.023.437.067.782.132.346.064.695.278 1.046.641.27.27.454.636.554 1.1l.15.693zm-6.398 3.726l.598-.316-4.852-2.532v5.063l4.254-2.215z"/></svg>',
     271
     272                );
     273
    85274        }
    86275}
  • src/wp-content/themes/twentytwenty/classes/class-twentytwenty-walker-comment.php

    diff --git a/src/wp-content/themes/twentytwenty/classes/class-twentytwenty-walker-comment.php b/src/wp-content/themes/twentytwenty/classes/class-twentytwenty-walker-comment.php
    index 139a35e8c6..e3d223521c 100644
    a b if ( ! class_exists( 'TwentyTwenty_Walker_Comment' ) ) { 
    3333                        $tag = ( 'div' === $args['style'] ) ? 'div' : 'li';
    3434
    3535                        ?>
    36                         <<?php echo esc_html( $tag ); ?> id="comment-<?php comment_ID(); ?>" <?php comment_class( $this->has_children ? 'parent' : '', $comment ); ?>>
     36                        <<?php echo $tag; //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- static output ?> id="comment-<?php comment_ID(); ?>" <?php comment_class( $this->has_children ? 'parent' : '', $comment ); ?>>
    3737                                <article id="div-comment-<?php comment_ID(); ?>" class="comment-body">
    3838                                        <footer class="comment-meta">
    3939                                                <div class="comment-author vcard">
    if ( ! class_exists( 'TwentyTwenty_Walker_Comment' ) ) { 
    5050                                                                }
    5151                                                        }
    5252
    53                                                         /* Translators: '%1$s = comment author name */
    54                                                         printf( '<span class="fn">%1$s</span><span class="screen-reader-text says">%2$s</span>', esc_html( $comment_author ), __( 'says:', 'twentytwenty' ) ); // phpcs:ignore
     53                                                        printf(
     54                                                                '<span class="fn">%1$s</span><span class="screen-reader-text says">%2$s</span>',
     55                                                                esc_html( $comment_author ),
     56                                                                __( 'says:', 'twentytwenty' )
     57                                                        );
    5558
    5659                                                        if ( ! empty( $comment_author_url ) ) {
    5760                                                                echo '</a>';
    if ( ! class_exists( 'TwentyTwenty_Walker_Comment' ) ) { 
    7174                                                        </a>
    7275                                                        <?php
    7376                                                        if ( get_edit_comment_link() ) {
    74                                                                 echo ' &bull; <a class="comment-edit-link" href="' . esc_url( get_edit_comment_link() ) . '">' . __( 'Edit', 'twentytwenty' ) . '</a>'; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- core trusts translations
     77                                                                echo ' &bull; <a class="comment-edit-link" href="' . esc_url( get_edit_comment_link() ) . '">' . __( 'Edit', 'twentytwenty' ) . '</a>';
    7578                                                        }
    7679                                                        ?>
    7780                                                </div><!-- .comment-metadata -->
    7881
    7982                                        </footer><!-- .comment-meta -->
    8083
    81                                         <div class="comment-content">
     84                                        <div class="comment-content entry-content">
    8285
    8386                                                <?php
    8487
    if ( ! class_exists( 'TwentyTwenty_Walker_Comment' ) ) { 
    8689
    8790                                                if ( '0' === $comment->comment_approved ) {
    8891                                                        ?>
    89                                                         <p class="comment-awaiting-moderation"><?php _e( 'Your comment is awaiting moderation.', 'twentytwenty' ); // phpcs:ignore WordPress.Security.EscapeOutput.UnsafePrintingFunction -- core trusts translations ?></p>
     92                                                        <p class="comment-awaiting-moderation"><?php _e( 'Your comment is awaiting moderation.', 'twentytwenty' ); ?></p>
    9093                                                        <?php
    9194                                                }
    9295
    if ( ! class_exists( 'TwentyTwenty_Walker_Comment' ) ) { 
    121124                                                                echo $comment_reply_link; //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped --Link is escaped in https://developer.wordpress.org/reference/functions/get_comment_reply_link/
    122125                                                        }
    123126                                                        if ( $by_post_author ) {
    124                                                                 echo '<span class="by-post-author">' . __( 'By Post Author', 'twentytwenty' ) . '</span>'; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- core trusts translations
     127                                                                echo '<span class="by-post-author">' . __( 'By Post Author', 'twentytwenty' ) . '</span>';
    125128                                                        }
    126129                                                        ?>
    127130
  • src/wp-content/themes/twentytwenty/comments.php

    diff --git a/src/wp-content/themes/twentytwenty/comments.php b/src/wp-content/themes/twentytwenty/comments.php
    index 2002e9a354..7ff3a306f4 100644
    a b if ( $comments ) { 
    3131                        <h2 class="comment-reply-title">
    3232                        <?php
    3333                        if ( ! have_comments() ) {
    34                                 esc_html_e( 'Leave a comment', 'twentytwenty' );
     34                                _e( 'Leave a comment', 'twentytwenty' );
    3535                        } elseif ( '1' === $comments_number ) {
    3636                                /* translators: %s: post title */
    37                                 printf( esc_html_x( 'One reply on &ldquo;%s&rdquo;', 'comments title', 'twentytwenty' ), esc_html( get_the_title() ) );
     37                                printf( _x( 'One reply on &ldquo;%s&rdquo;', 'comments title', 'twentytwenty' ), esc_html( get_the_title() ) );
    3838                        } else {
    39                                 echo esc_html(
    40                                         sprintf(
    41                                                 /* translators: 1: number of comments, 2: post title */
    42                                                 _nx(
    43                                                         '%1$s reply on &ldquo;%2$s&rdquo;',
    44                                                         '%1$s replies on &ldquo;%2$s&rdquo;',
    45                                                         $comments_number,
    46                                                         'comments title',
    47                                                         'twentytwenty'
    48                                                 ),
    49                                                 number_format_i18n( $comments_number ),
    50                                                 get_the_title()
    51                                         )
     39                                echo sprintf(
     40                                        /* translators: 1: number of comments, 2: post title */
     41                                        _nx(
     42                                                '%1$s reply on &ldquo;%2$s&rdquo;',
     43                                                '%1$s replies on &ldquo;%2$s&rdquo;',
     44                                                $comments_number,
     45                                                'comments title',
     46                                                'twentytwenty'
     47                                        ),
     48                                        number_format_i18n( $comments_number ),
     49                                        esc_html( get_the_title() )
    5250                                );
    5351                        }
    5452
    if ( $comments ) { 
    6058                <div class="comments-inner section-inner thin max-percentage">
    6159
    6260                        <?php
    63 
    6461                        wp_list_comments(
    6562                                array(
    6663                                        'walker'      => new TwentyTwenty_Walker_Comment(),
    if ( $comments ) { 
    8077                        );
    8178
    8279                        if ( $comment_pagination ) {
     80                                $pagination_classes = '';
    8381
    8482                                // If we're only showing the "Next" link, add a class indicating so.
    85                                 if ( strpos( $comment_pagination, 'prev page-numbers' ) === false ) {
     83                                if ( false === strpos( $comment_pagination, 'prev page-numbers' ) ) {
    8684                                        $pagination_classes = ' only-next';
    87                                 } else {
    88                                         $pagination_classes = '';
    8985                                }
    9086                                ?>
    9187
    92                                 <nav class="comments-pagination pagination<?php echo esc_attr( $pagination_classes ); ?>" aria-label="<?php esc_attr_e( 'Comments', 'twentytwenty' ); ?>">
     88                                <nav class="comments-pagination pagination<?php echo $pagination_classes; //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- static output ?>" aria-label="<?php esc_attr_e( 'Comments', 'twentytwenty' ); ?>">
    9389                                        <?php echo wp_kses_post( $comment_pagination ); ?>
    9490                                </nav>
    9591
    if ( comments_open() || pings_open() ) { 
    128124
    129125        <div class="comment-respond" id="respond">
    130126
    131                 <p class="comments-closed"><?php _e( 'Comments are closed.', 'twentytwenty' ); // phpcs:ignore WordPress.Security.EscapeOutput.UnsafePrintingFunction -- core trusts translations ?></p>
     127                <p class="comments-closed"><?php _e( 'Comments are closed.', 'twentytwenty' ); ?></p>
    132128
    133129        </div><!-- #respond -->
    134130
  • src/wp-content/themes/twentytwenty/footer.php

    diff --git a/src/wp-content/themes/twentytwenty/footer.php b/src/wp-content/themes/twentytwenty/footer.php
    index 51f159178d..437ef7e4f9 100644
    a b  
    1111 * @since 1.0.0
    1212 */
    1313
    14 ?>             
     14?>
    1515                        <footer id="site-footer" role="contentinfo" class="header-footer-group">
    1616
    1717                                <div class="section-inner">
     
    2020
    2121                                                <p class="footer-copyright">&copy;
    2222                                                        <?php
    23                                                         echo esc_html(
    24                                                                 date_i18n(
    25                                                                         /* Translators: Y = Format parameter for date() https://php.net/manual/en/function.date.php */
    26                                                                         _x( 'Y', 'Translators: Y = Current year', 'twentytwenty' )
    27                                                                 )
     23                                                        echo date_i18n(
     24                                                                /* translators: Copyright date format, see https://secure.php.net/date */
     25                                                                _x( 'Y', 'copyright date format', 'twentytwenty' )
    2826                                                        );
    2927                                                        ?>
    3028                                                        <a href="<?php echo esc_url( home_url( '/' ) ); ?>"><?php echo bloginfo( 'name' ); ?></a>
     
    3230
    3331                                                <p class="powered-by-wordpress">
    3432                                                        <a href="<?php echo esc_url( __( 'https://wordpress.org/', 'twentytwenty' ) ); ?>">
    35                                                                 <?php
    36                                                                 _e( 'Powered by WordPress', 'twentytwenty' ); // phpcs:ignore WordPress.Security.EscapeOutput.UnsafePrintingFunction -- core trusts translations
    37                                                                 ?>
     33                                                                <?php _e( 'Powered by WordPress', 'twentytwenty' ); ?>
    3834                                                        </a>
    39                                                 </p><!-- .theme-credits -->
     35                                                </p><!-- .powered-by-wordpress -->
    4036
    4137                                        </div><!-- .footer-credits -->
    4238
    4339                                        <a class="to-the-top" href="#site-header">
    4440                                                <span class="to-the-top-long">
    4541                                                        <?php
    46                                                         // Translators: %s = HTML character for an arrow.
    47                                                         printf( esc_html( _x( 'To the top %s', '%s = HTML character for an arrow', 'twentytwenty' ) ), '<span class="arrow">&uarr;</span>' );
     42                                                        /* translators: %s: HTML character for up arrow */
     43                                                        printf( __( 'To the top %s', 'twentytwenty' ), '<span class="arrow">&uarr;</span>' );
    4844                                                        ?>
    49                                                 </span>
     45                                                </span><!-- .to-the-top-long -->
    5046                                                <span class="to-the-top-short">
    5147                                                        <?php
    52                                                         // Translators: %s = HTML character for an arrow.
    53                                                         printf( esc_html( _x( 'Up %s', '%s = HTML character for an arrow', 'twentytwenty' ) ), '<span class="arrow">&uarr;</span>' );
     48                                                        /* translators: %s: HTML character for up arrow */
     49                                                        printf( __( 'Up %s', 'twentytwenty' ), '<span class="arrow">&uarr;</span>' );
    5450                                                        ?>
    55                                                 </span>
    56                                         </a>
     51                                                </span><!-- .to-the-top-short -->
     52                                        </a><!-- .to-the-top -->
    5753
    5854                                </div><!-- .section-inner -->
    5955
  • src/wp-content/themes/twentytwenty/functions.php

    diff --git a/src/wp-content/themes/twentytwenty/functions.php b/src/wp-content/themes/twentytwenty/functions.php
    index e388a264a9..b3a901d17b 100644
    a b  
    1919 * Custom Logo
    2020 * WP Body Open
    2121 * Register Sidebars
    22  * Enqueue Block editor assets
    23  * Classic Editor Style
     22 * Enqueue block editor assets
     23 * Enqueue classic editor styles
    2424 * Block editor settings
    2525 */
    2626
    function twentytwenty_theme_support() { 
    6060        // Set post thumbnail size.
    6161        set_post_thumbnail_size( 1200, 9999 );
    6262
    63         // Add custom image sizes.
     63        // Add custom image size used in Cover Template.
    6464        add_image_size( 'twentytwenty-fullscreen', 1980, 9999 );
    6565
    6666        // Custom logo.
    require get_template_directory() . '/inc/starter-content.php'; 
    174174 */
    175175function twentytwenty_register_styles() {
    176176
    177         $theme_version    = wp_get_theme()->get( 'Version' );
    178         $css_dependencies = array();
    179 
    180         /**
    181         * Filter to load, unload Font Awesome CSS
    182         *
    183         * By default, only load the Font Awesome fonts if the social menu is in use or
    184         * using filter Font Awesome css be loaded
    185         *
    186         * @since 1.0.0
    187         *
    188         * @param bool Whether to load font awesome, Default false.
    189         */
    190         $load_font_awesome = apply_filters( 'twentytwenty_load_font_awesome', has_nav_menu( 'social' ) );
    191 
    192         if ( $load_font_awesome ) {
    193                 wp_register_style( 'font-awesome', get_template_directory_uri() . '/assets/css/font-awesome.css', false, '5.10.2', 'all' );
    194                 $css_dependencies[] = 'font-awesome';
    195         }
     177        $theme_version = wp_get_theme()->get( 'Version' );
    196178
    197         wp_enqueue_style( 'twentytwenty-style', get_template_directory_uri() . '/style.css', $css_dependencies, $theme_version );
     179        wp_enqueue_style( 'twentytwenty-style', get_stylesheet_uri(), array(), $theme_version );
    198180        wp_style_add_data( 'twentytwenty-style', 'rtl', 'replace' );
    199181
    200182        // Add output of Customizer settings as inline style.
    add_action( 'init', 'twentytwenty_menus' ); 
    247229 * Get the information about the logo.
    248230 *
    249231 * @param string $html The HTML output from get_custom_logo (core function).
     232 *
     233 * @return string $html
    250234 */
    251235function twentytwenty_get_custom_logo( $html ) {
    252236
    if ( ! function_exists( 'wp_body_open' ) ) { 
    302286 * Include a skip to content link at the top of the page so that users can bypass the menu.
    303287 */
    304288function twentytwenty_skip_link() {
    305         echo '<a class="skip-link screen-reader-text" href="#site-content">' . __( 'Skip to the content', 'twentytwenty' ) . '</a>'; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- core trusts translations
     289        echo '<a class="skip-link screen-reader-text" href="#site-content">' . __( 'Skip to the content', 'twentytwenty' ) . '</a>';
    306290}
    307291
    308292add_action( 'wp_body_open', 'twentytwenty_skip_link', 5 );
    function twentytwenty_classic_editor_styles() { 
    386370add_action( 'init', 'twentytwenty_classic_editor_styles' );
    387371
    388372/**
    389  * Output Customizer Settings in the Classic Editor.
     373 * Output Customizer settings in the classic editor.
    390374 * Adds styles to the head of the TinyMCE iframe. Kudos to @Otto42 for the original solution.
    391375 *
    392376 * @param array $mce_init TinyMCE styles.
     377 *
     378 * @return array $mce_init TinyMCE styles.
    393379 */
    394380function twentytwenty_add_classic_editor_customizer_styles( $mce_init ) {
    395381
    function twentytwenty_block_editor_settings() { 
    416402        // Block Editor Palette.
    417403        $editor_color_palette = array(
    418404                array(
    419                         'name'  => esc_html__( 'Accent Color', 'twentytwenty' ),
     405                        'name'  => __( 'Accent Color', 'twentytwenty' ),
    420406                        'slug'  => 'accent',
    421407                        'color' => twentytwenty_get_color_for_area( 'content', 'accent' ),
    422408                ),
    423409                array(
    424                         'name'  => esc_html__( 'Secondary', 'twentytwenty' ),
     410                        'name'  => __( 'Primary', 'twentytwenty' ),
     411                        'slug'  => 'primary',
     412                        'color' => twentytwenty_get_color_for_area( 'content', 'text' ),
     413                ),
     414                array(
     415                        'name'  => __( 'Secondary', 'twentytwenty' ),
    425416                        'slug'  => 'secondary',
    426417                        'color' => twentytwenty_get_color_for_area( 'content', 'secondary' ),
    427418                ),
    428419                array(
    429                         'name'  => esc_html__( 'Subtle Background', 'twentytwenty' ),
     420                        'name'  => __( 'Subtle Background', 'twentytwenty' ),
    430421                        'slug'  => 'subtle-background',
    431422                        'color' => twentytwenty_get_color_for_area( 'content', 'borders' ),
    432423                ),
    function twentytwenty_block_editor_settings() { 
    449440                add_theme_support( 'editor-color-palette', $editor_color_palette );
    450441        }
    451442
    452         // Gutenberg Font Sizes.
     443        // Block Editor Font Sizes.
    453444        add_theme_support(
    454445                'editor-font-sizes',
    455446                array(
    456447                        array(
    457                                 'name'      => _x( 'Small', 'Name of the small font size in Gutenberg', 'twentytwenty' ),
    458                                 'shortName' => _x( 'S', 'Short name of the small font size in the Gutenberg editor.', 'twentytwenty' ),
    459                                 'size'      => 16,
     448                                'name'      => _x( 'Small', 'Name of the small font size in the block editor', 'twentytwenty' ),
     449                                'shortName' => _x( 'S', 'Short name of the small font size in the block editor.', 'twentytwenty' ),
     450                                'size'      => 18,
    460451                                'slug'      => 'small',
    461452                        ),
    462453                        array(
    463                                 'name'      => _x( 'Regular', 'Name of the regular font size in Gutenberg', 'twentytwenty' ),
    464                                 'shortName' => _x( 'M', 'Short name of the regular font size in the Gutenberg editor.', 'twentytwenty' ),
    465                                 'size'      => 18,
     454                                'name'      => _x( 'Regular', 'Name of the regular font size in the block editor', 'twentytwenty' ),
     455                                'shortName' => _x( 'M', 'Short name of the regular font size in the block editor.', 'twentytwenty' ),
     456                                'size'      => 21,
    466457                                'slug'      => 'regular',
    467458                        ),
    468459                        array(
    469                                 'name'      => _x( 'Large', 'Name of the large font size in Gutenberg', 'twentytwenty' ),
    470                                 'shortName' => _x( 'L', 'Short name of the large font size in the Gutenberg editor.', 'twentytwenty' ),
     460                                'name'      => _x( 'Large', 'Name of the large font size in the block editor', 'twentytwenty' ),
     461                                'shortName' => _x( 'L', 'Short name of the large font size in the block editor.', 'twentytwenty' ),
    471462                                'size'      => 24,
    472463                                'slug'      => 'large',
    473464                        ),
    474465                        array(
    475                                 'name'      => _x( 'Larger', 'Name of the larger font size in Gutenberg', 'twentytwenty' ),
    476                                 'shortName' => _x( 'XL', 'Short name of the larger font size in the Gutenberg editor.', 'twentytwenty' ),
     466                                'name'      => _x( 'Larger', 'Name of the larger font size in the block editor', 'twentytwenty' ),
     467                                'shortName' => _x( 'XL', 'Short name of the larger font size in the block editor.', 'twentytwenty' ),
    477468                                'size'      => 32,
    478469                                'slug'      => 'larger',
    479470                        ),
    function twentytwenty_read_more_tag() { 
    498489        return sprintf(
    499490                '<a href="%1$s" class="more-link faux-button">%2$s <span class="screen-reader-text">"%3$s"</span></a>',
    500491                esc_url( get_permalink( get_the_ID() ) ),
    501                 esc_html__( 'Continue reading', 'twentytwenty' ),
    502                 get_the_title( get_the_ID() )
     492                __( 'Continue reading', 'twentytwenty' ),
     493                esc_html( get_the_title( get_the_ID() ) )
    503494        );
    504495}
    505496add_filter( 'the_content_more_link', 'twentytwenty_read_more_tag' );
    add_filter( 'the_content_more_link', 'twentytwenty_read_more_tag' ); 
    514505function twentytwenty_customize_controls_enqueue_scripts() {
    515506        $theme_version = wp_get_theme()->get( 'Version' );
    516507
     508        // Add main customizer js file.
     509        wp_enqueue_script( 'twentytwenty-customize', get_template_directory_uri() . '/assets/js/customize.js', array( 'jquery' ), $theme_version, false );
     510
    517511        // Add script for color calculations.
    518512        wp_enqueue_script( 'twentytwenty-color-calculations', get_template_directory_uri() . '/assets/js/color-calculations.js', array( 'wp-color-picker' ), $theme_version, false );
    519513
    function twentytwenty_get_elements_array() { 
    622616        $elements = array(
    623617                'content'       => array(
    624618                        'accent'     => array(
    625                                 'color'            => array( '.color-accent', '.color-accent-hover:hover', '.color-accent-hover:focus', '.has-accent-color', '.has-drop-cap:not(:focus):first-letter', '.wp-block-button.is-style-outline', 'a' ),
    626                                 'border-color'     => array( 'blockquote', '.border-color-accent', '.border-color-accent-hover:hover', '.border-color-accent-hover:focus' ),
    627                                 'background'       => array( 'button:not(.toggle)', '.button', '.faux-button', '.wp-block-button__link', '.wp-block-file__button', 'input[type="button"]', 'input[type="reset"]', 'input[type="submit"]' ),
    628                                 'background-color' => array( '.bg-accent', '.bg-accent-hover:hover', '.bg-accent-hover:focus', '.has-accent-background-color', '.comment-reply-link' ),
    629                                 'fill'             => array( '.fill-children-accent', '.fill-children-accent *' ),
     619                                'color'        => array( '.color-accent', '.color-accent-hover:hover', '.color-accent-hover:focus', '.has-accent-color', '.has-drop-cap:not(:focus):first-letter', '.wp-block-button.is-style-outline', 'a' ),
     620                                'border-color' => array( 'blockquote', '.border-color-accent', '.border-color-accent-hover:hover', '.border-color-accent-hover:focus' ),
     621                                'background'   => array( 'button:not(.toggle)', '.button', '.faux-button', '.wp-block-button__link', '.wp-block-file .wp-block-file__button', 'input[type="button"]', 'input[type="reset"]', 'input[type="submit"]', '.bg-accent', '.bg-accent-hover:hover', '.bg-accent-hover:focus', '.has-accent-background-color', '.comment-reply-link' ),
     622                                'fill'         => array( '.fill-children-accent', '.fill-children-accent *' ),
    630623                        ),
    631624                        'background' => array(
    632625                                'color'      => array( 'button', '.button', '.faux-button', '.wp-block-button__link', '.wp-block-button__link:active', '.wp-block-button__link:focus', '.wp-block-button__link:visited', '.wp-block-button__link:hover', '.wp-block-file__button', 'input[type="button"]', 'input[type="reset"]', 'input[type="submit"]', '.comment-reply-link' ),
    633                                 'background' => array(),
     626                                'background' => array( '.has-background-background-color' ),
    634627                        ),
    635628                        'text'       => array(
    636                                 'color' => array( 'body', '.entry-title a' ),
     629                                'color'      => array( 'body', '.entry-title a', '.has-primary-color' ),
     630                                'background' => array( '.has-primary-background-color' ),
    637631                        ),
    638632                        'secondary'  => array(
    639                                 'color' => array( 'cite', 'figcaption', '.wp-caption-text', '.post-meta', '.entry-content .wp-block-archives li', '.entry-content .wp-block-categories li', '.entry-content .wp-block-latest-posts li', '.wp-block-latest-comments__comment-date', '.wp-block-latest-posts__post-date', '.wp-block-embed figcaption', '.wp-block-image figcaption', '.wp-block-pullquote cite', '.comment-metadata', '.comment-respond .comment-notes', '.comment-respond .logged-in-as', '.pagination .dots', '.entry-content hr:not(.has-background)', 'hr.styled-separator' ),
     633                                'color'      => array( 'cite', 'figcaption', '.wp-caption-text', '.post-meta', '.entry-content .wp-block-archives li', '.entry-content .wp-block-categories li', '.entry-content .wp-block-latest-posts li', '.wp-block-latest-comments__comment-date', '.wp-block-latest-posts__post-date', '.wp-block-embed figcaption', '.wp-block-image figcaption', '.wp-block-pullquote cite', '.comment-metadata', '.comment-respond .comment-notes', '.comment-respond .logged-in-as', '.pagination .dots', '.entry-content hr:not(.has-background)', 'hr.styled-separator', '.has-secondary-color' ),
     634                                'background' => array( '.has-secondary-background-color' ),
    640635                        ),
    641636                        'borders'    => array(
    642637                                'border-color'        => array( 'pre', 'fieldset', 'input', 'textarea', 'table', 'table *', 'hr' ),
    643                                 'background'          => array( 'caption', 'code', 'code', 'kbd', 'samp', '.wp-block-table.is-style-stripes tbody tr:nth-child(odd)' ),
     638                                'background'          => array( 'caption', 'code', 'code', 'kbd', 'samp', '.wp-block-table.is-style-stripes tbody tr:nth-child(odd)', '.has-subtle-background-background-color' ),
    644639                                'border-bottom-color' => array( '.wp-block-table.is-style-stripes' ),
    645640                                'border-top-color'    => array( '.wp-block-latest-posts.is-grid li' ),
     641                                'color'               => array( '.has-subtle-background-color' ),
    646642                        ),
    647643                ),
    648644                'header-footer' => array(
    function twentytwenty_get_elements_array() { 
    651647                                'background' => array( '.social-icons a', '#site-footer button:not(.toggle)', '#site-footer .button', '#site-footer .faux-button', '#site-footer .wp-block-button__link', '#site-footer .wp-block-file__button', '#site-footer input[type="button"]', '#site-footer input[type="reset"]', '#site-footer input[type="submit"]' ),
    652648                        ),
    653649                        'background' => array(
    654                                 'color'      => array( '.social-icons a', '.overlay-header .header-inner', '.primary-menu ul', '.header-footer-group button', '.header-footer-group .button', '.header-footer-group .faux-button', '.header-footer-group .wp-block-button:not(.is-style-outline) .wp-block-button__link', '.header-footer-group .wp-block-file__button', '.header-footer-group input[type="button"]', '.header-footer-group input[type="reset"]', '.header-footer-group input[type="submit"]' ),
     650                                'color'      => array( '.social-icons a', '.overlay-header .header-inner', 'body:not(.overlay-header) .primary-menu ul', '.header-footer-group button', '.header-footer-group .button', '.header-footer-group .faux-button', '.header-footer-group .wp-block-button:not(.is-style-outline) .wp-block-button__link', '.header-footer-group .wp-block-file__button', '.header-footer-group input[type="button"]', '.header-footer-group input[type="reset"]', '.header-footer-group input[type="submit"]' ),
    655651                                'background' => array( '#site-header', '.footer-nav-widgets-wrapper', '#site-footer', '.menu-modal', '.menu-modal-inner', '.search-modal-inner', '.archive-header', '.singular .entry-header', '.singular .featured-media:before', '.wp-block-pullquote:before' ),
    656652                        ),
    657653                        'text'       => array(
  • src/wp-content/themes/twentytwenty/header.php

    diff --git a/src/wp-content/themes/twentytwenty/header.php b/src/wp-content/themes/twentytwenty/header.php
    index 651faa3530..467f602baf 100644
    a b  
    99 * @since 1.0.0
    1010 */
    1111
    12 ?>
    13 <!DOCTYPE html>
     12?><!DOCTYPE html>
    1413
    1514<html class="no-js" <?php language_attributes(); ?>>
    1615
     
    3130                wp_body_open();
    3231                ?>
    3332
    34                 <header id="site-header" class="header-footer-group">
     33                <header id="site-header" class="header-footer-group" role="banner">
    3534
    3635                        <div class="header-inner section-inner">
    3736
     
    4645
    4746                                                ?>
    4847
    49                                                 <button class="toggle search-toggle mobile-search-toggle" data-toggle-target=".search-modal" data-toggle-screen-lock="true" data-toggle-body-class="showing-search-modal" data-set-focus=".search-modal .search-field" aria-expanded="false">
    50                                                         <div class="toggle-inner">
    51                                                                 <div class="toggle-icon">
     48                                                <button class="toggle search-toggle mobile-search-toggle" data-toggle-target=".search-modal" data-toggle-body-class="showing-search-modal" data-set-focus=".search-modal .search-field" aria-expanded="false">
     49                                                        <span class="toggle-inner">
     50                                                                <span class="toggle-icon">
    5251                                                                        <?php twentytwenty_the_theme_svg( 'search' ); ?>
    53                                                                 </div>
    54                                                                 <span class="toggle-text"><?php _e( 'Search', 'twentytwenty' ); // phpcs:ignore WordPress.Security.EscapeOutput.UnsafePrintingFunction -- core trusts translations ?></span>
    55                                                         </div>
     52                                                                </span>
     53                                                                <span class="toggle-text"><?php _e( 'Search', 'twentytwenty' ); ?></span>
     54                                                        </span>
    5655                                                </button><!-- .search-toggle -->
    5756
    5857                                        <?php } ?>
     
    6968
    7069                                        </div><!-- .header-titles -->
    7170
    72                                         <button class="toggle nav-toggle mobile-nav-toggle" data-toggle-target=".menu-modal" data-toggle-screen-lock="true" data-toggle-body-class="showing-menu-modal" aria-expanded="false" data-set-focus=".close-nav-toggle">
    73                                                 <div class="toggle-inner">
    74                                                         <div class="toggle-icon">
     71                                        <button class="toggle nav-toggle mobile-nav-toggle" data-toggle-target=".menu-modal" data-toggle-body-class="showing-menu-modal" aria-expanded="false" data-set-focus=".close-nav-toggle">
     72                                                <span class="toggle-inner">
     73                                                        <span class="toggle-icon">
    7574                                                                <?php twentytwenty_the_theme_svg( 'ellipsis' ); ?>
    76                                                         </div>
    77                                                         <span class="toggle-text"><?php _e( 'Menu', 'twentytwenty' ); // phpcs:ignore WordPress.Security.EscapeOutput.UnsafePrintingFunction -- core trusts translations ?></span>
    78                                                 </div>
     75                                                        </span>
     76                                                        <span class="toggle-text"><?php _e( 'Menu', 'twentytwenty' ); ?></span>
     77                                                </span>
    7978                                        </button><!-- .nav-toggle -->
    8079
    8180                                </div><!-- .header-titles-wrapper -->
     
    129128                                        }
    130129                                        ?>
    131130
    132                                         <div class="header-toggles hide-no-js<?php echo esc_attr( $header_toggles_classes ); ?>">
     131                                        <div class="header-toggles hide-no-js<?php echo $header_toggles_classes; //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- static output ?>">
    133132
    134133                                                <?php
    135134                                                $nav_toggle_wrapper_classes = '';
     
    140139                                                }
    141140                                                ?>
    142141
    143                                                 <div class="toggle-wrapper nav-toggle-wrapper<?php echo esc_attr( $nav_toggle_wrapper_classes ); ?>">
     142                                                <div class="toggle-wrapper nav-toggle-wrapper<?php echo $nav_toggle_wrapper_classes; //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- static output ?>">
    144143
    145                                                         <button class="toggle nav-toggle" data-toggle-target=".menu-modal" data-toggle-screen-lock="true" data-toggle-body-class="showing-menu-modal" aria-expanded="false" data-set-focus=".close-nav-toggle">
    146                                                                 <div class="toggle-inner">
    147                                                                         <span class="toggle-text"><?php _e( 'Menu', 'twentytwenty' ); // phpcs:ignore WordPress.Security.EscapeOutput.UnsafePrintingFunction -- core trusts translations ?></span>
    148                                                                         <div class="toggle-icon">
     144                                                        <button class="toggle nav-toggle desktop-nav-toggle" data-toggle-target=".menu-modal" data-toggle-body-class="showing-menu-modal" aria-expanded="false" data-set-focus=".close-nav-toggle">
     145                                                                <span class="toggle-inner">
     146                                                                        <span class="toggle-text"><?php _e( 'Menu', 'twentytwenty' ); ?></span>
     147                                                                        <span class="toggle-icon">
    149148                                                                                <?php twentytwenty_the_theme_svg( 'ellipsis' ); ?>
    150                                                                         </div>
    151                                                                 </div>
     149                                                                        </span>
     150                                                                </span>
    152151                                                        </button><!-- .nav-toggle -->
    153152
    154153                                                </div><!-- .nav-toggle-wrapper -->
     
    159158
    160159                                                        <div class="toggle-wrapper search-toggle-wrapper">
    161160
    162                                                                 <button class="toggle search-toggle" data-toggle-target=".search-modal" data-toggle-screen-lock="true" data-toggle-body-class="showing-search-modal" data-set-focus=".search-modal .search-field" aria-expanded="false">
    163                                                                         <div class="toggle-inner">
     161                                                                <button class="toggle search-toggle desktop-search-toggle" data-toggle-target=".search-modal" data-toggle-body-class="showing-search-modal" data-set-focus=".search-modal .search-field" aria-expanded="false">
     162                                                                        <span class="toggle-inner">
    164163                                                                                <?php twentytwenty_the_theme_svg( 'search' ); ?>
    165                                                                                 <span class="toggle-text"><?php _e( 'Search', 'twentytwenty' ); // phpcs:ignore WordPress.Security.EscapeOutput.UnsafePrintingFunction -- core trusts translations ?></span>
    166                                                                         </div>
     164                                                                                <span class="toggle-text"><?php _e( 'Search', 'twentytwenty' ); ?></span>
     165                                                                        </span>
    167166                                                                </button><!-- .search-toggle -->
    168167
    169168                                                        </div>
  • src/wp-content/themes/twentytwenty/inc/custom-css.php

    diff --git a/src/wp-content/themes/twentytwenty/inc/custom-css.php b/src/wp-content/themes/twentytwenty/inc/custom-css.php
    index 8ad1601399..4bf3be81e7 100644
    a b if ( ! function_exists( 'twentytwenty_get_customizer_css' ) ) { 
    6060                $accent         = sanitize_hex_color( twentytwenty_get_color_for_area( 'content', 'accent' ) );
    6161                $accent_default = '#cd2653';
    6262                /**
    63                  * Filters the CSS selectors targetting button component on frontend to apply common css
     63                 * Filters the CSS selectors targeting button component on frontend to apply common css
    6464                 *
    6565                 * @since 1.0.0
    6666                 *
    67                  * @param string $string   The comma separated string of all CSS selectors targetting button component
     67                 * @param string $string   The comma separated string of all CSS selectors targeting button component
    6868                 */
    6969                $buttons_targets = apply_filters( 'twentytwenty_buttons_targets_front_end', 'button, .button, .faux-button, .wp-block-button__link, .wp-block-file__button, input[type=\'button\'], input[type=\'reset\'], input[type=\'submit\']' );
    7070
    if ( ! function_exists( 'twentytwenty_get_customizer_css' ) ) { 
    102102                                        foreach ( $definitions as $property => $elements ) {
    103103                                                /*
    104104                                                 * If we don't have an elements array or it is empty
    105                                                  * then skip this itteration early;
     105                                                 * then skip this iteration early;
    106106                                                 */
    107107                                                if ( ! is_array( $elements ) || empty( $elements ) ) {
    108108                                                        continue;
    if ( ! function_exists( 'twentytwenty_get_customizer_css' ) ) { 
    120120                                twentytwenty_generate_css( '.cover-header .entry-header *', 'color', $cover );
    121121                        }
    122122
    123                         // Helper Classes.
    124                         if ( $accent && $accent !== $accent_default ) {
    125                                 twentytwenty_generate_css( '.color-accent, .color-accent-hover:hover, .has-accent-color', 'color', $accent );
    126                                 twentytwenty_generate_css( '.bg-accent, .bg-accent-hover:hover, .has-accent-background-color', 'background-color', $accent );
    127                                 twentytwenty_generate_css( '.border-color-accent, .border-color-accent-hover:hover', 'border-color', $accent );
    128                                 twentytwenty_generate_css( '.fill-children-accent, .fill-children-accent *', 'fill', $accent );
    129                         }
    130 
    131123                        // Block Editor Styles.
    132124                } elseif ( 'block-editor' === $type ) {
    133125
  • src/wp-content/themes/twentytwenty/inc/starter-content.php

    diff --git a/src/wp-content/themes/twentytwenty/inc/starter-content.php b/src/wp-content/themes/twentytwenty/inc/starter-content.php
    index d071724bfc..f990f2e5ad 100644
    a b function twentytwenty_get_starter_content() { 
    2222        // Define and register starter content to showcase the theme on new sites.
    2323        $starter_content = array(
    2424                'widgets'   => array(
    25                         // Place one core-defined widgets in the first tooter widget area.
     25                        // Place one core-defined widgets in the first footer widget area.
    2626                        'sidebar-1' => array(
    2727                                'text_about',
    2828                        ),
    29                         // Place one core-defined widgets in the second tooter widget area.
     29                        // Place one core-defined widgets in the second footer widget area.
    3030                        'sidebar-2' => array(
    3131                                'text_business_info',
    3232                        ),
  • src/wp-content/themes/twentytwenty/inc/svg-icons.php

    diff --git a/src/wp-content/themes/twentytwenty/inc/svg-icons.php b/src/wp-content/themes/twentytwenty/inc/svg-icons.php
    index b2b994a1ab..75cdd38577 100644
    a b if ( ! function_exists( 'twentytwenty_the_theme_svg' ) ) { 
    1313         * Output and get the SVG markup for an icon in the TwentyTwenty_SVG_Icons class.
    1414         *
    1515         * @param string $svg_name The name of the icon.
     16         * @param string $group The group the icon belongs to.
    1617         * @param string $color Color code.
    1718         */
    18         function twentytwenty_the_theme_svg( $svg_name, $color = '' ) {
    19                 echo twentytwenty_get_theme_svg( $svg_name, $color ); //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- Escaped in twentytwenty_get_theme_svg();.
     19        function twentytwenty_the_theme_svg( $svg_name, $group = 'ui', $color = '' ) {
     20                echo twentytwenty_get_theme_svg( $svg_name, $group, $color ); //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- Escaped in twentytwenty_get_theme_svg();.
    2021        }
    2122}
    2223
    if ( ! function_exists( 'twentytwenty_get_theme_svg' ) ) { 
    2627         * Get information about the SVG icon.
    2728         *
    2829         * @param string $svg_name The name of the icon.
     30         * @param string $group The group the icon belongs to.
    2931         * @param string $color Color code.
    3032         */
    31         function twentytwenty_get_theme_svg( $svg_name, $color = '' ) {
     33        function twentytwenty_get_theme_svg( $svg_name, $group = 'ui', $color = '' ) {
    3234
    3335                // Make sure that only our allowed tags and attributes are included.
    3436                $svg = wp_kses(
    35                         TwentyTwenty_SVG_Icons::get_svg( $svg_name, $color ),
     37                        TwentyTwenty_SVG_Icons::get_svg( $svg_name, $group, $color ),
    3638                        array(
    3739                                'svg'     => array(
    3840                                        'class'       => true,
  • src/wp-content/themes/twentytwenty/inc/template-tags.php

    diff --git a/src/wp-content/themes/twentytwenty/inc/template-tags.php b/src/wp-content/themes/twentytwenty/inc/template-tags.php
    index b75947a344..4a121cd43e 100644
    a b  
    99
    1010/**
    1111 * Table of Contents:
     12 * Logo & Description
    1213 * Comments
    1314 * Post Meta
    1415 * Menus
    1516 * Classes
     17 * Archives
     18 * Miscellaneous
    1619 */
    1720
     21/**
     22 * Logo & Description
     23 */
    1824/**
    1925 * Displays the site logo, either text or image.
    2026 *
    2127 * @param array   $args Arguments for displaying the site logo either as an image or text.
    22  * @param boolean $echo Echo or return the html.
     28 * @param boolean $echo Echo or return the HTML.
     29 *
     30 * @return string $html Compiled HTML based on our arguments.
    2331 */
    2432function twentytwenty_site_logo( $args = array(), $echo = true ) {
    2533        $logo       = get_custom_logo();
    function twentytwenty_site_logo( $args = array(), $echo = true ) { 
    8189 * Displays the site description.
    8290 *
    8391 * @param boolean $echo Echo or return the html.
     92 *
     93 * @return string $html The HTML to display.
    8494 */
    8595function twentytwenty_site_description( $echo = true ) {
    8696        $description = get_bloginfo( 'description' );
    function twentytwenty_site_description( $echo = true ) { 
    118128 * Check if the specified comment is written by the author of the post commented on.
    119129 *
    120130 * @param object $comment Comment data.
     131 *
     132 * @return bool
    121133 */
    122134function twentytwenty_is_comment_by_post_author( $comment = null ) {
    123135
    function twentytwenty_is_comment_by_post_author( $comment = null ) { 
    142154 * makes it scroll to the wrong position on the page.
    143155 *
    144156 * @param string $link Link to the top of the page.
     157 *
     158 * @return string $link Link to the top of the page.
    145159 */
    146160function twentytwenty_filter_comment_reply_link( $link ) {
    147161
    function twentytwenty_the_post_meta( $post_id = null, $location = 'single-top' ) 
    168182
    169183}
    170184
     185/**
     186 * Filters the edit post link to add an icon and use the post meta structure.
     187 *
     188 * @param string $link    Anchor tag for the edit link.
     189 * @param int    $post_id Post ID.
     190 * @param string $text    Anchor text.
     191 */
     192function twentytwenty_edit_post_link( $link, $post_id, $text ) {
     193
     194        $edit_url = get_edit_post_link( $post_id );
     195
     196        if ( ! $edit_url ) {
     197                return;
     198        }
     199
     200        $text = sprintf(
     201                wp_kses(
     202                        /* translators: %s: Post title. Only visible to screen readers. */
     203                        __( 'Edit <span class="screen-reader-text">%s</span>', 'twentytwenty' ),
     204                        array(
     205                                'span' => array(
     206                                        'class' => array(),
     207                                ),
     208                        )
     209                ),
     210                get_the_title( $post_id )
     211        );
     212
     213        return '<div class="post-meta-wrapper post-meta-edit-link-wrapper"><ul class="post-meta"><li class="post-edit meta-wrapper"><span class="meta-icon">' . twentytwenty_get_theme_svg( 'edit' ) . '</span><span class="meta-text"><a href="' . esc_url( $edit_url ) . '">' . $text . '</a></span></li></ul><!-- .post-meta --></div><!-- .post-meta-wrapper -->';
     214
     215}
     216
     217add_filter( 'edit_post_link', 'twentytwenty_edit_post_link', 10, 3 );
     218
    171219/**
    172220 * Get the post meta.
    173221 *
    function twentytwenty_get_post_meta( $post_id = null, $location = 'single-top' ) 
    206254                /**
    207255                * Filters post meta info visibility
    208256                *
    209                 * Use this filter to hide post meta information like Author, Post date, Comments, Is stiky status
     257                * Use this filter to hide post meta information like Author, Post date, Comments, Is sticky status
    210258                *
    211259                * @since 1.0.0
    212260                *
    function twentytwenty_get_post_meta( $post_id = null, $location = 'single-top' ) 
    289337                                        ?>
    290338                                        <li class="post-author meta-wrapper">
    291339                                                <span class="meta-icon">
    292                                                         <span class="screen-reader-text"><?php _e( 'Post author', 'twentytwenty' );// phpcs:ignore WordPress.Security.EscapeOutput.UnsafePrintingFunction -- core trusts translations ?></span>
     340                                                        <span class="screen-reader-text"><?php _e( 'Post author', 'twentytwenty' ); ?></span>
    293341                                                        <?php twentytwenty_the_theme_svg( 'user' ); ?>
    294342                                                </span>
    295343                                                <span class="meta-text">
    296344                                                        <?php
    297345                                                        printf(
    298                                                                 // Translators: %s = the author name.
    299                                                                 _x( 'By %s', '%s = author name', 'twentytwenty' ), // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- core trusts translations
     346                                                                /* translators: %s: Author name */
     347                                                                __( 'By %s', 'twentytwenty' ),
    300348                                                                '<a href="' . esc_url( get_author_posts_url( get_the_author_meta( 'ID' ) ) ) . '">' . esc_html( get_the_author_meta( 'display_name' ) ) . '</a>'
    301349                                                        );
    302350                                                        ?>
    function twentytwenty_get_post_meta( $post_id = null, $location = 'single-top' ) 
    314362                                        <li class="post-date">
    315363                                                <a class="meta-wrapper" href="<?php the_permalink(); ?>">
    316364                                                        <span class="meta-icon">
    317                                                                 <span class="screen-reader-text"><?php _e( 'Post date', 'twentytwenty' ); // phpcs:ignore WordPress.Security.EscapeOutput.UnsafePrintingFunction -- core trusts translations ?></span>
     365                                                                <span class="screen-reader-text"><?php _e( 'Post date', 'twentytwenty' ); ?></span>
    318366                                                                <?php twentytwenty_the_theme_svg( 'calendar' ); ?>
    319367                                                        </span>
    320368                                                        <span class="meta-text">
    function twentytwenty_get_post_meta( $post_id = null, $location = 'single-top' ) 
    333381                                        ?>
    334382                                        <li class="post-categories meta-wrapper">
    335383                                                <span class="meta-icon">
    336                                                         <span class="screen-reader-text"><?php _e( 'Categories', 'twentytwenty' ); // phpcs:ignore WordPress.Security.EscapeOutput.UnsafePrintingFunction -- core trusts translations ?></span>
     384                                                        <span class="screen-reader-text"><?php _e( 'Categories', 'twentytwenty' ); ?></span>
    337385                                                        <?php twentytwenty_the_theme_svg( 'folder' ); ?>
    338386                                                </span>
    339387                                                <span class="meta-text">
    340                                                         <?php _e( 'In', 'twentytwenty' ); // phpcs:ignore WordPress.Security.EscapeOutput.UnsafePrintingFunction -- core trusts translations ?> <?php the_category( ', ' ); ?>
     388                                                        <?php _e( 'In', 'twentytwenty' ); ?> <?php the_category( ', ' ); ?>
    341389                                                </span>
    342390                                        </li>
    343391                                        <?php
    function twentytwenty_get_post_meta( $post_id = null, $location = 'single-top' ) 
    351399                                        ?>
    352400                                        <li class="post-tags meta-wrapper">
    353401                                                <span class="meta-icon">
    354                                                         <span class="screen-reader-text"><?php _e( 'Tags', 'twentytwenty' ); // phpcs:ignore WordPress.Security.EscapeOutput.UnsafePrintingFunction -- core trusts translations ?></span>
     402                                                        <span class="screen-reader-text"><?php _e( 'Tags', 'twentytwenty' ); ?></span>
    355403                                                        <?php twentytwenty_the_theme_svg( 'tag' ); ?>
    356404                                                </span>
    357405                                                <span class="meta-text">
    function twentytwenty_get_post_meta( $post_id = null, $location = 'single-top' ) 
    389437                                                        <?php twentytwenty_the_theme_svg( 'bookmark' ); ?>
    390438                                                </span>
    391439                                                <span class="meta-text">
    392                                                         <?php _e( 'Sticky post', 'twentytwenty' ); // phpcs:ignore WordPress.Security.EscapeOutput.UnsafePrintingFunction -- core trusts translations ?>
     440                                                        <?php _e( 'Sticky post', 'twentytwenty' ); ?>
    393441                                                </span>
    394442                                        </li>
    395443                                        <?php
    function twentytwenty_get_post_meta( $post_id = null, $location = 'single-top' ) 
    437485 * Filter the class applied to wp_list_pages() items with children to match the menu class, to simplify.
    438486 * styling of sub levels in the fallback. Only applied if the match_menu_classes argument is set.
    439487 *
    440  * @param string $css_class CSS Class names.
     488 * @param array $css_class CSS Class names.
    441489 * @param string $item Comment.
    442490 * @param int    $depth Depth of the current comment.
    443491 * @param array  $args An array of arguments.
    444  * @param string $current_page Wether or not the item is the current item.
     492 * @param string $current_page Whether or not the item is the current item.
     493 *
     494 * @return array $css_class CSS Class names.
    445495 */
    446496function twentytwenty_filter_wp_list_pages_item_classes( $css_class, $item, $depth, $args, $current_page ) {
    447497
    add_filter( 'page_css_class', 'twentytwenty_filter_wp_list_pages_item_classes', 
    471521/**
    472522 * Add a Sub Nav Toggle to the Expanded Menu and Mobile Menu.
    473523 *
    474  * @param array  $args An array of arguments.
    475  * @param string $item Menu item.
    476  * @param int    $depth Depth of the current menu item.
     524 * @param stdClass $args An array of arguments.
     525 * @param string   $item Menu item.
     526 * @param int      $depth Depth of the current menu item.
     527 *
     528 * @return stdClass $args An object of wp_nav_menu() arguments.
    477529 */
    478530function twentytwenty_add_sub_toggles_to_main_menu( $args, $item, $depth ) {
    479531
    function twentytwenty_add_sub_toggles_to_main_menu( $args, $item, $depth ) { 
    513565
    514566add_filter( 'nav_menu_item_args', 'twentytwenty_add_sub_toggles_to_main_menu', 10, 3 );
    515567
     568/**
     569 * Display SVG icons in social links menu.
     570 *
     571 * @param  string  $item_output The menu item output.
     572 * @param  WP_Post $item        Menu item object.
     573 * @param  int     $depth       Depth of the menu.
     574 * @param  array   $args        wp_nav_menu() arguments.
     575 * @return string  $item_output The menu item output with social icon.
     576 */
     577function twentytwenty_nav_menu_social_icons( $item_output, $item, $depth, $args ) {
     578        // Change SVG icon inside social links menu if there is supported URL.
     579        if ( 'social' === $args->theme_location ) {
     580                $svg = TwentyTwenty_SVG_Icons::get_social_link_svg( $item->url );
     581                if ( empty( $svg ) ) {
     582                        $svg = twentytwenty_get_theme_svg( 'link' );
     583                }
     584                $item_output = str_replace( $args->link_after, '</span>' . $svg, $item_output );
     585        }
     586
     587        return $item_output;
     588}
     589
     590add_filter( 'walker_nav_menu_start_el', 'twentytwenty_nav_menu_social_icons', 10, 4 );
     591
    516592/**
    517593 * Classes
    518594 */
    function twentytwenty_no_js_class() { 
    530606
    531607add_action( 'wp_head', 'twentytwenty_no_js_class' );
    532608
    533 /**
    534  * Filters the archive title and styles the word before the first colon.
    535  *
    536  * @param string $title Current archive title.
    537  */
    538 function twentytwenty_get_the_archive_title( $title ) {
    539 
    540         $regex = apply_filters(
    541                 'twentytwenty_get_the_archive_title_regex',
    542                 array(
    543                         'pattern'     => '/(\A[^\:]+\:)/',
    544                         'replacement' => '<span class="color-accent">$1</span>',
    545                 )
    546         );
    547 
    548         if ( empty( $regex ) ) {
    549 
    550                 return $title;
    551 
    552         }
    553 
    554         return preg_replace( $regex['pattern'], $regex['replacement'], $title );
    555 
    556 }
    557 
    558 add_filter( 'get_the_archive_title', 'twentytwenty_get_the_archive_title' );
    559 
    560 /**
    561  * Filters the edit post link to add an icon and use the post meta structure.
    562  *
    563  * @param string $link    Anchor tag for the edit link.
    564  * @param int    $post_id Post ID.
    565  * @param string $text    Anchor text.
    566  */
    567 function twentytwenty_edit_post_link( $link, $post_id, $text ) {
    568 
    569         $edit_url = get_edit_post_link( $post_id );
    570 
    571         if ( ! $edit_url ) {
    572                 return;
    573         }
    574 
    575         return '<div class="post-meta-wrapper post-meta-edit-link-wrapper"><ul class="post-meta"><li class="post-edit meta-wrapper"><span class="meta-icon">' . twentytwenty_get_theme_svg( 'edit' ) . '</span><span class="meta-text"><a href="' . esc_url( $edit_url ) . '">' . $text . '</a></span></li></ul><!-- .post-meta --></div><!-- .post-meta-wrapper -->';
    576 
    577 }
    578 
    579 add_filter( 'edit_post_link', 'twentytwenty_edit_post_link', 10, 3 );
    580 
    581609/**
    582610 * Add conditional body classes.
    583611 *
    584  * @param string $classes Classes added to the body tag.
     612 * @param array $classes Classes added to the body tag.
     613 *
     614 * @return array $classes Classes added to the body tag.
    585615 */
    586616function twentytwenty_body_classes( $classes ) {
    587617
    function twentytwenty_body_classes( $classes ) { 
    674704
    675705add_filter( 'body_class', 'twentytwenty_body_classes' );
    676706
     707/**
     708 * Archives
     709 */
     710/**
     711 * Filters the archive title and styles the word before the first colon.
     712 *
     713 * @param string $title Current archive title.
     714 *
     715 * @return string $title Current archive title.
     716 */
     717function twentytwenty_get_the_archive_title( $title ) {
     718
     719        $regex = apply_filters(
     720                'twentytwenty_get_the_archive_title_regex',
     721                array(
     722                        'pattern'     => '/(\A[^\:]+\:)/',
     723                        'replacement' => '<span class="color-accent">$1</span>',
     724                )
     725        );
     726
     727        if ( empty( $regex ) ) {
     728
     729                return $title;
     730
     731        }
     732
     733        return preg_replace( $regex['pattern'], $regex['replacement'], $title );
     734
     735}
     736
     737add_filter( 'get_the_archive_title', 'twentytwenty_get_the_archive_title' );
     738
     739/**
     740 * Miscellaneous
     741 */
    677742/**
    678743 * Toggle animation duration in milliseconds.
    679744 *
    function twentytwenty_toggle_duration() { 
    691756
    692757        return $duration;
    693758}
     759
     760/**
     761 * Get unique ID.
     762 *
     763 * This is a PHP implementation of Underscore's uniqueId method. A static variable
     764 * contains an integer that is incremented with each call. This number is returned
     765 * with the optional prefix. As such the returned value is not universally unique,
     766 * but it is unique across the life of the PHP process.
     767 *
     768 * @see wp_unique_id() Themes requiring WordPress 5.0.3 and greater should use this instead.
     769 *
     770 * @staticvar int $id_counter
     771 *
     772 * @param string $prefix Prefix for the returned ID.
     773 * @return string Unique ID.
     774 */
     775function twentytwenty_unique_id( $prefix = '' ) {
     776        static $id_counter = 0;
     777        if ( function_exists( 'wp_unique_id' ) ) {
     778                return wp_unique_id( $prefix );
     779        }
     780        return $prefix . (string) ++$id_counter;
     781}
  • src/wp-content/themes/twentytwenty/index.php

    diff --git a/src/wp-content/themes/twentytwenty/index.php b/src/wp-content/themes/twentytwenty/index.php
    index 7ca0b97a06..434eae29b3 100644
    a b get_header(); 
    3434                );
    3535
    3636                if ( $wp_query->found_posts ) {
    37                         /* Translators: %s = Number of results */
    38                         $archive_subtitle = sprintf( _nx( 'We found %s result for your search.', 'We found %s results for your search.', $wp_query->found_posts, '%s = Number of results', 'twentytwenty' ), $wp_query->found_posts );
     37                        $archive_subtitle = sprintf(
     38                                /* translators: %s: Number of search results */
     39                                _n(
     40                                        'We found %s result for your search.',
     41                                        'We found %s results for your search.',
     42                                        $wp_query->found_posts,
     43                                        'twentytwenty'
     44                                ),
     45                                number_format_i18n( $wp_query->found_posts )
     46                        );
    3947                } else {
    4048                        $archive_subtitle = __( 'We could not find any results for your search. You can give it another try through the search form below.', 'twentytwenty' );
    4149                }
    get_header(); 
    8896                        <?php
    8997                        get_search_form(
    9098                                array(
    91                                         'label' => _x( 'search again', 'Label', 'twentytwenty' ),
     99                                        'label' => __( 'search again', 'twentytwenty' ),
    92100                                )
    93101                        );
    94102                        ?>
    get_header(); 
    100108        ?>
    101109
    102110        <?php get_template_part( 'template-parts/pagination' ); ?>
    103         <?php get_template_part( 'template-parts/footer-menus-widgets' ); ?>
    104111
    105112</main><!-- #site-content -->
    106113
     114<?php get_template_part( 'template-parts/footer-menus-widgets' ); ?>
     115
    107116<?php
    108117get_footer();
  • src/wp-content/themes/twentytwenty/package-lock.json

    diff --git a/src/wp-content/themes/twentytwenty/package-lock.json b/src/wp-content/themes/twentytwenty/package-lock.json
    index e842923678..f7df260778 100644
    a b  
    53115311                        "dependencies": {
    53125312                                "abbrev": {
    53135313                                        "version": "1.1.1",
    5314                                         "bundled": true,
     5314                                        "resolved": false,
     5315                                        "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
    53155316                                        "dev": true,
    53165317                                        "optional": true
    53175318                                },
    53185319                                "ansi-regex": {
    53195320                                        "version": "2.1.1",
    5320                                         "bundled": true,
     5321                                        "resolved": false,
     5322                                        "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
    53215323                                        "dev": true,
    53225324                                        "optional": true
    53235325                                },
    53245326                                "aproba": {
    53255327                                        "version": "1.2.0",
    5326                                         "bundled": true,
     5328                                        "resolved": false,
     5329                                        "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==",
    53275330                                        "dev": true,
    53285331                                        "optional": true
    53295332                                },
    53305333                                "are-we-there-yet": {
    53315334                                        "version": "1.1.5",
    5332                                         "bundled": true,
     5335                                        "resolved": false,
     5336                                        "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==",
    53335337                                        "dev": true,
    53345338                                        "optional": true,
    53355339                                        "requires": {
     
    53395343                                },
    53405344                                "balanced-match": {
    53415345                                        "version": "1.0.0",
    5342                                         "bundled": true,
     5346                                        "resolved": false,
     5347                                        "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
    53435348                                        "dev": true,
    53445349                                        "optional": true
    53455350                                },
    53465351                                "brace-expansion": {
    53475352                                        "version": "1.1.11",
    5348                                         "bundled": true,
     5353                                        "resolved": false,
     5354                                        "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
    53495355                                        "dev": true,
    53505356                                        "optional": true,
    53515357                                        "requires": {
     
    53555361                                },
    53565362                                "chownr": {
    53575363                                        "version": "1.1.1",
    5358                                         "bundled": true,
     5364                                        "resolved": false,
     5365                                        "integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==",
    53595366                                        "dev": true,
    53605367                                        "optional": true
    53615368                                },
    53625369                                "code-point-at": {
    53635370                                        "version": "1.1.0",
    5364                                         "bundled": true,
     5371                                        "resolved": false,
     5372                                        "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
    53655373                                        "dev": true,
    53665374                                        "optional": true
    53675375                                },
    53685376                                "concat-map": {
    53695377                                        "version": "0.0.1",
    5370                                         "bundled": true,
     5378                                        "resolved": false,
     5379                                        "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
    53715380                                        "dev": true,
    53725381                                        "optional": true
    53735382                                },
    53745383                                "console-control-strings": {
    53755384                                        "version": "1.1.0",
    5376                                         "bundled": true,
     5385                                        "resolved": false,
     5386                                        "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=",
    53775387                                        "dev": true,
    53785388                                        "optional": true
    53795389                                },
    53805390                                "core-util-is": {
    53815391                                        "version": "1.0.2",
    5382                                         "bundled": true,
     5392                                        "resolved": false,
     5393                                        "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
    53835394                                        "dev": true,
    53845395                                        "optional": true
    53855396                                },
    53865397                                "debug": {
    53875398                                        "version": "4.1.1",
    5388                                         "bundled": true,
     5399                                        "resolved": false,
     5400                                        "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
    53895401                                        "dev": true,
    53905402                                        "optional": true,
    53915403                                        "requires": {
     
    53945406                                },
    53955407                                "deep-extend": {
    53965408                                        "version": "0.6.0",
    5397                                         "bundled": true,
     5409                                        "resolved": false,
     5410                                        "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
    53985411                                        "dev": true,
    53995412                                        "optional": true
    54005413                                },
    54015414                                "delegates": {
    54025415                                        "version": "1.0.0",
    5403                                         "bundled": true,
     5416                                        "resolved": false,
     5417                                        "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=",
    54045418                                        "dev": true,
    54055419                                        "optional": true
    54065420                                },
    54075421                                "detect-libc": {
    54085422                                        "version": "1.0.3",
    5409                                         "bundled": true,
     5423                                        "resolved": false,
     5424                                        "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=",
    54105425                                        "dev": true,
    54115426                                        "optional": true
    54125427                                },
    54135428                                "fs-minipass": {
    54145429                                        "version": "1.2.5",
    5415                                         "bundled": true,
     5430                                        "resolved": false,
     5431                                        "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==",
    54165432                                        "dev": true,
    54175433                                        "optional": true,
    54185434                                        "requires": {
     
    54215437                                },
    54225438                                "fs.realpath": {
    54235439                                        "version": "1.0.0",
    5424                                         "bundled": true,
     5440                                        "resolved": false,
     5441                                        "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
    54255442                                        "dev": true,
    54265443                                        "optional": true
    54275444                                },
    54285445                                "gauge": {
    54295446                                        "version": "2.7.4",
    5430                                         "bundled": true,
     5447                                        "resolved": false,
     5448                                        "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
    54315449                                        "dev": true,
    54325450                                        "optional": true,
    54335451                                        "requires": {
     
    54435461                                },
    54445462                                "glob": {
    54455463                                        "version": "7.1.3",
    5446                                         "bundled": true,
     5464                                        "resolved": false,
     5465                                        "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
    54475466                                        "dev": true,
    54485467                                        "optional": true,
    54495468                                        "requires": {
     
    54575476                                },
    54585477                                "has-unicode": {
    54595478                                        "version": "2.0.1",
    5460                                         "bundled": true,
     5479                                        "resolved": false,
     5480                                        "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=",
    54615481                                        "dev": true,
    54625482                                        "optional": true
    54635483                                },
    54645484                                "iconv-lite": {
    54655485                                        "version": "0.4.24",
    5466                                         "bundled": true,
     5486                                        "resolved": false,
     5487                                        "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
    54675488                                        "dev": true,
    54685489                                        "optional": true,
    54695490                                        "requires": {
     
    54725493                                },
    54735494                                "ignore-walk": {
    54745495                                        "version": "3.0.1",
    5475                                         "bundled": true,
     5496                                        "resolved": false,
     5497                                        "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==",
    54765498                                        "dev": true,
    54775499                                        "optional": true,
    54785500                                        "requires": {
     
    54815503                                },
    54825504                                "inflight": {
    54835505                                        "version": "1.0.6",
    5484                                         "bundled": true,
     5506                                        "resolved": false,
     5507                                        "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
    54855508                                        "dev": true,
    54865509                                        "optional": true,
    54875510                                        "requires": {
     
    54915514                                },
    54925515                                "inherits": {
    54935516                                        "version": "2.0.3",
    5494                                         "bundled": true,
     5517                                        "resolved": false,
     5518                                        "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
    54955519                                        "dev": true,
    54965520                                        "optional": true
    54975521                                },
    54985522                                "ini": {
    54995523                                        "version": "1.3.5",
    5500                                         "bundled": true,
     5524                                        "resolved": false,
     5525                                        "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==",
    55015526                                        "dev": true,
    55025527                                        "optional": true
    55035528                                },
    55045529                                "is-fullwidth-code-point": {
    55055530                                        "version": "1.0.0",
    5506                                         "bundled": true,
     5531                                        "resolved": false,
     5532                                        "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
    55075533                                        "dev": true,
    55085534                                        "optional": true,
    55095535                                        "requires": {
     
    55125538                                },
    55135539                                "isarray": {
    55145540                                        "version": "1.0.0",
    5515                                         "bundled": true,
     5541                                        "resolved": false,
     5542                                        "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
    55165543                                        "dev": true,
    55175544                                        "optional": true
    55185545                                },
    55195546                                "minimatch": {
    55205547                                        "version": "3.0.4",
    5521                                         "bundled": true,
     5548                                        "resolved": false,
     5549                                        "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
    55225550                                        "dev": true,
    55235551                                        "optional": true,
    55245552                                        "requires": {
     
    55275555                                },
    55285556                                "minimist": {
    55295557                                        "version": "0.0.8",
    5530                                         "bundled": true,
     5558                                        "resolved": false,
     5559                                        "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
    55315560                                        "dev": true,
    55325561                                        "optional": true
    55335562                                },
    55345563                                "minipass": {
    55355564                                        "version": "2.3.5",
    5536                                         "bundled": true,
     5565                                        "resolved": false,
     5566                                        "integrity": "sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA==",
    55375567                                        "dev": true,
    55385568                                        "optional": true,
    55395569                                        "requires": {
     
    55435573                                },
    55445574                                "minizlib": {
    55455575                                        "version": "1.2.1",
    5546                                         "bundled": true,
     5576                                        "resolved": false,
     5577                                        "integrity": "sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA==",
    55475578                                        "dev": true,
    55485579                                        "optional": true,
    55495580                                        "requires": {
     
    55525583                                },
    55535584                                "mkdirp": {
    55545585                                        "version": "0.5.1",
    5555                                         "bundled": true,
     5586                                        "resolved": false,
     5587                                        "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
    55565588                                        "dev": true,
    55575589                                        "optional": true,
    55585590                                        "requires": {
     
    55615593                                },
    55625594                                "ms": {
    55635595                                        "version": "2.1.1",
    5564                                         "bundled": true,
     5596                                        "resolved": false,
     5597                                        "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
    55655598                                        "dev": true,
    55665599                                        "optional": true
    55675600                                },
    55685601                                "needle": {
    55695602                                        "version": "2.3.0",
    5570                                         "bundled": true,
     5603                                        "resolved": false,
     5604                                        "integrity": "sha512-QBZu7aAFR0522EyaXZM0FZ9GLpq6lvQ3uq8gteiDUp7wKdy0lSd2hPlgFwVuW1CBkfEs9PfDQsQzZghLs/psdg==",
    55715605                                        "dev": true,
    55725606                                        "optional": true,
    55735607                                        "requires": {
     
    55785612                                },
    55795613                                "node-pre-gyp": {
    55805614                                        "version": "0.12.0",
    5581                                         "bundled": true,
     5615                                        "resolved": false,
     5616                                        "integrity": "sha512-4KghwV8vH5k+g2ylT+sLTjy5wmUOb9vPhnM8NHvRf9dHmnW/CndrFXy2aRPaPST6dugXSdHXfeaHQm77PIz/1A==",
    55825617                                        "dev": true,
    55835618                                        "optional": true,
    55845619                                        "requires": {
     
    55965631                                },
    55975632                                "nopt": {
    55985633                                        "version": "4.0.1",
    5599                                         "bundled": true,
     5634                                        "resolved": false,
     5635                                        "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=",
    56005636                                        "dev": true,
    56015637                                        "optional": true,
    56025638                                        "requires": {
     
    56065642                                },
    56075643                                "npm-bundled": {
    56085644                                        "version": "1.0.6",
    5609                                         "bundled": true,
     5645                                        "resolved": false,
     5646                                        "integrity": "sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g==",
    56105647                                        "dev": true,
    56115648                                        "optional": true
    56125649                                },
    56135650                                "npm-packlist": {
    56145651                                        "version": "1.4.1",
    5615                                         "bundled": true,
     5652                                        "resolved": false,
     5653                                        "integrity": "sha512-+TcdO7HJJ8peiiYhvPxsEDhF3PJFGUGRcFsGve3vxvxdcpO2Z4Z7rkosRM0kWj6LfbK/P0gu3dzk5RU1ffvFcw==",
    56165654                                        "dev": true,
    56175655                                        "optional": true,
    56185656                                        "requires": {
     
    56225660                                },
    56235661                                "npmlog": {
    56245662                                        "version": "4.1.2",
    5625                                         "bundled": true,
     5663                                        "resolved": false,
     5664                                        "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
    56265665                                        "dev": true,
    56275666                                        "optional": true,
    56285667                                        "requires": {
     
    56345673                                },
    56355674                                "number-is-nan": {
    56365675                                        "version": "1.0.1",
    5637                                         "bundled": true,
     5676                                        "resolved": false,
     5677                                        "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
    56385678                                        "dev": true,
    56395679                                        "optional": true
    56405680                                },
    56415681                                "object-assign": {
    56425682                                        "version": "4.1.1",
    5643                                         "bundled": true,
     5683                                        "resolved": false,
     5684                                        "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
    56445685                                        "dev": true,
    56455686                                        "optional": true
    56465687                                },
    56475688                                "once": {
    56485689                                        "version": "1.4.0",
    5649                                         "bundled": true,
     5690                                        "resolved": false,
     5691                                        "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
    56505692                                        "dev": true,
    56515693                                        "optional": true,
    56525694                                        "requires": {
     
    56555697                                },
    56565698                                "os-homedir": {
    56575699                                        "version": "1.0.2",
    5658                                         "bundled": true,
     5700                                        "resolved": false,
     5701                                        "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=",
    56595702                                        "dev": true,
    56605703                                        "optional": true
    56615704                                },
    56625705                                "os-tmpdir": {
    56635706                                        "version": "1.0.2",
    5664                                         "bundled": true,
     5707                                        "resolved": false,
     5708                                        "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
    56655709                                        "dev": true,
    56665710                                        "optional": true
    56675711                                },
    56685712                                "osenv": {
    56695713                                        "version": "0.1.5",
    5670                                         "bundled": true,
     5714                                        "resolved": false,
     5715                                        "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==",
    56715716                                        "dev": true,
    56725717                                        "optional": true,
    56735718                                        "requires": {
     
    56775722                                },
    56785723                                "path-is-absolute": {
    56795724                                        "version": "1.0.1",
    5680                                         "bundled": true,
     5725                                        "resolved": false,
     5726                                        "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
    56815727                                        "dev": true,
    56825728                                        "optional": true
    56835729                                },
    56845730                                "process-nextick-args": {
    56855731                                        "version": "2.0.0",
    5686                                         "bundled": true,
     5732                                        "resolved": false,
     5733                                        "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==",
    56875734                                        "dev": true,
    56885735                                        "optional": true
    56895736                                },
    56905737                                "rc": {
    56915738                                        "version": "1.2.8",
    5692                                         "bundled": true,
     5739                                        "resolved": false,
     5740                                        "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
    56935741                                        "dev": true,
    56945742                                        "optional": true,
    56955743                                        "requires": {
     
    57015749                                        "dependencies": {
    57025750                                                "minimist": {
    57035751                                                        "version": "1.2.0",
    5704                                                         "bundled": true,
     5752                                                        "resolved": false,
     5753                                                        "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
    57055754                                                        "dev": true,
    57065755                                                        "optional": true
    57075756                                                }
     
    57095758                                },
    57105759                                "readable-stream": {
    57115760                                        "version": "2.3.6",
    5712                                         "bundled": true,
     5761                                        "resolved": false,
     5762                                        "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
    57135763                                        "dev": true,
    57145764                                        "optional": true,
    57155765                                        "requires": {
     
    57245774                                },
    57255775                                "rimraf": {
    57265776                                        "version": "2.6.3",
    5727                                         "bundled": true,
     5777                                        "resolved": false,
     5778                                        "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
    57285779                                        "dev": true,
    57295780                                        "optional": true,
    57305781                                        "requires": {
     
    57335784                                },
    57345785                                "safe-buffer": {
    57355786                                        "version": "5.1.2",
    5736                                         "bundled": true,
     5787                                        "resolved": false,
     5788                                        "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
    57375789                                        "dev": true,
    57385790                                        "optional": true
    57395791                                },
    57405792                                "safer-buffer": {
    57415793                                        "version": "2.1.2",
    5742                                         "bundled": true,
     5794                                        "resolved": false,
     5795                                        "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
    57435796                                        "dev": true,
    57445797                                        "optional": true
    57455798                                },
    57465799                                "sax": {
    57475800                                        "version": "1.2.4",
    5748                                         "bundled": true,
     5801                                        "resolved": false,
     5802                                        "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==",
    57495803                                        "dev": true,
    57505804                                        "optional": true
    57515805                                },
    57525806                                "semver": {
    57535807                                        "version": "5.7.0",
    5754                                         "bundled": true,
     5808                                        "resolved": false,
     5809                                        "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==",
    57555810                                        "dev": true,
    57565811                                        "optional": true
    57575812                                },
    57585813                                "set-blocking": {
    57595814                                        "version": "2.0.0",
    5760                                         "bundled": true,
     5815                                        "resolved": false,
     5816                                        "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
    57615817                                        "dev": true,
    57625818                                        "optional": true
    57635819                                },
    57645820                                "signal-exit": {
    57655821                                        "version": "3.0.2",
    5766                                         "bundled": true,
     5822                                        "resolved": false,
     5823                                        "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
    57675824                                        "dev": true,
    57685825                                        "optional": true
    57695826                                },
    57705827                                "string-width": {
    57715828                                        "version": "1.0.2",
    5772                                         "bundled": true,
     5829                                        "resolved": false,
     5830                                        "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
    57735831                                        "dev": true,
    57745832                                        "optional": true,
    57755833                                        "requires": {
     
    57805838                                },
    57815839                                "string_decoder": {
    57825840                                        "version": "1.1.1",
    5783                                         "bundled": true,
     5841                                        "resolved": false,
     5842                                        "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
    57845843                                        "dev": true,
    57855844                                        "optional": true,
    57865845                                        "requires": {
     
    57895848                                },
    57905849                                "strip-ansi": {
    57915850                                        "version": "3.0.1",
    5792                                         "bundled": true,
     5851                                        "resolved": false,
     5852                                        "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
    57935853                                        "dev": true,
    57945854                                        "optional": true,
    57955855                                        "requires": {
     
    57985858                                },
    57995859                                "strip-json-comments": {
    58005860                                        "version": "2.0.1",
    5801                                         "bundled": true,
     5861                                        "resolved": false,
     5862                                        "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
    58025863                                        "dev": true,
    58035864                                        "optional": true
    58045865                                },
    58055866                                "tar": {
    58065867                                        "version": "4.4.8",
    5807                                         "bundled": true,
     5868                                        "resolved": false,
     5869                                        "integrity": "sha512-LzHF64s5chPQQS0IYBn9IN5h3i98c12bo4NCO7e0sGM2llXQ3p2FGC5sdENN4cTW48O915Sh+x+EXx7XW96xYQ==",
    58085870                                        "dev": true,
    58095871                                        "optional": true,
    58105872                                        "requires": {
     
    58195881                                },
    58205882                                "util-deprecate": {
    58215883                                        "version": "1.0.2",
    5822                                         "bundled": true,
     5884                                        "resolved": false,
     5885                                        "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
    58235886                                        "dev": true,
    58245887                                        "optional": true
    58255888                                },
    58265889                                "wide-align": {
    58275890                                        "version": "1.1.3",
    5828                                         "bundled": true,
     5891                                        "resolved": false,
     5892                                        "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
    58295893                                        "dev": true,
    58305894                                        "optional": true,
    58315895                                        "requires": {
     
    58345898                                },
    58355899                                "wrappy": {
    58365900                                        "version": "1.0.2",
    5837                                         "bundled": true,
     5901                                        "resolved": false,
     5902                                        "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
    58385903                                        "dev": true,
    58395904                                        "optional": true
    58405905                                },
    58415906                                "yallist": {
    58425907                                        "version": "3.0.3",
    5843                                         "bundled": true,
     5908                                        "resolved": false,
     5909                                        "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==",
    58445910                                        "dev": true,
    58455911                                        "optional": true
    58465912                                }
     
    1114511211                                }
    1114611212                        }
    1114711213                },
     11214                "stylelint-a11y": {
     11215                        "version": "1.2.1",
     11216                        "resolved": "https://registry.npmjs.org/stylelint-a11y/-/stylelint-a11y-1.2.1.tgz",
     11217                        "integrity": "sha512-yfH6ibVkfAlAt7J5ExrzpBPFCSWDTxBL9svdFZ6BfGF5hRmFgTS03x4r/rBAAaNDpgKE32CQz5qcLbgOLzuxfA==",
     11218                        "dev": true
     11219                },
    1114811220                "stylelint-config-recommended": {
    1114911221                        "version": "2.2.0",
    1115011222                        "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-2.2.0.tgz",
  • src/wp-content/themes/twentytwenty/package.json

    diff --git a/src/wp-content/themes/twentytwenty/package.json b/src/wp-content/themes/twentytwenty/package.json
    index 40e655985b..6aab4d0500 100644
    a b  
    2020        "devDependencies": {
    2121                "@wordpress/scripts": "^5.0.0",
    2222                "concurrently": "^4.1.2",
    23                 "rtlcss": "^2.4.0"
     23                "rtlcss": "^2.4.0",
     24                "stylelint-a11y": "^1.2.1"
    2425        },
    2526        "rtlcssConfig": {
    2627                "options": {
  • src/wp-content/themes/twentytwenty/readme.txt

    diff --git a/src/wp-content/themes/twentytwenty/readme.txt b/src/wp-content/themes/twentytwenty/readme.txt
    index 5d5972a451..6bcad30b9f 100644
    a b Feather Icons 
    5252Copyright (c) 2013-2017 Cole Bemis
    5353License: MIT License, https://opensource.org/licenses/MIT
    5454Source: https://feathericons.com
     55Used for post meta icons, and the link icon in the social menu.
    5556
    56 Font Awesome Icons
    57 Copyright (c) 2012-2019 Fonticons, Inc.
     57Socicon Icons
    5858License: SIL Open Font License, 1.1, https://opensource.org/licenses/OFL-1.1
    59 Source: https://www.fontawesome.io
     59Source: https://www.socicon.com
     60Used for all social menu icons except the link icon.
    6061
    61 Font Awesome Code
    62 Copyright (c) 2012-2019 Fonticons, Inc.
    63 License: MIT License, https://opensource.org/licenses/MIT
    64 Source: https://www.fontawesome.io
     62Code from Twenty Nineteen
     63Copyright (c) 2018 WordPress.org
     64License: GPLv2
     65Source: https://wordpress.org/themes/twentynineteen/
     66Included as part of the following classes and functions:
     67- TwentyTwenty_SVG_Icons
     68- twentytwenty_the_theme_svg()
     69- twentytwenty_get_theme_svg()
     70- twentytwenty_nav_menu_social_icons()
     71
     72Code from Twenty Seventeen
     73Copyright (c) 2016 WordPress.org
     74License: GPLv2
     75Source: https://wordpress.org/themes/twentyseventeen/
     76Included as part of the following classes and functions:
     77- twentytwenty_unique_id()
     78 No newline at end of file
  • src/wp-content/themes/twentytwenty/searchform.php

    diff --git a/src/wp-content/themes/twentytwenty/searchform.php b/src/wp-content/themes/twentytwenty/searchform.php
    index 25461cc3a3..21e6efbec4 100644
    a b  
    1515 * Generate a unique ID for each form and a string containing an aria-label if
    1616 * one was passed to get_search_form() in the args array.
    1717 */
    18 $unique_id  = uniqid( 'search-form-' );
    19 $aria_label = ( isset( $args['label'] ) && ! empty( $args['label'] ) ) ? 'aria-label="' . esc_attr( $args['label'] ) . '"' : '';
     18$unique_id = twentytwenty_unique_id( 'search-form-' );
     19
     20$aria_label = ! empty( $args['label'] ) ? 'aria-label="' . esc_attr( $args['label'] ) . '"' : '';
    2021?>
    2122<form role="search" <?php echo $aria_label; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- Escaped above. ?> method="get" class="search-form" action="<?php echo esc_url( home_url( '/' ) ); ?>">
    2223        <label for="<?php echo esc_attr( $unique_id ); ?>">
    23                 <span class="screen-reader-text"><?php echo _x( 'Search for:', 'label', 'twentytwenty' ); // phpcs:ignore: WordPress.Security.EscapeOutput.OutputNotEscaped -- core trusts translations ?></span>
    24                 <input type="search" id="<?php echo esc_attr( $unique_id ); ?>" class="search-field" placeholder="<?php echo esc_attr_x( 'Search &hellip;', 'placeholder', 'twentytwenty' ); ?>" value="<?php get_search_query(); ?>" name="s" />
     24                <span class="screen-reader-text"><?php _e( 'Search for:', 'twentytwenty' ); // phpcs:ignore: WordPress.Security.EscapeOutput.UnsafePrintingFunction -- core trusts translations ?></span>
     25                <input type="search" id="<?php echo esc_attr( $unique_id ); ?>" class="search-field" placeholder="<?php echo esc_attr_x( 'Search &hellip;', 'placeholder', 'twentytwenty' ); ?>" value="<?php echo get_search_query(); ?>" name="s" />
    2526        </label>
    2627        <input type="submit" class="search-submit" value="<?php echo esc_attr_x( 'Search', 'submit button', 'twentytwenty' ); ?>" />
    2728</form>
  • src/wp-content/themes/twentytwenty/singular.php

    diff --git a/src/wp-content/themes/twentytwenty/singular.php b/src/wp-content/themes/twentytwenty/singular.php
    index dfbab40f2d..fcd88759bf 100644
    a b get_header(); 
    2525                }
    2626        }
    2727
    28         get_template_part( 'template-parts/footer-menus-widgets' );
    29 
    3028        ?>
    3129
    3230</main><!-- #site-content -->
    3331
     32<?php get_template_part( 'template-parts/footer-menus-widgets' ); ?>
     33
    3434<?php get_footer(); ?>
  • src/wp-content/themes/twentytwenty/style-rtl.css

    diff --git a/src/wp-content/themes/twentytwenty/style-rtl.css b/src/wp-content/themes/twentytwenty/style-rtl.css
    index 35aa2ee644..8b9b6130c0 100644
    a b path { 
    237237
    238238/*
    239239 * Chrome renders extra-wide &nbsp; characters for the Hoefler Text font.
    240  * This results in a jumping cursor when typing in both the Classic and block
    241  * editors. The following font-face override fixes the issue by manually
     240 * This results in a jumping cursor when typing in both the classic editor and
     241 * block editor. The following font-face override fixes the issue by manually
    242242 * inserting a custom font that includes just a Hoefler Text space replacement
    243243 * for that character instead.
    244244 */
    button, 
    711711input,
    712712textarea {
    713713        border-color: #dcd7ca;
     714        color: #000;
    714715}
    715716
    716717code,
    textarea { 
    742743        border-style: solid;
    743744        border-width: 0.1rem;
    744745        box-shadow: none;
    745         color: inherit;
    746746        display: block;
    747747        font-size: 1.6rem;
    748748        letter-spacing: -0.015em;
    td { 
    850850        line-height: 1.4;
    851851        margin: 0;
    852852        overflow: visible;
    853         padding: 2.5%;
     853        padding: 0.5em;
    854854}
    855855
    856856caption {
    857857        background: #dcd7ca;
    858858        font-weight: 600;
    859         padding: 2.5%;
     859        padding: 0.5em;
    860860        text-align: center;
    861861}
    862862
    button.toggle { 
    11281128        opacity: 0.9;
    11291129}
    11301130
     1131.blend-mode-exclusion {
     1132        mix-blend-mode: exclusion;
     1133}
     1134
     1135.blend-mode-hue {
     1136        mix-blend-mode: hue;
     1137}
     1138
     1139.blend-mode-saturation {
     1140        mix-blend-mode: saturation;
     1141}
     1142
     1143.blend-mode-color {
     1144        mix-blend-mode: color;
     1145}
     1146
     1147.blend-mode-luminosity {
     1148        mix-blend-mode: luminosity;
     1149}
     1150
    11311151
    11321152/* Image Classes ----------------------------- */
    11331153
    button.toggle { 
    11861206        flex-shrink: 0;
    11871207}
    11881208
     1209.search-form .search-submit:focus,
     1210.search-form .search-submit:hover {
     1211        text-decoration: none;
     1212}
     1213
    11891214
    11901215/* Social Icons ------------------------------ */
    11911216
    11921217ul.social-icons {
    11931218        display: flex;
    11941219        flex-wrap: wrap;
    1195         margin: -1rem -1rem 0 0;
     1220        margin: -0.9rem -0.9rem 0 0;
     1221        width: calc(100% + 0.9rem);
    11961222}
    11971223
    11981224ul.social-icons li {
    1199         margin: 1rem 1rem 0 0;
     1225        margin: 0.9rem 0.9rem 0 0;
    12001226}
    12011227
    12021228.social-icons a {
    ul.social-icons li { 
    12191245        text-decoration: none;
    12201246}
    12211247
    1222 .social-icons a::before {
    1223         content: "\e805";
    1224         display: block;
    1225         font-family: "Font Awesome 5";
    1226         font-size: 2rem;
    1227 }
    1228 
    1229 /* NON-BRAND ICONS */
    1230 
    1231 .s-icons a[href*="mailto"]::before {
    1232         content: "\f0e0";
    1233 }
    1234 
    1235 .s-icons a[href*="/feed/"]::before,
    1236 .s-icons a[href*="rss"]::before {
    1237         content: "\f09e";
    1238 }
    1239 
    1240 /* BRAND ICONS */
    1241 
    1242 .s-icons a[href*="500px.com"]::before {
    1243         content: "\f26e";
    1244         font-family: "Font Awesome 5 Brands";
    1245 }
    1246 
    1247 .s-icons a[href*="amazon.com"]::before {
    1248         content: "\f270";
    1249         font-family: "Font Awesome 5 Brands";
    1250 }
    1251 
    1252 .s-icons a[href*="angel.co"]::before {
    1253         content: "\f209";
    1254         font-family: "Font Awesome 5 Brands";
    1255 }
    1256 
    1257 .s-icons a[href*="audible.com"]::before {
    1258         content: "\f373";
    1259         font-family: "Font Awesome 5 Brands";
    1260 }
    1261 
    1262 .s-icons a[href*="behance.net"]::before {
    1263         content: "\f1b4";
    1264         font-family: "Font Awesome 5 Brands";
    1265 }
    1266 
    1267 .s-icons a[href*="blogger.com"]::before {
    1268         content: "\f37d";
    1269         font-family: "Font Awesome 5 Brands";
    1270 }
    1271 
    1272 .s-icons a[href*="codepen.io"]::before {
    1273         content: "\f1cb";
    1274         font-family: "Font Awesome 5 Brands";
    1275 }
    1276 
    1277 .s-icons a[href*="creativecommons.com"]::before {
    1278         content: "\f25e";
    1279         font-family: "Font Awesome 5 Brands";
    1280 }
    1281 
    1282 .s-icons a[href*="deviantart.com"]::before {
    1283         content: "\f1bd";
    1284         font-family: "Font Awesome 5 Brands";
    1285 }
    1286 
    1287 .s-icons a[href*="digg.com"]::before {
    1288         content: "\f1a6";
    1289         font-family: "Font Awesome 5 Brands";
    1290 }
    1291 
    1292 .s-icons a[href*="discordapp.com"]::before {
    1293         content: "\f392";
    1294         font-family: "Font Awesome 5 Brands";
    1295 }
    1296 
    1297 .s-icons a[href*="dribbble.com"]::before {
    1298         content: "\f17d";
    1299         font-family: "Font Awesome 5 Brands";
    1300 }
    1301 
    1302 .s-icons a[href*="ebay"]::before {
    1303         content: "\f4f4";
    1304         font-family: "Font Awesome 5 Brands";
    1305 }
    1306 
    1307 .s-icons a[href*="etsy.com"]::before {
    1308         content: "\f2d7";
    1309         font-family: "Font Awesome 5 Brands";
    1310 }
    1311 
    1312 .s-icons a[href*="facebook.com"]::before {
    1313         content: "\f39e";
    1314         font-family: "Font Awesome 5 Brands";
    1315 }
    1316 
    1317 .s-icons a[href*="flickr.com"]::before {
    1318         content: "\f16e";
    1319         font-family: "Font Awesome 5 Brands";
    1320 }
    1321 
    1322 .s-icons a[href*="github.com"]::before {
    1323         content: "\f113";
    1324         font-family: "Font Awesome 5 Brands";
    1325 }
    1326 
    1327 .s-icons a[href*="gitlab.com"]::before {
    1328         content: "\f296";
    1329         font-family: "Font Awesome 5 Brands";
    1330 }
    1331 
    1332 .s-icons a[href*="goodreads.com"]::before {
    1333         content: "\f3a9";
    1334         font-family: "Font Awesome 5 Brands";
    1335 }
    1336 
    1337 .s-icons a[href*="houzz"]::before {
    1338         content: "\f27c";
    1339         font-family: "Font Awesome 5 Brands";
    1340 }
    1341 
    1342 .s-icons a[href*="imdb.com"]::before {
    1343         content: "\f2d8";
    1344         font-family: "Font Awesome 5 Brands";
    1345 }
    1346 
    1347 .s-icons a[href*="instagram.com"]::before {
    1348         content: "\f16d";
    1349         font-family: "Font Awesome 5 Brands";
    1350 }
    1351 
    1352 .s-icons a[href*="kickstarter.com"]::before {
    1353         content: "\f3bc";
    1354         font-family: "Font Awesome 5 Brands";
    1355 }
    1356 
    1357 .s-icons a[href*="jsfiddle.net"]::before {
    1358         content: "\f1cc";
    1359         font-family: "Font Awesome 5 Brands";
    1360 }
    1361 
    1362 .s-icons a[href*="linkedin.com"]::before {
    1363         content: "\f0e1";
    1364         font-family: "Font Awesome 5 Brands";
    1365 }
    1366 
    1367 .s-icons a[href*="last.fm"]::before {
    1368         content: "\f202";
    1369         font-family: "Font Awesome 5 Brands";
    1370 }
    1371 
    1372 .s-icons a[href*="medium.com"]::before {
    1373         content: "\f3c7";
    1374         font-family: "Font Awesome 5 Brands";
    1375 }
    1376 
    1377 .s-icons a[href*="meetup.com"]::before {
    1378         content: "\f2e0";
    1379         font-family: "Font Awesome 5 Brands";
    1380 }
    1381 
    1382 .s-icons a[href*="mixcloud.com"]::before {
    1383         content: "\f289";
    1384         font-family: "Font Awesome 5 Brands";
    1385 }
    1386 
    1387 .s-icons a[href*="patreon.com"]::before {
    1388         content: "\f3d9";
    1389         font-family: "Font Awesome 5 Brands";
    1390 }
    1391 
    1392 .s-icons a[href*="pscp.tv"]::before {
    1393         content: "\f3da";
    1394         font-family: "Font Awesome 5 Brands";
    1395 }
    1396 
    1397 .s-icons a[href*="pinterest"]::before {
    1398         content: "\f231";
    1399         font-family: "Font Awesome 5 Brands";
    1400 }
    1401 
    1402 .s-icons a[href*="play.google.com"]::before {
    1403         content: "\f3ab";
    1404         font-family: "Font Awesome 5 Brands";
    1405 }
    1406 
    1407 .s-icons a[href*="plus.google.com"]::before {
    1408         content: "\f0d5";
    1409         font-family: "Font Awesome 5 Brands";
    1410 }
    1411 
    1412 .s-icons a[href*="producthunt.com"]::before {
    1413         content: "\f288";
    1414         font-family: "Font Awesome 5 Brands";
    1415 }
    1416 
    1417 .s-icons a[href*="quora.com"]::before {
    1418         content: "\f2c4";
    1419         font-family: "Font Awesome 5 Brands";
    1420 }
    1421 
    1422 .s-icons a[href*="reddit.com"]::before {
    1423         content: "\f281";
    1424         font-family: "Font Awesome 5 Brands";
    1425 }
    1426 
    1427 .s-icons a[href*="slack.com"]::before {
    1428         content: "\f198";
    1429         font-family: "Font Awesome 5 Brands";
    1430 }
    1431 
    1432 .s-icons a[href*="soundcloud.com"]::before {
    1433         content: "\f1be";
    1434         font-family: "Font Awesome 5 Brands";
    1435 }
    1436 
    1437 .s-icons a[href*="spotify.com"]::before {
    1438         content: "\f1bc";
    1439         font-family: "Font Awesome 5 Brands";
    1440 }
    1441 
    1442 .s-icons a[href*="tumblr.com"]::before {
    1443         content: "\f173";
    1444         font-family: "Font Awesome 5 Brands";
    1445 }
    1446 
    1447 .s-icons a[href*="twitch"]::before {
    1448         content: "\f1e8";
    1449         font-family: "Font Awesome 5 Brands";
    1450 }
    1451 
    1452 .s-icons a[href*="twitter.com"]::before {
    1453         content: "\f099";
    1454         font-family: "Font Awesome 5 Brands";
    1455 }
    1456 
    1457 .s-icons a[href*="vimeo.com"]::before {
    1458         content: "\f27d";
    1459         font-family: "Font Awesome 5 Brands";
    1460 }
    1461 
    1462 .s-icons a[href*="wordpress.org"]::before,
    1463 .s-icons a[href*="wordpress.com"]::before {
    1464         content: "\f411";
    1465         font-family: "Font Awesome 5 Brands";
    1466 }
    1467 
    1468 .s-icons a[href*="youtube.com"]::before {
    1469         content: "\f167";
    1470         font-family: "Font Awesome 5 Brands";
    1471 }
    1472 
    14731248
    14741249/* Cover Modals ------------------------------ */
    14751250
    body:not(.enable-search-modal) .site-logo img { 
    16461421}
    16471422
    16481423.toggle-icon {
     1424        display: block;
    16491425        overflow: hidden;
    16501426}
    16511427
    body:not(.enable-search-modal) .site-logo img { 
    16551431        font-weight: 600;
    16561432        position: absolute;
    16571433        top: calc(100% + 0.5rem);
    1658         width: 10rem;
     1434        width: auto;
     1435        white-space: nowrap;
    16591436        word-break: break-all;
    16601437}
    16611438
    button.sub-menu-toggle.active svg { 
    22121989.search-modal-inner .section-inner {
    22131990        display: flex;
    22141991        justify-content: space-between;
     1992        max-width: 168rem;
    22151993}
    22161994
    22171995.search-modal.active {
    button.search-untoggle { 
    22582036/* Modal Search Form ------------------------- */
    22592037
    22602038.search-modal form {
     2039        margin: 0;
    22612040        position: relative;
    22622041        width: 100%;
    22632042}
    button.search-untoggle { 
    22702049        font-size: 2rem;
    22712050        letter-spacing: -0.0277em;
    22722051        height: 8.4rem;
    2273         padding: 0;
    2274         width: 100%;
     2052        margin: 0 -2rem 0 0;
     2053        max-width: calc(100% + 2rem);
     2054        padding: 0 2rem 0 0;
     2055        width: calc(100% + 2rem);
    22752056}
    22762057
    22772058.search-modal .search-field::-webkit-input-placeholder {
    button.search-untoggle { 
    23122093
    23132094.cover-header-inner-wrapper {
    23142095        display: flex;
     2096        position: relative;
    23152097        flex-direction: column;
    23162098        justify-content: flex-end;
    23172099        width: 100%;
    body.template-full-width .entry-content .alignright { 
    24442226
    24452227/* Posts ------------------------------------- */
    24462228
    2447 body:not(.singular) main article:first-of-type {
     2229body:not(.singular) main > article:first-of-type {
    24482230        padding: 4rem 0 0;
    24492231}
    24502232
    h2.entry-title { 
    27982580        background-color: #cd2653;
    27992581}
    28002582
     2583.has-primary-color {
     2584        color: #000;
     2585}
     2586
     2587.has-primary-background-color {
     2588        background-color: #000;
     2589}
     2590
     2591.has-secondary-color {
     2592        color: #6d6d6d;
     2593}
     2594
     2595.has-secondary-background-color {
     2596        background-color: #6d6d6d;
     2597}
     2598
     2599.has-subtle-background-color {
     2600        color: #dcd7ca;
     2601}
     2602
     2603.has-subtle-background-background-color {
     2604        background-color: #dcd7ca;
     2605}
     2606
     2607.has-background-color {
     2608        color: #f5efe0;
     2609}
     2610
     2611.has-background-background-color {
     2612        background-color: #f5efe0;
     2613}
     2614
    28012615
    28022616/* Block Typography Classes ------------------ */
    28032617
    h2.entry-title { 
    28872701
    28882702/* Block: Base Margins ----------------------- */
    28892703
    2890 .wp-block-archives:not(.aligncenter):not(.alignleft):not(.alignright),
    2891 .wp-block-categories:not(.aligncenter):not(.alignleft):not(.alignright),
     2704*[class*="_inner-container"] > *:first-child {
     2705        margin-top: 0;
     2706}
     2707
     2708*[class*="_inner-container"] > *:last-child {
     2709        margin-bottom: 0;
     2710}
     2711
     2712.wp-block-archives,
     2713.wp-block-categories,
    28922714.wp-block-code,
    2893 .wp-block-columns:not(.alignwide):not(.alignfull),
    2894 .wp-block-cover:not(.alignwide):not(.alignfull):not(.alignleft):not(.alignright):not(.aligncenter),
    2895 .wp-block-embed:not(.alignwide):not(.alignfull):not(.alignleft):not(.alignright):not(.aligncenter),
    2896 .wp-block-gallery:not(.alignwide):not(.alignfull):not(.alignleft):not(.alignright):not(.aligncenter),
    2897 .wp-block-group:not(.alignwide):not(.alignfull),
    2898 .wp-block-latest-comments:not(.aligncenter):not(.alignleft):not(.alignright),
    2899 .wp-block-latest-posts:not(.aligncenter):not(.alignleft):not(.alignright),
    2900 .wp-block-media-text:not(.alignwide):not(.alignfull),
     2715.wp-block-columns,
     2716.wp-block-cover,
     2717.wp-block-embed,
     2718.wp-block-gallery,
     2719.wp-block-group,
     2720.wp-block-latest-comments,
     2721.wp-block-latest-posts,
     2722.wp-block-media-text,
    29012723.wp-block-preformatted,
    2902 .wp-block-pullquote:not(.alignwide):not(.alignfull):not(.alignleft):not(.alignright):not(.aligncenter),
     2724.wp-block-pullquote,
    29032725.wp-block-quote,
    29042726.wp-block-quote.is-large,
    29052727.wp-block-quote.is-style-large,
    29062728.wp-block-verse,
    2907 .wp-block-video:not(.alignwide):not(.alignfull):not(.alignleft):not(.alignright):not(.aligncenter) {
     2729.wp-block-video {
    29082730        margin-bottom: 3rem;
    29092731        margin-top: 3rem;
    29102732}
    29112733
    29122734
     2735/* Block: Shared Nesting Alignment Resets ---- */
     2736
     2737[class*="__inner-container"] .wp-block-group:not(.alignfull):not(.alignwide):not(.alignleft):not(.alignright),
     2738[class*="__inner-container"] .wp-block-cover:not(.alignfull):not(.alignwide):not(.alignleft):not(.alignright) {
     2739        margin-right: auto;
     2740        margin-left: auto;
     2741        max-width: 58rem;
     2742}
     2743
     2744
    29132745/* Block: Shared Widget Styles --------------- */
    29142746
    29152747.wp-block-archives,
    29162748.wp-block-categories,
    2917 .wp-block-gallery ul,
    29182749.wp-block-latest-posts,
    29192750.wp-block-latest-comments {
    29202751        list-style: none;
    h2.entry-title { 
    30192850
    30202851/* Block: Columns ---------------------------- */
    30212852
     2853.wp-block-column {
     2854        margin-bottom: 3.2rem;
     2855}
     2856
    30222857.wp-block-column > *:first-child {
    30232858        margin-top: 0;
    30242859}
    h2.entry-title { 
    30292864
    30302865/* Block: Cover ------------------------------ */
    30312866
    3032 .entry-content .wp-block-cover p {
    3033         font-family: inherit;
     2867.wp-block-cover-image .wp-block-cover__inner-container,
     2868.wp-block-cover .wp-block-cover__inner-container {
     2869        width: calc(100% - 4rem);
     2870        padding: 2rem 0;
     2871}
     2872
     2873.wp-block-cover-image .wp-block-cover-image-text,
     2874.wp-block-cover-image .wp-block-cover-text,
     2875.wp-block-cover-image h2,
     2876.wp-block-cover .wp-block-cover-image-text,
     2877.wp-block-cover .wp-block-cover-text,
     2878.wp-block-cover h2 {
     2879        max-width: 100%;
     2880        padding: 0;
     2881}
     2882
     2883.wp-block-cover-image h2,
     2884.wp-block-cover h2 {
     2885        font-size: 3.2rem;
    30342886}
    30352887
    30362888/* Block: Embed ------------------------------ */
    ul.wp-block-gallery:not(.alignwide):not(.alignfull):not(.alignright):not(.alignl 
    30812933        margin-right: 0;
    30822934}
    30832935
    3084 /* Block: Group ------------------------------ */
     2936.wp-block-gallery ul {
     2937        list-style: none;
     2938        margin: 0 0 -1.6rem 0;
     2939}
    30852940
    3086 .wp-block-group.has-background {
    3087         padding: 2rem;
     2941figure.wp-block-gallery.alignnone,
     2942figure.wp-block-gallery.aligncenter {
     2943        margin-bottom: 3rem;
     2944        margin-top: 3rem;
    30882945}
    30892946
    3090 .wp-block-group__inner-container > *:first-child {
    3091         margin-top: 0;
     2947figure.wp-block-gallery.alignleft {
     2948        margin: 0.3rem 0 2rem 2rem;
    30922949}
    30932950
    3094 .wp-block-group__inner-container > *:last-child {
    3095         margin-bottom: 0;
     2951figure.wp-block-gallery.alignright {
     2952        margin: 0.3rem 2rem 2rem 0;
     2953}
     2954
     2955figure.wp-block-gallery.alignwide {
     2956        margin-bottom: 4rem;
     2957        margin-top: 4rem;
     2958}
     2959
     2960figure.wp-block-gallery.alignfull {
     2961        margin-bottom: 5rem;
     2962        margin-top: 5rem;
     2963}
     2964
     2965/* Block: Group ------------------------------ */
     2966
     2967.wp-block-group.has-background {
     2968        padding: 2rem;
    30962969}
    30972970
    30982971.wp-block-group__inner-container {
    ul.wp-block-gallery:not(.alignwide):not(.alignfull):not(.alignright):not(.alignl 
    31493022        width: 4.4rem;
    31503023}
    31513024
     3025.reduced-spacing .wp-block-pullquote::before {
     3026        border: 0.1rem solid currentColor;
     3027        font-size: 5.9rem;
     3028}
     3029
    31523030.wp-block-pullquote blockquote {
    31533031        border: none;
    31543032        margin: 0;
    hr.wp-block-separator { 
    33003178        padding: 0 0 0 2rem;
    33013179}
    33023180
    3303 /* STYLE: DEFAULT */
    3304 
    33053181/* STYLE: LARGE */
    33063182
    33073183.wp-block-quote.is-large,
    hr.wp-block-separator { 
    33133189.wp-block-quote.is-large p,
    33143190.wp-block-quote.is-style-large p {
    33153191        font-family: inherit;
     3192        font-size: 2.4rem;
    33163193        font-style: normal;
    33173194        font-weight: 700;
    3318         letter-spacing: -0.035714286em;
    3319         line-height: 1.285714286;
     3195        letter-spacing: -0.02em;
     3196        line-height: 1.285;
    33203197}
    33213198
    33223199.wp-block-quote.is-large cite,
    hr.wp-block-separator { 
    33993276        max-width: 58rem;
    34003277}
    34013278
    3402 .entry-content > * {
    3403         margin-bottom: 1.25em;
    3404 }
    3405 
    34063279.entry-content > *:first-child {
    34073280        margin-top: 0;
    34083281}
    hr.wp-block-separator { 
    34703343
    34713344/* Alignment Classes ------------------------- */
    34723345
    3473 .alignnone,
    3474 .aligncenter,
    3475 .alignleft,
    3476 .alignright,
    3477 .alignwide,
    3478 .alignfull {
    3479         margin: 3rem 0;
    3480 }
    3481 
    34823346.alignnone,
    34833347.aligncenter,
    34843348.alignleft,
    34853349.alignright {
     3350        margin: 3rem 0;
    34863351        max-width: 100%;
    34873352}
    34883353
    3489 .alignfull {
    3490         margin: 5rem 0;
    3491         max-width: 100vw;
    3492         position: relative;
    3493         right: calc(50% - 50vw);
    3494         width: 100vw;
    3495 }
    3496 
    3497 .alignwide {
    3498         max-width: calc(100vw - 4rem);
    3499         position: relative;
    3500         right: calc(50% - 50vw + 2rem);
    3501         width: calc(100vw - 4rem);
    3502 }
    3503 
    35043354.aligncenter,
    35053355.aligncenter img {
    35063356        margin-right: auto;
    hr.wp-block-separator { 
    35133363}
    35143364
    35153365.alignleft {
    3516         float: right;
     3366        float: left;
    35173367        margin: 0.3rem 0 2rem 2rem;
    35183368}
    35193369
    35203370.alignright {
    3521         float: left;
     3371        float: right;
    35223372        margin: 0.3rem 2rem 2rem 0;
    35233373}
    35243374
     3375.alignwide {
     3376        margin: 4rem auto;
     3377        max-width: 120rem;
     3378}
     3379
     3380.entry-content > .alignwide {
     3381        max-width: calc(100vw - 4rem);
     3382        position: relative;
     3383        right: calc(50% - 50vw + 2rem);
     3384        width: calc(100vw - 4rem);
     3385}
     3386
     3387.alignfull {
     3388        margin: 5rem 0;
     3389}
     3390
     3391.entry-content > .alignfull {
     3392        max-width: 100vw;
     3393        position: relative;
     3394        right: calc(50% - 50vw);
     3395        width: 100vw;
     3396}
     3397
    35253398
    35263399/* Entry Media ------------------------------- */
    35273400
    3528 .alignfull figcaption,
    3529 .alignfull .wp-caption-text {
     3401.alignfull > figcaption,
     3402.alignfull > .wp-caption-text {
    35303403        margin-right: auto;
    35313404        margin-left: auto;
    35323405        max-width: 120rem;
    div.comment:first-of-type { 
    36433516
    36443517
    36453518/* COMMENT CONTENT */
    3646 .comment-content > *:first-child {
    3647         margin-top: 0;
    3648 }
    3649 
    3650 .comment-content > *:last-child {
    3651         margin-bottom: 0;
    3652 }
    36533519
    3654 .comment-content p,
    3655 .comment-content ol,
    3656 .comment-content ul,
    3657 .comment-content dl,
    3658 .comment-content dt {
    3659         font-family: NonBreakingSpaceOverride, "Hoefler Text", Garamond, "Times New Roman", serif;
    3660         letter-spacing: normal;
    3661 }
    3662 
    3663 .comment-content cite,
    3664 .comment-content figcaption,
    3665 .comment-content .wp-caption-text {
    3666         font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", Helvetica, sans-serif;
    3667 }
    3668 
    3669 @supports ( font-variation-settings: normal ) {
    3670 
    3671         .comment-content cite,
    3672         .comment-content figcaption,
    3673         .comment-content .wp-caption-text {
    3674                 font-family: "Inter var", -apple-system, BlinkMacSystemFont, "Helvetica Neue", Helvetica, sans-serif;
    3675         }
    3676 }
    3677 
    3678 .comment-content h1 {
    3679         font-size: 2em;
    3680 }
    3681 
    3682 .comment-content h2 {
    3683         font-size: 1.8em;
    3684 }
    3685 
    3686 .comment-content h3 {
    3687         font-size: 1.6em;
    3688 }
    3689 
    3690 .comment-content h4 {
    3691         font-size: 1.4em;
     3520.comment-content.entry-content .alignleft {
     3521        margin-right: 0;
    36923522}
    36933523
    3694 .comment-content h5 {
    3695         font-size: 1.2em;
     3524.comment-content.entry-content .alignright {
     3525        margin-left: 0;
    36963526}
    36973527
    3698 .comment-content h6 {
    3699         font-size: 1em;
     3528.comment-content.entry-content > .alignwide,
     3529.comment-content.entry-content > .alignfull {
     3530        right: auto;
     3531        max-width: 100%;
     3532        width: auto;
    37003533}
    37013534
    37023535/* COMMENT FOOTER */
    div.comment:first-of-type { 
    41824015
    41834016/* Widget: RSS ------------------------------- */
    41844017
    4185 .widget_rss .rss-widget-icon {
     4018.widget_rss a.rsswidget:first-of-type {
    41864019        display: none;
    41874020}
    41884021
    div.comment:first-of-type { 
    42394072.footer-nav-widgets-wrapper,
    42404073#site-footer {
    42414074        background-color: #fff;
     4075        border-color: #dedfdf;
     4076        border-style: solid;
     4077        border-width: 0;
    42424078}
    42434079
    42444080.footer-top-visible .footer-nav-widgets-wrapper,
    div.comment:first-of-type { 
    42484084
    42494085.reduced-spacing.footer-top-visible .footer-nav-widgets-wrapper,
    42504086.reduced-spacing.footer-top-hidden #site-footer {
    4251         border-top: 0.1rem solid #dedfdf;
     4087        border-top-width: 0.1rem;
    42524088}
    42534089
    42544090.footer-top,
    div.comment:first-of-type { 
    42914127/* FOOTER SOCIAL */
    42924128
    42934129.footer-social-wrapper {
     4130        margin: 0;
     4131        width: 100%;
     4132}
     4133
     4134.has-footer-menu .footer-social-wrapper {
    42944135        flex-shrink: 0;
    42954136        margin-right: 1rem;
    42964137        width: 50%;
    div.comment:first-of-type { 
    42984139
    42994140ul.footer-social {
    43004141        margin: -0.5rem -0.5rem 0 0;
     4142}
     4143
     4144.has-footer-menu .footer-social {
    43014145        justify-content: flex-end;
    43024146}
    43034147
    a.to-the-top > * { 
    43824226
    43834227@media ( max-width: 479px ) {
    43844228
    4385         /* Lists ------------------------------------- */
     4229        /* Blocks -------------------------------- */
     4230
     4231        .wp-block-pullquote.alignleft,
     4232        .wp-block-pullquote.alignright {
     4233                float: none;
     4234                margin: 3rem 0;
     4235        }
     4236
     4237        .wp-block-pullquote.alignleft:first-child,
     4238        .wp-block-pullquote.alignright:first-child {
     4239                margin-top: 0;
     4240        }
     4241
     4242        .wp-block-pullquote.alignleft:last-child,
     4243        .wp-block-pullquote.alignright:last-child {
     4244                margin-bottom: 0;
     4245        }
     4246
     4247        /* Entry Content ------------------------- */
     4248
     4249        /* LISTS */
    43864250
    43874251        ul,
    43884252        ol {
    a.to-the-top > * { 
    44214285        .alignright {
    44224286                max-width: 26rem;
    44234287        }
     4288}
    44244289
    4425         .alignleft {
    4426                 float: right;
     4290@media ( max-width: 599px ) {
     4291
     4292        /* Blocks -------------------------------- */
     4293
     4294        /* BLOCK: COLUMNS */
     4295
     4296        /* While columns are stacked */
     4297        .wp-block-column:last-child {
     4298                margin-bottom: 0;
    44274299        }
    44284300
    4429         .alignright {
    4430                 float: left;
     4301        .wp-block-columns + .wp-block-columns {
     4302                margin-top: 0.2rem;
     4303        }
     4304
     4305        .wp-block-columns.alignwide + .wp-block-columns.alignwide {
     4306                margin-top: -0.8rem;
     4307        }
     4308
     4309        .wp-block-columns.alignfull + .wp-block-columns.alignfull {
     4310                margin-top: -1.8rem;
     4311        }
     4312
     4313}
     4314
     4315@media ( min-width: 600px ) {
     4316
     4317        /* Blocks -------------------------------- */
     4318
     4319        /* BLOCK: COLUMNS */
     4320
     4321        .wp-block-columns.alignwide + .wp-block-columns.alignwide,
     4322        .wp-block-columns.alignfull + .wp-block-columns.alignfull {
     4323                margin-top: -4rem;
    44314324        }
     4325
    44324326}
    44334327
    44344328@media ( min-width: 660px ) {
    44354329
    4436         /* Entry Content ------------------------- */
     4330        /* Blocks -------------------------------- */
    44374331
    4438         /* ALIGNMENT CLASSES */
     4332        /* BLOCK: GALLERY */
    44394333
    4440         .entry-content > .alignleft,
    4441         .entry-content > p .alignleft,
    4442         .entry-content > .wp-block-image .alignleft {
     4334        figure.wp-block-gallery.alignleft {
     4335                margin-left: calc(( 100vw - 58rem - 8rem ) / -2);
     4336        }
     4337
     4338        figure.wp-block-gallery.alignright {
    44434339                margin-right: calc(( 100vw - 58rem - 8rem ) / -2);
    44444340        }
    44454341
    4446         .entry-content > .alignright,
    4447         .entry-content > p .alignright,
    4448         .entry-content > .wp-block-image .alignright {
     4342        /* Entry Content ------------------------- */
     4343
     4344        /* ALIGNMENT CLASSES */
     4345
     4346        .entry-content .alignleft {
    44494347                margin-left: calc(( 100vw - 58rem - 8rem ) / -2);
    44504348        }
    44514349
     4350        .entry-content .alignright {
     4351                margin-right: calc(( 100vw - 58rem - 8rem ) / -2);
     4352        }
     4353
    44524354}
    44534355
    44544356@media ( min-width: 700px ) {
    a.to-the-top > * { 
    46604562        }
    46614563
    46624564        .modal-menu ul li {
    4663                 border-right-width: 0;
    4664         }
    4665 
    4666         .modal-menu ul a {
    4667                 padding-right: 2.5rem;
    4668         }
    4669 
    4670         .modal-menu ul ul a {
    4671                 padding-right: 5rem;
    4672         }
    4673 
    4674         .modal-menu ul ul ul a {
    4675                 padding-right: 7.5rem;
    4676         }
    4677 
    4678         .modal-menu ul ul ul ul a {
    4679                 padding-right: 10rem;
     4565                border-right-color: transparent;
    46804566        }
    46814567
    46824568        .modal-menu > li > .ancestor-wrapper > button.sub-menu-toggle {
    a.to-the-top > * { 
    47654651                font-size: 3.2rem;
    47664652        }
    47674653
    4768         body:not(.singular) main article:first-of-type {
     4654        body:not(.singular) main > article:first-of-type {
    47694655                padding: 8rem 0 0;
    47704656        }
    47714657
    a.to-the-top > * { 
    49064792
    49074793        /* BLOCK: BASE MARGINS */
    49084794
    4909         .wp-block-archives:not(.aligncenter):not(.alignleft):not(.alignright),
    4910         .wp-block-categories:not(.aligncenter):not(.alignleft):not(.alignright),
     4795        .wp-block-archives,
     4796        .wp-block-categories,
    49114797        .wp-block-code,
    4912         .wp-block-columns:not(.alignwide):not(.alignfull),
    4913         .wp-block-cover:not(.alignwide):not(.alignfull):not(.alignleft):not(.alignright):not(.aligncenter),
    4914         .wp-block-embed:not(.alignwide):not(.alignfull):not(.alignleft):not(.alignright):not(.aligncenter),
    4915         .wp-block-gallery:not(.alignwide):not(.alignfull):not(.alignleft):not(.alignright):not(.aligncenter),
    4916         .wp-block-group:not(.alignwide):not(.alignfull),
    4917         .wp-block-latest-comments:not(.aligncenter):not(.alignleft):not(.alignright),
    4918         .wp-block-latest-posts:not(.aligncenter):not(.alignleft):not(.alignright),
    4919         .wp-block-media-text:not(.alignwide):not(.alignfull),
     4798        .wp-block-columns,
     4799        .wp-block-cover,
     4800        .wp-block-embed,
     4801        .wp-block-gallery,
     4802        .wp-block-group,
     4803        .wp-block-latest-comments,
     4804        .wp-block-latest-posts,
     4805        .wp-block-media-text,
    49204806        .wp-block-preformatted,
    4921         .wp-block-pullquote:not(.alignwide):not(.alignfull):not(.alignleft):not(.alignright):not(.aligncenter),
     4807        .wp-block-pullquote,
    49224808        .wp-block-quote,
    49234809        .wp-block-quote.is-large,
    49244810        .wp-block-quote.is-style-large,
    49254811        .wp-block-verse,
    4926         .wp-block-video:not(.alignwide):not(.alignfull):not(.alignleft):not(.alignright):not(.aligncenter) {
     4812        .wp-block-video {
    49274813                margin-bottom: 5rem;
    49284814                margin-top: 5rem;
    49294815        }
    a.to-the-top > * { 
    49324818
    49334819        .wp-block-columns.alignwide + .wp-block-columns.alignwide,
    49344820        .wp-block-columns.alignfull + .wp-block-columns.alignfull {
    4935                 margin-top: -2rem;
     4821                margin-top: -6rem;
    49364822        }
    49374823
    49384824        .entry-content .wp-block-columns h1,
    a.to-the-top > * { 
    49444830                margin: 3.5rem 0 2rem;
    49454831        }
    49464832
     4833        /* BLOCK: COVER */
     4834
     4835        .wp-block-cover-image .wp-block-cover__inner-container,
     4836        .wp-block-cover .wp-block-cover__inner-container {
     4837                width: calc(100% - 8rem);
     4838        }
     4839
     4840        .wp-block-cover-image h2,
     <