v2.1.0 — Brand token adoption + homepage verdict sections
- Remap --color-brand-primary/--color-link-hover/--focus-shadow → teal tokens - Hero search submit → lime-500/ink (CMO brief §6) - Hero decorative shapes → teal/lime tints - Hero wavy underline → teal - front-page.php: verdict taxonomy explainer (5 states) + featured verdict cards - inc/helpers.php: new brand copy defaults (hero title + subtitle)
This commit is contained in:
209
front-page.php
209
front-page.php
@@ -2,21 +2,77 @@
|
||||
/**
|
||||
* The front page template
|
||||
*
|
||||
* Layout: Hero → Research Modules → PRAutoBlogger posts → Peptide News feed.
|
||||
* Newsletter signup is handled by footer.php (via template part) on the front page.
|
||||
* Layout: Hero → Verdict Explainer → Featured Verdict Cards → Research Modules
|
||||
* → PRAutoBlogger posts → Peptide News feed.
|
||||
*
|
||||
* @see template-parts/module-cards.php — research modules grid
|
||||
* @see template-parts/newsletter-signup.php — included via footer.php on front page
|
||||
* @see functions.php — helper functions for hero content
|
||||
* Brand v2.0.0: Direction C "The Trusted Guide". Hero uses the 5-state verdict
|
||||
* taxonomy as the central explainer hook. Three featured verdict cards pull from
|
||||
* real monographs (semaglutide / BPC-157 / Melanotan-II) via post meta.
|
||||
*
|
||||
* @see template-parts/module-cards.php — research modules grid
|
||||
* @see template-parts/verdict/badge.php — verdict badge component
|
||||
* @see template-parts/verdict/card.php — full verdict card (monograph hero)
|
||||
* @see inc/helpers.php — hero title / subtitle getters
|
||||
* @see assets/css/brand.css — verdict token definitions
|
||||
*
|
||||
* @package peptide-starter
|
||||
*/
|
||||
|
||||
get_header();
|
||||
|
||||
/**
|
||||
* Verdict taxonomy data for the homepage explainer strip.
|
||||
* Canonical order matches CMO brief §5.1 and the 5-state enum in verdict-meta.php.
|
||||
*/
|
||||
$verdict_taxonomy = array(
|
||||
array(
|
||||
'state' => 'established',
|
||||
'glyph' => '✓',
|
||||
'label' => 'Established',
|
||||
'description' => 'Strong RCT evidence; widely prescribed or validated.',
|
||||
),
|
||||
array(
|
||||
'state' => 'promising',
|
||||
'glyph' => '◐',
|
||||
'label' => 'Promising',
|
||||
'description' => 'Meaningful human data accumulating; not yet RCT-strong.',
|
||||
),
|
||||
array(
|
||||
'state' => 'investigational',
|
||||
'glyph' => '?',
|
||||
'label' => 'Investigational',
|
||||
'description' => 'Mechanism plausible; human trials sparse.',
|
||||
),
|
||||
array(
|
||||
'state' => 'insufficient',
|
||||
'glyph' => '⊘',
|
||||
'label' => 'Insufficient Evidence',
|
||||
'description' => 'Not enough data to say anything responsible.',
|
||||
),
|
||||
array(
|
||||
'state' => 'cautionary',
|
||||
'glyph' => '⚠',
|
||||
'label' => 'Cautionary',
|
||||
'description' => 'Active safety signals or misuse patterns.',
|
||||
),
|
||||
);
|
||||
|
||||
/**
|
||||
* Featured monograph post IDs. These are the three exemplar monographs
|
||||
* loaded during brand sprint v2.0.0 (2026-04-26).
|
||||
* Semaglutide=211 (established), BPC-157=36 (investigational), Melanotan-II=177 (cautionary).
|
||||
*/
|
||||
$featured_monograph_ids = array( 211, 36, 177 );
|
||||
?>
|
||||
|
||||
<main id="main" class="site-main">
|
||||
<!-- Hero Section -->
|
||||
|
||||
<!-- ═══════════════════════════════════════════════════════════════
|
||||
HERO SECTION
|
||||
H1: customizer hero_title (default: "Is this peptide right for you?")
|
||||
Sub-head: customizer hero_subtitle (default: "What the research really says")
|
||||
Search: PSA plugin shortcode or fallback form; lime submit button via brand.css
|
||||
═══════════════════════════════════════════════════════════════ -->
|
||||
<section class="hero-section">
|
||||
<div class="hero-content">
|
||||
<h1 class="hero-title">
|
||||
@@ -60,13 +116,149 @@ get_header();
|
||||
<a href="<?php echo esc_url( home_url( '/peptides' ) ); ?>" class="ps-btn ps-btn-primary">
|
||||
<?php esc_html_e( 'Browse Peptides', 'peptide-starter' ); ?>
|
||||
</a>
|
||||
<a href="<?php echo esc_url( home_url( '/documentation' ) ); ?>" class="ps-btn ps-btn-secondary">
|
||||
<?php esc_html_e( 'Documentation', 'peptide-starter' ); ?>
|
||||
<a href="<?php echo esc_url( home_url( '/how-we-review-peptides' ) ); ?>" class="ps-btn ps-btn-secondary">
|
||||
<?php esc_html_e( 'Our method', 'peptide-starter' ); ?>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- ═══════════════════════════════════════════════════════════════
|
||||
VERDICT TAXONOMY EXPLAINER
|
||||
Five verdict states shown as badge + one-line description.
|
||||
Educates first-time visitors on the brand's evaluation system.
|
||||
Rule: color + glyph + label always rendered together (§5.1 CMO brief).
|
||||
═══════════════════════════════════════════════════════════════ -->
|
||||
<section class="hero-verdict-explainer" aria-label="<?php esc_attr_e( 'Our verdict system', 'peptide-starter' ); ?>">
|
||||
<div class="ps-container">
|
||||
<p class="hero-verdict-explainer__heading">
|
||||
<?php esc_html_e( 'Every peptide gets a verdict. Here\'s what they mean.', 'peptide-starter' ); ?>
|
||||
</p>
|
||||
<div class="hero-verdict-explainer__grid">
|
||||
<?php foreach ( $verdict_taxonomy as $v ) : ?>
|
||||
<div class="hero-verdict-explainer__item">
|
||||
<span
|
||||
class="pr-verdict pr-verdict--<?php echo esc_attr( $v['state'] ); ?>"
|
||||
role="img"
|
||||
aria-label="<?php echo esc_attr( sprintf( __( 'Verdict: %s', 'peptide-starter' ), $v['label'] ) ); ?>"
|
||||
>
|
||||
<span class="pr-verdict__glyph" aria-hidden="true"><?php echo esc_html( $v['glyph'] ); ?></span>
|
||||
<span class="pr-verdict__label"><?php echo esc_html( $v['label'] ); ?></span>
|
||||
</span>
|
||||
<p class="hero-verdict-explainer__desc"><?php echo esc_html( $v['description'] ); ?></p>
|
||||
</div>
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
<p class="hero-verdict-explainer__cta-line">
|
||||
<a href="<?php echo esc_url( home_url( '/how-we-review-peptides' ) ); ?>" class="ps-btn ps-btn-tertiary ps-btn-sm">
|
||||
<?php esc_html_e( 'How we assign verdicts →', 'peptide-starter' ); ?>
|
||||
</a>
|
||||
</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- ═══════════════════════════════════════════════════════════════
|
||||
FEATURED VERDICT CARDS
|
||||
Three exemplar monographs showing the verdict card in context.
|
||||
Pulls from post meta set by verdict-meta.php (verdict_state,
|
||||
verdict_text, signal_row_N_label, signal_row_N_glyph).
|
||||
Post IDs: semaglutide=211, BPC-157=36, Melanotan-II=177.
|
||||
═══════════════════════════════════════════════════════════════ -->
|
||||
<?php
|
||||
$featured_posts = get_posts(
|
||||
array(
|
||||
'post__in' => $featured_monograph_ids,
|
||||
'post_type' => 'peptide',
|
||||
'posts_per_page' => 3,
|
||||
'orderby' => 'post__in',
|
||||
'post_status' => 'publish',
|
||||
)
|
||||
);
|
||||
if ( ! empty( $featured_posts ) ) :
|
||||
?>
|
||||
<section class="hero-featured-verdicts" aria-label="<?php esc_attr_e( 'Featured peptide verdicts', 'peptide-starter' ); ?>">
|
||||
<div class="ps-container">
|
||||
<h2 class="hero-featured-verdicts__title"><?php esc_html_e( 'Featured verdicts', 'peptide-starter' ); ?></h2>
|
||||
<p class="hero-featured-verdicts__subtitle">
|
||||
<?php esc_html_e( 'Real assessments from our database — see the system in action.', 'peptide-starter' ); ?>
|
||||
</p>
|
||||
<div class="hero-featured-verdicts__grid">
|
||||
<?php foreach ( $featured_posts as $featured_post ) :
|
||||
$post_id = $featured_post->ID;
|
||||
$verdict_state = get_post_meta( $post_id, 'verdict_state', true );
|
||||
$verdict_text = get_post_meta( $post_id, 'verdict_text', true );
|
||||
$post_url = get_permalink( $post_id );
|
||||
|
||||
// Verdict state config (mirrors badge.php logic).
|
||||
$verdict_config = array(
|
||||
'established' => array( 'glyph' => '✓', 'label' => 'Established' ),
|
||||
'promising' => array( 'glyph' => '◐', 'label' => 'Promising' ),
|
||||
'investigational'=> array( 'glyph' => '?', 'label' => 'Investigational' ),
|
||||
'insufficient' => array( 'glyph' => '⊘', 'label' => 'Insufficient Evidence' ),
|
||||
'cautionary' => array( 'glyph' => '⚠', 'label' => 'Cautionary' ),
|
||||
);
|
||||
$vc = isset( $verdict_config[ $verdict_state ] ) ? $verdict_config[ $verdict_state ] : null;
|
||||
|
||||
// Signal rows (up to 3).
|
||||
$signal_rows = array();
|
||||
for ( $i = 1; $i <= 3; $i++ ) {
|
||||
$row_label = get_post_meta( $post_id, 'signal_row_' . $i . '_label', true );
|
||||
$row_glyph = get_post_meta( $post_id, 'signal_row_' . $i . '_glyph', true );
|
||||
if ( $row_label ) {
|
||||
$signal_rows[] = array(
|
||||
'label' => $row_label,
|
||||
'glyph' => $row_glyph ? $row_glyph : '•',
|
||||
);
|
||||
}
|
||||
}
|
||||
?>
|
||||
<article class="hero-verdict-card" aria-label="<?php echo esc_attr( get_the_title( $post_id ) ); ?>">
|
||||
<?php if ( $vc ) : ?>
|
||||
<span
|
||||
class="pr-verdict pr-verdict--<?php echo esc_attr( $verdict_state ); ?> hero-verdict-card__badge"
|
||||
role="img"
|
||||
aria-label="<?php echo esc_attr( sprintf( __( 'Verdict: %s', 'peptide-starter' ), $vc['label'] ) ); ?>"
|
||||
>
|
||||
<span class="pr-verdict__glyph" aria-hidden="true"><?php echo esc_html( $vc['glyph'] ); ?></span>
|
||||
<span class="pr-verdict__label"><?php echo esc_html( $vc['label'] ); ?></span>
|
||||
</span>
|
||||
<?php endif; ?>
|
||||
|
||||
<h3 class="hero-verdict-card__title">
|
||||
<a href="<?php echo esc_url( $post_url ); ?>"><?php echo esc_html( get_the_title( $post_id ) ); ?></a>
|
||||
</h3>
|
||||
|
||||
<?php if ( $verdict_text ) : ?>
|
||||
<p class="hero-verdict-card__summary"><?php echo esc_html( $verdict_text ); ?></p>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if ( ! empty( $signal_rows ) ) : ?>
|
||||
<ul class="hero-verdict-card__signals" aria-label="<?php esc_attr_e( 'Evidence signals', 'peptide-starter' ); ?>">
|
||||
<?php foreach ( $signal_rows as $row ) : ?>
|
||||
<li class="hero-verdict-card__signal-item">
|
||||
<span class="hero-verdict-card__signal-glyph" aria-hidden="true"><?php echo esc_html( $row['glyph'] ); ?></span>
|
||||
<?php echo esc_html( $row['label'] ); ?>
|
||||
</li>
|
||||
<?php endforeach; ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
|
||||
<a href="<?php echo esc_url( $post_url ); ?>" class="hero-verdict-card__link">
|
||||
<?php esc_html_e( 'Read the full evidence →', 'peptide-starter' ); ?>
|
||||
</a>
|
||||
</article>
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
|
||||
<div class="hero-featured-verdicts__footer">
|
||||
<a href="<?php echo esc_url( home_url( '/peptides' ) ); ?>" class="ps-btn ps-btn-secondary">
|
||||
<?php esc_html_e( 'Browse all peptides', 'peptide-starter' ); ?>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<?php endif; ?>
|
||||
|
||||
<!-- Research Modules Grid (6 cards) -->
|
||||
<?php get_template_part( 'template-parts/module', 'cards' ); ?>
|
||||
|
||||
@@ -95,6 +287,7 @@ get_header();
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
|
||||
</main>
|
||||
|
||||
<?php get_footer(); ?>
|
||||
|
||||
@@ -155,7 +155,7 @@ function peptide_starter_the_custom_logo() {
|
||||
* @return string Hero title text.
|
||||
*/
|
||||
function peptide_starter_get_hero_title() {
|
||||
return get_theme_mod( 'hero_title', get_bloginfo( 'name' ) );
|
||||
return get_theme_mod( 'hero_title', esc_html__( 'Is this peptide right for you?', 'peptide-starter' ) );
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -164,7 +164,7 @@ function peptide_starter_get_hero_title() {
|
||||
* @return string Hero subtitle text.
|
||||
*/
|
||||
function peptide_starter_get_hero_subtitle() {
|
||||
return get_theme_mod( 'hero_subtitle', esc_html__( 'A scientific peptide reference database', 'peptide-starter' ) );
|
||||
return get_theme_mod( 'hero_subtitle', esc_html__( 'What the research really says', 'peptide-starter' ) );
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
258
style.css
258
style.css
@@ -4,7 +4,7 @@ Theme URI: https://github.com/peptiderepo/peptide-starter
|
||||
Description: Premium, accessible WordPress theme for scientific peptide reference database
|
||||
Author: Peptide Repo
|
||||
Author URI: https://peptiderepo.com
|
||||
Version: 2.0.0-alpha.3
|
||||
Version: 2.1.0-alpha.3
|
||||
License: GPL v2 or later
|
||||
License URI: https://www.gnu.org/licenses/gpl-2.0.html
|
||||
Text Domain: peptide-starter
|
||||
@@ -165,7 +165,8 @@ img, svg {
|
||||
|
||||
/* ---- LIGHT MODE COLOR PALETTE ---- */
|
||||
/* Brand Colors */
|
||||
--color-brand-primary: #0066CC;
|
||||
--color-brand-primary: var(--teal-500); /* Brand rebrand v2.0.0 — Direction C */
|
||||
--color-brand-hover: var(--teal-600);
|
||||
--color-status-success: #059669;
|
||||
--color-status-warning: #F59E0B;
|
||||
--color-status-error: #DC2626;
|
||||
@@ -196,10 +197,10 @@ img, svg {
|
||||
--color-bg-tertiary: #EDEAE3;
|
||||
|
||||
/* Component-Specific Colors */
|
||||
--color-input-focus: #0066CC;
|
||||
--color-link-hover: #0052A3;
|
||||
--color-badge-bg: #DBEAFE;
|
||||
--color-badge-text: #0066CC;
|
||||
--color-input-focus: var(--teal-500);
|
||||
--color-link-hover: var(--teal-600);
|
||||
--color-badge-bg: var(--teal-50);
|
||||
--color-badge-text: var(--teal-700);
|
||||
--color-code-bg: #F3F4F6;
|
||||
--color-code-text: #111827;
|
||||
|
||||
@@ -220,10 +221,10 @@ img, svg {
|
||||
--transition-slow: 300ms ease-in-out;
|
||||
|
||||
/* ---- FOCUS RING (per Design Director fix: 15% opacity) ---- */
|
||||
--focus-color: #0066CC;
|
||||
--focus-color: var(--teal-500);
|
||||
--focus-width: 2px;
|
||||
--focus-offset: 2px;
|
||||
--focus-shadow: 0 0 0 4px rgba(0, 102, 204, 0.15);
|
||||
--focus-shadow: 0 0 0 3px rgba(27, 138, 146, 0.15);
|
||||
|
||||
/* ---- CONTAINER WIDTHS ---- */
|
||||
--container-sm: 640px;
|
||||
@@ -498,7 +499,7 @@ nav a {
|
||||
.ps-btn-primary:hover {
|
||||
background-color: var(--color-link-hover);
|
||||
transform: translateY(-1px);
|
||||
box-shadow: 0 4px 16px rgba(0, 102, 204, 0.2);
|
||||
box-shadow: 0 4px 16px rgba(27, 138, 146, 0.2);
|
||||
}
|
||||
|
||||
.ps-btn-primary:active {
|
||||
@@ -558,7 +559,7 @@ nav a {
|
||||
|
||||
.ps-card:hover {
|
||||
border-color: var(--color-brand-primary);
|
||||
box-shadow: 0 4px 12px rgba(0, 102, 204, 0.1);
|
||||
box-shadow: 0 4px 12px rgba(27, 138, 146, 0.1);
|
||||
}
|
||||
|
||||
.ps-card-header {
|
||||
@@ -741,9 +742,9 @@ input[type="radio"] {
|
||||
}
|
||||
|
||||
.ps-alert-info {
|
||||
background-color: #DBEAFE;
|
||||
background-color: var(--teal-50);
|
||||
border-color: var(--color-brand-primary);
|
||||
color: #0652CD;
|
||||
color: var(--teal-700);
|
||||
}
|
||||
|
||||
.ps-alert-success {
|
||||
@@ -1119,7 +1120,7 @@ input[type="radio"] {
|
||||
.hero-section::before {
|
||||
width: 200px;
|
||||
height: 200px;
|
||||
background: rgba(244, 114, 182, 0.10);
|
||||
background: rgba(27, 138, 146, 0.07);
|
||||
top: 8%;
|
||||
left: -4%;
|
||||
}
|
||||
@@ -1128,7 +1129,7 @@ input[type="radio"] {
|
||||
.hero-section::after {
|
||||
width: 260px;
|
||||
height: 260px;
|
||||
background: rgba(52, 211, 153, 0.08);
|
||||
background: rgba(127, 214, 0, 0.07);
|
||||
top: 20%;
|
||||
right: -6%;
|
||||
}
|
||||
@@ -1164,7 +1165,7 @@ input[type="radio"] {
|
||||
left: 0;
|
||||
right: 0;
|
||||
height: 6px;
|
||||
background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 8'%3E%3Cpath d='M0 4 Q12.5 0 25 4 T50 4 T75 4 T100 4' fill='none' stroke='%230066CC' stroke-width='2'/%3E%3C/svg%3E") repeat-x;
|
||||
background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 8'%3E%3Cpath d='M0 4 Q12.5 0 25 4 T50 4 T75 4 T100 4' fill='none' stroke='%231B8A92' stroke-width='2'/%3E%3C/svg%3E") repeat-x;
|
||||
background-size: 50px 6px;
|
||||
}
|
||||
|
||||
@@ -1228,16 +1229,18 @@ input[type="radio"] {
|
||||
}
|
||||
|
||||
.hero-search .psa-search-btn {
|
||||
background-color: var(--color-brand-primary);
|
||||
color: white;
|
||||
background-color: var(--lime-500); /* CMO brief §6: lime submit in hero */
|
||||
color: var(--color-ink);
|
||||
border: none;
|
||||
border-radius: 0 var(--radius-lg) var(--radius-lg) 0;
|
||||
cursor: pointer;
|
||||
font-family: "Poppins", sans-serif;
|
||||
font-weight: 600;
|
||||
transition: background-color var(--transition-normal);
|
||||
}
|
||||
|
||||
.hero-search .psa-search-btn:hover {
|
||||
background-color: var(--color-brand-hover);
|
||||
background-color: var(--lime-600);
|
||||
}
|
||||
|
||||
.hero-search .psa-search-results {
|
||||
@@ -1361,6 +1364,204 @@ input[type="radio"] {
|
||||
border-radius: var(--radius-lg);
|
||||
}
|
||||
|
||||
|
||||
/* ---- VERDICT TAXONOMY EXPLAINER (homepage) ---- */
|
||||
|
||||
.hero-verdict-explainer {
|
||||
background: var(--bg-inset, var(--gray-100));
|
||||
padding: var(--spacing-2xl) var(--spacing-xl);
|
||||
border-top: 1px solid var(--border-default, #E8E8E8);
|
||||
}
|
||||
|
||||
.hero-verdict-explainer__heading {
|
||||
text-align: center;
|
||||
font-family: "Poppins", sans-serif;
|
||||
font-weight: 600;
|
||||
font-size: 16px;
|
||||
color: var(--text-secondary, var(--color-text-secondary));
|
||||
margin-bottom: var(--spacing-xl);
|
||||
letter-spacing: 0.01em;
|
||||
}
|
||||
|
||||
.hero-verdict-explainer__grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(5, 1fr);
|
||||
gap: var(--spacing-md);
|
||||
max-width: var(--container-xl);
|
||||
margin: 0 auto var(--spacing-xl);
|
||||
align-items: start;
|
||||
}
|
||||
|
||||
.hero-verdict-explainer__item {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
gap: var(--spacing-sm);
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.hero-verdict-explainer__desc {
|
||||
font-family: "Inter", sans-serif;
|
||||
font-size: 12px;
|
||||
color: var(--text-muted, var(--color-text-tertiary));
|
||||
line-height: 1.5;
|
||||
max-width: 160px;
|
||||
}
|
||||
|
||||
.hero-verdict-explainer__cta-line {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/* ---- FEATURED VERDICT CARDS (homepage) ---- */
|
||||
|
||||
.hero-featured-verdicts {
|
||||
padding: var(--spacing-3xl) var(--spacing-xl);
|
||||
background: var(--bg-surface, #FFFFFF);
|
||||
}
|
||||
|
||||
.hero-featured-verdicts__title {
|
||||
text-align: center;
|
||||
font-family: "Poppins", sans-serif;
|
||||
font-weight: 700;
|
||||
font-size: 28px;
|
||||
color: var(--text-primary, var(--color-text-primary));
|
||||
margin-bottom: var(--spacing-sm);
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.hero-featured-verdicts__subtitle {
|
||||
text-align: center;
|
||||
font-size: 15px;
|
||||
color: var(--text-secondary, var(--color-text-secondary));
|
||||
margin-bottom: var(--spacing-2xl);
|
||||
}
|
||||
|
||||
.hero-featured-verdicts__grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(3, 1fr);
|
||||
gap: var(--spacing-xl);
|
||||
max-width: var(--container-xl);
|
||||
margin: 0 auto var(--spacing-xl);
|
||||
}
|
||||
|
||||
.hero-verdict-card {
|
||||
background: var(--bg-surface, #FFFFFF);
|
||||
border: 1px solid var(--border-default, #E8E8E8);
|
||||
border-radius: var(--radius-lg, 12px);
|
||||
padding: var(--spacing-xl);
|
||||
box-shadow: 0 1px 2px rgba(13, 13, 13, 0.04), 0 2px 8px rgba(13, 13, 13, 0.04);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: var(--spacing-md);
|
||||
transition: box-shadow var(--transition-normal);
|
||||
}
|
||||
|
||||
.hero-verdict-card:hover {
|
||||
box-shadow: 0 2px 4px rgba(13, 13, 13, 0.06), 0 8px 16px rgba(13, 13, 13, 0.06);
|
||||
}
|
||||
|
||||
.hero-verdict-card__badge {
|
||||
align-self: flex-start;
|
||||
}
|
||||
|
||||
.hero-verdict-card__title {
|
||||
font-family: "Poppins", sans-serif;
|
||||
font-weight: 700;
|
||||
font-size: 20px;
|
||||
color: var(--text-primary, var(--color-text-primary));
|
||||
margin: 0;
|
||||
line-height: 1.3;
|
||||
}
|
||||
|
||||
.hero-verdict-card__title a {
|
||||
color: inherit;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.hero-verdict-card__title a:hover {
|
||||
color: var(--teal-600, var(--color-brand-primary));
|
||||
}
|
||||
|
||||
.hero-verdict-card__summary {
|
||||
font-family: "Inter", sans-serif;
|
||||
font-size: 14px;
|
||||
line-height: 1.65;
|
||||
color: var(--text-secondary, var(--color-text-secondary));
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.hero-verdict-card__signals {
|
||||
list-style: none;
|
||||
background: var(--bg-inset, var(--gray-100));
|
||||
border-radius: var(--radius-md, 8px);
|
||||
padding: var(--spacing-md) var(--spacing-lg);
|
||||
margin: 0;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: var(--spacing-sm);
|
||||
}
|
||||
|
||||
.hero-verdict-card__signal-item {
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
gap: var(--spacing-sm);
|
||||
font-family: "Inter", sans-serif;
|
||||
font-size: 13px;
|
||||
color: var(--text-primary, var(--color-text-primary));
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
.hero-verdict-card__signal-glyph {
|
||||
flex-shrink: 0;
|
||||
font-weight: 600;
|
||||
width: 16px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.hero-verdict-card__link {
|
||||
font-family: "Poppins", sans-serif;
|
||||
font-weight: 600;
|
||||
font-size: 14px;
|
||||
color: var(--teal-600, var(--color-brand-primary));
|
||||
text-decoration: none;
|
||||
align-self: flex-start;
|
||||
margin-top: auto;
|
||||
}
|
||||
|
||||
.hero-verdict-card__link:hover {
|
||||
color: var(--teal-700);
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.hero-featured-verdicts__footer {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/* Responsive: verdict explainer → 2-col on tablet, 1-col on mobile */
|
||||
@media (max-width: 900px) {
|
||||
.hero-verdict-explainer__grid {
|
||||
grid-template-columns: repeat(3, 1fr);
|
||||
}
|
||||
|
||||
.hero-featured-verdicts__grid {
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 600px) {
|
||||
.hero-verdict-explainer__grid {
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
}
|
||||
|
||||
.hero-featured-verdicts__grid {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
|
||||
.hero-verdict-explainer__desc {
|
||||
max-width: none;
|
||||
}
|
||||
}
|
||||
|
||||
/* ---- PEPTIDE NEWS PLUGIN OVERRIDES ---- */
|
||||
/* Remove line-clamp so full article summaries are visible.
|
||||
Uses body prefix for specificity to beat the plugin's own stylesheet
|
||||
@@ -1429,7 +1630,7 @@ body .pn-article-title {
|
||||
position: absolute;
|
||||
width: 180px;
|
||||
height: 180px;
|
||||
background: rgba(52, 211, 153, 0.08);
|
||||
background: rgba(127, 214, 0, 0.07);
|
||||
border-radius: 50%;
|
||||
top: -40px;
|
||||
right: -40px;
|
||||
@@ -1629,7 +1830,7 @@ body .pn-article-title {
|
||||
position: absolute;
|
||||
width: 160px;
|
||||
height: 160px;
|
||||
background: rgba(244, 114, 182, 0.08);
|
||||
background: rgba(27, 138, 146, 0.07);
|
||||
border-radius: 50%;
|
||||
top: -30px;
|
||||
right: -30px;
|
||||
@@ -2026,7 +2227,8 @@ html[data-theme="dark"] {
|
||||
}
|
||||
|
||||
html[data-theme="light"] {
|
||||
--color-brand-primary: #0066CC;
|
||||
--color-brand-primary: var(--teal-500); /* Brand rebrand v2.0.0 — Direction C */
|
||||
--color-brand-hover: var(--teal-600);
|
||||
--color-status-success: #059669;
|
||||
--color-status-warning: #F59E0B;
|
||||
--color-status-error: #DC2626;
|
||||
@@ -2045,13 +2247,13 @@ html[data-theme="light"] {
|
||||
--color-bg-primary: #FAFAF7;
|
||||
--color-bg-secondary: #F5F3EE;
|
||||
--color-bg-tertiary: #EDEAE3;
|
||||
--color-input-focus: #0066CC;
|
||||
--color-link-hover: #0052A3;
|
||||
--color-badge-bg: #DBEAFE;
|
||||
--color-badge-text: #0066CC;
|
||||
--color-input-focus: var(--teal-500);
|
||||
--color-link-hover: var(--teal-600);
|
||||
--color-badge-bg: var(--teal-50);
|
||||
--color-badge-text: var(--teal-700);
|
||||
--color-code-bg: #F3F4F6;
|
||||
--color-code-text: #111827;
|
||||
--focus-shadow: 0 0 0 4px rgba(0, 102, 204, 0.15);
|
||||
--focus-shadow: 0 0 0 3px rgba(27, 138, 146, 0.15);
|
||||
}
|
||||
|
||||
/* Dark mode alert colors */
|
||||
@@ -2335,7 +2537,7 @@ html[data-theme="light"] {
|
||||
|
||||
.ps-module-card:hover {
|
||||
border-color: var(--color-brand-primary);
|
||||
box-shadow: 0 4px 16px rgba(0, 102, 204, 0.1);
|
||||
box-shadow: 0 4px 16px rgba(27, 138, 146, 0.1);
|
||||
transform: translateY(-2px);
|
||||
}
|
||||
|
||||
@@ -2351,7 +2553,7 @@ html[data-theme="light"] {
|
||||
width: 48px;
|
||||
height: 48px;
|
||||
border-radius: 50%;
|
||||
background-color: rgba(0, 102, 204, 0.1);
|
||||
background-color: rgba(27, 138, 146, 0.1);
|
||||
color: var(--color-brand-primary);
|
||||
margin-bottom: var(--spacing-md);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user