From a4114053da743f5c5f6bcc1acbd51ad9d2dc233c Mon Sep 17 00:00:00 2001 From: lnormandon Date: Fri, 31 May 2024 14:42:33 +0200 Subject: [PATCH] Filter Color --- assets/css/mobileDrawer.css | 5 +++ assets/js/mobileDrawer.js | 4 ++ .../FilterSelect/FilterSelect.stories.js | 33 +++++++++++--- .../Filters/FilterSelect/FilterSelect.twig | 18 +++++++- .../Filters/FilterSelect/filterSelect.css | 43 +++++++++++-------- .../Modules/Filters/FilterColor.twig | 1 + .../Modules/Filters/Filters.stories.js | 35 +++++++++++++++ .../Organisms/Modules/Filters/filters.css | 0 8 files changed, 114 insertions(+), 25 deletions(-) create mode 100644 components/Organisms/Modules/Filters/FilterColor.twig create mode 100644 components/Organisms/Modules/Filters/Filters.stories.js create mode 100644 components/Organisms/Modules/Filters/filters.css diff --git a/assets/css/mobileDrawer.css b/assets/css/mobileDrawer.css index 4a6c5a5..ca4ac98 100644 --- a/assets/css/mobileDrawer.css +++ b/assets/css/mobileDrawer.css @@ -35,6 +35,11 @@ @apply translate-y-0; } + /* Navigation au clavier */ + &:has(label:focus) { + @apply translate-y-0; + } + @screen md { display: none; } diff --git a/assets/js/mobileDrawer.js b/assets/js/mobileDrawer.js index e781135..64dcf72 100644 --- a/assets/js/mobileDrawer.js +++ b/assets/js/mobileDrawer.js @@ -4,7 +4,11 @@ export default function MobileDrawer() { toggleDrawers.forEach(function (drawer) { drawer.addEventListener('click', () => { + if (!drawer.dataset?.drawerToggle) return; + console.log({ data: drawer.dataset?.drawerToggle }); const currentDrawer = document.querySelector(drawer.dataset.drawerToggle); + console.log({ currentDrawer }); + if (!currentDrawer) return; currentDrawer.classList.toggle('MobileDrawer-show'); }); diff --git a/components/Molecules/Filters/FilterSelect/FilterSelect.stories.js b/components/Molecules/Filters/FilterSelect/FilterSelect.stories.js index c09d227..5a8828d 100644 --- a/components/Molecules/Filters/FilterSelect/FilterSelect.stories.js +++ b/components/Molecules/Filters/FilterSelect/FilterSelect.stories.js @@ -1,5 +1,6 @@ import FilterSelect from './FilterSelect.twig'; import filterSelectFunction from './FilterSelect.js'; +import MobileDrawer from '../../../../assets/js/mobileDrawer'; export default { title: 'Design System/Molecules/Filters/FilterSelect' @@ -8,22 +9,42 @@ export default { export const Base = { render: (args) => FilterSelect(args), play: () => { - filterSelectFunction() + filterSelectFunction(); + MobileDrawer(); }, args: { - id: "filterSelect", + id: 'filterSelect', placeholder: 'Taille', - options: [{ value: 1, label: "S - 34/36" }, { value: 2, label: "M - 38/40" }, { value: 3, label: "L - 42/44" }], + options: [ + { value: 1, label: 'S - 34/36' }, + { value: 2, label: 'M - 38/40' }, + { value: 3, label: 'L - 42/44' } + ] } }; export const Color = { render: (args) => FilterSelect(args), play: () => { - filterSelectFunction() + filterSelectFunction(); }, args: { - id: "colorFilterSelect", - options: [{ value: 1, label: "State Blue" }, { value: 2, label: "Vermillon" }, { value: 3, label: "Grey" }], + id: 'colorFilterSelect', + options: [ + { + value: 1, + label: + "State Blue" + }, + { + value: 2, + label: + "Vermillon" + }, + { + value: 3, + label: "Grey" + } + ] } }; diff --git a/components/Molecules/Filters/FilterSelect/FilterSelect.twig b/components/Molecules/Filters/FilterSelect/FilterSelect.twig index 8d0d738..81938e6 100644 --- a/components/Molecules/Filters/FilterSelect/FilterSelect.twig +++ b/components/Molecules/Filters/FilterSelect/FilterSelect.twig @@ -1,4 +1,4 @@ -
+
{% if placeholder %} + + +
+
+ +
+
+
    + {% for option in options %} +
  • + +
  • + {% endfor %} +
+
+
diff --git a/components/Molecules/Filters/FilterSelect/filterSelect.css b/components/Molecules/Filters/FilterSelect/filterSelect.css index b74b412..ae05f08 100644 --- a/components/Molecules/Filters/FilterSelect/filterSelect.css +++ b/components/Molecules/Filters/FilterSelect/filterSelect.css @@ -8,16 +8,18 @@ outline: none; border: 1px solid var(--grey-lighter); - &:focus-visible+ .FilterSelect-list { - opacity: 1; - animation-name: none; + @screen md { + &:focus+ .FilterSelect-list { + opacity: 1; + animation-name: none; + } } - &:focus-visible+ .FilterSelect-list .FilterSelect-option { + &:focus+ .FilterSelect-list .FilterSelect-option { cursor: pointer; } - &:focus-visible.FilterSelect-icon { + &:focus.FilterSelect-icon { transform: translateY(-50%) rotate(180deg); } } @@ -67,10 +69,12 @@ animation-fill-mode: forwards; animation-timing-function: step-start; - /* Navigation au clavier */ - &:has(.FilterSelect-option:focus) { - opacity: 1; - animation-name: none; + @screen md { + /* Navigation au clavier */ + &:has(.FilterSelect-option:focus) { + opacity: 1; + animation-name: none; + } } } @@ -85,21 +89,24 @@ outline: none; &:hover, - &:focus-visible{ + &:focus{ background-color: var(--grey-lightest); } } - .colorRounded { - --default-bg-color: #ffffff; + &, &-mobileDrawer { + .colorRounded { + --default-bg-color: #ffffff; - width: rem-convert(21px); - height: rem-convert(21px); - display: block; - border-radius: 50%; - background-color: var(--default-bg-color); - margin-right: rem-convert(8px); + width: rem-convert(21px); + height: rem-convert(21px); + display: block; + border-radius: 50%; + background-color: var(--default-bg-color); + margin-right: rem-convert(8px); + } } + } @keyframes HideList { diff --git a/components/Organisms/Modules/Filters/FilterColor.twig b/components/Organisms/Modules/Filters/FilterColor.twig new file mode 100644 index 0000000..0e63ab3 --- /dev/null +++ b/components/Organisms/Modules/Filters/FilterColor.twig @@ -0,0 +1 @@ +{% include '../../../Molecules/Filters/FilterSelect/FilterSelect.twig' with {id: 'colorFilterSelect', options: options} %} diff --git a/components/Organisms/Modules/Filters/Filters.stories.js b/components/Organisms/Modules/Filters/Filters.stories.js new file mode 100644 index 0000000..e6a6691 --- /dev/null +++ b/components/Organisms/Modules/Filters/Filters.stories.js @@ -0,0 +1,35 @@ +import FilterColorComponent from './FilterColor.twig'; +import filterSelectFunction from '../../../Molecules/Filters/FilterSelect/FilterSelect'; +import MobileDrawer from '../../../../assets/js/mobileDrawer'; + +export default { + title: 'Design System/Organisms/Modules/Filters' +}; + +export const FilterColor = { + render: (args) => + `
${FilterColorComponent(args)}
`, + play: () => { + filterSelectFunction(); + MobileDrawer(); + }, + args: { + options: [ + { + value: 1, + label: + "State Blue" + }, + { + value: 2, + label: + "Vermillon" + }, + { + value: 3, + label: "Grey" + } + ] + }, + argTypes: {} +}; diff --git a/components/Organisms/Modules/Filters/filters.css b/components/Organisms/Modules/Filters/filters.css new file mode 100644 index 0000000..e69de29