Make WordPress Core

Ticket #48110: 48110.11.diff

File 48110.11.diff, 265.3 KB (added by ianbelanger, 5 years ago)

another beta 3 try

  • Gruntfile.js

     
    2626                        'wp-content/plugins/index.php',
    2727                        'wp-content/plugins/hello.php',
    2828                        'wp-content/plugins/akismet/**',
    29                         '!wp-content/themes/twenty*/node_modules/**'
     29                        '!wp-content/themes/twenty*/node_modules/**',
     30                        '!wp-content/themes/twenty*/vendor/**'
    3031                ],
    3132                changedFiles = {
    3233                        php: []
     
    542543                                        // Third party scripts
    543544                                        '!twenty{fourteen,fifteen,sixteen}/js/html5.js',
    544545                                        '!twentyseventeen/assets/js/html5.js',
    545                                         '!twentyseventeen/assets/js/jquery.scrollTo.js',
    546                                         '!twentytwenty/node_modules/**'
     546                                        '!twentyseventeen/assets/js/jquery.scrollTo.js'
    547547                                ]
    548548                        },
    549549                        media: {
  • src/wp-content/themes/twentytwenty/.stylelintrc.json

     
    11{
    2         "extends": "stylelint-config-wordpress",
     2        "extends": [
     3                "stylelint-config-wordpress"
     4        ],
     5        "plugins": ["stylelint-a11y"],
    36        "rules": {
    47                "font-family-no-missing-generic-family-keyword": null,
    5                 "no-descending-specificity": null
     8                "no-descending-specificity": null,
     9                "a11y/no-outline-none": true,
     10                "a11y/selector-pseudo-class-focus": true
    611        }
    712}
  • src/wp-content/themes/twentytwenty/404.php

     
    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

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

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

     
    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 */
     
    6565}
    6666
    6767body#tinymce.wp-editor * {
    68         -webkit-box-sizing: border-box;
    69         -moz-box-sizing: border-box;
    7068        box-sizing: border-box;
    7169        -webkit-font-smoothing: antialiased;
    7270}
     
    373371}
    374372
    375373body#tinymce.wp-editor .alignleft {
    376         float: right;
     374        float: left;
    377375        margin-left: 25px;
    378376        max-width: 260px;
    379377}
    380378
    381379body#tinymce.wp-editor .alignright {
    382         float: left;
     380        float: right;
    383381        margin-right: 25px;
    384382        max-width: 260px;
    385383}
  • src/wp-content/themes/twentytwenty/assets/css/editor-style-classic.css

     
    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 */
     
    6565}
    6666
    6767body#tinymce.wp-editor * {
    68         -webkit-box-sizing: border-box;
    69         -moz-box-sizing: border-box;
    7068        box-sizing: border-box;
    7169        -webkit-font-smoothing: antialiased;
    7270}
     
    373371}
    374372
    375373body#tinymce.wp-editor .alignleft {
     374
     375        /*rtl:ignore*/
    376376        float: left;
    377377        margin-right: 25px;
    378378        max-width: 260px;
    379379}
    380380
    381381body#tinymce.wp-editor .alignright {
     382
     383        /*rtl:ignore*/
    382384        float: right;
    383385        margin-left: 25px;
    384386        max-width: 260px;
  • src/wp-content/themes/twentytwenty/assets/js/color-calculations.js

     
    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

     
    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 ) {
     
    3740}
    3841
    3942// event "polyfill"
    40 
    4143twentytwenty.createEvent = function( eventName ) {
    4244        var event;
    4345        if ( typeof window.Event === 'function' ) {
     
    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 ||
     
    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                }
     
    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                        } );
     
    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                } );
     
    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;
     439                        var closeMenuButton, mobileMenu, isDesktop, menuLinks, firstLevelmenuLinks, lastMenuLinkToggleButton, lastToogleSubMenuLinkNotOpened, lastMenuLinkHasSubClosedMenu, socialLinks, hasSocialMenu, lastModalMenuItems, focusedElementParentLi, focusedElementIsInsideModal, lastMenuItem, isFirstModalItem, isLastModalItem;
    415440
    416                         var isLastModalItem = focusedElementIsInsideModal && focusedElementParentLi[0] ?
     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        }
     
    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++ ) {
     
    481563
    482564twentytwenty.toggles = {
    483565
     566        clickedEl: false,
     567
    484568        init: function() {
    485569                // Do the toggle
    486570                this.toggle();
     
    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
     
    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
     
    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 ) ) {
     
    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

     
    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.
     
    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
     
    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                        );
     
    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
     
    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                        );
     
    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                                )
     
    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                                )
     
    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',
     
    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 );
     
    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

     
    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.
     
    3542                }
    3643
    3744                /**
     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
     70                /**
    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>',
     
    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"/>
    73106                </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"/>
     109                </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)"/>
    76112                </svg>',
     
    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

     
    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">
     
    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>';
     
    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
     
    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
     
    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

     
    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
     
    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(),
     
    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
     
    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

     
    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

     
    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
     
    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.
     
    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.
     
    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
     
    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 );
     
    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
     
    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                ),
     
    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                        ),
     
    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' );
     
    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
     
    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(
     
    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

     
    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

     
    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
     
    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;
     
    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

     
    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                        ),
     
    3434
    3535                // Specify the core-defined pages to create and add custom thumbnails to some of them.
    3636                'posts'     => array(
    37                         'home',
     37                        'front' => array(
     38                                'post_type'    => 'page',
     39                                'post_title'   => __( 'The New UMoMA Opens its Doors', 'twentytwenty' ),
     40                                'post_content' => join(
     41                                        '',
     42                                        array(
     43                                                '<!-- wp:group {"align":"wide"} -->',
     44                                                '<div class="wp-block-group alignwide"><div class="wp-block-group__inner-container"><!-- wp:heading {"align":"center"} -->',
     45                                                '<h2 class="has-text-align-center">' . __( 'The premier destination for modern art in Northern Sweden. Open from 10 AM to 6 PM every day during the summer months.', 'twentytwenty' ) . '</h2>',
     46                                                '<!-- /wp:heading --></div></div>',
     47                                                '<!-- /wp:group -->',
     48                                                '<!-- wp:columns {"align":"wide"} -->',
     49                                                '<div class="wp-block-columns alignwide"><!-- wp:column -->',
     50                                                '<div class="wp-block-column"><!-- wp:group -->',
     51                                                '<div class="wp-block-group"><div class="wp-block-group__inner-container">',
     52                                                '<!-- wp:heading {"level":3} -->',
     53                                                '<h3>' . __( 'Works and Days', 'twentytwenty' ) . '</h3>',
     54                                                '<!-- /wp:heading -->',
     55                                                '<!-- wp:paragraph -->',
     56                                                '<p>' . __( 'August 1 -- December 1', 'twentytwenty' ) . '</p>',
     57                                                '<!-- /wp:paragraph -->',
     58                                                '<!-- wp:button {"className":"is-style-outline"} -->',
     59                                                '<div class="wp-block-button is-style-outline"><a class="wp-block-button__link" href="https://make.wordpress.org/core/2019/09/27/block-editor-theme-related-updates-in-wordpress-5-3/">' . __( 'Read More', 'twentytwenty' ) . '</a></div>',
     60                                                '<!-- /wp:button --></div></div>',
     61                                                '<!-- /wp:group -->',
     62                                                '<!-- wp:group -->',
     63                                                '<div class="wp-block-group"><div class="wp-block-group__inner-container">',
     64                                                '<!-- wp:heading {"level":3} -->',
     65                                                '<h3>' . __( 'Theatre of Operations', 'twentytwenty' ) . '</h3>',
     66                                                '<!-- /wp:heading -->',
     67                                                '<!-- wp:paragraph -->',
     68                                                '<p>' . __( 'October 1 -- December 1', 'twentytwenty' ) . '</p>',
     69                                                '<!-- /wp:paragraph -->',
     70                                                '<!-- wp:button {"className":"is-style-outline"} -->',
     71                                                '<div class="wp-block-button is-style-outline"><a class="wp-block-button__link" href="https://make.wordpress.org/core/2019/09/27/block-editor-theme-related-updates-in-wordpress-5-3/">' . __( 'Read More', 'twentytwenty' ) . '</a></div>',
     72                                                '<!-- /wp:button --></div></div>',
     73                                                '<!-- /wp:group --></div>',
     74                                                '<!-- /wp:column -->',
     75                                                '<!-- wp:column -->',
     76                                                '<div class="wp-block-column"><!-- wp:group -->',
     77                                                '<div class="wp-block-group"><div class="wp-block-group__inner-container">',
     78                                                '<!-- wp:heading {"level":3} -->',
     79                                                '<h3>' . __( 'The Life I Deserve', 'twentytwenty' ) . '</h3>',
     80                                                '<!-- /wp:heading -->',
     81                                                '<!-- wp:paragraph -->',
     82                                                '<p>' . __( 'August 1 -- December 1', 'twentytwenty' ) . '</p>',
     83                                                '<!-- /wp:paragraph -->',
     84                                                '<!-- wp:button {"className":"is-style-outline"} -->',
     85                                                '<div class="wp-block-button is-style-outline"><a class="wp-block-button__link" href="https://make.wordpress.org/core/2019/09/27/block-editor-theme-related-updates-in-wordpress-5-3/">' . __( 'Read More', 'twentytwenty' ) . '</a></div>',
     86                                                '<!-- /wp:button --></div></div>',
     87                                                '<!-- /wp:group -->',
     88                                                '<!-- wp:group -->',
     89                                                '<div class="wp-block-group"><div class="wp-block-group__inner-container">',
     90                                                '<!-- wp:heading {"level":3} -->',
     91                                                '<h3>' . __( 'From Signac to Matisse', 'twentytwenty' ) . '</h3>',
     92                                                '<!-- /wp:heading -->',
     93                                                '<!-- wp:paragraph -->',
     94                                                '<p>' . __( 'October 1 -- December 1', 'twentytwenty' ) . '</p>',
     95                                                '<!-- /wp:paragraph -->',
     96                                                '<!-- wp:button {"className":"is-style-outline"} -->',
     97                                                '<div class="wp-block-button is-style-outline"><a class="wp-block-button__link" href="https://make.wordpress.org/core/2019/09/27/block-editor-theme-related-updates-in-wordpress-5-3/">' . __( 'Read More', 'twentytwenty' ) . '</a></div>',
     98                                                '<!-- /wp:button --></div></div>',
     99                                                '<!-- /wp:group --></div>',
     100                                                '<!-- /wp:column --></div>',
     101                                                '<!-- /wp:columns -->',
     102                                                '<!-- wp:group {"align":"wide"} -->',
     103                                                '<div class="wp-block-group alignwide"><div class="wp-block-group__inner-container"><!-- wp:heading {"align":"center","textColor":"accent"} -->',
     104                                                '<h2 class="has-accent-color has-text-align-center">' . __( '”Cyborgs, as the philosopher Donna Haraway established, are not reverent. They do not remember the cosmos.”', 'twentytwenty' ) . '</h2>',
     105                                                '<!-- /wp:heading --></div></div>',
     106                                                '<!-- /wp:group -->',
     107                                                '<!-- wp:paragraph {"dropCap":true} -->',
     108                                                '<p class="has-drop-cap">' . __( 'With seven floors of striking architecture, UMoMA shows exhibitions of international contemporary art, sometimes along with art historical retrospectives. Existential, political and philosophical issues are intrinsic to our programme. As visitor you are invited to guided tours artist talks, lectures, film screenings and other events with free admission', 'twentytwenty' ) . '</p>',
     109                                                '<!-- /wp:paragraph -->',
     110                                                '<!-- wp:paragraph -->',
     111                                                '<p>' . __( 'The exhibitions are produced by UMoMA in collaboration with artists and museums around the world and they often attract international attention. UMoMA has received a Special Commendation from the European Museum of the Year, and was among the top candidates for the Swedish Museum of the Year Award as well as for the Council of Europe Museum Prize.', 'twentytwenty' ) . '</p>',
     112                                                '<!-- /wp:paragraph -->',
     113                                                '<!-- wp:paragraph -->',
     114                                                '<p></p>',
     115                                                '<!-- /wp:paragraph -->',
     116                                                '<!-- wp:group {"customBackgroundColor":"#ffffff","align":"wide"} -->',
     117                                                '<div class="wp-block-group alignwide has-background" style="background-color:#ffffff"><div class="wp-block-group__inner-container"><!-- wp:group -->',
     118                                                '<div class="wp-block-group"><div class="wp-block-group__inner-container"><!-- wp:heading {"align":"center"} -->',
     119                                                '<h2 class="has-text-align-center">' . __( 'Become a Member and Get Exclusive Offers!', 'twentytwenty' ) . '</h2>',
     120                                                '<!-- /wp:heading -->',
     121                                                '<!-- wp:paragraph {"align":"center"} -->',
     122                                                '<p class="has-text-align-center">' . __( 'Members get access to exclusive exhibits and sales. Our memberships cost $99.99 and are billed annually.', 'twentytwenty' ) . '</p>',
     123                                                '<!-- /wp:paragraph -->',
     124                                                '<!-- wp:button {"align":"center"} -->',
     125                                                '<div class="wp-block-button aligncenter"><a class="wp-block-button__link" href="https://make.wordpress.org/core/2019/09/27/block-editor-theme-related-updates-in-wordpress-5-3/">' . __( 'Join the Club', 'twentytwenty' ) . '</a></div>',
     126                                                '<!-- /wp:button --></div></div>',
     127                                                '<!-- /wp:group --></div></div>',
     128                                                '<!-- /wp:group -->',
     129                                        )
     130                                ),
     131                        ),
    38132                        'about',
    39133                        'contact',
    40134                        'blog',
     
    43137                // Default to a static front page and assign the front and posts pages.
    44138                'options'   => array(
    45139                        'show_on_front'  => 'page',
    46                         'page_on_front'  => '{{home}}',
     140                        'page_on_front'  => '{{front}}',
    47141                        'page_for_posts' => '{{blog}}',
    48142                ),
    49143
  • src/wp-content/themes/twentytwenty/inc/svg-icons.php

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

     
    99
    1010/**
    1111 * Table of Contents:
     12 * Logo & Description
    1213 * Comments
    1314 * Post Meta
    1415 * Menus
    1516 * Classes
     17 * Archives
     18 * Miscellaneous
    1619 */
    1720
    1821/**
     22 * Logo & Description
     23 */
     24/**
    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();
     
    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' );
     
    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
     
    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
     
    169183}
    170184
    171185/**
     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
     219/**
    172220 * Get the post meta.
    173221 *
    174222 * @param int    $post_id The iD of the post.
     
    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                *
     
    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                                                        ?>
     
    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">
     
    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 _ex( 'In', 'A string that is output before one or more categories', 'twentytwenty' ); ?> <?php the_category( ', ' ); ?>
    341389                                                </span>
    342390                                        </li>
    343391                                        <?php
     
    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">
     
    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
     
    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
     
    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
     
    514566add_filter( 'nav_menu_item_args', 'twentytwenty_add_sub_toggles_to_main_menu', 10, 3 );
    515567
    516568/**
     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
     592/**
    517593 * Classes
    518594 */
    519595/**
     
    531607add_action( 'wp_head', 'twentytwenty_no_js_class' );
    532608
    533609/**
    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 
    581 /**
    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
     
    675705add_filter( 'body_class', 'twentytwenty_body_classes' );
    676706
    677707/**
     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 */
     742/**
    678743 * Toggle animation duration in milliseconds.
    679744 *
    680745 * @return integer Duration in milliseconds
     
    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

     
    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                }
     
    8896                        <?php
    8997                        get_search_form(
    9098                                array(
    91                                         'label' => _x( 'search again', 'Label', 'twentytwenty' ),
     99                                        'label' => __( 'search again', 'twentytwenty' ),
    92100                                )
    93101                        );
    94102                        ?>
     
    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

     
    38823882                        "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=",
    38833883                        "dev": true
    38843884                },
     3885                "dependency-graph": {
     3886                        "version": "0.8.0",
     3887                        "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.8.0.tgz",
     3888                        "integrity": "sha512-DCvzSq2UiMsuLnj/9AL484ummEgLtZIcRS7YvtO38QnpX3vqh9nJ8P+zhu8Ja+SmLrBHO2iDbva20jq38qvBkQ==",
     3889                        "dev": true
     3890                },
    38853891                "des.js": {
    38863892                        "version": "1.0.0",
    38873893                        "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz",
     
    52805286                        "integrity": "sha1-mC1ok6+RjnLQjeyehnP/K1qNat0=",
    52815287                        "dev": true
    52825288                },
     5289                "fs-extra": {
     5290                        "version": "7.0.1",
     5291                        "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz",
     5292                        "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==",
     5293                        "dev": true,
     5294                        "requires": {
     5295                                "graceful-fs": "^4.1.2",
     5296                                "jsonfile": "^4.0.0",
     5297                                "universalify": "^0.1.0"
     5298                        }
     5299                },
    52835300                "fs-write-stream-atomic": {
    52845301                        "version": "1.0.10",
    52855302                        "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz",
     
    53115328                        "dependencies": {
    53125329                                "abbrev": {
    53135330                                        "version": "1.1.1",
    5314                                         "bundled": true,
     5331                                        "resolved": false,
     5332                                        "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
    53155333                                        "dev": true,
    53165334                                        "optional": true
    53175335                                },
    53185336                                "ansi-regex": {
    53195337                                        "version": "2.1.1",
    5320                                         "bundled": true,
     5338                                        "resolved": false,
     5339                                        "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
    53215340                                        "dev": true,
    53225341                                        "optional": true
    53235342                                },
    53245343                                "aproba": {
    53255344                                        "version": "1.2.0",
    5326                                         "bundled": true,
     5345                                        "resolved": false,
     5346                                        "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==",
    53275347                                        "dev": true,
    53285348                                        "optional": true
    53295349                                },
    53305350                                "are-we-there-yet": {
    53315351                                        "version": "1.1.5",
    5332                                         "bundled": true,
     5352                                        "resolved": false,
     5353                                        "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==",
    53335354                                        "dev": true,
    53345355                                        "optional": true,
    53355356                                        "requires": {
     
    53395360                                },
    53405361                                "balanced-match": {
    53415362                                        "version": "1.0.0",
    5342                                         "bundled": true,
     5363                                        "resolved": false,
     5364                                        "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
    53435365                                        "dev": true,
    53445366                                        "optional": true
    53455367                                },
    53465368                                "brace-expansion": {
    53475369                                        "version": "1.1.11",
    5348                                         "bundled": true,
     5370                                        "resolved": false,
     5371                                        "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
    53495372                                        "dev": true,
    53505373                                        "optional": true,
    53515374                                        "requires": {
     
    53555378                                },
    53565379                                "chownr": {
    53575380                                        "version": "1.1.1",
    5358                                         "bundled": true,
     5381                                        "resolved": false,
     5382                                        "integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==",
    53595383                                        "dev": true,
    53605384                                        "optional": true
    53615385                                },
    53625386                                "code-point-at": {
    53635387                                        "version": "1.1.0",
    5364                                         "bundled": true,
     5388                                        "resolved": false,
     5389                                        "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
    53655390                                        "dev": true,
    53665391                                        "optional": true
    53675392                                },
    53685393                                "concat-map": {
    53695394                                        "version": "0.0.1",
    5370                                         "bundled": true,
     5395                                        "resolved": false,
     5396                                        "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
    53715397                                        "dev": true,
    53725398                                        "optional": true
    53735399                                },
    53745400                                "console-control-strings": {
    53755401                                        "version": "1.1.0",
    5376                                         "bundled": true,
     5402                                        "resolved": false,
     5403                                        "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=",
    53775404                                        "dev": true,
    53785405                                        "optional": true
    53795406                                },
    53805407                                "core-util-is": {
    53815408                                        "version": "1.0.2",
    5382                                         "bundled": true,
     5409                                        "resolved": false,
     5410                                        "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
    53835411                                        "dev": true,
    53845412                                        "optional": true
    53855413                                },
    53865414                                "debug": {
    53875415                                        "version": "4.1.1",
    5388                                         "bundled": true,
     5416                                        "resolved": false,
     5417                                        "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
    53895418                                        "dev": true,
    53905419                                        "optional": true,
    53915420                                        "requires": {
     
    53945423                                },
    53955424                                "deep-extend": {
    53965425                                        "version": "0.6.0",
    5397                                         "bundled": true,
     5426                                        "resolved": false,
     5427                                        "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
    53985428                                        "dev": true,
    53995429                                        "optional": true
    54005430                                },
    54015431                                "delegates": {
    54025432                                        "version": "1.0.0",
    5403                                         "bundled": true,
     5433                                        "resolved": false,
     5434                                        "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=",
    54045435                                        "dev": true,
    54055436                                        "optional": true
    54065437                                },
    54075438                                "detect-libc": {
    54085439                                        "version": "1.0.3",
    5409                                         "bundled": true,
     5440                                        "resolved": false,
     5441                                        "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=",
    54105442                                        "dev": true,
    54115443                                        "optional": true
    54125444                                },
    54135445                                "fs-minipass": {
    54145446                                        "version": "1.2.5",
    5415                                         "bundled": true,
     5447                                        "resolved": false,
     5448                                        "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==",
    54165449                                        "dev": true,
    54175450                                        "optional": true,
    54185451                                        "requires": {
     
    54215454                                },
    54225455                                "fs.realpath": {
    54235456                                        "version": "1.0.0",
    5424                                         "bundled": true,
     5457                                        "resolved": false,
     5458                                        "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
    54255459                                        "dev": true,
    54265460                                        "optional": true
    54275461                                },
    54285462                                "gauge": {
    54295463                                        "version": "2.7.4",
    5430                                         "bundled": true,
     5464                                        "resolved": false,
     5465                                        "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
    54315466                                        "dev": true,
    54325467                                        "optional": true,
    54335468                                        "requires": {
     
    54435478                                },
    54445479                                "glob": {
    54455480                                        "version": "7.1.3",
    5446                                         "bundled": true,
     5481                                        "resolved": false,
     5482                                        "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
    54475483                                        "dev": true,
    54485484                                        "optional": true,
    54495485                                        "requires": {
     
    54575493                                },
    54585494                                "has-unicode": {
    54595495                                        "version": "2.0.1",
    5460                                         "bundled": true,
     5496                                        "resolved": false,
     5497                                        "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=",
    54615498                                        "dev": true,
    54625499                                        "optional": true
    54635500                                },
    54645501                                "iconv-lite": {
    54655502                                        "version": "0.4.24",
    5466                                         "bundled": true,
     5503                                        "resolved": false,
     5504                                        "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
    54675505                                        "dev": true,
    54685506                                        "optional": true,
    54695507                                        "requires": {
     
    54725510                                },
    54735511                                "ignore-walk": {
    54745512                                        "version": "3.0.1",
    5475                                         "bundled": true,
     5513                                        "resolved": false,
     5514                                        "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==",
    54765515                                        "dev": true,
    54775516                                        "optional": true,
    54785517                                        "requires": {
     
    54815520                                },
    54825521                                "inflight": {
    54835522                                        "version": "1.0.6",
    5484                                         "bundled": true,
     5523                                        "resolved": false,
     5524                                        "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
    54855525                                        "dev": true,
    54865526                                        "optional": true,
    54875527                                        "requires": {
     
    54915531                                },
    54925532                                "inherits": {
    54935533                                        "version": "2.0.3",
    5494                                         "bundled": true,
     5534                                        "resolved": false,
     5535                                        "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
    54955536                                        "dev": true,
    54965537                                        "optional": true
    54975538                                },
    54985539                                "ini": {
    54995540                                        "version": "1.3.5",
    5500                                         "bundled": true,
     5541                                        "resolved": false,
     5542                                        "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==",
    55015543                                        "dev": true,
    55025544                                        "optional": true
    55035545                                },
    55045546                                "is-fullwidth-code-point": {
    55055547                                        "version": "1.0.0",
    5506                                         "bundled": true,
     5548                                        "resolved": false,
     5549                                        "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
    55075550                                        "dev": true,
    55085551                                        "optional": true,
    55095552                                        "requires": {
     
    55125555                                },
    55135556                                "isarray": {
    55145557                                        "version": "1.0.0",
    5515                                         "bundled": true,
     5558                                        "resolved": false,
     5559                                        "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
    55165560                                        "dev": true,
    55175561                                        "optional": true
    55185562                                },
    55195563                                "minimatch": {
    55205564                                        "version": "3.0.4",
    5521                                         "bundled": true,
     5565                                        "resolved": false,
     5566                                        "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
    55225567                                        "dev": true,
    55235568                                        "optional": true,
    55245569                                        "requires": {
     
    55275572                                },
    55285573                                "minimist": {
    55295574                                        "version": "0.0.8",
    5530                                         "bundled": true,
     5575                                        "resolved": false,
     5576                                        "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
    55315577                                        "dev": true,
    55325578                                        "optional": true
    55335579                                },
    55345580                                "minipass": {
    55355581                                        "version": "2.3.5",
    5536                                         "bundled": true,
     5582                                        "resolved": false,
     5583                                        "integrity": "sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA==",
    55375584                                        "dev": true,
    55385585                                        "optional": true,
    55395586                                        "requires": {
     
    55435590                                },
    55445591                                "minizlib": {
    55455592                                        "version": "1.2.1",
    5546                                         "bundled": true,
     5593                                        "resolved": false,
     5594                                        "integrity": "sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA==",
    55475595                                        "dev": true,
    55485596                                        "optional": true,
    55495597                                        "requires": {
     
    55525600                                },
    55535601                                "mkdirp": {
    55545602                                        "version": "0.5.1",
    5555                                         "bundled": true,
     5603                                        "resolved": false,
     5604                                        "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
    55565605                                        "dev": true,
    55575606                                        "optional": true,
    55585607                                        "requires": {
     
    55615610                                },
    55625611                                "ms": {
    55635612                                        "version": "2.1.1",
    5564                                         "bundled": true,
     5613                                        "resolved": false,
     5614                                        "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
    55655615                                        "dev": true,
    55665616                                        "optional": true
    55675617                                },
    55685618                                "needle": {
    55695619                                        "version": "2.3.0",
    5570                                         "bundled": true,
     5620                                        "resolved": false,
     5621                                        "integrity": "sha512-QBZu7aAFR0522EyaXZM0FZ9GLpq6lvQ3uq8gteiDUp7wKdy0lSd2hPlgFwVuW1CBkfEs9PfDQsQzZghLs/psdg==",
    55715622                                        "dev": true,
    55725623                                        "optional": true,
    55735624                                        "requires": {
     
    55785629                                },
    55795630                                "node-pre-gyp": {
    55805631                                        "version": "0.12.0",
    5581                                         "bundled": true,
     5632                                        "resolved": false,
     5633                                        "integrity": "sha512-4KghwV8vH5k+g2ylT+sLTjy5wmUOb9vPhnM8NHvRf9dHmnW/CndrFXy2aRPaPST6dugXSdHXfeaHQm77PIz/1A==",
    55825634                                        "dev": true,
    55835635                                        "optional": true,
    55845636                                        "requires": {
     
    55965648                                },
    55975649                                "nopt": {
    55985650                                        "version": "4.0.1",
    5599                                         "bundled": true,
     5651                                        "resolved": false,
     5652                                        "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=",
    56005653                                        "dev": true,
    56015654                                        "optional": true,
    56025655                                        "requires": {
     
    56065659                                },
    56075660                                "npm-bundled": {
    56085661                                        "version": "1.0.6",
    5609                                         "bundled": true,
     5662                                        "resolved": false,
     5663                                        "integrity": "sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g==",
    56105664                                        "dev": true,
    56115665                                        "optional": true
    56125666                                },
    56135667                                "npm-packlist": {
    56145668                                        "version": "1.4.1",
    5615                                         "bundled": true,
     5669                                        "resolved": false,
     5670                                        "integrity": "sha512-+TcdO7HJJ8peiiYhvPxsEDhF3PJFGUGRcFsGve3vxvxdcpO2Z4Z7rkosRM0kWj6LfbK/P0gu3dzk5RU1ffvFcw==",
    56165671                                        "dev": true,
    56175672                                        "optional": true,
    56185673                                        "requires": {
     
    56225677                                },
    56235678                                "npmlog": {
    56245679                                        "version": "4.1.2",
    5625                                         "bundled": true,
     5680                                        "resolved": false,
     5681                                        "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
    56265682                                        "dev": true,
    56275683                                        "optional": true,
    56285684                                        "requires": {
     
    56345690                                },
    56355691                                "number-is-nan": {
    56365692                                        "version": "1.0.1",
    5637                                         "bundled": true,
     5693                                        "resolved": false,
     5694                                        "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
    56385695                                        "dev": true,
    56395696                                        "optional": true
    56405697                                },
    56415698                                "object-assign": {
    56425699                                        "version": "4.1.1",
    5643                                         "bundled": true,
     5700                                        "resolved": false,
     5701                                        "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
    56445702                                        "dev": true,
    56455703                                        "optional": true
    56465704                                },
    56475705                                "once": {
    56485706                                        "version": "1.4.0",
    5649                                         "bundled": true,
     5707                                        "resolved": false,
     5708                                        "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
    56505709                                        "dev": true,
    56515710                                        "optional": true,
    56525711                                        "requires": {
     
    56555714                                },
    56565715                                "os-homedir": {
    56575716                                        "version": "1.0.2",
    5658                                         "bundled": true,
     5717                                        "resolved": false,
     5718                                        "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=",
    56595719                                        "dev": true,
    56605720                                        "optional": true
    56615721                                },
    56625722                                "os-tmpdir": {
    56635723                                        "version": "1.0.2",
    5664                                         "bundled": true,
     5724                                        "resolved": false,
     5725                                        "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
    56655726                                        "dev": true,
    56665727                                        "optional": true
    56675728                                },
    56685729                                "osenv": {
    56695730                                        "version": "0.1.5",
    5670                                         "bundled": true,
     5731                                        "resolved": false,
     5732                                        "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==",
    56715733                                        "dev": true,
    56725734                                        "optional": true,
    56735735                                        "requires": {
     
    56775739                                },
    56785740                                "path-is-absolute": {
    56795741                                        "version": "1.0.1",
    5680                                         "bundled": true,
     5742                                        "resolved": false,
     5743                                        "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
    56815744                                        "dev": true,
    56825745                                        "optional": true
    56835746                                },
    56845747                                "process-nextick-args": {
    56855748                                        "version": "2.0.0",
    5686                                         "bundled": true,
     5749                                        "resolved": false,
     5750                                        "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==",
    56875751                                        "dev": true,
    56885752                                        "optional": true
    56895753                                },
    56905754                                "rc": {
    56915755                                        "version": "1.2.8",
    5692                                         "bundled": true,
     5756                                        "resolved": false,
     5757                                        "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
    56935758                                        "dev": true,
    56945759                                        "optional": true,
    56955760                                        "requires": {
     
    57015766                                        "dependencies": {
    57025767                                                "minimist": {
    57035768                                                        "version": "1.2.0",
    5704                                                         "bundled": true,
     5769                                                        "resolved": false,
     5770                                                        "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
    57055771                                                        "dev": true,
    57065772                                                        "optional": true
    57075773                                                }
     
    57095775                                },
    57105776                                "readable-stream": {
    57115777                                        "version": "2.3.6",
    5712                                         "bundled": true,
     5778                                        "resolved": false,
     5779                                        "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
    57135780                                        "dev": true,
    57145781                                        "optional": true,
    57155782                                        "requires": {
     
    57245791                                },
    57255792                                "rimraf": {
    57265793                                        "version": "2.6.3",
    5727                                         "bundled": true,
     5794                                        "resolved": false,
     5795                                        "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
    57285796                                        "dev": true,
    57295797                                        "optional": true,
    57305798                                        "requires": {
     
    57335801                                },
    57345802                                "safe-buffer": {
    57355803                                        "version": "5.1.2",
    5736                                         "bundled": true,
     5804                                        "resolved": false,
     5805                                        "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
    57375806                                        "dev": true,
    57385807                                        "optional": true
    57395808                                },
    57405809                                "safer-buffer": {
    57415810                                        "version": "2.1.2",
    5742                                         "bundled": true,
     5811                                        "resolved": false,
     5812                                        "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
    57435813                                        "dev": true,
    57445814                                        "optional": true
    57455815                                },
    57465816                                "sax": {
    57475817                                        "version": "1.2.4",
    5748                                         "bundled": true,
     5818                                        "resolved": false,
     5819                                        "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==",
    57495820                                        "dev": true,
    57505821                                        "optional": true
    57515822                                },
    57525823                                "semver": {
    57535824                                        "version": "5.7.0",
    5754                                         "bundled": true,
     5825                                        "resolved": false,
     5826                                        "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==",
    57555827                                        "dev": true,
    57565828                                        "optional": true
    57575829                                },
    57585830                                "set-blocking": {
    57595831                                        "version": "2.0.0",
    5760                                         "bundled": true,
     5832                                        "resolved": false,
     5833                                        "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
    57615834                                        "dev": true,
    57625835                                        "optional": true
    57635836                                },
    57645837                                "signal-exit": {
    57655838                                        "version": "3.0.2",
    5766                                         "bundled": true,
     5839                                        "resolved": false,
     5840                                        "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
    57675841                                        "dev": true,
    57685842                                        "optional": true
    57695843                                },
    57705844                                "string-width": {
    57715845                                        "version": "1.0.2",
    5772                                         "bundled": true,
     5846                                        "resolved": false,
     5847                                        "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
    57735848                                        "dev": true,
    57745849                                        "optional": true,
    57755850                                        "requires": {
     
    57805855                                },
    57815856                                "string_decoder": {
    57825857                                        "version": "1.1.1",
    5783                                         "bundled": true,
     5858                                        "resolved": false,
     5859                                        "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
    57845860                                        "dev": true,
    57855861                                        "optional": true,
    57865862                                        "requires": {
     
    57895865                                },
    57905866                                "strip-ansi": {
    57915867                                        "version": "3.0.1",
    5792                                         "bundled": true,
     5868                                        "resolved": false,
     5869                                        "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
    57935870                                        "dev": true,
    57945871                                        "optional": true,
    57955872                                        "requires": {
     
    57985875                                },
    57995876                                "strip-json-comments": {
    58005877                                        "version": "2.0.1",
    5801                                         "bundled": true,
     5878                                        "resolved": false,
     5879                                        "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
    58025880                                        "dev": true,
    58035881                                        "optional": true
    58045882                                },
    58055883                                "tar": {
    58065884                                        "version": "4.4.8",
    5807                                         "bundled": true,
     5885                                        "resolved": false,
     5886                                        "integrity": "sha512-LzHF64s5chPQQS0IYBn9IN5h3i98c12bo4NCO7e0sGM2llXQ3p2FGC5sdENN4cTW48O915Sh+x+EXx7XW96xYQ==",
    58085887                                        "dev": true,
    58095888                                        "optional": true,
    58105889                                        "requires": {
     
    58195898                                },
    58205899                                "util-deprecate": {
    58215900                                        "version": "1.0.2",
    5822                                         "bundled": true,
     5901                                        "resolved": false,
     5902                                        "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
    58235903                                        "dev": true,
    58245904                                        "optional": true
    58255905                                },
    58265906                                "wide-align": {
    58275907                                        "version": "1.1.3",
    5828                                         "bundled": true,
     5908                                        "resolved": false,
     5909                                        "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
    58295910                                        "dev": true,
    58305911                                        "optional": true,
    58315912                                        "requires": {
     
    58345915                                },
    58355916                                "wrappy": {
    58365917                                        "version": "1.0.2",
    5837                                         "bundled": true,
     5918                                        "resolved": false,
     5919                                        "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
    58385920                                        "dev": true,
    58395921                                        "optional": true
    58405922                                },
    58415923                                "yallist": {
    58425924                                        "version": "3.0.3",
    5843                                         "bundled": true,
     5925                                        "resolved": false,
     5926                                        "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==",
    58445927                                        "dev": true,
    58455928                                        "optional": true
    58465929                                }
     
    60876170                        }
    60886171                },
    60896172                "handlebars": {
    6090                         "version": "4.2.0",
    6091                         "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.2.0.tgz",
    6092                         "integrity": "sha512-Kb4xn5Qh1cxAKvQnzNWZ512DhABzyFNmsaJf3OAkWNa4NkaqWcNI8Tao8Tasi0/F4JD9oyG0YxuFyvyR57d+Gw==",
     6173                        "version": "4.4.2",
     6174                        "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.4.2.tgz",
     6175                        "integrity": "sha512-cIv17+GhL8pHHnRJzGu2wwcthL5sb8uDKBHvZ2Dtu5s1YNt0ljbzKbamnc+gr69y7bzwQiBdr5+hOpRd5pnOdg==",
    60936176                        "dev": true,
    60946177                        "requires": {
    60956178                                "neo-async": "^2.6.0",
     
    60996182                        },
    61006183                        "dependencies": {
    61016184                                "commander": {
    6102                                         "version": "2.20.0",
    6103                                         "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz",
    6104                                         "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==",
     6185                                        "version": "2.20.1",
     6186                                        "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.1.tgz",
     6187                                        "integrity": "sha512-cCuLsMhJeWQ/ZpsFTbE765kvVfoeSddc4nU3up4fV+fDBcfUXnbITJ+JzhkdjzOqhURjZgujxaioam4RM9yGUg==",
    61056188                                        "dev": true,
    61066189                                        "optional": true
    61076190                                },
     
    63996482                        "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==",
    64006483                        "dev": true
    64016484                },
     6485                "import-cwd": {
     6486                        "version": "2.1.0",
     6487                        "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz",
     6488                        "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=",
     6489                        "dev": true,
     6490                        "requires": {
     6491                                "import-from": "^2.1.0"
     6492                        }
     6493                },
    64026494                "import-fresh": {
    64036495                        "version": "3.1.0",
    64046496                        "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.1.0.tgz",
     
    64096501                                "resolve-from": "^4.0.0"
    64106502                        }
    64116503                },
     6504                "import-from": {
     6505                        "version": "2.1.0",
     6506                        "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz",
     6507                        "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=",
     6508                        "dev": true,
     6509                        "requires": {
     6510                                "resolve-from": "^3.0.0"
     6511                        },
     6512                        "dependencies": {
     6513                                "resolve-from": {
     6514                                        "version": "3.0.0",
     6515                                        "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz",
     6516                                        "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=",
     6517                                        "dev": true
     6518                                }
     6519                        }
     6520                },
    64126521                "import-lazy": {
    64136522                        "version": "3.1.0",
    64146523                        "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-3.1.0.tgz",
     
    76347743                                }
    76357744                        }
    76367745                },
     7746                "jsonfile": {
     7747                        "version": "4.0.0",
     7748                        "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
     7749                        "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
     7750                        "dev": true,
     7751                        "requires": {
     7752                                "graceful-fs": "^4.1.6"
     7753                        }
     7754                },
    76377755                "jsprim": {
    76387756                        "version": "1.4.1",
    76397757                        "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
     
    91079225                                "supports-color": "^5.4.0"
    91089226                        }
    91099227                },
     9228                "postcss-cli": {
     9229                        "version": "6.1.3",
     9230                        "resolved": "https://registry.npmjs.org/postcss-cli/-/postcss-cli-6.1.3.tgz",
     9231                        "integrity": "sha512-eieqJU+OR1OFc/lQqMsDmROTJpoMZFvoAQ+82utBQ8/8qGMTfH9bBSPsTdsagYA8uvNzxHw2I2cNSSJkLAGhvw==",
     9232                        "dev": true,
     9233                        "requires": {
     9234                                "chalk": "^2.1.0",
     9235                                "chokidar": "^2.0.0",
     9236                                "dependency-graph": "^0.8.0",
     9237                                "fs-extra": "^7.0.0",
     9238                                "get-stdin": "^6.0.0",
     9239                                "globby": "^9.0.0",
     9240                                "postcss": "^7.0.0",
     9241                                "postcss-load-config": "^2.0.0",
     9242                                "postcss-reporter": "^6.0.0",
     9243                                "pretty-hrtime": "^1.0.3",
     9244                                "read-cache": "^1.0.0",
     9245                                "yargs": "^12.0.1"
     9246                        },
     9247                        "dependencies": {
     9248                                "ansi-regex": {
     9249                                        "version": "3.0.0",
     9250                                        "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
     9251                                        "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
     9252                                        "dev": true
     9253                                },
     9254                                "cliui": {
     9255                                        "version": "4.1.0",
     9256                                        "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz",
     9257                                        "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==",
     9258                                        "dev": true,
     9259                                        "requires": {
     9260                                                "string-width": "^2.1.1",
     9261                                                "strip-ansi": "^4.0.0",
     9262                                                "wrap-ansi": "^2.0.0"
     9263                                        }
     9264                                },
     9265                                "find-up": {
     9266                                        "version": "3.0.0",
     9267                                        "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
     9268                                        "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
     9269                                        "dev": true,
     9270                                        "requires": {
     9271                                                "locate-path": "^3.0.0"
     9272                                        }
     9273                                },
     9274                                "get-caller-file": {
     9275                                        "version": "1.0.3",
     9276                                        "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz",
     9277                                        "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==",
     9278                                        "dev": true
     9279                                },
     9280                                "is-fullwidth-code-point": {
     9281                                        "version": "1.0.0",
     9282                                        "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
     9283                                        "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
     9284                                        "dev": true,
     9285                                        "requires": {
     9286                                                "number-is-nan": "^1.0.0"
     9287                                        }
     9288                                },
     9289                                "locate-path": {
     9290                                        "version": "3.0.0",
     9291                                        "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
     9292                                        "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
     9293                                        "dev": true,
     9294                                        "requires": {
     9295                                                "p-locate": "^3.0.0",
     9296                                                "path-exists": "^3.0.0"
     9297                                        }
     9298                                },
     9299                                "p-limit": {
     9300                                        "version": "2.2.1",
     9301                                        "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz",
     9302                                        "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==",
     9303                                        "dev": true,
     9304                                        "requires": {
     9305                                                "p-try": "^2.0.0"
     9306                                        }
     9307                                },
     9308                                "p-locate": {
     9309                                        "version": "3.0.0",
     9310                                        "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
     9311                                        "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
     9312                                        "dev": true,
     9313                                        "requires": {
     9314                                                "p-limit": "^2.0.0"
     9315                                        }
     9316                                },
     9317                                "p-try": {
     9318                                        "version": "2.2.0",
     9319                                        "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
     9320                                        "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
     9321                                        "dev": true
     9322                                },
     9323                                "postcss": {
     9324                                        "version": "7.0.18",
     9325                                        "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.18.tgz",
     9326                                        "integrity": "sha512-/7g1QXXgegpF+9GJj4iN7ChGF40sYuGYJ8WZu8DZWnmhQ/G36hfdk3q9LBJmoK+lZ+yzZ5KYpOoxq7LF1BxE8g==",
     9327                                        "dev": true,
     9328                                        "requires": {
     9329                                                "chalk": "^2.4.2",
     9330                                                "source-map": "^0.6.1",
     9331                                                "supports-color": "^6.1.0"
     9332                                        }
     9333                                },
     9334                                "require-main-filename": {
     9335                                        "version": "1.0.1",
     9336                                        "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
     9337                                        "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=",
     9338                                        "dev": true
     9339                                },
     9340                                "strip-ansi": {
     9341                                        "version": "4.0.0",
     9342                                        "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
     9343                                        "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
     9344                                        "dev": true,
     9345                                        "requires": {
     9346                                                "ansi-regex": "^3.0.0"
     9347                                        }
     9348                                },
     9349                                "supports-color": {
     9350                                        "version": "6.1.0",
     9351                                        "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
     9352                                        "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
     9353                                        "dev": true,
     9354                                        "requires": {
     9355                                                "has-flag": "^3.0.0"
     9356                                        }
     9357                                },
     9358                                "wrap-ansi": {
     9359                                        "version": "2.1.0",
     9360                                        "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
     9361                                        "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
     9362                                        "dev": true,
     9363                                        "requires": {
     9364                                                "string-width": "^1.0.1",
     9365                                                "strip-ansi": "^3.0.1"
     9366                                        },
     9367                                        "dependencies": {
     9368                                                "ansi-regex": {
     9369                                                        "version": "2.1.1",
     9370                                                        "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
     9371                                                        "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
     9372                                                        "dev": true
     9373                                                },
     9374                                                "string-width": {
     9375                                                        "version": "1.0.2",
     9376                                                        "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
     9377                                                        "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
     9378                                                        "dev": true,
     9379                                                        "requires": {
     9380                                                                "code-point-at": "^1.0.0",
     9381                                                                "is-fullwidth-code-point": "^1.0.0",
     9382                                                                "strip-ansi": "^3.0.0"
     9383                                                        }
     9384                                                },
     9385                                                "strip-ansi": {
     9386                                                        "version": "3.0.1",
     9387                                                        "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
     9388                                                        "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
     9389                                                        "dev": true,
     9390                                                        "requires": {
     9391                                                                "ansi-regex": "^2.0.0"
     9392                                                        }
     9393                                                }
     9394                                        }
     9395                                },
     9396                                "yargs": {
     9397                                        "version": "12.0.5",
     9398                                        "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz",
     9399                                        "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==",
     9400                                        "dev": true,
     9401                                        "requires": {
     9402                                                "cliui": "^4.0.0",
     9403                                                "decamelize": "^1.2.0",
     9404                                                "find-up": "^3.0.0",
     9405                                                "get-caller-file": "^1.0.1",
     9406                                                "os-locale": "^3.0.0",
     9407                                                "require-directory": "^2.1.1",
     9408                                                "require-main-filename": "^1.0.1",
     9409                                                "set-blocking": "^2.0.0",
     9410                                                "string-width": "^2.0.0",
     9411                                                "which-module": "^2.0.0",
     9412                                                "y18n": "^3.2.1 || ^4.0.0",
     9413                                                "yargs-parser": "^11.1.1"
     9414                                        }
     9415                                },
     9416                                "yargs-parser": {
     9417                                        "version": "11.1.1",
     9418                                        "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz",
     9419                                        "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==",
     9420                                        "dev": true,
     9421                                        "requires": {
     9422                                                "camelcase": "^5.0.0",
     9423                                                "decamelize": "^1.2.0"
     9424                                        }
     9425                                }
     9426                        }
     9427                },
    91109428                "postcss-html": {
    91119429                        "version": "0.36.0",
    91129430                        "resolved": "https://registry.npmjs.org/postcss-html/-/postcss-html-0.36.0.tgz",
     
    91569474                                }
    91579475                        }
    91589476                },
     9477                "postcss-load-config": {
     9478                        "version": "2.1.0",
     9479                        "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.0.tgz",
     9480                        "integrity": "sha512-4pV3JJVPLd5+RueiVVB+gFOAa7GWc25XQcMp86Zexzke69mKf6Nx9LRcQywdz7yZI9n1udOxmLuAwTBypypF8Q==",
     9481                        "dev": true,
     9482                        "requires": {
     9483                                "cosmiconfig": "^5.0.0",
     9484                                "import-cwd": "^2.0.0"
     9485                        }
     9486                },
    91599487                "postcss-markdown": {
    91609488                        "version": "0.36.0",
    91619489                        "resolved": "https://registry.npmjs.org/postcss-markdown/-/postcss-markdown-0.36.0.tgz",
     
    93479675                                "react-is": "^16.8.4"
    93489676                        }
    93499677                },
     9678                "pretty-hrtime": {
     9679                        "version": "1.0.3",
     9680                        "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz",
     9681                        "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=",
     9682                        "dev": true
     9683                },
    93509684                "private": {
    93519685                        "version": "0.1.8",
    93529686                        "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz",
     
    96449978                                "scheduler": "^0.15.0"
    96459979                        }
    96469980                },
     9981                "read-cache": {
     9982                        "version": "1.0.0",
     9983                        "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
     9984                        "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=",
     9985                        "dev": true,
     9986                        "requires": {
     9987                                "pify": "^2.3.0"
     9988                        },
     9989                        "dependencies": {
     9990                                "pify": {
     9991                                        "version": "2.3.0",
     9992                                        "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
     9993                                        "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
     9994                                        "dev": true
     9995                                }
     9996                        }
     9997                },
    96479998                "read-pkg": {
    96489999                        "version": "3.0.0",
    964910000                        "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz",
     
    1114511496                                }
    1114611497                        }
    1114711498                },
     11499                "stylelint-a11y": {
     11500                        "version": "1.2.1",
     11501                        "resolved": "https://registry.npmjs.org/stylelint-a11y/-/stylelint-a11y-1.2.1.tgz",
     11502                        "integrity": "sha512-yfH6ibVkfAlAt7J5ExrzpBPFCSWDTxBL9svdFZ6BfGF5hRmFgTS03x4r/rBAAaNDpgKE32CQz5qcLbgOLzuxfA==",
     11503                        "dev": true
     11504                },
    1114811505                "stylelint-config-recommended": {
    1114911506                        "version": "2.2.0",
    1115011507                        "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-2.2.0.tgz",
     
    1181812175                                "unist-util-is": "^3.0.0"
    1181912176                        }
    1182012177                },
     12178                "universalify": {
     12179                        "version": "0.1.2",
     12180                        "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
     12181                        "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
     12182                        "dev": true
     12183                },
    1182112184                "unpipe": {
    1182212185                        "version": "1.0.0",
    1182312186                        "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
  • src/wp-content/themes/twentytwenty/package.json

     
    1818                "url": "https://github.com/wordpress/twentytwenty/issues"
    1919        },
    2020        "devDependencies": {
     21                "@wordpress/browserslist-config": "^2.6.0",
    2122                "@wordpress/scripts": "^5.0.0",
     23                "autoprefixer": "^9.6.1",
    2224                "concurrently": "^4.1.2",
    23                 "rtlcss": "^2.4.0"
     25                "postcss-cli": "^6.1.3",
     26                "rtlcss": "^2.4.0",
     27                "stylelint-a11y": "^1.2.1"
    2428        },
     29        "browserslist": [
     30                "extends @wordpress/browserslist-config"
     31        ],
    2532        "rtlcssConfig": {
    2633                "options": {
    2734                        "autoRename": false,
     
    3643                "map": false
    3744        },
    3845        "scripts": {
     46                "build": "npm run build:vendor-prefixes && npm run build:rtl",
    3947                "build:rtl": "concurrently \"npm run build:rtl-style\" \"npm run build:rtl-esb\" \"npm run build:rtl-esc\"",
    4048                "build:rtl-style": "rtlcss style.css style-rtl.css",
    4149                "build:rtl-esb": "rtlcss assets/css/editor-style-block.css assets/css/editor-style-block-rtl.css",
    4250                "build:rtl-esc": "rtlcss assets/css/editor-style-classic.css assets/css/editor-style-classic-rtl.css",
     51                "build:vendor-prefixes": "concurrently \"npm run build:vendor-prefixes-style\" \"npm run build:vendor-prefixes-esb\" \"npm run build:vendor-prefixes-esc\"",
     52                "build:vendor-prefixes-style": "postcss -r --no-map style.css assets/css/editor-style-block.css assets/css/editor-style-classic.css",
     53                "build:vendor-prefixes-esb": "postcss -r --no-map assets/css/editor-style-block.css ",
     54                "build:vendor-prefixes-esc": "postcss -r --no-map assets/css/editor-style-classic.css",
    4355                "lint:css": "wp-scripts lint-style 'style.css' 'assets/**/*.css'",
    4456                "lint:js": "wp-scripts lint-js 'assets/**/*.js'",
    4557                "lint:pkg-json": "wp-scripts lint-pkg-json"
  • src/wp-content/themes/twentytwenty/readme.txt

     
    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

     
    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

     
    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

     
    117117
    118118body {
    119119        background: #f5efe0;
    120         -webkit-box-sizing: border-box;
    121         -moz-box-sizing: border-box;
    122120        box-sizing: border-box;
    123121        color: #000;
    124122        font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", Helvetica, sans-serif;
     
    137135*,
    138136*::before,
    139137*::after {
    140         -webkit-box-sizing: inherit;
    141         -moz-box-sizing: inherit;
    142138        box-sizing: inherit;
    143139        -webkit-font-smoothing: antialiased;
    144140        word-break: break-word;
     
    178174.screen-reader-text {
    179175        border: 0;
    180176        clip: rect(1px, 1px, 1px, 1px);
     177        -webkit-clip-path: inset(50%);
    181178        clip-path: inset(50%);
    182179        height: 1px;
    183180        margin: -1px;
     
    193190        border-radius: 3px;
    194191        box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
    195192        clip: auto !important;
     193        -webkit-clip-path: none;
    196194        clip-path: none;
    197195        color: #21759b;
    198196        display: block;
     
    237235
    238236/*
    239237 * 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
     238 * This results in a jumping cursor when typing in both the classic editor and
     239 * block editor. The following font-face override fixes the issue by manually
    242240 * inserting a custom font that includes just a Hoefler Text space replacement
    243241 * for that character instead.
    244242 */
     
    711709input,
    712710textarea {
    713711        border-color: #dcd7ca;
     712        color: #000;
    714713}
    715714
    716715code,
     
    742741        border-style: solid;
    743742        border-width: 0.1rem;
    744743        box-shadow: none;
    745         color: inherit;
    746744        display: block;
    747745        font-size: 1.6rem;
    748746        letter-spacing: -0.015em;
     
    850848        line-height: 1.4;
    851849        margin: 0;
    852850        overflow: visible;
    853         padding: 2.5%;
     851        padding: 0.5em;
    854852}
    855853
    856854caption {
    857855        background: #dcd7ca;
    858856        font-weight: 600;
    859         padding: 2.5%;
     857        padding: 0.5em;
    860858        text-align: center;
    861859}
    862860
     
    10041002.no-select {
    10051003        -webkit-touch-callout: none;
    10061004        -webkit-user-select: none;
    1007         -khtml-user-select: none;
    10081005        -moz-user-select: none;
    10091006        -ms-user-select: none;
    10101007        user-select: none;
     
    11281125        opacity: 0.9;
    11291126}
    11301127
     1128.blend-mode-exclusion {
     1129        mix-blend-mode: exclusion;
     1130}
     1131
     1132.blend-mode-hue {
     1133        mix-blend-mode: hue;
     1134}
     1135
     1136.blend-mode-saturation {
     1137        mix-blend-mode: saturation;
     1138}
     1139
     1140.blend-mode-color {
     1141        mix-blend-mode: color;
     1142}
     1143
     1144.blend-mode-luminosity {
     1145        mix-blend-mode: luminosity;
     1146}
     1147
    11311148
    11321149/* Image Classes ----------------------------- */
    11331150
     
    11861203        flex-shrink: 0;
    11871204}
    11881205
     1206.search-form .search-submit:focus,
     1207.search-form .search-submit:hover {
     1208        text-decoration: none;
     1209}
     1210
    11891211
    11901212/* Social Icons ------------------------------ */
    11911213
    11921214ul.social-icons {
    11931215        display: flex;
    11941216        flex-wrap: wrap;
    1195         margin: -1rem -1rem 0 0;
     1217        margin: -0.9rem -0.9rem 0 0;
     1218        width: calc(100% + 0.9rem);
    11961219}
    11971220
    11981221ul.social-icons li {
    1199         margin: 1rem 1rem 0 0;
     1222        margin: 0.9rem 0.9rem 0 0;
    12001223}
    12011224
    12021225.social-icons a {
     
    12191242        text-decoration: none;
    12201243}
    12211244
    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