diff --git a/assets/icons/logo-light.svg b/assets/icons/logo-light.svg new file mode 100644 index 00000000000..6f321eba541 --- /dev/null +++ b/assets/icons/logo-light.svg @@ -0,0 +1 @@ + diff --git a/assets/scss/_footer_project.scss b/assets/scss/_footer_project.scss index 5ae1772bb70..4e8955e29d1 100644 --- a/assets/scss/_footer_project.scss +++ b/assets/scss/_footer_project.scss @@ -592,4 +592,141 @@ .footer-company{ margin-left: 5px; } +} + +.footer { + .logo-light { + display: none !important; + } + .logo-dark { + display: block !important; + } +} + +// Light theme styling for Footer (Sistent Design System) +[data-theme="light"], +[data-bs-theme="light"] { + .footer { + background-color: #f6f8f8 !important; + color: #3c494f !important; + border-top: 1px solid #d2d8da !important; + + .logo-dark { + display: none !important; + } + .logo-light { + display: block !important; + } + + .footer-desc p, + .footer-desc { + color: #3c494f !important; + } + + .section-title { + color: #142126 !important; + font-weight: 700; + + a { + color: #142126 !important; + + &:hover { + color: $primary !important; + } + } + } + + .footer-h5 { + a { + color: #3c494f !important; + + &:hover { + color: $primary !important; + } + } + } + + .footer-icons { + a { + filter: grayscale(1) opacity(0.7) !important; + + &:hover { + filter: none !important; + opacity: 1 !important; + } + + &.social-icon { + filter: grayscale(1) opacity(0.7) !important; + + &:hover { + filter: none !important; + opacity: 1 !important; + } + } + } + } + + .subscribe { + p { + color: #142126 !important; + } + } + + input.footer-input { + background-color: #ffffff !important; + border: 1px solid #d2d8da !important; + color: #000d12 !important; + + &::placeholder { + color: #647176 !important; + } + + &:focus { + border-color: $primary !important; + background-color: #ffffff !important; + color: #000d12 !important; + } + } + + .footer-button { + background-color: $primary !important; + color: #ffffff !important; + + &:hover { + background-color: #008f7e !important; + } + } + + .footer-hr { + border-color: #d2d8da !important; + color: #d2d8da !important; + } + + .footer-bottom { + span { + color: #647176 !important; + } + + a { + color: #647176 !important; + + &:hover { + color: $primary !important; + } + } + } + + .footer-bottom-middle { + .status-link { + background-color: #eaedee !important; + border: 1px solid #d2d8da !important; + color: #3c494f !important; + + &:hover { + color: $primary !important; + border-color: $primary !important; + } + } + } + } } \ No newline at end of file diff --git a/assets/scss/_landing_project.scss b/assets/scss/_landing_project.scss index 24639e5545a..7a54e1ac7d3 100644 --- a/assets/scss/_landing_project.scss +++ b/assets/scss/_landing_project.scss @@ -240,3 +240,102 @@ } } +// Light theme styles for landing page +[data-theme="light"], +[data-bs-theme="light"] { + .product-section a { + color: #142126 !important; + } + + .playground-section { + &.playground-logo { + background-image: url("../images/logos/white-semi-opaque.svg"), url("../images/logos/meshery-light-icon.svg") !important; + } + &.video-play-logo { + background-image: url("../images/logos/white-semi-opaque.svg"), url("../images/video-play.svg") !important; + } + } + + .catalog-section { + &.catalog-logo { + background-image: url("../images/logos/white-semi-opaque.svg"), url("../images/logos/catalog.svg") !important; + } + &.academy-logo { + background-image: url("../images/logos/white-semi-opaque.svg"), url("../images/logos/academy.svg") !important; + } + &.recognition-program-logo { + background-image: url("../images/logos/white-semi-opaque.svg"), url("../images/logos/recognition-program.png") !important; + } + } + + .landing-card { + background: #ffffff !important; + border: 1.5px solid #d2d8da !important; + box-shadow: 0px 2px 8px 0px rgba(0, 0, 0, 0.04) !important; + + .landing-card-title, + span.landing-card-title { + color: #000d12 !important; + } + + p { + color: #28353a !important; + } + + &:hover { + border: 1.5px solid $primary !important; + box-shadow: 0px 4px 12px 0px rgba(0, 0, 0, 0.06) !important; + + .landing-card-title, + span.landing-card-title { + color: $primary !important; + } + + p { + color: #000d12 !important; + } + } + } + + .landing-card-title { + color: #000d12 !important; + } + + .forum-section { + background: #ffffff !important; + border: 1.5px solid #d2d8da !important; + box-shadow: 0px 2px 8px 0px rgba(0, 0, 0, 0.04) !important; + + .landing-card-title, + h1, h2, h3, h4, h5, h6, + span { + color: #000d12 !important; + } + + p { + color: #28353a !important; + } + + &:hover { + border-color: $primary !important; + box-shadow: 0px 4px 12px 0px rgba(0, 0, 0, 0.06) !important; + } + } + + .handbook-section { + background: linear-gradient(112deg, #ffffff 34.88%, #daf3eb 92.89%, #f0faf8 159.16%) !important; + border: 1.5px solid #93e6d1 !important; + border-radius: 1rem !important; + + .landing-card-title, + h1, h2, h3, h4, h5, h6, + span { + color: #000d12 !important; + } + + p { + color: #28353a !important; + } + } +} + diff --git a/assets/scss/_nav.scss b/assets/scss/_nav.scss index 7f24255458f..25e199a2bb3 100644 --- a/assets/scss/_nav.scss +++ b/assets/scss/_nav.scss @@ -1,8 +1,7 @@ .td-navbar-cover { @include media-breakpoint-up(md) { - .nav-link { - text-shadow: 1px 1px 2px $dark; + text-shadow: none; } } diff --git a/assets/scss/_navbar_project.scss b/assets/scss/_navbar_project.scss index de8e5eab459..44c593a92e2 100644 --- a/assets/scss/_navbar_project.scss +++ b/assets/scss/_navbar_project.scss @@ -260,4 +260,248 @@ $ecosystem-box-glow: inset 0 0em 4em #ebc01766, 0 0 0 2px #ebc01766, 0.3em 0.3em &:focus ~ .highlight-box { box-shadow: none; } +} + +// Navbar Brand Logo Light/Dark Support +.navbar-brand { + .logo-light { + display: none; + } + .logo-dark { + display: inline-block; + } +} + +// Theme Toggle Button +.theme-toggle-nav-item { + margin-right: 0.75rem; + margin-left: 0.5rem; + display: flex; + align-items: center; + justify-content: center; +} + +.theme-toggle { + --size: 1.35rem; + appearance: none; + border: 1px solid rgba(255, 255, 255, 0.15); + background: rgba(255, 255, 255, 0.08); + cursor: pointer; + width: 2.25rem; + height: 2.25rem; + border-radius: 50%; + display: inline-flex; + align-items: center; + justify-content: center; + padding: 0; + position: relative; + transition: all 0.3s ease; + vertical-align: middle; + outline: none; + + .theme-toggle-icon { + display: inline-block; + width: var(--size); + height: var(--size); + border-radius: 50%; + color: $secondary; + box-shadow: inset calc(var(--size) * 0.33) calc(var(--size) * -0.25) 0 0; + transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1); + } + + &:hover { + background: rgba(0, 211, 169, 0.15); + border-color: $secondary; + transform: scale(1.05); + + .theme-toggle-icon { + color: $secondary; + } + } + + &:focus-visible { + outline: 2px solid $primary; + outline-offset: 2px; + } +} + +// Light theme state for toggle button +[data-theme="light"], +[data-bs-theme="light"] { + .navbar-brand { + .logo-light { + display: inline-block; + } + .logo-dark { + display: none; + } + } + + .theme-toggle { + background: rgba(60, 73, 79, 0.08); + border: 1px solid rgba(60, 73, 79, 0.18); + + .theme-toggle-icon { + --ray-size: calc(var(--size) * -0.4); + --offset-orthogonal: calc(var(--size) * 0.65); + --offset-diagonal: calc(var(--size) * 0.45); + transform: scale(0.75); + color: $saffron; + box-shadow: inset 0 0 0 var(--size), + calc(var(--offset-orthogonal) * -1) 0 0 var(--ray-size), + var(--offset-orthogonal) 0 0 var(--ray-size), + 0 calc(var(--offset-orthogonal) * -1) 0 var(--ray-size), + 0 var(--offset-orthogonal) 0 var(--ray-size), + calc(var(--offset-diagonal) * -1) calc(var(--offset-diagonal) * -1) 0 var(--ray-size), + var(--offset-diagonal) var(--offset-diagonal) 0 var(--ray-size), + calc(var(--offset-diagonal) * -1) var(--offset-diagonal) 0 var(--ray-size), + var(--offset-diagonal) calc(var(--offset-diagonal) * -1) 0 var(--ray-size); + } + + &:hover { + background: rgba(235, 192, 23, 0.12); + border-color: #ebc017; + + .theme-toggle-icon { + color: #d49b00; + } + } + + &:focus-visible { + outline: 2px solid $primary; + outline-offset: 2px; + } + } + + .td-navbar, + .navbar-dark, + .td-navbar-cover { + background-color: #ffffff !important; + border-bottom: 1px solid #eaedee !important; + + .nav-link { + color: #3c494f !important; + font-weight: 600; + text-shadow: none !important; + + &:hover { + color: $primary !important; + text-shadow: none !important; + } + + &.current, + &.active { + color: $primary !important; + text-shadow: none !important; + } + } + + #resourcesDropdown { + color: #3c494f !important; + text-shadow: none !important; + + .down-icon svg { + fill: currentColor; + } + + &:hover, + &.current { + color: $primary !important; + } + } + + #signin-button .nav-link { + color: #142126 !important; + font-weight: 600; + text-shadow: none !important; + + &:hover { + color: $primary !important; + } + } + + .td-search { + background-color: #eaedee !important; + border: 1px solid #d2d8da !important; + border-radius: 1rem !important; + + .td-search__input { + background: transparent !important; + color: #000d12 !important; + + &::placeholder { + color: #647176 !important; + } + + &:focus { + color: #000d12 !important; + } + } + + .td-search__icon { + color: #647176 !important; + } + + &:focus-within { + border-color: $primary !important; + box-shadow: none !important; + } + } + + .dropdown-menu { + background-color: #ffffff; + border: 1px solid #eaedee; + box-shadow: 0px 4px 16px 0px rgba(0, 0, 0, 0.08); + + .dropdown-item { + color: #3c494f; + + &:hover { + background-color: rgba(0, 179, 159, 0.08); + color: $primary; + + img { + filter: none; + } + } + } + + .dropdown-divider { + border-top: 1px solid #eaedee; + } + } + } + + .apps-dropdown .dropdown-menu { + background-color: #ffffff; + border: 1px solid #eaedee; + box-shadow: 0px 4px 16px 0px rgba(0, 0, 0, 0.08); + + .dropdown-item { + background-color: #f6f8f8; + border: 1px solid #eaedee; + color: #3c494f; + + span { + color: #3c494f; + } + + &:hover { + background-color: #ffffff; + border-color: $primary; + color: $primary; + + span { + color: $primary; + } + } + } + } + + img.grid-icon { + filter: invert(0.2); + &:hover { + filter: invert(0.4); + } + } } \ No newline at end of file diff --git a/assets/scss/_search_project.scss b/assets/scss/_search_project.scss index b4a06bd04ad..ec15390af83 100644 --- a/assets/scss/_search_project.scss +++ b/assets/scss/_search_project.scss @@ -146,7 +146,6 @@ display: flex; justify-content: center; align-content: center; - // background-color: #EBC017; background-color: #2e2e31; border-radius: 1rem; @@ -163,8 +162,42 @@ color: inherit; } } - .td-search__input.form-control:focus { - // background-color: #EBC017; +} + +// Light theme search adjustments +[data-theme="light"], +[data-bs-theme="light"] { + .td-navbar .td-search, + .td-search { + background-color: #eaedee !important; + border: 1px solid #d2d8da !important; + + .td-search__input { + color: #000d12 !important; + + &::placeholder { + color: #647176 !important; + } + + &:focus { + color: #000d12 !important; + } + } + + .td-search__icon { + color: #647176 !important; + } + + &:focus-within { + border-color: $primary !important; + box-shadow: none !important; + } + } + + .popover-body { + background-color: #ffffff; + color: #3c494f; + border: 1px solid #eaedee; } } diff --git a/assets/scss/_styles_project.scss b/assets/scss/_styles_project.scss index 3be288ac14f..227c1caf189 100644 --- a/assets/scss/_styles_project.scss +++ b/assets/scss/_styles_project.scss @@ -809,3 +809,487 @@ h1, h2, h3, h4, h5, h6 { padding-top: 0; } } + +// ========================================== +// LIGHT THEME STYLING (Sistent Design System) +// ========================================== +[data-theme="light"], +[data-bs-theme="light"] { + background-color: #f6f8f8; + color: #28353a; + + body { + background-color: #f6f8f8; + color: #28353a; + } + + .td-home { + background-color: #f6f8f8; + } + + .td-footer, + footer.td-footer, + .bg-dark.d-print-none { + background-color: #f6f8f8 !important; + color: #647176 !important; + border-top: 1px solid #d2d8da !important; + + * { + color: #647176 !important; + } + + a { + color: #647176 !important; + + &:hover { + color: $primary !important; + } + } + } + + .td-main main { + background-color: #ffffff; + } + + .td-content { + color: #28353a; + + > h1, + > h2, + > h3, + > h4, + > h5, + > h6 { + color: #000d12; + } + + h2 { + color: #000d12; + } + + p, + li, + td { + color: #28353a; + } + + .lead { + color: #3c494f; + } + + p code, + li > code, + table code { + background-color: #eaedee; + color: #007763; + border: 1px solid #d2d8da; + border-radius: 4px; + font-weight: 500; + padding: 0.15rem 0.35rem; + } + + pre { + background-color: #142126; + color: #e8eff3; + border: 1px solid #293b43; + border-radius: 8px; + + > code { + color: #e8eff3; + } + } + + blockquote { + color: #28353a; + border-left: 4px solid $primary; + background-color: #daf3eb; + padding: 0.75rem 1rem; + border-radius: 0 0.375rem 0.375rem 0; + } + } + + a { + color: $primary; + + &:hover { + color: #007763; + } + } + + // Left sidebar in light mode + .td-sidebar { + background-image: none; + background-color: #eaedee; + border-right: 1px solid #d2d8da; + + .td-sidebar-nav { + &__section-title a { + color: #142126; + font-weight: 700; + } + + .td-sidebar-link__page { + color: #3c494f; + + &:hover { + color: $primary; + } + } + + a:hover { + color: $primary; + } + + a.active:not(.tree-root) { + background-image: none !important; + background-color: #daf3eb !important; + border: none !important; + border-left: 3px solid $primary !important; + border-radius: 0 4px 4px 0 !important; + color: #007763 !important; + font-weight: 600 !important; + } + + a.active.tree-root { + background-image: none !important; + background-color: #daf3eb !important; + border: 1px solid #93e6d1 !important; + color: #007763 !important; + } + + .td-sidebar-link.tree-root { + border-bottom: 1px solid #d2d8da; + color: #142126; + } + } + } + + // Right TOC sidebar in light mode + .td-sidebar-toc { + background-image: none; + background-color: #f6f8f8; + border-left: 1px solid #eaedee; + + .td-toc #TableOfContents a { + color: #647176; + + &:hover, + &:focus-visible { + color: $primary; + background-color: #daf3eb; + } + + &.active { + color: #007763; + font-weight: 600; + border-left: 2px solid $primary; + } + } + + .td-page-meta a { + color: #647176; + + &:hover { + color: $primary; + } + } + } + + // Cards + .card { + background-color: #ffffff; + border: 1px solid #eaedee; + color: #28353a; + } + + // Alerts + .alert { + background-color: #f0fbff; + border: 1px solid #9eddff; + border-left: 4px solid #2196f3; + color: #0754a6; + + &.alert-warning { + background-color: #fffee6; + border-color: #fffbbd; + border-left: 4px solid #ebc017; + color: #785400; + } + + &.alert-danger { + background-color: #fff0f0; + border-color: #ffb3b9; + border-left: 4px solid #ff385c; + color: #8c0a2f; + } + + &.alert-info { + background-color: #f0fbff; + border-color: #9eddff; + border-left: 4px solid #2196f3; + color: #0754a6; + } + } + + // Nav tabs + .nav-tabs .nav-link { + color: #3c494f; + border-bottom: 1px solid #eaedee; + + &:not(.active):hover { + background-color: #eaedee; + color: $primary; + } + + &.active { + background-color: #ffffff; + color: $primary; + border-color: #d2d8da #d2d8da transparent #d2d8da; + font-weight: 600; + } + } + + .tab-content .tab-pane { + background-color: #ffffff; + border: 1px solid #d2d8da; + color: #28353a; + } + + // Tables + .td-initial table, + table { + color: #28353a; + border: 1px solid #d2d8da; + + th { + background-color: #e8eff3; + color: #142126; + font-weight: 600; + border-bottom: 2px solid #c9dbe3; + box-shadow: none; + } + + td { + background-color: transparent; + border-bottom: 1px solid #eaedee; + color: #28353a; + box-shadow: none; + } + + tbody tr:nth-child(even) { + background-color: #f8f9fa; + } + } + + // Front matter info / Page info + .matterinfo, + .pageinfo { + background: #ffffff; + border: 1.5px solid #d2d8da; + color: #28353a; + + .matterheader { + color: #000d12; + } + + .plan-support { + border: 1px solid #d2d8da; + background: #f6f8f8; + color: #3c494f; + + &:hover { + border-color: $primary; + background-color: #daf3eb; + color: #007763; + } + } + + .tier { + color: #142126; + } + } + + // Cover block and overlay for landing page in light mode + .td-cover-block, + .td-overlay--dark, + .-bg-dark { + background-color: #f6f8f8 !important; + background-image: none !important; + color: #28353a !important; + + &::before { + background-color: transparent !important; + display: none !important; + } + + h1, h2, h3, h4, h5, h6 { + color: #000d12; + } + + .lead { + color: #3c494f; + } + } + + .dash-tangle { + background-image: linear-gradient(180deg, rgba(0, 179, 115, 0) 0%, rgba(0, 179, 159, 0.08) 100%); + } + + .dash-ircle-container > .dash-ircle { + background: radial-gradient(50% 50% at 50% 50%, rgba(0, 179, 159, 0.08) 0%, rgba(0, 179, 159, 0) 100%); + } + + // Buttons & Dash signs + .l5btn { + background: #ffffff !important; + border: 1.5px solid #d2d8da !important; + color: #142126 !important; + + > img { + filter: invert(0.2); + } + + &:hover { + background: #daf3eb !important; + border-color: $primary !important; + color: #007763 !important; + + > img { + filter: none; + } + } + } + + .dashboard { + background-image: linear-gradient(to right, #142126 0px, #00b39f 34%, #ebc017 71%, #477e96 100%); + } + + .dash-sign-container { + a.dash-sign { + color: #142126 !important; + text-shadow: none !important; + + &:after { + box-shadow: 0 4px 15px rgba(0, 179, 159, 0.15) !important; + } + + &:visited { + color: #142126 !important; + } + + &:hover { + color: $primary !important; + } + } + } + + // Ecosystem callout boxes + .highlight-box { + background-color: #fffee6; + border: 1.5px solid #ebc017; + border-radius: 8px; + color: #28353a; + } + + .hidden-highlight-box { + border-radius: 8px; + + &:hover { + background-color: #daf3eb; + border: 1px solid #93e6d1; + } + } + + // Search input on navbar + .td-navbar .td-search, + .td-search { + background-color: #eaedee !important; + border: 1px solid #d2d8da !important; + + .td-search__input { + color: #000d12 !important; + + &::placeholder { + color: #647176 !important; + } + + &:focus { + color: #000d12 !important; + } + } + + .td-search__icon { + color: #647176 !important; + } + + &:focus-within { + border-color: $primary !important; + box-shadow: none !important; + } + } + + .td-offline-search-results { + .card { + background-color: #ffffff; + border: 1px solid #d2d8da; + color: #28353a; + } + } + + // Video and Taxonomies + .video > .card-title { + color: #000d12; + } + + .video > .card-text { + color: #3c494f; + } + + .article-teaser.card { + background-color: #ffffff; + border: 1px solid #d2d8da; + color: #28353a; + } + + .article-meta-bg { + background-color: #e8eff3; + color: #3c494f; + } + + .taxonomy-count { + background-color: #daf3eb; + color: #007763; + } + + .taxonomy-term { + background: #daf3eb; + color: #007763; + border: 1px solid #93e6d1; + + &:hover { + background-color: $primary; + color: $white; + border-color: $primary; + } + } + + // Pagination navigation + .pagination-nav__link { + border-color: #d2d8da; + background-color: #ffffff; + color: #28353a; + + &:hover { + border-color: $primary; + color: $primary; + } + } + + .pagination-nav__sublabel { + color: #647176; + } + + .pagination-nav__label { + color: #000d12; + } +} diff --git a/assets/scss/_video-landing_project.scss b/assets/scss/_video-landing_project.scss index 808f51df334..8fb646eaf4a 100644 --- a/assets/scss/_video-landing_project.scss +++ b/assets/scss/_video-landing_project.scss @@ -477,11 +477,116 @@ a#videoPageLink:focus { margin-bottom: 2rem; } - .subcategory-btn { - padding: 0.4rem 1rem; - font-size: 0.875rem; - } .category-tab { width: 50%; } } + +// Light theme styling for Video Landing page +[data-theme="light"], +[data-bs-theme="light"] { + .video-page-container { + background: linear-gradient(270deg, rgba(71, 126, 150, 0.15) 0%, rgba(0, 179, 159, 0.25) 100%); + + nav.scrolled { + background-color: #ffffff; + border-bottom: 1px solid #eaedee; + } + } + + .hero-section-wrapper { + color: #000d12; + + .hero-subtitle { + color: #3c494f; + } + } + + .video-tabs-container { + background: #ffffff; + border: 1px solid #eaedee; + box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.04); + } + + .category-tab { + color: #647176; + + .tab-icon { + background-color: #eaedee; + + i { + color: #3c494f; + } + } + + &:hover { + color: $primary; + + .tab-icon { + background-color: #daf3eb; + + i { + color: $primary; + } + } + } + + &.active { + color: $primary; + border-bottom: 2px solid $primary; + + .tab-icon { + background-color: $primary; + + i { + color: #ffffff; + } + } + } + } + + .subcategory-btn { + background-color: #eaedee; + color: #3c494f; + box-shadow: none; + border: 1px solid #d2d8da; + + &:hover { + background-color: #daf3eb; + color: #007763; + border-color: $primary; + } + + &.active { + background-color: $primary; + color: #ffffff; + border-color: $primary; + } + } + + .video-card { + background-color: #ffffff; + border: 1px solid #eaedee; + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04); + + .video-info { + h3 { + color: #000d12; + } + + p.video-description { + color: #3c494f; + } + + &:hover { + h3 { + color: $primary; + } + + p.video-description { + color: #000d12; + } + } + } + } +} diff --git a/layouts/_default/baseof.html b/layouts/_default/baseof.html index 71d7b856c7d..bf44b09c772 100644 --- a/layouts/_default/baseof.html +++ b/layouts/_default/baseof.html @@ -5,6 +5,8 @@ lang="{{ .Site.Language.Lang }}" dir="{{ .Site.Language.Direction }}" class="no-js" + data-theme="dark" + data-bs-theme="dark" > {{ partial "head.html" . }} diff --git a/layouts/_default/content.html b/layouts/_default/content.html index e5ba33791ab..3a2ff82355d 100644 --- a/layouts/_default/content.html +++ b/layouts/_default/content.html @@ -1,4 +1,4 @@ -
+

{{ .Title }}

{{ with .Params.description }}
{{ . | markdownify }}
{{ end }}