/* * ArcKit Page Hero Banners * Each page gets a unique gradient + geometric pattern overlay. * Designed for the GOV.UK institutional aesthetic with added depth. */ /* ============================================================ Base Hero ============================================================ */ .app-page-hero { position: relative; padding: 2.5rem 0 2rem; overflow: hidden; } /* Geometric pattern overlay — each variant sets its own background */ .app-page-hero::before { content: ''; position: absolute; inset: 0; pointer-events: none; } /* Bottom accent line */ .app-page-hero::after { content: ''; position: absolute; bottom: 0; left: 0; right: 0; height: 3px; background: rgba(255, 255, 255, 0.15); } /* Content above pattern */ .app-page-hero__content { position: relative; z-index: 1; } /* Stat / count badge */ .app-page-hero__stat { display: inline-block; background: rgba(255, 255, 255, 0.14); color: #fff; font-size: 0.8125rem; font-weight: 700; padding: 0.25rem 0.75rem; border-radius: 2px; letter-spacing: 0.5px; text-transform: uppercase; margin-bottom: 0.75rem; } /* Title — semantic

, styled large */ .app-page-hero__title { color: #fff; font-size: 2.25rem; font-weight: 700; margin: 0 0 0.5rem; letter-spacing: -0.02em; line-height: 1.15; } /* Description text */ .app-page-hero__description { color: rgba(255, 255, 255, 0.88); font-size: 1.0625rem; line-height: 1.55; margin: 0; max-width: 46rem; } /* ============================================================ Entry Animation ============================================================ */ @keyframes heroReveal { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: translateY(0); } } .app-page-hero__stat, .app-page-hero__title, .app-page-hero__description { animation: heroReveal 0.45s ease-out both; } .app-page-hero__stat { animation-delay: 0.04s; } .app-page-hero__title { animation-delay: 0.09s; } .app-page-hero__description { animation-delay: 0.14s; } /* Version badge */ .app-page-hero__version { display: inline-block; margin-top: 0.75rem; padding: 0.25rem 0.75rem; font-size: 0.8125rem; font-weight: 700; color: #fff; background: rgba(255, 255, 255, 0.18); border: 1px solid rgba(255, 255, 255, 0.3); border-radius: 2px; animation: heroReveal 0.45s ease-out 0.19s both; } .app-page-hero__version:empty { display: none; } .app-page-hero__version a { color: #fff; text-decoration: none; } .app-page-hero__version a:hover { text-decoration: underline; } /* ============================================================ Responsive ============================================================ */ @media (max-width: 40.0625em) { .app-page-hero { padding: 1.5rem 0 1.25rem; } .app-page-hero__title { font-size: 1.5rem; line-height: 1.2; } .app-page-hero__description { font-size: 0.9375rem; } } /* ============================================================ Variant: Commands — blue, grid pattern ============================================================ */ .app-page-hero--commands { background: linear-gradient(135deg, #1d70b8 0%, #003078 100%); } .app-page-hero--commands::before { background: repeating-linear-gradient( 90deg, rgba(255, 255, 255, 0.04) 0px, rgba(255, 255, 255, 0.04) 1px, transparent 1px, transparent 56px ), repeating-linear-gradient( 0deg, rgba(255, 255, 255, 0.04) 0px, rgba(255, 255, 255, 0.04) 1px, transparent 1px, transparent 56px ); } /* ============================================================ Variant: Guides — green, horizontal rules ============================================================ */ .app-page-hero--guides { background: linear-gradient(135deg, #00703c 0%, #004025 100%); } .app-page-hero--guides::before { background: repeating-linear-gradient( 0deg, rgba(255, 255, 255, 0.05) 0px, rgba(255, 255, 255, 0.05) 1px, transparent 1px, transparent 18px ); } /* ============================================================ Variant: Roles — purple, crosshatch ============================================================ */ .app-page-hero--roles { background: linear-gradient(135deg, #912b88 0%, #5c1a56 100%); } .app-page-hero--roles::before { background: repeating-linear-gradient( 60deg, rgba(255, 255, 255, 0.035) 0px, rgba(255, 255, 255, 0.035) 1px, transparent 1px, transparent 28px ), repeating-linear-gradient( -60deg, rgba(255, 255, 255, 0.035) 0px, rgba(255, 255, 255, 0.035) 1px, transparent 1px, transparent 28px ); } /* ============================================================ Variant: Projects — warm orange→red, diagonal stripes ============================================================ */ .app-page-hero--projects { background: linear-gradient(135deg, #f47738 0%, #c62d14 100%); } .app-page-hero--projects::before { background: repeating-linear-gradient( -45deg, rgba(255, 255, 255, 0.045) 0px, rgba(255, 255, 255, 0.045) 1px, transparent 1px, transparent 18px ); } /* ============================================================ Variant: Getting Started — teal, chevron pattern ============================================================ */ .app-page-hero--getting-started { background: linear-gradient(135deg, #10706a 0%, #064540 100%); } .app-page-hero--getting-started::before { background: repeating-linear-gradient( -30deg, rgba(255, 255, 255, 0.04) 0px, rgba(255, 255, 255, 0.04) 1px, transparent 1px, transparent 22px ), repeating-linear-gradient( 30deg, rgba(255, 255, 255, 0.04) 0px, rgba(255, 255, 255, 0.04) 1px, transparent 1px, transparent 22px ); } /* ============================================================ Variant: Home — burgundy, diamond lattice ============================================================ */ .app-page-hero--home { background: linear-gradient(135deg, #6b1d2a 0%, #3d1020 100%); padding: 3rem 0 2.5rem; } .app-page-hero--home::before { background: repeating-linear-gradient( 45deg, rgba(255, 255, 255, 0.035) 0px, rgba(255, 255, 255, 0.035) 1px, transparent 1px, transparent 32px ), repeating-linear-gradient( -45deg, rgba(255, 255, 255, 0.035) 0px, rgba(255, 255, 255, 0.035) 1px, transparent 1px, transparent 32px ); } /* ============================================================ Variant: Guide Viewer — deep navy, dot grid ============================================================ */ .app-page-hero--viewer { background: linear-gradient(135deg, #003078 0%, #001440 100%); } .app-page-hero--viewer::before { background: radial-gradient( circle, rgba(255, 255, 255, 0.06) 1px, transparent 1px ); background-size: 20px 20px; } /* ============================================================ Variant: Contributors — warm gold/amber, connected-nodes ============================================================ */ .app-page-hero--contributors { background: linear-gradient(135deg, #b58900 0%, #7a5c00 100%); } .app-page-hero--contributors::before { background: radial-gradient( circle, rgba(255, 255, 255, 0.08) 3px, transparent 3px ), repeating-linear-gradient( 60deg, rgba(255, 255, 255, 0.03) 0px, rgba(255, 255, 255, 0.03) 1px, transparent 1px, transparent 40px ), repeating-linear-gradient( -60deg, rgba(255, 255, 255, 0.03) 0px, rgba(255, 255, 255, 0.03) 1px, transparent 1px, transparent 40px ); background-size: 40px 40px, auto, auto; } /* ============================================================ Variant: Articles — indigo, editorial diagonal stripes ============================================================ */ .app-page-hero--articles { background: linear-gradient(135deg, #303f9f 0%, #1a237e 100%); } .app-page-hero--articles::before { background: repeating-linear-gradient( 115deg, rgba(255, 255, 255, 0.05) 0px, rgba(255, 255, 255, 0.05) 2px, transparent 2px, transparent 26px ); }