@omega.js/web 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 +640 -0
- package/bin/omega +2 -0
- package/bin/omega-web +2 -0
- package/bin/omg +2 -0
- package/core/_includes/admin/sections/sidebar.json +100 -0
- package/core/_includes/admin/sections/topbar.json +11 -0
- package/core/_includes/backend/sections/sidebar.json +39 -0
- package/core/_includes/backend/sections/topbar.json +16 -0
- package/core/_includes/core/body.html +102 -0
- package/core/_includes/core/foot.html +536 -0
- package/core/_includes/core/head.html +423 -0
- package/core/_includes/core/pricing/price-per-unit.html +33 -0
- package/core/_includes/core/showcase/entry-body.html +94 -0
- package/core/_includes/core/showcase/index-body.html +43 -0
- package/core/_includes/core/showcase/nav.html +60 -0
- package/core/_includes/frontend/sections/footer.json +74 -0
- package/core/_includes/frontend/sections/nav.json +70 -0
- package/core/_includes/global/sections/account.json +31 -0
- package/core/_includes/modules/engagement/giscus.html +26 -0
- package/core/_layouts/blueprint/404.html +10 -0
- package/core/_layouts/blueprint/about.html +10 -0
- package/core/_layouts/blueprint/account/index.html +11 -0
- package/core/_layouts/blueprint/admin/calendar/index.html +590 -0
- package/core/_layouts/blueprint/admin/dashboard/index.html +301 -0
- package/core/_layouts/blueprint/admin/firebase/index.html +214 -0
- package/core/_layouts/blueprint/admin/posts/editor.html +157 -0
- package/core/_layouts/blueprint/admin/posts/index.html +126 -0
- package/core/_layouts/blueprint/admin/stackblitz/index.html +30 -0
- package/core/_layouts/blueprint/admin/studio/index.html +85 -0
- package/core/_layouts/blueprint/admin/users/index.html +272 -0
- package/core/_layouts/blueprint/admin/users/new.html +82 -0
- package/core/_layouts/blueprint/admin/verts/index.html +204 -0
- package/core/_layouts/blueprint/alternatives/alternative.html +15 -0
- package/core/_layouts/blueprint/alternatives/index.html +10 -0
- package/core/_layouts/blueprint/app.html +10 -0
- package/core/_layouts/blueprint/auth/reset.html +19 -0
- package/core/_layouts/blueprint/auth/signin.html +19 -0
- package/core/_layouts/blueprint/auth/signup.html +19 -0
- package/core/_layouts/blueprint/auth/token.html +19 -0
- package/core/_layouts/blueprint/blog/categories/category.html +8 -0
- package/core/_layouts/blueprint/blog/categories/index.html +11 -0
- package/core/_layouts/blueprint/blog/index.html +10 -0
- package/core/_layouts/blueprint/blog/post.html +5 -0
- package/core/_layouts/blueprint/blog/tags/index.html +11 -0
- package/core/_layouts/blueprint/blog/tags/tag.html +8 -0
- package/core/_layouts/blueprint/careers.md +13 -0
- package/core/_layouts/blueprint/collection/category.html +9 -0
- package/core/_layouts/blueprint/collection/document.html +9 -0
- package/core/_layouts/blueprint/collection/index.html +9 -0
- package/core/_layouts/blueprint/connections/callback.html +11 -0
- package/core/_layouts/blueprint/contact.html +14 -0
- package/core/_layouts/blueprint/dashboard/index.html +10 -0
- package/core/_layouts/blueprint/download.html +20 -0
- package/core/_layouts/blueprint/extension/index.html +14 -0
- package/core/_layouts/blueprint/extension/installed.html +11 -0
- package/core/_layouts/blueprint/feedback.html +10 -0
- package/core/_layouts/blueprint/index.html +16 -0
- package/core/_layouts/blueprint/legal/cookies.md +57 -0
- package/core/_layouts/blueprint/legal/privacy.md +109 -0
- package/core/_layouts/blueprint/legal/terms.md +155 -0
- package/core/_layouts/blueprint/payment/checkout.html +15 -0
- package/core/_layouts/blueprint/payment/confirmation.html +14 -0
- package/core/_layouts/blueprint/portal/email-preferences.html +15 -0
- package/core/_layouts/blueprint/pricing.html +20 -0
- package/core/_layouts/blueprint/status.html +10 -0
- package/core/_layouts/blueprint/team/index.html +10 -0
- package/core/_layouts/blueprint/team/member.html +5 -0
- package/core/_layouts/blueprint/updates/index.html +10 -0
- package/core/_layouts/blueprint/updates/update.html +10 -0
- package/core/_layouts/core/root.html +45 -0
- package/core/_layouts/modules/utilities/redirect.html +129 -0
- package/core/css/_studio.scss +237 -0
- package/core/css/components/_index.scss +146 -0
- package/core/css/core/_.scss +0 -0
- package/core/css/core/_alert.scss +87 -0
- package/core/css/core/_animations.scss +343 -0
- package/core/css/core/_bindings.scss +116 -0
- package/core/css/core/_blog-search.scss +57 -0
- package/core/css/core/_chatsy.scss +61 -0
- package/core/css/core/_consent.scss +424 -0
- package/core/css/core/_custom-font-awesome.scss +146 -0
- package/core/css/core/_exit-popup.scss +42 -0
- package/core/css/core/_generated-badge.scss +33 -0
- package/core/css/core/_initialize.scss +29 -0
- package/core/css/core/_lazy-loading.scss +104 -0
- package/core/css/core/_social-sharing.scss +41 -0
- package/core/css/core/_tones.scss +32 -0
- package/core/css/core/_utilities.scss +157 -0
- package/core/css/main.scss +54 -0
- package/core/css/motion/_index.scss +368 -0
- package/core/css/pages/404/index.scss +0 -0
- package/core/css/pages/admin/calendar/index.scss +692 -0
- package/core/css/pages/admin/firebase/index.scss +33 -0
- package/core/css/pages/admin/index.scss +9 -0
- package/core/css/pages/admin/users/index.scss +9 -0
- package/core/css/pages/admin/verts/index.scss +9 -0
- package/core/css/pages/alternatives/[alternative]/index.scss +0 -0
- package/core/css/pages/blog/[slug].scss +55 -0
- package/core/css/pages/dashboard/account/index.scss +242 -0
- package/core/css/pages/download/index.scss +480 -0
- package/core/css/pages/extension/installed/index.scss +317 -0
- package/core/css/pages/feedback/index.scss +31 -0
- package/core/css/pages/payment/confirmation/index.scss +14 -0
- package/core/css/pages/pricing/index.scss +0 -0
- package/core/css/pages/status/index.scss +162 -0
- package/core/css/pages/test/libraries/layers/index.scss +28 -0
- package/core/css/pages/updates/[update].scss +46 -0
- package/core/css/pages/updates/index.scss +13 -0
- package/core/css/shell/_index.scss +207 -0
- package/core/css/tokens/_index.scss +166 -0
- package/core/icons/flags/ar.svg +1 -0
- package/core/icons/flags/bd.svg +1 -0
- package/core/icons/flags/ca.svg +1 -0
- package/core/icons/flags/ch.svg +1 -0
- package/core/icons/flags/cn.svg +1 -0
- package/core/icons/flags/co.svg +1 -0
- package/core/icons/flags/cw.svg +1 -0
- package/core/icons/flags/cz.svg +1 -0
- package/core/icons/flags/de.svg +1 -0
- package/core/icons/flags/dk.svg +1 -0
- package/core/icons/flags/eg.svg +1 -0
- package/core/icons/flags/es.svg +1 -0
- package/core/icons/flags/fi.svg +1 -0
- package/core/icons/flags/fr.svg +1 -0
- package/core/icons/flags/gb.svg +1 -0
- package/core/icons/flags/gq.svg +1 -0
- package/core/icons/flags/gr.svg +1 -0
- package/core/icons/flags/gt.svg +1 -0
- package/core/icons/flags/hn.svg +1 -0
- package/core/icons/flags/id.svg +1 -0
- package/core/icons/flags/ie.svg +1 -0
- package/core/icons/flags/in.svg +1 -0
- package/core/icons/flags/ir.svg +1 -0
- package/core/icons/flags/it.svg +1 -0
- package/core/icons/flags/jp.svg +1 -0
- package/core/icons/flags/kp.svg +1 -0
- package/core/icons/flags/kr.svg +1 -0
- package/core/icons/flags/ly.svg +1 -0
- package/core/icons/flags/ma.svg +1 -0
- package/core/icons/flags/mu.svg +1 -0
- package/core/icons/flags/mx.svg +1 -0
- package/core/icons/flags/ng.svg +1 -0
- package/core/icons/flags/pa.svg +1 -0
- package/core/icons/flags/ph.svg +1 -0
- package/core/icons/flags/pk.svg +1 -0
- package/core/icons/flags/pt.svg +1 -0
- package/core/icons/flags/ru.svg +1 -0
- package/core/icons/flags/sa.svg +1 -0
- package/core/icons/flags/sd.svg +1 -0
- package/core/icons/flags/se.svg +1 -0
- package/core/icons/flags/th.svg +1 -0
- package/core/icons/flags/tm.svg +1 -0
- package/core/icons/flags/tr.svg +1 -0
- package/core/icons/flags/us.svg +1 -0
- package/core/icons/flags/uy.svg +1 -0
- package/core/icons/flags/vn.svg +1 -0
- package/core/icons/flags/za.svg +1 -0
- package/core/images/exit-popup/subscriber-1.jpg +0 -0
- package/core/images/exit-popup/subscriber-2.jpg +0 -0
- package/core/images/exit-popup/subscriber-3.jpg +0 -0
- package/core/images/exit-popup/subscriber-4.jpg +0 -0
- package/core/images/placeholder/photo-1.jpg +0 -0
- package/core/images/placeholder/photo-2.jpg +0 -0
- package/core/images/placeholder/photo-3.jpg +0 -0
- package/core/js/core/analytics-loader.js +253 -0
- package/core/js/core/app-shell.js +136 -0
- package/core/js/core/appearance.js +195 -0
- package/core/js/core/auth.js +457 -0
- package/core/js/core/complete.js +72 -0
- package/core/js/core/consent.js +384 -0
- package/core/js/core/dev-icon-audit.js +63 -0
- package/core/js/core/dev-palette.js +670 -0
- package/core/js/core/dev-sections.js +53 -0
- package/core/js/core/exit-popup.js +276 -0
- package/core/js/core/initialize.js +8 -0
- package/core/js/core/language-switcher.js +167 -0
- package/core/js/core/lazy-loading.js +479 -0
- package/core/js/core/motion.js +28 -0
- package/core/js/core/query-strings.js +146 -0
- package/core/js/core/service-worker.js +28 -0
- package/core/js/core/social-sharing.js +293 -0
- package/core/js/first-paint.js +35 -0
- package/core/js/layouts/modules/utilities/redirect.js +122 -0
- package/core/js/libs/admin-helpers.js +62 -0
- package/core/js/libs/alert-dismiss.js +35 -0
- package/core/js/libs/analytics.js +368 -0
- package/core/js/libs/auth/email.js +144 -0
- package/core/js/libs/auth/errors.js +119 -0
- package/core/js/libs/auth/forms.js +206 -0
- package/core/js/libs/auth/index.js +181 -0
- package/core/js/libs/auth/oauth.js +394 -0
- package/core/js/libs/auth/orphan.js +110 -0
- package/core/js/libs/auth/password-toggle.js +44 -0
- package/core/js/libs/auth/session-params.js +266 -0
- package/core/js/libs/auth/tracking.js +41 -0
- package/core/js/libs/charts.js +516 -0
- package/core/js/libs/consent-region.js +127 -0
- package/core/js/libs/dev.js +150 -0
- package/core/js/libs/graph.js +201 -0
- package/core/js/libs/initialize-tooltips.js +31 -0
- package/core/js/libs/logger.js +38 -0
- package/core/js/libs/omega-copy.js +89 -0
- package/core/js/libs/path-prefix.js +44 -0
- package/core/js/libs/payment-config.js +76 -0
- package/core/js/libs/recaptcha.js +94 -0
- package/core/js/libs/sale-name.js +295 -0
- package/core/js/libs/showcase-frames.js +37 -0
- package/core/js/libs/srcset.js +69 -0
- package/core/js/libs/tracking-consent.js +161 -0
- package/core/js/main.js +144 -0
- package/core/js/pages/404/index.js +57 -0
- package/core/js/pages/admin/calendar/calendar-core.js +701 -0
- package/core/js/pages/admin/calendar/calendar-events.js +853 -0
- package/core/js/pages/admin/calendar/calendar-renderer.js +807 -0
- package/core/js/pages/admin/calendar/campaign-preview.js +105 -0
- package/core/js/pages/admin/calendar/index.js +40 -0
- package/core/js/pages/admin/firebase/index.js +727 -0
- package/core/js/pages/admin/index.js +531 -0
- package/core/js/pages/admin/posts/editor/index.js +230 -0
- package/core/js/pages/admin/posts/index.js +237 -0
- package/core/js/pages/admin/studio/index.js +538 -0
- package/core/js/pages/admin/users/index.js +669 -0
- package/core/js/pages/admin/users/new/index.js +65 -0
- package/core/js/pages/admin/verts/index.js +407 -0
- package/core/js/pages/alternatives/[alternative]/index.js +17 -0
- package/core/js/pages/app/index.js +135 -0
- package/core/js/pages/blog/[slug].js +132 -0
- package/core/js/pages/blog/_search.mjs +108 -0
- package/core/js/pages/blog/index.js +193 -0
- package/core/js/pages/blog/page/[num]/index.js +7 -0
- package/core/js/pages/connections/callback/index.js +148 -0
- package/core/js/pages/contact/index.js +170 -0
- package/core/js/pages/cookies.js +2 -0
- package/core/js/pages/dashboard/account/index.js +366 -0
- package/core/js/pages/dashboard/account/modules/orders.js +82 -0
- package/core/js/pages/dashboard/account/sections/api-keys.js +149 -0
- package/core/js/pages/dashboard/account/sections/billing.js +1667 -0
- package/core/js/pages/dashboard/account/sections/connections.js +333 -0
- package/core/js/pages/dashboard/account/sections/data-request.js +225 -0
- package/core/js/pages/dashboard/account/sections/delete.js +80 -0
- package/core/js/pages/dashboard/account/sections/notifications.js +167 -0
- package/core/js/pages/dashboard/account/sections/orders.js +151 -0
- package/core/js/pages/dashboard/account/sections/profile.js +200 -0
- package/core/js/pages/dashboard/account/sections/referrals.js +217 -0
- package/core/js/pages/dashboard/account/sections/refund.js +253 -0
- package/core/js/pages/dashboard/account/sections/security.js +726 -0
- package/core/js/pages/dashboard/account/sections/team.js +247 -0
- package/core/js/pages/download/index.js +418 -0
- package/core/js/pages/extension/index.js +164 -0
- package/core/js/pages/extension/installed/index.js +135 -0
- package/core/js/pages/feedback/index.js +193 -0
- package/core/js/pages/legal/_document.js +91 -0
- package/core/js/pages/payment/checkout/index.js +420 -0
- package/core/js/pages/payment/checkout/modules/api.js +139 -0
- package/core/js/pages/payment/checkout/modules/dev-section.js +175 -0
- package/core/js/pages/payment/checkout/modules/discount.js +69 -0
- package/core/js/pages/payment/checkout/modules/pricing.js +73 -0
- package/core/js/pages/payment/checkout/modules/state.js +339 -0
- package/core/js/pages/payment/checkout/modules/tracking.js +54 -0
- package/core/js/pages/payment/confirmation/index.js +91 -0
- package/core/js/pages/payment/confirmation/modules/celebration.js +45 -0
- package/core/js/pages/payment/confirmation/modules/state.js +112 -0
- package/core/js/pages/payment/confirmation/modules/tracking.js +133 -0
- package/core/js/pages/payment/confirmation/modules/verify.js +142 -0
- package/core/js/pages/portal/email-preferences/index.js +183 -0
- package/core/js/pages/pricing/index.js +425 -0
- package/core/js/pages/privacy.js +2 -0
- package/core/js/pages/reset/index.js +12 -0
- package/core/js/pages/signin/index.js +22 -0
- package/core/js/pages/signup/index.js +23 -0
- package/core/js/pages/status/index.js +687 -0
- package/core/js/pages/terms.js +2 -0
- package/core/js/pages/test/components/[category]/[name]/index.js +26 -0
- package/core/js/pages/test/libraries/appearance/index.js +220 -0
- package/core/js/pages/test/libraries/form-manager/index.js +328 -0
- package/core/js/pages/test/libraries/layers/index.js +16 -0
- package/core/js/pages/test/libraries/verts/index.js +68 -0
- package/core/js/pages/test/sections/[category]/[name]/index.js +28 -0
- package/core/js/pages/test/styleguide/index.js +35 -0
- package/core/js/pages/token/index.js +203 -0
- package/core/logos/brandmarks/original/apple-app-store.svg +1 -0
- package/core/logos/brandmarks/original/apple.svg +6 -0
- package/core/logos/brandmarks/original/bitbucket.svg +14 -0
- package/core/logos/brandmarks/original/bitcoin.svg +1 -0
- package/core/logos/brandmarks/original/bluesky.svg +7 -0
- package/core/logos/brandmarks/original/bootstrap.svg +43 -0
- package/core/logos/brandmarks/original/brave.svg +1 -0
- package/core/logos/brandmarks/original/chrome.svg +1 -0
- package/core/logos/brandmarks/original/discord.svg +1 -0
- package/core/logos/brandmarks/original/dropbox.svg +10 -0
- package/core/logos/brandmarks/original/edge.svg +1 -0
- package/core/logos/brandmarks/original/facebook-f.svg +1 -0
- package/core/logos/brandmarks/original/facebook.svg +8 -0
- package/core/logos/brandmarks/original/figma.svg +10 -0
- package/core/logos/brandmarks/original/firefox.svg +1 -0
- package/core/logos/brandmarks/original/github.svg +6 -0
- package/core/logos/brandmarks/original/gitlab.svg +17 -0
- package/core/logos/brandmarks/original/google-a-s.svg +1 -0
- package/core/logos/brandmarks/original/google-chrome-webstore.svg +49 -0
- package/core/logos/brandmarks/original/google-play-store.svg +1 -0
- package/core/logos/brandmarks/original/google-web-search.svg +1 -0
- package/core/logos/brandmarks/original/google.svg +1 -0
- package/core/logos/brandmarks/original/gulp.svg +4 -0
- package/core/logos/brandmarks/original/html-5.svg +1 -0
- package/core/logos/brandmarks/original/instagram.svg +1 -0
- package/core/logos/brandmarks/original/javascript.svg +1 -0
- package/core/logos/brandmarks/original/jira.svg +18 -0
- package/core/logos/brandmarks/original/kick.svg +7 -0
- package/core/logos/brandmarks/original/linkedin.svg +1 -0
- package/core/logos/brandmarks/original/linux.svg +28 -0
- package/core/logos/brandmarks/original/messenger.svg +16 -0
- package/core/logos/brandmarks/original/microsoft.svg +1 -0
- package/core/logos/brandmarks/original/npm.svg +8 -0
- package/core/logos/brandmarks/original/opera.svg +1 -0
- package/core/logos/brandmarks/original/patreon.svg +6 -0
- package/core/logos/brandmarks/original/pinterest.svg +6 -0
- package/core/logos/brandmarks/original/reddit.svg +1 -0
- package/core/logos/brandmarks/original/safari.svg +31 -0
- package/core/logos/brandmarks/original/sass.svg +3 -0
- package/core/logos/brandmarks/original/signal.svg +6 -0
- package/core/logos/brandmarks/original/skype.svg +47 -0
- package/core/logos/brandmarks/original/slack.svg +33 -0
- package/core/logos/brandmarks/original/soundcloud.svg +1 -0
- package/core/logos/brandmarks/original/spotify.svg +5 -0
- package/core/logos/brandmarks/original/steam.svg +6 -0
- package/core/logos/brandmarks/original/telegram.svg +14 -0
- package/core/logos/brandmarks/original/tiktok.svg +1 -0
- package/core/logos/brandmarks/original/trello.svg +16 -0
- package/core/logos/brandmarks/original/tumblr.svg +1 -0
- package/core/logos/brandmarks/original/twitch.svg +6 -0
- package/core/logos/brandmarks/original/twitter.svg +6 -0
- package/core/logos/brandmarks/original/unity.svg +6 -0
- package/core/logos/brandmarks/original/x.svg +7 -0
- package/core/logos/brandmarks/original/yahoo-y.svg +1 -0
- package/core/logos/brandmarks/original/youtube-square.svg +1 -0
- package/core/logos/brandmarks/original/youtube.svg +1 -0
- package/core/logos/combomarks/dark/airbnb.svg +30 -0
- package/core/logos/combomarks/dark/slack.svg +38 -0
- package/core/logos/combomarks/dark/spotify.svg +35 -0
- package/core/logos/combomarks/dark/twilio.svg +26 -0
- package/core/logos/combomarks/dark/weebly.svg +35 -0
- package/core/logos/combomarks/gray/airbnb.svg +33 -0
- package/core/logos/combomarks/gray/alphabet.svg +23 -0
- package/core/logos/combomarks/gray/amazon.svg +38 -0
- package/core/logos/combomarks/gray/boring-company.svg +91 -0
- package/core/logos/combomarks/gray/burberry.svg +239 -0
- package/core/logos/combomarks/gray/embark.svg +21 -0
- package/core/logos/combomarks/gray/fitbit.svg +61 -0
- package/core/logos/combomarks/gray/fred-perry.svg +94 -0
- package/core/logos/combomarks/gray/google.svg +27 -0
- package/core/logos/combomarks/gray/hollister.svg +34 -0
- package/core/logos/combomarks/gray/hubspot.svg +27 -0
- package/core/logos/combomarks/gray/kaplan.svg +33 -0
- package/core/logos/combomarks/gray/lenovo.svg +27 -0
- package/core/logos/combomarks/gray/levis.svg +25 -0
- package/core/logos/combomarks/gray/mapbox.svg +37 -0
- package/core/logos/combomarks/gray/netflix.svg +15 -0
- package/core/logos/combomarks/gray/new-balance.svg +32 -0
- package/core/logos/combomarks/gray/nike.svg +17 -0
- package/core/logos/combomarks/gray/paypal.svg +41 -0
- package/core/logos/combomarks/gray/puma.svg +82 -0
- package/core/logos/combomarks/gray/samsung.svg +26 -0
- package/core/logos/combomarks/gray/shopify.svg +36 -0
- package/core/logos/combomarks/gray/slack.svg +42 -0
- package/core/logos/combomarks/gray/spotify.svg +38 -0
- package/core/logos/combomarks/gray/stripe.svg +24 -0
- package/core/logos/combomarks/gray/tnf.svg +30 -0
- package/core/logos/combomarks/gray/twilio.svg +29 -0
- package/core/logos/combomarks/gray/uber.svg +24 -0
- package/core/logos/combomarks/gray/weebly.svg +38 -0
- package/core/logos/combomarks/original/airbnb.svg +33 -0
- package/core/logos/combomarks/original/alphabet.svg +23 -0
- package/core/logos/combomarks/original/amazon.svg +38 -0
- package/core/logos/combomarks/original/asana.svg +8 -0
- package/core/logos/combomarks/original/boring-company.svg +91 -0
- package/core/logos/combomarks/original/discord.svg +6 -0
- package/core/logos/combomarks/original/embark.svg +24 -0
- package/core/logos/combomarks/original/fitbit.svg +60 -0
- package/core/logos/combomarks/original/github.svg +6 -0
- package/core/logos/combomarks/original/gitlab.svg +20 -0
- package/core/logos/combomarks/original/google.svg +28 -0
- package/core/logos/combomarks/original/hubspot.svg +29 -0
- package/core/logos/combomarks/original/instagram.svg +7 -0
- package/core/logos/combomarks/original/kickstarter.svg +6 -0
- package/core/logos/combomarks/original/lenovo.svg +24 -0
- package/core/logos/combomarks/original/linkedin.svg +6 -0
- package/core/logos/combomarks/original/mapbox.svg +39 -0
- package/core/logos/combomarks/original/mastodon.svg +7 -0
- package/core/logos/combomarks/original/medium.svg +6 -0
- package/core/logos/combomarks/original/meta.svg +22 -0
- package/core/logos/combomarks/original/microsoft.svg +13 -0
- package/core/logos/combomarks/original/monday.svg +12 -0
- package/core/logos/combomarks/original/netflix.svg +15 -0
- package/core/logos/combomarks/original/notion.svg +9 -0
- package/core/logos/combomarks/original/paypal.svg +41 -0
- package/core/logos/combomarks/original/reddit.svg +13 -0
- package/core/logos/combomarks/original/samsung.svg +25 -0
- package/core/logos/combomarks/original/shopify.svg +35 -0
- package/core/logos/combomarks/original/slack.svg +47 -0
- package/core/logos/combomarks/original/spotify.svg +37 -0
- package/core/logos/combomarks/original/stackoverflow.svg +28 -0
- package/core/logos/combomarks/original/stripe.svg +24 -0
- package/core/logos/combomarks/original/tiktok.svg +12 -0
- package/core/logos/combomarks/original/tumblr.svg +6 -0
- package/core/logos/combomarks/original/uber.svg +24 -0
- package/core/logos/combomarks/original/weebly.svg +34 -0
- package/core/logos/combomarks/original/whatsapp.svg +20 -0
- package/core/logos/combomarks/original/youtube.svg +10 -0
- package/core/logos/combomarks/original/zoom.svg +7 -0
- package/core/logos/combomarks/white/airbnb.svg +33 -0
- package/core/logos/combomarks/white/alphabet.svg +23 -0
- package/core/logos/combomarks/white/amazon.svg +38 -0
- package/core/logos/combomarks/white/boring-company.svg +91 -0
- package/core/logos/combomarks/white/embark.svg +21 -0
- package/core/logos/combomarks/white/fitbit.svg +61 -0
- package/core/logos/combomarks/white/google.svg +27 -0
- package/core/logos/combomarks/white/hubspot.svg +27 -0
- package/core/logos/combomarks/white/kaplan.svg +33 -0
- package/core/logos/combomarks/white/lenovo.svg +27 -0
- package/core/logos/combomarks/white/mapbox.svg +37 -0
- package/core/logos/combomarks/white/netflix.svg +15 -0
- package/core/logos/combomarks/white/paypal.svg +40 -0
- package/core/logos/combomarks/white/samsung.svg +26 -0
- package/core/logos/combomarks/white/shopify.svg +36 -0
- package/core/logos/combomarks/white/slack.svg +42 -0
- package/core/logos/combomarks/white/spotify.svg +38 -0
- package/core/logos/combomarks/white/stripe.svg +24 -0
- package/core/logos/combomarks/white/twilio.svg +29 -0
- package/core/logos/combomarks/white/uber.svg +24 -0
- package/core/logos/combomarks/white/weebly.svg +38 -0
- package/defaults/pages/404.md +4 -0
- package/defaults/pages/about.md +4 -0
- package/defaults/pages/admin/calendar/index.html +4 -0
- package/defaults/pages/admin/firebase/index.html +4 -0
- package/defaults/pages/admin/index.md +4 -0
- package/defaults/pages/admin/posts/editor.html +4 -0
- package/defaults/pages/admin/posts/index.html +4 -0
- package/defaults/pages/admin/stackblitz/index.html +4 -0
- package/defaults/pages/admin/studio/index.html +4 -0
- package/defaults/pages/admin/users/index.html +4 -0
- package/defaults/pages/admin/users/new.html +4 -0
- package/defaults/pages/admin/verts/index.html +4 -0
- package/defaults/pages/ads-txt.html +11 -0
- package/defaults/pages/alternatives/index.md +4 -0
- package/defaults/pages/app.md +4 -0
- package/defaults/pages/auth/reset.md +4 -0
- package/defaults/pages/auth/signin.md +4 -0
- package/defaults/pages/auth/signup.md +4 -0
- package/defaults/pages/auth/token.md +4 -0
- package/defaults/pages/blog/categories/category.html +21 -0
- package/defaults/pages/blog/categories.md +4 -0
- package/defaults/pages/blog/index-json.html +27 -0
- package/defaults/pages/blog/tags/tag.html +21 -0
- package/defaults/pages/blog/tags.md +4 -0
- package/defaults/pages/blog.md +22 -0
- package/defaults/pages/careers.md +4 -0
- package/defaults/pages/connections/callback.md +4 -0
- package/defaults/pages/contact.md +4 -0
- package/defaults/pages/dashboard/account.md +4 -0
- package/defaults/pages/dashboard/index.md +12 -0
- package/defaults/pages/download.md +4 -0
- package/defaults/pages/extension/index.html +4 -0
- package/defaults/pages/extension/installed.html +4 -0
- package/defaults/pages/feedback.md +4 -0
- package/defaults/pages/feeds/posts-json.html +40 -0
- package/defaults/pages/feeds/posts-xml.html +38 -0
- package/defaults/pages/humans.html +25 -0
- package/defaults/pages/index.md +4 -0
- package/defaults/pages/legal/cookies.md +4 -0
- package/defaults/pages/legal/privacy.md +4 -0
- package/defaults/pages/legal/terms.md +4 -0
- package/defaults/pages/llms-txt.html +46 -0
- package/defaults/pages/opensearch.html +16 -0
- package/defaults/pages/pages-json.html +42 -0
- package/defaults/pages/payment/checkout.md +4 -0
- package/defaults/pages/payment/confirmation.md +4 -0
- package/defaults/pages/portal/email-preferences.md +4 -0
- package/defaults/pages/pricing.md +4 -0
- package/defaults/pages/redirects/account.md +12 -0
- package/defaults/pages/redirects/admin/dashboard.md +11 -0
- package/defaults/pages/redirects/auth/change-password.md +9 -0
- package/defaults/pages/redirects/auth/forgot.md +9 -0
- package/defaults/pages/redirects/auth/join.md +9 -0
- package/defaults/pages/redirects/auth/login.md +9 -0
- package/defaults/pages/redirects/auth/recover.md +9 -0
- package/defaults/pages/redirects/auth/register.md +9 -0
- package/defaults/pages/redirects/auth/reset-password.md +9 -0
- package/defaults/pages/redirects/billing/cancel.md +9 -0
- package/defaults/pages/redirects/billing/refund.md +9 -0
- package/defaults/pages/robots.html +36 -0
- package/defaults/pages/security-txt.html +11 -0
- package/defaults/pages/sitemap.html +37 -0
- package/defaults/pages/status.md +4 -0
- package/defaults/pages/team/index.md +4 -0
- package/defaults/pages/test/account/dashboard.html +16 -0
- package/defaults/pages/test/index.md +12 -0
- package/defaults/pages/test/libraries/appearance.html +268 -0
- package/defaults/pages/test/libraries/cover.html +50 -0
- package/defaults/pages/test/libraries/error.html +30 -0
- package/defaults/pages/test/libraries/firestore.html +202 -0
- package/defaults/pages/test/libraries/form-manager.html +374 -0
- package/defaults/pages/test/libraries/layers.html +52 -0
- package/defaults/pages/test/libraries/lazy-loading.html +450 -0
- package/defaults/pages/test/libraries/verts.html +149 -0
- package/defaults/pages/test/redirect/external.md +13 -0
- package/defaults/pages/test/redirect/internal.md +13 -0
- package/defaults/pages/test/styleguide/index.html +588 -0
- package/defaults/pages/test/translation/index.md +50 -0
- package/defaults/pages/updates/index.md +4 -0
- package/defaults/sample-posts/2026-01-12-welcome-to-the-blog.md +26 -0
- package/defaults/sample-posts/2026-02-03-a-field-guide-to-good-defaults.md +50 -0
- package/defaults/sample-posts/2026-02-24-shipping-week-notes.md +37 -0
- package/defaults/sample-posts/2026-03-17-the-case-for-one-config.md +36 -0
- package/defaults/sample-posts/2026-04-09-write-release-notes-people-read.md +34 -0
- package/defaults/sample-posts/2026-05-21-dark-mode-done-properly.md +38 -0
- package/defaults/sample-posts/2026-06-02-the-boring-deploy-is-the-good-deploy.md +30 -0
- package/defaults/sample-posts/2026-06-11-naming-things-a-survival-guide.md +30 -0
- package/defaults/sample-posts/2026-06-19-your-pricing-page-is-a-product.md +28 -0
- package/defaults/sample-posts/2026-06-30-email-is-an-api-with-feelings.md +28 -0
- package/defaults/sample-posts/2026-07-08-ship-the-docs-with-the-diff.md +30 -0
- package/defaults/sample-team/avery-quinn.md +22 -0
- package/defaults/sample-team/jordan-reyes.md +25 -0
- package/defaults/sample-team/riley-nakamura.md +22 -0
- package/defaults/sample-team/sam-okafor.md +22 -0
- package/defaults/sample-updates/v1.0.0.md +28 -0
- package/defaults/sample-updates/v1.1.0.md +27 -0
- package/defaults/sample-updates/v1.2.0.md +27 -0
- package/defaults/sample-updates/v1.3.0.md +28 -0
- package/defaults/showcase/components.html +62 -0
- package/defaults/showcase/entry.html +76 -0
- package/defaults/showcase/frame.html +62 -0
- package/defaults/showcase/index.html +59 -0
- package/dist/assets.js +1349 -0
- package/dist/brand-tokens.js +195 -0
- package/dist/build.js +192 -0
- package/dist/cachebreak-html.js +71 -0
- package/dist/cli-run.js +25 -0
- package/dist/cli.js +47 -0
- package/dist/collections.js +183 -0
- package/dist/commands/audit.js +470 -0
- package/dist/commands/build.js +197 -0
- package/dist/commands/clean.js +18 -0
- package/dist/commands/customize.js +125 -0
- package/dist/commands/deploy.js +441 -0
- package/dist/commands/dev.js +1067 -0
- package/dist/commands/install.js +31 -0
- package/dist/commands/lib/deploy-precheck.js +43 -0
- package/dist/commands/lib/ensure-target.js +115 -0
- package/dist/commands/migrate.js +86 -0
- package/dist/commands/purge.js +31 -0
- package/dist/commands/test.js +237 -0
- package/dist/commands/translate.js +57 -0
- package/dist/commands/update.js +22 -0
- package/dist/commands/version.js +11 -0
- package/dist/config-sections.js +245 -0
- package/dist/consumer-scan.js +118 -0
- package/dist/consumer.js +49 -0
- package/dist/customize.js +328 -0
- package/dist/decisions.js +153 -0
- package/dist/dist-audit.js +417 -0
- package/dist/dynamic-pages.js +357 -0
- package/dist/engine.js +1402 -0
- package/dist/firebase-auth-helpers.js +198 -0
- package/dist/font-metrics.js +420 -0
- package/dist/frontmatter-liquid.js +253 -0
- package/dist/github-secrets.js +80 -0
- package/dist/hero-animations.js +170 -0
- package/dist/imagemin.js +261 -0
- package/dist/index.js +41 -0
- package/dist/inline-icons.js +65 -0
- package/dist/language-flags.js +55 -0
- package/dist/layers.js +80 -0
- package/dist/layouts.js +44 -0
- package/dist/limit-collections.js +199 -0
- package/dist/link-resolver.js +303 -0
- package/dist/markdown-images.js +85 -0
- package/dist/merge.js +20 -0
- package/dist/migrate/codemod.js +172 -0
- package/dist/migrate/config-convert.js +448 -0
- package/dist/migrate/consumer-assets.js +130 -0
- package/dist/migrate/index.js +223 -0
- package/dist/migrate/lint.js +108 -0
- package/dist/migrate/rules.js +1929 -0
- package/dist/minify-html.js +148 -0
- package/dist/mode-helpers.js +96 -0
- package/dist/omega-bin.js +7 -0
- package/dist/overrides.js +190 -0
- package/dist/path-prefix.js +167 -0
- package/dist/paths.js +37 -0
- package/dist/pricing.js +301 -0
- package/dist/purge.js +95 -0
- package/dist/redirect-page.js +45 -0
- package/dist/sample-content.js +210 -0
- package/dist/scaffold.js +123 -0
- package/dist/sections.js +810 -0
- package/dist/service-worker.js +200 -0
- package/dist/social-pages.js +142 -0
- package/dist/srcset.js +67 -0
- package/dist/static-assets.js +154 -0
- package/dist/target-shortlinks.js +123 -0
- package/dist/theme-vocabulary.js +76 -0
- package/dist/translate/collect-text-nodes.js +93 -0
- package/dist/translate/default-routes.js +152 -0
- package/dist/translate/generate-defaults.js +297 -0
- package/dist/translate/index.js +568 -0
- package/dist/translate/packaged-defaults.js +127 -0
- package/dist/translate/sitemap.js +108 -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/bare-requires.js +153 -0
- package/dist/vendor/devkit/bundle.js +292 -0
- package/dist/vendor/devkit/ci-workflows.js +520 -0
- package/dist/vendor/devkit/cli-router.js +156 -0
- package/dist/vendor/devkit/command-path.js +46 -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/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-https.js +360 -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/omega-bin.js +345 -0
- package/dist/vendor/devkit/reads.js +274 -0
- package/dist/vendor/devkit/safe-install.js +18 -0
- package/dist/vendor/devkit/scaffold-guard.js +96 -0
- package/dist/vendor/devkit/stop-signals.js +28 -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-secrets.js +165 -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/dist/vendor/template-kit/data/language-flags.js +54 -0
- package/dist/vendor/template-kit/data/languages.js +195 -0
- package/dist/vendor/template-kit/data/social-urls.js +26 -0
- package/dist/vendor/template-kit/filters.js +227 -0
- package/dist/vendor/template-kit/index.js +28 -0
- package/dist/vendor/template-kit/jekyll-compat.js +268 -0
- package/dist/vendor/template-kit/register-liquid.js +0 -0
- package/dist/vendor/template-kit/tags/collections.js +191 -0
- package/dist/vendor/template-kit/tags/conditionals.js +101 -0
- package/dist/vendor/template-kit/tags/content.js +175 -0
- package/dist/vendor/template-kit/tags/index.js +33 -0
- package/dist/vendor/template-kit/tags/media.js +376 -0
- package/dist/vendor/template-kit/variable-resolver.js +163 -0
- package/docs/ads-system.md +109 -0
- package/docs/classy-v2/DIRECTION.md +92 -0
- package/docs/classy-v2/draft-1.html +1932 -0
- package/docs/classy-v2/draft-2.html +1956 -0
- package/docs/frontmatter.md +153 -0
- package/docs/index.md +254 -0
- package/docs/libs.md +298 -0
- package/docs/omega-sections-spec.md +159 -0
- package/docs/page-contract.md +112 -0
- package/docs/sections.md +845 -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/template-kit.md +128 -0
- package/docs/test-framework.md +163 -0
- package/package.json +122 -0
- package/runtime/boot.js +149 -0
- package/runtime/icons.js +77 -0
- package/runtime/manager.js +36 -0
- package/scaffold/.github/workflows/build.yml +139 -0
- package/scaffold/.nvmrc +1 -0
- package/scaffold/AGENTS.md +55 -0
- package/scaffold/CLAUDE.md +1 -0
- package/scaffold/_.gitattributes +4 -0
- package/scaffold/_.gitignore +27 -0
- package/scaffold/config/omega.json5 +20 -0
- package/scaffold/src/assets/css/pages/.gitkeep +0 -0
- package/scaffold/src/assets/images/.gitkeep +0 -0
- package/scaffold/src/assets/js/pages/.gitkeep +0 -0
- package/scaffold/src/pages/.gitkeep +0 -0
- package/scaffold/src/pages/example.md.txt +94 -0
- package/scaffold/src/service-worker.js +16 -0
- package/sw/entry.js +19 -0
- package/sw/manager.js +281 -0
- package/themes/_template/README.md +115 -0
- package/themes/_template/_config.scss +60 -0
- package/themes/_template/_theme.js +14 -0
- package/themes/_template/_theme.scss +28 -0
- package/themes/_template/css/base/_root.scss +19 -0
- package/themes/_template/css/components/_components.scss +23 -0
- package/themes/base/README.md +5 -0
- package/themes/base/_components/data/org-chart/component.html +33 -0
- package/themes/base/_components/data/org-chart/component.json5 +33 -0
- package/themes/base/_components/data/org-chart/component.scss +183 -0
- package/themes/base/_components/heading/masthead/component.html +22 -0
- package/themes/base/_components/heading/masthead/component.json5 +30 -0
- package/themes/base/_components/heading/section-head/component.html +18 -0
- package/themes/base/_components/heading/section-head/component.json5 +27 -0
- package/themes/base/_components/pricing/features/component.html +29 -0
- package/themes/base/_components/pricing/features/component.json5 +30 -0
- package/themes/base/_hero/orbit/index.html +30 -0
- package/themes/base/_hero/orbit/script.js +33 -0
- package/themes/base/_hero/orbit/style.scss +133 -0
- package/themes/base/_includes/admin/sections/sidebar.html +3 -0
- package/themes/base/_includes/admin/sections/topbar.html +3 -0
- package/themes/base/_includes/backend/sections/sidebar.html +3 -0
- package/themes/base/_includes/backend/sections/topbar.html +3 -0
- package/themes/base/_includes/frontend/components/connection-card.html +49 -0
- package/themes/base/_includes/frontend/components/post-card.html +54 -0
- package/themes/base/_includes/frontend/sections/account-connections.html +42 -0
- package/themes/base/_includes/frontend/sections/account-section-header.html +11 -0
- package/themes/base/_includes/frontend/sections/footer.html +154 -0
- package/themes/base/_includes/frontend/sections/nav.html +276 -0
- package/themes/base/_includes/global/sections/account.html +72 -0
- package/themes/base/_includes/global/sections/app-sidebar.html +248 -0
- package/themes/base/_includes/global/sections/app-topbar.html +228 -0
- package/themes/base/_includes/global/sections/page-header.html +99 -0
- package/themes/base/_layouts/admin/core/minimal-viewport-locked.html +22 -0
- package/themes/base/_layouts/admin/core/minimal.html +23 -0
- package/themes/base/_layouts/backend/core/base.html +57 -0
- package/themes/base/_layouts/backend/core/minimal-viewport-locked.html +32 -0
- package/themes/base/_layouts/backend/core/minimal.html +32 -0
- package/themes/base/_layouts/backend/pages/dashboard/index.html +230 -0
- package/themes/base/_layouts/frontend/core/base.html +31 -0
- package/themes/base/_layouts/frontend/core/cover.html +40 -0
- package/themes/base/_layouts/frontend/core/minimal.html +47 -0
- package/themes/base/_layouts/frontend/pages/404.html +54 -0
- package/themes/base/_layouts/frontend/pages/about.html +144 -0
- package/themes/base/_layouts/frontend/pages/account/index.html +2104 -0
- package/themes/base/_layouts/frontend/pages/alternatives/alternative.html +319 -0
- package/themes/base/_layouts/frontend/pages/alternatives/index.html +186 -0
- package/themes/base/_layouts/frontend/pages/app.html +142 -0
- package/themes/base/_layouts/frontend/pages/auth/reset.html +53 -0
- package/themes/base/_layouts/frontend/pages/auth/signin.html +90 -0
- package/themes/base/_layouts/frontend/pages/auth/signup.html +141 -0
- package/themes/base/_layouts/frontend/pages/auth/token.html +44 -0
- package/themes/base/_layouts/frontend/pages/blog/categories/category.html +88 -0
- package/themes/base/_layouts/frontend/pages/blog/categories/index.html +88 -0
- package/themes/base/_layouts/frontend/pages/blog/index.html +255 -0
- package/themes/base/_layouts/frontend/pages/blog/post.html +261 -0
- package/themes/base/_layouts/frontend/pages/blog/tags/index.html +84 -0
- package/themes/base/_layouts/frontend/pages/blog/tags/tag.html +88 -0
- package/themes/base/_layouts/frontend/pages/collection/category.html +72 -0
- package/themes/base/_layouts/frontend/pages/collection/document.html +54 -0
- package/themes/base/_layouts/frontend/pages/collection/index.html +84 -0
- package/themes/base/_layouts/frontend/pages/connections/callback.html +55 -0
- package/themes/base/_layouts/frontend/pages/contact.html +214 -0
- package/themes/base/_layouts/frontend/pages/download.html +793 -0
- package/themes/base/_layouts/frontend/pages/extension/index.html +253 -0
- package/themes/base/_layouts/frontend/pages/extension/installed.html +198 -0
- package/themes/base/_layouts/frontend/pages/feedback.html +171 -0
- package/themes/base/_layouts/frontend/pages/index.html +66 -0
- package/themes/base/_layouts/frontend/pages/legal/document.html +78 -0
- package/themes/base/_layouts/frontend/pages/payment/checkout.html +459 -0
- package/themes/base/_layouts/frontend/pages/payment/confirmation.html +131 -0
- package/themes/base/_layouts/frontend/pages/portal/email-preferences.html +104 -0
- package/themes/base/_layouts/frontend/pages/pricing.html +596 -0
- package/themes/base/_layouts/frontend/pages/status.html +361 -0
- package/themes/base/_layouts/frontend/pages/team/index.html +210 -0
- package/themes/base/_layouts/frontend/pages/team/member.html +125 -0
- package/themes/base/_layouts/frontend/pages/updates/index.html +119 -0
- package/themes/base/_layouts/frontend/pages/updates/update.html +118 -0
- package/themes/base/_sections/about/hero/section.html +68 -0
- package/themes/base/_sections/about/hero/section.json5 +58 -0
- package/themes/base/_sections/about/letter/section.html +60 -0
- package/themes/base/_sections/about/letter/section.json5 +56 -0
- package/themes/base/_sections/about/photo-band/section.html +24 -0
- package/themes/base/_sections/about/photo-band/section.json5 +23 -0
- package/themes/base/_sections/about/principles/section.html +17 -0
- package/themes/base/_sections/about/principles/section.json5 +34 -0
- package/themes/base/_sections/about/timeline/section.html +20 -0
- package/themes/base/_sections/about/timeline/section.json5 +34 -0
- package/themes/base/_sections/marketing/bento/section.html +91 -0
- package/themes/base/_sections/marketing/bento/section.json5 +152 -0
- package/themes/base/_sections/marketing/cta/section.html +44 -0
- package/themes/base/_sections/marketing/cta/section.json5 +47 -0
- package/themes/base/_sections/marketing/faq/section.html +52 -0
- package/themes/base/_sections/marketing/faq/section.json5 +68 -0
- package/themes/base/_sections/marketing/hero/section.html +349 -0
- package/themes/base/_sections/marketing/hero/section.json5 +335 -0
- package/themes/base/_sections/marketing/newsletter-cta/section.html +38 -0
- package/themes/base/_sections/marketing/newsletter-cta/section.js +86 -0
- package/themes/base/_sections/marketing/newsletter-cta/section.json5 +29 -0
- package/themes/base/_sections/marketing/pricing-cards/section.html +115 -0
- package/themes/base/_sections/marketing/pricing-cards/section.json5 +72 -0
- package/themes/base/_sections/marketing/product-demo/section.html +62 -0
- package/themes/base/_sections/marketing/product-demo/section.js +44 -0
- package/themes/base/_sections/marketing/product-demo/section.json5 +52 -0
- package/themes/base/_sections/marketing/prose/section.html +22 -0
- package/themes/base/_sections/marketing/prose/section.json5 +41 -0
- package/themes/base/_sections/marketing/showcase/section.html +35 -0
- package/themes/base/_sections/marketing/showcase/section.json5 +52 -0
- package/themes/base/_sections/marketing/stats/section.html +32 -0
- package/themes/base/_sections/marketing/stats/section.json5 +44 -0
- package/themes/base/_sections/marketing/testimonials/section.html +54 -0
- package/themes/base/_sections/marketing/testimonials/section.json5 +70 -0
- package/themes/base/_sections/marketing/trusted-by/section.html +30 -0
- package/themes/base/_sections/marketing/trusted-by/section.json5 +38 -0
- package/themes/base/_sections/verts/unit/section.html +7 -0
- package/themes/base/_sections/verts/unit/section.js +22 -0
- package/themes/base/_sections/verts/unit/section.json5 +24 -0
- package/themes/base/_sections/verts/unit/section.scss +24 -0
- package/themes/base/_theme.js +13 -0
- package/themes/base/_theme.scss +4 -0
- package/themes/bootstrap/_theme.js +16 -0
- package/themes/bootstrap/_theme.scss +11 -0
- package/themes/bootstrap/js/index.esm.js +19 -0
- package/themes/bootstrap/js/index.umd.js +34 -0
- package/themes/bootstrap/js/src/alert.js +87 -0
- package/themes/bootstrap/js/src/base-component.js +86 -0
- package/themes/bootstrap/js/src/button.js +72 -0
- package/themes/bootstrap/js/src/carousel.js +474 -0
- package/themes/bootstrap/js/src/collapse.js +297 -0
- package/themes/bootstrap/js/src/dom/data.js +55 -0
- package/themes/bootstrap/js/src/dom/event-handler.js +317 -0
- package/themes/bootstrap/js/src/dom/manipulator.js +71 -0
- package/themes/bootstrap/js/src/dom/selector-engine.js +126 -0
- package/themes/bootstrap/js/src/dropdown.js +458 -0
- package/themes/bootstrap/js/src/modal.js +378 -0
- package/themes/bootstrap/js/src/offcanvas.js +282 -0
- package/themes/bootstrap/js/src/popover.js +97 -0
- package/themes/bootstrap/js/src/scrollspy.js +296 -0
- package/themes/bootstrap/js/src/tab.js +315 -0
- package/themes/bootstrap/js/src/toast.js +224 -0
- package/themes/bootstrap/js/src/tooltip.js +632 -0
- package/themes/bootstrap/js/src/util/backdrop.js +151 -0
- package/themes/bootstrap/js/src/util/component-functions.js +35 -0
- package/themes/bootstrap/js/src/util/config.js +65 -0
- package/themes/bootstrap/js/src/util/focustrap.js +115 -0
- package/themes/bootstrap/js/src/util/index.js +306 -0
- package/themes/bootstrap/js/src/util/sanitizer.js +117 -0
- package/themes/bootstrap/js/src/util/scrollbar.js +114 -0
- package/themes/bootstrap/js/src/util/swipe.js +146 -0
- package/themes/bootstrap/js/src/util/template-factory.js +160 -0
- package/themes/bootstrap/overrides/_accordion.scss +21 -0
- package/themes/bootstrap/overrides/_avatars.scss +51 -0
- package/themes/bootstrap/overrides/_blog-images.scss +45 -0
- package/themes/bootstrap/overrides/_buttons-adaptive.scss +141 -0
- package/themes/bootstrap/overrides/_color-shades.scss +25 -0
- package/themes/bootstrap/overrides/_cursor-utilities.scss +13 -0
- package/themes/bootstrap/overrides/_index.scss +30 -0
- package/themes/bootstrap/overrides/_links.scss +26 -0
- package/themes/bootstrap/overrides/_soft-colors.scss +99 -0
- package/themes/bootstrap/overrides/_spacing-extended.scss +74 -0
- package/themes/bootstrap/overrides/_spinners.scss +22 -0
- package/themes/bootstrap/overrides/_typography-utilities.scss +40 -0
- package/themes/bootstrap/scss/_accordion.scss +153 -0
- package/themes/bootstrap/scss/_alert.scss +68 -0
- package/themes/bootstrap/scss/_badge.scss +38 -0
- package/themes/bootstrap/scss/_breadcrumb.scss +40 -0
- package/themes/bootstrap/scss/_button-group.scss +147 -0
- package/themes/bootstrap/scss/_buttons.scss +216 -0
- package/themes/bootstrap/scss/_card.scss +238 -0
- package/themes/bootstrap/scss/_carousel.scss +226 -0
- package/themes/bootstrap/scss/_close.scss +66 -0
- package/themes/bootstrap/scss/_containers.scss +41 -0
- package/themes/bootstrap/scss/_dropdown.scss +250 -0
- package/themes/bootstrap/scss/_forms.scss +9 -0
- package/themes/bootstrap/scss/_functions.scss +302 -0
- package/themes/bootstrap/scss/_grid.scss +39 -0
- package/themes/bootstrap/scss/_helpers.scss +12 -0
- package/themes/bootstrap/scss/_images.scss +42 -0
- package/themes/bootstrap/scss/_list-group.scss +199 -0
- package/themes/bootstrap/scss/_maps.scss +174 -0
- package/themes/bootstrap/scss/_mixins.scss +42 -0
- package/themes/bootstrap/scss/_modal.scss +240 -0
- package/themes/bootstrap/scss/_nav.scss +197 -0
- package/themes/bootstrap/scss/_navbar.scss +289 -0
- package/themes/bootstrap/scss/_offcanvas.scss +147 -0
- package/themes/bootstrap/scss/_pagination.scss +109 -0
- package/themes/bootstrap/scss/_placeholders.scss +51 -0
- package/themes/bootstrap/scss/_popover.scss +196 -0
- package/themes/bootstrap/scss/_progress.scss +68 -0
- package/themes/bootstrap/scss/_reboot.scss +611 -0
- package/themes/bootstrap/scss/_root.scss +187 -0
- package/themes/bootstrap/scss/_spinners.scss +85 -0
- package/themes/bootstrap/scss/_tables.scss +171 -0
- package/themes/bootstrap/scss/_toasts.scss +73 -0
- package/themes/bootstrap/scss/_tooltip.scss +119 -0
- package/themes/bootstrap/scss/_transitions.scss +27 -0
- package/themes/bootstrap/scss/_type.scss +106 -0
- package/themes/bootstrap/scss/_utilities.scss +806 -0
- package/themes/bootstrap/scss/_variables-dark.scss +102 -0
- package/themes/bootstrap/scss/_variables.scss +1753 -0
- package/themes/bootstrap/scss/bootstrap-grid.scss +62 -0
- package/themes/bootstrap/scss/bootstrap-reboot.scss +10 -0
- package/themes/bootstrap/scss/bootstrap-utilities.scss +19 -0
- package/themes/bootstrap/scss/bootstrap.scss +52 -0
- package/themes/bootstrap/scss/forms/_floating-labels.scss +97 -0
- package/themes/bootstrap/scss/forms/_form-check.scss +189 -0
- package/themes/bootstrap/scss/forms/_form-control.scss +214 -0
- package/themes/bootstrap/scss/forms/_form-range.scss +91 -0
- package/themes/bootstrap/scss/forms/_form-select.scss +80 -0
- package/themes/bootstrap/scss/forms/_form-text.scss +11 -0
- package/themes/bootstrap/scss/forms/_input-group.scss +132 -0
- package/themes/bootstrap/scss/forms/_labels.scss +36 -0
- package/themes/bootstrap/scss/forms/_validation.scss +12 -0
- package/themes/bootstrap/scss/helpers/_clearfix.scss +3 -0
- package/themes/bootstrap/scss/helpers/_color-bg.scss +7 -0
- package/themes/bootstrap/scss/helpers/_colored-links.scss +30 -0
- package/themes/bootstrap/scss/helpers/_focus-ring.scss +5 -0
- package/themes/bootstrap/scss/helpers/_icon-link.scss +25 -0
- package/themes/bootstrap/scss/helpers/_position.scss +36 -0
- package/themes/bootstrap/scss/helpers/_ratio.scss +26 -0
- package/themes/bootstrap/scss/helpers/_stacks.scss +15 -0
- package/themes/bootstrap/scss/helpers/_stretched-link.scss +15 -0
- package/themes/bootstrap/scss/helpers/_text-truncation.scss +7 -0
- package/themes/bootstrap/scss/helpers/_visually-hidden.scss +8 -0
- package/themes/bootstrap/scss/helpers/_vr.scss +8 -0
- package/themes/bootstrap/scss/mixins/_alert.scss +18 -0
- package/themes/bootstrap/scss/mixins/_backdrop.scss +14 -0
- package/themes/bootstrap/scss/mixins/_banner.scss +7 -0
- package/themes/bootstrap/scss/mixins/_border-radius.scss +78 -0
- package/themes/bootstrap/scss/mixins/_box-shadow.scss +18 -0
- package/themes/bootstrap/scss/mixins/_breakpoints.scss +127 -0
- package/themes/bootstrap/scss/mixins/_buttons.scss +70 -0
- package/themes/bootstrap/scss/mixins/_caret.scss +69 -0
- package/themes/bootstrap/scss/mixins/_clearfix.scss +9 -0
- package/themes/bootstrap/scss/mixins/_color-mode.scss +21 -0
- package/themes/bootstrap/scss/mixins/_color-scheme.scss +7 -0
- package/themes/bootstrap/scss/mixins/_container.scss +11 -0
- package/themes/bootstrap/scss/mixins/_deprecate.scss +10 -0
- package/themes/bootstrap/scss/mixins/_forms.scss +163 -0
- package/themes/bootstrap/scss/mixins/_gradients.scss +47 -0
- package/themes/bootstrap/scss/mixins/_grid.scss +151 -0
- package/themes/bootstrap/scss/mixins/_image.scss +16 -0
- package/themes/bootstrap/scss/mixins/_list-group.scss +26 -0
- package/themes/bootstrap/scss/mixins/_lists.scss +7 -0
- package/themes/bootstrap/scss/mixins/_pagination.scss +10 -0
- package/themes/bootstrap/scss/mixins/_reset-text.scss +17 -0
- package/themes/bootstrap/scss/mixins/_resize.scss +6 -0
- package/themes/bootstrap/scss/mixins/_table-variants.scss +24 -0
- package/themes/bootstrap/scss/mixins/_text-truncate.scss +8 -0
- package/themes/bootstrap/scss/mixins/_transition.scss +26 -0
- package/themes/bootstrap/scss/mixins/_utilities.scss +97 -0
- package/themes/bootstrap/scss/mixins/_visually-hidden.scss +38 -0
- package/themes/bootstrap/scss/tests/jasmine.js +16 -0
- package/themes/bootstrap/scss/tests/mixins/_auto-import-of-variables-dark.test.scss +7 -0
- package/themes/bootstrap/scss/tests/mixins/_color-modes.test.scss +69 -0
- package/themes/bootstrap/scss/tests/mixins/_media-query-color-mode-full.test.scss +8 -0
- package/themes/bootstrap/scss/tests/mixins/_utilities.test.scss +393 -0
- package/themes/bootstrap/scss/tests/sass-true/register.js +14 -0
- package/themes/bootstrap/scss/tests/sass-true/runner.js +17 -0
- package/themes/bootstrap/scss/tests/utilities/_api.test.scss +75 -0
- package/themes/bootstrap/scss/utilities/_api.scss +47 -0
- package/themes/bootstrap/scss/vendor/_rfs.scss +348 -0
- package/themes/classy/README.md +89 -0
- package/themes/classy/_config.scss +245 -0
- package/themes/classy/_theme.js +31 -0
- package/themes/classy/_theme.scss +57 -0
- package/themes/classy/css/app/_panels.scss +183 -0
- package/themes/classy/css/base/_fonts.scss +79 -0
- package/themes/classy/css/base/_no-raise.scss +49 -0
- package/themes/classy/css/base/_root.scss +113 -0
- package/themes/classy/css/base/_typography.scss +154 -0
- package/themes/classy/css/base/_utilities.scss +284 -0
- package/themes/classy/css/components/_alerts.scss +51 -0
- package/themes/classy/css/components/_badges.scss +46 -0
- package/themes/classy/css/components/_buttons.scss +175 -0
- package/themes/classy/css/components/_cards.scss +41 -0
- package/themes/classy/css/components/_dropdowns.scss +48 -0
- package/themes/classy/css/components/_forms.scss +171 -0
- package/themes/classy/css/components/_receipt.scss +45 -0
- package/themes/classy/css/layout/_footer.scss +298 -0
- package/themes/classy/css/layout/_general.scss +209 -0
- package/themes/classy/css/layout/_nav.scss +154 -0
- package/themes/classy/css/layout/_shell.scss +458 -0
- package/themes/classy/css/marketing/_bento.scss +238 -0
- package/themes/classy/css/marketing/_content.scss +1328 -0
- package/themes/classy/css/marketing/_downloads.scss +246 -0
- package/themes/classy/css/marketing/_hero.scss +311 -0
- package/themes/classy/css/marketing/_sections.scss +649 -0
- package/themes/classy/css/pages/404/index.scss +67 -0
- package/themes/classy/css/pages/_auth.scss +235 -0
- package/themes/classy/css/pages/admin/firebase/index.scss +22 -0
- package/themes/classy/css/pages/blog/[slug].scss +56 -0
- package/themes/classy/css/pages/cookies.scss +2 -0
- package/themes/classy/css/pages/dashboard/account/index.scss +31 -0
- package/themes/classy/css/pages/feedback/index.scss +39 -0
- package/themes/classy/css/pages/legal/_document.scss +192 -0
- package/themes/classy/css/pages/payment/checkout/index.scss +585 -0
- package/themes/classy/css/pages/payment/confirmation/index.scss +9 -0
- package/themes/classy/css/pages/privacy.scss +2 -0
- package/themes/classy/css/pages/status/index.scss +164 -0
- package/themes/classy/css/pages/terms.scss +2 -0
- package/themes/classy/css/pages/updates/index.scss +128 -0
- package/themes/classy/fonts/inter-italic-latin-ext.woff2 +0 -0
- package/themes/classy/fonts/inter-italic-latin.woff2 +0 -0
- package/themes/classy/fonts/inter-normal-latin-ext.woff2 +0 -0
- package/themes/classy/fonts/inter-normal-latin.woff2 +0 -0
- package/themes/classy/fonts/newsreader-italic-latin-ext.woff2 +0 -0
- package/themes/classy/fonts/newsreader-italic-latin.woff2 +0 -0
- package/themes/classy/fonts/newsreader-normal-latin-ext.woff2 +0 -0
- package/themes/classy/fonts/newsreader-normal-latin.woff2 +0 -0
- package/themes/classy/js/hero-demo-form.js +56 -0
- package/themes/neobrutalism/README.md +118 -0
- package/themes/neobrutalism/_config.scss +139 -0
- package/themes/neobrutalism/_layouts/frontend/core/base.html +30 -0
- package/themes/neobrutalism/_layouts/frontend/pages/index.html +275 -0
- package/themes/neobrutalism/_theme.js +24 -0
- package/themes/neobrutalism/_theme.scss +61 -0
- package/themes/neobrutalism/css/base/_mixins.scss +46 -0
- package/themes/neobrutalism/css/base/_root.scss +169 -0
- package/themes/neobrutalism/css/base/_typography.scss +61 -0
- package/themes/neobrutalism/css/base/_utilities.scss +89 -0
- package/themes/neobrutalism/css/components/_billing-toggle.scss +74 -0
- package/themes/neobrutalism/css/components/_buttons.scss +148 -0
- package/themes/neobrutalism/css/components/_cards.scss +47 -0
- package/themes/neobrutalism/css/components/_forms.scss +88 -0
- package/themes/neobrutalism/css/components/_marketing.scss +244 -0
- package/themes/neobrutalism/css/layout/_general.scss +213 -0
- package/themes/neobrutalism/css/layout/_navigation.scss +171 -0
- package/themes/neobrutalism/css/pages/index.scss +203 -0
- package/themes/neobrutalism/css/pages/pricing/index.scss +58 -0
- package/themes/neobrutalism/css/pages/test/libraries/layers/index.scss +7 -0
- package/themes/neobrutalism/js/pages/test/libraries/layers/index.js +9 -0
- package/themes/newsflash/README.md +117 -0
- package/themes/newsflash/_components/heading/lede/component.html +14 -0
- package/themes/newsflash/_components/heading/lede/component.json5 +23 -0
- package/themes/newsflash/_components/heading/rule-head/component.html +17 -0
- package/themes/newsflash/_components/heading/rule-head/component.json5 +23 -0
- package/themes/newsflash/_components/news/byline/component.html +12 -0
- package/themes/newsflash/_components/news/byline/component.json5 +18 -0
- package/themes/newsflash/_components/news/story-card/component.html +25 -0
- package/themes/newsflash/_components/news/story-card/component.json5 +21 -0
- package/themes/newsflash/_config.scss +147 -0
- package/themes/newsflash/_layouts/frontend/core/base.html +51 -0
- package/themes/newsflash/_layouts/frontend/pages/blog/index.html +299 -0
- package/themes/newsflash/_layouts/frontend/pages/blog/post.html +235 -0
- package/themes/newsflash/_layouts/frontend/pages/index.html +328 -0
- package/themes/newsflash/_sections/marketing/desks/section.html +39 -0
- package/themes/newsflash/_sections/marketing/desks/section.json5 +49 -0
- package/themes/newsflash/_sections/marketing/newsletter-cta/section.html +103 -0
- package/themes/newsflash/_sections/marketing/newsletter-cta/section.json5 +50 -0
- package/themes/newsflash/_sections/marketing/rundown/section.html +28 -0
- package/themes/newsflash/_sections/marketing/rundown/section.json5 +40 -0
- package/themes/newsflash/_theme.js +24 -0
- package/themes/newsflash/_theme.scss +70 -0
- package/themes/newsflash/css/base/_fonts.scss +80 -0
- package/themes/newsflash/css/base/_mixins.scss +51 -0
- package/themes/newsflash/css/base/_root.scss +257 -0
- package/themes/newsflash/css/base/_typography.scss +49 -0
- package/themes/newsflash/css/base/_utilities.scss +122 -0
- package/themes/newsflash/css/components/_badges.scss +65 -0
- package/themes/newsflash/css/components/_billing-toggle.scss +61 -0
- package/themes/newsflash/css/components/_buttons.scss +139 -0
- package/themes/newsflash/css/components/_cards.scss +47 -0
- package/themes/newsflash/css/components/_editorial.scss +173 -0
- package/themes/newsflash/css/components/_forms.scss +75 -0
- package/themes/newsflash/css/components/_infinite-scroll.scss +102 -0
- package/themes/newsflash/css/components/_panels.scss +156 -0
- package/themes/newsflash/css/components/_ticker.scss +67 -0
- package/themes/newsflash/css/layout/_general.scss +330 -0
- package/themes/newsflash/css/layout/_navigation.scss +168 -0
- package/themes/newsflash/css/pages/404/index.scss +79 -0
- package/themes/newsflash/css/pages/blog/[slug].scss +186 -0
- package/themes/newsflash/css/pages/blog/index.scss +17 -0
- package/themes/newsflash/css/pages/index.scss +157 -0
- package/themes/newsflash/css/pages/pricing/index.scss +55 -0
- package/themes/newsflash/css/pages/test/libraries/layers/index.scss +7 -0
- package/themes/newsflash/fonts/fraunces-italic-latin-ext.woff2 +0 -0
- package/themes/newsflash/fonts/fraunces-italic-latin.woff2 +0 -0
- package/themes/newsflash/fonts/fraunces-normal-latin-ext.woff2 +0 -0
- package/themes/newsflash/fonts/fraunces-normal-latin.woff2 +0 -0
- package/themes/newsflash/fonts/schibsted-grotesk-italic-latin-ext.woff2 +0 -0
- package/themes/newsflash/fonts/schibsted-grotesk-italic-latin.woff2 +0 -0
- package/themes/newsflash/fonts/schibsted-grotesk-normal-latin-ext.woff2 +0 -0
- package/themes/newsflash/fonts/schibsted-grotesk-normal-latin.woff2 +0 -0
- package/themes/newsflash/js/pages/blog/[slug].js +29 -0
- package/themes/newsflash/js/pages/test/libraries/layers/index.js +9 -0
- package/translations/es/pages/404.json +86 -0
- package/translations/es/pages/account.json +36 -0
- package/translations/es/pages/app.json +44 -0
- package/translations/es/pages/cancel.json +36 -0
- package/translations/es/pages/change-password.json +36 -0
- package/translations/es/pages/connections/callback.json +41 -0
- package/translations/es/pages/dashboard/account.json +475 -0
- package/translations/es/pages/dashboard.json +36 -0
- package/translations/es/pages/forgot.json +36 -0
- package/translations/es/pages/join.json +36 -0
- package/translations/es/pages/login.json +36 -0
- package/translations/es/pages/payment/checkout.json +83 -0
- package/translations/es/pages/payment/confirmation.json +62 -0
- package/translations/es/pages/portal/email-preferences.json +46 -0
- package/translations/es/pages/recover.json +36 -0
- package/translations/es/pages/refund.json +36 -0
- package/translations/es/pages/register.json +36 -0
- package/translations/es/pages/reset-password.json +36 -0
- package/translations/es/pages/reset.json +42 -0
- package/translations/es/pages/signin.json +45 -0
- package/translations/es/pages/signup.json +60 -0
- package/translations/es/pages/token.json +39 -0
- package/translations/fa/pages/404.json +86 -0
- package/translations/fa/pages/account.json +36 -0
- package/translations/fa/pages/app.json +44 -0
- package/translations/fa/pages/cancel.json +36 -0
- package/translations/fa/pages/change-password.json +36 -0
- package/translations/fa/pages/connections/callback.json +41 -0
- package/translations/fa/pages/dashboard/account.json +475 -0
- package/translations/fa/pages/dashboard.json +36 -0
- package/translations/fa/pages/forgot.json +36 -0
- package/translations/fa/pages/join.json +36 -0
- package/translations/fa/pages/login.json +36 -0
- package/translations/fa/pages/payment/checkout.json +83 -0
- package/translations/fa/pages/payment/confirmation.json +62 -0
- package/translations/fa/pages/portal/email-preferences.json +46 -0
- package/translations/fa/pages/recover.json +36 -0
- package/translations/fa/pages/refund.json +36 -0
- package/translations/fa/pages/register.json +36 -0
- package/translations/fa/pages/reset-password.json +36 -0
- package/translations/fa/pages/reset.json +42 -0
- package/translations/fa/pages/signin.json +45 -0
- package/translations/fa/pages/signup.json +60 -0
- package/translations/fa/pages/token.json +39 -0
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
# Theme Template
|
|
2
|
+
|
|
3
|
+
A minimal, copy-paste starting point for a **brand-new @omega.js/web theme** —
|
|
4
|
+
whether you're adding one inside this package (`themes/<id>/`) or creating one
|
|
5
|
+
in your own consumer project (`src/themes/<id>/`, under the Eleventy INPUT dir
|
|
6
|
+
— the consumer-local copy beats the packaged one with the same id). A copy
|
|
7
|
+
works as-is in either place; "Consumer themes" below has the one caveat and
|
|
8
|
+
the lighter alternative.
|
|
9
|
+
|
|
10
|
+
> The design-system contract (tokens, motion, brand ramps, the classy
|
|
11
|
+
> vocabulary): [`docs/shared/theming.md`](../../../../docs/shared/theming.md).
|
|
12
|
+
|
|
13
|
+
## Create a theme from this template
|
|
14
|
+
|
|
15
|
+
1. **Copy this folder** to your theme id (the `_` prefix excludes this template
|
|
16
|
+
from selection, so rename it):
|
|
17
|
+
- Inside the package: `themes/my-theme/`
|
|
18
|
+
- In a consumer: `src/themes/my-theme/`
|
|
19
|
+
2. **Select it** in `omega.json5`:
|
|
20
|
+
```json5
|
|
21
|
+
theme: {
|
|
22
|
+
id: "my-theme",
|
|
23
|
+
}
|
|
24
|
+
```
|
|
25
|
+
3. **Customize** `_config.scss` (tokens), `css/` (styles), and `_theme.js`
|
|
26
|
+
(behaviors). Restyle Bootstrap's own classes (`.btn`, `.card`, `.navbar`,
|
|
27
|
+
`.form-control`) so the shared layouts pick up your look with no HTML edits.
|
|
28
|
+
4. **Layouts, includes, and section JSON are inherited automatically — zero
|
|
29
|
+
copies.** The engine resolves every file through a layered union
|
|
30
|
+
(consumer → your theme → classy → core), so all ~40 page layouts render
|
|
31
|
+
without you owning a single one. Override a layout only when its *markup*
|
|
32
|
+
(not just CSS) must differ — create the same path inside your theme
|
|
33
|
+
(`<your-theme>/_layouts/frontend/pages/<page>.html`) and yours wins.
|
|
34
|
+
|
|
35
|
+
## The CSS boundary (read this before shipping a partial theme)
|
|
36
|
+
|
|
37
|
+
Unlike layouts/includes, the MAIN stylesheet does **not** fall through:
|
|
38
|
+
exactly one `_theme.scss` loads — yours. The shared layouts you inherit emit
|
|
39
|
+
classy's `omega-*` content vocabulary (nav, footer, marketing sections,
|
|
40
|
+
auth/form panels — see `docs/shared/theming.md`), so a theme that doesn't restyle
|
|
41
|
+
that vocabulary renders those pages structurally intact but unstyled beyond
|
|
42
|
+
Bootstrap + core tokens/shell/motion. Budget for it: restyle the vocabulary
|
|
43
|
+
namespaces you keep, or override the layouts whose markup you replace.
|
|
44
|
+
|
|
45
|
+
## Consumer themes: sibling resolution, and the lighter partial route
|
|
46
|
+
|
|
47
|
+
This template is a **full sibling theme** — its `_config.scss` forwards
|
|
48
|
+
`../bootstrap/scss/bootstrap.scss` (its own Bootstrap) and its `_theme.scss`
|
|
49
|
+
imports classy's token-pure floor partials and `../bootstrap/overrides`. Copied
|
|
50
|
+
verbatim into `src/themes/my-theme/`, **it compiles**. A relative `@use`/
|
|
51
|
+
`@import` is tried against the importing file first — `src/themes/bootstrap/`,
|
|
52
|
+
`src/themes/classy/`, which don't exist — and then against the build's sass
|
|
53
|
+
`loadPaths`, which include every LAYER root. The last theme layer is always
|
|
54
|
+
`themes/base`, base normally resolves to the PACKAGED one, and packaged base
|
|
55
|
+
sits *inside* the packaged themes root — so `themes/base/../bootstrap/…` and
|
|
56
|
+
`themes/base/../classy/…` land on the real files. Your copy builds with its own
|
|
57
|
+
Bootstrap, the classy floor, and your own rules last.
|
|
58
|
+
|
|
59
|
+
**The one thing that breaks it: shipping your own `src/themes/base/`.** The
|
|
60
|
+
theme chain resolves consumer-local-first for *every* id, base included — so
|
|
61
|
+
your base shadows the packaged one, the packaged themes root drops out of the
|
|
62
|
+
loadPaths, and every `../bootstrap/…` / `../classy/…` import fails the build
|
|
63
|
+
("Can't find stylesheet to import"). Own the base layer only if nothing in
|
|
64
|
+
your theme reaches a packaged sibling through `../`.
|
|
65
|
+
|
|
66
|
+
The **partial theme** is the smaller route, and the one to prefer unless you
|
|
67
|
+
genuinely need your own Bootstrap config: it rides the packaged chain through
|
|
68
|
+
the inheritance hatch instead of shipping a second Bootstrap. After copying,
|
|
69
|
+
make it one —
|
|
70
|
+
|
|
71
|
+
1. Put the hatch on the FIRST line of `_theme.scss`, and pass your tokens
|
|
72
|
+
through it (`themes/classy/_config.scss` names every `!default` knob):
|
|
73
|
+
```scss
|
|
74
|
+
@forward 'omega:theme' with ($primary: #d6336c, $border-radius: .75rem);
|
|
75
|
+
```
|
|
76
|
+
2. Drop the `@forward '../bootstrap/scss/bootstrap.scss' with (…)` clause from
|
|
77
|
+
`_config.scss` (keep the file for your own sass variables), and drop the
|
|
78
|
+
`../classy/*` and `../bootstrap/overrides` imports from `_theme.scss` — the
|
|
79
|
+
hatch emits that whole configured chain, and your rules land after it so
|
|
80
|
+
they win the cascade.
|
|
81
|
+
3. Drop `@forward 'config';` from `_theme.scss` too — keep the
|
|
82
|
+
`@use 'config' as *;` beneath it. The hatch already re-exports `$primary`,
|
|
83
|
+
`$font-family-sans-serif` and friends; re-forwarding your own `!default`
|
|
84
|
+
copies of those names is the
|
|
85
|
+
sass error *"Two forwarded modules both define a variable named $primary"*.
|
|
86
|
+
`_config.scss` stays a plain sass-variable module for your own partials
|
|
87
|
+
(`_root.scss` reads it); anything you want **Bootstrap** to see goes in the
|
|
88
|
+
hatch's `with (…)` clause instead.
|
|
89
|
+
|
|
90
|
+
Both lanes, and which one a theme is on: `docs/shared/theming.md`
|
|
91
|
+
§ "CSS fall-through — the two lanes".
|
|
92
|
+
|
|
93
|
+
## What's here
|
|
94
|
+
|
|
95
|
+
```
|
|
96
|
+
_template/
|
|
97
|
+
├── _config.scss ← design tokens (!default) + Bootstrap forward
|
|
98
|
+
├── _theme.scss ← SCSS entry (config → root → styles → bootstrap overrides)
|
|
99
|
+
├── _theme.js ← JS entry (Bootstrap UMD + DOM-ready behaviors)
|
|
100
|
+
├── README.md ← this file
|
|
101
|
+
└── css/
|
|
102
|
+
├── base/_root.scss ← SCSS → CSS-variable bridge (light/dark)
|
|
103
|
+
└── components/_components.scss ← restyle Bootstrap classes here
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
## Principles (the contract lives in docs/shared/theming.md)
|
|
107
|
+
|
|
108
|
+
- **Tokens are `!default`** so consumers can override without forking your theme.
|
|
109
|
+
- **Bridge to CSS variables** in `_root.scss` — the `--omega-*` token names are
|
|
110
|
+
the stable API; light + dark ship together.
|
|
111
|
+
- **Don't duplicate the shared layers** — core tokens/shell/motion CSS and
|
|
112
|
+
`bootstrap/overrides` are in every build already.
|
|
113
|
+
- **Namespace your own components** (`.mytheme-*`) to avoid collisions;
|
|
114
|
+
runtime-stamped classes must live in the `omega-` namespace (PurgeCSS
|
|
115
|
+
safelist).
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
// <Theme Name> Configuration
|
|
2
|
+
// ALL customizable variables live here with !default so consuming projects can
|
|
3
|
+
// override any of them BEFORE the theme is imported. Keep this file as the
|
|
4
|
+
// single source of truth for your theme's design tokens.
|
|
5
|
+
|
|
6
|
+
// ============================================
|
|
7
|
+
// Bootstrap Color Overrides
|
|
8
|
+
// ============================================
|
|
9
|
+
$primary: #3B82F6 !default;
|
|
10
|
+
$secondary: #6B7280 !default;
|
|
11
|
+
$success: #10B981 !default;
|
|
12
|
+
$info: #06B6D4 !default;
|
|
13
|
+
$warning: #F59E0B !default;
|
|
14
|
+
$danger: #EF4444 !default;
|
|
15
|
+
$light: #F9FAFB !default;
|
|
16
|
+
$dark: #111827 !default;
|
|
17
|
+
|
|
18
|
+
// ============================================
|
|
19
|
+
// Surfaces (light + dark mode)
|
|
20
|
+
// ============================================
|
|
21
|
+
// Define your page/card backgrounds for each mode. _root.scss bridges these
|
|
22
|
+
// into CSS variables so dark-mode switching needs no recompilation.
|
|
23
|
+
$theme-bg-light: #FFFFFF !default;
|
|
24
|
+
$theme-surface-light: #F3F4F6 !default;
|
|
25
|
+
$theme-bg-dark: #0B0B0F !default;
|
|
26
|
+
$theme-surface-dark: #16161C !default;
|
|
27
|
+
|
|
28
|
+
// ============================================
|
|
29
|
+
// Typography
|
|
30
|
+
// ============================================
|
|
31
|
+
$font-family-sans-serif: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !default;
|
|
32
|
+
$headings-font-weight: 700 !default;
|
|
33
|
+
|
|
34
|
+
// ============================================
|
|
35
|
+
// Component sizing
|
|
36
|
+
// ============================================
|
|
37
|
+
// Match Classy's avatar map so the shared layouts/includes render correctly.
|
|
38
|
+
$avatar-sizes: (
|
|
39
|
+
null: 3rem, 2xs: 0.5rem, xs: 1.5rem, sm: 2rem, md: 2.5rem,
|
|
40
|
+
lg: 3.5rem, xl: 5rem, 2xl: 7.5rem, 3xl: 10rem, 4xl: 12.5rem, 5xl: 15rem
|
|
41
|
+
) !default;
|
|
42
|
+
|
|
43
|
+
// ============================================
|
|
44
|
+
// Forward Bootstrap with our configuration
|
|
45
|
+
// ============================================
|
|
46
|
+
// Pass your overridden tokens into Bootstrap so .btn/.card/.form-control etc.
|
|
47
|
+
// are generated with your colors. Add/remove forwards as your theme needs.
|
|
48
|
+
@forward '../bootstrap/scss/bootstrap.scss' with (
|
|
49
|
+
$primary: $primary,
|
|
50
|
+
$secondary: $secondary,
|
|
51
|
+
$success: $success,
|
|
52
|
+
$info: $info,
|
|
53
|
+
$warning: $warning,
|
|
54
|
+
$danger: $danger,
|
|
55
|
+
$light: $light,
|
|
56
|
+
$dark: $dark,
|
|
57
|
+
$font-family-sans-serif: $font-family-sans-serif,
|
|
58
|
+
$headings-font-weight: $headings-font-weight,
|
|
59
|
+
$enable-negative-margins: true
|
|
60
|
+
);
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// <Theme Name> — JS entry point
|
|
2
|
+
// Loaded at runtime via webpack's __theme__ alias. Exposes Bootstrap globally
|
|
3
|
+
// and runs your theme behaviors once the DOM is ready.
|
|
4
|
+
import bootstrap from '__main_assets__/themes/bootstrap/js/index.umd.js';
|
|
5
|
+
import { ready as domReady } from '@omega.js/client/modules/dom.js';
|
|
6
|
+
|
|
7
|
+
// Make Bootstrap available globally (used by omega utilities + components)
|
|
8
|
+
window.bootstrap = bootstrap;
|
|
9
|
+
|
|
10
|
+
// Initialize theme behaviors when the DOM is ready
|
|
11
|
+
domReady().then(() => {
|
|
12
|
+
// Add your theme's initializers here, e.g.:
|
|
13
|
+
// import('./js/navbar-scroll.js').then(m => m.default());
|
|
14
|
+
});
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
// <Theme Name> — SCSS entry point
|
|
2
|
+
// Import order matters: config (loads Bootstrap with your tokens) → root vars →
|
|
3
|
+
// your styles → universal Bootstrap overrides (shared across all omega themes).
|
|
4
|
+
|
|
5
|
+
// Forward config so consuming projects can override your !default tokens
|
|
6
|
+
@forward 'config';
|
|
7
|
+
@use 'config' as *;
|
|
8
|
+
|
|
9
|
+
// CSS custom properties (light/dark bridge)
|
|
10
|
+
@import 'css/base/root';
|
|
11
|
+
|
|
12
|
+
// The classy app/auth FLOOR: fall-through surfaces (auth, dashboard/account,
|
|
13
|
+
// admin) render classy layouts whose vocabulary is token-pure — these partials
|
|
14
|
+
// paint through YOUR token values. Keep them EARLY so your rules win collisions.
|
|
15
|
+
// Removing them leaves those pages unstyled (the build warns — #98).
|
|
16
|
+
@import '../classy/css/layout/shell';
|
|
17
|
+
@import '../classy/css/layout/footer';
|
|
18
|
+
@import '../classy/css/app/panels';
|
|
19
|
+
@import '../classy/css/pages/auth';
|
|
20
|
+
@import '../classy/css/components/receipt';
|
|
21
|
+
@import '../classy/css/components/badges';
|
|
22
|
+
|
|
23
|
+
// Your theme's styles (add base/layout/component partials as you grow)
|
|
24
|
+
@import 'css/components/components';
|
|
25
|
+
|
|
26
|
+
// Universal Bootstrap overrides shared by every omega theme
|
|
27
|
+
// (avatars, color-shades, soft-colors, spacing, etc.). Must come AFTER Bootstrap.
|
|
28
|
+
@import '../bootstrap/overrides';
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
// <Theme Name> — CSS Custom Properties
|
|
2
|
+
// Bridges SCSS config into runtime CSS variables. Components should read these
|
|
3
|
+
// var(--*) tokens (never the raw SCSS values) so dark mode is one override block.
|
|
4
|
+
|
|
5
|
+
:root,
|
|
6
|
+
[data-bs-theme="light"] {
|
|
7
|
+
--bs-body-bg: #{$theme-bg-light};
|
|
8
|
+
--bs-body-bg-rgb: #{red($theme-bg-light)}, #{green($theme-bg-light)}, #{blue($theme-bg-light)};
|
|
9
|
+
--bs-secondary-bg: #{$theme-surface-light};
|
|
10
|
+
// Add your own tokens, e.g.:
|
|
11
|
+
// --theme-card-bg: #{$theme-surface-light};
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
[data-bs-theme="dark"] {
|
|
15
|
+
--bs-body-bg: #{$theme-bg-dark};
|
|
16
|
+
--bs-body-bg-rgb: #{red($theme-bg-dark)}, #{green($theme-bg-dark)}, #{blue($theme-bg-dark)};
|
|
17
|
+
--bs-secondary-bg: #{$theme-surface-dark};
|
|
18
|
+
// --theme-card-bg: #{$theme-surface-dark};
|
|
19
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
// <Theme Name> — Components
|
|
2
|
+
// Restyle Bootstrap's own classes here so all inherited markup (nav, hero,
|
|
3
|
+
// cards, forms, buttons) picks up your look with NO HTML changes. Add files
|
|
4
|
+
// like _buttons.scss / _cards.scss as your theme grows and @import them in
|
|
5
|
+
// _theme.scss. This starter keeps everything in one file to stay minimal.
|
|
6
|
+
|
|
7
|
+
// Example: give buttons your theme's personality
|
|
8
|
+
.btn {
|
|
9
|
+
font-weight: 600;
|
|
10
|
+
// ...your button styling...
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
// Example: cards
|
|
14
|
+
.card {
|
|
15
|
+
background: var(--bs-secondary-bg);
|
|
16
|
+
// ...your card styling...
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
// Example: a theme-namespaced helper for your own page layouts
|
|
20
|
+
.theme-box {
|
|
21
|
+
background: var(--bs-secondary-bg);
|
|
22
|
+
padding: 1.5rem;
|
|
23
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
# base
|
|
2
|
+
|
|
3
|
+
The structural markup layer every theme chain ends at: layouts, sections, includes, and components for all shared surfaces.
|
|
4
|
+
It owns the neutral `omega-*` BEM vocabulary; themes are skins (scss over these selectors) and fork markup only for identity surfaces.
|
|
5
|
+
Convention: `docs/web/sections.md` § "Markup convention: base, skin, fork" (#177).
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
{% comment %} Org chart: one root over a connected row of nodes. The
|
|
2
|
+
connectors are drawn entirely by component.scss (the trunk hangs off the
|
|
3
|
+
children row, the bus and its stubs off each node), so the markup is just the
|
|
4
|
+
two levels — and a live page that renders the same class vocabulary from JS
|
|
5
|
+
gets the same lines for free. {% endcomment %}
|
|
6
|
+
<div class="omega-org-chart{% if args.class != blank %} {{ args.class }}{% endif %}">
|
|
7
|
+
{% iftruthy args.root %}
|
|
8
|
+
<div class="omega-org-chart__root">
|
|
9
|
+
<div class="card h-100">
|
|
10
|
+
<div class="card-body">
|
|
11
|
+
<p class="omega-org-chart__title mb-0">{{ args.root.title }}</p>
|
|
12
|
+
{% iftruthy args.root.sub %}<p class="omega-micro mb-0">{{ args.root.sub }}</p>{% endiftruthy %}
|
|
13
|
+
{% iftruthy args.root.meta %}<span class="omega-chip omega-badge-tone{% if args.root.tone != blank %} omega-tone-{{ args.root.tone }}{% endif %}">{{ args.root.meta }}</span>{% endiftruthy %}
|
|
14
|
+
</div>
|
|
15
|
+
</div>
|
|
16
|
+
</div>
|
|
17
|
+
{% endiftruthy %}
|
|
18
|
+
{% iftruthy args.nodes %}
|
|
19
|
+
<div class="omega-org-chart__children">
|
|
20
|
+
{% for node in args.nodes %}
|
|
21
|
+
<div class="omega-org-chart__node">
|
|
22
|
+
<div class="card h-100">
|
|
23
|
+
<div class="card-body">
|
|
24
|
+
<p class="omega-org-chart__title mb-0">{{ node.title }}</p>
|
|
25
|
+
{% iftruthy node.sub %}<p class="omega-micro mb-0">{{ node.sub }}</p>{% endiftruthy %}
|
|
26
|
+
{% iftruthy node.meta %}<span class="omega-chip omega-badge-tone{% if node.tone != blank %} omega-tone-{{ node.tone }}{% endif %}">{{ node.meta }}</span>{% endiftruthy %}
|
|
27
|
+
</div>
|
|
28
|
+
</div>
|
|
29
|
+
</div>
|
|
30
|
+
{% endfor %}
|
|
31
|
+
</div>
|
|
32
|
+
{% endiftruthy %}
|
|
33
|
+
</div>
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
{
|
|
2
|
+
description: 'Org chart — one root card over a connected row of node cards, joined by animated dashed connectors (repeating gradients, because a border\'s dash pattern cannot move). Under 768px the tree tilts onto its side: a spine down the left with an elbow into each card. The animation stops under prefers-reduced-motion. Each entry takes { title, sub, meta, tone } — `tone` is a 1–6 slot of the shared categorical ramp (--omega-chart-*), so a node\'s chip matches the same name\'s series on a chart. A live page rendering this class vocabulary from JS gets the same connectors.',
|
|
3
|
+
|
|
4
|
+
args: {
|
|
5
|
+
root: { type: 'object', description: 'The top card: { title, sub, meta, tone }' },
|
|
6
|
+
nodes: { type: 'array', description: 'The connected row, each { title, sub, meta, tone }' },
|
|
7
|
+
class: 'string',
|
|
8
|
+
},
|
|
9
|
+
|
|
10
|
+
// Mechanical only — the chart has no copy of its own to keep neutral
|
|
11
|
+
defaults: {},
|
|
12
|
+
|
|
13
|
+
demo: [
|
|
14
|
+
{
|
|
15
|
+
label: 'Root over four nodes',
|
|
16
|
+
args: {
|
|
17
|
+
root: { title: 'Manager', sub: 'orchestration', meta: 'lead', tone: 1 },
|
|
18
|
+
nodes: [
|
|
19
|
+
{ title: 'Scout', sub: 'reads the repo', meta: 'research', tone: 2 },
|
|
20
|
+
{ title: 'Worker', sub: 'builds the change', meta: 'build', tone: 3 },
|
|
21
|
+
{ title: 'Verifier', sub: 'proves it', meta: 'review', tone: 4 },
|
|
22
|
+
{ title: 'Advisor', sub: 'weighs the call', meta: 'counsel', tone: 5 },
|
|
23
|
+
],
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
label: 'Root alone',
|
|
28
|
+
args: {
|
|
29
|
+
root: { title: 'Manager', sub: 'nobody dispatched yet' },
|
|
30
|
+
},
|
|
31
|
+
},
|
|
32
|
+
],
|
|
33
|
+
}
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
// data/org-chart — the tree's connector geometry (§7 omega:sections lane).
|
|
2
|
+
//
|
|
3
|
+
// Every line is a repeating gradient rather than a border, for one reason:
|
|
4
|
+
// a gradient's position is animatable and a border's dash pattern is not, and
|
|
5
|
+
// the lines on this chart MOVE — a chart of what is happening RIGHT NOW reads
|
|
6
|
+
// as live only if something on it is.
|
|
7
|
+
//
|
|
8
|
+
// Wide: the root centred over a row of nodes, a trunk down to a horizontal
|
|
9
|
+
// bus, a stub down into each card. Under 768px the same tree turns on its
|
|
10
|
+
// side — one spine down the left with an elbow into each card — because six
|
|
11
|
+
// 16rem columns on a phone is not a chart, it is a scrollbar.
|
|
12
|
+
|
|
13
|
+
.omega-org-chart {
|
|
14
|
+
--omega-org-line: var(--omega-line);
|
|
15
|
+
--omega-org-line-size: 2px;
|
|
16
|
+
--omega-org-drop: 1.5rem;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.omega-org-chart__root,
|
|
20
|
+
.omega-org-chart__node {
|
|
21
|
+
flex: 0 0 auto;
|
|
22
|
+
position: relative;
|
|
23
|
+
width: 16rem;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
.omega-org-chart__root {
|
|
27
|
+
margin-inline: auto;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.omega-org-chart__title {
|
|
31
|
+
font-weight: 650;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.omega-org-chart__children {
|
|
35
|
+
display: flex;
|
|
36
|
+
// `safe` keeps an overflowing row reachable: centring a row wider than its
|
|
37
|
+
// container puts the first card off the scrollable edge. An engine that
|
|
38
|
+
// does not know the keyword drops the declaration and starts the row at the
|
|
39
|
+
// left, which is the same rescue.
|
|
40
|
+
justify-content: safe center;
|
|
41
|
+
gap: 1rem;
|
|
42
|
+
// A row wider than the container scrolls sideways rather than wrapping into
|
|
43
|
+
// rows the bus cannot connect. The trunk is drawn INSIDE this padding
|
|
44
|
+
// rather than above the box, because a scroll container clips what hangs
|
|
45
|
+
// outside it.
|
|
46
|
+
overflow-x: auto;
|
|
47
|
+
padding-top: var(--omega-org-drop);
|
|
48
|
+
padding-bottom: 0.25rem;
|
|
49
|
+
position: relative;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
// The trunk: from the root's bottom edge down to the bus.
|
|
53
|
+
.omega-org-chart__children::before {
|
|
54
|
+
content: '';
|
|
55
|
+
position: absolute;
|
|
56
|
+
top: 0;
|
|
57
|
+
left: calc(50% - (var(--omega-org-line-size) / 2));
|
|
58
|
+
width: var(--omega-org-line-size);
|
|
59
|
+
height: var(--omega-org-drop);
|
|
60
|
+
background-image: repeating-linear-gradient(180deg, var(--omega-org-line) 0 6px, transparent 6px 12px);
|
|
61
|
+
animation: omega-org-flow-down 1.2s linear infinite;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
// Each node holds the drop the bus and its own stub are drawn in.
|
|
65
|
+
.omega-org-chart__node {
|
|
66
|
+
padding-top: var(--omega-org-drop);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
// The bus, in segments: one per node, reaching half the gap either side so
|
|
70
|
+
// the segments meet. The first and last stop at their own centre, which is
|
|
71
|
+
// what makes the bus span exactly from the first card to the last.
|
|
72
|
+
.omega-org-chart__node::after {
|
|
73
|
+
content: '';
|
|
74
|
+
position: absolute;
|
|
75
|
+
top: 0;
|
|
76
|
+
left: -0.5rem;
|
|
77
|
+
right: -0.5rem;
|
|
78
|
+
height: var(--omega-org-line-size);
|
|
79
|
+
background-image: repeating-linear-gradient(90deg, var(--omega-org-line) 0 6px, transparent 6px 12px);
|
|
80
|
+
animation: omega-org-flow-right 1.2s linear infinite;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
.omega-org-chart__node:first-child::after {
|
|
84
|
+
left: calc(50% - (var(--omega-org-line-size) / 2));
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
.omega-org-chart__node:last-child::after {
|
|
88
|
+
right: calc(50% - (var(--omega-org-line-size) / 2));
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
// The stub: down from the bus into the card.
|
|
92
|
+
.omega-org-chart__node::before {
|
|
93
|
+
content: '';
|
|
94
|
+
position: absolute;
|
|
95
|
+
top: 0;
|
|
96
|
+
left: calc(50% - (var(--omega-org-line-size) / 2));
|
|
97
|
+
width: var(--omega-org-line-size);
|
|
98
|
+
height: var(--omega-org-drop);
|
|
99
|
+
background-image: repeating-linear-gradient(180deg, var(--omega-org-line) 0 6px, transparent 6px 12px);
|
|
100
|
+
animation: omega-org-flow-down 1.2s linear infinite;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
@keyframes omega-org-flow-down {
|
|
104
|
+
to {
|
|
105
|
+
background-position: 0 12px;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
@keyframes omega-org-flow-right {
|
|
110
|
+
to {
|
|
111
|
+
background-position: 12px 0;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
// Narrow: the same tree, stacked. The bus becomes a spine down the left and
|
|
116
|
+
// each node's stub becomes an elbow into its card, so nothing floats free.
|
|
117
|
+
@media (max-width: 767.98px) {
|
|
118
|
+
.omega-org-chart__root,
|
|
119
|
+
.omega-org-chart__node {
|
|
120
|
+
width: auto;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
.omega-org-chart__children {
|
|
124
|
+
display: block;
|
|
125
|
+
overflow-x: visible;
|
|
126
|
+
padding-left: var(--omega-org-drop);
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
.omega-org-chart__children::before {
|
|
130
|
+
left: 0;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
.omega-org-chart__node {
|
|
134
|
+
padding-top: 0;
|
|
135
|
+
margin-top: 1rem;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
// The elbow, at the card's shoulder.
|
|
139
|
+
.omega-org-chart__node::before {
|
|
140
|
+
top: var(--omega-org-drop);
|
|
141
|
+
left: calc(var(--omega-org-drop) * -1);
|
|
142
|
+
width: var(--omega-org-drop);
|
|
143
|
+
height: var(--omega-org-line-size);
|
|
144
|
+
background-image: repeating-linear-gradient(90deg, var(--omega-org-line) 0 6px, transparent 6px 12px);
|
|
145
|
+
animation: omega-org-flow-right 1.2s linear infinite;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
// The spine, in segments: each node carries the piece above it, and the
|
|
149
|
+
// last one stops at its own elbow instead of running past the bottom card.
|
|
150
|
+
//
|
|
151
|
+
// The first and last node are named here too. Their wide-layout rules trim
|
|
152
|
+
// the bus to a half segment, a media query adds no specificity of its own,
|
|
153
|
+
// and without the same two selectors on this side they would keep winning.
|
|
154
|
+
.omega-org-chart__node::after,
|
|
155
|
+
.omega-org-chart__node:first-child::after,
|
|
156
|
+
.omega-org-chart__node:last-child::after {
|
|
157
|
+
top: -1rem;
|
|
158
|
+
bottom: 0;
|
|
159
|
+
left: calc(var(--omega-org-drop) * -1);
|
|
160
|
+
right: auto;
|
|
161
|
+
width: var(--omega-org-line-size);
|
|
162
|
+
height: auto;
|
|
163
|
+
background-image: repeating-linear-gradient(180deg, var(--omega-org-line) 0 6px, transparent 6px 12px);
|
|
164
|
+
animation: omega-org-flow-down 1.2s linear infinite;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
.omega-org-chart__node:last-child::after {
|
|
168
|
+
bottom: auto;
|
|
169
|
+
height: calc(1rem + var(--omega-org-drop));
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
// Last, and naming the trimmed segments too: this has to outrank BOTH
|
|
174
|
+
// layouts, and a media query lends a rule no specificity to outrank them with.
|
|
175
|
+
@media (prefers-reduced-motion: reduce) {
|
|
176
|
+
.omega-org-chart__children::before,
|
|
177
|
+
.omega-org-chart__node::before,
|
|
178
|
+
.omega-org-chart__node::after,
|
|
179
|
+
.omega-org-chart__node:first-child::after,
|
|
180
|
+
.omega-org-chart__node:last-child::after {
|
|
181
|
+
animation: none;
|
|
182
|
+
}
|
|
183
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{% comment %} Interior-page masthead cluster: omega-micro eyebrow + the
|
|
2
|
+
omega-display--page h1 (+ optional em accent) + sub line. The calling layout
|
|
3
|
+
owns the band shell (dotgrid section, container, duo/split wrappers, reveal
|
|
4
|
+
stagger) — this is the repeated head only. Breadcrumb-eyebrow pages pass no
|
|
5
|
+
eyebrow and keep their link row in the layout.
|
|
6
|
+
|
|
7
|
+
#467: `first_paint` is the caller saying "this cluster IS the first viewport",
|
|
8
|
+
and the reveal attributes come off — a band the visitor never scrolls to must
|
|
9
|
+
not wait for the observer. The band itself declares data-omega-first-paint;
|
|
10
|
+
this switch keeps the markup honest rather than shipping attributes the
|
|
11
|
+
exemption has already neutralized. {% endcomment %}
|
|
12
|
+
{% iffalsy args.first_paint %}{% assign masthead_reveal = " data-omega-reveal" %}{% endiffalsy %}
|
|
13
|
+
{% iftruthy args.eyebrow %}
|
|
14
|
+
<span class="omega-micro d-block mb-3"{{ masthead_reveal }}>{{ args.eyebrow }}</span>
|
|
15
|
+
{% endiftruthy %}
|
|
16
|
+
<h1 class="omega-display omega-display--page{% if args.h1_class != blank %} {{ args.h1_class }}{% endif %}"{{ masthead_reveal }}>
|
|
17
|
+
{{ args.headline }}{% if args.headline_accent != blank %}
|
|
18
|
+
<em>{{ args.headline_accent }}</em>{% endif %}
|
|
19
|
+
</h1>
|
|
20
|
+
{% iftruthy args.sub %}
|
|
21
|
+
<p class="{{ args.sub_class }}"{{ masthead_reveal }}>{{ args.sub }}</p>
|
|
22
|
+
{% endiftruthy %}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{
|
|
2
|
+
description: 'Interior-page masthead head cluster — optional omega-micro eyebrow, the omega-display--page h1 with optional <em> accent, optional sub line. A COMPONENT: the page keeps its own shell (dotgrid section, container, duo/split wrappers) and composes this inside it; breadcrumb-eyebrow pages (blog taxonomy, alternative) pass no eyebrow and keep their link row in the layout. SHARED across the interior pages — defaults stay NEUTRAL (spec §6); sub_class/h1_class are mechanical knobs.',
|
|
3
|
+
|
|
4
|
+
args: {
|
|
5
|
+
eyebrow: 'string',
|
|
6
|
+
headline: 'string',
|
|
7
|
+
headline_accent: 'string',
|
|
8
|
+
sub: 'string',
|
|
9
|
+
sub_class: 'string',
|
|
10
|
+
h1_class: 'string',
|
|
11
|
+
first_paint: 'boolean', // #467: this cluster IS the first viewport — drop the reveal attributes, the band's data-omega-first-paint owns the paint
|
|
12
|
+
},
|
|
13
|
+
|
|
14
|
+
defaults: {
|
|
15
|
+
sub_class: 'omega-hero-split__sub',
|
|
16
|
+
},
|
|
17
|
+
|
|
18
|
+
// Showcase variants (spec §9)
|
|
19
|
+
demo: [
|
|
20
|
+
{
|
|
21
|
+
label: 'Eyebrow + accent + sub',
|
|
22
|
+
args: {
|
|
23
|
+
eyebrow: 'Guides',
|
|
24
|
+
headline: 'Everything about',
|
|
25
|
+
headline_accent: 'getting started',
|
|
26
|
+
sub: 'A short standfirst under the display headline.',
|
|
27
|
+
},
|
|
28
|
+
},
|
|
29
|
+
],
|
|
30
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{% comment %} Section-head cluster: omega-micro eyebrow + the
|
|
2
|
+
omega-display--section h2 (+ optional em accent) + plain sub line. The
|
|
3
|
+
caller owns the omega-section-head wrapper div (its centering/duo/margin
|
|
4
|
+
classes vary) and anything after the cluster — this is the inner head only.
|
|
5
|
+
Sections compose it too (nested composition): pass the resolved STRING as
|
|
6
|
+
superheadline. {% endcomment %}
|
|
7
|
+
{% iftruthy args.superheadline %}
|
|
8
|
+
<span class="omega-micro">{{ args.superheadline }}</span>
|
|
9
|
+
{% endiftruthy %}
|
|
10
|
+
{% iftruthy args.headline %}
|
|
11
|
+
<h2 class="omega-display omega-display--section">
|
|
12
|
+
{{ args.headline }}{% if args.headline_accent != blank %}
|
|
13
|
+
<em>{{ args.headline_accent }}</em>{% endif %}
|
|
14
|
+
</h2>
|
|
15
|
+
{% endiftruthy %}
|
|
16
|
+
{% iftruthy args.sub %}
|
|
17
|
+
<p>{{ args.sub }}</p>
|
|
18
|
+
{% endiftruthy %}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
description: 'Section-head cluster — optional omega-micro eyebrow, the omega-display--section h2 with optional <em> accent (whole h2 suppressed when headline is blank), optional plain sub line. A COMPONENT: the caller owns the omega-section-head wrapper div and everything after the cluster. Composed by layouts AND by sections (nested composition — pass the resolved string as superheadline, e.g. args.superheadline.text). Fully neutral: no defaults.',
|
|
3
|
+
|
|
4
|
+
args: {
|
|
5
|
+
superheadline: 'string',
|
|
6
|
+
headline: 'string',
|
|
7
|
+
headline_accent: 'string',
|
|
8
|
+
sub: 'string',
|
|
9
|
+
},
|
|
10
|
+
|
|
11
|
+
defaults: {},
|
|
12
|
+
|
|
13
|
+
// Showcase variants (spec §9) — stage_class supplies the wrapper the
|
|
14
|
+
// caller normally owns, so the demo renders in its natural shell.
|
|
15
|
+
demo: [
|
|
16
|
+
{
|
|
17
|
+
label: 'Full cluster',
|
|
18
|
+
stage_class: 'omega-section-head',
|
|
19
|
+
args: {
|
|
20
|
+
superheadline: 'Features',
|
|
21
|
+
headline: 'Built for',
|
|
22
|
+
headline_accent: 'momentum',
|
|
23
|
+
sub: 'A supporting line under the section head.',
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
],
|
|
27
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{% comment %} The price card's feature bullets — the ONE home of the list
|
|
2
|
+
/pricing's plan cards, its one-time cards and the homepage plan band all
|
|
3
|
+
render (#539). A feature the catalog gave a `definition` becomes the
|
|
4
|
+
dotted-underline hover target Bootstrap's tooltip engine binds (the themes
|
|
5
|
+
initialize tooltips page-wide, so the affordance works anywhere the list
|
|
6
|
+
lands); a feature without one stays plain text. Values print through
|
|
7
|
+
omega_commaify, which passes non-numeric strings ("Unlimited", "24/7")
|
|
8
|
+
through untouched — then escape_once, because a catalog value is TEXT and a
|
|
9
|
+
literal `<` must never open a tag the minifier can eat (#580). {% endcomment %}
|
|
10
|
+
{% if args.features.size > 0 %}
|
|
11
|
+
<ul class="omega-price-card__features">
|
|
12
|
+
{% for feature in args.features %}
|
|
13
|
+
<li>
|
|
14
|
+
<span class="omega-feature-check text-success"><i class="fa-solid fa-check fa-sm"></i></span>
|
|
15
|
+
<span>
|
|
16
|
+
{% if feature.value and feature.value != true %}
|
|
17
|
+
{{ feature.value | omega_commaify | escape_once }}
|
|
18
|
+
{% endif %}
|
|
19
|
+
{% iftruthy feature.definition %}
|
|
20
|
+
<span class="text-decoration-underline text-decoration-dotted cursor-help" data-bs-toggle="tooltip" data-bs-title="{{ feature.definition }}">{{ feature.name }}</span>
|
|
21
|
+
{% endiftruthy %}
|
|
22
|
+
{% iffalsy feature.definition %}
|
|
23
|
+
{{ feature.name }}
|
|
24
|
+
{% endiffalsy %}
|
|
25
|
+
</span>
|
|
26
|
+
</li>
|
|
27
|
+
{% endfor %}
|
|
28
|
+
</ul>
|
|
29
|
+
{% endif %}
|