diff --git a/assets/css/_bootstrap.scss b/assets/css/_bootstrap.scss index 7c18f401c9957390321b6a6c3bf49237519ec566..465990ace11fdcd221e037ca5130798f0f5593e2 100644 --- a/assets/css/_bootstrap.scss +++ b/assets/css/_bootstrap.scss @@ -1,37 +1,53 @@ +/*! + * Bootstrap v5.1.3 (https://getbootstrap.com/) + * Copyright 2011-2021 The Bootstrap Authors + * Copyright 2011-2021 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */ + +// scss-docs-start import-stack +// Configuration @import "~bootstrap/scss/functions"; @import "~bootstrap/scss/variables"; @import "~bootstrap/scss/mixins"; +@import "~bootstrap/scss/utilities"; + +// Layout & components @import "~bootstrap/scss/root"; @import "~bootstrap/scss/reboot"; @import "~bootstrap/scss/type"; @import "~bootstrap/scss/images"; -@import "~bootstrap/scss/code"; +@import "~bootstrap/scss/containers"; @import "~bootstrap/scss/grid"; @import "~bootstrap/scss/tables"; @import "~bootstrap/scss/forms"; @import "~bootstrap/scss/buttons"; @import "~bootstrap/scss/transitions"; -// @import "~bootstrap/scss/dropdown"; -// @import "~bootstrap/scss/button-group"; -@import "~bootstrap/scss/input-group"; -// @import "~bootstrap/scss/custom-forms"; +// @import "~bootstrap/scss/dropdown"; +// @import "~bootstrap/scss/button-group"; @import "~bootstrap/scss/nav"; @import "~bootstrap/scss/navbar"; @import "~bootstrap/scss/card"; +@import "~bootstrap/scss/accordion"; @import "~bootstrap/scss/breadcrumb"; -// @import "~bootstrap/scss/pagination"; +// @import "~bootstrap/scss/pagination"; @import "~bootstrap/scss/badge"; -// @import "~bootstrap/scss/jumbotron"; @import "~bootstrap/scss/alert"; -// @import "~bootstrap/scss/progress"; -// @import "~bootstrap/scss/media"; +// @import "~bootstrap/scss/progress"; @import "~bootstrap/scss/list-group"; @import "~bootstrap/scss/close"; -// @import "~bootstrap/scss/toasts"; -// @import "~bootstrap/scss/modal"; +// @import "~bootstrap/scss/toasts"; +// @import "~bootstrap/scss/modal"; @import "~bootstrap/scss/tooltip"; -// @import "~bootstrap/scss/popover"; -// @import "~bootstrap/scss/carousel"; -// @import "~bootstrap/scss/spinners"; -@import "~bootstrap/scss/utilities"; -@import "~bootstrap/scss/print"; +// @import "~bootstrap/scss/popover"; +// @import "~bootstrap/scss/carousel"; +// @import "~bootstrap/scss/spinners"; +@import "~bootstrap/scss/offcanvas"; +// TODO : A tester +// @import "~bootstrap/scss/placeholders"; + +// Helpers +@import "~bootstrap/scss/helpers"; + +// Utilities +@import "~bootstrap/scss/utilities/api"; diff --git a/assets/css/style _back.scss b/assets/css/style _back.scss new file mode 100644 index 0000000000000000000000000000000000000000..3432e1cc784873c4ac1577f93dca6d84cf836a3b --- /dev/null +++ b/assets/css/style _back.scss @@ -0,0 +1,110 @@ +// Bootstrap variables customisation +// Fonts & Typo +$link-hover-decoration: none; +$text-muted: var(--text-secondary-color); +$enable-responsive-font-sizes: true; +$font-family-base: Montserrat, Helvetica, Arial, serif; +$small-font-size: 70%; + +// Body +$body-bg: var(--background-color-primary); +$body-color: var(--text-primary-color); + +// Tables; +$table-border-color: var(--background-color-primary); +$table-cell-padding: 0.5rem; +$table-bg: var(--background-color-primary); +$table-color: var(--text-primary-color); +$table-head-bg: var(--background-color-secondary); +$table-head-color: var(--text-primary-color); +$table-hover-bg: rgba(0, 0, 255, 0.075); + +// Breadcrumb +$breadcrumb-bg: var(--background-color-secondary); +$breadcrumb-active-color: var(--text-primary-color); +$breadcrumb-divider-color: var(--text-primary-color); + +// List-groups +$list-group-bg: var(--background-color-secondary); +$list-group-active-bg: rgba(0, 0, 255, 0.075); +$list-group-active-color: var(--text-primary-color); +$list-group-action-hover-color: var(--text-secondary-color); +$list-group-action-color: var(--text-primary-color); + +// Cards +$card-bg: var(--background-color-secondary); + +// Close button +$close-color: var(--text-primary-color); +$close-font-weight: 500; + +// Mark +$mark-padding: 0.2em 0; +$mark-bg: yellow; + +// Colors +$info: #0a8299; + +@import "font"; +@import "bootstrap"; + +.btn:disabled { + cursor: not-allowed; +} + +.table { + &-fixed { + table-layout: fixed; + } + + &.sortable thead { + tr { + border-left: 1px solid var(--text-primary-color); + } + + th { + border-right: 1px solid; + border-top: 1px solid; + border-bottom: 1px solid; + } + } + tbody tr > * { + vertical-align: middle; + } + + &-hover tbody tr { + cursor: pointer; + } + + .td-date { + width: 165px; + } +} + +.list-group-item { + &-action:not(.active) { + &:hover { + background: rgba(0, 0, 255, 0.075); + color: var(--text-primary-color); + } + } + + .menu-item { + transition: left 0.3s ease-in-out; + left: 0; + + &::before { + content: "›"; + position: relative; + left: -0.5em; + } + + &:hover { + left: 0.5em; + } + } +} + +.icon { + width: 1.15rem; +} diff --git a/assets/css/style.scss b/assets/css/style.scss index 3432e1cc784873c4ac1577f93dca6d84cf836a3b..57ddf82a98ad19f4d97293a642fea3f8889430e2 100644 --- a/assets/css/style.scss +++ b/assets/css/style.scss @@ -1,50 +1,3 @@ -// Bootstrap variables customisation -// Fonts & Typo -$link-hover-decoration: none; -$text-muted: var(--text-secondary-color); -$enable-responsive-font-sizes: true; -$font-family-base: Montserrat, Helvetica, Arial, serif; -$small-font-size: 70%; - -// Body -$body-bg: var(--background-color-primary); -$body-color: var(--text-primary-color); - -// Tables; -$table-border-color: var(--background-color-primary); -$table-cell-padding: 0.5rem; -$table-bg: var(--background-color-primary); -$table-color: var(--text-primary-color); -$table-head-bg: var(--background-color-secondary); -$table-head-color: var(--text-primary-color); -$table-hover-bg: rgba(0, 0, 255, 0.075); - -// Breadcrumb -$breadcrumb-bg: var(--background-color-secondary); -$breadcrumb-active-color: var(--text-primary-color); -$breadcrumb-divider-color: var(--text-primary-color); - -// List-groups -$list-group-bg: var(--background-color-secondary); -$list-group-active-bg: rgba(0, 0, 255, 0.075); -$list-group-active-color: var(--text-primary-color); -$list-group-action-hover-color: var(--text-secondary-color); -$list-group-action-color: var(--text-primary-color); - -// Cards -$card-bg: var(--background-color-secondary); - -// Close button -$close-color: var(--text-primary-color); -$close-font-weight: 500; - -// Mark -$mark-padding: 0.2em 0; -$mark-bg: yellow; - -// Colors -$info: #0a8299; - @import "font"; @import "bootstrap"; diff --git a/components/btn/Clipboard.vue b/components/btn/Clipboard.vue index 194b9dbfccf8acc089547320a72ed3a9a062f125..1ccd7c16e9c2d3c15e6fc0b31a082d49cefb66df 100644 --- a/components/btn/Clipboard.vue +++ b/components/btn/Clipboard.vue @@ -28,14 +28,14 @@ export default { methods: { copyText() { navigator.clipboard.writeText(this.textContent) - $("#btncopy").tooltip({ - title: this.$t("copie") + " !", - trigger: "manual" - }) - $("#btncopy").tooltip("show") - setTimeout(() => { - $("#btncopy").tooltip("hide") - }, 1000) + // $("#btncopy").tooltip({ + // title: this.$t("copie") + " !", + // trigger: "manual" + // }) + // $("#btncopy").tooltip("show") + // setTimeout(() => { + // $("#btncopy").tooltip("hide") + // }, 1000) } } } diff --git a/layouts/default.vue b/layouts/default.vue index 0f7e668b7196a17374722d0400dad1a363dfb0e6..6e92b150a74d83970777e5ce3ad03f287765efb3 100644 --- a/layouts/default.vue +++ b/layouts/default.vue @@ -3,7 +3,7 @@ <NavigationBar :breadcrumb="breadcrumb" :menus="menus" /> <Nuxt /> <a - class="scrollToTop bg-info position-fixed text-white d-flex align-items-center justify-content-center rounded" + class="scrollToTop fade bg-info position-fixed text-white d-flex align-items-center justify-content-center rounded" href="#" @click="scrollToTop($event)"> <outline-chevron-double-up-icon class="icon" /> @@ -49,16 +49,13 @@ export default { } }, beforeMount() { - let animated = false window.addEventListener("scroll", function (e) { - if (window.scrollY > 250 && !animated) { - $(".scrollToTop").css("right", "1rem") - } else { - animated = true - setTimeout(function () { - animated = false - }, 300) - $(".scrollToTop").css("right", "-4rem") + let scrollClassList = document.querySelector(".scrollToTop").classList + let visible = scrollClassList.contains("show") + if (!visible && window.scrollY > 250) { + scrollClassList.add("show") + } else if (visible && window.scrollY <= 250) { + scrollClassList.remove("show") } }) }, @@ -129,6 +126,10 @@ main { opacity: 0.7; transition: all 0.3s ease-in; + &.show { + right: 1rem; + } + &:hover { opacity: 1; } diff --git a/nuxt.config.js b/nuxt.config.js index 41270b5bd9089f81f7f646c3c19eab256281f6e9..f2984f2aff02d668b230c7441068945e827ef132 100644 --- a/nuxt.config.js +++ b/nuxt.config.js @@ -34,7 +34,7 @@ export default { plugins: [ "~plugins/favourites.js", "~plugins/filters.js", - "~plugins/bootstrap.js" + { src: "~/plugins/bootstrap.js", mode: "client" } ], // Auto import components: https://go.nuxtjs.dev/config-components @@ -129,10 +129,6 @@ export default { // Build Configuration: https://go.nuxtjs.dev/config-build build: { - plugins: [ - new webpack.ProvidePlugin({ - $: "jquery" - }) - ] + plugins: [] } } diff --git a/package.json b/package.json index eaf1b1bb717cc529750145983157468d7a873d0a..2cf212306239944fb393bc1185223c760a26a1db 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "@nuxtjs/pwa": "^3.3.5", "apollo-link-context": "^1.0.20", "apollo-link-http": "^1.5.17", - "bootstrap": "^4.6.1", + "bootstrap": "^5.1.3", "core-js": "^3.15.1", "graphql-tag": "^2.12.6", "nuxt": "^2.15.8", diff --git a/pages/lexique.vue b/pages/lexique.vue index 8db090354ec8572ea491866633035cb456e1bc3c..c71a3a8b4ef94792505f710699998f2e297bf088 100644 --- a/pages/lexique.vue +++ b/pages/lexique.vue @@ -122,10 +122,12 @@ export default { }, beforeMount() { window.addEventListener("scroll", function (e) { - if (window.scrollY > 20) { - $(".rech-lexique").addClass("reduced") - } else { - $(".rech-lexique").removeClass("reduced") + let scrollClassList = document.querySelector(".rech-lexique").classList + let reduced = scrollClassList.contains("reduced") + if (!reduced && window.scrollY > 20) { + scrollClassList.add("reduced") + } else if (reduced && window.scrollY <= 20) { + scrollClassList.remove("reduced") } }) }, diff --git a/plugins/bootstrap.js b/plugins/bootstrap.js index 18c3e09b6810be9f51b91d406efc9073ad9a8e8f..af4c79da2707d7edb450607c6cb22012e2b36517 100644 --- a/plugins/bootstrap.js +++ b/plugins/bootstrap.js @@ -1,3 +1 @@ -if (process.browser) { - require("bootstrap") -} \ No newline at end of file +import bootstrap from "bootstrap" diff --git a/plugins/favourites.js b/plugins/favourites.js index 73187ba0f3604bec6af3edd14eb7a134daa34839..d140fccc276e69be228a80c680752c792067d1b0 100644 --- a/plugins/favourites.js +++ b/plugins/favourites.js @@ -6,20 +6,20 @@ export default (context, inject) => { : [] let toggleFavourite = (uid, e) => { - $(e.target).tooltip({ - title: function () { - return context.$favourites.list.includes(uid) - ? context.app.i18n.t("favoris.supprime") - : context.app.i18n.t("favoris.enregistre") - }, - html: true, - trigger: "manual" - }) + // $(e.target).tooltip({ + // title: function () { + // return context.$favourites.list.includes(uid) + // ? context.app.i18n.t("favoris.supprime") + // : context.app.i18n.t("favoris.enregistre") + // }, + // html: true, + // trigger: "manual" + // }) - $(e.target).tooltip("show") - setTimeout(() => { - $(e.target).tooltip("hide") - }, 600) + // $(e.target).tooltip("show") + // setTimeout(() => { + // $(e.target).tooltip("hide") + // }, 600) if (!context.$favourites.list.includes(uid)) { context.$favourites.list.push(uid)