From 7e43f8f0ee29e7c6b0b0fdb13fda97306c5922a5 Mon Sep 17 00:00:00 2001 From: Xavier Foucrier Date: Tue, 17 Oct 2023 11:49:43 +0200 Subject: [PATCH 01/23] Add base dark mode colors --- themes/barba/source/scss/utils/_variables.scss | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/themes/barba/source/scss/utils/_variables.scss b/themes/barba/source/scss/utils/_variables.scss index 61dddf5c..0e7af84c 100644 --- a/themes/barba/source/scss/utils/_variables.scss +++ b/themes/barba/source/scss/utils/_variables.scss @@ -21,6 +21,23 @@ $gray-lightest : rgb(224, 224, 224); $white : rgb(255, 255, 255); $transparent : transparent; +// Dark mode colors +$c-darkmode-color : #9da5b4; // foreground +$c-darkmode-light : #282c34; // background +$c-darkmode-dark : #21252b; // background (darker) +$c-darkmode-select : #3e4451; // user select +$c-darkmode-code : #777d88; // code +$c-darkmode-comment : #434a59; // code comment +$c-darkmode-blockquote : #575c67; // blockquote +$c-darkmode-doc-string : #98c379; // doc +$c-darkmode-doc-tag : #ec4343; // doc +$c-darkmode-doc-attr : #d19a66; // doc +$c-darkmode-doc-keyword : #c678dd; // doc +$c-darkmode-doc-function : #61afef; // doc +$c-darkmode-doc-table : #181a1f; // doc +$c-darkmode-doc-number : #d19a66; // doc +$c-darkmode-links : #5a82f1; // global a + // Dev colors $c-dev-bg : #3e4b55; $c-dev-error : #d90b0b; From b8b9af25befc439f2447e8f6b647e03f0391cc36 Mon Sep 17 00:00:00 2001 From: Xavier Foucrier Date: Tue, 17 Oct 2023 11:59:47 +0200 Subject: [PATCH 02/23] Implement dark mode on the documentation part --- .../layout/components/docs/_docs-content.scss | 16 ++++++ .../components/docs/_docs-nav-lateral.scss | 4 ++ .../layout/components/docs/_docs-nav.scss | 8 +++ .../barba/layout/components/docs/_docs.scss | 53 +++++++++++++++++++ .../layout/components/global/_barba.scss | 5 ++ themes/barba/source/scss/base/_global.scss | 13 +++++ 6 files changed, 99 insertions(+) diff --git a/themes/barba/layout/components/docs/_docs-content.scss b/themes/barba/layout/components/docs/_docs-content.scss index 2235506a..19f99227 100644 --- a/themes/barba/layout/components/docs/_docs-content.scss +++ b/themes/barba/layout/components/docs/_docs-content.scss @@ -162,6 +162,10 @@ font-size: 1.2rem; border: 1px solid $c-gray-lighter; + @media (prefers-color-scheme: dark) { + border: 1px solid $c-darkmode-doc-table; + } + @include mq(s) { padding: 0.7rem; font-size: 1.2rem; @@ -212,6 +216,18 @@ color: $c-blue-medium; white-space: nowrap; + @media (prefers-color-scheme: dark) { + color: $c-darkmode-links; + + &:has(code) { + color: $c-darkmode-color; + + &::before { + color: rgba($white, 0.7); + } + } + } + &::before { content: ''; position: absolute; diff --git a/themes/barba/layout/components/docs/_docs-nav-lateral.scss b/themes/barba/layout/components/docs/_docs-nav-lateral.scss index 7612171b..aa501c1a 100644 --- a/themes/barba/layout/components/docs/_docs-nav-lateral.scss +++ b/themes/barba/layout/components/docs/_docs-nav-lateral.scss @@ -73,6 +73,10 @@ transition: 0.2s $ease-out-quad; transition-property: color, background-color; + @media (prefers-color-scheme: dark) { + color: rgba($white, 0.8); + } + @include mq(s) { &:hover { color: $white; diff --git a/themes/barba/layout/components/docs/_docs-nav.scss b/themes/barba/layout/components/docs/_docs-nav.scss index 29d9c1f2..deaa3711 100644 --- a/themes/barba/layout/components/docs/_docs-nav.scss +++ b/themes/barba/layout/components/docs/_docs-nav.scss @@ -12,6 +12,10 @@ background: $c-blue-lightest; transition: transform 0.3s $ease-out-quad; + @media (prefers-color-scheme: dark) { + background: $c-darkmode-dark; + } + @include mq(m) { right: unset; width: 28vw; @@ -64,6 +68,10 @@ a { color: $gray-darker; + + @media (prefers-color-scheme: dark) { + color: $c-darkmode-color; + } } &:last-child { diff --git a/themes/barba/layout/components/docs/_docs.scss b/themes/barba/layout/components/docs/_docs.scss index 25ac759a..df6e42b2 100644 --- a/themes/barba/layout/components/docs/_docs.scss +++ b/themes/barba/layout/components/docs/_docs.scss @@ -4,6 +4,15 @@ a[title="Badge"] { display: inline-flex; + @media (prefers-color-scheme: dark) { + opacity: 0.8; + transition: opacity 250ms ease; + + &:hover { + opacity: 1; + } + } + img { border-radius: 4px; } @@ -11,6 +20,10 @@ img[title="Badge"] { border-radius: 4px; + + @media (prefers-color-scheme: dark) { + opacity: 0.8; + } } // Code-snippets formatting @@ -20,6 +33,10 @@ background: $c-blue-lightest; border-radius: 4px; + @media (prefers-color-scheme: dark) { + background: $c-darkmode-dark; + } + .gutter { display: none; } @@ -48,6 +65,10 @@ font-weight: 400; line-height: 1.6rem; + @media (prefers-color-scheme: dark) { + color: $c-darkmode-code; + } + @include mq(s) { line-height: 2rem; } @@ -59,6 +80,10 @@ .comment, .title { color: $c-doc-comment; + + @media (prefers-color-scheme: dark) { + color: $c-darkmode-comment; + } } .variable, @@ -74,6 +99,10 @@ .css .class, .css .pseudo { color: $c-doc-attribute; + + @media (prefers-color-scheme: dark) { + color: $c-darkmode-doc-attr; + } } .number, @@ -83,11 +112,19 @@ .params, .constant { color: $c-doc-number; + + @media (prefers-color-scheme: dark) { + color: $c-darkmode-doc-number; + } } .class, .css .rules .attribute { color: $c-doc-string; + + @media (prefers-color-scheme: dark) { + color: $c-darkmode-doc-string; + } } .string, @@ -97,6 +134,10 @@ .ruby .symbol, .xml .cdata { color: $c-doc-string; + + @media (prefers-color-scheme: dark) { + color: $c-darkmode-doc-string; + } } .css .hexcolor { @@ -106,11 +147,19 @@ .function, .javascript .title { color: $c-doc-function; + + @media (prefers-color-scheme: dark) { + color: $c-darkmode-doc-function; + } } .keyword, .javascript .function { color: $c-doc-keyword; + + @media (prefers-color-scheme: dark) { + color: $c-darkmode-doc-keyword; + } } } @@ -144,6 +193,10 @@ height: 100vh; background-color: $c-blue-light; + @media (prefers-color-scheme: dark) { + background-color: $c-darkmode-dark; + } + @include mq(m) { left: 28vw; width: calc(100vw - 28vw); diff --git a/themes/barba/layout/components/global/_barba.scss b/themes/barba/layout/components/global/_barba.scss index a13e4d3e..6182cdf0 100644 --- a/themes/barba/layout/components/global/_barba.scss +++ b/themes/barba/layout/components/global/_barba.scss @@ -7,4 +7,9 @@ width: 100%; overflow: hidden; } + + @media (prefers-color-scheme: dark) { + background: $c-darkmode-light; + color: $c-darkmode-color; + } } diff --git a/themes/barba/source/scss/base/_global.scss b/themes/barba/source/scss/base/_global.scss index c65bd189..21971172 100644 --- a/themes/barba/source/scss/base/_global.scss +++ b/themes/barba/source/scss/base/_global.scss @@ -109,6 +109,10 @@ code { font-family: $ff-code; background: $c-blue-lightest; border-radius: 4px; + + @media (prefers-color-scheme: dark) { + background: $c-darkmode-select; + } } blockquote { @@ -116,6 +120,15 @@ blockquote { padding: 0 2.5rem; color: $gray-light; border-left: 3px solid currentcolor; + overflow: hidden; + + @media (prefers-color-scheme: dark) { + color: $c-darkmode-blockquote; + + code { + color: $c-darkmode-color; + } + } } hr { From 442344974394eafa69dc2215893bd6c38278161c Mon Sep 17 00:00:00 2001 From: Xavier Foucrier Date: Thu, 19 Oct 2023 00:55:43 +0200 Subject: [PATCH 03/23] Fix feature page transition --- themes/barba/layout/components/global/_barba.scss | 5 ----- themes/barba/source/scss/base/_global.scss | 5 +++++ 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/themes/barba/layout/components/global/_barba.scss b/themes/barba/layout/components/global/_barba.scss index 6182cdf0..a13e4d3e 100644 --- a/themes/barba/layout/components/global/_barba.scss +++ b/themes/barba/layout/components/global/_barba.scss @@ -7,9 +7,4 @@ width: 100%; overflow: hidden; } - - @media (prefers-color-scheme: dark) { - background: $c-darkmode-light; - color: $c-darkmode-color; - } } diff --git a/themes/barba/source/scss/base/_global.scss b/themes/barba/source/scss/base/_global.scss index 21971172..f08ad896 100644 --- a/themes/barba/source/scss/base/_global.scss +++ b/themes/barba/source/scss/base/_global.scss @@ -15,6 +15,11 @@ html { body { overflow-x: hidden; + @media (prefers-color-scheme: dark) { + background: $c-darkmode-light; + color: $c-darkmode-color; + } + ::selection { color: #fff; background: $c-blue-medium; From 19a3f0414ea156daf934728e142b9b3ec217e9bb Mon Sep 17 00:00:00 2001 From: Xavier Foucrier Date: Thu, 19 Oct 2023 01:02:16 +0200 Subject: [PATCH 04/23] Fix empty `data-feature-order` value for feature `0` --- themes/barba/layout/layout.ejs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/themes/barba/layout/layout.ejs b/themes/barba/layout/layout.ejs index c38aea81..c3e882f0 100644 --- a/themes/barba/layout/layout.ejs +++ b/themes/barba/layout/layout.ejs @@ -61,7 +61,7 @@ <%- partial('svg/sprite') %> -
+
data-feature-order="<%- page.order %>" <% }; %>> <%- partial('components/chrome/header') %> From f52768e7dbb4eb14bea159f9c3cac6bd9f672213 Mon Sep 17 00:00:00 2001 From: Xavier Foucrier Date: Thu, 19 Oct 2023 01:04:02 +0200 Subject: [PATCH 05/23] Add dark mode to the menu panel --- .../layout/components/chrome/_header.scss | 1 + .../components/chrome/_menu-trigger.scss | 8 ++++ .../barba/layout/components/chrome/_menu.scss | 47 +++++++++++++++++-- .../layout/components/common/_button.scss | 4 +- 4 files changed, 55 insertions(+), 5 deletions(-) diff --git a/themes/barba/layout/components/chrome/_header.scss b/themes/barba/layout/components/chrome/_header.scss index fa9ce287..f576ca88 100644 --- a/themes/barba/layout/components/chrome/_header.scss +++ b/themes/barba/layout/components/chrome/_header.scss @@ -75,6 +75,7 @@ z-index: 1000; display: flex; pointer-events: auto; + user-select: none; @include mq(m) { position: fixed; diff --git a/themes/barba/layout/components/chrome/_menu-trigger.scss b/themes/barba/layout/components/chrome/_menu-trigger.scss index bfd1b517..02e1e4fa 100644 --- a/themes/barba/layout/components/chrome/_menu-trigger.scss +++ b/themes/barba/layout/components/chrome/_menu-trigger.scss @@ -41,6 +41,10 @@ stroke-dashoffset: 160px; transition: stroke-dashoffset 0.6s $ease-out-quart; + @media (prefers-color-scheme: dark) { + stroke: $c-darkmode-links; + } + [data-feature-order='0'] & { stroke: $c-menu-feature-0; } @@ -108,6 +112,10 @@ transform-origin: center center; transition: top 0.4s, transform 0.4s, opacity 0.4s ease-in-out; + @media (prefers-color-scheme: dark) { + background: $c-darkmode-links; + } + [data-feature-order='0'] & { background-color: $c-menu-feature-0; } diff --git a/themes/barba/layout/components/chrome/_menu.scss b/themes/barba/layout/components/chrome/_menu.scss index a90420ba..854f4971 100644 --- a/themes/barba/layout/components/chrome/_menu.scss +++ b/themes/barba/layout/components/chrome/_menu.scss @@ -38,6 +38,10 @@ transition: opacity 0.4s ease-in-out; cursor: pointer; + @media (prefers-color-scheme: dark) { + background: rgba($c-darkmode-light, 0.9); + } + .is-open & { opacity: 1; pointer-events: initial; @@ -58,6 +62,11 @@ box-shadow: 10px 10px 10px 10px $c-blue-lighter; transform: translateX(110%); + @media (prefers-color-scheme: dark) { + background: rgba($c-darkmode-dark, 0.9); + box-shadow: 10px 10px 10px 10px $c-darkmode-dark; + } + @include mq(m) { padding: 180px 50px 50px; @@ -73,7 +82,6 @@ left: 0; width: 100%; height: 10rem; - background: $white; @include mq(m) { height: 18rem; @@ -109,8 +117,17 @@ line-height: 1.2em; transition: color 0.2s ease-out; + @media (prefers-color-scheme: dark) { + color: $c-darkmode-links; + } + &.is-active { color: $black; + pointer-events: none; + + @media (prefers-color-scheme: dark) { + color: currentcolor; + } } @media screen and (max-height: 850px) { @@ -120,6 +137,10 @@ } .menu__pages__item__link:not(.is-active) { + [data-feature-order='0'] & { + color: $c-menu-feature-0; + } + [data-feature-order='1'] & { color: $c-menu-feature-1; } @@ -143,6 +164,10 @@ &:hover, &.is-active { color: $black; + + @media (prefers-color-scheme: dark) { + color: currentcolor; + } } } @@ -211,6 +236,10 @@ color: $c-gray-medium; transition: color 0.2s ease-out; + @media (prefers-color-scheme: dark) { + color: $c-darkmode-color; + } + .menu-subpages__item:nth-child(1):hover &, .menu-subpages__item:nth-child(1).is-active & { color: $c-menu-feature-0; @@ -272,6 +301,10 @@ background: $c-blue-medium; } + [data-feature-order='0'] & { + background-color: $c-menu-feature-0; + } + [data-feature-order='1'] & { background-color: $c-menu-feature-1; } @@ -310,7 +343,7 @@ align-items: center; height: 14px; margin-right: $spacing * 2; - color: $black; + color: currentcolor; } .menu-extra__twitter__icon { @@ -318,7 +351,7 @@ width: 16px; height: 13px; margin-right: $spacing / 2; - fill: $black; + fill: currentcolor; } .menu-extra__twitter__label { @@ -335,6 +368,14 @@ font-size: 1.1rem; letter-spacing: 0.1em; + a { + display: flex; + + @media (prefers-color-scheme: dark) { + opacity: 0.8; + } + } + a img { border-radius: 4px; } diff --git a/themes/barba/layout/components/common/_button.scss b/themes/barba/layout/components/common/_button.scss index d0b49b38..1c843434 100644 --- a/themes/barba/layout/components/common/_button.scss +++ b/themes/barba/layout/components/common/_button.scss @@ -107,12 +107,12 @@ } [class*='button--'][class*='--fill'][class*='--black'] { - background: $black; + background: currentcolor; border-color: transparent; } [class*='button--'][class*='--github'] { - color: $black; + color: currentcolor; font-size: 11px; font-weight: 300; transition: From 1cb89d30578740613cdcca10d2f1fe1d0d4f0b2a Mon Sep 17 00:00:00 2001 From: Xavier Foucrier Date: Thu, 19 Oct 2023 01:06:46 +0200 Subject: [PATCH 06/23] Add dark mode to page transition --- themes/barba/layout/components/transition/_transition.scss | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/themes/barba/layout/components/transition/_transition.scss b/themes/barba/layout/components/transition/_transition.scss index 6698dd63..7e50d5f2 100644 --- a/themes/barba/layout/components/transition/_transition.scss +++ b/themes/barba/layout/components/transition/_transition.scss @@ -33,6 +33,10 @@ [data-feature-order='4'] ~ & { background-color: $c-menu-feature-4; } + + @media (prefers-color-scheme: dark) { + background: $c-darkmode-dark !important; //stylelint-disable-line declaration-no-important + } } } From bf8c89cdfee47ccd1fee590cfb0d0794c29c59a8 Mon Sep 17 00:00:00 2001 From: Xavier Foucrier Date: Sat, 21 Oct 2023 00:01:35 +0200 Subject: [PATCH 07/23] Add dark mode to features --- .../layout/components/features/_feature-action.scss | 12 ++++++------ .../barba/layout/components/features/_feature.scss | 4 ++++ .../features/feature-box/_feature-box.scss | 5 +++++ 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/themes/barba/layout/components/features/_feature-action.scss b/themes/barba/layout/components/features/_feature-action.scss index 9c980e0a..e2bc9518 100644 --- a/themes/barba/layout/components/features/_feature-action.scss +++ b/themes/barba/layout/components/features/_feature-action.scss @@ -14,7 +14,7 @@ } [data-feature-order='0'] & { - background-color: $c-menu-feature-0-light; + background-color: rgba($c-menu-feature-0-light, 0.1); svg { fill: $c-menu-feature-0; @@ -23,7 +23,7 @@ } [data-feature-order='1'] & { - background-color: $c-menu-feature-1-light; + background-color: rgba($c-menu-feature-1-light, 0.05); svg { fill: $c-menu-feature-1; @@ -32,7 +32,7 @@ } [data-feature-order='2'] & { - background-color: $c-menu-feature-2-light; + background-color: rgba($c-menu-feature-2-light, 0.05); svg { fill: $c-menu-feature-2; @@ -41,7 +41,7 @@ } [data-feature-order='3'] & { - background-color: $c-menu-feature-3-light; + background-color: rgba($c-menu-feature-3-light, 0.05); svg { fill: $c-menu-feature-3; @@ -50,7 +50,7 @@ } [data-feature-order='4'] & { - background-color: $c-menu-feature-4-light; + background-color: rgba($c-menu-feature-4-light, 0.05); svg { fill: $c-menu-feature-4; @@ -59,7 +59,7 @@ } [data-feature-order='5'] & { - background-color: $c-menu-feature-5-light; + background-color: rgba($c-menu-feature-5-light, 0.05); svg { fill: $c-menu-feature-5; diff --git a/themes/barba/layout/components/features/_feature.scss b/themes/barba/layout/components/features/_feature.scss index 424769be..7328d740 100644 --- a/themes/barba/layout/components/features/_feature.scss +++ b/themes/barba/layout/components/features/_feature.scss @@ -197,6 +197,10 @@ @include mq($until: m) { display: none; } + + path[fill='rgb(255,255,255)'] { + fill: $c-darkmode-light; + } } .feature .logo.featured { diff --git a/themes/barba/layout/components/features/feature-box/_feature-box.scss b/themes/barba/layout/components/features/feature-box/_feature-box.scss index 01143b43..0eabd692 100644 --- a/themes/barba/layout/components/features/feature-box/_feature-box.scss +++ b/themes/barba/layout/components/features/feature-box/_feature-box.scss @@ -13,6 +13,11 @@ transform: translateX(-50%); backdrop-filter: blur(4px); + @media (prefers-color-scheme: dark) { + background: rgba($c-darkmode-dark, 0.7); + box-shadow: 0 1.4rem 3rem rgba($c-darkmode-dark, 0.3); + } + @include mq(m) { top: initial; bottom: 5rem; From fd5ccd19ed60d80208fbe0343f994ea68431f751 Mon Sep 17 00:00:00 2001 From: Xavier Foucrier Date: Sat, 21 Oct 2023 00:02:09 +0200 Subject: [PATCH 08/23] Improve base logo display --- themes/barba/layout/components/common/_logo.scss | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/themes/barba/layout/components/common/_logo.scss b/themes/barba/layout/components/common/_logo.scss index 77836fb1..ccfec1a4 100644 --- a/themes/barba/layout/components/common/_logo.scss +++ b/themes/barba/layout/components/common/_logo.scss @@ -19,6 +19,10 @@ } .base { + @media (prefers-color-scheme: dark) { + fill: rgba($c-darkmode-light, 0.7); + } + .js__rect { opacity: 0; } From 99841b8e6914d68630a5d5782644c62bc3ae36dd Mon Sep 17 00:00:00 2001 From: Xavier Foucrier Date: Sat, 21 Oct 2023 19:57:45 +0200 Subject: [PATCH 09/23] Improve navigation dark mode --- .../components/features/_feature-nav.scss | 26 +++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/themes/barba/layout/components/features/_feature-nav.scss b/themes/barba/layout/components/features/_feature-nav.scss index 7e55a706..9faf726a 100644 --- a/themes/barba/layout/components/features/_feature-nav.scss +++ b/themes/barba/layout/components/features/_feature-nav.scss @@ -31,11 +31,33 @@ text-transform: uppercase; letter-spacing: 0.212rem; + @media (prefers-color-scheme: dark) { + [data-feature-order='0'] & { + color: $c-menu-feature-0; + } + + [data-feature-order='1'] & { + color: $c-menu-feature-1; + } + + [data-feature-order='2'] & { + color: $c-menu-feature-2; + } + + [data-feature-order='3'] & { + color: $c-menu-feature-3; + } + + [data-feature-order='4'] & { + color: $c-menu-feature-4; + } + } + .icon--barba { width: 2.1rem; height: 1.5rem; - fill: $c-gray-darker; - stroke: $c-gray-darker; + fill: currentcolor; + stroke: currentcolor; } span { From 17a3f6e343dd89cdc367905a8ca9a2c226cd9606 Mon Sep 17 00:00:00 2001 From: Xavier Foucrier Date: Sat, 21 Oct 2023 19:58:35 +0200 Subject: [PATCH 10/23] Improve feature box dark mode --- themes/barba/layout/components/features/_feature.scss | 6 ++++-- .../components/features/feature-box/_feature-box.scss | 1 + 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/themes/barba/layout/components/features/_feature.scss b/themes/barba/layout/components/features/_feature.scss index 7328d740..05c64ed2 100644 --- a/themes/barba/layout/components/features/_feature.scss +++ b/themes/barba/layout/components/features/_feature.scss @@ -198,8 +198,10 @@ display: none; } - path[fill='rgb(255,255,255)'] { - fill: $c-darkmode-light; + @media (prefers-color-scheme: dark) { + path[fill='rgb(255,255,255)'] { + fill: $c-darkmode-light; + } } } diff --git a/themes/barba/layout/components/features/feature-box/_feature-box.scss b/themes/barba/layout/components/features/feature-box/_feature-box.scss index 0eabd692..54c63b99 100644 --- a/themes/barba/layout/components/features/feature-box/_feature-box.scss +++ b/themes/barba/layout/components/features/feature-box/_feature-box.scss @@ -16,6 +16,7 @@ @media (prefers-color-scheme: dark) { background: rgba($c-darkmode-dark, 0.7); box-shadow: 0 1.4rem 3rem rgba($c-darkmode-dark, 0.3); + color: rgba($white, 0.8); } @include mq(m) { From 4adb9f092d74211e07297ab2cccb88664e4a53a5 Mon Sep 17 00:00:00 2001 From: Xavier Foucrier Date: Sat, 21 Oct 2023 22:33:02 +0200 Subject: [PATCH 11/23] Fix pointer events on Github button --- themes/barba/layout/components/common/_button.scss | 2 ++ 1 file changed, 2 insertions(+) diff --git a/themes/barba/layout/components/common/_button.scss b/themes/barba/layout/components/common/_button.scss index 1c843434..8e487739 100644 --- a/themes/barba/layout/components/common/_button.scss +++ b/themes/barba/layout/components/common/_button.scss @@ -122,6 +122,7 @@ transform 0.4s; span { + pointer-events: none; position: absolute; top: 50%; left: 100%; @@ -132,6 +133,7 @@ transition: opacity 0.4s ease-in-out; .is-open & { + pointer-events: auto; opacity: 1; } } From 794b5e54b6a66dd7da28ae5ab6a783c2a5b3ca38 Mon Sep 17 00:00:00 2001 From: Xavier Foucrier Date: Sat, 21 Oct 2023 22:46:16 +0200 Subject: [PATCH 12/23] Fix SVG fill color on feature 0 --- source/assets/svg/delay.svg | 4 ++-- source/assets/svg/flexible.svg | 14 +++++++------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/source/assets/svg/delay.svg b/source/assets/svg/delay.svg index 6a217ad9..069382b3 100644 --- a/source/assets/svg/delay.svg +++ b/source/assets/svg/delay.svg @@ -4,7 +4,7 @@ delay Created with Sketch. - - + + \ No newline at end of file diff --git a/source/assets/svg/flexible.svg b/source/assets/svg/flexible.svg index c9668c4f..1e799730 100644 --- a/source/assets/svg/flexible.svg +++ b/source/assets/svg/flexible.svg @@ -4,12 +4,12 @@ flexible Created with Sketch. - - - - - - - + + + + + + + \ No newline at end of file From 14669bfbf537ea0cd561adf19dbae1cb2c2ae78b Mon Sep 17 00:00:00 2001 From: Xavier Foucrier Date: Sat, 21 Oct 2023 22:49:50 +0200 Subject: [PATCH 13/23] Improve menu dark mode --- themes/barba/layout/components/chrome/_menu.scss | 4 ++++ .../barba/layout/components/common/_button.scss | 15 +++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/themes/barba/layout/components/chrome/_menu.scss b/themes/barba/layout/components/chrome/_menu.scss index 854f4971..dcc4c288 100644 --- a/themes/barba/layout/components/chrome/_menu.scss +++ b/themes/barba/layout/components/chrome/_menu.scss @@ -297,6 +297,10 @@ outline: 0; transition: background 0.2s ease-out; + @media (prefers-color-scheme: dark) { + color: $c-darkmode-dark; + } + &:hover { background: $c-blue-medium; } diff --git a/themes/barba/layout/components/common/_button.scss b/themes/barba/layout/components/common/_button.scss index 8e487739..d29807bd 100644 --- a/themes/barba/layout/components/common/_button.scss +++ b/themes/barba/layout/components/common/_button.scss @@ -109,6 +109,13 @@ [class*='button--'][class*='--fill'][class*='--black'] { background: currentcolor; border-color: transparent; + + @media (prefers-color-scheme: dark) { + .is-open & { + background: $c-darkmode-light; + border-color: $c-darkmode-light; + } + } } [class*='button--'][class*='--github'] { @@ -121,6 +128,10 @@ border-color 0.4s, transform 0.4s; + @media (prefers-color-scheme: dark) { + color: $c-darkmode-dark; + } + span { pointer-events: none; position: absolute; @@ -135,6 +146,10 @@ .is-open & { pointer-events: auto; opacity: 1; + + @media (prefers-color-scheme: dark) { + color: $c-darkmode-color; + } } } } From 382e05cab80efcafbfed092573742b2f931ce7eb Mon Sep 17 00:00:00 2001 From: Xavier Foucrier Date: Sat, 21 Oct 2023 22:55:37 +0200 Subject: [PATCH 14/23] Adjust text color in dark mode when text is selected --- themes/barba/source/scss/base/_global.scss | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/themes/barba/source/scss/base/_global.scss b/themes/barba/source/scss/base/_global.scss index f08ad896..a412b7f8 100644 --- a/themes/barba/source/scss/base/_global.scss +++ b/themes/barba/source/scss/base/_global.scss @@ -23,6 +23,10 @@ body { ::selection { color: #fff; background: $c-blue-medium; + + @media (prefers-color-scheme: dark) { + color: $c-darkmode-dark; + } } [data-feature-order='0'] { From 8136b0d3ef09694de0006dc60dd74b76bc9d3a82 Mon Sep 17 00:00:00 2001 From: Xavier Foucrier Date: Sun, 22 Oct 2023 12:24:53 +0200 Subject: [PATCH 15/23] Fix default navigation color in dark mode --- themes/barba/layout/components/features/_feature-nav.scss | 2 ++ 1 file changed, 2 insertions(+) diff --git a/themes/barba/layout/components/features/_feature-nav.scss b/themes/barba/layout/components/features/_feature-nav.scss index 9faf726a..ffdf6053 100644 --- a/themes/barba/layout/components/features/_feature-nav.scss +++ b/themes/barba/layout/components/features/_feature-nav.scss @@ -32,6 +32,8 @@ letter-spacing: 0.212rem; @media (prefers-color-scheme: dark) { + color: $c-darkmode-color; + [data-feature-order='0'] & { color: $c-menu-feature-0; } From 9feca04247227f71d36903f28419bac6d449ffc8 Mon Sep 17 00:00:00 2001 From: Xavier Foucrier Date: Sun, 22 Oct 2023 16:35:36 +0200 Subject: [PATCH 16/23] Improve showcase form display --- themes/barba/layout/components/showcase/_form.scss | 5 +++++ themes/barba/layout/components/showcase/_modal.scss | 7 ++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/themes/barba/layout/components/showcase/_form.scss b/themes/barba/layout/components/showcase/_form.scss index 9fc1c779..9e2534aa 100644 --- a/themes/barba/layout/components/showcase/_form.scss +++ b/themes/barba/layout/components/showcase/_form.scss @@ -28,6 +28,7 @@ margin: 1.5rem 3rem; background: $c-blue-dark; border: 1rem solid $c-blue-darker; + user-select: none; &.highlight { border: 1rem solid $white; @@ -45,6 +46,7 @@ padding: 4rem; color: $c-blue-darkest; font-family: $ff-alt; + border-radius: 7px; .icon--barba { width: 6rem; @@ -82,6 +84,7 @@ flex-direction: column; margin: 1.5rem 3rem; background: $c-blue-darker; + border-radius: 7px; @include mq(m) { flex-direction: row; @@ -107,6 +110,7 @@ font-family: $ff-alt; background: $c-blue-dark; border: 0; + border-radius: 3px; @include mq(m) { width: 22rem; @@ -145,6 +149,7 @@ letter-spacing: 0.2rem; background: $white; border: 0; + border-radius: 7px; .is-invalid & { opacity: 0.5; diff --git a/themes/barba/layout/components/showcase/_modal.scss b/themes/barba/layout/components/showcase/_modal.scss index a0c0de01..3fcca212 100644 --- a/themes/barba/layout/components/showcase/_modal.scss +++ b/themes/barba/layout/components/showcase/_modal.scss @@ -27,6 +27,10 @@ pointer-events: none; transition: opacity 0.4s ease-in-out; + @media (prefers-color-scheme: dark) { + background-color: $c-darkmode-dark; + } + .is-open & { opacity: 1; pointer-events: initial; @@ -42,7 +46,7 @@ @include mq(m) { top: 0; - right: -7rem; + right: -8rem; justify-content: flex-end; width: max-content; height: max-content; @@ -64,6 +68,7 @@ box-shadow: 0 1px 20px rgba($c-blue-darker, 0.4); opacity: 0; transition: opacity 0.4s ease-in-out; + border-radius: 7px; .is-open & { display: flex; From 83d66372698bd8ed5eda68fa318952dfd92f35fa Mon Sep 17 00:00:00 2001 From: Xavier Foucrier Date: Sun, 22 Oct 2023 16:39:35 +0200 Subject: [PATCH 17/23] Adjust header dark mode on small screens --- themes/barba/layout/components/chrome/_header.scss | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/themes/barba/layout/components/chrome/_header.scss b/themes/barba/layout/components/chrome/_header.scss index f576ca88..8b33097a 100644 --- a/themes/barba/layout/components/chrome/_header.scss +++ b/themes/barba/layout/components/chrome/_header.scss @@ -7,6 +7,10 @@ background: $white; pointer-events: none; + @media (prefers-color-scheme: dark) { + background: $c-darkmode-light; + } + @include mq(nav) { background: transparent; } From 911b8822e0584a5950c4b32c2d7a40be2db85dd6 Mon Sep 17 00:00:00 2001 From: Xavier Foucrier Date: Sun, 22 Oct 2023 16:41:58 +0200 Subject: [PATCH 18/23] Improve big title rendering --- themes/barba/layout/components/common/_bigtitle.scss | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/themes/barba/layout/components/common/_bigtitle.scss b/themes/barba/layout/components/common/_bigtitle.scss index ee5b840b..2320e9a4 100644 --- a/themes/barba/layout/components/common/_bigtitle.scss +++ b/themes/barba/layout/components/common/_bigtitle.scss @@ -10,6 +10,7 @@ min-height: 100vh; opacity: 0.07; pointer-events: none; + user-select: none; } .big-title__title { @@ -24,6 +25,10 @@ transform: rotate(90deg); transform-origin: left center; + @media (prefers-color-scheme: dark) { + color: $black; + } + [class*='big-title--'][class*='--black'] & { color: $white; } From 062bc2e3f40165efaaff82fe5053f7375724c7b0 Mon Sep 17 00:00:00 2001 From: Xavier Foucrier Date: Sun, 22 Oct 2023 16:42:21 +0200 Subject: [PATCH 19/23] Adjust showcase item dark mode display --- .../barba/layout/components/showcase/_showcase-item.scss | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/themes/barba/layout/components/showcase/_showcase-item.scss b/themes/barba/layout/components/showcase/_showcase-item.scss index 82121244..e6dfe666 100644 --- a/themes/barba/layout/components/showcase/_showcase-item.scss +++ b/themes/barba/layout/components/showcase/_showcase-item.scss @@ -23,6 +23,10 @@ font-weight: 300; line-height: 2.2rem; letter-spacing: 0.25rem; + + @media (prefers-color-scheme: dark) { + color: $c-darkmode-color; + } } .showcase__card__footer__author { @@ -33,6 +37,10 @@ text-transform: uppercase; letter-spacing: 0.2rem; opacity: 0.3; + + @media (prefers-color-scheme: dark) { + color: $c-darkmode-color; + } } .link--view { From 4aa315178cb551d28793609a2f69466c1254fbe0 Mon Sep 17 00:00:00 2001 From: Xavier Foucrier Date: Sun, 22 Oct 2023 16:49:56 +0200 Subject: [PATCH 20/23] Improve examples dark mode display --- themes/barba/layout/components/examples/_example-item.scss | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/themes/barba/layout/components/examples/_example-item.scss b/themes/barba/layout/components/examples/_example-item.scss index a8d953a1..4cd15c6b 100644 --- a/themes/barba/layout/components/examples/_example-item.scss +++ b/themes/barba/layout/components/examples/_example-item.scss @@ -5,6 +5,10 @@ font-weight: 300; line-height: 2rem; letter-spacing: 0.1rem; + + @media (prefers-color-scheme: dark) { + color: $c-darkmode-color; + } } .example__card__picture { From 85242eb7b65a624b9e0320a917c5f7d4cf611b88 Mon Sep 17 00:00:00 2001 From: Xavier Foucrier Date: Sun, 22 Oct 2023 16:51:23 +0200 Subject: [PATCH 21/23] Improve feature dark mode display --- themes/barba/layout/components/features/_feature.scss | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/themes/barba/layout/components/features/_feature.scss b/themes/barba/layout/components/features/_feature.scss index 05c64ed2..66749616 100644 --- a/themes/barba/layout/components/features/_feature.scss +++ b/themes/barba/layout/components/features/_feature.scss @@ -29,6 +29,10 @@ left: 0; opacity: 0.8; + @media (prefers-color-scheme: dark) { + opacity: 0.9; + } + svg { display: block; max-width: 56.8rem; @@ -251,8 +255,12 @@ a { color: $c-menu-feature-5; + @media (prefers-color-scheme: dark) { + color: $c-darkmode-color; + } + img { - width: 90%; + width: 85%; border-radius: 100%; } } From 8ef2d053d67d191bb70599630f36516e5128eb06 Mon Sep 17 00:00:00 2001 From: Xavier Foucrier Date: Sun, 22 Oct 2023 16:51:51 +0200 Subject: [PATCH 22/23] Fix `showcase` page title typo --- _config.yml | 2 +- source/showcase/index.md | 4 ++-- themes/barba/source/_js/transitions/default.js | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/_config.yml b/_config.yml index 047ba8bf..bc873eea 100644 --- a/_config.yml +++ b/_config.yml @@ -95,7 +95,7 @@ menu: - title: 'Examples' url: 'examples/' slug: '/examples' - - title: 'Showcases' + - title: 'Showcase' url: 'showcase/' slug: '/showcase' - title: 'Docs' diff --git a/source/showcase/index.md b/source/showcase/index.md index bac76c1b..3241d145 100644 --- a/source/showcase/index.md +++ b/source/showcase/index.md @@ -1,5 +1,5 @@ --- -title: Showcases +title: Showcase name: showcase namespace: showcase layout: components/page/page @@ -7,6 +7,6 @@ separator: true grid: true --- -# Showcases +# Showcase Our special gallery displays the best websites using Barba.js diff --git a/themes/barba/source/_js/transitions/default.js b/themes/barba/source/_js/transitions/default.js index 80ec07f6..9b7a0aa4 100644 --- a/themes/barba/source/_js/transitions/default.js +++ b/themes/barba/source/_js/transitions/default.js @@ -14,7 +14,7 @@ export default { transitionTitle.innerHTML = next.container.dataset.barbaNamespace if (next.container.dataset.barbaNamespace === 'showcase') { - transitionTitle.innerHTML = 'showcases'; + transitionTitle.innerHTML = 'showcase'; } if (next.container.dataset.barbaNamespace === 'feature') { From f7df7ce583a9e132b19da31dceea2402b1ffc6bd Mon Sep 17 00:00:00 2001 From: Xavier Foucrier Date: Wed, 1 Nov 2023 22:20:35 +0100 Subject: [PATCH 23/23] Use SVG instead for lifecycle diagram and add a dark mode --- source/assets/diagram/lifecycle-dark.svg | 208 ++++++++++++++++++ source/assets/diagram/lifecycle-light.svg | 208 ++++++++++++++++++ source/assets/diagram/lifecycle.png | Bin 77615 -> 0 bytes source/docs/getstarted/lifecycle/index.md | 7 +- .../barba/layout/components/docs/_docs.scss | 27 +++ 5 files changed, 448 insertions(+), 2 deletions(-) create mode 100644 source/assets/diagram/lifecycle-dark.svg create mode 100644 source/assets/diagram/lifecycle-light.svg delete mode 100644 source/assets/diagram/lifecycle.png diff --git a/source/assets/diagram/lifecycle-dark.svg b/source/assets/diagram/lifecycle-dark.svg new file mode 100644 index 00000000..ae5a3ed5 --- /dev/null +++ b/source/assets/diagram/lifecycle-dark.svg @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/source/assets/diagram/lifecycle-light.svg b/source/assets/diagram/lifecycle-light.svg new file mode 100644 index 00000000..1b65c9bc --- /dev/null +++ b/source/assets/diagram/lifecycle-light.svg @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/source/assets/diagram/lifecycle.png b/source/assets/diagram/lifecycle.png deleted file mode 100644 index ed04c2bc878cdfc7b7971a97b137dc370ca4014c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 77615 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ξ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 E0?d7C*Z=?k diff --git a/source/docs/getstarted/lifecycle/index.md b/source/docs/getstarted/lifecycle/index.md index 44e76131..85d9d3a5 100644 --- a/source/docs/getstarted/lifecycle/index.md +++ b/source/docs/getstarted/lifecycle/index.md @@ -19,8 +19,11 @@ Barba's default behavior: Here is a small diagram that describe **Barba's main concept** when navigating between two pages: - - Lifecycle diagram + + Lifecycle diagram + + + Lifecycle diagram > Note that using the `sync` property will end in a different page lifecycle, see transition [sync mode](/docs/advanced/transitions/#Sync-mode). diff --git a/themes/barba/layout/components/docs/_docs.scss b/themes/barba/layout/components/docs/_docs.scss index df6e42b2..edf09b65 100644 --- a/themes/barba/layout/components/docs/_docs.scss +++ b/themes/barba/layout/components/docs/_docs.scss @@ -181,6 +181,33 @@ float: right; } } + + // lifecycle diagrams + .lifecycle-diagram { + transition: opacity 250ms ease; + + &::before { + display: none; + } + + &:hover { + opacity: 0.8; + } + + &.dark { + display: none; + } + + @media (prefers-color-scheme: dark) { + &.light { + display: none; + } + + &.dark { + display: flex; + } + } + } } .docs__page-transition {