<![CDATA[ <!DOCTYPE html> <html id="XF" lang="{$xf.language.language_code}" dir="{$xf.language.text_direction}" data-app="public" data-template="{$template}" data-container-key="{$containerKey}" data-content-key="{$contentKey}" data-logged-in="{{ $xf.visitor.user_id ? 'true' : 'false' }}" data-cookie-prefix="{$xf.cookie.prefix}" data-csrf="{{ csrf_token()|escape('js') }}" class="has-no-js {{ $template ? 'template-' . $template : '' }}" {{ $xf.runJobs ? ' data-run-jobs=""' : '' }}> <head> <meta charset="utf-8" /> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover"> <xf:set var="$siteName" value="{$xf.options.boardTitle}" /> <xf:set var="$h1"><xf:h1 fallback="{$siteName}" /></xf:set> <xf:set var="$description"><xf:description /></xf:set> <title><xf:title formatter="%s | %s" fallback="{$xf.options.boardTitle}" page="{$pageNumber}" /></title> <link rel="manifest" href="{{ base_url('webmanifest.php') }}"> <xf:if is="property('metaThemeColor')"> <meta name="theme-color" content="{{ parse_less_color(property('metaThemeColor')) }}" /> </xf:if> <meta name="apple-mobile-web-app-title" content="{{ $xf.options.boardShortTitle ?: $xf.options.boardTitle }}"> <xf:if is="property('publicIconUrl')"> <link rel="apple-touch-icon" href="{{ base_url(property('publicIconUrl', true)) }}"> <xf:elseif is="property('publicMetadataLogoUrl')" /> <link rel="apple-touch-icon" href="{{ base_url(property('publicMetadataLogoUrl')) }}" /> </xf:if> <xf:foreach loop="$head" value="$headTag"> {$headTag} </xf:foreach> <xf:if is="!$head.meta_site_name && $siteName is not empty"> <xf:macro template="metadata_macros" name="site_name" arg-siteName="{$siteName}" arg-output="{{ true }}" /> </xf:if> <xf:if is="!$head.meta_type"> <xf:macro template="metadata_macros" name="type" arg-type="website" arg-output="{{ true }}" /> </xf:if> <xf:if is="!$head.meta_title"> <xf:macro template="metadata_macros" name="title" arg-title="{{ page_title() ?: $siteName }}" arg-output="{{ true }}" /> </xf:if> <xf:if is="!$head.meta_description && $description is not empty && $pageDescriptionMeta"> <xf:macro template="metadata_macros" name="description" arg-description="{$description}" arg-output="{{ true }}" /> </xf:if> <xf:if is="!$head.meta_share_url"> <xf:macro template="metadata_macros" name="share_url" arg-shareUrl="{$xf.fullUri}" arg-output="{{ true }}" /> </xf:if> <xf:if is="!$head.meta_image_url && property('publicMetadataLogoUrl')"> <xf:macro template="metadata_macros" name="image_url" arg-imageUrl="{{ base_url(property('publicMetadataLogoUrl'), true) }}" arg-output="{{ true }}" /> </xf:if> <xf:macro template="helper_js_global" name="head" arg-app="public" /> <xf:if is="property('publicFaviconUrl')"> <link rel="icon" type="image/png" href="{{ base_url(property('publicFaviconUrl'), true) }}" sizes="32x32" /> </xf:if> <xf:include template="google_analytics" /> <script data-cfasync="false" type='text/javascript'> var xfhtml=document.getElementById("XF"); function addClass(s,a){ s.classList?s.classList.add(a):hasClass(s,a)||(s.className+=" "+a) } function getCookie(e){ var o=document.cookie.match("(^|;) ?"+e+"=([^;]*)(;|$)"); return o?o[2]:null } function setCookie(e,o,t){ var i=new Date;i.setTime(i.getTime()+864e5*t),document.cookie=e+"="+o+";path=/;expires="+i.toGMTString() } function deleteCookie(e){ setCookie(e,"",-1) } function applySetting(settingName,settingOn,allowToggle){ 1===allowToggle?(cookie=getCookie(settingName),"on"!==cookie&&(cookie||1!==settingOn)||addClass(xfhtml,settingName)):1===settingOn&&addClass(xfhtml,settingName); } applySetting('alternative-color',0,1); applySetting('wide-page',0,1); </script> </head> <body data-template="{$template}"> <div class="p-pageWrapper" id="top"> <xf:if contentcheck="true"> <div class="p-staffBar"> <div class="p-staffBar-inner hScroller" data-xf-init="h-scroller"> <div class="hScroller-scroll"> <xf:contentcheck> <xf:if is="$xf.visitor.is_moderator && $xf.session.unapprovedCounts.total"> <a href="{{ link('approval-queue') }}" class="p-staffBar-link badgeContainer badgeContainer--highlighted" data-badge="{$xf.session.unapprovedCounts.total|number}"> {{ phrase('approval_queue') }} </a> </xf:if> <xf:if is="$xf.visitor.is_moderator && !$xf.options.reportIntoForumId && $xf.session.reportCounts.total"> <a href="{{ link('reports') }}" class="p-staffBar-link badgeContainer badgeContainer--visible {{ ($xf.session.reportCounts.total && ($xf.session.reportCounts.lastBuilt > $xf.session.reportLastRead) OR $xf.session.reportCounts.assigned) ? ' badgeContainer--highlighted' : '' }}" data-badge="{{ $xf.session.reportCounts.assigned ? $xf.session.reportCounts.assigned|number . ' / ' . $xf.session.reportCounts.total|number : $xf.session.reportCounts.total|number }}" title="{{ $xf.session.reportCounts.lastBuilt ? phrase('last_report_update:')|for_attr . ' ' . date_time($xf.session.reportCounts.lastBuilt) : '' }}"> {{ phrase('reports') }} </a> </xf:if> <xf:if contentcheck="true"> <a class="p-staffBar-link menuTrigger" data-xf-click="menu" data-xf-key="alt+m" role="button" tabindex="0" aria-expanded="false" aria-haspopup="true">{{ phrase('moderator') }}</a> <div class="menu" data-menu="menu" aria-hidden="true"> <div class="menu-content"> <h4 class="menu-header">{{ phrase('moderator_tools') }}</h4> <xf:contentcheck> <!--[XF:mod_tools_menu:top]--> <xf:if is="$xf.visitor.is_moderator"> <a href="{{ link('approval-queue') }}" class="menu-linkRow">{{ phrase('approval_queue') }}</a> </xf:if> <xf:if is="$xf.visitor.is_moderator && !$xf.options.reportIntoForumId"> <a href="{{ link('reports') }}" class="menu-linkRow" title="{{ $xf.session.reportCounts.lastBuilt ? phrase('last_report_update:')|for_attr . ' ' . date_time($xf.session.reportCounts.lastBuilt) : '' }}">{{ phrase('reports') }}</a> </xf:if> <!--[XF:mod_tools_menu:bottom]--> </xf:contentcheck> </div> </div> </xf:if> <xf:if is="$xf.visitor.is_admin"> <a href="{{ base_url('admin.php') }}" class="p-staffBar-link" target="_blank">{{ phrase('admin') }}</a> </xf:if> </xf:contentcheck> </div> </div> </div> </xf:if> <xf:set var="$srcset">{{ property('publicLogoUrl2x') ? base_url(property('publicLogoUrl2x')) . ' 2x' : '' }}</xf:set> <header class="p-header" id="header"> <div class="p-header-inner"> <div class="p-header-content"> <div class="p-header-logo p-header-logo--image"> <a href="{{ ($xf.options.logoLink && $xf.homePageUrl) ? $xf.homePageUrl : link('index') }}"> <img src="{{ base_url(property('publicLogoUrl')) }}" srcset="{$srcset}" alt="{$xf.options.boardTitle}" width="{{ property('publicLogoWidth') ?: '' }}" height="{{ property('publicLogoHeight') ?: '' }}" /> </a> </div> <xf:ad position="container_header" /> </div> </div> </header> <xf:set var="$navHtml"> <nav class="p-nav"> <div class="p-nav-inner"> <xf:button class="button--plain p-nav-menuTrigger" data-xf-click="off-canvas" data-menu=".js-headerOffCanvasMenu" tabindex="0" aria-label="{{ phrase('menu')|for_attr }}"> <i aria-hidden="true"></i> </xf:button> <div class="p-nav-smallLogo"> <a href="{{ ($xf.options.logoLink && $xf.homePageUrl) ? $xf.homePageUrl : link('index') }}"> <img src="{{ base_url(property('publicLogoUrl')) }}" srcset="{$srcset}" alt="{$xf.options.boardTitle}" width="{{ property('publicLogoWidth') ?: '' }}" height="{{ property('publicLogoHeight') ?: '' }}" /> </a> </div> <div class="p-nav-scroller hScroller" data-xf-init="h-scroller" data-auto-scroll=".p-navEl.is-selected"> <div class="hScroller-scroll"> <ul class="p-nav-list js-offCanvasNavSource"> <xf:foreach loop="$navTree" key="$navSection" value="$navEntry" i="$i" if="{{ $navSection != $xf.app.defaultNavigationId }}"> <li> <xf:macro name="nav_entry" arg-navId="{$navSection}" arg-nav="{$navEntry}" arg-selected="{{ $navSection == $pageSection }}" arg-shortcut="{$i}" /> </li> </xf:foreach> </ul> </div> </div> <div class="p-nav-opposite"> <div class="p-navgroup p-account {{ $xf.visitor.user_id ? 'p-navgroup--member' : 'p-navgroup--guest' }}"> <xf:if is="$xf.visitor.user_id"> <xf:if is="$xf.visitor.user_state == 'rejected' OR $xf.visitor.user_state == 'disabled'"> <a href="{{ link('account') }}" class="p-navgroup-link p-navgroup-link--iconic p-navgroup-link--user"> <xf:avatar user="$xf.visitor" size="xxs" href="" title="" /> <span class="p-navgroup-linkText">{$xf.visitor.username}</span> </a> <a href="{{ link('logout', null, {'t': csrf_token()}) }}" class="p-navgroup-link"> <span class="p-navgroup-linkText">{{ phrase('log_out') }}</span> </a> <xf:else /> <a href="{{ link('account') }}" class="p-navgroup-link p-navgroup-link--iconic p-navgroup-link--user" data-xf-click="menu" data-xf-key="{{ phrase('shortcut.visitor_menu')|for_attr }}" data-menu-pos-ref="< .p-navgroup" title="{$xf.visitor.username}" aria-expanded="false" aria-haspopup="true"> <xf:avatar user="$xf.visitor" size="xxs" href="" title="" /> <span class="p-navgroup-linkText">{$xf.visitor.username}</span> </a> <div class="menu menu--structural menu--wide menu--account" data-menu="menu" aria-hidden="true" data-href="{{ link('account/visitor-menu') }}" data-load-target=".js-visitorMenuBody"> <div class="menu-content js-visitorMenuBody"> <div class="menu-row"> {{ phrase('loading...') }} </div> </div> </div> <a href="{{ link('conversations') }}" class="p-navgroup-link p-navgroup-link--iconic p-navgroup-link--conversations js-badge--conversations badgeContainer{{ $xf.visitor.conversations_unread ? ' badgeContainer--highlighted' : '' }}" data-badge="{$xf.visitor.conversations_unread|number}" data-xf-click="menu" data-xf-key="{{ phrase('shortcut.conversations_menu')|for_attr }}" data-menu-pos-ref="< .p-navgroup" title="{{ phrase('conversations')|for_attr }}" aria-label="{{ phrase('conversations')|for_attr }}" aria-expanded="false" aria-haspopup="true"> <i aria-hidden="true"></i> <span class="p-navgroup-linkText">{{ phrase('nav_inbox') }}</span> </a> <div class="menu menu--structural menu--medium" data-menu="menu" aria-hidden="true" data-href="{{ link('conversations/popup') }}" data-nocache="true" data-load-target=".js-convMenuBody"> <div class="menu-content"> <h3 class="menu-header">{{ phrase('conversations') }}</h3> <div class="js-convMenuBody"> <div class="menu-row">{{ phrase('loading...') }}</div> </div> <div class="menu-footer menu-footer--split"> <div class="menu-footer-main"> <ul class="listInline listInline--bullet"> <li><a href="{{ link('conversations') }}">{{ phrase('show_all') }}</a></li> <xf:if is="$xf.visitor.canStartConversation()"> <li><a href="{{ link('conversations/add') }}">{{ phrase('start_new_conversation') }}</a></li> </xf:if> </ul> </div> </div> </div> </div> <a href="{{ link('account/alerts') }}" class="p-navgroup-link p-navgroup-link--iconic p-navgroup-link--alerts js-badge--alerts badgeContainer{{ $xf.visitor.alerts_unviewed ? ' badgeContainer--highlighted' : '' }}" data-badge="{$xf.visitor.alerts_unviewed|number}" data-xf-click="menu" data-xf-key="{{ phrase('shortcut.alerts_menu')|for_attr }}" data-menu-pos-ref="< .p-navgroup" title="{{ phrase('alerts')|for_attr }}" aria-label="{{ phrase('alerts')|for_attr }}" aria-expanded="false" aria-haspopup="true"> <i aria-hidden="true"></i> <span class="p-navgroup-linkText">{{ phrase('nav_alerts') }}</span> </a> <div class="menu menu--structural menu--medium" data-menu="menu" aria-hidden="true" data-href="{{ link('account/alerts-popup') }}" data-nocache="true" data-load-target=".js-alertsMenuBody"> <div class="menu-content"> <h3 class="menu-header">{{ phrase('alerts') }}</h3> <div class="js-alertsMenuBody"> <div class="menu-row">{{ phrase('loading...') }}</div> </div> <div class="menu-footer menu-footer--split"> <div class="menu-footer-main"> <ul class="listInline listInline--bullet"> <li><a href="{{ link('account/alerts') }}">{{ phrase('show_all') }}</a></li> <li><a href="{{ link('account/alerts/mark-read') }}" class="js-alertsMarkRead">{{ phrase('mark_read') }}</a></li> <li><a href="{{ link('account/preferences') }}">{{ phrase('preferences') }}</a></li> </ul> </div> </div> </div> </div> </xf:if> <xf:else /> <a href="{{ link('login') }}" class="p-navgroup-link p-navgroup-link--textual p-navgroup-link--logIn" data-xf-click="overlay" data-follow-redirects="on"> <span class="p-navgroup-linkText">{{ phrase('log_in') }}</span> </a> <xf:if is="$xf.options.registrationSetup.enabled"> <a href="{{ link('register') }}" class="p-navgroup-link p-navgroup-link--textual p-navgroup-link--register" data-xf-click="overlay" data-follow-redirects="on"> <span class="p-navgroup-linkText">{{ phrase('register') }}</span> </a> </xf:if> </xf:if> </div> <div class="p-navgroup p-discovery{{ !$xf.visitor.canSearch() ? ' p-discovery--noSearch' : '' }}"> <a href="{{ link('whats-new') }}" class="p-navgroup-link p-navgroup-link--iconic p-navgroup-link--whatsnew" aria-label="{{ phrase('whats_new')|for_attr }}" title="{{ phrase('whats_new')|for_attr }}"> <i aria-hidden="true"></i> <span class="p-navgroup-linkText">{{ phrase('whats_new') }}</span> </a> <xf:include template="template_pnavStaffBar" /> <a href="javascript:void(0);" class="p-navgroup-link" rel="nofollow" data-xf-init="tooltip" data-guide-modal="" data-original-title="Personalize" id="js-XFUniqueId1"><span class="p-navgroup-linkText"></span></a> <xf:if is="$xf.visitor.canSearch()"> <a href="{{ link('search') }}" class="p-navgroup-link p-navgroup-link--iconic p-navgroup-link--search" data-xf-click="menu" data-xf-key="{{ phrase('shortcut.search_menu')|for_attr }}" aria-label="{{ phrase('search')|for_attr }}" aria-expanded="false" aria-haspopup="true" title="{{ phrase('search')|for_attr }}"> <i aria-hidden="true"></i> <span class="p-navgroup-linkText">{{ phrase('search') }}</span> </a> <div class="menu menu--structural menu--wide" data-menu="menu" aria-hidden="true"> <form action="{{ link('search/search') }}" method="post" class="menu-content" data-xf-init="quick-search"> <h3 class="menu-header">{{ phrase('search') }}</h3> <!--[XF:search_menu:above_input]--> <div class="menu-row"> <xf:if is="$searchConstraints"> <div class="inputGroup inputGroup--joined"> <xf:textbox name="keywords" placeholder="{{ phrase('search...') }}" aria-label="{{ phrase('search') }}" data-menu-autofocus="true" /> <xf:select name="constraints" class="js-quickSearch-constraint" aria-label="{{ phrase('search_within') }}"> <xf:option value="">{{ phrase('everywhere') }}</xf:option> <xf:foreach loop="$searchConstraints" key="$constraintName" value="$constraint"> <xf:option value="{$constraint|json}">{$constraintName}</xf:option> </xf:foreach> </xf:select> </div> <xf:else /> <xf:textbox name="keywords" placeholder="{{ phrase('search...') }}" aria-label="{{ phrase('search') }}" data-menu-autofocus="true" /> </xf:if> </div> <!--[XF:search_menu:above_title_only]--> <div class="menu-row"> <xf:checkbox standalone="true"> <xf:option name="c[title_only]"> <xf:label> {{ phrase('search_titles_only') }} <xf:if is="$xf.options.enableTagging"> <span tabindex="0" role="button" data-xf-init="tooltip" data-trigger="hover focus click" title="{{ phrase('tags_will_also_be_searched')|for_attr }}"> <xf:fa icon="far fa-question-circle" class="u-muted u-smaller" /> </span> </xf:if> </xf:label> </xf:option> </xf:checkbox> </div> <!--[XF:search_menu:above_member]--> <div class="menu-row"> <div class="inputGroup"> <span class="inputGroup-text" id="ctrl_search_menu_by_member">{{ phrase('by:') }}</span> <input type="text" class="input" name="c[users]" data-xf-init="auto-complete" placeholder="{{ phrase('member')|for_attr }}" aria-labelledby="ctrl_search_menu_by_member" /> </div> </div> <div class="menu-footer"> <span class="menu-footer-controls"> <xf:button type="submit" class="button--primary" icon="search" /> <xf:button href="{{ link('search') }}">{{ phrase('advanced_search...') }}</xf:button> </span> </div> <xf:csrf /> </form> </div> </xf:if> </div> </div> </div> </nav> </xf:set> <xf:set var="$subNavHtml"> <xf:if is="$selectedNavChildren is not empty"> <div class="p-sectionLinks"> <div class="p-sectionLinks-inner hScroller" data-xf-init="h-scroller"> <div class="hScroller-scroll"> <ul class="p-sectionLinks-list"> <xf:foreach loop="$selectedNavChildren" key="$navId" value="$navEntry" i="$i"> <li> <xf:macro name="nav_entry" arg-navId="{$navId}" arg-nav="{$navEntry}" arg-shortcut="alt+{$i}" /> </li> </xf:foreach> </ul> </div> </div> </div> <xf:elseif is="{$selectedNavEntry}" /> <div class="p-sectionLinks p-sectionLinks--empty"></div> </xf:if> </xf:set> <xf:if is="property('publicNavSticky') == 'primary'"> <div class="p-navSticky p-navSticky--primary" data-xf-init="sticky-header"> {$navHtml|raw} </div> {$subNavHtml|raw} <xf:elseif is="property('publicNavSticky') == 'all'" /> <div class="p-navSticky p-navSticky--all" data-xf-init="sticky-header"> {$navHtml|raw} {$subNavHtml|raw} </div> <xf:else /> {$navHtml|raw} {$subNavHtml|raw} </xf:if> <div class="offCanvasMenu offCanvasMenu--nav js-headerOffCanvasMenu" data-menu="menu" aria-hidden="true" data-ocm-builder="navigation"> <div class="offCanvasMenu-backdrop" data-menu-close="true"></div> <div class="offCanvasMenu-content"> <div class="offCanvasMenu-header"> {{ phrase('menu') }} <a class="offCanvasMenu-closer" data-menu-close="true" role="button" tabindex="0" aria-label="{{ phrase('close')|for_attr }}"></a> </div> <xf:if is="$xf.visitor.user_id"> <div class="p-offCanvasAccountLink"> <div class="offCanvasMenu-linkHolder"> <a href="{{ link('account') }}" class="offCanvasMenu-link"> <xf:avatar user="$xf.visitor" size="xxs" href="" /> {$xf.visitor.username} </a> </div> <hr class="offCanvasMenu-separator" /> </div> <xf:else /> <div class="p-offCanvasRegisterLink"> <div class="offCanvasMenu-linkHolder"> <a href="{{ link('login') }}" class="offCanvasMenu-link" data-xf-click="overlay" data-menu-close="true"> {{ phrase('log_in') }} </a> </div> <hr class="offCanvasMenu-separator" /> <xf:if is="$xf.options.registrationSetup.enabled"> <div class="offCanvasMenu-linkHolder"> <a href="{{ link('register') }}" class="offCanvasMenu-link" data-xf-click="overlay" data-menu-close="true"> {{ phrase('register') }} </a> </div> <hr class="offCanvasMenu-separator" /> </xf:if> </div> </xf:if> <div class="js-offCanvasNavTarget"></div> <div class="offCanvasMenu-installBanner js-installPromptContainer" style="display: none;" data-xf-init="install-prompt"> <div class="offCanvasMenu-installBanner-header">{{ phrase('install_app') }}</div> <xf:button class="js-installPromptButton">{{ phrase('install') }}</xf:button> </div> </div> </div> <div class="p-body"> <div class="p-body-inner"> <!--XF:EXTRA_OUTPUT--> <xf:if is="$notices.block"> <xf:macro template="notice_macros" name="notice_list" arg-type="block" arg-notices="{$notices.block}" /> </xf:if> <xf:if is="$notices.scrolling"> <xf:macro template="notice_macros" name="notice_list" arg-type="scrolling" arg-notices="{$notices.scrolling}" /> </xf:if> <xf:ad position="container_breadcrumb_top_above" /> <xf:macro name="breadcrumbs" arg-breadcrumbs="{$breadcrumbs}" arg-navTree="{$navTree}" arg-selectedNavEntry="{$selectedNavEntry}" /> <xf:ad position="container_breadcrumb_top_below" /> <xf:macro template="browser_warning_macros" name="javascript" /> <xf:macro template="browser_warning_macros" name="browser" /> <xf:if is="$headerHtml is not empty"> <div class="p-body-header"> {$headerHtml|raw} </div> <xf:elseif contentcheck="true" /> <div class="p-body-header"> <xf:contentcheck> <xf:if contentcheck="true"> <div class="p-title {{ $noH1 ? 'p-title--noH1' : '' }}"> <xf:contentcheck> <xf:if is="!$noH1"> <h1 class="p-title-value">{$h1}</h1> </xf:if> <xf:if contentcheck="true"> <div class="p-title-pageAction"><xf:contentcheck><xf:pageaction /></xf:contentcheck></div> </xf:if> </xf:contentcheck> </div> </xf:if> <xf:if is="$description is not empty"> <div class="p-description">{$description}</div> </xf:if> </xf:contentcheck> </div> </xf:if> <div class="p-body-main {{ $sidebar ? 'p-body-main--withSidebar' : '' }} {{ $sideNav ? 'p-body-main--withSideNav' : '' }}"> <xf:if is="$sideNav"> <div class="p-body-sideNavCol"></div> </xf:if> <div class="p-body-contentCol"></div> <xf:if is="$sidebar"> <div class="p-body-sidebarCol"></div> </xf:if> <xf:if is="$sideNav"> <div class="p-body-sideNav"> <div class="p-body-sideNavTrigger"> <xf:button class="button--link" data-xf-click="off-canvas" data-menu="#js-SideNavOcm"> {{ $sideNavTitle ?: phrase('navigation') }} </xf:button> </div> <div class="p-body-sideNavInner" data-ocm-class="offCanvasMenu offCanvasMenu--blocks" id="js-SideNavOcm" data-ocm-builder="sideNav"> <div data-ocm-class="offCanvasMenu-backdrop" data-menu-close="true"></div> <div data-ocm-class="offCanvasMenu-content"> <div class="p-body-sideNavContent"> <xf:ad position="container_sidenav_above" /> <xf:foreach loop="$sideNav" value="$sideNavHtml"> {$sideNavHtml} </xf:foreach> <xf:ad position="container_sidenav_below" /> </div> </div> </div> </div> </xf:if> <div class="p-body-content"> <xf:ad position="container_content_above" /> <div class="p-body-pageContent">{$content|raw}</div> <xf:ad position="container_content_below" /> </div> <xf:if is="$sidebar"> <div class="p-body-sidebar"> <xf:ad position="container_sidebar_above" /> <xf:foreach loop="$sidebar" value="$sidebarHtml"> {$sidebarHtml} </xf:foreach> <xf:ad position="container_sidebar_below" /> </div> </xf:if> </div> <xf:ad position="container_breadcrumb_bottom_above" /> <xf:macro name="breadcrumbs" arg-breadcrumbs="{$breadcrumbs}" arg-navTree="{$navTree}" arg-selectedNavEntry="{$selectedNavEntry}" arg-variant="bottom" /> <xf:ad position="container_breadcrumb_bottom_below" /> </div> </div> <footer class="p-footer" id="footer"> <div class="p-footer-inner"> <div class="p-footer-row"> <xf:if contentcheck="true"> <div class="p-footer-row-main"> <ul class="p-footer-linkList"> <xf:contentcheck> <xf:if is="$xf.visitor.canChangeStyle()"> <li><a href="{{ link('misc/style') }}" data-xf-click="overlay" data-xf-init="tooltip" title="{{ phrase('style_chooser')|for_attr }}" rel="nofollow"> <xf:fa icon="fa-paint-brush" /> {$xf.style.title} </a></li> </xf:if> <xf:if is="$xf.visitor.canChangeLanguage()"> <li><a href="{{ link('misc/language') }}" data-xf-click="overlay" data-xf-init="tooltip" title="{{ phrase('language_chooser')|for_attr }}" rel="nofollow"> <xf:fa icon="fa-globe" /> {$xf.language.title}</a></li> </xf:if> </xf:contentcheck> </ul> </div> </xf:if> <div class="p-footer-row-opposite"> <ul class="p-footer-linkList"> <xf:if is="$xf.visitor.canUseContactForm()"> <xf:if is="$xf.contactUrl"> <li><a href="{$xf.contactUrl}" data-xf-click="{{ ($xf.options.contactUrl.overlay OR $xf.options.contactUrl.type == 'default') ? 'overlay' : '' }}">{{ phrase('contact_us') }}</a></li> </xf:if> </xf:if> <xf:if is="$xf.tosUrl"> <li><a href="{$xf.tosUrl}">{{ phrase('terms_and_rules') }}</a></li> </xf:if> <xf:if is="$xf.privacyPolicyUrl"> <li><a href="{$xf.privacyPolicyUrl}">{{ phrase('privacy_policy') }}</a></li> </xf:if> <xf:if is="$xf.helpPageCount"> <li><a href="{{ link('help') }}">{{ phrase('help') }}</a></li> </xf:if> <xf:if is="$xf.homePageUrl"> <li><a href="{$xf.homePageUrl}">{{ phrase('home') }}</a></li> </xf:if> <li><a href="{{ link('forums/index.rss', '-') }}" target="_blank" class="p-footer-rssLink" title="{{ phrase('rss')|for_attr }}"><span aria-hidden="true"><xf:fa icon="fa-rss" /><span class="u-srOnly">{{ phrase('rss') }}</span></span></a></li> </ul> </div> </div> <xf:if contentcheck="true"> <div class="p-footer-copyright"> <a href="https://majdev.net/" title="Majdev"> <i class="fas fa-star-and-crescent" style="color:red"></i>&nbsp; <span>Theme Made by Majdev & Albat</span>&nbsp; <i class="fas fa-star-and-crescent fa-rotate-180" style="color:red"></i> </a> <br> <xf:contentcheck> <xf:copyright /> {{ phrase('extra_copyright') }} </xf:contentcheck> </div> </xf:if> <xf:if contentcheck="true"> <div class="p-footer-debug"> <xf:contentcheck> <xf:macro template="debug_macros" name="debug" arg-controller="{$controller}" arg-action="{$actionMethod}" arg-template="{$template}" /> </xf:contentcheck> </div> </xf:if> </div> </footer> </div> <div class="mj-Modal-container"> <div class="mj-Modal-overlay" data-guide-modal=""></div> <div class="mj-Modal-block"> <div class="mj-Modal-scroll"> <div class="guide-Modal-header"> <h3>Personalize</h3> <button class="modal-close" data-guide-modal="close"><i class="fad fa-times"></i></button> </div> <div class="guide-Modal-content"> <div class="mj-global-block"> <div class="mj-modal-cell"> <div class="modal-column"> <i class="fad fa-arrows-h"></i> </div> <div class="modal-column"> <h3>Wide Page</h3> <span>Expands the page.</span> </div> <div class="modal-column" data-button-class="wide-page" data-default="off"> <div class="guide-modal-toogle"> <input type="radio" name="wide-page" id="wide-page-off"> <input type="radio" name="wide-page" id="wide-page-on" checked="checked"> <i class="modal-toggle"><i></i></i> </div> </div> </div> </div> <div class="mj-modal-cell"> <div class="modal-column"> <i class="fad fa-fill-drip"></i> </div> <div class="modal-column"> <h3>Alternative Color</h3> <span>Changes the base color.</span> </div> <div class="modal-column" data-button-class="alternative-color" data-default="off"> <div class="guide-modal-toogle"> <input type="radio" name="alternative-color" id="alternative-color-off" checked="checked"> <input type="radio" name="alternative-color" id="alternative-color-on"> <i class="modal-toggle"><i></i></i> </div> </div> </div> </div> </div> </div> </div> <div class="u-bottomFixer js-bottomFixTarget"> <xf:if is="$notices.floating"> <xf:macro template="notice_macros" name="notice_list" arg-type="floating" arg-notices="{$notices.floating}" /> </xf:if> <xf:if is="$notices.bottom_fixer"> <xf:macro template="notice_macros" name="notice_list" arg-type="bottom_fixer" arg-notices="{$notices.bottom_fixer}" /> </xf:if> </div> <xf:if is="property('scrollJumpButtons')"> <div class="u-scrollButtons js-scrollButtons" data-trigger-type="{{ property('scrollJumpButtons') }}"> <xf:button href="#top" class="button--scroll" data-xf-click="scroll-to"><xf:fa icon="fa-arrow-up" /><span class="u-srOnly">{{ phrase('top') }}</span></xf:button> <xf:if is="property('scrollJumpButtons') != 'up'"> <xf:button href="#footer" class="button--scroll" data-xf-click="scroll-to"><xf:fa icon="fa-arrow-down" /><span class="u-srOnly">{{ phrase('bottom') }}</span></xf:button> </xf:if> </div> </xf:if> <xf:macro template="helper_js_global" name="body" arg-app="public" arg-jsState="{$jsState}" /> <xf:if is="count($xf.reactionsActive) > 1 AND $xf.visitor.user_id"> <script type="text/template" id="xfReactTooltipTemplate"> <div class="tooltip-content-inner"> <div class="reactTooltip"> <xf:foreach loop="$xf.reactionsActive" key="$reactionId" value="$reaction"> <xf:reaction id="{$reactionId}" tooltip="true" /> </xf:foreach> </div> </div> </script> </xf:if> {$ldJsonHtml|raw} </body> </html> <xf:macro name="nav_entry" arg-navId="!" arg-nav="!" arg-selected="{{ false }}" arg-shortcut=""> <div class="p-navEl {{ $selected ? 'is-selected' : '' }}" {{ $nav.children ? 'data-has-children="true"' : '' }}> <xf:if is="$nav.href"> <xf:macro name="nav_link" arg-navId="{$navId}" arg-nav="{$nav}" arg-class="p-navEl-link {{ $nav.children ? 'p-navEl-link--splitMenu' : '' }}" arg-shortcut="{{ $nav.children ? false : $shortcut }}" /> <xf:if is="$nav.children"><a data-xf-key="{$shortcut}" data-xf-click="menu" data-menu-pos-ref="< .p-navEl" class="p-navEl-splitTrigger" role="button" tabindex="0" aria-label="{{ phrase('toggle_expanded')|for_attr }}" aria-expanded="false" aria-haspopup="true"></a></xf:if> <xf:elseif is="$nav.children" /><a data-xf-key="{$shortcut}" data-xf-click="menu" data-menu-pos-ref="< .p-navEl" class="p-navEl-linkHolder" role="button" tabindex="0" aria-expanded="false" aria-haspopup="true"> <xf:macro name="nav_link" arg-navId="{$navId}" arg-nav="{$nav}" arg-class="p-navEl-link p-navEl-link--menuTrigger" /> </a> <xf:else /> <xf:macro name="nav_link" arg-navId="{$navId}" arg-nav="{$nav}" arg-class="p-navEl-link" arg-shortcut="{$shortcut}" /> </xf:if> <xf:if is="$nav.children"> <div class="menu menu--structural" data-menu="menu" aria-hidden="true"> <div class="menu-content"> <xf:foreach loop="$nav.children" key="$childNavId" value="$child"> <xf:macro name="nav_menu_entry" arg-navId="{$childNavId}" arg-nav="{$child}" /> </xf:foreach> </div> </div> </xf:if> </div> </xf:macro> <xf:macro name="nav_link" arg-navId="!" arg-nav="!" arg-class="" arg-titleHtml="" arg-shortcut="{{ false }}"> <xf:set var="$tag" value="{{ $nav.href ? 'a' : 'span' }}" /> <{$tag} {{ $nav.href ? 'href="' . $nav.href . '"' : '' }} class="{{ trim($class) }} {$nav.attributes.class}" {{ attributes($nav.attributes, ['class']) }} {{ $shortcut !== false ? 'data-xf-key="' . $shortcut . '"' : '' }} data-nav-id="{$navId}"><xf:if is="$nav.icon"><xf:fa icon="{$nav.icon}" /> </xf:if>{{ $titleHtml ? $titleHtml|raw : $nav.title }}<xf:if is="$nav.counter"> <span class="badge badge--highlighted">{$nav.counter|number}</span></xf:if></{$tag}> </xf:macro> <xf:macro name="nav_menu_entry" arg-navId="!" arg-nav="!" arg-depth="0"> <xf:macro name="nav_link" arg-navId="{$navId}" arg-nav="{$nav}" arg-class="menu-linkRow u-indentDepth{$depth} js-offCanvasCopy" /> <xf:if is="$nav.children"> <xf:foreach loop="$nav.children" key="$childNavId" value="$child"> <xf:macro name="nav_menu_entry" arg-navId="{$childNavId}" arg-nav="{$child}" arg-depth="{{ $depth + 1 }}" /> </xf:foreach> <xf:if is="$depth == 0"> <hr class="menu-separator" /> </xf:if> </xf:if> </xf:macro> <xf:macro name="breadcrumbs" arg-breadcrumbs="!" arg-navTree="!" arg-selectedNavEntry="{{ null }}" arg-variant=""> <xf:if contentcheck="true"> <ul class="p-breadcrumbs {{ $variant ? 'p-breadcrumbs--' . $variant : '' }}" itemscope itemtype="https://schema.org/BreadcrumbList"> <xf:contentcheck> <xf:set var="$position" value="{{ 0 }}" /> <xf:set var="$rootBreadcrumb" value="{$navTree.{$xf.options.rootBreadcrumb}}" /> <xf:if is="$rootBreadcrumb AND $rootBreadcrumb.href != $xf.uri AND $rootBreadcrumb.href != $xf.fullUri"> <xf:set var="$position" value="{{ $position + 1 }}" /> <xf:macro name="crumb" arg-position="{$position}" arg-href="{$rootBreadcrumb.href}" arg-value="{$rootBreadcrumb.title}" /> </xf:if> <xf:if is="$selectedNavEntry AND $selectedNavEntry.href AND $selectedNavEntry.href != $xf.uri AND $selectedNavEntry.href != $xf.fullUri AND $selectedNavEntry.href != $rootBreadcrumb.href"> <xf:set var="$position" value="{{ $position + 1 }}" /> <xf:macro name="crumb" arg-position="{$position}" arg-href="{$selectedNavEntry.href}" arg-value="{$selectedNavEntry.title}" /> </xf:if> <xf:foreach loop="$breadcrumbs" value="$breadcrumb" if="$breadcrumb.href != $xf.uri AND $breadcrumb.href != $xf.fullUri"> <xf:set var="$position" value="{{ $position + 1 }}" /> <xf:macro name="crumb" arg-position="{$position}" arg-href="{$breadcrumb.href}" arg-value="{$breadcrumb.value}" /> </xf:foreach> </xf:contentcheck> </ul> </xf:if> </xf:macro> <xf:macro name="crumb" arg-href="!" arg-value="!" arg-position="{{ 0 }}"> <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"> <a href="{$href}" itemprop="item"> <span itemprop="name">{$value}</span> </a> <xf:if is="$position"><meta itemprop="position" content="{$position}" /></xf:if> </li> </xf:macro> ]]>
</template>
<template title="app_nav.less" type="public" addon_id="XF" version_id="2020470" version_string="2.2.4">
<![CDATA[ // navEl / Navigation Elements for header navigation .p-navEl { .m-clearFix(); } .p-navEl-linkHolder { float: left; } .p-navEl-link { float: left; .m-transition(opacity, background; @_nav-elTransitionSpeed); &.p-navEl-link--menuTrigger { cursor: pointer; &:after { .m-menuGadget(); // .58em opacity: .5; .m-transition(opacity; @_nav-elTransitionSpeed); } &:hover:after { opacity: 1; } } } .p-navEl-splitTrigger { float: left; opacity: .5; cursor: pointer; text-decoration: none; .m-transition(all; @_nav-elTransitionSpeed); &:after { .m-menuGadget(); // .58em line-height: 1; } &:hover { opacity: 1; text-decoration: none; } } // HEADER NAV ROW .p-nav { .xf-publicNav(); a { color: inherit; } .p-navSticky.is-sticky & { .p-nav-list .p-navEl.is-selected, .p-account { border-radius: 0; } } } .p-nav-inner { .m-pageWidth(); .m-pageInset(0px); .m-clearFix(); display: flex; align-items: flex-end; } .p-nav .p-nav-menuTrigger { display: none; vertical-align: middle; align-self: center; margin-left: max(0px, @xf-pageEdgeSpacer - 6px); margin-right: 5px; padding: @xf-publicNavPaddingV 8px; color: inherit; &:hover { text-decoration: none; } i:after { .m-faBase(); font-size: @xf-fontSizeLargest; .m-faContent(@fa-var-bars); //, .88em vertical-align: bottom; } .p-nav-menuText { display: none; } } .p-nav-smallLogo { display: none; max-width: 100px; align-self: center; img { display: block; max-height: @header-navHeight; &:not([src$=".svg"]) { width: auto; } } } .p-nav-scroller { margin-right: auto; max-width: 100%; .hScroller-scroll:not(.is-calculated) { // IE11 seems to want to flash a vertical scrollbar without this here overflow: hidden; } .hScroller-action { .m-hScrollerActionColorVariation( xf-default(@xf-publicNav--background-color, transparent), xf-default(@xf-publicNav--color, ~""), xf-intensify(@xf-publicNav--color, 10%) ); } } .p-nav-list { .m-listPlain(); .m-clearFix(); font-size: 0; // this applies padding that will be contained within the scroller. // it needs font-size 0 to not create extra space though &:before, &:after { display: inline-block; width: @xf-pageEdgeSpacer; content: ''; } > li { display: inline-block; vertical-align: bottom; font-size: @xf-fontSizeNormal; &:first-child { margin-left: 0; } } .m-navElHPadding(@xf-publicNavPaddingH); .p-navEl { .xf-publicNavTab(); .m-transition(all; @_nav-elTransitionSpeed); &.is-selected { .xf-publicNavSelected(); .p-navEl-link { padding-right: @xf-publicNavPaddingH; // since the split trigger is hidden &:hover { background: none; text-decoration: none; } } .p-navEl-splitTrigger { display: none; } } &:not(.is-selected):not(.is-menuOpen) { &:hover, .p-navEl-link:hover, .p-navEl-splitTrigger:hover { .xf-publicNavTabHover(); } } &.is-menuOpen { .xf-publicNavTabMenuOpen(); border-top-left-radius: xf-default(@xf-publicNavSelected--border-top-left-radius, 0); border-top-right-radius: xf-default(@xf-publicNavSelected--border-top-right-radius, 0); .m-dropShadow(0, 5px, 10px, 0, .35); a { text-decoration: none; opacity: 1; } } } .p-navEl-link, .p-navEl-splitTrigger { padding-top: @xf-publicNavPaddingV; padding-bottom: @xf-publicNavPaddingV; } } .p-navSticky--primary.is-sticky { .p-nav-list { .p-navEl-link.p-navEl-link--splitMenu { padding-right: ((@xf-publicNavPaddingH) / 4); } .p-navEl.is-selected .p-navEl-splitTrigger { display: inline; position: relative; &:before { content: ''; position: absolute; left: 0; top: 5px; bottom: 5px; width: 0; border-left: @xf-borderSize solid fade(xf-default(@xf-publicNavSelected--color, transparent), 35%); } } } } @media (max-width: @xf-publicNavCollapseWidth) { .has-js { .p-nav-inner { min-height: 45px; } .p-nav .p-nav-menuTrigger { display: inline-block; } .p-nav-smallLogo { display: inline-block; } .p-nav-scroller { display: none; } } } // ACCOUNT/VISITOR/SEARCH SECTION .p-nav-opposite { margin-left: auto; margin-right: @xf-pageEdgeSpacer; text-align: right; flex-shrink: 0; } .p-navgroup { float: left; .m-clearFix(); background: @xf-publicHeaderAdjustColor; border-top-left-radius: @xf-borderRadiusMedium; border-top-right-radius: @xf-borderRadiusMedium; &.p-discovery { margin-left: .5em; &.p-discovery--noSearch { margin-left: 0; } } } .p-navgroup-link { float: left; padding: @xf-publicNavPaddingV @_navAccount-hPadding; border-left: 1px solid @xf-publicHeaderAdjustColor; &:first-of-type { border-top-left-radius: @xf-borderRadiusMedium; border-left: none; } &:last-of-type { border-top-right-radius: @xf-borderRadiusMedium; } &:hover { text-decoration: none; background: xf-intensify(@xf-publicHeaderAdjustColor, 5%); } &.p-navgroup-link--user { .m-overflowEllipsis(); max-width: 150px; .avatar { .m-avatarSize((@xf-fontSizeNormal) * (@xf-lineHeightDefault)); } } &.badgeContainer { opacity: .6; position: relative; &:after { position: absolute; left: (@_navAccount-hPadding - 6px); top: (@xf-publicNavPaddingV - 2px); padding: 1px 3px; margin: 0; font-size: 10px; line-height: 11px; } &:hover, &.badgeContainer--highlighted { opacity: 1; } } &.is-menuOpen { .xf-publicNavTabMenuOpen(); .m-dropShadow(0, 5px, 10px, 0, .35); opacity: 1; } &.p-navgroup-link--iconic { i:after { .m-faBase(); display: inline-block; min-width: 1.2em; text-align: center; } } &.p-navgroup-link--conversations i:after { .m-faContent(@fa-var-envelope, 1em); } &.p-navgroup-link--alerts i:after { .m-faContent(@fa-var-bell); //, .88em } &.p-navgroup-link--bookmarks i:after { .m-faContent(@fa-var-bookmark); //, .75em } &.p-navgroup-link--whatsnew i:after { .m-faContent(@fa-var-bolt); //, .63em } &.p-navgroup-link--search i:after { .m-faContent(@fa-var-search); //, 1em } } .p-navgroup-link--whatsnew { display: none; } @media (max-width: @xf-responsiveWide) { .p-navgroup-link { &.p-navgroup-link--iconic .p-navgroup-linkText, &.p-navgroup-link--textual i { display: none; } &.p-navgroup-link--textual { .m-overflowEllipsis(); max-width: 110px; } &.p-navgroup-link--iconic i:after { text-align: center; } } } @media (max-width: @xf-publicNavCollapseWidth) { .p-navgroup-link--whatsnew { display: block; } .has-js { .p-nav-opposite { align-self: center; margin-right: max(0px, @xf-pageEdgeSpacer - 6px); .p-navgroup { background: none; margin-left: 0; } .p-navgroup-link { border: none; border-radius: @xf-borderRadiusMedium; &.is-menuOpen { .m-borderBottomRadius(0); } &.badgeContainer { opacity: 1; } } } } } @media (max-width: 359px) { .p-navgroup-link&.p-navgroup-link--user { display: none; } } @media (max-width: 374px) { .p-navgroup-link.p-navgroup-link--register { display: none; } } ]]>
</template>
<template title="core_button.less" type="public" addon_id="XF" version_id="2020470" version_string="2.2.4">
<![CDATA[ // ############################ BUTTONS ################# .button, a.button // needed for specificity over a:link { .m-buttonBase(); a { color: inherit; text-decoration: none; } .xf-buttonDefault(); color: rgb(255, 255, 255); background: rgb(38, 45, 57); border: none; &:hover{ background: rgb(49, 57, 72); } &.button--primary { .xf-buttonPrimary(); .m-buttonBlockColorVariationSimple(xf-default(@xf-buttonPrimary--background-color, transparent)); } &.button--cta { color: rgb(255, 255, 255); background: var(--basecolor); border: none; } &.button--link { // block colors background: @xf-contentBg; color: @xf-linkColor; .m-buttonBorderColorVariation(@xf-borderColor); &:hover, &:active, &:focus { text-decoration: none; background: @xf-contentHighlightBg; } } &.button--plain { background: none; color: @xf-linkColor; border: none; &:hover, &:active, &:focus { text-decoration: none; background: none; } } &.button--alt { // block colors background-color: @xf-paletteColor1; color: @xf-linkColor; .m-buttonBorderColorVariation(@xf-paletteColor2); &:hover, &:active, &:focus { background-color: @xf-paletteColor1; color: @xf-linkColor; } } &.button--longText { .m-overflowEllipsis(); max-width: 100%; display: inline-block; } &.is-disabled { .xf-buttonDisabled(); .m-buttonBorderColorVariation(xf-default(@xf-buttonDisabled--background-color, transparent)); &:hover, &:active, &:focus { background: xf-default(@xf-buttonDisabled--background-color, transparent) !important; } } &.is-hidden { display: none; } &.button--scroll { background: fade(xf-default(@xf-buttonDefault--background-color, transparent), 75%); padding: 5px 8px; .m-dropShadow(); } &.button--normal { font-size: @xf-fontSizeNormal; } &.button--small { font-size: @xf-fontSizeSmall; padding: 3px 6px; } &.button--smaller { font-size: @xf-fontSizeSmaller; padding: 2px 5px; } &.button--fullWidth { display: block; width: 100%; } &.button--adminStyleAsset { &.is-disabled { visibility: hidden; } &.is-modify { .m-buttonIcon(@fa-var-pencil); } &.is-revert { .m-buttonIcon(@fa-var-history); } } &.button--wrap { white-space: normal; } &.button--icon { > .button-text:before, .button-icon { .m-faBase(); } > .button-text:before, > .fa--xf:before, .button-icon { font-size: 120%; vertical-align: -.1em; display: inline-block; margin: -.255em 6px -.255em 0; } > .fa--xf { // helps fix a button alignment issue (Chrome only) line-height: inherit; } .button-icon { height: 1em; vertical-align: 0; } &.button--iconOnly { > .button-text:before, > i.fa--xf:before, .button-icon { margin-left: 0; margin-right: 0; } } &.button--padded { > .button-text:before, > i.fa--xf:before, .button-icon { margin-top: 0; margin-bottom: 0; } } &--add { .m-buttonIcon(@fa-var-plus-square, .88em); } &--confirm { .m-buttonIcon(@fa-var-check, 1em); } &--write { .m-buttonIcon(@fa-var-edit, 1.13em); } &--import { .m-buttonIcon(@fa-var-upload, 1.13em); } &--export { .m-buttonIcon(@fa-var-download, 1.13em); } &--download { .m-buttonIcon(@fa-var-download, 1.13em); } &--redirect { .m-buttonIcon(@fa-var-external-link, 1em); } &--disable { .m-buttonIcon(@fa-var-power-off, 1em); } &--edit { .m-buttonIcon(@fa-var-edit, 1.13em); } &--save { .m-buttonIcon(@fa-var-save, .88em); } &--reply { .m-buttonIcon(@fa-var-reply, 1.13em); } &--quote { .m-buttonIcon(@fa-var-quote-left, 1.13em); } &--purchase { .m-buttonIcon(@fa-var-credit-card, 1.13em); } &--payment { .m-buttonIcon(@fa-var-credit-card, 1.13em); } &--convert { .m-buttonIcon(@fa-var-bolt, .75em); } &--search { .m-buttonIcon(@fa-var-search, 1em); } &--sort { .m-buttonIcon(@fa-var-sort, .63em); } &--upload { .m-buttonIcon(@fa-var-upload, 1.13em); } &--attach { .m-buttonIcon(@fa-var-paperclip, 1em); } &--login { .m-buttonIcon(@fa-var-lock, .88em); } &--rate { .m-buttonIcon(@fa-var-star, 1.13em); } &--config { .m-buttonIcon(@fa-var-cog, 1em); } &--refresh { .m-buttonIcon(@fa-var-sync-alt, 1em); } &--translate { .m-buttonIcon(@fa-var-globe, .97em); } &--vote { .m-buttonIcon(@fa-var-check-circle, 1em); } &--result { .m-buttonIcon(@fa-var-chart-bar, 1em); } &--history { .m-buttonIcon(@fa-var-history, 1em); } &--cancel { .m-buttonIcon(@fa-var-ban, 1em); } &--close { .m-buttonIcon(@fa-var-times, .69em); } &--preview { .m-buttonIcon(@fa-var-eye, 1.13em); } &--conversation { .m-buttonIcon(@fa-var-comments, 1.13em); } &--bolt { .m-buttonIcon(@fa-var-bolt, .75em); } &--list { .m-buttonIcon(@fa-var-list, 1em); } &--prev { .m-buttonIcon(@fa-var-chevron-left, .63em); } &--next { .m-buttonIcon(@fa-var-chevron-right, .63em); } &--markRead { .m-buttonIcon(@fa-var-check-square, .88em); } &--user { .m-buttonIcon(@fa-var-user, .88em); } &--userCircle { .m-buttonIcon(@fa-var-user-circle, .97em); } &--notificationsOn { .m-buttonIcon(@fa-var-bell, 1.25em); } // actually only .88em, but as we use this as a toggle, make it the same width as bell-slash &--notificationsOff { .m-buttonIcon(@fa-var-bell-slash, 1.25em); } &--show { .m-buttonIcon(@fa-var-eye, 1.25em) } // actually only 1.13em, but it's a toggle &--hide { .m-buttonIcon(@fa-var-eye-slash, 1.25em) } // for inline mod confirmations &--merge { .m-buttonIcon(@fa-var-compress, .88em); } &--move { .m-buttonIcon(@fa-var-share, 1.13em); } &--copy { .m-buttonIcon(@fa-var-copy, .88em); } &--approve, &--unapprove { .m-buttonIcon(@fa-var-shield, 1em); } &--delete, &--undelete { .m-buttonIcon(@fa-var-trash-alt, .88em); } &--stick, &--unstick { .m-buttonIcon(@fa-var-thumbtack, .75em); } &--lock { .m-buttonIcon(@fa-var-lock, .88em); } &--unlock { .m-buttonIcon(@fa-var-unlock, .88em); } &--bookmark { .m-buttonIcon(@fa-var-bookmark); &.is-bookmarked .button-text:before { font-weight: @faWeight-solid; color: @xf-textColorAttention; } } } &.button--provider { > .button-text:before, .button-icon { .m-faBase('Brands'); font-size: 120%; vertical-align: middle; display: inline-block; margin: -4px 6px -4px 0; } .button-icon { height: 1em; vertical-align: 0; } &--facebook { .m-buttonColorVariation(#3B5998, white); .m-buttonIcon(@fa-var-facebook, 1em); } &--twitter { .m-buttonColorVariation(#1DA1F3, white); .m-buttonIcon(@fa-var-twitter, 1em); } &--google { .m-buttonColorVariation(white, #444); border-color: #e9e9e9; > .button-text:before { display: none; } } &--github { .m-buttonColorVariation(#666666, white); .m-buttonIcon(@fa-var-github, .97em); } &--linkedin { .m-buttonColorVariation(#0077b5, white); .m-buttonIcon(@fa-var-linkedin, .88em); } &--microsoft { .m-buttonColorVariation(#00bcf2, white); .m-buttonIcon(@fa-var-windows, .88em); } &--yahoo { .m-buttonColorVariation(#410093, white); .m-buttonIcon(@fa-var-yahoo, .88em); } } &.button--splitTrigger { // button-text and button-menu are always children of button--splitTrigger // but are defined here for reasons of specificity, as these border colors // are overwritten by .m-buttonBorderColorVariation() > .button-text { border-right: @xf-borderSize solid transparent; } > .button-menu { border-left: @xf-borderSize solid transparent; } .m-clearFix(); padding: 0; font-size: 0; display: inline-block; button.button-text { background: transparent; border: none; border-right: @xf-borderSize solid transparent; color: inherit; } > .button-text, > .button-menu { .xf-buttonBase(); display: inline-block; &:hover { &:after { opacity: 1; } } } > .button-text { .m-borderRightRadius(0); } > .button-menu { .m-borderLeftRadius(0); padding-right: xf-default(@xf-buttonBase--padding-right, 0);// * (2/3); padding-left: xf-default(@xf-buttonBase--padding-left, 0);// * (2/3); &:after { .m-menuGadget(); // .58em opacity: .5; } } } } .buttonGroup { display: inline-block; vertical-align: top; .m-clearFix(); &.buttonGroup--aligned { vertical-align: middle; } > .button { float: left; &:not(:first-child) { border-left: none; } &:not(:first-child):not(:last-child) { border-radius: 0; } &:first-child:not(:last-child) { .m-borderRightRadius(0); } &:last-child:not(:first-child) { .m-borderLeftRadius(0); } } > .buttonGroup-buttonWrapper { float: left; &:not(:first-child) > .button { border-left: none; } &:not(:first-child):not(:last-child) > .button { border-radius: 0; } &:first-child:not(:last-child) > .button { .m-borderRightRadius(0); } &:last-child:not(:first-child) > .button { .m-borderLeftRadius(0); } } } .toggleButton { > input { display: none; } > span { .xf-buttonDisabled(); .m-buttonBorderColorVariation(xf-default(@xf-buttonDisabled--background-color, transparent)); } &.toggleButton--small > span { font-size: @xf-fontSizeSmaller; padding: @xf-paddingSmall; } > input:checked + span { .xf-buttonDefault(); .m-buttonBlockColorVariationSimple(xf-default(@xf-buttonDefault--background-color, transparent)); } } .u-scrollButtons { position: fixed; bottom: 30px; right: (@xf-pageEdgeSpacer) / 2; .has-hiddenscroll & { right: 20px; } z-index: @zIndex-9; .m-transition(opacity; @xf-animationSpeed); opacity: 0; display: none; &.is-transitioning { display: block; } &.is-active { display: block; opacity: 1; } .button { display: block; + .button { margin-top: (@xf-pageEdgeSpacer) / 2; } } } ]]>
</template>
<template title="core_overlay.less" type="public" addon_id="XF" version_id="2020470" version_string="2.2.4">
<![CDATA[ // #################################### OVERLAYS ################################ .overlay-container { display: none; position: fixed; top: 0; bottom: 0; left: 0; right: 0; z-index: @zIndex-9; background: @xf-overlayMaskColor; -webkit-overflow-scrolling: touch; opacity: 0; .m-transition(opacity); &.is-transitioning { display: block; } &.is-active { display: block; opacity: 1; } } .overlay { position: relative; margin: 40px auto 10px; margin-top: @xf-overlayTopMargin; width: 100%; max-width: 800px; .xf-pageBackground(); color: @xf-textColor; border-radius: @xf-blockBorderRadius; .m-dropShadow(0, 5px, 15px, 0, .5); outline: none; > .overlay-title:first-child, .overlay-firstChild { border-top-left-radius: @xf-blockBorderRadius; border-top-right-radius: @xf-blockBorderRadius; } > .overlay-content > *:last-child, .overlay-lastChild { border-bottom-left-radius: @xf-blockBorderRadius; border-bottom-right-radius: @xf-blockBorderRadius; } } @media (max-width: 820px) { .overlay { max-width: calc(~'100% - 20px'); } } .overlay-title { .m-clearFix(); display: none; margin: 0; font-weight: @xf-fontWeightNormal; .xf-overlayHeader(); .overlay & { display: block; } } .overlay-titleCloser { float: right; cursor: pointer; margin-left: 5px; text-decoration: none; opacity: .5; .m-transition(); &:after { .m-faBase(); .m-faContent(@fa-var-times); } &:hover { text-decoration: none; opacity: 1; } } .overlay-content { .m-clearFix(); } // when displaying a modal, prevent scrolling on the main content but allow it on the overlay body.is-modalOpen { overflow: hidden !important; .overlay-container, .offCanvasMenu { overflow-y: scroll !important; } } @media (max-width: @xf-responsiveNarrow) { .overlay-title { font-size: @xf-fontSizeLarger; } } // ############################### OVERLAY/BLOCK NESTING ############################## .block-container > .tabPanes > li, .block-container > .block-body, .block-container > .block-body > .block-row, .overlay-content { > .blocks > .block > .block-container, > .block > .block-container, > .blockMessage { margin-left: 0; margin-right: 0; border-radius: @xf-blockBorderRadius; // restore the radius that might be removed for some viewports as we're within the overlay border-left: none; border-right: none; } > .blocks > .block:first-child, > .block:first-child, > .blockMessage:first-child { margin-top: 0; .block-outer:not(.block-outer--after) { border-bottom: @xf-borderSize solid @xf-borderColorLight; padding: @xf-blockPaddingV; } } > .blocks > .block:last-child, > .block:last-child, > .blockMessage:last-child { margin-bottom: 0; .block-outer.block-outer--after { border-top: @xf-borderSize solid @xf-borderColorLight; padding: @xf-blockPaddingV; } } > .blocks > .block:first-child > .block-container, > .block:first-child > .block-container, > .blockMessage:first-child { border-top: none; } > .blocks > .block:last-child > .block-container, > .block:last-child > .block-container, > .blockMessage:last-child { border-bottom: none; } > .blocks > .block:not(:first-child) > .block-container, > .block:not(:first-child) > .block-container, > .blockMessage:not(:first-child) { .m-borderTopRadius(0); } > .blocks > .block:not(:last-child) > .block-container, > .block:not(:last-child) > .block-container, > .blockMessage:not(:last-child) { .m-borderBottomRadius(0); } } .overlay-content { > .blocks > .block > .block-container, > .block > .block-container, > .blockMessage { .m-borderTopRadius(0); } > .blocks > .block > .block-container, > .block > .block-container { > :first-child { .m-borderTopRadius(0); } > .block-body:first-child > .formRow:first-child { > dt { border-top-left-radius: 0; } > dd { border-top-right-radius: 0; } } > .dataList:first-child { tbody:first-child .dataList-row:first-child, thead:first-child .dataList-row:first-child { > .dataList-cell:first-child { border-top-left-radius: 0; } > .dataList-cell:last-child { border-top-right-radius: 0; } } } } > .block:last-child > .block-container > .formSubmitRow:not(.is-sticky):last-child .formSubmitRow-bar { border-bottom-left-radius: @block-borderRadius-inner; border-bottom-right-radius: @block-borderRadius-inner; } } ]]>
</template>
<template title="extra.less" type="public" addon_id="XF" version_id="2021370" version_string="2.2.13">
<![CDATA[ <xf:include template="majdev_core.less" /> <xf:include template="majdev_icons.less" /> <xf:include template="majdev_overlay_menu.less" /> .p-header-logo.p-header-logo--image img { padding: 35px; } .osnova { background: url(/forum/styles/rodinastyle/osnova.png); width: 198px; height: 30px; font-size: 0px; background-size: cover; border: none; } .spec { background: url(/forum/styles/rodinastyle/spec.png); width: 198px; height: 30px; font-size: 0px; background-size: cover; border: none; } .zga { background: url(/forum/styles/rodinastyle/zga.png); width: 198px; height: 30px; font-size: 0px; background-size: cover; border: none; } .mladmin { background: url(/forum/styles/rodinastyle/mdadm.png); width: 198px; height: 30px; font-size: 0px; background-size: cover; border: none; } .ga { background: url(/forum/styles/rodinastyle/ga.png); width: 198px; height: 30px; font-size: 0px; background-size: cover; border: none; } .cur { background: url(/forum/styles/rodinastyle/user.png); width: 198px; height: 30px; font-size: 0px; background-size: cover; border: none; } .admin { background: url(/forum/styles/rodinastyle/admin.png); width: 198px; height: 30px; font-size: 0px; background-size: cover; border: none; } .user { background: url(/forum/styles/rodinastyle/user.png); width: 198px; height: 30px; font-size: 0px; background-size: cover; border: none; } .help { background: url(/forum/styles/rodinastyle/help.png); width: 198px; height: 30px; font-size: 0px; background-size: cover; border: none; } ]]>
</template>
<template title="helper_js_global" type="public" addon_id="XF" version_id="2020470" version_string="2.2.4">
<![CDATA[ <xf:macro name="head" arg-app="!"> <xf:set var="$cssUrls" value="{{ ['public:normalize.css', 'public:fa.css', 'public:core.less', $app . ':app.less'] }}" /> <xf:include template="font_awesome_setup" /> <link rel="stylesheet" href="{{ css_url($cssUrls) }}" /> <!--XF:CSS--> <xf:if is="$xf.fullJs"> <script src="{{ js_url('xf/preamble.js') }}"></script> <xf:else /> <script src="{{ js_url('xf/preamble.min.js') }}"></script> </xf:if> </xf:macro> <script type="680a4b2eff02abeca1a04f83-text/javascript">$(document).ready(function(){var html=$("html");$("[data-guide-modal]").on("click",function(t){html.toggleClass("hg-Modal-acik"),t.preventDefault()});$(document).keyup(function(e){27===e.keyCode&&html.removeClass("hg-Modal-acik")});$(".modal-kolon").each(function(){var settingName=$(this).attr("data-buton-class"),settingDefault=$(this).attr("data-default"),settingCookie=getCookie(settingName);"on"===settingCookie?($(this).find("#"+settingName+"-on").attr("checked","")):"off"===settingCookie?($(this).find("#"+settingName+"-off").attr("checked","")):"on"===settingDefault?($(this).find("#"+settingName+"-on").attr("checked","")):($(this).find("#"+settingName+"-off").attr("checked",""));$('.modal-kolon[data-buton-class="'+settingName+'"] input').on("click",function(){var inputValue=$(this).attr("id");inputValue===settingName+"-on"?(html.addClass(settingName),setCookie(settingName,"on",365)):(html.removeClass(settingName),setCookie(settingName,"off",365));});});});</script> <xf:macro name="body" arg-app="!" arg-jsState="{{ null }}"> <xf:corejs /> <!--XF:JS--> <script> $(document).ready(function(){ var html=$("html"); $("[data-guide-modal]").on("click",function(t){ html.toggleClass("mj-Modal-opened"),t.preventDefault() }); $(document).keyup(function(e){ 27===e.keyCode && html.removeClass("mj-Modal-opened") }) $(".modal-column").each(function(){ var settingName=$(this).attr("data-button-class"),settingDefault=$(this).attr("data-default"),settingCookie=getCookie(settingName); "on"===settingCookie?($(this).find("#"+settingName+"-on").attr("checked","")):"off"===settingCookie?($(this).find("#"+settingName+"-off").attr("checked","")):"on"===settingDefault?($(this).find("#"+settingName+"-on").attr("checked","")):($(this).find("#"+settingName+"-off").attr("checked","")); $('.modal-column[data-button-class="' + settingName + '"] input').on("click", function(){ var inputValue = $(this).attr("id"); inputValue===settingName+"-on"?(html.addClass(settingName),setCookie(settingName,"on",365)):(html.removeClass(settingName),setCookie(settingName,"off",365)) ;}) }); }); </script> <script> jQuery.extend(true, XF.config, { // <!--[XF:js_global:xf_extend_start]--> userId: {$xf.visitor.user_id}, enablePush: {{ $xf.options.enablePush ? 'true' : 'false' }}, pushAppServerKey: '{$xf.options.pushKeysVAPID.publicKey}', url: { fullBase: '{{ base_url(null, true)|escape("js") }}', basePath: '{{ base_url(null, false)|escape("js") }}', css: '{{ css_url(["__SENTINEL__"], false)|escape("js") }}', keepAlive: '{{ link_type($app, "login/keep-alive")|escape("js") }}' }, cookie: { path: '{{ $xf.cookie.path|escape("js") }}', domain: '{{ $xf.cookie.domain|escape("js") }}', prefix: '{{ $xf.cookie.prefix|escape("js") }}', secure: {{ $xf.cookie.secure ? 'true' : 'false' }} }, cacheKey: '{{ cache_key()|escape("js") }}', csrf: '{{ csrf_token()|escape("js") }}', js: {'<!--XF:JS:JSON-->'}, css: {'<!--XF:CSS:JSON-->'}, time: { now: {$xf.time}, today: {$xf.timeDetails.today}, todayDow: {$xf.timeDetails.todayDow}, tomorrow: {$xf.timeDetails.tomorrow}, yesterday: {$xf.timeDetails.yesterday}, week: {$xf.timeDetails.week} }, borderSizeFeature: '{{ property('borderSizeFeature') }}', fontAwesomeWeight: '{{ fa_weight() }}', enableRtnProtect: {{ $xf.enableRtnProtect ? 'true' : 'false' }}, enableFormSubmitSticky: {{ property('formSubmitSticky') ? 'true' : 'false' }}, uploadMaxFilesize: {$xf.uploadMaxFilesize}, allowedVideoExtensions: {$xf.allowedVideoExtensions|json|raw}, allowedAudioExtensions: {$xf.allowedAudioExtensions|json|raw}, shortcodeToEmoji: {{ $xf.options.shortcodeToEmoji ? 'true' : 'false' }}, visitorCounts: { conversations_unread: '{$xf.visitor.conversations_unread|number}', alerts_unviewed: '{$xf.visitor.alerts_unviewed|number}', total_unread: '{{ ($xf.visitor.conversations_unread + $xf.visitor.alerts_unviewed)|number }}', title_count: {{ in_array($xf.options.displayVisitorCount, ['title_count', 'title_and_icon']) ? 'true' : 'false' }}, icon_indicator: {{ in_array($xf.options.displayVisitorCount, ['icon_indicator', 'title_and_icon']) ? 'true' : 'false' }} }, jsState: {{ $jsState ? $jsState|json|raw : '{}' }}, publicMetadataLogoUrl: '{{ property('publicMetadataLogoUrl') ? base_url(property('publicMetadataLogoUrl'), true) : '' }}', publicPushBadgeUrl: '{{ property('publicPushBadgeUrl') ? base_url(property('publicPushBadgeUrl'), true) : '' }}' }); jQuery.extend(XF.phrases, { // <!--[XF:js_global:xf_phrase_start]--> date_x_at_time_y: "{{ phrase('date_x_at_time_y')|escape('js') }}", day_x_at_time_y: "{{ phrase('day_x_at_time_y')|escape('js') }}", yesterday_at_x: "{{ phrase('yesterday_at_x')|escape('js') }}", x_minutes_ago: "{{ phrase('x_minutes_ago')|escape('js') }}", one_minute_ago: "{{ phrase('one_minute_ago')|escape('js') }}", a_moment_ago: "{{ phrase('a_moment_ago')|escape('js') }}", today_at_x: "{{ phrase('today_at_x')|escape('js') }}", in_a_moment: "{{ phrase('in_a_moment')|escape('js') }}", in_a_minute: "{{ phrase('in_a_minute')|escape('js') }}", in_x_minutes: "{{ phrase('in_x_minutes')|escape('js') }}", later_today_at_x: "{{ phrase('later_today_at_x')|escape('js') }}", tomorrow_at_x: "{{ phrase('tomorrow_at_x')|escape('js') }}", day0: "{{ phrase('day_sunday')|escape('js') }}", day1: "{{ phrase('day_monday')|escape('js') }}", day2: "{{ phrase('day_tuesday')|escape('js') }}", day3: "{{ phrase('day_wednesday')|escape('js') }}", day4: "{{ phrase('day_thursday')|escape('js') }}", day5: "{{ phrase('day_friday')|escape('js') }}", day6: "{{ phrase('day_saturday')|escape('js') }}", dayShort0: "{{ phrase('day_sunday_short')|escape('js') }}", dayShort1: "{{ phrase('day_monday_short')|escape('js') }}", dayShort2: "{{ phrase('day_tuesday_short')|escape('js') }}", dayShort3: "{{ phrase('day_wednesday_short')|escape('js') }}", dayShort4: "{{ phrase('day_thursday_short')|escape('js') }}", dayShort5: "{{ phrase('day_friday_short')|escape('js') }}", dayShort6: "{{ phrase('day_saturday_short')|escape('js') }}", month0: "{{ phrase('month_1')|escape('js') }}", month1: "{{ phrase('month_2')|escape('js') }}", month2: "{{ phrase('month_3')|escape('js') }}", month3: "{{ phrase('month_4')|escape('js') }}", month4: "{{ phrase('month_5')|escape('js') }}", month5: "{{ phrase('month_6')|escape('js') }}", month6: "{{ phrase('month_7')|escape('js') }}", month7: "{{ phrase('month_8')|escape('js') }}", month8: "{{ phrase('month_9')|escape('js') }}", month9: "{{ phrase('month_10')|escape('js') }}", month10: "{{ phrase('month_11')|escape('js') }}", month11: "{{ phrase('month_12')|escape('js') }}", active_user_changed_reload_page: "{{ phrase('active_user_changed_reload_page')|escape('js') }}", server_did_not_respond_in_time_try_again: "{{ phrase('server_did_not_respond_in_time_try_again')|escape('js') }}", oops_we_ran_into_some_problems: "{{ phrase('oops_we_ran_into_some_problems')|escape('js') }}", oops_we_ran_into_some_problems_more_details_console: "{{ phrase('oops_we_ran_into_some_problems_more_details_console')|escape('js') }}", file_too_large_to_upload: "{{ phrase('file_too_large_to_upload')|escape('js') }}", uploaded_file_is_too_large_for_server_to_process: "{{ phrase('uploaded_file_is_too_large_for_server_to_process')|escape('js') }}", files_being_uploaded_are_you_sure: "{{ phrase('files_being_uploaded_are_you_sure')|escape('js') }}", attach: "{{ phrase('button.attach')|escape('js') }}", rich_text_box: "{{ phrase('rich_text_box')|escape('js') }}", close: "{{ phrase('close')|escape('js') }}", link_copied_to_clipboard: "{{ phrase('link_copied_to_clipboard')|escape('js') }}", text_copied_to_clipboard: "{{ phrase('text_copied_to_clipboard')|escape('js') }}", loading: "{{ phrase('loading...')|escape('js') }}", processing: "{{ phrase('processing')|escape('js') }}", 'processing...': "{{ phrase('processing...')|escape('js') }}", showing_x_of_y_items: "{{ phrase('showing_x_of_y_items')|escape('js') }}", showing_all_items: "{{ phrase('showing_all_items')|escape('js') }}", no_items_to_display: "{{ phrase('no_items_to_display')|escape('js') }}", number_button_up: "{{ phrase('number_button_up')|escape('js') }}", number_button_down: "{{ phrase('number_button_down')|escape('js') }}", push_enable_notification_title: "{{ phrase('push_enable_notification_title', {'boardTitle': $xf.options.boardTitle})|escape('js') }}", push_enable_notification_body: "{{ phrase('push_enable_notification_body')|escape('js') }}" }); </script> <form style="display:none" hidden="hidden"> <input type="text" name="_xfClientLoadTime" value="" id="_xfClientLoadTime" title="_xfClientLoadTime" tabindex="-1" /> </form> <xf:if is="$xf.visitor.canSearch() && $xf.request.getFullRequestUri() === link('full:index')"> <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "WebSite", "url": "{{ link('canonical:index')|escape('js') }}", "potentialAction": { "@type": "SearchAction", "target": "{{ link('canonical:search/search')|escape('js') . ($xf.options.useFriendlyUrls ? '?' : '&') . 'keywords={search_keywords}' }}", "query-input": "required name=search_keywords" } } </script> </xf:if> </xf:macro> ]]>
</template>
<template title="majdev_core.less" type="public" addon_id="" version_id="0" version_string="">
<![CDATA[ /* */ :root{ --theme: 'Rodina RP'; --version: 'v1.1'; --author: 'MAJDEV'; --pagewidth: 90%; --basecolor: rgb(206, 22, 56); } .alternative-color:root{ --basecolor: rgb(0, 196, 195); } .wide-page:root{ --pagewidth: 98%; } .p-header-inner{ max-width: var(--pagewidth); } .p-nav-inner{ max-width: var(--pagewidth); } .p-sectionLinks-inner{ max-width: var(--pagewidth); } .p-body-inner{ max-width: var(--pagewidth); } .p-footer-inner{ max-width: var(--pagewidth); } ::-webkit-scrollbar{ width: 15px; } ::-webkit-scrollbar-thumb{ background: var(--basecolor); } ::-webkit-scrollbar-track{ background: rgb(38, 45, 57); } .p-header-logo{ margin-left: auto; } .p-nav-smallLogo{ display: none !important; } .p-header-logo{ max-width: none !important; } .has-js .p-header{ display: block; } .blockMessage{ background: rgb(38, 45, 57); } .menu-linkRow:hover{ background-color: rgb(34, 40, 49); border-left-color: var(--basecolor); } .block-container{ border-width: 0px; } .node+.node{ border-top: 1px solid rgb(33, 40, 49); } .node-stats{ background: rgb(36, 42, 53); } .formRow .iconic>i, .inputGroup .iconic>i, .inputChoices .iconic>i, .block-footer .iconic>i, .dataList-cell .iconic>i, .message-cell--extra .iconic>i, .formRow.dataList-cell--fa>a>i, .inputGroup.dataList-cell--fa>a>i, .inputChoices.dataList-cell--fa>a>i, .block-footer.dataList-cell--fa>a>i, .dataList-cell.dataList-cell--fa>a>i, .message-cell--extra.dataList-cell--fa>a>i, .formRow .iconic svg, .inputGroup .iconic svg, .inputChoices .iconic svg, .block-footer .iconic svg, .dataList-cell .iconic svg, .message-cell--extra .iconic svg, .formRow.dataList-cell--fa>a svg, .inputGroup.dataList-cell--fa>a svg, .inputChoices.dataList-cell--fa>a svg, .block-footer.dataList-cell--fa>a svg, .dataList-cell.dataList-cell--fa>a svg, .message-cell--extra.dataList-cell--fa>a svg{ color: rgb(255, 255, 255); } .inputTypes-input:checked+.inputTypes-display, .inputTypes-display:hover{ background: rgb(36, 42, 53); } .button { border: none; } .post-row{ display: flex; background: rgb(38, 45, 57); align-items: center; margin: 3px 0; border-radius: 2px; position: relative; } .post-row .post-icon { padding: 7px; background: rgb(33, 40, 49); margin-right: .1rem; border-radius: 2px 0 0 2px; text-align: center; width: 25%; } .post-row .post-row-inner{ padding: 5px; display: flex; width: 100%; position: relative; z-index: 1; font-size: 10px; font-weight: 600; align-items: center; } .ml-auto{ margin-left: 5px; } .message-userArrow{ display: none; } .fr-wrapper::selection{ background: paleturquoise; color: rgb(20, 20, 20); } .fr-box.fr-basic .fr-element ::selection{ background: paleturquoise; color: rgb(20, 20, 20); } .message-avatar-wrapper .message-avatar-online{ display: inline-block; width: 16px; height: 16px; background: rgb(255, 255, 255); border: none!important; border-radius: 50%!important } .message-avatar-wrapper .message-avatar-online:before{ content: ''; position: absolute; width: 10px; height: 10px; margin: 1px 0 0 -7px; background: rgb(127, 185, 0); border-color: rgb(127, 185, 0); border-radius: 50% } .message-avatar-wrapper .message-avatar-online:after{ content: ''; position: absolute; width: 32px; height: 32px; margin: -10px 0 0 -17px; border: 1px solid rgb(127, 185, 0); border-radius: 50%; box-shadow: 0 0 4px rgb(127, 185, 0), inset 0 0 4px rgb(127, 185, 0); -webkit-transform: scale(0); -webkit-animation: online 2.5s ease-in-out infinite; animation: online 2.5s ease-in-out infinite } @-webkit-keyframes online{ 0% {opacity: 1;-webkit-transform: scale(0)} 50% {opacity: .7} 100% {opacity: 0;-webkit-transform: scale(1)} } @keyframes online{ 0% {opacity: 1;transform: scale(0)} 50% {opacity: .7} 100% {opacity: 0;transform: scale(1)} } ]]>
</template>
<template title="majdev_icons.less" type="public" addon_id="" version_id="0" version_string="">
<![CDATA[ /* __ __ _ _ ____ _____ __ __ _ _ _____ _____ | \/ | / \ | | | _ \ | ____| \ \ / / | \ | | | ____| |_ _| | |\/| | / _ \ _ | | | | | | | _| \ \ / / | \| | | _| | | | | | | / ___ \ | |_| | | |_| | | |___ \ V / _ | |\ | | |___ | | |_| |_| /_/ \_\ \___/ |____/ |_____| \_/ (_) |_| \_| |_____| |_| */ .fa-comments:before{ content: "\f666"; } .p-navEl-link{ &:before{ font-size: 15px; display: inline-block; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; margin-right: 5px; .m-faBase(); } &[data-nav-id="home"]:before{content: '\f015';} &[data-nav-id="forums"]:before{content: '\f7d4';} &[data-nav-id="whatsNew"]:before{content: '\f560';} &[data-nav-id="members"]:before{content: '\f0c0';} &[data-nav-id="newPosts"]:before{content: '\f075';} &[data-nav-id="findThreads"]:before{content: '\f002';} &[data-nav-id="watched"]:before{content: '\f2f1'; } &[data-nav-id="searchForums"]:before{content: '\f689';} &[data-nav-id="markForumsRead"]:before{content: '\f5b7';} } .menu-linkRow{ &:before{ display: inline-block; font-size: 15px; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; margin-right: 5px; .m-faBase(); } &[data-nav-id="whatsNewPosts"]:before{content: '\f4ad';} &[data-nav-id="whatsNewProfilePosts"]:before{content: '\f4ff';} &[data-nav-id="whatsNewNewsFeed"]:before{content: '\f09e';} &[data-nav-id="latestActivity"]:before{content: '\f6a3';} &[data-nav-id="currentVisitors"]:before{content: '\f0c0';} &[data-nav-id="newProfilePosts"]:before{content: '\f4ff';} &[data-nav-id="searchProfilePosts"]:before{content: '\f00e';} &[data-nav-id="yourThreads"]:before{content: '\f4ad';} &[data-nav-id="contributedThreads"]:before{content: '\f4ac';} &[data-nav-id="unansweredThreads"]:before{content: '\f4b5';} &[data-nav-id="watchedThreads"]:before{content: '\f14e';} &[data-nav-id="watchedForums"]:before{content: '\f4ac';} } .menu-tabHeader .tabs-tab{ &:before{ display: inline-block; font-size: 15px; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; margin-right: 5px; .m-faBase(); } &[href="{{ link('account') }}"]:before{content: '\f509';} &[href="{{ link('account/bookmarks') }}"]:before{content: '\f02e';} } .menu-content .listPlain .menu-linkRow{ &:before{ display: inline-block; font-size: 15px; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; margin-right: 5px; .m-faBase(); } &[href="{{ link('whats-new/news-feed') }}"]:before{content: '\f09e';} &[href*="{{ link('search/member') }}"]:before{content: '\f4b2';} &[href*="{{ link('account/reactions') }}"]:before{content: '\f361';} &[href="{{ link('account/account-details') }}"]:before{content: '\f4fe';} &[href="{{ link('account/security') }}"]:before{content: '\f502';} &[href="{{ link('account/privacy') }}"]:before{content: '\f505';} &[href="{{ link('account/preferences') }}"]:before{content: '\f6a3';} &[href="{{ link('account/signature') }}"]:before{content: '\f5b7';} &[href="{{ link('account/following') }}"]:before{content: '\f14e';} &[href="{{ link('account/ignored') }}"]:before{content: '\f4fa';} } [href*="{{ link('logout') }}"]:before{ display: inline-block; .m-faBase(); content: '\f011'; font-size: 15px; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; margin-right: 5px; } [data-template="account_alerts"], &[data-template="account_reactions"], &[data-template="account_bookmarks"], &[data-template="kl_em_template_list"], &[data-template="xc_yvp_account"], &[data-template="siropu_referral_system_account_referrals"], &[data-template="asc_account_sms"], &[data-template="account_details"], &[data-template="account_security"], &[data-template="account_privacy"], &[data-template="account_preferences"], &[data-template="account_signature"], &[data-template="account_upgrades"], &[data-template="account_connected"], &[data-template="account_following"], &[data-template="account_ignored"], &[data-template="thuserimprovements_self_deactivate"] { .p-body-sideNavContent a.blockLink { &:before { font-family: 'Font Awesome 5 Pro'; font-size: inherit; font-style: normal; font-weight: 900; text-rendering: auto; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; padding-right: 5px; } &[href*="members/"]:before { content: "\f007"; } &[href*="account/alerts"]:before { content: "\f0f3"; } &[href*="account/reactions"]:before { content: "\f164"; } &[href*="account/bookmarks"]:before { content: "\f02e"; } &[href*="account/kl-editor-templates"]:before { content: "\f044"; } &[href*="account/youtube-profile"]:before { font-family: 'Font Awesome 5 Brands'; content: "\f167"; } &[href*="account/referrals"]:before { content: "\f500"; } &[href*="account/sms-confirmation"]:before { content: "\f3cf"; } &[href*="account/account-details"]:before { content: "\f4fe"; } &[href*="account/security"]:before { content: "\f3ed"; } &[href*="account/privacy"]:before { content: "\f023"; } &[href*="account/preferences"]:before { content: "\f085"; } &[href*="account/signature"]:before { content: "\f5b7"; } &[href*="account/upgrades"]:before { font-family: 'Font Awesome 5 Brands'; content: "\f1ed"; } &[href*="account/connected-accounts"]:before { content: "\f63d"; } &[href*="account/following"]:before { content: "\f234"; } &[href*="account/ignored"]:before { content: "\f503"; } &[href*="logout"]:before { content: "\f011"; } &[href*="account/thui-deactivate"]:before { content: "\f307"; } } } .p-footer-linkList a[href*="{{ link('help/terms') }}"]:before{.m-faBase();padding-right: 5px;content: "\f05a" !important;} .p-footer-linkList a[href*="{{ link('help') }}"]:before{ .m-faBase(); padding-right: 5px; content: "\f059" } .p-footer-linkList a[href*="{{ link('help/privacy-policy') }}"]:before{ .m-faBase(); padding-right: 5px; content: "\f21b" !important; } .p-footer-linkList a[href*="{{ link('/misc/contact') }}"]:before{ .m-faBase(); padding-right: 5px; content: "\f1d8" !important; } .p-footer-linkList a[href*="{{ link('https://') }}"]:before{ .m-faBase(); padding-right: 5px; content: "\f015" !important; } .offCanvasMenu-linkHolder a[href*="{{ link('login') }}"]:before{ .m-faBase(); padding-right: 5px; content: "\f08b" } .offCanvasMenu-linkHolder a[href*="{{ link('register') }}"]:before{ .m-faBase(); padding-right: 5px; content: "\f25d" } .offCanvasMenu-link[data-nav-id="forums"]:before { padding: 4px; .m-faBase(); content: "\f086";} .offCanvasMenu-link[data-nav-id="home"]:before { padding: 4px; .m-faBase(); content: "\f015";} .offCanvasMenu a[href*="{{ link('whats-new/posts') }}"]:before{ .m-faBase(); padding-right: 5px; content: "\f05b" } .offCanvasMenu a[href*="{{ link('find-threads/started') }}"]:before{ .m-faBase(); padding-right: 5px; content: "\f002" } .offCanvasMenu a[href*="{{ link('find-threads/contributed') }}"]:before{ .m-faBase(); padding-right: 5px; content: "\f06e" } .offCanvasMenu a[href*="{{ link('find-threads/unanswered') }}"]:before{ .m-faBase(); padding-right: 5px; content: "\f070" } .offCanvasMenu a[href*="{{ link('watched/threads') }}"]:before{ .m-faBase(); padding-right: 5px; content: "\f086" } .offCanvasMenu a[href*="{{ link('watched/forums') }}"]:before{ .m-faBase(); padding-right: 5px; content: "\f086" } .offCanvasMenu a[href*="{{ link('search', null, {'type': 'post'}) }}"]:before{ .m-faBase(); padding-right: 5px; content: "\f002" } .offCanvasMenu a[href*="{{ link('forums/mark-read', '-', {'date': $xf.time}) }}"]:before{ .m-faBase(); padding-right: 5px; content: "\f002" } .offCanvasMenu-linkHolder a[href*="{{ link('whats-new') }}"]:before{ .m-faBase(); padding-right: 5px; content: "\f059" } .offCanvasMenu a[href*="{{ link('whats-new/profile-posts') }}"]:before{ .m-faBase(); padding-right: 5px; content: "\f21b" } .offCanvasMenu a[href*="{{ link('whats-new/news-feed') }}"]:before{ .m-faBase(); padding-right: 5px; content: "\f03a" } .offCanvasMenu a[href*="{{ link('whats-new/latest-activity') }}"]:before{ .m-faBase(); padding-right: 5px; content: "\f06e" } .offCanvasMenu a[href*="{{ link('whats-new/resources') }}"]:before{ .m-faBase(); padding-right: 5px; content: "\f164" } .offCanvasMenu-linkHolder a[href*="{{ link('account/upgrades') }}"]:before{ .m-faBase(); padding-right: 5px; content: "\f234" } .offCanvasMenu-linkHolder a[href*="{{ link('members') }}"]:before{ .m-faBase(); padding-right: 5px; content: "\f007" } .offCanvasMenu a[href*="{{ link('members/list') }}"]:before{ .m-faBase(); padding-right: 5px; content: "\f0c0" } .offCanvasMenu a[href*="{{ link('online') }}"]:before{ .m-faBase(); padding-right: 5px; content: "\f205" } .offCanvasMenu a[href*="{{ link('search', null, {'type': 'profile_post'}) }}"]:before{ .m-faBase(); padding-right: 5px; content: "\f002" } .offCanvasMenu a[href*="{{ link('resources') }}"]:before{ .m-faBase(); padding-right: 5px; content: "\f187" } .offCanvasMenu a[href*="{{ link('resources/latest-reviews') }}"]:before{ .m-faBase(); padding-right: 5px; content: "\f06e" } .offCanvasMenu a[href*="{{ link('watched/resources') }}"]:before{ .m-faBase(); padding-right: 5px; content: "\f187" } .offCanvasMenu a[href*="{{ link('watched/resource-categories') }}"]:before{ .m-faBase(); padding-right: 5px; content: "\f187" } .offCanvasMenu a[href*="/search/?type=resource"]:before{ .m-faBase(); padding-right: 5px; content: "\f002" } .p-body-sidebar [data-widget-definition="forum_statistics"] .pairs.pairs--justified > dt:before { font-family: "Font Awesome 5 Pro"; padding-right: 7px; color: white; } .p-body-sidebar [data-widget-definition="forum_statistics"] .pairs:nth-child(1) dt:before { content: "\f4b2"; } .p-body-sidebar [data-widget-definition="forum_statistics"] .pairs:nth-child(2) dt:before { content: "\f4b6"; } .p-body-sidebar [data-widget-definition="forum_statistics"] .pairs:nth-child(3) dt:before { content: "\f2bd"; } .p-body-sidebar [data-widget-definition="forum_statistics"] .pairs:nth-child(4) dt:before { content: "\f234"; } .actionBar-action:before { margin-right: 5px; } .actionBar-action--edit:before {.m-faContent("\f040");} .actionBar-action--report:before {.m-faContent("\f071");} .actionBar-action--ip:before {.m-faContent("\f002");} .actionBar-action--delete:before {.m-faContent("\f00d");} .actionBar-action--spam:before {.m-faContent("\f024");} .actionBar-action--warn:before {.m-faContent("\f12a");} .actionBar-action--history:before {.m-faContent("\f1da");} .p-navgroup-link[data-guide-modal] span:before { content: "\f3f1"; font-family: 'Font Awesome 5 Pro'; transform: translate(0, 0); font-weight: normal; text-rendering: auto; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; margin: 0 5px; } .p-navgroup-link.p-navgroup-link--moderatortools i:after { content: "\f509"; } .p-navgroup-link.p-navgroup-link--textual.p-navgroup-link--logIn:before { font-family: "font awesome 5 pro"; font-size: inherit; font-style: normal; font-weight: 400; text-rendering: auto; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; content: "\f090"; display: inline-block; width: 1em; padding: 0 3px; } .p-navgroup-link.p-navgroup-link--textual.p-navgroup-link--logIn:before { color: var(--basecolor); } .p-navgroup-link.p-navgroup-link--textual.p-navgroup-link--register:before { font-family: "font awesome 5 pro"; font-size: inherit; font-style: normal; font-weight: 400; text-rendering: auto; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; content: "\f234"; display: inline-block; width: 1em; padding: 0 5px; } .p-navgroup-link.p-navgroup-link--textual.p-navgroup-link--register:before { color: var(--basecolor); } ]]>
</template>
<template title="majdev_overlay_menu.less" type="public" addon_id="" version_id="0" version_string="">
<![CDATA[ /* __ __ _ _ ____ _____ __ __ _ _ _____ _____ | \/ | / \ | | | _ \ | ____| \ \ / / | \ | | | ____| |_ _| | |\/| | / _ \ _ | | | | | | | _| \ \ / / | \| | | _| | | | | | | / ___ \ | |_| | | |_| | | |___ \ V / _ | |\ | | |___ | | |_| |_| /_/ \_\ \___/ |____/ |_____| \_/ (_) |_| \_| |_____| |_| */ .mj-Modal-opened .mj-Modal-container{ visibility:visible; opacity:1; } .mj-Modal-opened body{ overflow:hidden !important; } .mj-Modal-container{ display:flex; position:fixed; top:0; left:0; width:100%; height:100%; z-index:1000; align-items:center; justify-content:center; visibility:hidden; opacity:0; transition:all .25s ease-in-out } .mj-Modal-opened .mj-Modal-container{ visibility:visible; opacity:1; } .mj-Modal-container .mj-Modal-overlay{ background:rgba(0,0,0,0.5); -webkit-backdrop-filter:blur(5px); backdrop-filter:blur(5px); position:absolute; top:0; left:0; right:0; bottom:0; cursor:auto; } .mj-Modal-container .mj-Modal-block{ background-color:#222831; box-shadow:rgba(0,0,0,0.3) 0px 10px 10px,rgba(0,0,0,0.4) 0px 15px 50px; position:absolute; width:600px; max-width:600px; transition:all .3s ease-in-out; transform:translateX(50px); right:0; height:100%; } @media (max-width:650px){ .mj-Modal-container .mj-Modal-block{ width:100%; max-width:100%; } } .mj-Modal-container .mj-Modal-block .mj-Modal-scroll{ max-height:100%; overflow:auto; border-radius:inherit; } .mj-Modal-container .mj-Modal-block .guide-Modal-header{ background:#262D39; color:#fff; padding:1px 15px; display:flex; } .mj-Modal-container .mj-Modal-block .guide-Modal-header .modal-close{ background:#262d39; color:#fff; cursor:pointer; position:absolute; right:0; margin:10px; border:none; border-radius:5px; font-size:25px; } .mj-Modal-opened .mj-Modal-container .mj-Modal-block{ transform:translateY(0); } .mj-Modal-container .mj-Modal-block .mj-modal-cell{ border-bottom:solid 1px rgba(149,158,177,0.2); color:rgba(149,158,177,0.99); display:flex; position:relative; width:100%; padding:10px; } .mj-Modal-container .mj-Modal-block .mj-modal-cell .modal-column{ padding:0px 10px 0px 10px; width:100%; } .mj-Modal-container .mj-Modal-block .mj-modal-cell .modal-column:first-of-type{ width:50px; text-align:center; } .mj-Modal-container .mj-Modal-block .mj-modal-cell .modal-column:last-of-type{ width:80px; padding:0px; line-height:30px; } .mj-Modal-container .mj-Modal-block .mj-modal-cell .modal-column h3{ font-size:16px; border:none; margin:0; padding:0; } .mj-Modal-container .mj-Modal-block .mj-modal-cell .modal-column span{ font-size:12px; } .mj-Modal-container .mj-Modal-block .mj-modal-cell .modal-column i{ font-size:30px; line-height:50px; color:rgba(149,158,177,0.99); } .mj-Modal-container .mj-Modal-block .mj-modal-cell .modal-second-column{ width:50px; text-align:center; } .mj-Modal-container .mj-Modal-block .mj-modal-cell .modal-second-column span:first-of-type,.mj-Modal-container .mj-Modal-block .mj-modal-cell .modal-second-column span:last-of-type{ content:''; display:inline-block; width:30px; height:30px; border-radius:50px; } .mj-Modal-container .mj-Modal-block .mj-modal-cell .modal-second-column span:first-of-type{ background:#24346c; background:linear-gradient(180deg, #092059 0%, #173781 100%); } .mj-Modal-container .mj-Modal-block .mj-modal-cell .modal-second-column span:last-of-type{ background:#24346c; background:linear-gradient(180deg, #24346c 0%, #222b4b 100%); } .mj-Modal-container .mj-Modal-block .mj-modal-cell .guide-modal-toogle{ position:relative; flex:0 0 auto; margin-right:20px; } .mj-Modal-container .mj-Modal-block .mj-modal-cell .guide-modal-toogle i.modal-toggle{ background:#e5e5e5; display:block; border-radius:15px; position:relative; z-index:0; width:50px; height:30px; } .mj-Modal-container .mj-Modal-block .mj-modal-cell .guide-modal-toogle i.modal-toggle:before{ content:''; position:absolute; top:0; left:0; right:0; bottom:0; background:#2aad55; border-radius:inherit; opacity:0; transition:opacity .25s linear; } .mj-Modal-container .mj-Modal-block .mj-modal-cell .guide-modal-toogle i.modal-toggle i{ position:absolute; top:0; left:0; bottom:0; width:30px; transform:translateX(0); transition:transform .3s ease-in-out; border-radius:inherit; padding:2px; } .mj-Modal-container .mj-Modal-block .mj-modal-cell .guide-modal-toogle i.modal-toggle i:before{ content:''; background:#fff; box-shadow:rgba(0,0,0,0.25) 0px 3px 6px; border-radius:inherit; display:block; height:100%; } .mj-Modal-container .mj-Modal-block .mj-modal-cell .guide-modal-toogle i.modal-toggle:after{ content:''; position:absolute; top:0; left:0; right:0; bottom:0; border-radius:inherit; border:2px solid rgba(0,0,0,0.15); } .mj-Modal-container .mj-Modal-block .mj-modal-cell .guide-modal-toogle input[type='radio']{ display:block; position:absolute; top:0; left:0; width:50px; height:30px; opacity:0; z-index:5; border-radius:0; -moz-appearance:none; -webkit-appearance:none; appearance:none; cursor:pointer; } .mj-Modal-container .mj-Modal-block .mj-modal-cell .guide-modal-toogle input[type='radio']:checked{ display:none; } .mj-Modal-container .mj-Modal-block .mj-modal-cell .guide-modal-toogle input[type='radio']:nth-of-type(2):checked~.modal-toggle:before{ transform:scale(1); opacity:1; } .mj-Modal-container .mj-Modal-block .mj-modal-cell .guide-modal-toogle input[type='radio']:nth-of-type(2):checked~.modal-toggle i{ transform:translateX(20px); } @media (min-width:1250px){ .p-body-inner.guide-theme-personalize{ content:''; position:relative; } @supports ((position: sticky) or (position: -webkit-sticky)){ .p-body-inner.guide-theme-personalize .personalize-block{ position:-webkit-sticky; position:sticky; top:70px; } } .p-body-inner.guide-theme-personalize .personalize-border{ position:absolute; right:-30px; overflow:hidden; } .p-body-inner.guide-theme-personalize .personalize-border .personalize-button{ background:#b40669; color:#fff; border:none; border-radius:4px; font-size:18px; padding:26px 5px; cursor:pointer; } .p-body-inner.guide-theme-personalize .personalize-border .personalize-button:hover{ background:rgba(180,6,105,0.9); } } @media (max-width:1250px){ .p-body-inner.guide-theme-personalize .personalize-border{ display:none; } } ]]>
</template>
<template title="message.less" type="public" addon_id="XF" version_id="2020470" version_string="2.2.4">
<![CDATA[ @_message-actionColumnWidth: 40px; @_messageSimple-userColumnWidth: 70px; .message { + .message, &.message--bordered { border-top: @xf-borderSize solid @xf-borderColor; } } .message, .block--messages .message { &.is-mod-selected { background: @xf-inlineModHighlightColor; .message-cell--user, .message-cell--vote { background: @xf-inlineModHighlightColor; } .message-userArrow:after { border-right-color: @xf-inlineModHighlightColor; } } } .message-inner { display: flex; & + .message-inner { border-top: @xf-borderSize solid @xf-borderColor; } } .message-cell { display: block; vertical-align: top; padding: @xf-messagePadding; .message--quickReply & { //padding-bottom: 35px; // for the submit row > .formRow:last-child { > dd { padding-bottom: 0; } } } &.message-cell--closer { padding: @xf-messagePaddingSmall; &.message-cell--user { .m-fixedWidthFlex((@xf-messageUserBlockWidth) + 2 * (@xf-messagePaddingSmall)); .message--simple & { .m-fixedWidthFlex(@_messageSimple-userColumnWidth + 2 * (@xf-messagePaddingSmall)); } } &.message-cell--action { .m-fixedWidthFlex((@_message-actionColumnWidth) + 2 * (@xf-messagePaddingSmall)); } } &.message-cell--user, &.message-cell--action { position: relative; .xf-messageUserBlock(no-border); border-right: @xf-messageUserBlock--border-width solid @xf-messageUserBlock--border-color; min-width: 0; } &.message-cell--vote { position: relative; .xf-messageUserBlock(no-border); border-left: @xf-messageUserBlock--border-width solid @xf-messageUserBlock--border-color; border-right: 0; padding-top: 0; padding-bottom: 0; .message--solution & { background: @xf-successBg; } .solutionIcon { margin-top: @xf-paddingMedium; } } &.message-cell--user { .m-fixedWidthFlex((@xf-messageUserBlockWidth) + 2 * (@xf-messagePadding)); .message--simple & { .m-fixedWidthFlex(@_messageSimple-userColumnWidth + 2 * @xf-messagePaddingSmall); } } &.message-cell--action { .m-fixedWidthFlex((@_message-actionColumnWidth) + 2 * (@xf-messagePadding)); } &.message-cell--main { flex: 1 1 auto; width: 100%; min-width: 0; &.is-editing { padding: 0; } // should really only happen when editing .block { margin: 0; } .block-container { margin: 0; border: none; } } &.message-cell--alert { font-size: @xf-fontSizeSmall; flex: 1 1 auto; width: 100%; min-width: 0; .xf-contentAccentBase(); a { .xf-contentAccentLink(); } } &.message-cell--extra { .m-fixedWidthFlex(180 + 2 * (@xf-messagePadding)); border-left: @xf-messageUserBlock--border-width solid @xf-messageUserBlock--border-color; background: @xf-contentAltBg; .formRow-explain { margin: @xf-paddingMedium 0 0; .xf-formExplain(); .m-textColoredLinks(); font-size: 80%; } } &.message-cell--header, &.message-cell--solutionHeader { flex: 1 1 auto; width: 100%; min-width: 0; padding: @xf-blockPaddingV @xf-blockPaddingH; margin: 0; } &.message-cell--header { font-weight: @xf-fontWeightNormal; text-decoration: none; .xf-blockHeader(); border-bottom: none; .m-hiddenLinks(); } &.message-cell--solutionHeader { color: @xf-successColor; font-size: @xf-fontSizeLarge; background: @xf-successBg; border-left: @xf-borderSizeFeature solid @xf-successFeatureColor; } } .message-main { height: 100%; display: flex; flex-direction: column; } .message-content { flex: 1 1 auto; // IE11 flex bug min-height: 1px; } .message-footer { margin-top: auto; } .message-expandWrapper { position: relative; overflow: hidden; .m-transition(-xf-height, height); .message-expandContent { max-height: 250px; overflow: hidden; } .message-expandContent--small { max-height: 160px; } &.is-expandable { .message-expandLink { display: block; } } &.is-expanded { .message-expandContent { max-height: none; } .message-expandLink { display: none; } } } .message-column { display: flex; flex-direction: column; align-items: center; } .message-expandLink { display: none; position: absolute; top: 60%; bottom: 0; left: 0; right: 0; cursor: pointer; z-index: @zIndex-1; .m-gradient( fade(@xf-contentBase--background-color, 0%), xf-default(@xf-contentBase--background-color, transparent), transparent, 0%, 70% ); &:empty { cursor: auto; .m-gradient( fade(@xf-contentBase--background-color, 0%), xf-default(@xf-contentBase--background-color, transparent), transparent, 0%, 100% ); } a { position: absolute; bottom: @xf-messagePadding; left: 0; right: 0; text-align: center; font-size: @xf-fontSizeSmall; color: @xf-textColorAttention; text-decoration: none; } } @media (max-width: @xf-messageSingleColumnWidth) { .message:not(.message--forceColumns) { .message-inner { display: block; } .message-cell { display: block; .m-clearFix(); &.message-cell--user { width: auto; border-right: none; border-bottom: @xf-messageUserBlock--border-width solid @xf-messageUserBlock--border-color; } &.message-cell--vote { width: auto; border-left: none; border-top: @xf-messageUserBlock--border-width solid @xf-messageUserBlock--border-color; .solutionIcon { margin-top: 0; } } &.message-cell--main { padding-left: @xf-messagePadding; } &.message-cell--extra { width: auto; border-left: none; border-top: @xf-messageUserBlock--border-width solid @xf-messageUserBlock--border-color; } } .message-column { flex-direction: row; justify-content: space-evenly; } } .message--simple:not(.message--forceColumns), .message--quickReply:not(.message--forceColumns) { .message-cell.message-cell--user { display: none; } } } // ######################## USER COLUMN ######################### .message-userArrow { position: absolute; top: (@xf-messagePadding) * 2; right: -1px; .m-triangleLeft(xf-default(@xf-messageUserBlock--border-color, transparent), @xf-messagePadding); &:after { position: absolute; top: -(@xf-messagePadding - 1px); right: -@xf-messagePadding; content: ""; .m-triangleLeft(@xf-contentBg, @xf-messagePadding - 1px); } } .message-avatar { text-align: center; .avatar { vertical-align: bottom; } } .message-avatar-wrapper { position: relative; display: inline-block; vertical-align: bottom; margin-bottom: .5em; .message-avatar-online { position: absolute; // center bottom position left: 50%; margin-left: -.615em; bottom: -.5em; &:before { .m-faBase(); .m-faContent(@fa-var-user-circle, .969em); line-height: 1; font-weight: bold; color: rgb(127, 185, 0); background: @xf-messageUserBlock--background-color; border: @xf-messageUserBlock--background-color solid 2px; border-radius: 50%; display: inline-block; } } } .message-name { font-weight: @xf-fontWeightHeavy; font-size: inherit; text-align: center; margin: 0; } .message-userTitle { font-size: @xf-fontSizeSmaller; font-weight: normal; text-align: center; margin: 0; } .message-userBanner.userBanner { display: block; margin-top: 3px; } .message-userExtras { margin-top: 3px; font-size: @xf-fontSizeSmaller; } .message--deleted { .message-userDetails { display: none; } .message-avatar .avatar { .m-avatarSize(@avatar-s); } } @media (max-width: @xf-messageSingleColumnWidth) { .message:not(.message--forceColumns) { .message-userArrow { top: auto; right: auto; bottom: -1px; left: ((@avatar-s) / 2); border: none; .m-triangleUp(xf-default(@xf-messageUserBlock--border-color, transparent), @xf-messagePadding); &:after { top: auto; right: auto; left: -(@xf-messagePadding - 1px); bottom: -@xf-messagePadding; border: none; .m-triangleUp(@xf-contentBg, @xf-messagePadding - 1px); } } &.is-mod-selected { .message-userArrow:after { border-color: transparent; border-bottom-color: @xf-inlineModHighlightColor; } } .message-user { display: flex; } .message-avatar { margin-bottom: 0; .avatar { .m-avatarSize(@avatar-s); & + .message-avatar-online { left: auto; right: 0; } } } .message-userDetails { flex: 1; min-width: 0; padding-left: @xf-messagePadding; } .message-name { text-align: left; } .message-userTitle, .message-userBanner.userBanner { display: inline-block; text-align: left; margin: 0; } .message-userExtras { display: none; } .message--deleted { .message-userDetails { display: block; } } } } // ####################### MAIN COLUMN #################### .message-content { position: relative; .js-selectToQuoteEnd { height: 0; font-size: 0; overflow: hidden; } .message--multiQuoteList & { min-height: 80px; max-height: 120px; overflow: hidden; .message-body { pointer-events: none; } } } .message-attribution { color: @xf-textColorMuted; font-size: @xf-fontSizeSmaller; padding-bottom: 3px; border-bottom: @xf-borderSize solid @xf-borderColorFaint; .m-clearFix(); &.message-attribution--plain { border-bottom: none; font-size: inherit; padding-bottom: 0; } &.message-attribution--split { display: flex; align-items: flex-end; .message-attribution-opposite { margin-left: auto; } } } .message-attribution-main { float: left; } .message-attribution-opposite { float: right; &.message-attribution-opposite--list { display: flex; .m-listPlain(); > li { margin-left: 14px; &:first-child { margin-left: 0; } } } a { color: inherit; &:hover { text-decoration: none; color: @xf-linkHoverColor; } } } .message-attribution-gadget { display: inline-block; margin: -3px -7px; padding: 3px 7px; } .message-attribution-source { font-size: @xf-fontSizeSmaller; margin-bottom: @xf-paddingSmall; } .message-attribution-user { font-weight: @xf-fontWeightHeavy; .avatar { display: none; } .attribution { display: inline; font-size: inherit; font-weight: inherit; margin: 0; } } .message-newIndicator, a.message-newIndicator { .xf-messageNewIndicator(); white-space: nowrap; } a.message-newIndicator:hover { color: @xf-messageNewIndicator--color; } .message-minorHighlight { font-size: @xf-fontSizeSmall; color: @xf-textColorFeature; } .message-fields { margin: @xf-messagePadding 0; .message--simple & { margin-top: @xf-messagePaddingSmall; margin-bottom: @xf-messagePaddingSmall; } &:last-child { margin-bottom: 0; } } .message-body { margin: @xf-messagePadding 0; font-family: @xf-fontFamilyBody; .m-clearFix(); .message--simple & { margin-top: @xf-messagePaddingSmall; margin-bottom: @xf-messagePaddingSmall; } &:last-child { margin-bottom: 0; } .message-title { // basically replicates .structItem-title font-size: @xf-fontSizeLarge; font-weight: @xf-fontWeightNormal; margin: 0 0 @xf-messagePadding 0; padding: 0; } } .message-attachments { margin: .5em 0; } .message-attachments-list { .m-listPlain(); } .message-lastEdit { margin-top: .5em; color: @xf-textColorMuted; font-size: @xf-fontSizeSmallest; text-align: right; } .message-signature { margin-top: @xf-messagePadding; .xf-messageSignature(); } .message-actionBar .actionBar-set { margin-top: @xf-messagePadding; font-size: @xf-fontSizeSmall; .message--simple & { margin-top: @xf-messagePaddingSmall; } } .message .likesBar { margin-top: @xf-messagePadding; padding: @xf-messagePaddingSmall; } .message .reactionsBar { margin-top: @xf-messagePadding; padding: @xf-messagePaddingSmall; } .message-historyTarget { margin-top: @xf-messagePadding; } .message-gradient { position: absolute; bottom: 0; left: 0; right: 0; height: 60px; .m-gradient(fade(@xf-contentBg, 0%), @xf-contentBg, @xf-contentBg, 0%, 90%); } .message-responses { margin-top: @xf-messagePaddingSmall; font-size: @xf-fontSizeSmall; .editorPlaceholder { .input { font-size: inherit; } } } .message-responseRow { margin-top: -@xf-minorBlockContent--border-width; .xf-minorBlockContent(); padding: @xf-messagePaddingSmall; // note that border radiuses are very difficult to do here due to a lot of dynamic showing/hiding &.message-responseRow--likes, &.message-responseRow--reactions { .m-transitionFadeDown(); } } @media (max-width: @xf-messageSingleColumnWidth) { .message:not(.message--forceColumns) { .message-attribution-user .avatar { display: inline-flex; .m-avatarSize((@xf-fontSizeNormal) * (@xf-lineHeightDefault)); } .message-content { // this is 1px to workaround an IE11 issue - see #139187 min-height: 1px; } } } @media (max-width: @xf-responsiveNarrow) { .message-signature { display: none; } } // MESSAGE MENU .message-menuGroup { display: inline-block; } .message-menuTrigger { display: inline-block; &:after { .m-menuGadget(); // 1em text-align: right; } &:hover:after { color: black; } } .message-menu-section { &--editDelete { .menu-linkRow { font-weight: @xf-fontWeightHeavy; font-size: @xf-fontSizeNormal; } } } .message-menu-link { &--delete i:after { .m-faContent(@fa-var-trash-alt); } &--edit i:after { .m-faContent(@fa-var-edit); } &--report i:after { .m-faContent(@fa-var-frown); } &--warn i:after { .m-faContent(@fa-var-exclamation-triangle); } &--spam i:after { .m-faContent(@fa-var-ban); } &--ip i:after { .m-faContent(@fa-var-sitemap); } &--history i:after { .m-faContent(@fa-var-history); } &--follow i:after { .m-faContent(@fa-var-user-plus); } &--ignore i:after { .m-faContent(@fa-var-user-times); } &--share i:after { .m-faContent(@fa-var-share-alt); } } // ############################# CUSTOM FOR MESSAGE VARIANTS ############## .message-articleUserInfo { .xf-messageUserBlock(no-border); border-top: @xf-messageUserBlock--border-width solid @xf-messageUserBlock--border-color; &:last-child { .m-borderBottomRadius(@block-borderRadius-inner); } .contentRow-figure { width: @xf-messageUserBlockWidth; text-align: center; } .contentRow-main { padding-left: 2 * (@xf-messagePadding); text-align: left; } @media (max-width: @xf-messageSingleColumnWidth) { .contentRow-figure { width: auto; } .contentRow-main { padding-left: @xf-paddingLarge; } } } .message-articleWrittenBy { color: @xf-textColorMuted; font-size: @xf-fontSizeSmall; } .message-articleUserName { font-weight: @xf-fontWeightHeavy; font-size: @xf-fontSizeLarger; margin: 0; display: inline; } .message-articleUserBlurb, .message-articleUserBlurb div { font-size: @xf-fontSizeSmall; display: inline; } .message-articleUserAbout { font-size: @xf-fontSizeSmall; margin: .5em 0; } .message-articleUserBanners .userBanner { margin-bottom: 3px; } .message-articleUserStats { font-size: @xf-fontSizeSmall; color: @xf-textColorMuted; } @media (max-width: @xf-responsiveNarrow) { .message-articleUserStats { display: none; } } // ############################# COMMENTS ############### .comment { } .comment-inner { display: table; table-layout: fixed; width: 100%; } .comment-avatar { display: table-cell; width: 24px; vertical-align: top; .avatar, img { vertical-align: bottom; } } .comment-main { display: table-cell; padding-left: @xf-messagePadding; vertical-align: top; } .comment-contentWrapper { margin-bottom: @xf-messagePaddingSmall; } .comment-user { font-weight: @xf-fontWeightHeavy; } .comment-body { display: inline; } .comment-note { color: @xf-textColorMuted; font-size: @xf-fontSizeSmallest; } .comment-input { display: block; height: 2.34em; margin-bottom: @xf-messagePaddingSmall; } .comment-actionBar .actionBar-set { margin-top: @xf-messagePaddingSmall; color: @xf-textColorMuted; } .comment-likes, .comment-reactions { .m-transitionFadeDown(); margin-top: @xf-messagePaddingSmall; font-size: @xf-fontSizeSmaller; } // ################################## MESSAGE QUICK REPLY ADDITIONS ############# .formSubmitRow.formSubmitRow--messageQr { .formSubmitRow-controls { text-align: center; padding-left: 0; padding-right: 0; margin-left: @xf-messagePadding; margin-right: @xf-messagePadding; @media (max-width: @xf-formResponsive) { text-align: right; } } } // ################################## MESSAGE NOTICES ############################# .messageNotice { margin: @xf-messagePaddingSmall 0; padding: @xf-messagePaddingSmall @xf-messagePadding; .xf-contentAccentBase(); font-size: @xf-fontSizeSmaller; border-left: @xf-borderSizeMinorFeature solid @xf-borderColorAttention; &.messageNotice--nested { border-left-width: @xf-borderSize; } &:not(.messageNotice--highlighted) { a, a:hover { .xf-contentAccentLink(); } } &:before { display: inline-block; .m-faBase(); padding-right: .2em; font-size: 125%; color: @xf-textColorAttention; } &.messageNotice--highlighted { .xf-contentHighlightBase(); border-left-color: @xf-borderColorFeature; &:before { color: @xf-textColorFeature; } } &.messageNotice--deleted:before { .m-faContent(@fa-var-trash-alt); } // , .88em &.messageNotice--moderated:before { .m-faContent(@fa-var-shield); } // , 1em &.messageNotice--warning:before { .m-faContent(@fa-var-exclamation-triangle); } // , 1em &.messageNotice--ignored:before { .m-faContent(@fa-var-microphone-slash); } // , 1.25em } // ##################### MESSAGE VARIANTS/RESPONSIVE ################## @media (min-width: @xf-responsiveEdgeSpacerRemoval) { .block:not(.block--messages) { @{block-noStripSel} > .block-body:first-child > .message:first-child, .block-topRadiusContent.message, .block-topRadiusContent > .message:first-child { .message-inner:first-of-type .message-cell { &:first-child { border-top-left-radius: @block-borderRadius-inner; } &:last-child { border-top-right-radius: @block-borderRadius-inner; } } } @{block-noStripSel} > .block-body:last-child > .message:last-child, .block-bottomRadiusContent.message, .block-bottomRadiusContent > .message:last-child { .message-inner:last-of-type .message-cell { &:first-child { border-bottom-left-radius: @block-borderRadius-inner; } &:last-child { border-bottom-right-radius: @block-borderRadius-inner; } } } } } .block--messages { .block-container { background: none; border: none; } .message, .block-row { background: rgb(38, 45, 57); border-radius: @xf-blockBorderRadius; + .message, + .block-row { margin-top: @xf-blockPaddingV; } } .block-filterBar { .xf-blockBorder(); border-radius: @xf-blockBorderRadius; margin-bottom: @xf-blockPaddingV; } .message-spacer { + .message, + .block-row { margin-top: @xf-blockPaddingV; } } .message-inner .message-cell { border-radius: 0; } .message-inner:first-of-type .message-cell { &:first-child { border-top-left-radius: @block-borderRadius-inner; } &:last-child { border-top-right-radius: @block-borderRadius-inner; } } .message-inner:last-of-type .message-cell { &:first-child { border-bottom-left-radius: @block-borderRadius-inner; } &:last-child { border-bottom-right-radius: @block-borderRadius-inner; } } @media (max-width: @xf-messageSingleColumnWidth) { .message-inner { .message-cell { border-radius: 0; } &:first-of-type .message-cell:first-child { border-top-left-radius: @block-borderRadius-inner; border-top-right-radius: @block-borderRadius-inner; } &:last-of-type .message-cell:last-child { border-bottom-left-radius: @block-borderRadius-inner; border-bottom-right-radius: @block-borderRadius-inner; } } .message--simple .message-cell--user + .message-cell { border-radius: 0; border-top-left-radius: @block-borderRadius-inner; border-top-right-radius: @block-borderRadius-inner; } } @media (max-width: @xf-responsiveEdgeSpacerRemoval) { .message, .block-row, .block-filterBar { border-left: none; border-right: none; border-radius: 0; } .message .message-inner .message-cell { border-radius: 0; &:first-child, &:last-child { border-radius: 0; } } .message--simple .message-cell--user + .message-cell { border-radius: 0; } } } .message--article { &.is-moderated { background: @xf-contentHighlightBg; } &.is-deleted { opacity: .65; } } // article preview view for thread list .message--articlePreview { display: flex; flex-direction: column; min-width: 0; margin-bottom: @xf-paddingLarge; &:last-child { margin-bottom: 0; } .articlePreview-main { display: flex; flex-direction: column; } .articlePreview-image { flex: 0 0 auto; align-self: center; width: 100%; max-width: 750px; background: center / cover @xf-contentAltBg no-repeat; text-decoration: none; &:after { content: ''; display: block; padding-bottom: 75%; } & + .articlePreview-text { .bbImageWrapper, .bbImage { display: none; } .bbWrapper { .m-fadeOutLines(8, @xf-contentBg); } } } .articlePreview-text { flex: 1 1 auto; display: flex; min-width: 0; flex-direction: column; padding: @xf-messagePadding; } .articlePreview-title { margin: 0; font-size: @xf-fontSizeLarge; } .articlePreview-content { flex: 1 1 auto; } .articlePreview-links { text-align: right; padding-top: @xf-blockPaddingV; } .articlePreview-statuses { float: left; display: flex; list-style: none; margin: 0; padding: 0; > li { margin-right: 8px; } .message-newIndicator { font-size: @xf-fontSizeSmall; } } .articlePreview-footer { padding: 0 @xf-blockPaddingH; } .articlePreview-meta { display: flex; align-items: center; border-top: solid 1px @xf-borderColor; padding: @xf-blockPaddingV 0; color: @xf-textColorMuted; font-size: @xf-fontSizeSmall; > li { margin-right: @xf-blockPaddingH; &:last-child { margin-right: 0; } } } .articlePreview-replies { white-space: nowrap; } .articlePreview-by, .articlePreview-repliesLabel { display: none; } } .block--articles.block--messages.block--expanded { .article-title { // from .p-title-value margin: 0 0 5px; font-size: @xf-fontSizeLargest; font-weight: @xf-fontWeightNormal; } .message-snippet-link { margin-top: .5em; text-align: center; } .message + .message { margin-top: @xf-paddingLargest; } } // expanded article grid behavior @supports (display: grid) { @media (min-width: @xf-responsiveMedium) { .block--previews .block-body { display: grid; gap: @xf-paddingLarge; grid-template-rows: auto; grid-template-columns: repeat(2, 1fr); grid-template-areas: "a a"; > .message:first-of-type:last-of-type { grid-area: a; } > .message--articlePreview { margin-bottom: 0; // first five &:nth-of-type(-n+5) { .articlePreview-title { font-size: @xf-fontSizeLarger; } .articlePreview-image { max-width: none; &:after { padding-bottom: 60%; } } .articlePreview-meta { .articlePreview-by { display: block; } } } // first &:first-of-type { grid-area: a; .articlePreview-title { font-size: @xf-fontSizeLargest; } .articlePreview-meta { border-top: none; } .articlePreview-main { flex-direction: row-reverse; } .articlePreview-image { width: 50%; } } } } } // max width multi-columns .m-maxPreviewColumns() { .block--previews .block-body { grid-template-columns: repeat(4, 1fr); grid-template-areas: "a a a a" "b_1 b_1 b_2 b_2" "b_3 b_3 b_4 b_4"; > .message:first-of-type:last-of-type { grid-area: a; } > .message--articlePreview { &:nth-of-type(1) { grid-area: a; } &:nth-of-type(2) { grid-area: b_1; } &:nth-of-type(3) { grid-area: b_2; } &:nth-of-type(4) { grid-area: b_3; } &:nth-of-type(5) { grid-area: b_4; } } } } .p-body-main:not(.p-body-main--withSidebar) { @media (min-width: @xf-responsiveWide) { .m-maxPreviewColumns(); } } .p-body-main--withSidebar { @media (min-width: (@xf-responsiveWide + @xf-sidebarWidth)) { .m-maxPreviewColumns(); } } } ]]>
</template>
<template title="message_macros" type="public" addon_id="XF" version_id="2020470" version_string="2.2.4">
<![CDATA[ <xf:macro name="user_info" arg-user="!" arg-fallbackName=""> <section itemscope itemtype="https://schema.org/Person" class="message-user"> <div class="message-avatar {{ ($xf.options.showMessageOnlineStatus && $user && $user.isOnline()) ? 'message-avatar--online' : '' }}"> <div class="message-avatar-wrapper"> <xf:avatar user="$user" size="m" defaultname="{$fallbackName}" itemprop="image" /> <xf:if is="$xf.options.showMessageOnlineStatus && $user && $user.isOnline()"> <span class="message-avatar-online" tabindex="0" data-xf-init="tooltip" data-trigger="auto" title="{{ phrase('online_now')|for_attr }}"></span> </xf:if> </div> </div> <div class="message-userDetails"> <h4 class="message-name"><xf:username user="$user" rich="true" defaultname="{$fallbackName}" itemprop="name" /></h4> <xf:usertitle user="$user" tag="h5" class="message-userTitle" banner="true" itemprop="jobTitle" /> <xf:userbanners user="$user" tag="div" class="message-userBanner" itemprop="jobTitle" /> </div> <xf:if is="$user.user_id"> <xf:set var="$extras" value="{{ property('messageUserElements') }}" /> <xf:if contentcheck="true"> <div class="message-userExtras"> <xf:contentcheck> <xf:if is="$extras.register_date"> <dl class="pairs pairs--justified"> <div class="post-row"> <div class="post-icon"> <i class="fas fa-calendar-alt"></i> </div> <div class="post-row-inner"> {{ phrase('joined') }}:<span class="ml-auto">{{ date($user.register_date) }}</span> </div> </div> </dl> </xf:if> <xf:if is="$extras.message_count"> <dl class="pairs pairs--justified"> <div class="post-row"> <div class="post-icon"> <i class="fas fa-reply-all"></i> </div> <div class="post-row-inner"> {{ phrase('messages') }}:<span class="ml-auto">{$user.message_count|number}</span> </div> </div> </dl> </xf:if> <xf:if is="$extras.solutions AND $user.question_solution_count"> <dl class="pairs pairs--justified"> <div class="post-row"> <div class="post-icon"> <i class="fas fa-check-circle"></i> </div> <div class="post-row-inner"> {{ phrase('solutions') }}:<span class="ml-auto">{$user.question_solution_count|number}</span> </div> </div> </dl> </xf:if> <xf:if is="$extras.reaction_score"> <dl class="pairs pairs--justified"> <div class="post-row"> <div class="post-icon"> <i class="fas fa-smile-beam"></i> </div> <div class="post-row-inner"> {{ phrase('reaction_score') }}:<span class="ml-auto">{$user.reaction_score|number}</span> </div> </div> </dl> </xf:if> <xf:if is="$extras.trophy_points && $xf.options.enableTrophies"> <dl class="pairs pairs--justified"> <div class="post-row"> <div class="post-icon"> <i class="fas fa-clipboard-check"></i> </div> <div class="post-row-inner"> {{ phrase('points') }}:<span class="ml-auto">{$user.trophy_points|number}</span> </div> </div> </dl> </xf:if> <xf:if is="$extras.age && $user.Profile.age"> <dl class="pairs pairs--justified"> <div class="post-row"> <div class="post-icon"> <i class="fab fa-pagelines"></i> </div> <div class="post-row-inner"> {{ phrase('age') }}:<span class="ml-auto">{$user.Profile.age}</span> </div> </div> </dl> </xf:if> <xf:if is="$extras.location && $user.Profile.location"> <dl class="pairs pairs--justified"> <div class="post-row"> <div class="post-icon"> <i class="fas fa-location"></i> </div> <div class="post-row-inner"> {{ phrase('location') }}: <span class="ml-auto"> <xf:if is="$xf.options.geoLocationUrl"> <a href="{{ link('misc/location-info', '', {'location': $user.Profile.location}) }}" rel="nofollow noreferrer" target="_blank" class="u-concealed">{$user.Profile.location}</a> <xf:else /> {$user.Profile.location} </xf:if> </span> </div> </div> </dl> </xf:if> <xf:if is="$extras.website && $user.Profile.website"> <dl class="pairs pairs--justified"> <div class="post-row"> <div class="post-icon"> <i class="fas fa-globe-europe"></i> </div> <div class="post-row-inner"> {{ phrase('website') }}:<span class="ml-auto"><a href="{$user.Profile.website}" rel="nofollow" target="_blank">{$user.Profile.website|url('host', phrase('visit_site'))}</a></span> </div> </div> </dl> </xf:if> <xf:if is="$extras.custom_fields"> <xf:macro template="custom_fields_macros" name="custom_fields_values" arg-type="users" arg-group="personal" arg-set="{$user.Profile.custom_fields}" arg-additionalFilters="{{ ['message'] }}" arg-valueClass="pairs pairs--justified" /> <xf:if is="$user.canViewIdentities()"> <xf:macro template="custom_fields_macros" name="custom_fields_view" arg-type="users" arg-group="contact" arg-set="{$user.Profile.custom_fields}" arg-additionalFilters="{{ ['message'] }}" arg-valueClass="pairs pairs--justified" /> </xf:if> </xf:if> </xf:contentcheck> </div> </xf:if> </xf:if> <span class="message-userArrow"></span> </section> </xf:macro> <xf:macro name="user_info_simple" arg-user="!" arg-fallbackName=""> <header itemscope itemtype="https://schema.org/Person" class="message-user"> <meta itemprop="name" content="{{ $user.username ?: $fallbackName }}"> <div class="message-avatar"> <div class="message-avatar-wrapper"> <xf:avatar user="$user" size="s" defaultname="{$fallbackName}" itemprop="image" /> </div> </div> <span class="message-userArrow"></span> </header> </xf:macro> <xf:macro name="attachments" arg-attachments="!" arg-message="!" arg-canView="!"> <xf:if contentcheck="true"> <xf:css src="attachments.less" /> <section class="message-attachments"> <h4 class="block-textHeader">{{ phrase('attachments') }}</h4> <ul class="attachmentList"> <xf:contentcheck> <xf:foreach loop="$attachments" value="$attachment" if="!$message.isAttachmentEmbedded($attachment)"> <xf:macro template="attachment_macros" name="attachment_list_item" arg-attachment="{$attachment}" arg-canView="{$canView}" /> </xf:foreach> </xf:contentcheck> </ul> </section> </xf:if> </xf:macro> <xf:macro name="signature" arg-user="!"> <xf:if is="$xf.visitor.Option.content_show_signature AND $user.Profile.signature"> <xf:if contentcheck="true"> <aside class="message-signature"> <xf:contentcheck> {{ bb_code($user.Profile.signature, 'user:signature', $user) }} </xf:contentcheck> </aside> </xf:if> </xf:if> </xf:macro> ]]>
</template>
<template title="template_pnavStaffBar" type="public" addon_id="" version_id="0" version_string="">
<![CDATA[ <xf:css src="template_pnavStaffBar.less" /> <xf:if contentcheck="true"> <xf:contentcheck> <xf:if is="$xf.visitor.is_moderator && $xf.session.unapprovedCounts.total"> <a href="{{ link('approval-queue') }}" class="p-navStaffBar p-navgroup-link p-navgroup-link-staffbar p-navgroup-link--iconic p-navgroup-link--approvalqueue badgeContainer badgeContainer--visible {{ ($xf.visitor.is_moderator && $xf.session.unapprovedCounts.total) ? ' badgeContainer--highlighted' : '' }}" data-badge="{$xf.session.unapprovedCounts.total|number}" title="{{ phrase('approval_queue') }}" aria-label="{{ phrase('approval_queue')|for_attr }}" aria-expanded="false" aria-haspopup="true"> <i aria-hidden="true"></i> <span class="p-navgroup-linkText">{{ phrase('approval_queue') }} </span> </a> </xf:if> <xf:if is="$xf.visitor.is_moderator && !$xf.options.reportIntoForumId && $xf.session.reportCounts.total"> <a href="{{ link('reports') }}" class="p-navStaffBar p-navgroup-link p-navgroup-link--iconic p-navgroup-link-staffbar p-navgroup-link--reports badgeContainer badgeContainer--visible {{ ($xf.session.reportCounts.total && ($xf.session.reportCounts.lastBuilt > $xf.session.reportLastRead) OR $xf.session.reportCounts.assigned) ? ' badgeContainer--highlighted' : '' }}" data-badge="{{ $xf.session.reportCounts.assigned ? $xf.session.reportCounts.assigned|number . ' / ' . $xf.session.reportCounts.total|number : $xf.session.reportCounts.total|number }}" title="{{ $xf.session.reportCounts.lastBuilt ? phrase('last_report_update:')|for_attr . ' ' . date_time($xf.session.reportCounts.lastBuilt) : '' }}" aria-label="{{ phrase('reports')|for_attr }}" aria-expanded="false" aria-haspopup="true"> <i aria-hidden="true"></i> <span class="p-navgroup-linkText">{{ phrase('reports') }} </span> </a> </xf:if> <xf:if contentcheck="true"> <a class="p-navStaffBar p-navgroup-link p-navgroup-link-staffbar p-navgroup-link--iconic p-navgroup-link--moderatortools" data-xf-click="menu" data-xf-key="alt+m" role="button" tabindex="0" aria-expanded="false" aria-haspopup="true" title="{{ phrase('moderator') }}" aria-label="{{ phrase('approval_queue')|for_attr }}" aria-expanded="false" aria-haspopup="true"> <i aria-hidden="true"></i> <span class="p-navgroup-linkText">{{ phrase('admin_navigation.tools') }} </span> </a> <div class="menu menu--structural" data-menu="menu" aria-hidden="true"> <div class="menu-content"> <h4 class="menu-header">{{ phrase('admin_navigation.tools') }}</h4> <xf:contentcheck> <!--[XF:mod_tools_menu:top]--> <xf:if is="$xf.visitor.is_admin"> <a href="{{ base_url('admin.php') }}" class="menu-linkRow" title="{{ phrase('admin_control_panel') }}">{{ phrase('admin_control_panel') }}</a> </xf:if> <xf:if is="$xf.visitor.is_moderator"> <a href="{{ link('approval-queue') }}" class="menu-linkRow">{{ phrase('approval_queue') }}</a> </xf:if> <xf:if is="$xf.visitor.is_moderator && !$xf.options.reportIntoForumId"> <a href="{{ link('reports') }}" class="menu-linkRow" title="{{ $xf.session.reportCounts.lastBuilt ? phrase('last_report_update:')|for_attr . ' ' . date_time($xf.session.reportCounts.lastBuilt) : '' }}">{{ phrase('reports') }}</a> </xf:if> <!--[XF:mod_tools_menu:bottom]--> </xf:contentcheck> </div> </div> </xf:if> <xf:if is="$xf.visitor.is_admin"> <a href="{{ base_url('admin.php') }}" class="p-navStaffBar p-navgroup-link p-navgroup-link-staffbar p-navgroup-link--iconic p-navgroup-link--admincp" target="_blank" title="{{ phrase('admin') }}" aria-label="{{ phrase('reports')|for_attr }}" aria-expanded="false" aria-haspopup="true"> <i aria-hidden="true"></i> <span class="p-navgroup-linkText">{{ phrase('admin') }} </span></a> </xf:if> </xf:contentcheck> </xf:if> ]]>
</template>
<template title="template_pnavStaffBar.less" type="public" addon_id="" version_id="0" version_string="">
<![CDATA[ .p-staffBar {display: none;} .p-navStaffBar {display: inline-block;} @media (max-width: @xf-responsiveNarrow) { .p-navStaffBar {display: none;} .p-staffBar {display: inline-block;} } .p-navgroup-link { &.p-navgroup-link--approvalqueue i:after {.m-faContent(@fa-var-user-check, 1em);} &.p-navgroup-link--reports i:after {.m-faContent(@fa-var-siren, 1em);} &.p-navgroup-link--moderatortools i:after {.m-faContent(@fa-var-tools, 1em);} &.p-navgroup-link--admincp i:after {.m-faContent(@fa-var-cogs, 1em);} &.p-navgroup-link-staffbar { &.p-navgroup-link--iconic .p-navgroup-linkText, &.p-navgroup-link--textual i{display: none;} } } .p-navgroup-link-staffbar { opacity: .6; &:hover, &.badgeContainer--highlighted, &.is-menuOpen {opacity: 1;} } .p-navgroup-link--admincp{display:none} ]]>
</template>
</templates>
<properties>
<property property_name="blockBorder" group_name="block" title="Block border framework" description="Virtually all blocks have their borders styled with these settings" property_type="css" value_type="" depends_on="" value_group="" display_order="20000" css_components="border,extra" addon_id="XF">
<value>{ "border-width": "@xf-borderSize", "border-top-color": "@xf-borderColorLight", "border-right-color": "@xf-borderColor", "border-bottom-color": "@xf-borderColorHeavy", "border-left-color": "@xf-borderColor" }</value>
</property>
<property property_name="blockBorderRadius" group_name="block" title="Block border radius" description="Controls the size of the curve on block border corners" property_type="value" value_type="unit" depends_on="" value_group="borderRadius" display_order="1000" addon_id="XF">
<value>"0px"</value>
</property>
<property property_name="blockFilterBar" group_name="block" title="Block filter bar" description="When the content of a block can be filtered, the controls to do so are styled here" property_type="css" value_type="" depends_on="" value_group="" display_order="20800" css_components="text,background,border,extra" addon_id="XF">
<value>{ "font-size": "@xf-fontSizeSmall", "color": "@xf-majorHeadingTextColor", "background-color": "rgb(36, 42, 53)", "border-bottom-width": "@xf-borderSize", "border-bottom-color": "@xf-borderColorHeavy" }</value>
</property>
<property property_name="blockFooter" group_name="block" title="Block footer" description="When information needs to be conveyed in a footer element for a block, its style is controlled here" property_type="css" value_type="" depends_on="" value_group="" display_order="21200" css_components="text,background,border,extra" addon_id="XF">
<value>{ "font-size": "@xf-fontSizeSmaller", "color": "@xf-blockFooterTextColor", "background-color": "rgb(36, 42, 53)", "border-top-width": "@xf-borderSize", "border-top-color": "@xf-borderColorLight", "extra": "padding: 6px 10px;" }</value>
</property>
<property property_name="blockHeader" group_name="block" title="Block header" description="Blocks often have title bars at their tops, which are styled here" property_type="css" value_type="" depends_on="" value_group="" display_order="20100" css_components="text,background,border,extra" addon_id="XF">
<value>{ "font-size": "@xf-fontSizeLarger", "color": "@xf-textColor", "background-color": "rgb(36, 42, 53)", "border-top-width": "3px", "border-top-color": "var(--basecolor)" }</value>
</property>
<property property_name="blockMinorHeader" group_name="block" title="Block minor header" description="Sub-headings in blocks use these settings" property_type="css" value_type="" depends_on="" value_group="" display_order="20400" css_components="text,background,border,extra" addon_id="XF">
<value>{ "font-size": "@xf-fontSizeLarge", "color": "@xf-minorHeadingTextColor", "background-color": "rgb(36, 42, 53)", "border-top-width": "3px", "border-top-color": "var(--basecolor)", "extra": "font-weight: 600;" }</value>
</property>
<property property_name="blockTabHeaderSelected" group_name="block" title="Block tab header - selected tab" description="The selected tab in multi-part headers takes additional styling from here" property_type="css" value_type="" depends_on="" value_group="" display_order="20300" css_components="text,background,border_color_simple,extra" addon_id="XF">
<value>{ "color": "@xf-paletteColor1", "border-color": "var(--basecolor)" }</value>
</property>
<property property_name="blockTabHeaderTextColor" group_name="color" title="Block tab header text color" description="" property_type="value" value_type="color" depends_on="" value_group="blockTabHeader" display_order="6600" addon_id="XF">
<value>"@xf-paletteColor2"</value>
</property>
<property property_name="borderColor" group_name="color" title="Border color" description="Structural borders around blocks of content generally use this color" property_type="value" value_type="color" depends_on="" value_group="borderBasic" display_order="4000" addon_id="XF">
<value>"transparent"</value>
</property>
<property property_name="borderColorFaint" group_name="color" title="Faint border color" description="" property_type="value" value_type="color" depends_on="" value_group="borderBasic" display_order="4100" addon_id="XF">
<value>"transparent"</value>
</property>
<property property_name="borderColorHeavy" group_name="color" title="Heavy border color" description="" property_type="value" value_type="color" depends_on="" value_group="borderBasic" display_order="4300" addon_id="XF">
<value>"transparent"</value>
</property>
<property property_name="borderColorHighlight" group_name="color" title="Highlight border color" description="" property_type="value" value_type="color" depends_on="" value_group="borderOther" display_order="5000" addon_id="XF">
<value>"transparent"</value>
</property>
<property property_name="borderColorLight" group_name="color" title="Light border color" description="" property_type="value" value_type="color" depends_on="" value_group="borderBasic" display_order="4200" addon_id="XF">
<value>"transparent"</value>
</property>
<property property_name="buttonBase" group_name="button" title="Button base" description="Defines the styling for the basic elements that are common to all text-based buttons" property_type="css" value_type="" depends_on="" value_group="" display_order="20000" css_components="text,border_radius,padding,extra" addon_id="XF">
<value>{ "font-size": "@xf-fontSizeSmall", "padding-top": "5px", "padding-right": "10px", "padding-bottom": "5px", "padding-left": "10px", "extra": "text-align: center;" }</value>
</property>
<property property_name="buttonTextColor" group_name="color" title="Default button text color" description="" property_type="value" value_type="color" depends_on="" value_group="buttons" display_order="8100" addon_id="XF">
<value>"@xf-paletteColor1"</value>
</property>
<property property_name="chromeBg" group_name="color" title="Page chrome background color" description="" property_type="value" value_type="color" depends_on="" value_group="chrome" display_order="6000" addon_id="XF">
<value>"rgb(38, 45, 57)"</value>
</property>
<property property_name="chromeTextColor" group_name="color" title="Page chrome text color" description="" property_type="value" value_type="color" depends_on="" value_group="chrome" display_order="6050" addon_id="XF">
<value>"@xf-paletteColor2"</value>
</property>
<property property_name="contentAccentBg" group_name="color" title="Accented content background color" description="This background color is used for further differentiation from regular content" property_type="value" value_type="color" depends_on="" value_group="contentBackground" display_order="2400" addon_id="XF">
<value>"rgb(36, 42, 53)"</value>
</property>
<property property_name="contentAltBg" group_name="color" title="Alternate content background color" description="In order to differentiate it, some content will be presented on this alternative background" property_type="value" value_type="color" depends_on="" value_group="contentBackground" display_order="2200" addon_id="XF">
<value>"rgb(36, 42, 53)"</value>
</property>
<property property_name="contentHighlightBg" group_name="color" title="Highlighted content background color" description="When the standard background color is highlighted or selected, it will use this color" property_type="value" value_type="color" depends_on="" value_group="contentBackground" display_order="2300" addon_id="XF">
<value>"rgb(38, 45, 57)"</value>
</property>
<property property_name="editorButtonColor" group_name="rte" title="Editor button icon color" description="Color of the icons in the toolbar" property_type="value" value_type="color" depends_on="" value_group="buttons" display_order="2101" addon_id="XF">
<value>"rgb(206, 202, 202)"</value>
</property>
<property property_name="editorButtonHoverBg" group_name="rte" title="Editor button hover background" description="Color for button background when hovered" property_type="value" value_type="color" depends_on="" value_group="buttons" display_order="2112" addon_id="XF">
<value>"rgb(36, 42, 53)"</value>
</property>
<property property_name="editorButtonSelectedBg" group_name="rte" title="Editor button selected background" description="Color for button background when pressed and held, or when a sub-menu is active" property_type="value" value_type="color" depends_on="" value_group="buttons" display_order="2121" addon_id="XF">
<value>"rgb(36, 42, 53)"</value>
</property>
<property property_name="editorSelectionBg" group_name="rte" title="Editor selection background" description="Background color for text that has been selected in the editor" property_type="value" value_type="color" depends_on="" value_group="selectedContent" display_order="1101" addon_id="XF">
<value>"@xf-inputBgColor"</value>
</property>
<property property_name="editorToolsBg" group_name="rte" title="Editor toolbar background" description="Background for the toolbar when the editor is not focused" property_type="value" value_type="string" depends_on="" value_group="toolbar" display_order="1501" addon_id="XF">
<value>"rgb(36, 42, 53)"</value>
</property>
<property property_name="editorToolsFocusBg" group_name="rte" title="Editor toolbar background when focused" description="The background of the toolbar when the editor is focused" property_type="value" value_type="string" depends_on="" value_group="toolbar" display_order="1502" addon_id="XF">
<value>"rgb(36, 42, 53)"</value>
</property>
<property property_name="errorBg" group_name="color" title="Error message background" description="" property_type="value" value_type="color" depends_on="" value_group="errorMessage" display_order="10410" addon_id="XF">
<value>"rgb(36, 42, 53)"</value>
</property>
<property property_name="fontFamilyBody" group_name="fonts" title="Body Text Font" description="This font is used for the text of messages etc." property_type="value" value_type="string" depends_on="" value_group="font" display_order="200" addon_id="XF">
<value>"'Segoe UI','Helvetica Neue',Helvetica,Roboto,Oxygen,Ubuntu,Cantarell,'Fira Sans','Droid Sans',sans-serif"</value>
</property>
<property property_name="fontFamilyUi" group_name="fonts" title="User Interface Font" description="The font list for your main text" property_type="value" value_type="string" depends_on="" value_group="font" display_order="100" addon_id="XF">
<value>"'Segoe UI','Helvetica Neue',Helvetica,Roboto,Oxygen,Ubuntu,Cantarell,'Fira Sans','Droid Sans',sans-serif"</value>
</property>
<property property_name="inlineModHighlightColor" group_name="color" title="Inline moderation highlight color" description="When content is selected for inline moderation, its background color will be replaced with this" property_type="value" value_type="color" depends_on="" value_group="contentBackground" display_order="2500" addon_id="XF">
<value>"rgb(28, 62, 92)"</value>
</property>
<property property_name="inputBgColor" group_name="color" title="Text input box background color" description="" property_type="value" value_type="color" depends_on="" value_group="input" display_order="8500" addon_id="XF">
<value>"rgb(36, 42, 53)"</value>
</property>
<property property_name="inputFocus" group_name="input" title="Form input - focused" description="These rules are applied to text boxes when they are selected for input" property_type="css" value_type="" depends_on="" value_group="" display_order="20100" css_components="text,background,border,extra" addon_id="XF">
<value>{ "background-color": "@xf-inputFocusBgColor" }</value>
</property>
<property property_name="inputFocusBgColor" group_name="color" title="Focused text box background color" description="" property_type="value" value_type="color" depends_on="" value_group="input" display_order="8600" addon_id="XF">
<value>"rgb(36, 42, 53)"</value>
</property>
<property property_name="inputTextColor" group_name="color" title="Text input box text color" description="" property_type="value" value_type="color" depends_on="" value_group="input" display_order="8499" addon_id="XF">
<value>"@xf-textColor"</value>
</property>
<property property_name="link" group_name="page" title="Links" description="These are the styling rules for basic hyperlinks throughout the system" property_type="css" value_type="" depends_on="" value_group="" display_order="20000" css_components="text,extra" addon_id="XF">
<value>{ "color": "@xf-linkColor", "text-decoration": "none", "extra": "text-decoration:none;" }</value>
</property>
<property property_name="linkColor" group_name="color" title="Link color" description="Basic hyperlinks on standard background colors will use this style" property_type="value" value_type="color" depends_on="" value_group="links" display_order="1000" addon_id="XF">
<value>"rgb(255, 255, 255)"</value>
</property>
<property property_name="linkHover" group_name="page" title="Links - hovered" description="When basic links are hovered, they use this set of rules for their styling" property_type="css" value_type="" depends_on="" value_group="" display_order="20100" css_components="text,extra" addon_id="XF">
<value>{ "color": "rgba(253, 253, 253, 0.75)", "text-decoration": "underline", "extra": "text-decoration:none;\ntransition: 0.5s;" }</value>
</property>
<property property_name="linkHoverColor" group_name="color" title="Link hover color" description="Basic hyperlinks will turn this color when hovered" property_type="value" value_type="color" depends_on="" value_group="links" display_order="1100" addon_id="XF">
<value>"rgb(255, 255, 255)"</value>
</property>
<property property_name="majorHeadingBg" group_name="color" title="Major heading background color" description="" property_type="value" value_type="color" depends_on="" value_group="heading" display_order="6100" addon_id="XF">
<value>"@xf-contentHighlightBg"</value>
</property>
<property property_name="memberHeaderBlurbContainerBanner" group_name="member" title="Member profile header - blurb container (with banner)" description="" property_type="css" value_type="" depends_on="" value_group="" display_order="20201" css_components="text,background,border_radius,padding,extra" addon_id="XF">
<value>{ "color": "@xf-textColor", "background-color": "rgba(0, 0, 0, 0.4)", "border-radius": "@xf-borderRadiusMedium", "padding": "@xf-paddingMedium", "extra": "margin-top: @xf-paddingMedium;\ntext-shadow: 0 0 1px black;" }</value>
</property>
<property property_name="memberHeaderName" group_name="member" title="Member profile header - name" description="The styling of the name of the member whose page is being viewed is controlled here" property_type="css" value_type="" depends_on="" value_group="" display_order="20100" css_components="text,extra" addon_id="XF">
<value>{ "font-size": "@xf-fontSizeLargest", "color": "@xf-textColor" }</value>
</property>
<property property_name="memberHeaderNameBanner" group_name="member" title="Member profile header - name (with banner)" description="Styling for the name of the user whose tooltip is being displayed if the user has uploaded a profile banner" property_type="css" value_type="" depends_on="" value_group="" display_order="20101" css_components="text,extra" addon_id="XF">
<value>{ "color": "@xf-textColor" }</value>
</property>
<property property_name="memberTooltipBlurbContainerBanner" group_name="member" title="Member tooltip header - blurb container (with banner)" description="" property_type="css" value_type="" depends_on="" value_group="" display_order="20501" css_components="text,background,border_radius,padding,extra" addon_id="XF">
<value>{ "color": "@xf-textColor", "background-color": "rgba(0, 0, 0, 0.4)", "border-radius": "@xf-borderRadiusMedium", "padding": "@xf-paddingMedium", "extra": "margin-top: @xf-paddingMedium;\ntext-shadow: 0 0 1px black;" }</value>
</property>
<property property_name="memberTooltipName" group_name="member" title="Member tooltip header - name" description="Styling for the name of the user whose tooltip is being displayed" property_type="css" value_type="" depends_on="" value_group="" display_order="20400" css_components="text,extra" addon_id="XF">
<value>{ "font-size": "@xf-fontSizeLargest", "color": "@xf-textColor" }</value>
</property>
<property property_name="memberTooltipNameBanner" group_name="member" title="Member tooltip header - name (with banner)" description="Styling for the name of the user whose tooltip is being displayed if the user has uploaded a profile banner" property_type="css" value_type="" depends_on="" value_group="" display_order="20401" css_components="text,extra" addon_id="XF">
<value>{ "color": "@xf-textColor" }</value>
</property>
<property property_name="menu" group_name="menu" title="Menu" description="Controls the main block of all popup menus" property_type="css" value_type="" depends_on="" value_group="" display_order="20000" css_components="text,background,border_width_simple,border_color_simple,extra" addon_id="XF">
<value>{ "font-size": "@xf-fontSizeSmall", "color": "@xf-textColor", "background-color": "@xf-contentBg" }</value>
</property>
<property property_name="menuFeatureBorderColor" group_name="menu" title="Menu feature border color" description="Popup menus have a thick feature border on their upper edge, the styling of which is controlled here" property_type="value" value_type="color" depends_on="" value_group="" display_order="100" addon_id="XF">
<value>"var(--basecolor)"</value>
</property>
<property property_name="menuHeader" group_name="menu" title="Menu header" description="Most menus identify themselves with a header just underneath their top border" property_type="css" value_type="" depends_on="" value_group="" display_order="20100" css_components="text,background,border,extra" addon_id="XF">
<value>{ "font-size": "@xf-fontSizeLarge", "color": "@xf-textColor", "background-color": "@xf-majorHeadingBg", "border-bottom-width": "@xf-borderSize", "border-bottom-color": "@xf-borderColorLight", "extra": "background: linear-gradient(0deg, @xf-contentHighlightBg, mix(@xf-contentHighlightBg, @xf-contentBg, 50%));" }</value>
</property>
<property property_name="menuTabHeader" group_name="menu" title="Menu tab header" description="Multi-part, tabbed menu headers use these settings" property_type="css" value_type="" depends_on="" value_group="" display_order="20200" css_components="text,background,border,extra" addon_id="XF">
<value>{ "font-size": "@xf-fontSizeNormal", "color": "@xf-textColor", "background-color": "@xf-majorHeadingBg", "border-bottom-width": "@xf-borderSize", "border-bottom-color": "@xf-borderColorLight", "extra": "background: linear-gradient(0deg, @xf-contentHighlightBg, mix(@xf-contentHighlightBg, @xf-contentBg, 50%));" }</value>
</property>
<property property_name="menuTabHeaderSelected" group_name="menu" title="Menu tab header - selected tab" description="Controls the selected tab in multi-part menu headers" property_type="css" value_type="" depends_on="" value_group="" display_order="20300" css_components="text,background,border_color_simple,extra" addon_id="XF">
<value>{ "color": "@xf-textColorFeature", "border-color": "var(--basecolor)" }</value>
</property>
<property property_name="messageUserBlockWidth" group_name="message" title="Message user info block width" description="Controls the width of the (left) user info column on the full size message block" property_type="value" value_type="unit" depends_on="" value_group="user" display_order="500" addon_id="XF">
<value>"170px"</value>
</property>
<property property_name="messageUserElements" group_name="message" title="Message user info elements" description="The elements selected here will be displayed in the message user info block. It will not be displayed below the single column width." property_type="value" value_type="template" depends_on="" value_group="user" display_order="600" addon_id="XF">
<value_parameters>template=style_property_template_messageUserElements type=array</value_parameters>
<value>{ "register_date": "1", "message_count": "1", "solutions": "1", "reaction_score": "1", "trophy_points": "1", "age": "1", "location": "1", "website": "1" }</value>
</property>
<property property_name="nodeIconReadColor" group_name="nodeList" title="Read node icon color" description="When the content within a node has been read, its icon will revert to a less attention-grabbing color, defined here" property_type="value" value_type="color" depends_on="" value_group="" display_order="200" addon_id="XF">
<value>"var(--basecolor)"</value>
</property>
<property property_name="nodeIconUnreadColor" group_name="nodeList" title="Unread node icon color" description="Node icons give an at-a-glance indication of whether or not the content housed within the node has been read. The unread icon color should stand out from its background for quick identification" property_type="value" value_type="color" depends_on="" value_group="" display_order="100" addon_id="XF">
<value>"var(--basecolor)"</value>
</property>
<property property_name="nodeListDescriptionDisplay" group_name="nodeList" title="Description display style" description="To save vertical space, it is possible to hide node descriptions until the node title is hovered, at which point they are displayed in a tooltip" property_type="value" value_type="radio" depends_on="" value_group="" display_order="400" addon_id="XF">
<value_parameters>tooltip={{ phrase('tooltip') }} inline={{ phrase('inline') }} none={{ phrase('none') }}</value_parameters>
<value>"inline"</value>
</property>
<property property_name="nodeListSubDisplay" group_name="nodeList" title="Sub-forums display style" description="Choose the style in which sub-forums will be displayed within a particular node element, according to the amount of space you want them to occupy" property_type="value" value_type="radio" depends_on="" value_group="" display_order="300" addon_id="XF">
<value_parameters>menu={{ phrase('popup_menu') }} flat={{ phrase('listed_below_node') }} none={{ phrase('none') }}</value_parameters>
<value>"flat"</value>
</property>
<property property_name="overlayHeader" group_name="overlay" title="Overlay header" description="Overlays use a header element to identify their contents, styled here" property_type="css" value_type="" depends_on="" value_group="" display_order="20000" css_components="text,background,border,padding,extra" addon_id="XF">
<value>{ "font-size": "@xf-fontSizeLargest", "color": "@xf-textColor", "background-color": "@xf-majorHeadingBg", "border-bottom-width": "@xf-borderSize", "border-bottom-color": "@xf-borderColorLight", "padding-top": "@xf-paddingMedium", "padding-right": "@xf-paddingLarge", "padding-bottom": "@xf-paddingMedium", "padding-left": "@xf-paddingLarge" }</value>
</property>
<property property_name="pageBg" group_name="color" title="Page background color" description="The background of the page itself, on which all other content rests" property_type="value" value_type="color" depends_on="" value_group="contentBackground" display_order="2100" addon_id="XF">
<value>"rgb(34, 40, 49)"</value>
</property>
<property property_name="pageWidthMax" group_name="page" title="Maximum page width" description="As the window is resized, it will continue to grow in width until this value, after which it will remain static" property_type="value" value_type="unit" depends_on="" value_group="page" display_order="100" addon_id="XF">
<value>"90%"</value>
</property>
<property property_name="paletteColor1" group_name="palette" title="Color 1" description="" property_type="value" value_type="color" depends_on="" value_group="primary" display_order="1000" addon_id="XF">
<value_parameters>hidePalette=true</value_parameters>
<value>"rgb(255, 255, 255)"</value>
</property>
<property property_name="paletteColor2" group_name="palette" title="Color 2" description="" property_type="value" value_type="color" depends_on="" value_group="primary" display_order="1100" addon_id="XF">
<value_parameters>hidePalette=true</value_parameters>
<value>"rgb(255, 255, 255)"</value>
</property>
<property property_name="paletteColor3" group_name="palette" title="Color 3" description="" property_type="value" value_type="color" depends_on="" value_group="primary" display_order="1200" addon_id="XF">
<value_parameters>hidePalette=true</value_parameters>
<value>"rgb(33, 40, 49)"</value>
</property>
<property property_name="paletteColor4" group_name="palette" title="Color 4" description="" property_type="value" value_type="color" depends_on="" value_group="primary" display_order="1300" addon_id="XF">
<value_parameters>hidePalette=true</value_parameters>
<value>"rgb(38, 45, 57)"</value>
</property>
<property property_name="paletteColor5" group_name="palette" title="Color 5" description="" property_type="value" value_type="color" depends_on="" value_group="primary" display_order="1400" addon_id="XF">
<value_parameters>hidePalette=true</value_parameters>
<value>"rgb(28, 62, 92)"</value>
</property>
<property property_name="paletteNeutral1" group_name="palette" title="Neutral 1" description="" property_type="value" value_type="color" depends_on="" value_group="neutral" display_order="3000" addon_id="XF">
<value_parameters>hidePalette=true</value_parameters>
<value>"rgb(38, 45, 57)"</value>
</property>
<property property_name="paletteNeutral3" group_name="palette" title="Neutral 3" description="" property_type="value" value_type="color" depends_on="" value_group="neutral" display_order="3200" addon_id="XF">
<value_parameters>hidePalette=true</value_parameters>
<value>"rgb(255, 255, 255)"</value>
</property>
<property property_name="publicFooter" group_name="footer" title="Footer" description="The footer is the primary element that sits below the main content on all public pages" property_type="css" value_type="" depends_on="" value_group="" display_order="20000" css_components="text,background,border,extra" addon_id="XF">
<value>{ "font-size": "@xf-fontSizeSmall", "color": "@xf-paletteColor1", "background-color": "rgb(38, 45, 57)" }</value>
</property>
<property property_name="publicHeader" group_name="headerNav" title="Header/logo row" description="The header row contains your logo and sits at the top of every public page" property_type="css" value_type="" depends_on="" value_group="" display_order="20000" css_components="text,background,extra" addon_id="XF">
<value>{ "color": "@xf-chromeTextColor", "background-color": "@xf-chromeBg", "background-image": "styles/rodinastyle/rodina.png", "extra": "padding: 10px 0;\nbackground-repeat: no-repeat;\nbackground-size: cover;" }</value>
</property>
<property property_name="publicHeaderAdjustColor" group_name="headerNav" title="Header adjustment color" description="The color of the header background is adjusted to be used as the background for the inbox and alerts area in the header" property_type="value" value_type="color" depends_on="" value_group="header" display_order="100" addon_id="XF">
<value>"rgb(40, 47, 60)"</value>
</property>
<property property_name="publicLogoHeight" group_name="basic" title="Public logo height" description="If you specify the height of your logo here, you can avoid a costly re-flow of your page layout once the logo loads." property_type="value" value_type="number" depends_on="" value_group="logo" display_order="120" addon_id="XF">
<value>"0"</value>
</property>
<property property_name="publicLogoUrl" group_name="basic" title="Logo URL" description="The web path from your site's XenForo installation directory to your logo image. If you specify an SVG image here, you should set <b>Emails &gt; Email logo URL</b> to point to a PNG image, or similar, for increased compatibility." property_type="value" value_type="string" depends_on="" value_group="logo" display_order="101" addon_id="XF">
<value_parameters>asset=logo</value_parameters>
<value>""</value>
</property>
<property property_name="publicLogoWidth" group_name="basic" title="Public logo width" description="If you specify the width of your logo here, you can avoid a costly re-flow of your page layout once the logo loads." property_type="value" value_type="number" depends_on="" value_group="logo" display_order="115" addon_id="XF">
<value>"0"</value>
</property>
<property property_name="publicNav" group_name="headerNav" title="Navigation row" description="The navigation row sits below the header and contains the primary site navigation tabs and menus" property_type="css" value_type="" depends_on="" value_group="" display_order="20100" css_components="text,background,extra" addon_id="XF">
<value>{ "color": "@xf-chromeTextColor", "background-color": "@xf-chromeBg", "extra": "box-shadow: 0 0 8px 3px rgba(0, 0, 0, 0.04);\npadding: 10px;" }</value>
</property>
<property property_name="publicNavSelected" group_name="headerNav" title="Navigation row - selected tab" description="Additional styling to apply to navigation tabs when they are selected" property_type="css" value_type="" depends_on="" value_group="" display_order="20300" css_components="text,background,border,border_radius,extra" addon_id="XF">
<value>{ "color": "@xf-subNavTextColor", "font-weight": "@xf-fontWeightHeavy", "border-bottom-width": "2px", "border-bottom-color": "var(--basecolor)" }</value>
</property>
<property property_name="publicNavTab" group_name="headerNav" title="Navigation row - tab" description="Controls the styling of individual tab elements within the navigation row" property_type="css" value_type="" depends_on="" value_group="" display_order="20200" css_components="text,background,extra" addon_id="XF">
<value>{ "color": "@xf-chromeTextColor", "text-decoration": "none", "extra": "font-weight: 600;" }</value>
</property>
<property property_name="publicNavTabMenuOpen" group_name="headerNav" title="Navigation row - menu open" description="Styling applied when the popup menu for the current tab is visible" property_type="css" value_type="" depends_on="" value_group="" display_order="20450" css_components="text,background,extra" addon_id="XF">
<value>{ "color": "@xf-paletteColor1", "text-decoration": "none", "background-color": "rgb(38, 45, 57)", "extra": "box-shadow: 0 5px 10px 0 rgba(0, 0, 0, 0.35);" }</value>
</property>
<property property_name="publicPushBadgeUrl" group_name="basic" title="Push notification badge URL" description="If you provide the URL to a single color/alpha channel logo/icon here, this will be used in place of the browser's default icon." property_type="value" value_type="string" depends_on="" value_group="logo" display_order="500" addon_id="XF">
<value_parameters>asset=logo</value_parameters>
<value>""</value>
</property>
<property property_name="publicStaffBar" group_name="headerNav" title="Staff tools bar" description="Visible only to staff, the staff tools bar sits above the header and contains items such as reported content, the moderation queue..." property_type="css" value_type="" depends_on="" value_group="" display_order="20700" css_components="text,background,border,extra" addon_id="XF">
<value>{ "font-size": "@xf-fontSizeSmall", "color": "@xf-chromeTextColor", "background-color": "rgb(38, 45, 57)" }</value>
</property>
<property property_name="publicSubNav" group_name="headerNav" title="Sub-navigation row" description="Below the main navigation row, this row shows content associated with the selected main navigation tab" property_type="css" value_type="" depends_on="" value_group="" display_order="20500" css_components="text,background,border,extra" addon_id="XF">
<value>{ "font-size": "@xf-fontSizeSmall", "color": "rgb(206, 202, 202)", "background-color": "@xf-subNavBg", "border-bottom-width": "@xf-borderSize", "border-bottom-color": "@xf-borderColorHeavy" }</value>
</property>
<property property_name="scrollJumpButtons" group_name="page" title="Display page jump buttons on scroll" description="If enabled, floating buttons will be displayed shortly after the page is scrolled which allow you to jump to the top or bottom of the page. If this is only triggered when scrolling up, only a jump to top button will be displayed." property_type="value" value_type="radio" depends_on="" value_group="" display_order="3000" addon_id="XF">
<value_parameters>={{ phrase('scroll_buttons_do_not_display') }} up={{ phrase('scroll_buttons_when_scrolling_up') }} both={{ phrase('scroll_buttons_when_scrolling_up_or_down') }}</value_parameters>
<value>"both"</value>
</property>
<property property_name="sidebarWidth" group_name="page" title="Sidebar and side navigation width" description="Width of any elements that make up the sidebar" property_type="value" value_type="unit" depends_on="" value_group="sidebar" display_order="1100" addon_id="XF">
<value>"300px"</value>
</property>
<property property_name="standaloneTab" group_name="tab" title="Standalone tabs" description="Tabs that are not part of block headers are styled here" property_type="css" value_type="" depends_on="" value_group="" display_order="20000" css_components="text,background,extra" addon_id="XF">
<value>{ "font-size": "@xf-fontSizeNormal", "color": "@xf-textColor", "background-color": "@xf-contentAltBg" }</value>
</property>
<property property_name="standaloneTabSelected" group_name="tab" title="Standalone tabs - selected tab" description="The selected tab in groups that are not part of block headers" property_type="css" value_type="" depends_on="" value_group="" display_order="20100" css_components="text,background,border_color_simple,extra" addon_id="XF">
<value>{ "color": "@xf-textColorFeature", "border-color": "var(--basecolor)" }</value>
</property>
<property property_name="styleType" group_name="palette" title="Style type" description="This defines the general type of style in use based on whether the content is placed on a light or dark background. This may change how colors are selected in certain scenarios." property_type="value" value_type="radio" depends_on="" value_group="setup" display_order="100" addon_id="XF">
<value_parameters>light={{ phrase('light') }} dark={{ phrase('dark') }}</value_parameters>
<value>"dark"</value>
</property>
<property property_name="successBg" group_name="color" title="Success message background" description="" property_type="value" value_type="color" depends_on="" value_group="successMessage" display_order="10210" addon_id="XF">
<value>"var(--basecolor)"</value>
</property>
<property property_name="successColor" group_name="color" title="Success message text color" description="" property_type="value" value_type="color" depends_on="" value_group="successMessage" display_order="10220" addon_id="XF">
<value>"@xf-textColor"</value>
</property>
<property property_name="successFeatureColor" group_name="color" title="Success message feature color" description="" property_type="value" value_type="color" depends_on="" value_group="successMessage" display_order="10230" addon_id="XF">
<value>"var(--basecolor)"</value>
</property>
<property property_name="textColor" group_name="color" title="Text color" description="Unless otherwise specified, text will be this color" property_type="value" value_type="color" depends_on="" value_group="textBasic" display_order="100" addon_id="XF">
<value>"@xf-paletteNeutral3"</value>
</property>
<property property_name="textColorFeature" group_name="color" title="Feature text color" description="" property_type="value" value_type="color" depends_on="" value_group="textOther" display_order="3000" addon_id="XF">
<value>"rgb(255, 255, 255)"</value>
</property>
<property property_name="votePositiveColor" group_name="color" title="Positive vote color" description="" property_type="value" value_type="color" depends_on="" value_group="voting" display_order="11100" addon_id="XF">
<value>"rgb(128, 255, 137)"</value>
</property>
<property property_name="warningBg" group_name="color" title="Warning message background" description="" property_type="value" value_type="color" depends_on="" value_group="warningMessage" display_order="10310" addon_id="XF">
<value>"rgb(36, 42, 53)"</value>
</property>
</properties>
</style>