From 44a05eb73a751abc63b22847f9db767b9fc57df5 Mon Sep 17 00:00:00 2001 From: Herwin Date: Wed, 20 Dec 2023 00:24:52 +0100 Subject: [PATCH] Reworked wedge element, Fixed code copy button, Silenced SplideJS error for now Update composer.php, common.json, and 8 more files... --- commons/composer.php | 8 +- commons/strings/en/common.json | 2 +- commons/strings/fr/common.json | 2 +- resources/NibblePoker/js/nibblepoker-code.js | 50 +++--- .../NibblePoker/js/nibblepoker-splide.js | 23 +-- resources/NibblePoker/scss/core/position.scss | 5 + .../NibblePoker/scss/core/spacing/global.scss | 3 + resources/NibblePoker/scss/nibblepoker.scss | 1 + resources/NibblePoker/scss/site/wedge.scss | 149 +++++++----------- resources/NibblePoker/scss/variables.scss | 6 +- 10 files changed, 118 insertions(+), 131 deletions(-) create mode 100644 resources/NibblePoker/scss/core/position.scss diff --git a/commons/composer.php b/commons/composer.php index c429ba8..7d88abc 100644 --- a/commons/composer.php +++ b/commons/composer.php @@ -756,6 +756,10 @@ class ComposerElement { // Defining the highlight language. $_language_class = is_null($this->codeLanguage) ? "nohighlight" : "language-" . $this->codeLanguage; + if($this->codeCopyable) { + $_language_class .= ' p-relative'; + } + // Opening the code element. // Note: The "mt-10" may have to be removed if it clashes with 'no-margin-top' ! $htmlCode .= '
'; + $htmlCode .= '
'; + $htmlCode .= ' ' . localize("common.action.copy"); + $htmlCode .= '
'; } // Closing code element. diff --git a/commons/strings/en/common.json b/commons/strings/en/common.json index 0e0dcd2..3be5183 100644 --- a/commons/strings/en/common.json +++ b/commons/strings/en/common.json @@ -1,3 +1,3 @@ { - + "common.action.copy": "Copy" } \ No newline at end of file diff --git a/commons/strings/fr/common.json b/commons/strings/fr/common.json index 0e0dcd2..c078702 100644 --- a/commons/strings/fr/common.json +++ b/commons/strings/fr/common.json @@ -1,3 +1,3 @@ { - + "common.action.copy": "Copier" } \ No newline at end of file diff --git a/resources/NibblePoker/js/nibblepoker-code.js b/resources/NibblePoker/js/nibblepoker-code.js index cd544ff..a9fdab2 100644 --- a/resources/NibblePoker/js/nibblepoker-code.js +++ b/resources/NibblePoker/js/nibblepoker-code.js @@ -1,7 +1,6 @@ // Highlights the code blocks when included on a page. // This command is separated in its own file since highlight.js isn't on every page and because I can't use JS // in a script element without using an external .js file. - Array.from(document.getElementsByClassName("code")).forEach(eCodeContainer => { let language = null; @@ -24,26 +23,33 @@ Array.from(document.getElementsByClassName("code")).forEach(eCodeContainer => { // Adding the action to copy the code to elements with the "js-code-copy" class. // The search works by searching the closest parent with the "code" class or that is a "code" element, and then // reading each of its children with the "code-line" class. - -Array.from(document.getElementsByClassName("js-code-copy")).forEach(eCodeCopyButton => { - let eParentCodeBlock = eCodeCopyButton; +document.addEventListener("DOMContentLoaded", () => { + //let codeCopyButtonCount = 0; - while(eParentCodeBlock != null &&!eParentCodeBlock.classList.contains("code") && - eParentCodeBlock.nodeName.toLowerCase() !== "code") { - eParentCodeBlock = eParentCodeBlock.parentElement; - } + Array.from(document.getElementsByClassName("js-code-copy")).forEach(eCodeCopyButton => { + let eParentCodeBlock = eCodeCopyButton; + + while(eParentCodeBlock != null &&!eParentCodeBlock.classList.contains("code") && + eParentCodeBlock.nodeName.toLowerCase() !== "code") { + eParentCodeBlock = eParentCodeBlock.parentElement; + } + + if(eParentCodeBlock != null) { + let code = ""; + + Array.from(eParentCodeBlock.children).forEach(eCodeLine => { + if(eCodeLine.classList.contains("code-line")) { + code += eCodeLine.textContent + "\n" + } + }); + + eCodeCopyButton.onclick = function() { + navigator.clipboard.writeText(code); + }; + } + + //codeCopyButtonCount++; + }); - if(eParentCodeBlock != null) { - let code = ""; - - Array.from(eParentCodeBlock.children).forEach(eCodeLine => { - if(eCodeLine.classList.contains("code-line")) { - code += eCodeLine.textContent + "\n" - } - }); - - eCodeCopyButton.onclick = function() { - navigator.clipboard.writeText(code); - }; - } -}); + //console.debug("Added code copying to " + codeCopyButtonCount + " button(s)"); +}); \ No newline at end of file diff --git a/resources/NibblePoker/js/nibblepoker-splide.js b/resources/NibblePoker/js/nibblepoker-splide.js index affd0b5..494d7af 100644 --- a/resources/NibblePoker/js/nibblepoker-splide.js +++ b/resources/NibblePoker/js/nibblepoker-splide.js @@ -1,14 +1,19 @@ // Creating the galleries with SplideJs window.addEventListener('load', function() { - new Splide( '.splide', { - perPage: 2, - cover: true, - heightRatio: 0.4, - breakpoints: { - 768: { - perPage: 1, + try { + new Splide( '.splide', { + perPage: 2, + cover: true, + heightRatio: 0.4, + breakpoints: { + 768: { + perPage: 1, + }, }, - }, - } ).mount(); + }).mount(); + } catch(err) { + console.log("Unable to setup Splide !"); + console.log(err); + } }); diff --git a/resources/NibblePoker/scss/core/position.scss b/resources/NibblePoker/scss/core/position.scss new file mode 100644 index 0000000..7654052 --- /dev/null +++ b/resources/NibblePoker/scss/core/position.scss @@ -0,0 +1,5 @@ +// NibblePoker.lu CSS - (C) 2023 Bozet Herwin + +.p-relative { + position: relative; +} diff --git a/resources/NibblePoker/scss/core/spacing/global.scss b/resources/NibblePoker/scss/core/spacing/global.scss index b4c9ad3..e25fc24 100644 --- a/resources/NibblePoker/scss/core/spacing/global.scss +++ b/resources/NibblePoker/scss/core/spacing/global.scss @@ -40,6 +40,9 @@ /* Utilities > Spacing > Global > Manual Extras */ +.p-xxxs { + padding: calc(#{$margin-base-size} * 0.125); +} .p-xxs { padding: calc(#{$margin-base-size} * 0.25); } diff --git a/resources/NibblePoker/scss/nibblepoker.scss b/resources/NibblePoker/scss/nibblepoker.scss index 9094904..205a76b 100644 --- a/resources/NibblePoker/scss/nibblepoker.scss +++ b/resources/NibblePoker/scss/nibblepoker.scss @@ -27,6 +27,7 @@ @import 'core/text'; @import 'core/containers'; @import 'core/display'; +@import 'core/position'; /* Core > Rounding */ @import 'core/rounding/global'; diff --git a/resources/NibblePoker/scss/site/wedge.scss b/resources/NibblePoker/scss/site/wedge.scss index 908cc9b..9cadea2 100644 --- a/resources/NibblePoker/scss/site/wedge.scss +++ b/resources/NibblePoker/scss/site/wedge.scss @@ -4,116 +4,75 @@ .wedge { position: absolute; - bottom: 0; + top: 0; right: 0; - width: 2.5rem; - height: 2.5rem; - clip-path: polygon(100% 0, 0 100%, 100% 100%); - border-radius: var(--base-border-radius) !important; - //border-bottom-right-radius: var(--base-border-radius) !important; - overflow: hidden; - - color: var(--dm-button-text-color); - background-color: var(--dm-button-bg-color); - background-image: var(--dm-button-bg-image); - border-color: var(--dm-button-border-color); - opacity: 0.4; - - // https://codepen.io/setswon/pen/VJeXXq - // Using a value of ~0.35 feels sluggish. - transition: width 0.25s ease, height 0.25s ease, opacity 0.2s ease; - transition-timing-function: cubic-bezier(.47,1.64,.41,.8); + color: #{$color-text-regular-normal}; + background-color: #{$color-background-button}; user-select: none; cursor: pointer; - &.primary { - color: white; - - background-color: #{$color-wedge-blue-background}; - border-color: #{$color-wedge-blue-border}; - - //color: var(--dm-button-primary-text-color); - //background-color: var(--dm-button-primary-bg-color); - //background-image: var(--dm-button-primary-bg-image); - //border-color: var(--dm-button-primary-border-color); - } + //opacity: 0.875; - &.secondary { - color: var(--dm-button-secondary-text-color); - background-color: var(--dm-button-secondary-bg-color); - background-image: var(--dm-button-secondary-bg-image); - border-color: var(--dm-button-secondary-border-color); - } - - &.danger { - color: var(--dm-button-secondary-text-color); // White icons looks like shit. - background-color: var(--dm-button-danger-bg-color); - background-image: var(--dm-button-danger-bg-image); - border-color: var(--dm-button-danger-border-color); - } - - i { - position: absolute; - right: 0.2rem; - bottom: 0.2rem; - transition: right 0.25s ease, bottom 0.25s ease; - transition-timing-function: cubic-bezier(.47,1.64,.41,.8); - - &.r-45 { - // Small fix - right: 0.4rem; - } - } + // https://codepen.io/setswon/pen/VJeXXq + // Using a value of ~0.35 feels sluggish. + //transition: color 0.25s ease; + //transition-timing-function: cubic-bezier(.47,1.64,.41,.8); &:hover { - width: 3rem; - height: 3rem; - opacity: 0.8; - - i { - bottom: 0.325em; - right: 0.325rem; - - &.r-45 { - // Small fix - right: 0.7rem; - } + background-color: #{$color-background-button-hover}; + } + + &.wedge-shadow { + box-shadow: 0px 0px 5px 0px rgba(0,0,0,0.5); + } + + &.primary { + background-color: #{$color-background-button-primary}; + &:hover { + background-color: #{$color-background-button-primary-hover}; } } - // Extra rule for mobile - // If it doesn't work, use "768px" ! - @media (max-width: 576px) { - width: 3.5rem; - height: 3.5rem; - opacity: 0.8; - - i { - bottom: 0.325em; - right: 0.325rem; - - &.r-45 { - // Small fix - right: 0.7rem; - } + &.success { + background-color: #{$color-background-button-success}; + &:hover { + background-color: #{$color-background-button-success-hover}; } } - &.fold-top-right { + &.error { + background-color: #{$color-background-button-error}; + &:hover { + background-color: #{$color-background-button-error-hover}; + } + } + + &.warning { + background-color: #{$color-background-button-warning}; + &:hover { + background-color: #{$color-background-button-warning-hover}; + } + } + + &.wedge-tr { top: 0; - clip-path: polygon(0 0, 100% 0, 100% 100%); - - i { - top: 0.3em; - right: 0.3rem; - } - - &:hover i { - top: 0.4rem; - right: 0.4rem; - } + right: 0; + } + + &.wedge-br { + bottom: 0; + right: 0; + } + + &.wedge-tl { + top: 0; + left: 0; + } + + &.wedge-bl { + bottom: 0; + left: 0; } } - diff --git a/resources/NibblePoker/scss/variables.scss b/resources/NibblePoker/scss/variables.scss index 0bb1931..4bde92a 100644 --- a/resources/NibblePoker/scss/variables.scss +++ b/resources/NibblePoker/scss/variables.scss @@ -267,8 +267,10 @@ $color-link-blue-hover: #{$color-apollo-05}; $color-input-glow: $color-apollo-02; -$color-wedge-blue-background: $color-apollo-03; -$color-wedge-blue-border: $color-apollo-02; +//$color-wedge-blue-background: $color-apollo-03; + +// Still used for wedges !!! - Nope, it looked bad with the new colors ! +//$color-wedge-blue-border: $color-apollo-02; //$color-background-body: $color-apollo-custom-00; //$color-background-main: $color-apollo-custom-02;