@omega.js/extension 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +98 -0
- package/README.md +194 -0
- package/bin/omega +2 -0
- package/bin/omega-extension +2 -0
- package/bin/omg +2 -0
- package/dist/assets/css/bundles/.gitkeep +0 -0
- package/dist/assets/css/components/content/index.scss +5 -0
- package/dist/assets/css/components/options/index.scss +9 -0
- package/dist/assets/css/components/pages/index.scss +5 -0
- package/dist/assets/css/components/popup/index.scss +9 -0
- package/dist/assets/css/core/_animations.scss +64 -0
- package/dist/assets/css/core/_fontawesome.scss +146 -0
- package/dist/assets/css/core/_initialize.scss +23 -0
- package/dist/assets/css/core/_utilities.scss +80 -0
- package/dist/assets/css/omega-extension.scss +43 -0
- package/dist/assets/css/shell/_index.scss +207 -0
- package/dist/assets/css/tokens/_index.scss +166 -0
- package/dist/assets/js/core/app-shell.js +136 -0
- package/dist/assets/js/libs/initialize-tooltips.js +31 -0
- package/dist/assets/js/libs/recaptcha.js +94 -0
- package/dist/assets/js/main.js +4 -0
- package/dist/assets/themes/_template/README.md +115 -0
- package/dist/assets/themes/_template/_config.scss +60 -0
- package/dist/assets/themes/_template/_theme.js +14 -0
- package/dist/assets/themes/_template/_theme.scss +28 -0
- package/dist/assets/themes/_template/css/base/_root.scss +19 -0
- package/dist/assets/themes/_template/css/components/_components.scss +23 -0
- package/dist/assets/themes/base/README.md +5 -0
- package/dist/assets/themes/base/_components/data/org-chart/component.html +33 -0
- package/dist/assets/themes/base/_components/data/org-chart/component.json5 +33 -0
- package/dist/assets/themes/base/_components/data/org-chart/component.scss +183 -0
- package/dist/assets/themes/base/_components/heading/masthead/component.html +22 -0
- package/dist/assets/themes/base/_components/heading/masthead/component.json5 +30 -0
- package/dist/assets/themes/base/_components/heading/section-head/component.html +18 -0
- package/dist/assets/themes/base/_components/heading/section-head/component.json5 +27 -0
- package/dist/assets/themes/base/_components/pricing/features/component.html +29 -0
- package/dist/assets/themes/base/_components/pricing/features/component.json5 +30 -0
- package/dist/assets/themes/base/_hero/orbit/index.html +30 -0
- package/dist/assets/themes/base/_hero/orbit/script.js +33 -0
- package/dist/assets/themes/base/_hero/orbit/style.scss +133 -0
- package/dist/assets/themes/base/_includes/admin/sections/sidebar.html +3 -0
- package/dist/assets/themes/base/_includes/admin/sections/topbar.html +3 -0
- package/dist/assets/themes/base/_includes/backend/sections/sidebar.html +3 -0
- package/dist/assets/themes/base/_includes/backend/sections/topbar.html +3 -0
- package/dist/assets/themes/base/_includes/frontend/components/connection-card.html +49 -0
- package/dist/assets/themes/base/_includes/frontend/components/post-card.html +54 -0
- package/dist/assets/themes/base/_includes/frontend/sections/account-connections.html +42 -0
- package/dist/assets/themes/base/_includes/frontend/sections/account-section-header.html +11 -0
- package/dist/assets/themes/base/_includes/frontend/sections/footer.html +154 -0
- package/dist/assets/themes/base/_includes/frontend/sections/nav.html +276 -0
- package/dist/assets/themes/base/_includes/global/sections/account.html +72 -0
- package/dist/assets/themes/base/_includes/global/sections/app-sidebar.html +248 -0
- package/dist/assets/themes/base/_includes/global/sections/app-topbar.html +228 -0
- package/dist/assets/themes/base/_includes/global/sections/page-header.html +99 -0
- package/dist/assets/themes/base/_layouts/admin/core/minimal-viewport-locked.html +22 -0
- package/dist/assets/themes/base/_layouts/admin/core/minimal.html +23 -0
- package/dist/assets/themes/base/_layouts/backend/core/base.html +57 -0
- package/dist/assets/themes/base/_layouts/backend/core/minimal-viewport-locked.html +32 -0
- package/dist/assets/themes/base/_layouts/backend/core/minimal.html +32 -0
- package/dist/assets/themes/base/_layouts/backend/pages/dashboard/index.html +230 -0
- package/dist/assets/themes/base/_layouts/frontend/core/base.html +31 -0
- package/dist/assets/themes/base/_layouts/frontend/core/cover.html +40 -0
- package/dist/assets/themes/base/_layouts/frontend/core/minimal.html +47 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/404.html +54 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/about.html +144 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/account/index.html +2104 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/alternatives/alternative.html +319 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/alternatives/index.html +186 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/app.html +142 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/auth/reset.html +53 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/auth/signin.html +90 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/auth/signup.html +141 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/auth/token.html +44 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/blog/categories/category.html +88 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/blog/categories/index.html +88 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/blog/index.html +255 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/blog/post.html +261 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/blog/tags/index.html +84 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/blog/tags/tag.html +88 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/collection/category.html +72 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/collection/document.html +54 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/collection/index.html +84 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/connections/callback.html +55 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/contact.html +214 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/download.html +793 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/extension/index.html +253 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/extension/installed.html +198 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/feedback.html +171 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/index.html +66 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/legal/document.html +78 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/payment/checkout.html +459 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/payment/confirmation.html +131 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/portal/email-preferences.html +104 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/pricing.html +596 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/status.html +361 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/team/index.html +210 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/team/member.html +125 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/updates/index.html +119 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/updates/update.html +118 -0
- package/dist/assets/themes/base/_sections/about/hero/section.html +68 -0
- package/dist/assets/themes/base/_sections/about/hero/section.json5 +58 -0
- package/dist/assets/themes/base/_sections/about/letter/section.html +60 -0
- package/dist/assets/themes/base/_sections/about/letter/section.json5 +56 -0
- package/dist/assets/themes/base/_sections/about/photo-band/section.html +24 -0
- package/dist/assets/themes/base/_sections/about/photo-band/section.json5 +23 -0
- package/dist/assets/themes/base/_sections/about/principles/section.html +17 -0
- package/dist/assets/themes/base/_sections/about/principles/section.json5 +34 -0
- package/dist/assets/themes/base/_sections/about/timeline/section.html +20 -0
- package/dist/assets/themes/base/_sections/about/timeline/section.json5 +34 -0
- package/dist/assets/themes/base/_sections/marketing/bento/section.html +91 -0
- package/dist/assets/themes/base/_sections/marketing/bento/section.json5 +152 -0
- package/dist/assets/themes/base/_sections/marketing/cta/section.html +44 -0
- package/dist/assets/themes/base/_sections/marketing/cta/section.json5 +47 -0
- package/dist/assets/themes/base/_sections/marketing/faq/section.html +52 -0
- package/dist/assets/themes/base/_sections/marketing/faq/section.json5 +68 -0
- package/dist/assets/themes/base/_sections/marketing/hero/section.html +349 -0
- package/dist/assets/themes/base/_sections/marketing/hero/section.json5 +335 -0
- package/dist/assets/themes/base/_sections/marketing/newsletter-cta/section.html +38 -0
- package/dist/assets/themes/base/_sections/marketing/newsletter-cta/section.js +86 -0
- package/dist/assets/themes/base/_sections/marketing/newsletter-cta/section.json5 +29 -0
- package/dist/assets/themes/base/_sections/marketing/pricing-cards/section.html +115 -0
- package/dist/assets/themes/base/_sections/marketing/pricing-cards/section.json5 +72 -0
- package/dist/assets/themes/base/_sections/marketing/product-demo/section.html +62 -0
- package/dist/assets/themes/base/_sections/marketing/product-demo/section.js +44 -0
- package/dist/assets/themes/base/_sections/marketing/product-demo/section.json5 +52 -0
- package/dist/assets/themes/base/_sections/marketing/prose/section.html +22 -0
- package/dist/assets/themes/base/_sections/marketing/prose/section.json5 +41 -0
- package/dist/assets/themes/base/_sections/marketing/showcase/section.html +35 -0
- package/dist/assets/themes/base/_sections/marketing/showcase/section.json5 +52 -0
- package/dist/assets/themes/base/_sections/marketing/stats/section.html +32 -0
- package/dist/assets/themes/base/_sections/marketing/stats/section.json5 +44 -0
- package/dist/assets/themes/base/_sections/marketing/testimonials/section.html +54 -0
- package/dist/assets/themes/base/_sections/marketing/testimonials/section.json5 +70 -0
- package/dist/assets/themes/base/_sections/marketing/trusted-by/section.html +30 -0
- package/dist/assets/themes/base/_sections/marketing/trusted-by/section.json5 +38 -0
- package/dist/assets/themes/base/_sections/verts/unit/section.html +7 -0
- package/dist/assets/themes/base/_sections/verts/unit/section.js +22 -0
- package/dist/assets/themes/base/_sections/verts/unit/section.json5 +24 -0
- package/dist/assets/themes/base/_sections/verts/unit/section.scss +24 -0
- package/dist/assets/themes/base/_theme.js +13 -0
- package/dist/assets/themes/base/_theme.scss +4 -0
- package/dist/assets/themes/bootstrap/_theme.js +16 -0
- package/dist/assets/themes/bootstrap/_theme.scss +11 -0
- package/dist/assets/themes/bootstrap/js/index.esm.js +19 -0
- package/dist/assets/themes/bootstrap/js/index.umd.js +34 -0
- package/dist/assets/themes/bootstrap/js/src/alert.js +87 -0
- package/dist/assets/themes/bootstrap/js/src/base-component.js +86 -0
- package/dist/assets/themes/bootstrap/js/src/button.js +72 -0
- package/dist/assets/themes/bootstrap/js/src/carousel.js +474 -0
- package/dist/assets/themes/bootstrap/js/src/collapse.js +297 -0
- package/dist/assets/themes/bootstrap/js/src/dom/data.js +55 -0
- package/dist/assets/themes/bootstrap/js/src/dom/event-handler.js +317 -0
- package/dist/assets/themes/bootstrap/js/src/dom/manipulator.js +71 -0
- package/dist/assets/themes/bootstrap/js/src/dom/selector-engine.js +126 -0
- package/dist/assets/themes/bootstrap/js/src/dropdown.js +458 -0
- package/dist/assets/themes/bootstrap/js/src/modal.js +378 -0
- package/dist/assets/themes/bootstrap/js/src/offcanvas.js +282 -0
- package/dist/assets/themes/bootstrap/js/src/popover.js +97 -0
- package/dist/assets/themes/bootstrap/js/src/scrollspy.js +296 -0
- package/dist/assets/themes/bootstrap/js/src/tab.js +315 -0
- package/dist/assets/themes/bootstrap/js/src/toast.js +224 -0
- package/dist/assets/themes/bootstrap/js/src/tooltip.js +632 -0
- package/dist/assets/themes/bootstrap/js/src/util/backdrop.js +151 -0
- package/dist/assets/themes/bootstrap/js/src/util/component-functions.js +35 -0
- package/dist/assets/themes/bootstrap/js/src/util/config.js +65 -0
- package/dist/assets/themes/bootstrap/js/src/util/focustrap.js +115 -0
- package/dist/assets/themes/bootstrap/js/src/util/index.js +306 -0
- package/dist/assets/themes/bootstrap/js/src/util/sanitizer.js +117 -0
- package/dist/assets/themes/bootstrap/js/src/util/scrollbar.js +114 -0
- package/dist/assets/themes/bootstrap/js/src/util/swipe.js +146 -0
- package/dist/assets/themes/bootstrap/js/src/util/template-factory.js +160 -0
- package/dist/assets/themes/bootstrap/overrides/_accordion.scss +21 -0
- package/dist/assets/themes/bootstrap/overrides/_avatars.scss +51 -0
- package/dist/assets/themes/bootstrap/overrides/_blog-images.scss +45 -0
- package/dist/assets/themes/bootstrap/overrides/_buttons-adaptive.scss +141 -0
- package/dist/assets/themes/bootstrap/overrides/_color-shades.scss +25 -0
- package/dist/assets/themes/bootstrap/overrides/_cursor-utilities.scss +13 -0
- package/dist/assets/themes/bootstrap/overrides/_index.scss +30 -0
- package/dist/assets/themes/bootstrap/overrides/_links.scss +26 -0
- package/dist/assets/themes/bootstrap/overrides/_soft-colors.scss +99 -0
- package/dist/assets/themes/bootstrap/overrides/_spacing-extended.scss +74 -0
- package/dist/assets/themes/bootstrap/overrides/_spinners.scss +22 -0
- package/dist/assets/themes/bootstrap/overrides/_typography-utilities.scss +40 -0
- package/dist/assets/themes/bootstrap/scss/_accordion.scss +153 -0
- package/dist/assets/themes/bootstrap/scss/_alert.scss +68 -0
- package/dist/assets/themes/bootstrap/scss/_badge.scss +38 -0
- package/dist/assets/themes/bootstrap/scss/_breadcrumb.scss +40 -0
- package/dist/assets/themes/bootstrap/scss/_button-group.scss +147 -0
- package/dist/assets/themes/bootstrap/scss/_buttons.scss +216 -0
- package/dist/assets/themes/bootstrap/scss/_card.scss +238 -0
- package/dist/assets/themes/bootstrap/scss/_carousel.scss +226 -0
- package/dist/assets/themes/bootstrap/scss/_close.scss +66 -0
- package/dist/assets/themes/bootstrap/scss/_containers.scss +41 -0
- package/dist/assets/themes/bootstrap/scss/_dropdown.scss +250 -0
- package/dist/assets/themes/bootstrap/scss/_forms.scss +9 -0
- package/dist/assets/themes/bootstrap/scss/_functions.scss +302 -0
- package/dist/assets/themes/bootstrap/scss/_grid.scss +39 -0
- package/dist/assets/themes/bootstrap/scss/_helpers.scss +12 -0
- package/dist/assets/themes/bootstrap/scss/_images.scss +42 -0
- package/dist/assets/themes/bootstrap/scss/_list-group.scss +199 -0
- package/dist/assets/themes/bootstrap/scss/_maps.scss +174 -0
- package/dist/assets/themes/bootstrap/scss/_mixins.scss +42 -0
- package/dist/assets/themes/bootstrap/scss/_modal.scss +240 -0
- package/dist/assets/themes/bootstrap/scss/_nav.scss +197 -0
- package/dist/assets/themes/bootstrap/scss/_navbar.scss +289 -0
- package/dist/assets/themes/bootstrap/scss/_offcanvas.scss +147 -0
- package/dist/assets/themes/bootstrap/scss/_pagination.scss +109 -0
- package/dist/assets/themes/bootstrap/scss/_placeholders.scss +51 -0
- package/dist/assets/themes/bootstrap/scss/_popover.scss +196 -0
- package/dist/assets/themes/bootstrap/scss/_progress.scss +68 -0
- package/dist/assets/themes/bootstrap/scss/_reboot.scss +611 -0
- package/dist/assets/themes/bootstrap/scss/_root.scss +187 -0
- package/dist/assets/themes/bootstrap/scss/_spinners.scss +85 -0
- package/dist/assets/themes/bootstrap/scss/_tables.scss +171 -0
- package/dist/assets/themes/bootstrap/scss/_toasts.scss +73 -0
- package/dist/assets/themes/bootstrap/scss/_tooltip.scss +119 -0
- package/dist/assets/themes/bootstrap/scss/_transitions.scss +27 -0
- package/dist/assets/themes/bootstrap/scss/_type.scss +106 -0
- package/dist/assets/themes/bootstrap/scss/_utilities.scss +806 -0
- package/dist/assets/themes/bootstrap/scss/_variables-dark.scss +102 -0
- package/dist/assets/themes/bootstrap/scss/_variables.scss +1753 -0
- package/dist/assets/themes/bootstrap/scss/bootstrap-grid.scss +62 -0
- package/dist/assets/themes/bootstrap/scss/bootstrap-reboot.scss +10 -0
- package/dist/assets/themes/bootstrap/scss/bootstrap-utilities.scss +19 -0
- package/dist/assets/themes/bootstrap/scss/bootstrap.scss +52 -0
- package/dist/assets/themes/bootstrap/scss/forms/_floating-labels.scss +97 -0
- package/dist/assets/themes/bootstrap/scss/forms/_form-check.scss +189 -0
- package/dist/assets/themes/bootstrap/scss/forms/_form-control.scss +214 -0
- package/dist/assets/themes/bootstrap/scss/forms/_form-range.scss +91 -0
- package/dist/assets/themes/bootstrap/scss/forms/_form-select.scss +80 -0
- package/dist/assets/themes/bootstrap/scss/forms/_form-text.scss +11 -0
- package/dist/assets/themes/bootstrap/scss/forms/_input-group.scss +132 -0
- package/dist/assets/themes/bootstrap/scss/forms/_labels.scss +36 -0
- package/dist/assets/themes/bootstrap/scss/forms/_validation.scss +12 -0
- package/dist/assets/themes/bootstrap/scss/helpers/_clearfix.scss +3 -0
- package/dist/assets/themes/bootstrap/scss/helpers/_color-bg.scss +7 -0
- package/dist/assets/themes/bootstrap/scss/helpers/_colored-links.scss +30 -0
- package/dist/assets/themes/bootstrap/scss/helpers/_focus-ring.scss +5 -0
- package/dist/assets/themes/bootstrap/scss/helpers/_icon-link.scss +25 -0
- package/dist/assets/themes/bootstrap/scss/helpers/_position.scss +36 -0
- package/dist/assets/themes/bootstrap/scss/helpers/_ratio.scss +26 -0
- package/dist/assets/themes/bootstrap/scss/helpers/_stacks.scss +15 -0
- package/dist/assets/themes/bootstrap/scss/helpers/_stretched-link.scss +15 -0
- package/dist/assets/themes/bootstrap/scss/helpers/_text-truncation.scss +7 -0
- package/dist/assets/themes/bootstrap/scss/helpers/_visually-hidden.scss +8 -0
- package/dist/assets/themes/bootstrap/scss/helpers/_vr.scss +8 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_alert.scss +18 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_backdrop.scss +14 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_banner.scss +7 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_border-radius.scss +78 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_box-shadow.scss +18 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_breakpoints.scss +127 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_buttons.scss +70 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_caret.scss +69 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_clearfix.scss +9 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_color-mode.scss +21 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_color-scheme.scss +7 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_container.scss +11 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_deprecate.scss +10 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_forms.scss +163 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_gradients.scss +47 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_grid.scss +151 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_image.scss +16 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_list-group.scss +26 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_lists.scss +7 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_pagination.scss +10 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_reset-text.scss +17 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_resize.scss +6 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_table-variants.scss +24 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_text-truncate.scss +8 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_transition.scss +26 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_utilities.scss +97 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_visually-hidden.scss +38 -0
- package/dist/assets/themes/bootstrap/scss/tests/jasmine.js +16 -0
- package/dist/assets/themes/bootstrap/scss/tests/mixins/_auto-import-of-variables-dark.test.scss +7 -0
- package/dist/assets/themes/bootstrap/scss/tests/mixins/_color-modes.test.scss +69 -0
- package/dist/assets/themes/bootstrap/scss/tests/mixins/_media-query-color-mode-full.test.scss +8 -0
- package/dist/assets/themes/bootstrap/scss/tests/mixins/_utilities.test.scss +393 -0
- package/dist/assets/themes/bootstrap/scss/tests/sass-true/register.js +14 -0
- package/dist/assets/themes/bootstrap/scss/tests/sass-true/runner.js +17 -0
- package/dist/assets/themes/bootstrap/scss/tests/utilities/_api.test.scss +75 -0
- package/dist/assets/themes/bootstrap/scss/utilities/_api.scss +47 -0
- package/dist/assets/themes/bootstrap/scss/vendor/_rfs.scss +348 -0
- package/dist/assets/themes/classy/README.md +89 -0
- package/dist/assets/themes/classy/_config.scss +245 -0
- package/dist/assets/themes/classy/_theme.js +31 -0
- package/dist/assets/themes/classy/_theme.scss +57 -0
- package/dist/assets/themes/classy/css/app/_panels.scss +183 -0
- package/dist/assets/themes/classy/css/base/_fonts.scss +79 -0
- package/dist/assets/themes/classy/css/base/_no-raise.scss +49 -0
- package/dist/assets/themes/classy/css/base/_root.scss +113 -0
- package/dist/assets/themes/classy/css/base/_typography.scss +154 -0
- package/dist/assets/themes/classy/css/base/_utilities.scss +284 -0
- package/dist/assets/themes/classy/css/components/_alerts.scss +51 -0
- package/dist/assets/themes/classy/css/components/_badges.scss +46 -0
- package/dist/assets/themes/classy/css/components/_buttons.scss +175 -0
- package/dist/assets/themes/classy/css/components/_cards.scss +41 -0
- package/dist/assets/themes/classy/css/components/_dropdowns.scss +48 -0
- package/dist/assets/themes/classy/css/components/_forms.scss +171 -0
- package/dist/assets/themes/classy/css/components/_receipt.scss +45 -0
- package/dist/assets/themes/classy/css/layout/_footer.scss +298 -0
- package/dist/assets/themes/classy/css/layout/_general.scss +209 -0
- package/dist/assets/themes/classy/css/layout/_nav.scss +154 -0
- package/dist/assets/themes/classy/css/layout/_shell.scss +458 -0
- package/dist/assets/themes/classy/css/marketing/_bento.scss +238 -0
- package/dist/assets/themes/classy/css/marketing/_content.scss +1328 -0
- package/dist/assets/themes/classy/css/marketing/_downloads.scss +246 -0
- package/dist/assets/themes/classy/css/marketing/_hero.scss +311 -0
- package/dist/assets/themes/classy/css/marketing/_sections.scss +649 -0
- package/dist/assets/themes/classy/css/pages/404/index.scss +67 -0
- package/dist/assets/themes/classy/css/pages/_auth.scss +235 -0
- package/dist/assets/themes/classy/css/pages/admin/firebase/index.scss +22 -0
- package/dist/assets/themes/classy/css/pages/blog/[slug].scss +56 -0
- package/dist/assets/themes/classy/css/pages/cookies.scss +2 -0
- package/dist/assets/themes/classy/css/pages/dashboard/account/index.scss +31 -0
- package/dist/assets/themes/classy/css/pages/feedback/index.scss +39 -0
- package/dist/assets/themes/classy/css/pages/legal/_document.scss +192 -0
- package/dist/assets/themes/classy/css/pages/payment/checkout/index.scss +585 -0
- package/dist/assets/themes/classy/css/pages/payment/confirmation/index.scss +9 -0
- package/dist/assets/themes/classy/css/pages/privacy.scss +2 -0
- package/dist/assets/themes/classy/css/pages/status/index.scss +164 -0
- package/dist/assets/themes/classy/css/pages/terms.scss +2 -0
- package/dist/assets/themes/classy/css/pages/updates/index.scss +128 -0
- package/dist/assets/themes/classy/fonts/inter-italic-latin-ext.woff2 +0 -0
- package/dist/assets/themes/classy/fonts/inter-italic-latin.woff2 +0 -0
- package/dist/assets/themes/classy/fonts/inter-normal-latin-ext.woff2 +0 -0
- package/dist/assets/themes/classy/fonts/inter-normal-latin.woff2 +0 -0
- package/dist/assets/themes/classy/fonts/newsreader-italic-latin-ext.woff2 +0 -0
- package/dist/assets/themes/classy/fonts/newsreader-italic-latin.woff2 +0 -0
- package/dist/assets/themes/classy/fonts/newsreader-normal-latin-ext.woff2 +0 -0
- package/dist/assets/themes/classy/fonts/newsreader-normal-latin.woff2 +0 -0
- package/dist/assets/themes/classy/js/hero-demo-form.js +56 -0
- package/dist/assets/themes/neobrutalism/README.md +118 -0
- package/dist/assets/themes/neobrutalism/_config.scss +139 -0
- package/dist/assets/themes/neobrutalism/_layouts/frontend/core/base.html +30 -0
- package/dist/assets/themes/neobrutalism/_layouts/frontend/pages/index.html +275 -0
- package/dist/assets/themes/neobrutalism/_theme.js +24 -0
- package/dist/assets/themes/neobrutalism/_theme.scss +61 -0
- package/dist/assets/themes/neobrutalism/css/base/_mixins.scss +46 -0
- package/dist/assets/themes/neobrutalism/css/base/_root.scss +169 -0
- package/dist/assets/themes/neobrutalism/css/base/_typography.scss +61 -0
- package/dist/assets/themes/neobrutalism/css/base/_utilities.scss +89 -0
- package/dist/assets/themes/neobrutalism/css/components/_billing-toggle.scss +74 -0
- package/dist/assets/themes/neobrutalism/css/components/_buttons.scss +148 -0
- package/dist/assets/themes/neobrutalism/css/components/_cards.scss +47 -0
- package/dist/assets/themes/neobrutalism/css/components/_forms.scss +88 -0
- package/dist/assets/themes/neobrutalism/css/components/_marketing.scss +244 -0
- package/dist/assets/themes/neobrutalism/css/layout/_general.scss +213 -0
- package/dist/assets/themes/neobrutalism/css/layout/_navigation.scss +171 -0
- package/dist/assets/themes/neobrutalism/css/pages/index.scss +203 -0
- package/dist/assets/themes/neobrutalism/css/pages/pricing/index.scss +58 -0
- package/dist/assets/themes/neobrutalism/css/pages/test/libraries/layers/index.scss +7 -0
- package/dist/assets/themes/neobrutalism/js/pages/test/libraries/layers/index.js +9 -0
- package/dist/assets/themes/newsflash/README.md +117 -0
- package/dist/assets/themes/newsflash/_components/heading/lede/component.html +14 -0
- package/dist/assets/themes/newsflash/_components/heading/lede/component.json5 +23 -0
- package/dist/assets/themes/newsflash/_components/heading/rule-head/component.html +17 -0
- package/dist/assets/themes/newsflash/_components/heading/rule-head/component.json5 +23 -0
- package/dist/assets/themes/newsflash/_components/news/byline/component.html +12 -0
- package/dist/assets/themes/newsflash/_components/news/byline/component.json5 +18 -0
- package/dist/assets/themes/newsflash/_components/news/story-card/component.html +25 -0
- package/dist/assets/themes/newsflash/_components/news/story-card/component.json5 +21 -0
- package/dist/assets/themes/newsflash/_config.scss +147 -0
- package/dist/assets/themes/newsflash/_layouts/frontend/core/base.html +51 -0
- package/dist/assets/themes/newsflash/_layouts/frontend/pages/blog/index.html +299 -0
- package/dist/assets/themes/newsflash/_layouts/frontend/pages/blog/post.html +235 -0
- package/dist/assets/themes/newsflash/_layouts/frontend/pages/index.html +328 -0
- package/dist/assets/themes/newsflash/_sections/marketing/desks/section.html +39 -0
- package/dist/assets/themes/newsflash/_sections/marketing/desks/section.json5 +49 -0
- package/dist/assets/themes/newsflash/_sections/marketing/newsletter-cta/section.html +103 -0
- package/dist/assets/themes/newsflash/_sections/marketing/newsletter-cta/section.json5 +50 -0
- package/dist/assets/themes/newsflash/_sections/marketing/rundown/section.html +28 -0
- package/dist/assets/themes/newsflash/_sections/marketing/rundown/section.json5 +40 -0
- package/dist/assets/themes/newsflash/_theme.js +24 -0
- package/dist/assets/themes/newsflash/_theme.scss +70 -0
- package/dist/assets/themes/newsflash/css/base/_fonts.scss +80 -0
- package/dist/assets/themes/newsflash/css/base/_mixins.scss +51 -0
- package/dist/assets/themes/newsflash/css/base/_root.scss +257 -0
- package/dist/assets/themes/newsflash/css/base/_typography.scss +49 -0
- package/dist/assets/themes/newsflash/css/base/_utilities.scss +122 -0
- package/dist/assets/themes/newsflash/css/components/_badges.scss +65 -0
- package/dist/assets/themes/newsflash/css/components/_billing-toggle.scss +61 -0
- package/dist/assets/themes/newsflash/css/components/_buttons.scss +139 -0
- package/dist/assets/themes/newsflash/css/components/_cards.scss +47 -0
- package/dist/assets/themes/newsflash/css/components/_editorial.scss +173 -0
- package/dist/assets/themes/newsflash/css/components/_forms.scss +75 -0
- package/dist/assets/themes/newsflash/css/components/_infinite-scroll.scss +102 -0
- package/dist/assets/themes/newsflash/css/components/_panels.scss +156 -0
- package/dist/assets/themes/newsflash/css/components/_ticker.scss +67 -0
- package/dist/assets/themes/newsflash/css/layout/_general.scss +330 -0
- package/dist/assets/themes/newsflash/css/layout/_navigation.scss +168 -0
- package/dist/assets/themes/newsflash/css/pages/404/index.scss +79 -0
- package/dist/assets/themes/newsflash/css/pages/blog/[slug].scss +186 -0
- package/dist/assets/themes/newsflash/css/pages/blog/index.scss +17 -0
- package/dist/assets/themes/newsflash/css/pages/index.scss +157 -0
- package/dist/assets/themes/newsflash/css/pages/pricing/index.scss +55 -0
- package/dist/assets/themes/newsflash/css/pages/test/libraries/layers/index.scss +7 -0
- package/dist/assets/themes/newsflash/fonts/fraunces-italic-latin-ext.woff2 +0 -0
- package/dist/assets/themes/newsflash/fonts/fraunces-italic-latin.woff2 +0 -0
- package/dist/assets/themes/newsflash/fonts/fraunces-normal-latin-ext.woff2 +0 -0
- package/dist/assets/themes/newsflash/fonts/fraunces-normal-latin.woff2 +0 -0
- package/dist/assets/themes/newsflash/fonts/schibsted-grotesk-italic-latin-ext.woff2 +0 -0
- package/dist/assets/themes/newsflash/fonts/schibsted-grotesk-italic-latin.woff2 +0 -0
- package/dist/assets/themes/newsflash/fonts/schibsted-grotesk-normal-latin-ext.woff2 +0 -0
- package/dist/assets/themes/newsflash/fonts/schibsted-grotesk-normal-latin.woff2 +0 -0
- package/dist/assets/themes/newsflash/js/pages/blog/[slug].js +29 -0
- package/dist/assets/themes/newsflash/js/pages/test/libraries/layers/index.js +9 -0
- package/dist/background.js +684 -0
- package/dist/build.js +268 -0
- package/dist/cli-run.js +25 -0
- package/dist/cli.js +30 -0
- package/dist/commands/build.js +67 -0
- package/dist/commands/clean.js +29 -0
- package/dist/commands/deploy.js +97 -0
- package/dist/commands/install.js +58 -0
- package/dist/commands/lib/dependencies.js +33 -0
- package/dist/commands/lib/deploy-precheck.js +57 -0
- package/dist/commands/lib/ensure-target.js +151 -0
- package/dist/commands/lib/push-secrets.js +60 -0
- package/dist/commands/migrate.js +77 -0
- package/dist/commands/test.js +110 -0
- package/dist/commands/update.js +21 -0
- package/dist/commands/version.js +12 -0
- package/dist/config/manifest.json +117 -0
- package/dist/config/page-template.html +21 -0
- package/dist/content.js +37 -0
- package/dist/defaults/.github/workflows/publish.yml +86 -0
- package/dist/defaults/.nvmrc +1 -0
- package/dist/defaults/.vscode/settings.json +8 -0
- package/dist/defaults/AGENTS.md +113 -0
- package/dist/defaults/CHANGELOG.md +15 -0
- package/dist/defaults/CLAUDE.md +1 -0
- package/dist/defaults/_.gitignore +75 -0
- package/dist/defaults/config/description.md +46 -0
- package/dist/defaults/config/messages.json +20 -0
- package/dist/defaults/config/omega.json5 +64 -0
- package/dist/defaults/docs/README.md +17 -0
- package/dist/defaults/gulpfile.js +6 -0
- package/dist/defaults/hooks/build/post.js +8 -0
- package/dist/defaults/hooks/build/pre.js +8 -0
- package/dist/defaults/src/assets/css/bundles/.gitkeep +0 -0
- package/dist/defaults/src/assets/css/components/content/index.scss +11 -0
- package/dist/defaults/src/assets/css/components/offscreen/index.scss +4 -0
- package/dist/defaults/src/assets/css/components/options/index.scss +14 -0
- package/dist/defaults/src/assets/css/components/pages/index.scss +10 -0
- package/dist/defaults/src/assets/css/components/popup/index.scss +10 -0
- package/dist/defaults/src/assets/css/components/sidepanel/index.scss +6 -0
- package/dist/defaults/src/assets/css/main.scss +32 -0
- package/dist/defaults/src/assets/images/.gitkeep +0 -0
- package/dist/defaults/src/assets/js/components/background/index.js +25 -0
- package/dist/defaults/src/assets/js/components/content/index.js +22 -0
- package/dist/defaults/src/assets/js/components/offscreen/index.js +25 -0
- package/dist/defaults/src/assets/js/components/options/index.js +22 -0
- package/dist/defaults/src/assets/js/components/pages/index.js +22 -0
- package/dist/defaults/src/assets/js/components/popup/index.js +22 -0
- package/dist/defaults/src/assets/js/components/sidepanel/index.js +20 -0
- package/dist/defaults/src/assets/vendor/.gitkeep +0 -0
- package/dist/defaults/src/manifest.json +131 -0
- package/dist/defaults/src/views/offscreen/index.html +3 -0
- package/dist/defaults/src/views/options/index.html +8 -0
- package/dist/defaults/src/views/pages/index.html +10 -0
- package/dist/defaults/src/views/popup/index.html +4 -0
- package/dist/defaults/src/views/sidepanel/index.html +4 -0
- package/dist/defaults/test/README.md +41 -0
- package/dist/defaults/test/_init.js +10 -0
- package/dist/defaults/test/boot/externally-connectable.test.js +28 -0
- package/dist/gulp/config/locales.js +12 -0
- package/dist/gulp/main.js +78 -0
- package/dist/gulp/tasks/_.js +18 -0
- package/dist/gulp/tasks/audit.js +222 -0
- package/dist/gulp/tasks/bundle.js +687 -0
- package/dist/gulp/tasks/defaults.js +281 -0
- package/dist/gulp/tasks/distribute.js +172 -0
- package/dist/gulp/tasks/fontawesome.js +25 -0
- package/dist/gulp/tasks/html.js +163 -0
- package/dist/gulp/tasks/icons.js +126 -0
- package/dist/gulp/tasks/package.js +742 -0
- package/dist/gulp/tasks/publish.js +417 -0
- package/dist/gulp/tasks/sass.js +252 -0
- package/dist/gulp/tasks/serve.js +103 -0
- package/dist/gulp/tasks/translate.js +252 -0
- package/dist/gulp/tasks/utils/build-json.js +43 -0
- package/dist/gulp/tasks/utils/template-transform.js +50 -0
- package/dist/gulp/templates/BUILD_INSTRUCTIONS.md +69 -0
- package/dist/index.js +46 -0
- package/dist/lib/affiliatizer.js +224 -0
- package/dist/lib/analytics.js +26 -0
- package/dist/lib/auth-helpers.js +213 -0
- package/dist/lib/extension.js +116 -0
- package/dist/lib/icons.js +36 -0
- package/dist/lib/logger-lite.js +35 -0
- package/dist/lib/logger.js +4 -0
- package/dist/lib/messaging.js +48 -0
- package/dist/lib/safe-install.js +4 -0
- package/dist/lib/theme.js +73 -0
- package/dist/lib/verts.js +68 -0
- package/dist/offscreen.js +31 -0
- package/dist/omega-bin.js +6 -0
- package/dist/options.js +80 -0
- package/dist/page.js +80 -0
- package/dist/popup.js +80 -0
- package/dist/sidepanel.js +80 -0
- package/dist/test/assert.js +4 -0
- package/dist/test/fixtures/consumer-extension/dist/background.js +23 -0
- package/dist/test/fixtures/consumer-extension/dist/manifest.json +20 -0
- package/dist/test/fixtures/consumer-extension/dist/options.html +10 -0
- package/dist/test/fixtures/consumer-extension/dist/popup.bundle.js +5 -0
- package/dist/test/fixtures/consumer-extension/dist/popup.html +12 -0
- package/dist/test/harness/extension/background.js +26 -0
- package/dist/test/harness/extension/manifest.json +27 -0
- package/dist/test/harness/extension/options.html +12 -0
- package/dist/test/harness/extension/popup.html +12 -0
- package/dist/test/harness/extension/sidepanel.html +12 -0
- package/dist/test/index.js +63 -0
- package/dist/test/runner.js +99 -0
- package/dist/test/runners/boot.js +221 -0
- package/dist/test/runners/chromium.js +391 -0
- package/dist/test/runners/helpers.js +24 -0
- package/dist/test/suites/background/messaging.test.js +44 -0
- package/dist/test/suites/background/storage.test.js +46 -0
- package/dist/test/suites/background/sw-context.test.js +49 -0
- package/dist/test/suites/boot/build-json-bake.test.js +80 -0
- package/dist/test/suites/boot/extension-loads.test.js +58 -0
- package/dist/test/suites/build/affiliatizer.test.js +64 -0
- package/dist/test/suites/build/app-launch.test.js +65 -0
- package/dist/test/suites/build/attach-log-file.test.js +99 -0
- package/dist/test/suites/build/auth-emulator-gate.test.js +118 -0
- package/dist/test/suites/build/auth-triggers.test.js +71 -0
- package/dist/test/suites/build/boot-discovery.test.js +134 -0
- package/dist/test/suites/build/boot-timeout.test.js +92 -0
- package/dist/test/suites/build/build-error-notification.test.js +122 -0
- package/dist/test/suites/build/build-json-bake.test.js +302 -0
- package/dist/test/suites/build/build-verb.test.js +138 -0
- package/dist/test/suites/build/bundle-targets.test.js +66 -0
- package/dist/test/suites/build/cache-warming.test.js +44 -0
- package/dist/test/suites/build/cli.test.js +150 -0
- package/dist/test/suites/build/default-boot-test.test.js +100 -0
- package/dist/test/suites/build/defaults-scaffold.test.js +287 -0
- package/dist/test/suites/build/deploy-dispatch.test.js +76 -0
- package/dist/test/suites/build/distribute-task.test.js +111 -0
- package/dist/test/suites/build/ensure-target.test.js +141 -0
- package/dist/test/suites/build/env-delivery.test.js +239 -0
- package/dist/test/suites/build/env-watch.test.js +86 -0
- package/dist/test/suites/build/expect.test.js +48 -0
- package/dist/test/suites/build/exports.test.js +53 -0
- package/dist/test/suites/build/extension-fallback.test.js +82 -0
- package/dist/test/suites/build/framework-deps.test.js +176 -0
- package/dist/test/suites/build/global-handlers.test.js +70 -0
- package/dist/test/suites/build/icon-sheet.test.js +74 -0
- package/dist/test/suites/build/logger-lite.test.js +61 -0
- package/dist/test/suites/build/manager.test.js +249 -0
- package/dist/test/suites/build/mode-helpers.test.js +136 -0
- package/dist/test/suites/build/omega-shell.test.js +103 -0
- package/dist/test/suites/build/omega-tokens.test.js +76 -0
- package/dist/test/suites/build/package-task.test.js +831 -0
- package/dist/test/suites/build/setup-scripts.test.js +172 -0
- package/dist/test/suites/build/strip-dev-blocks.test.js +122 -0
- package/dist/test/suites/build/template-replace.test.js +116 -0
- package/dist/test/suites/build/test-discovery.test.js +64 -0
- package/dist/test/suites/build/test-target-no-match.test.js +119 -0
- package/dist/test/suites/build/theme-resolve.test.js +115 -0
- package/dist/test/suites/build/translate.test.js +85 -0
- package/dist/test/suites/build/url-helpers.test.js +119 -0
- package/dist/test/suites/build/verb-logs.test.js +43 -0
- package/dist/test/suites/build/verts-binding.test.js +67 -0
- package/dist/test/suites/build/wakeup-ping.test.js +90 -0
- package/dist/test/suites/build/wave5-messenger.test.js +80 -0
- package/dist/test/suites/view/options-and-sidepanel.test.js +16 -0
- package/dist/test/suites/view/popup-context.test.js +53 -0
- package/dist/test/suites/view/sidepanel.test.js +16 -0
- package/dist/test/utils/extended-mode-warning.js +13 -0
- package/dist/utils/attach-log-file.js +4 -0
- package/dist/utils/mode-helpers.js +117 -0
- package/dist/utils/url-helpers.js +69 -0
- package/dist/vendor/account/engine.js +182 -0
- package/dist/vendor/account/features.js +220 -0
- package/dist/vendor/account/index.js +53 -0
- package/dist/vendor/account/schema.js +272 -0
- package/dist/vendor/account/subscription.js +38 -0
- package/dist/vendor/config/company.js +31 -0
- package/dist/vendor/config/defaults.js +173 -0
- package/dist/vendor/config/demo.js +18 -0
- package/dist/vendor/config/desktop-artifacts.js +110 -0
- package/dist/vendor/config/edit.js +769 -0
- package/dist/vendor/config/env-delivery.js +145 -0
- package/dist/vendor/config/env-rules.js +93 -0
- package/dist/vendor/config/env-schema.js +1078 -0
- package/dist/vendor/config/env.js +445 -0
- package/dist/vendor/config/hooks.js +97 -0
- package/dist/vendor/config/index.js +237 -0
- package/dist/vendor/config/instances.js +208 -0
- package/dist/vendor/config/load.js +490 -0
- package/dist/vendor/config/merge.js +68 -0
- package/dist/vendor/config/order.js +139 -0
- package/dist/vendor/config/ports.js +374 -0
- package/dist/vendor/config/providers.js +32 -0
- package/dist/vendor/config/repo.js +142 -0
- package/dist/vendor/config/retired-keys.js +430 -0
- package/dist/vendor/config/schema.js +1610 -0
- package/dist/vendor/config/secrets.js +50 -0
- package/dist/vendor/config/seed.js +34 -0
- package/dist/vendor/config/site-global.js +205 -0
- package/dist/vendor/config/validate.js +554 -0
- package/dist/vendor/config/winback.js +61 -0
- package/dist/vendor/devkit/actions-secrets.js +145 -0
- package/dist/vendor/devkit/attach-log-file.js +262 -0
- package/dist/vendor/devkit/bundle.js +292 -0
- package/dist/vendor/devkit/ci-workflows.js +520 -0
- package/dist/vendor/devkit/clean-dirs.js +28 -0
- package/dist/vendor/devkit/cli-router.js +156 -0
- package/dist/vendor/devkit/defaults-engine.js +372 -0
- package/dist/vendor/devkit/deploy-precheck.js +54 -0
- package/dist/vendor/devkit/deploy-record.js +180 -0
- package/dist/vendor/devkit/deploy.js +286 -0
- package/dist/vendor/devkit/empty-modules-plugin.js +64 -0
- package/dist/vendor/devkit/env-watch.js +132 -0
- package/dist/vendor/devkit/framework-deps.js +46 -0
- package/dist/vendor/devkit/icons.js +178 -0
- package/dist/vendor/devkit/license.js +155 -0
- package/dist/vendor/devkit/local.js +1905 -0
- package/dist/vendor/devkit/logger.js +128 -0
- package/dist/vendor/devkit/merge-line-files.js +296 -0
- package/dist/vendor/devkit/npm-registry.js +52 -0
- package/dist/vendor/devkit/omega-bin.js +345 -0
- package/dist/vendor/devkit/safe-install.js +18 -0
- package/dist/vendor/devkit/scaffold-guard.js +96 -0
- package/dist/vendor/devkit/strip-dev-blocks-plugin.js +29 -0
- package/dist/vendor/devkit/strip-dev-blocks.js +32 -0
- package/dist/vendor/devkit/target-dependencies.js +137 -0
- package/dist/vendor/devkit/target-secrets.js +165 -0
- package/dist/vendor/devkit/test/assert.js +120 -0
- package/dist/vendor/devkit/test/define-cases.js +104 -0
- package/dist/vendor/devkit/test/extended-mode-warning.js +22 -0
- package/dist/vendor/devkit/test/runner-core.js +554 -0
- package/dist/vendor/devkit/test/scope.js +162 -0
- package/dist/vendor/devkit/translate/cache.js +84 -0
- package/dist/vendor/devkit/translate/engine.js +243 -0
- package/dist/vendor/devkit/translate/index.js +49 -0
- package/dist/vendor/devkit/translate/languages.js +134 -0
- package/dist/vendor/devkit/translate/providers.js +188 -0
- package/dist/vendor/devkit/update.js +569 -0
- package/docs/affiliatizer.md +81 -0
- package/docs/audit.md +67 -0
- package/docs/auth.md +149 -0
- package/docs/build-system.md +176 -0
- package/docs/cdp-debugging.md +42 -0
- package/docs/cli.md +73 -0
- package/docs/common-mistakes.md +10 -0
- package/docs/components.md +87 -0
- package/docs/css.md +133 -0
- package/docs/defaults.md +72 -0
- package/docs/environment-detection.md +79 -0
- package/docs/extension.md +93 -0
- package/docs/hooks.md +111 -0
- package/docs/icons.md +47 -0
- package/docs/index.md +291 -0
- package/docs/logging.md +33 -0
- package/docs/managers.md +100 -0
- package/docs/offscreen.md +57 -0
- package/docs/publishing.md +182 -0
- package/docs/shared/agent-docs.md +89 -0
- package/docs/shared/analytics.md +612 -0
- package/docs/shared/brands.md +51 -0
- package/docs/shared/breaking-changes.md +497 -0
- package/docs/shared/config.md +1387 -0
- package/docs/shared/deploys.md +215 -0
- package/docs/shared/icons.md +201 -0
- package/docs/shared/local-dev.md +147 -0
- package/docs/shared/logging.md +202 -0
- package/docs/shared/monitoring.md +153 -0
- package/docs/shared/publishing.md +183 -0
- package/docs/shared/rulings.md +34 -0
- package/docs/shared/testing.md +147 -0
- package/docs/shared/theming.md +604 -0
- package/docs/shared/translation.md +291 -0
- package/docs/shared/updates.md +61 -0
- package/docs/templating.md +66 -0
- package/docs/test-boot-layer.md +143 -0
- package/docs/test-framework.md +411 -0
- package/docs/themes.md +89 -0
- package/docs/translations.md +73 -0
- package/docs/verts.md +67 -0
- package/docs/xss-prevention.md +95 -0
- package/package.json +159 -0
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
// Newsflash Theme — SCSS entry point
|
|
2
|
+
// Forwards config (so consuming projects can override vars), loads Bootstrap
|
|
3
|
+
// via config, then layers the editorial system on top. Import order matters:
|
|
4
|
+
// config → mixins → root vars → base → layout → components → bootstrap overrides.
|
|
5
|
+
|
|
6
|
+
// Forward theme configuration (allows consuming project to override)
|
|
7
|
+
@forward 'config';
|
|
8
|
+
@use 'config' as *;
|
|
9
|
+
|
|
10
|
+
// Mixins must be available to every partial below.
|
|
11
|
+
// @import (not @use) so the mixins land in the global scope the @imports share.
|
|
12
|
+
@import 'css/base/mixins';
|
|
13
|
+
|
|
14
|
+
// Vendored webfonts (Fraunces + Schibsted Grotesk — D5)
|
|
15
|
+
@import 'css/base/fonts';
|
|
16
|
+
|
|
17
|
+
// Token re-value + Bootstrap bridge (--omega-* contract, light/dark)
|
|
18
|
+
@import 'css/base/root';
|
|
19
|
+
|
|
20
|
+
// ── The classy FLOOR (cp190, widened for #177 phase 2) ──────────────────────
|
|
21
|
+
// Fall-through surfaces render BASE markup (omega-* classes), and the
|
|
22
|
+
// structural css for that vocabulary lives in classy's partials, which are
|
|
23
|
+
// deliberately TOKEN-PURE, so a full sibling theme imports them directly
|
|
24
|
+
// and they paint through THIS theme's token re-values (paper/ink/frames),
|
|
25
|
+
// no classy Bootstrap involved. Phase 2 widened the floor beyond app/auth to
|
|
26
|
+
// the marketing vocabulary (omega-cta, omega-stats, omega-price-card,
|
|
27
|
+
// omega-person, omega-rowlist, omega-duo, and the rest) because newsflash
|
|
28
|
+
// now renders the base 404/about/contact/pricing/team/taxonomy surfaces
|
|
29
|
+
// unforked.
|
|
30
|
+
// Imported EARLY on purpose: the floor sits UNDER the theme's own voice, so
|
|
31
|
+
// later newsflash rules win every collision (e.g. classy's .badge base).
|
|
32
|
+
// NOT imported: classy's typography (its h1-h6 element rules would beat the
|
|
33
|
+
// Fraunces headings this theme sets through Bootstrap vars), layout/general
|
|
34
|
+
// (fixed-nav clearance rhythm; the sticky masthead needs none), and
|
|
35
|
+
// layout/nav (fixed glassy bar; the masthead re-skins .omega-nav below).
|
|
36
|
+
// Partial/consumer themes take the whole-chain hatch instead
|
|
37
|
+
// (`@forward 'omega:theme'` — see docs/shared/theming.md).
|
|
38
|
+
@import '../classy/css/layout/shell';
|
|
39
|
+
@import '../classy/css/layout/footer';
|
|
40
|
+
@import '../classy/css/app/panels';
|
|
41
|
+
@import '../classy/css/pages/auth';
|
|
42
|
+
@import '../classy/css/components/receipt';
|
|
43
|
+
@import '../classy/css/components/badges';
|
|
44
|
+
@import '../classy/css/base/utilities';
|
|
45
|
+
@import '../classy/css/marketing/hero';
|
|
46
|
+
@import '../classy/css/marketing/content';
|
|
47
|
+
@import '../classy/css/marketing/sections';
|
|
48
|
+
|
|
49
|
+
// Base styles
|
|
50
|
+
@import 'css/base/typography';
|
|
51
|
+
@import 'css/base/utilities';
|
|
52
|
+
|
|
53
|
+
// Layout styles
|
|
54
|
+
@import 'css/layout/general';
|
|
55
|
+
@import 'css/layout/navigation';
|
|
56
|
+
|
|
57
|
+
// Component styles
|
|
58
|
+
@import 'css/components/buttons';
|
|
59
|
+
@import 'css/components/cards';
|
|
60
|
+
@import 'css/components/forms';
|
|
61
|
+
@import 'css/components/badges';
|
|
62
|
+
@import 'css/components/ticker';
|
|
63
|
+
@import 'css/components/editorial';
|
|
64
|
+
@import 'css/components/panels';
|
|
65
|
+
@import 'css/components/infinite-scroll';
|
|
66
|
+
@import 'css/components/billing-toggle';
|
|
67
|
+
|
|
68
|
+
// Universal Bootstrap overrides (shared across all omega themes).
|
|
69
|
+
// Must come AFTER Bootstrap is loaded via config to use @extend.
|
|
70
|
+
@import '../bootstrap/overrides';
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
// Vendored webfonts (D5): Fraunces (optical-sized display serif) + Schibsted
|
|
2
|
+
// Grotesk (UI grotesk), both OFL — safe to redistribute inside the published
|
|
3
|
+
// theme. Variable fonts, latin + latin-ext subsets; the files ship in the
|
|
4
|
+
// theme's fonts/ dir and the asset pipeline copies every layer's fonts/ to
|
|
5
|
+
// /assets/fonts (first-wins), so a consumer theme can override the files OR
|
|
6
|
+
// just re-point the --omega-font-* tokens (see _root.scss) at different
|
|
7
|
+
// families. Replaces the cp71-era Google Fonts CDN link in base.html.
|
|
8
|
+
|
|
9
|
+
/* fraunces italic latin-ext */
|
|
10
|
+
@font-face {
|
|
11
|
+
font-family: 'Fraunces';
|
|
12
|
+
font-style: italic;
|
|
13
|
+
font-weight: 100 900;
|
|
14
|
+
font-display: swap;
|
|
15
|
+
src: url(/assets/fonts/fraunces-italic-latin-ext.woff2) format('woff2');
|
|
16
|
+
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
|
|
17
|
+
}
|
|
18
|
+
/* fraunces italic latin */
|
|
19
|
+
@font-face {
|
|
20
|
+
font-family: 'Fraunces';
|
|
21
|
+
font-style: italic;
|
|
22
|
+
font-weight: 100 900;
|
|
23
|
+
font-display: swap;
|
|
24
|
+
src: url(/assets/fonts/fraunces-italic-latin.woff2) format('woff2');
|
|
25
|
+
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
|
26
|
+
}
|
|
27
|
+
/* fraunces normal latin-ext */
|
|
28
|
+
@font-face {
|
|
29
|
+
font-family: 'Fraunces';
|
|
30
|
+
font-style: normal;
|
|
31
|
+
font-weight: 100 900;
|
|
32
|
+
font-display: swap;
|
|
33
|
+
src: url(/assets/fonts/fraunces-normal-latin-ext.woff2) format('woff2');
|
|
34
|
+
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
|
|
35
|
+
}
|
|
36
|
+
/* fraunces normal latin */
|
|
37
|
+
@font-face {
|
|
38
|
+
font-family: 'Fraunces';
|
|
39
|
+
font-style: normal;
|
|
40
|
+
font-weight: 100 900;
|
|
41
|
+
font-display: swap;
|
|
42
|
+
src: url(/assets/fonts/fraunces-normal-latin.woff2) format('woff2');
|
|
43
|
+
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
|
44
|
+
}
|
|
45
|
+
/* schibsted grotesk italic latin-ext */
|
|
46
|
+
@font-face {
|
|
47
|
+
font-family: 'Schibsted Grotesk';
|
|
48
|
+
font-style: italic;
|
|
49
|
+
font-weight: 400 900;
|
|
50
|
+
font-display: swap;
|
|
51
|
+
src: url(/assets/fonts/schibsted-grotesk-italic-latin-ext.woff2) format('woff2');
|
|
52
|
+
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
|
|
53
|
+
}
|
|
54
|
+
/* schibsted grotesk italic latin */
|
|
55
|
+
@font-face {
|
|
56
|
+
font-family: 'Schibsted Grotesk';
|
|
57
|
+
font-style: italic;
|
|
58
|
+
font-weight: 400 900;
|
|
59
|
+
font-display: swap;
|
|
60
|
+
src: url(/assets/fonts/schibsted-grotesk-italic-latin.woff2) format('woff2');
|
|
61
|
+
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
|
62
|
+
}
|
|
63
|
+
/* schibsted grotesk normal latin-ext */
|
|
64
|
+
@font-face {
|
|
65
|
+
font-family: 'Schibsted Grotesk';
|
|
66
|
+
font-style: normal;
|
|
67
|
+
font-weight: 400 900;
|
|
68
|
+
font-display: swap;
|
|
69
|
+
src: url(/assets/fonts/schibsted-grotesk-normal-latin-ext.woff2) format('woff2');
|
|
70
|
+
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
|
|
71
|
+
}
|
|
72
|
+
/* schibsted grotesk normal latin */
|
|
73
|
+
@font-face {
|
|
74
|
+
font-family: 'Schibsted Grotesk';
|
|
75
|
+
font-style: normal;
|
|
76
|
+
font-weight: 400 900;
|
|
77
|
+
font-display: swap;
|
|
78
|
+
src: url(/assets/fonts/schibsted-grotesk-normal-latin.woff2) format('woff2');
|
|
79
|
+
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
|
80
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
// Newsflash Theme — Mixins
|
|
2
|
+
// The shared building blocks of the editorial look. Components @include these
|
|
3
|
+
// so the frame/shadow/lift system lives in ONE place (SSOT) rather than being
|
|
4
|
+
// copy-pasted across buttons, cards, inputs, etc.
|
|
5
|
+
|
|
6
|
+
// Hairline frame in the current ink color.
|
|
7
|
+
@mixin nf-border($width: var(--nf-border-width)) {
|
|
8
|
+
border: $width solid var(--omega-line-strong);
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
// Small hard offset shadow (no blur) — the resting state of controls.
|
|
12
|
+
@mixin nf-shadow-hard() {
|
|
13
|
+
box-shadow: var(--nf-shadow-hard);
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
// Soft "pop" shadow — depth for frames and panels (hero art, signup rail).
|
|
17
|
+
// Rides the shared big-shadow slot, which the root re-values editorially.
|
|
18
|
+
@mixin nf-shadow-pop() {
|
|
19
|
+
box-shadow: var(--omega-shadow-2);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
// The signature interaction: the element rests on a small hard shadow, then
|
|
23
|
+
// LIFTS up-left on hover (shadow grows beneath it) and presses flush on
|
|
24
|
+
// active. Pure transform + shadow — no color shift.
|
|
25
|
+
@mixin nf-lift() {
|
|
26
|
+
transition: $nf-transition;
|
|
27
|
+
|
|
28
|
+
&:hover {
|
|
29
|
+
transform: translate(-2px, -2px);
|
|
30
|
+
box-shadow: var(--nf-shadow-hard-hover);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
&:active {
|
|
34
|
+
transform: translate(0, 0);
|
|
35
|
+
box-shadow: 1px 1px 0 var(--omega-ink);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
// Headline hover underline — an accent rule that grows from the left under
|
|
40
|
+
// the text (the editorial "this is a link" affordance on serif headlines).
|
|
41
|
+
@mixin nf-underline-grow($color: var(--omega-accent), $thickness: 2px) {
|
|
42
|
+
background-image: linear-gradient($color, $color);
|
|
43
|
+
background-repeat: no-repeat;
|
|
44
|
+
background-size: 0% $thickness;
|
|
45
|
+
background-position: 0 96%;
|
|
46
|
+
transition: background-size 0.35s cubic-bezier(0.22, 1, 0.36, 1);
|
|
47
|
+
|
|
48
|
+
&:hover {
|
|
49
|
+
background-size: 100% $thickness;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
// Newsflash root — the editorial skin re-VALUED onto the shared --omega-*
|
|
2
|
+
// token contract (core/css/tokens/_index.scss). The core sheet ships classy
|
|
3
|
+
// values as placeholders; this file restamps the same NAMES with paper/ink,
|
|
4
|
+
// so core chrome (shell, motion, fall-through app surfaces) and newsflash
|
|
5
|
+
// components all paint editorial without a parallel token economy. Genuinely
|
|
6
|
+
// newsflash-only extras (volt, ink panels, hard-offset shadows, grain) keep
|
|
7
|
+
// the --nf-* namespace.
|
|
8
|
+
//
|
|
9
|
+
// Plumbing mirrors the core sheet exactly (three stamps: OS preference via
|
|
10
|
+
// media query, appearance.js's data-bs-theme attribute beats it both ways),
|
|
11
|
+
// and the Bootstrap bridge mirrors classy's _root.scss: the
|
|
12
|
+
// `:root[data-bs-theme]` arm (0,1,1) outranks Bootstrap's own compiled
|
|
13
|
+
// [data-bs-theme='dark'] block (0,1,0) regardless of load order — which is
|
|
14
|
+
// what the cp71-era doubled-selector hack did, retired here.
|
|
15
|
+
//
|
|
16
|
+
// brand.color: when the consumer sets it, head.html emits inline accent
|
|
17
|
+
// ramps AFTER the css bundles — those win over the vermilion placeholders
|
|
18
|
+
// stamped here, exactly as the contract intends.
|
|
19
|
+
|
|
20
|
+
// Vendored faces take over the font tokens (scheme-agnostic — one :root
|
|
21
|
+
// stamp). Everything below (Bootstrap bridge, typography, components) reads
|
|
22
|
+
// THESE tokens, so a consumer re-points fonts by redefining two properties.
|
|
23
|
+
// --omega-font-marketing already defaults to the serif slot (the "mix"
|
|
24
|
+
// pairing) — exactly newsflash's voice; app display stays grotesk.
|
|
25
|
+
:root {
|
|
26
|
+
--omega-font-ui: 'Schibsted Grotesk', -apple-system, blinkmacsystemfont, 'Segoe UI', roboto, 'Helvetica Neue', arial, sans-serif;
|
|
27
|
+
--omega-font-serif: 'Fraunces', ui-serif, georgia, 'Times New Roman', times, serif;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
// Dark-mode accent derives from the COMPILE-TIME $primary so a consumer's
|
|
31
|
+
// Sass brand override survives dark mode (the stock vermilion keeps its
|
|
32
|
+
// hand-tuned brightening; any other color gets a generic white-mix lift).
|
|
33
|
+
// brand.color consumers get the real per-mode ramp from head.html instead.
|
|
34
|
+
$nf-primary-dark-mode: if($primary == $nf-vermilion, $nf-vermilion-dark-mode, mix(white, $primary, 15%));
|
|
35
|
+
|
|
36
|
+
// ============================================
|
|
37
|
+
// The editorial token sheet (light / dark)
|
|
38
|
+
// ============================================
|
|
39
|
+
// Values compute from the _config.scss knobs so a consumer's Sass overrides
|
|
40
|
+
// flow into the runtime tokens automatically.
|
|
41
|
+
@mixin nf-light-tokens {
|
|
42
|
+
--omega-ground: #{$nf-paper};
|
|
43
|
+
--omega-surface: #{$nf-paper}; // cards sit ON the paper — ink frames, not tint, mark the edge
|
|
44
|
+
--omega-surface-2: #{$nf-paper-2};
|
|
45
|
+
--omega-ink: #{$nf-ink};
|
|
46
|
+
--omega-ink-muted: #{$nf-ink-soft};
|
|
47
|
+
--omega-ink-faint: #{mix($nf-ink-soft, $nf-paper, 65%)};
|
|
48
|
+
--omega-line: #{rgba($nf-ink, 0.16)}; // soft in-content dividers
|
|
49
|
+
--omega-line-strong: #{$nf-ink}; // FULL ink — hairline frames are the identity
|
|
50
|
+
--omega-accent: #{$nf-vermilion}; // placeholder — brand.color wins at build
|
|
51
|
+
--omega-accent-hover: #{mix(black, $nf-vermilion, 10%)};
|
|
52
|
+
--omega-accent-active: #{mix(black, $nf-vermilion, 16%)};
|
|
53
|
+
--omega-accent-subtle: #{rgba($nf-vermilion, 0.12)};
|
|
54
|
+
--omega-accent-ink: #{$nf-ink}; // ink-on-vermilion (the ramp's WCAG pick too)
|
|
55
|
+
--omega-accent-ring: #{rgba($nf-vermilion, 0.35)};
|
|
56
|
+
--omega-ok: #2e7d4f;
|
|
57
|
+
--omega-ok-rgb: 46, 125, 79;
|
|
58
|
+
--omega-warn: #b45309; // true status amber — volt is a highlight, never a warning
|
|
59
|
+
--omega-warn-rgb: 180, 83, 9;
|
|
60
|
+
--omega-danger: #c81e1e;
|
|
61
|
+
--omega-danger-rgb: 200, 30, 30;
|
|
62
|
+
--omega-chart-2: #0f8fa9; // the CVD-validated teal (contract value)
|
|
63
|
+
--omega-shadow-1: 0 1px 2px rgb(23 19 16 / 8%);
|
|
64
|
+
--omega-shadow-2: #{$nf-shadow-pop};
|
|
65
|
+
|
|
66
|
+
// Editorial extras that flip with the scheme
|
|
67
|
+
--nf-blue: #{$nf-blue};
|
|
68
|
+
--nf-panel-bg: #{$nf-panel-bg};
|
|
69
|
+
--nf-panel-color: #{$nf-panel-color};
|
|
70
|
+
--nf-paper-translucent: #{rgba($nf-paper, 0.88)};
|
|
71
|
+
--nf-grain-opacity: 0.05;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
@mixin nf-dark-tokens {
|
|
75
|
+
--omega-ground: #{$nf-paper-dark};
|
|
76
|
+
--omega-surface: #{$nf-paper-2-dark}; // cards lift a step off the dark paper
|
|
77
|
+
--omega-surface-2: #{$nf-paper-2-dark};
|
|
78
|
+
--omega-ink: #{$nf-ink-dark};
|
|
79
|
+
--omega-ink-muted: #{$nf-ink-soft-dark};
|
|
80
|
+
--omega-ink-faint: #{mix($nf-ink-soft-dark, $nf-paper-dark, 65%)};
|
|
81
|
+
--omega-line: #{rgba($nf-ink-dark, 0.18)};
|
|
82
|
+
--omega-line-strong: #{$nf-ink-dark}; // cream frames on dark paper
|
|
83
|
+
--omega-accent: #{$nf-primary-dark-mode};
|
|
84
|
+
--omega-accent-hover: #{mix(black, $nf-primary-dark-mode, 10%)};
|
|
85
|
+
--omega-accent-active: #{mix(black, $nf-primary-dark-mode, 16%)};
|
|
86
|
+
--omega-accent-subtle: #{rgba($nf-primary-dark-mode, 0.16)};
|
|
87
|
+
--omega-accent-ink: #{$nf-ink}; // still ink — the brightened accent stays a light fill
|
|
88
|
+
--omega-accent-ring: #{rgba($nf-primary-dark-mode, 0.35)};
|
|
89
|
+
--omega-ok: #3fbf83;
|
|
90
|
+
--omega-ok-rgb: 63, 191, 131;
|
|
91
|
+
--omega-warn: #f5a524;
|
|
92
|
+
--omega-warn-rgb: 245, 165, 36;
|
|
93
|
+
--omega-danger: #f0574d;
|
|
94
|
+
--omega-danger-rgb: 240, 87, 77;
|
|
95
|
+
--omega-chart-2: #1f9fb4;
|
|
96
|
+
--omega-shadow-1: 0 1px 2px rgb(0 0 0 / 35%);
|
|
97
|
+
--omega-shadow-2: 0 18px 40px -18px rgb(0 0 0 / 80%); // pop barely reads on dark paper — deeper, tighter
|
|
98
|
+
|
|
99
|
+
--nf-blue: #{$nf-blue-dark-mode};
|
|
100
|
+
--nf-panel-bg: #{$nf-panel-bg-dark};
|
|
101
|
+
--nf-panel-color: #{$nf-panel-color-dark};
|
|
102
|
+
--nf-paper-translucent: #{rgba($nf-paper-dark, 0.88)};
|
|
103
|
+
--nf-grain-opacity: 0.07;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
:root {
|
|
107
|
+
@include nf-light-tokens;
|
|
108
|
+
|
|
109
|
+
// Shape + motion (scheme-agnostic re-values of the core slots)
|
|
110
|
+
--omega-radius-xs: 8px;
|
|
111
|
+
--omega-radius-s: 10px;
|
|
112
|
+
--omega-radius-m: #{$nf-radius-sm};
|
|
113
|
+
--omega-radius-l: #{$nf-radius};
|
|
114
|
+
--omega-radius-xl: 24px;
|
|
115
|
+
--omega-speed: 200ms;
|
|
116
|
+
--omega-speed-slow: 600ms;
|
|
117
|
+
--omega-ease: cubic-bezier(0.22, 1, 0.36, 1);
|
|
118
|
+
|
|
119
|
+
// Editorial constants (deliberately identical in both modes)
|
|
120
|
+
--nf-volt: #{$nf-volt};
|
|
121
|
+
--nf-volt-ink: #{$nf-volt-ink};
|
|
122
|
+
--nf-border-width: #{$nf-border-width};
|
|
123
|
+
|
|
124
|
+
// Frame + hard-shadow recipes — ink-colored, so they auto-flip to cream
|
|
125
|
+
// in dark mode through the tokens they reference.
|
|
126
|
+
--nf-border: var(--nf-border-width) solid var(--omega-line-strong);
|
|
127
|
+
--nf-shadow-hard: #{$nf-shadow-offset} #{$nf-shadow-offset} 0 var(--omega-ink);
|
|
128
|
+
--nf-shadow-hard-hover: #{$nf-shadow-offset-hover} #{$nf-shadow-offset-hover} 0 var(--omega-ink);
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
// OS preference carries when no explicit choice is stamped…
|
|
132
|
+
@media (prefers-color-scheme: dark) {
|
|
133
|
+
:root {
|
|
134
|
+
@include nf-dark-tokens;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
// …and the appearance.js stamp beats the OS in BOTH directions.
|
|
139
|
+
:root[data-bs-theme='dark'] {
|
|
140
|
+
@include nf-dark-tokens;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
:root[data-bs-theme='light'] {
|
|
144
|
+
@include nf-light-tokens;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
// ============================================
|
|
148
|
+
// Bootstrap bridge
|
|
149
|
+
// ============================================
|
|
150
|
+
// Bootstrap's CSS variables re-pointed at the tokens (classy's pattern), so
|
|
151
|
+
// mode switching, brand ramps, and consumer token overrides restyle every
|
|
152
|
+
// Bootstrap component with ZERO recompilation.
|
|
153
|
+
:root,
|
|
154
|
+
:root[data-bs-theme] {
|
|
155
|
+
// Surfaces + text
|
|
156
|
+
--bs-body-bg: var(--omega-ground);
|
|
157
|
+
--bs-body-color: var(--omega-ink);
|
|
158
|
+
--bs-emphasis-color: var(--omega-ink);
|
|
159
|
+
--bs-secondary-color: var(--omega-ink-muted);
|
|
160
|
+
--bs-tertiary-color: var(--omega-ink-faint);
|
|
161
|
+
--bs-secondary-bg: var(--omega-surface-2);
|
|
162
|
+
--bs-tertiary-bg: var(--omega-surface-2); // wells are paper-2 — newsflash has no white tier
|
|
163
|
+
--bs-heading-color: var(--omega-ink);
|
|
164
|
+
|
|
165
|
+
// Lines — soft dividers by default; frames opt into full ink via --nf-border
|
|
166
|
+
--bs-border-color: var(--omega-line);
|
|
167
|
+
--bs-border-color-translucent: var(--omega-line);
|
|
168
|
+
|
|
169
|
+
// Status (#13) — one green/amber/red across utilities and token paint alike
|
|
170
|
+
--bs-success: var(--omega-ok);
|
|
171
|
+
--bs-success-rgb: var(--omega-ok-rgb);
|
|
172
|
+
--bs-warning: var(--omega-warn);
|
|
173
|
+
--bs-warning-rgb: var(--omega-warn-rgb);
|
|
174
|
+
--bs-danger: var(--omega-danger);
|
|
175
|
+
--bs-danger-rgb: var(--omega-danger-rgb);
|
|
176
|
+
|
|
177
|
+
// Accent + links track the ramp (replaces the cp71 dark-block primary hack)
|
|
178
|
+
--bs-primary: var(--omega-accent);
|
|
179
|
+
--bs-link-color: var(--omega-accent);
|
|
180
|
+
--bs-link-hover-color: var(--omega-accent-hover);
|
|
181
|
+
|
|
182
|
+
// Type
|
|
183
|
+
--bs-body-font-family: var(--omega-font-ui);
|
|
184
|
+
--bs-font-monospace: var(--omega-font-mono);
|
|
185
|
+
|
|
186
|
+
// Focus
|
|
187
|
+
--bs-focus-ring-color: var(--omega-accent-ring);
|
|
188
|
+
|
|
189
|
+
// Code
|
|
190
|
+
--bs-code-color: var(--omega-ink);
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
// RGB triplets (Bootstrap's translucency utilities paint from
|
|
194
|
+
// rgba(var(--bs-*-rgb), opacity), which var() can't feed) — computed from
|
|
195
|
+
// the Sass knobs, same three-stamp plumbing as the sheet.
|
|
196
|
+
@mixin nf-light-rgb {
|
|
197
|
+
--bs-body-bg-rgb: #{red($nf-paper)}, #{green($nf-paper)}, #{blue($nf-paper)};
|
|
198
|
+
--bs-body-color-rgb: #{red($nf-ink)}, #{green($nf-ink)}, #{blue($nf-ink)};
|
|
199
|
+
--bs-emphasis-color-rgb: #{red($nf-ink)}, #{green($nf-ink)}, #{blue($nf-ink)};
|
|
200
|
+
--bs-secondary-color-rgb: #{red($nf-ink-soft)}, #{green($nf-ink-soft)}, #{blue($nf-ink-soft)};
|
|
201
|
+
--bs-secondary-bg-rgb: #{red($nf-paper-2)}, #{green($nf-paper-2)}, #{blue($nf-paper-2)};
|
|
202
|
+
--bs-tertiary-bg-rgb: #{red($nf-paper-2)}, #{green($nf-paper-2)}, #{blue($nf-paper-2)};
|
|
203
|
+
--bs-primary-rgb: #{red($nf-vermilion)}, #{green($nf-vermilion)}, #{blue($nf-vermilion)};
|
|
204
|
+
--bs-link-color-rgb: #{red($nf-vermilion)}, #{green($nf-vermilion)}, #{blue($nf-vermilion)};
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
@mixin nf-dark-rgb {
|
|
208
|
+
--bs-body-bg-rgb: #{red($nf-paper-dark)}, #{green($nf-paper-dark)}, #{blue($nf-paper-dark)};
|
|
209
|
+
--bs-body-color-rgb: #{red($nf-ink-dark)}, #{green($nf-ink-dark)}, #{blue($nf-ink-dark)};
|
|
210
|
+
--bs-emphasis-color-rgb: #{red($nf-ink-dark)}, #{green($nf-ink-dark)}, #{blue($nf-ink-dark)};
|
|
211
|
+
--bs-secondary-color-rgb: #{red($nf-ink-soft-dark)}, #{green($nf-ink-soft-dark)}, #{blue($nf-ink-soft-dark)};
|
|
212
|
+
--bs-secondary-bg-rgb: #{red($nf-paper-2-dark)}, #{green($nf-paper-2-dark)}, #{blue($nf-paper-2-dark)};
|
|
213
|
+
--bs-tertiary-bg-rgb: #{red($nf-paper-2-dark)}, #{green($nf-paper-2-dark)}, #{blue($nf-paper-2-dark)};
|
|
214
|
+
--bs-primary-rgb: #{red($nf-primary-dark-mode)}, #{green($nf-primary-dark-mode)}, #{blue($nf-primary-dark-mode)};
|
|
215
|
+
--bs-link-color-rgb: #{red($nf-primary-dark-mode)}, #{green($nf-primary-dark-mode)}, #{blue($nf-primary-dark-mode)};
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
:root {
|
|
219
|
+
@include nf-light-rgb;
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
@media (prefers-color-scheme: dark) {
|
|
223
|
+
:root {
|
|
224
|
+
@include nf-dark-rgb;
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
:root[data-bs-theme='dark'] {
|
|
229
|
+
@include nf-dark-rgb;
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
:root[data-bs-theme='light'] {
|
|
233
|
+
@include nf-light-rgb;
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
// The theme uses --bs-card-bg as its universal "framed paper" background
|
|
237
|
+
// (dropdowns, the mobile nav drawer, accordions, pricing chrome). Root-level
|
|
238
|
+
// so it resolves on EVERY consumer; an undefined var() in a background
|
|
239
|
+
// shorthand computes to transparent, which is how invisible panels happen.
|
|
240
|
+
:root {
|
|
241
|
+
--bs-card-bg: var(--omega-surface);
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
// Component surfaces ride the tokens too. (Volt ::selection lives in
|
|
245
|
+
// css/base/_utilities.scss with the rest of the editorial garnish.)
|
|
246
|
+
.card,
|
|
247
|
+
.modal-content,
|
|
248
|
+
.offcanvas,
|
|
249
|
+
.toast,
|
|
250
|
+
.popover {
|
|
251
|
+
--bs-card-bg: var(--omega-surface);
|
|
252
|
+
--bs-card-border-color: var(--omega-line);
|
|
253
|
+
--bs-modal-bg: var(--omega-surface);
|
|
254
|
+
--bs-offcanvas-bg: var(--omega-surface);
|
|
255
|
+
--bs-toast-bg: var(--omega-surface);
|
|
256
|
+
--bs-popover-bg: var(--omega-surface);
|
|
257
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
// Newsflash Theme — Typography
|
|
2
|
+
// Optical-sized serif headlines over a clean grotesk body — the editorial
|
|
3
|
+
// voice of the theme. Fonts are loaded via the theme's `head` block in
|
|
4
|
+
// base.html (Google Fonts), NOT @import-ed here, to avoid render-blocking
|
|
5
|
+
// duplicate loads.
|
|
6
|
+
|
|
7
|
+
// NOTE: families, weights, and line-heights ship as Bootstrap vars in
|
|
8
|
+
// _config.scss ($headings-*, $display-*, $lead-font-weight, $line-height-base)
|
|
9
|
+
// — NOT as element rules here. Page bundles re-emit Bootstrap AFTER the main
|
|
10
|
+
// bundle, so element-rule overrides of Bootstrap-owned props would silently
|
|
11
|
+
// lose on any page that ships page CSS (the stock 300 display/lead weights
|
|
12
|
+
// would come back). Only non-Bootstrap props live below.
|
|
13
|
+
|
|
14
|
+
body {
|
|
15
|
+
-webkit-font-smoothing: antialiased;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
h1, h2, h3, h4, h5, h6,
|
|
19
|
+
.h1, .h2, .h3, .h4, .h5, .h6 {
|
|
20
|
+
font-optical-sizing: auto;
|
|
21
|
+
letter-spacing: $nf-heading-letter-spacing;
|
|
22
|
+
text-wrap: balance;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
// Display headlines: tighter tracking — the front-page splash voice
|
|
26
|
+
// (weight 550 + leading 1.04 come from $display-* in _config.scss).
|
|
27
|
+
.display-1, .display-2, .display-3, .display-4, .display-5, .display-6 {
|
|
28
|
+
font-family: $nf-font-display;
|
|
29
|
+
font-optical-sizing: auto;
|
|
30
|
+
letter-spacing: -0.022em;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
// Deks (the standfirst under a headline) — .lead reads as ink-soft prose.
|
|
34
|
+
.lead {
|
|
35
|
+
color: var(--bs-secondary-color);
|
|
36
|
+
line-height: 1.6;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
// Plain in-content links: vermilion with a visible underline. Buttons set
|
|
40
|
+
// their own text color via --bs-btn-color — guard them so labels never turn
|
|
41
|
+
// vermilion on hover.
|
|
42
|
+
a {
|
|
43
|
+
text-underline-offset: 0.15em;
|
|
44
|
+
text-decoration-thickness: 1.5px;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
a.btn:hover {
|
|
48
|
+
color: var(--bs-btn-color);
|
|
49
|
+
}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
// Newsflash Theme — Base
|
|
2
|
+
// Body surface, the film-grain overlay, selection color, and editorial
|
|
3
|
+
// treatments of utility classes the shared (Classy-derived) layouts emit.
|
|
4
|
+
// No theme-prefixed classes in markup: the look comes from restyling
|
|
5
|
+
// STANDARD classes so markup stays swappable across themes.
|
|
6
|
+
|
|
7
|
+
// Body surface
|
|
8
|
+
body {
|
|
9
|
+
background-color: var(--omega-ground);
|
|
10
|
+
color: var(--bs-body-color);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
// ============================================
|
|
14
|
+
// Film grain — the analog print texture over everything
|
|
15
|
+
// ============================================
|
|
16
|
+
// Fixed SVG-noise overlay; pointer-events none so it never intercepts input.
|
|
17
|
+
// Multiply on paper, screen on dark paper (multiply would just vanish).
|
|
18
|
+
body::after {
|
|
19
|
+
content: "";
|
|
20
|
+
position: fixed;
|
|
21
|
+
inset: 0;
|
|
22
|
+
z-index: 999;
|
|
23
|
+
pointer-events: none;
|
|
24
|
+
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.55'/%3E%3C/svg%3E");
|
|
25
|
+
opacity: var(--nf-grain-opacity);
|
|
26
|
+
mix-blend-mode: multiply;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
[data-bs-theme="dark"] body::after {
|
|
30
|
+
mix-blend-mode: screen;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
// Volt selection — the highlighter
|
|
34
|
+
::selection {
|
|
35
|
+
background: var(--nf-volt);
|
|
36
|
+
color: var(--nf-volt-ink);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
// ============================================
|
|
40
|
+
// Accent text (headline_accent spans) — italic serif vermilion
|
|
41
|
+
// ============================================
|
|
42
|
+
// Fork markup wears newsflash-accent; base markup reaches the same look
|
|
43
|
+
// through the .omega-display em rule below.
|
|
44
|
+
.newsflash-accent {
|
|
45
|
+
font-family: $nf-font-display;
|
|
46
|
+
font-style: italic;
|
|
47
|
+
color: var(--omega-accent);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
// ============================================
|
|
51
|
+
// Base voice re-tunes: the omega-* type vocabulary the fallthrough
|
|
52
|
+
// surfaces speak (classy's typography partial is deliberately NOT imported;
|
|
53
|
+
// these are the pieces base markup actually uses, in the editorial voice)
|
|
54
|
+
// ============================================
|
|
55
|
+
// Marketing display: optical serif (Fraunces via --omega-font-marketing),
|
|
56
|
+
// accents italic vermilion (the newsflash-accent treatment on base markup).
|
|
57
|
+
.omega-display {
|
|
58
|
+
font-family: var(--omega-font-marketing);
|
|
59
|
+
font-optical-sizing: auto;
|
|
60
|
+
font-weight: 550;
|
|
61
|
+
letter-spacing: -0.022em;
|
|
62
|
+
line-height: 1.06;
|
|
63
|
+
|
|
64
|
+
em,
|
|
65
|
+
i {
|
|
66
|
+
font-style: italic;
|
|
67
|
+
color: var(--omega-accent);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
.omega-display--hero {
|
|
72
|
+
font-size: clamp(2.6rem, 5.4vw, 4.4rem);
|
|
73
|
+
line-height: 1.04;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
.omega-display--page {
|
|
77
|
+
font-size: clamp(2.25rem, 4.6vw, 3.375rem);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
.omega-display--section {
|
|
81
|
+
font-size: clamp(1.875rem, 3.4vw, 2.625rem);
|
|
82
|
+
line-height: 1.08;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
// Micro labels become the vermilion kicker voice (sans dot; the dot is the
|
|
86
|
+
// fork kicker's flourish). Authored in full: classy's typography partial
|
|
87
|
+
// (the usual .omega-micro home) is not imported.
|
|
88
|
+
.omega-micro {
|
|
89
|
+
font-family: $font-family-sans-serif;
|
|
90
|
+
font-size: 0.72rem;
|
|
91
|
+
font-weight: 800;
|
|
92
|
+
letter-spacing: 0.12em;
|
|
93
|
+
text-transform: uppercase;
|
|
94
|
+
color: var(--omega-accent);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
// The faintest voice (footnotes, reassurance lines): same home story.
|
|
98
|
+
.omega-quiet {
|
|
99
|
+
color: var(--omega-ink-faint);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
// Serif voice on arbitrary elements (status page numbers): same home story.
|
|
103
|
+
.text-marketing {
|
|
104
|
+
font-family: var(--omega-font-marketing);
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
// In-page anchors clear the sticky masthead.
|
|
108
|
+
[id] {
|
|
109
|
+
scroll-margin-top: 6rem;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
// ============================================
|
|
113
|
+
// Highlighter swipe — volt half-height marker behind inline text
|
|
114
|
+
// ============================================
|
|
115
|
+
mark,
|
|
116
|
+
.highlight {
|
|
117
|
+
background: linear-gradient(transparent 55%, var(--nf-volt) 55%);
|
|
118
|
+
color: inherit;
|
|
119
|
+
padding: 0 0.12em;
|
|
120
|
+
box-decoration-break: clone;
|
|
121
|
+
-webkit-box-decoration-break: clone;
|
|
122
|
+
}
|