Files
sow-nodebb-theme/docs/superpowers/specs/global-footer-powered-by.css
T
archvillainette e2b10e6e13 Add Westgate global footer (#8)
## Summary
- add the global Westgate footer partial under `templates/partials/footer/`
- import scoped footer styles from `theme.scss`
- include the footer design spec and powered-by HTML/CSS references
- add a contract test for the footer integration and required links

## Verification
- `node tests/global-footer-contract.test.js`
- `node tests/global-topbar-contract.test.js`
- `for test in tests/*.test.js; do node "$test"; done`
- `npm test --if-present`
- `git diff --check`

Reviewed-on: #8
Co-authored-by: vickydotbat <vickydotbat@tutamail.com>
Co-committed-by: vickydotbat <vickydotbat@tutamail.com>
2026-06-26 13:56:40 +00:00

123 lines
2.7 KiB
CSS

// Hide sidebars
@media (min-width: 992px) {
nav.sidebar.sidebar-left,
nav.sidebar.sidebar-right {
display: none !important;
}
}
// ------------------------------------------------------------
// Westgate "Powered By..."
// ------------------------------------------------------------
// -- Pill --
.westgate-powered-by {
display: flex;
justify-content: center;
align-items: center;
flex-wrap: wrap;
gap: 10px;
padding: 10px 0 14px;
font-family: var(--wg-font-ui);
font-size: 0.875rem;
line-height: 1;
text-align: center;
}
.westgate-powered-pill {
box-sizing: border-box;
display: inline-flex;
align-items: center;
justify-content: center;
gap: 7px;
height: 32px;
width: 174px;
padding: 0 12px;
background: var(--wg-velvet-panel) !important;
border: 1px solid var(--wg-border) !important;
border-radius: 8px;
box-shadow: var(--wg-velvet-shadow) !important;
color: var(--wg-text-muted);
line-height: 1;
text-decoration: none;
transition:
background 0.18s ease,
border-color 0.18s ease,
box-shadow 0.18s ease,
color 0.18s ease;
}
.westgate-powered-by .powered-label {
color: var(--wg-ledger-ink);
font-weight: 600;
line-height: 1;
opacity: 0.95;
white-space: nowrap;
}
.westgate-powered-pill:hover,
.westgate-powered-pill:focus {
background: var(--wg-velvet-panel-hover) !important;
border-color: rgba(194, 163, 90, 0.22) !important;
box-shadow:
inset 0 1px 0 rgba(255, 255, 255, 0.035),
inset 0 0 38px rgba(120, 36, 84, 0.14),
0 12px 30px rgba(0, 0, 0, 0.3) !important;
color: #efe7da;
text-decoration: none;
outline: none;
}
.westgate-powered-pill:focus-visible {
border-color: rgba(216, 194, 138, 0.38) !important;
box-shadow:
inset 0 1px 0 rgba(255, 255, 255, 0.035),
inset 0 0 38px rgba(120, 36, 84, 0.14),
0 0 0 2px rgba(194, 163, 90, 0.18),
0 12px 30px rgba(0, 0, 0, 0.3) !important;
}
.westgate-powered-by .powered-label {
color: var(--wg-ledger-ink);
font-weight: 600;
opacity: 0.95;
white-space: nowrap;
}
.westgate-powered-pill:hover .powered-label,
.westgate-powered-pill:focus .powered-label {
color: #efe7da;
}
// -- Logos --
.westgate-powered-by .nodebb-logo,
.westgate-powered-by .tiptap-logo {
display: block;
flex: 0 0 auto;
width: auto;
opacity: 0.95;
}
/* Give both logos the same visual box */
.westgate-powered-by .nodebb-logo {
height: 14px;
min-width: 64px;
transform: translateY(-0.25px);
}
.westgate-powered-by .tiptap-logo {
height: 15px;
min-width: 64px;
color: #f2edf7;
transform: translateY(-0.25px);
}
.westgate-powered-pill:hover .nodebb-logo,
.westgate-powered-pill:focus .nodebb-logo,
.westgate-powered-pill:hover .tiptap-logo,
.westgate-powered-pill:focus .tiptap-logo {
opacity: 1;
}