From 0fba2d567c48ea90e5b478de869c66ca06c17cf0 Mon Sep 17 00:00:00 2001 From: FrankZamora Date: Sat, 29 Nov 2025 12:34:36 -0600 Subject: [PATCH] feat: add .btn to critical-bootstrap.css for navbar CTA MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bootstrap .btn class used above-the-fold in navbar needs to be in critical CSS to prevent CLS when Bootstrap is deferred. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- Assets/css/critical-bootstrap.css | 52 +++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/Assets/css/critical-bootstrap.css b/Assets/css/critical-bootstrap.css index d124137e..74e546d3 100644 --- a/Assets/css/critical-bootstrap.css +++ b/Assets/css/critical-bootstrap.css @@ -626,6 +626,58 @@ button:focus:not(:focus-visible) { border-color: var(--bs-alert-border-color); } +/* ========================================================================== + BUTTON COMPONENT (Above-the-fold - Navbar CTA) + ========================================================================== */ +.btn { + --bs-btn-padding-x: 0.75rem; + --bs-btn-padding-y: 0.375rem; + --bs-btn-font-size: 1rem; + --bs-btn-font-weight: 400; + --bs-btn-line-height: 1.5; + --bs-btn-color: var(--bs-body-color); + --bs-btn-bg: transparent; + --bs-btn-border-width: var(--bs-border-width, 1px); + --bs-btn-border-color: transparent; + --bs-btn-border-radius: var(--bs-border-radius, 0.375rem); + --bs-btn-hover-border-color: transparent; + --bs-btn-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075); + --bs-btn-disabled-opacity: 0.65; + --bs-btn-focus-box-shadow: 0 0 0 0.25rem rgba(var(--bs-btn-focus-shadow-rgb), 0.5); + display: inline-block; + padding: var(--bs-btn-padding-y) var(--bs-btn-padding-x); + font-family: var(--bs-btn-font-family); + font-size: var(--bs-btn-font-size); + font-weight: var(--bs-btn-font-weight); + line-height: var(--bs-btn-line-height); + color: var(--bs-btn-color); + text-align: center; + text-decoration: none; + vertical-align: middle; + cursor: pointer; + user-select: none; + border: var(--bs-btn-border-width) solid var(--bs-btn-border-color); + border-radius: var(--bs-btn-border-radius); + background-color: var(--bs-btn-bg); + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} +.btn:hover { + color: var(--bs-btn-hover-color); + background-color: var(--bs-btn-hover-bg); + border-color: var(--bs-btn-hover-border-color); +} +.btn:focus-visible { + color: var(--bs-btn-hover-color); + background-color: var(--bs-btn-hover-bg); + border-color: var(--bs-btn-hover-border-color); + outline: 0; + box-shadow: var(--bs-btn-focus-box-shadow); +} +.btn:disabled, .btn.disabled { + pointer-events: none; + opacity: var(--bs-btn-disabled-opacity); +} + /* ========================================================================== BUTTON CLOSE (Dismiss notification) ========================================================================== */