// ===================================================== // wpDiscuz Pro Teasers — shared styles // Compiles to pro-teasers-shared.css // // Addon-specific partials (imported below): // _bpi.scss — BuddyPress Integration (settings img) // _fem.scss — Front-end Moderation (no addon-specific CSS) // _wam.scss — Ads Manager (cache button) // _wcai.scss — Comment Author Info (no addon-specific CSS) // _wgi.scss — GIPHY Integration (logo image) // _widg.scss — Widgets Addon (style images + custom CSS textarea) // _wmi.scss — myCRED Integration (section headings + point inputs) // _wmu.scss — Media Uploader (no addon-specific CSS) // _wou.scss — Online Users (no addon-specific overrides) // _wpc.scss — Private Commenting (no addon-specific CSS) // _wpds.scss — Comment Search (fields checkbox wrapper) // _wrc.scss — Google reCAPTCHA (no addon-specific CSS) // _wrf.scss — Comment Reporting (option-entry row) // _wsbm.scss — Subscription Manager (mock table + intro list) // _wsh.scss — Syntax Highlighter (lang groups) // _wti.scss — Tenor Integration (logo image) // _wucm.scss — User & Comment Mentioning (no addon-specific CSS) // _wun.scss — User Notifications (switcher/bells/colors/phrases) // _wv.scss — Advanced Likers (level cards) // _wvc.scss — Voice Commenting (no addon-specific CSS) // _we.scss — Embeds (oEmbed provider grid) // _wsm.scss — Emoticons (sticker images + custom stickers table) // _wr.scss — Reviews (label rows, schema table, taxonomy accordion force-open) // ===================================================== @use 'variables' as *; @use 'wpdiscuz-buddypress-integration'; @use 'wpdiscuz-frontend-moderation'; @use 'wpdiscuz-ads-manager'; @use 'wpdiscuz-comment-author-info'; @use 'wpdiscuz-giphy-integration'; @use 'wpdiscuz-widgets'; @use 'wpdiscuz-mycred-integration'; @use 'wpdiscuz-media-uploader'; @use 'wpdiscuz-online-users'; @use 'wpdiscuz-private-commenting'; @use 'wpdiscuz-comment-search'; @use 'wpdiscuz-google-recaptcha'; @use 'wpdiscuz-comment-reporting'; @use 'wpdiscuz-subscription-manager'; @use 'wpdiscuz-syntax-highlighter'; @use 'wpdiscuz-tenor-integration'; @use 'wpdiscuz-user-comment-mentioning'; @use 'wpdiscuz-user-notifications'; @use 'wpdiscuz-advanced-likers'; @use 'wpdiscuz-voice-commenting'; @use 'wpdiscuz-embeds'; @use 'wpdiscuz-emoticons'; @use 'wpdiscuz-reviews'; // ===================================================== // Accordion wrapper // ===================================================== .wpd-pro-teaser-wrap { margin-top: 20px; border: 1px solid $gold-border; border-radius: $border-radius; background: #fff; box-shadow: 0 2px 8px rgba(200, 168, 0, 0.15); } // Header .wpd-pro-teaser-header { display: flex; align-items: center; justify-content: space-between; padding: 13px 18px; background: $gold-bg; cursor: pointer; border-bottom: 1px solid $gold-border; border-radius: $border-radius $border-radius 0 0; user-select: none; transition: background 0.2s ease; &:hover { background: $gold-bg-hover; } .wpd-pro-teaser-wrap.wpd-pro-collapsed & { border-bottom: none; border-radius: $border-radius; } } .wpd-pro-teaser-title { font-weight: 700; font-size: 14px; color: $gold-dark-text; display: flex; align-items: center; gap: 8px; .dashicons { font-size: 18px; width: 18px; height: 18px; color: $gold-border; } } .wpd-pro-teaser-header-right { display: flex; align-items: center; gap: 10px; } // Unlock hint .wpd-pro-unlock-hint { font-size: 12px; color: $gold-hint-text; font-style: italic; font-weight: 400; } // PRO badge (accordion header only) .wpd-pro-badge { display: inline-block; background: $red-flat; color: #fff; font-size: 10px; font-weight: 700; padding: 2px 7px; border-radius: 3px; letter-spacing: 0.8px; vertical-align: middle; margin-left: 6px; line-height: 1.6; box-shadow: 0 1px 3px $red-badge-shadow; } // Toggle chevron .wpd-pro-toggle-icon { font-size: 10px; color: $gold-hint-text; transition: transform 0.2s ease; display: inline-block; .wpd-pro-teaser-wrap.wpd-pro-collapsed & { transform: rotate(180deg); } } // Body .wpd-pro-teaser-body { padding: 0 30px 10px; position: relative; // Label padding .wpd-opt-name label { padding-top: 4px; display: inline-block; } // Disable all interactions .wpd-opt-row { pointer-events: none; opacity: 0.55; cursor: not-allowed; } input[type="checkbox"], input[type="radio"], input[type="number"], input[type="text"], button { cursor: not-allowed; } // Native checkboxes — visible size + border so they read clearly at 55% opacity input[type="checkbox"] { margin: 0; width: 15px; height: 15px; outline: 1px solid #999; outline-offset: 1px; vertical-align: middle; flex-shrink: 0; } // Toggle switchers hide their real checkbox — reset the size overrides above .wpd-switcher input[type="checkbox"] { width: auto; height: auto; outline: none; outline-offset: 0; flex-shrink: unset; vertical-align: unset; } select { pointer-events: auto; cursor: pointer; } // Shared color wrap (WPDS, WUN, WOU) .wpd-color-wrap { margin-bottom: 8px; display: flex; align-items: center; gap: 8px; &:last-child { margin-bottom: 0; } // !important needed: #wpd-setbox .wpd-setbox-body input[type="text"] { width: 318px } has higher specificity input[type="text"] { margin: 1px; padding: 3px 5px; width: 110px !important; } } .wpd-color-swatch { @include color-swatch(18px); } // ---- Shared teaser utility classes ---------------------------------------- // Intro description block .wpd-opt-intro { text-align: left; } // Phrase text inputs (90% wide) // !important needed: #wpd-setbox .wpd-setbox-body input[type="text"] { width: 318px } has higher specificity .wpd-teaser-input { margin: 1px; padding: 3px 5px; width: 90% !important; } // Phrase / body textareas .wpd-teaser-textarea { width: 90%; } // Number inputs — three widths // !important needed on -sm: main CSS sets input[type="text"] { width: 318px } (embeds player dims use wpd-num-input-sm) .wpd-num-input { width: 80px; } .wpd-num-input-sm { width: 70px !important; } .wpd-num-input-md { width: 100px; } // Full-width text / audio inputs .wpd-input-full { width: 100%; } // Teaser images (max-width 100%) img.wpd-teaser-img { max-width: 100%; } // Last opt-row — no bottom border .wpd-opt-row.wpd-opt-row-no-border { border-bottom: none; } // Subtitle with extra top margin .wpd-subtitle-mt { margin-top: 20px; } .wpd-subtitle-mt-lg { margin-top: 28px; } // Multi-column checkbox group item (base) .wpd-mublock-inline { display: inline-block; width: 200px; min-width: 33%; } // Width modifier variants — combine with .wpd-mublock-inline // Use min-width (not width): #wpd-setbox .wpd-setcon .wpd-mublock-inline { width: 19.5% } would // override a plain width rule; min-width is a separate property not set by that rule so it always wins. .wpd-mublock-wide { min-width: 45%; } .wpd-mublock-half { min-width: 49%; } .wpd-mublock-full { min-width: 95%; } .wpd-mublock-third { min-width: 32%; } // Checkbox group label .wpd-check-label { white-space: nowrap; font-size: 13px; } // Radio button labels (switch-field style) .wpd-radio-lbl { min-width: 60px; } // Colors / lang-groups section — opt-input spanning full row // !important needed: main settings CSS has higher specificity via #wpd-setbox .wpd-setcon .wpd-opt-row .wpd-opt-input .wpd-opt-input-full-row { width: calc(100% - 40px) !important; } } .wpd-pro-teaser-wrap.wpd-pro-collapsed .wpd-pro-teaser-body { display: none; } // CTA footer .wpd-pro-teaser-cta { padding: 12px 18px; border-top: 1px solid #e0c840; text-align: right; background: #fef8d0; border-radius: 0 0 $border-radius $border-radius; pointer-events: all; a { pointer-events: all; opacity: 1; cursor: pointer; background: $red-flat !important; border-color: $red-border !important; color: #fff !important; text-decoration: none; font-weight: 600; letter-spacing: 0.3px; box-shadow: 0 2px 5px $red-shadow; transition: box-shadow 0.2s ease, filter 0.2s ease; padding: 5px 7px; &:hover { filter: brightness(1.1); box-shadow: 0 3px 8px $red-shadow-hover; } } } // ===================================================== // Sidebar PRO teaser indicator (shared class) // JS adds .wpd-pro-teaser-menu-item to
  • elements // whose tab link corresponds to a teaser tab. // ===================================================== #wpd-setbox .wpd-setbar li.wpd-pro-teaser-menu-item { background: $gold-bg; border-top: 1px solid $gold-border; &:hover { background: $gold-bg-hover; } > a { color: $gold-dark-text; display: flex; align-items: center; &:hover { color: $gold-hover-text; } .wpd-menu-title-wrap { flex: 1; display: flex; align-items: center; gap: 5px; min-width: 0; overflow: hidden; } .wpd-menu-title-text { min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; } &::after { @include pro-badge-pseudo(); } } &.wpd-active { background: $gold-bg-hover; width: calc(100% + 1px); > a, a { color: $gold-dark-text; } } } // ===================================================== // Dashboard home card PRO teaser indicator (shared class) // JS adds .wpd-pro-teaser-dashboard-card to addon cards // whose link corresponds to a teaser tab. // ===================================================== #wpd-setbox .wpd-settings-home .wpd-box.wpd-pro-teaser-dashboard-card { border: 1px solid $gold-border; box-shadow: 0 2px 8px rgba(184, 150, 12, 0.2); background: $gold-bg-card; .wpd-body { background: transparent; &:hover { background: $gold-bg-card-hover; } } .wpd-title a { color: $gold-dark-text; display: flex; align-items: center; width: 100%; .wpd-addon-title-text { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; min-width: 0; } &::after { @include pro-badge-pseudo(); } } } // ===================================================== // Pro Add-ons sidebar menu collapse // ===================================================== #wpd-setbox .wpd-setbar .wpd-menu-group-teasers li.wpd-menu-head { cursor: pointer; .wpd-pro-addons-count { font-size: 12px; font-weight: 400; opacity: 0.7; letter-spacing: 0; } .wpd-menu-head-new-badge { margin-left: 6px; margin-right: 3px; vertical-align: center; line-height: 1em; } } // ===================================================== // "NEW" badge — recently published add-ons (< 3 months) // ===================================================== @keyframes wpd-new-pulse { 0%, 100% { background-color: #00a32a; box-shadow: 0 0 0 0 rgba(0, 163, 42, 0.5); } 60% { background-color: #00c130; box-shadow: 0 0 0 5px rgba(0, 163, 42, 0); } } .wpd-new-badge { display: inline-block; flex-shrink: 0; font-size: 9px; font-weight: 700; line-height: 1; color: #fff; background: #00a32a; border-radius: 3px; padding: 2px 5px; margin-right: 5px; vertical-align: middle; letter-spacing: 0.5px; text-transform: uppercase; animation: wpd-new-pulse 1.8s ease-out infinite; } // ===================================================== // RTL overrides — common // ===================================================== body.rtl { .wpd-pro-badge { margin-left: 0; margin-right: 6px; } .wpd-new-badge { margin-right: 0; margin-left: 5px; } .wpd-menu-head-new-badge { margin-left: 0; margin-right: 6px; } .wpd-pro-teaser-cta { text-align: left; } .wpd-pro-teaser-header-right { flex-direction: row-reverse; } .wpd-pro-teaser-title { flex-direction: row-reverse; } .wpd-pro-teaser-body .wpd-color-wrap { flex-direction: row-reverse; } .wpd-pro-teaser-body .wpd-mublock-inline { display: inline-block; // keep inline-block direction in RTL } .wpd-pro-teaser-body .widg-pro-opt-input-wide { text-align: left; } #wpd-setbox .wpd-setbar li.wpd-pro-teaser-menu-item { background: $gold-bg; > a::after { margin-left: 0; margin-right: auto; } } #wpd-setbox .wpd-settings-home .wpd-box.wpd-pro-teaser-dashboard-card { .wpd-title a { flex-direction: row-reverse; &::after { margin-left: 0; margin-right: auto; } } } }