From 3aba80035a41732e82da34f98c874b66861b18de Mon Sep 17 00:00:00 2001 From: rray524 Date: Mon, 4 Nov 2024 01:11:49 +0530 Subject: [PATCH 1/3] add-doctor-section-1.0 --- package-lock.json | 61 ++- package.json | 4 +- src/assets/img_01.webp | Bin 0 -> 20856 bytes src/assets/img_02.webp | Bin 0 -> 9364 bytes src/assets/img_03.webp | Bin 0 -> 10966 bytes src/assets/img_04.webp | Bin 0 -> 6742 bytes src/assets/img_05.webp | Bin 0 -> 7574 bytes src/assets/shape.svg | 422 ++++++++++++++++++ src/components/Paragraph.jsx | 22 + src/containers/Container.jsx | 20 + src/index.css | 44 ++ .../OurDoctors/DoctorSectionWrapper.jsx | 17 + src/sections/OurDoctors/HeaderTitle.jsx | 14 + src/sections/OurDoctors/TeamSlider.jsx | 90 ++++ 14 files changed, 692 insertions(+), 2 deletions(-) create mode 100644 src/assets/img_01.webp create mode 100644 src/assets/img_02.webp create mode 100644 src/assets/img_03.webp create mode 100644 src/assets/img_04.webp create mode 100644 src/assets/img_05.webp create mode 100644 src/assets/shape.svg create mode 100644 src/components/Paragraph.jsx create mode 100644 src/containers/Container.jsx create mode 100644 src/sections/OurDoctors/DoctorSectionWrapper.jsx create mode 100644 src/sections/OurDoctors/HeaderTitle.jsx create mode 100644 src/sections/OurDoctors/TeamSlider.jsx diff --git a/package-lock.json b/package-lock.json index 17df74f..46ccfb4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,7 +16,9 @@ "@fortawesome/react-fontawesome": "^0.2.2", "react": "^18.3.1", "react-dom": "^18.3.1", - "react-router-dom": "^6.26.0" + "react-router-dom": "^6.26.0", + "react-slick": "^0.30.2", + "slick-carousel": "^1.8.1" }, "devDependencies": { "@chromatic-com/storybook": "^1.6.1", @@ -3647,6 +3649,11 @@ } } }, + "node_modules/classnames": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz", + "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==" + }, "node_modules/color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", @@ -4028,6 +4035,11 @@ "node": ">= 0.8" } }, + "node_modules/enquire.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/enquire.js/-/enquire.js-2.1.6.tgz", + "integrity": "sha512-/KujNpO+PT63F7Hlpu4h3pE3TokKRHN26JYmQpPyjkRD/N57R7bPDNojMXdi7uveAKjYB7yQnartCxZnFWr0Xw==" + }, "node_modules/entities": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", @@ -5999,6 +6011,14 @@ "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true }, + "node_modules/json2mq": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/json2mq/-/json2mq-0.2.0.tgz", + "integrity": "sha512-SzoRg7ux5DWTII9J2qkrZrqV1gt+rTaoufMxEzXbS26Uid0NwaJd123HcoB80TgubEppxxIGdNxCx50fEoEWQA==", + "dependencies": { + "string-convert": "^0.2.0" + } + }, "node_modules/json5": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", @@ -6096,6 +6116,11 @@ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" + }, "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", @@ -7322,6 +7347,22 @@ "react-dom": ">=16.8" } }, + "node_modules/react-slick": { + "version": "0.30.2", + "resolved": "https://registry.npmjs.org/react-slick/-/react-slick-0.30.2.tgz", + "integrity": "sha512-XvQJi7mRHuiU3b9irsqS9SGIgftIfdV5/tNcURTb5LdIokRA5kIIx3l4rlq2XYHfxcSntXapoRg/GxaVOM1yfg==", + "dependencies": { + "classnames": "^2.2.5", + "enquire.js": "^2.1.6", + "json2mq": "^0.2.0", + "lodash.debounce": "^4.0.8", + "resize-observer-polyfill": "^1.5.0" + }, + "peerDependencies": { + "react": "^0.14.0 || ^15.0.1 || ^16.0.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^0.14.0 || ^15.0.1 || ^16.0.0 || ^17.0.0 || ^18.0.0" + } + }, "node_modules/read-cache": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", @@ -7473,6 +7514,11 @@ "node": ">=0.10.5" } }, + "node_modules/resize-observer-polyfill": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", + "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==" + }, "node_modules/resolve": { "version": "2.0.0-next.5", "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", @@ -7828,6 +7874,14 @@ "node": ">=8" } }, + "node_modules/slick-carousel": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/slick-carousel/-/slick-carousel-1.8.1.tgz", + "integrity": "sha512-XB9Ftrf2EEKfzoQXt3Nitrt/IPbT+f1fgqBdoxO3W/+JYvtEOW6EgxnWfr9GH6nmULv7Y2tPmEX3koxThVmebA==", + "peerDependencies": { + "jquery": ">=1.8.0" + } + }, "node_modules/snake-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", @@ -7893,6 +7947,11 @@ "url": "https://opencollective.com/storybook" } }, + "node_modules/string-convert": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/string-convert/-/string-convert-0.2.1.tgz", + "integrity": "sha512-u/1tdPl4yQnPBjnVrmdLo9gtuLvELKsAoRapekWggdiQNvvvum+jYF329d84NAa660KQw7pB2n36KrIKVoXa3A==" + }, "node_modules/string-width": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", diff --git a/package.json b/package.json index 07300ff..c849c22 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,9 @@ "@fortawesome/react-fontawesome": "^0.2.2", "react": "^18.3.1", "react-dom": "^18.3.1", - "react-router-dom": "^6.26.0" + "react-router-dom": "^6.26.0", + "react-slick": "^0.30.2", + "slick-carousel": "^1.8.1" }, "devDependencies": { "@chromatic-com/storybook": "^1.6.1", diff --git a/src/assets/img_01.webp b/src/assets/img_01.webp new file mode 100644 index 0000000000000000000000000000000000000000..f1cb530bd5f779824521a2da4f180591dd2218bb GIT binary patch literal 20856 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 TUUQ0i@8c*OF|+L>_v63-^-k{{ literal 0 HcmV?d00001 diff --git a/src/assets/img_02.webp b/src/assets/img_02.webp new file mode 100644 index 0000000000000000000000000000000000000000..233d2273a587c36f834e1b9b08a22e9cbd3815f9 GIT binary patch literal 9364 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 Oyr-LY5vTfeSDgU69>tj?0$Xmm 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 E00`r#lF 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 literal 0 HcmV?d00001 diff --git a/src/assets/img_05.webp b/src/assets/img_05.webp new file mode 100644 index 0000000000000000000000000000000000000000..9379540e3014d7c6cfa37649fbbb1b724b8af428 GIT binary patch literal 7574 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 literal 0 HcmV?d00001 diff --git a/src/assets/shape.svg b/src/assets/shape.svg new file mode 100644 index 0000000..a099534 --- /dev/null +++ b/src/assets/shape.svg @@ -0,0 +1,422 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/components/Paragraph.jsx b/src/components/Paragraph.jsx new file mode 100644 index 0000000..78d94ff --- /dev/null +++ b/src/components/Paragraph.jsx @@ -0,0 +1,22 @@ +import PropTypes from "prop-types"; + +const Paragraph = ({ children, className }) => { + return ( +

+ {children} +

+ ); +}; + +Paragraph.propTypes = { + children: PropTypes.node.isRequired, + className: PropTypes.string, +}; + +Paragraph.defaultProps = { + className: "", +}; + +export default Paragraph; diff --git a/src/containers/Container.jsx b/src/containers/Container.jsx new file mode 100644 index 0000000..e1b2e7d --- /dev/null +++ b/src/containers/Container.jsx @@ -0,0 +1,20 @@ +import PropTypes from "prop-types"; + +const Container = ({ children, className }) => { + return ( +
+ {children} +
+ ); +}; + +Container.propTypes = { + children: PropTypes.node.isRequired, + className: PropTypes.string, +}; + +Container.defaultProps = { + className: "", +}; + +export default Container; diff --git a/src/index.css b/src/index.css index af96fb4..7967928 100644 --- a/src/index.css +++ b/src/index.css @@ -5,3 +5,47 @@ body { font-family: "Open Sans", Arial, sans-serif; } +.with-background::before { + content: ""; + position: absolute; + left: -40px; + right: -40px; + top: -35px; + height: 45%; + z-index: -1; + background: url("assets/shape.svg") no-repeat 50%; + background-size: cover; +} +.slick-dots li.slick-active button:before { + @apply opacity-100 text-orange-600 text-[14px]; +} +.slick-dots li button:before { + @apply opacity-100 text-black text-[14px]; +} +@layer components { + .doctor-section { + @apply relative; + + /* Left Line (Before) */ + &::before { + content: ""; + position: absolute; + width: calc(50% - 65px); + height: 2px; + background-color: #000; + bottom: 0; + left: 0; + } + + /* Right Line (After) */ + &::after { + content: ""; + position: absolute; + width: calc(50% - 65px); + height: 2px; + background-color: #000; + bottom: 0; + right: 0; + } + } +} diff --git a/src/sections/OurDoctors/DoctorSectionWrapper.jsx b/src/sections/OurDoctors/DoctorSectionWrapper.jsx new file mode 100644 index 0000000..34ae821 --- /dev/null +++ b/src/sections/OurDoctors/DoctorSectionWrapper.jsx @@ -0,0 +1,17 @@ +import Paragraph from "../../components/Paragraph"; +import HeaderTitle from "./HeaderTitle"; +import TeamSlider from "./TeamSlider"; + +const DoctorSectionWrapper = () => { + return ( + <> + + + Lorem is placeholder text commonly used graphic + + + + ); +}; + +export default DoctorSectionWrapper; diff --git a/src/sections/OurDoctors/HeaderTitle.jsx b/src/sections/OurDoctors/HeaderTitle.jsx new file mode 100644 index 0000000..480bff7 --- /dev/null +++ b/src/sections/OurDoctors/HeaderTitle.jsx @@ -0,0 +1,14 @@ +import HeaderText from "../../components/HeaderText"; + +const HeaderTitle = () => { + return ( + + ); +}; + +export default HeaderTitle; diff --git a/src/sections/OurDoctors/TeamSlider.jsx b/src/sections/OurDoctors/TeamSlider.jsx new file mode 100644 index 0000000..b19334a --- /dev/null +++ b/src/sections/OurDoctors/TeamSlider.jsx @@ -0,0 +1,90 @@ +import Slider from "react-slick"; +import "slick-carousel/slick/slick.css"; +import "slick-carousel/slick/slick-theme.css"; +import image1 from "../../assets/img_01.webp"; +import image2 from "../../assets/img_02.webp"; +import image3 from "../../assets/img_03.webp"; +import image4 from "../../assets/img_04.webp"; +import image5 from "../../assets/img_05.webp"; + +const teamMembers = [ + { + name: "Jubayer Al Hasan", + role: "Marketing Expert", + imageUrl: image1, + }, + { + name: "Jannatul Ferdaus", + role: "Broker", + imageUrl: image2, + }, + { + name: "Chris Matial", + role: "Broker", + imageUrl: image3, + }, + { + name: "Mark Filo", + role: "CEO & Founder", + imageUrl: image4, + }, + { + name: "Professor Dr D. Filo", + role: "CEO & Founder", + imageUrl: image5, + }, +]; + +const TeamSlider = () => { + const settings = { + dots: true, + infinite: true, + autoplay: true, + speed: 500, + slidesToShow: 4, + slidesToScroll: 3, + responsive: [ + { + breakpoint: 1024, + settings: { + slidesToShow: 3, + }, + }, + { + breakpoint: 768, + settings: { + slidesToShow: 2, + }, + }, + { + breakpoint: 640, + settings: { + slidesToShow: 1, + }, + }, + ], + }; + + return ( + + {teamMembers.map((member, index) => ( +
+
+
+ {member.name} +
+ +

{member.name}

+

{member.role}

+
+
+ ))} +
+ ); +}; + +export default TeamSlider; From 46fc8c31f768c925decff7a0ccf42e8eea0049ae Mon Sep 17 00:00:00 2001 From: rray524 Date: Mon, 4 Nov 2024 06:19:33 +0530 Subject: [PATCH 2/3] add-doctor-section-1.1 --- src/sections/OurDoctors/StarRating.jsx | 22 ++++++++++++++++++++++ src/sections/OurDoctors/TeamSlider.jsx | 18 ++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 src/sections/OurDoctors/StarRating.jsx diff --git a/src/sections/OurDoctors/StarRating.jsx b/src/sections/OurDoctors/StarRating.jsx new file mode 100644 index 0000000..d601bf4 --- /dev/null +++ b/src/sections/OurDoctors/StarRating.jsx @@ -0,0 +1,22 @@ +import PropTypes from "prop-types"; +import "@fortawesome/fontawesome-free/css/all.css"; + +const StarRating = ({ rating }) => { + const stars = Array(5) + .fill(0) + .map((_, i) => + i < rating ? ( + + ) : ( + + ) + ); + + return
{stars}
; +}; + +StarRating.propTypes = { + rating: PropTypes.number.isRequired, +}; + +export default StarRating; diff --git a/src/sections/OurDoctors/TeamSlider.jsx b/src/sections/OurDoctors/TeamSlider.jsx index b19334a..f849d12 100644 --- a/src/sections/OurDoctors/TeamSlider.jsx +++ b/src/sections/OurDoctors/TeamSlider.jsx @@ -6,32 +6,39 @@ import image2 from "../../assets/img_02.webp"; import image3 from "../../assets/img_03.webp"; import image4 from "../../assets/img_04.webp"; import image5 from "../../assets/img_05.webp"; +import PropTypes from "prop-types"; +import StarRating from "./StarRating"; const teamMembers = [ { name: "Jubayer Al Hasan", role: "Marketing Expert", imageUrl: image1, + rating: 4, }, { name: "Jannatul Ferdaus", role: "Broker", imageUrl: image2, + rating: 5, }, { name: "Chris Matial", role: "Broker", imageUrl: image3, + rating: 3, }, { name: "Mark Filo", role: "CEO & Founder", imageUrl: image4, + rating: 5, }, { name: "Professor Dr D. Filo", role: "CEO & Founder", imageUrl: image5, + rating: 4, }, ]; @@ -80,11 +87,22 @@ const TeamSlider = () => {

{member.name}

{member.role}

+ ))} ); }; +TeamSlider.propTypes = { + teamMembers: PropTypes.arrayOf( + PropTypes.shape({ + name: PropTypes.string.isRequired, + role: PropTypes.string.isRequired, + imageUrl: PropTypes.string.isRequired, + rating: PropTypes.number.isRequired, + }) + ), +}; export default TeamSlider; From 946a756a5002ac72f1a9b842669ec8d5919de254 Mon Sep 17 00:00:00 2001 From: rray524 Date: Wed, 6 Nov 2024 04:28:28 +0530 Subject: [PATCH 3/3] add-doctor-section-1.2 --- src/App.jsx | 12 ++- src/assets/{ => temp}/img_01.webp | Bin src/assets/{ => temp}/img_02.webp | Bin src/assets/{ => temp}/img_03.webp | Bin src/assets/{ => temp}/img_04.webp | Bin src/assets/{ => temp}/img_05.webp | Bin src/components/Paragraph.jsx | 8 +- .../OurDoctors => components}/StarRating.jsx | 0 .../DoctorSlider.jsx} | 50 ++-------- src/index.css | 44 --------- src/main.jsx | 1 + .../OurDoctors/DoctorSectionWrapper.jsx | 17 ---- src/sections/OurDoctors/HeaderTitle.jsx | 14 --- src/sections/TopDoctorsSection.jsx | 52 +++++++++++ src/stories/Container.stories.jsx | 46 ++++++++++ src/stories/DoctorSlider.stories.jsx | 86 ++++++++++++++++++ src/stories/StarRating.stories.jsx | 41 +++++++++ src/stories/assets/styles/slick.css | 21 +++++ src/styles/slick.css | 43 +++++++++ tailwind.config.js | 18 ++-- 20 files changed, 319 insertions(+), 134 deletions(-) rename src/assets/{ => temp}/img_01.webp (100%) rename src/assets/{ => temp}/img_02.webp (100%) rename src/assets/{ => temp}/img_03.webp (100%) rename src/assets/{ => temp}/img_04.webp (100%) rename src/assets/{ => temp}/img_05.webp (100%) rename src/{sections/OurDoctors => components}/StarRating.jsx (100%) rename src/{sections/OurDoctors/TeamSlider.jsx => containers/DoctorSlider.jsx} (64%) delete mode 100644 src/sections/OurDoctors/DoctorSectionWrapper.jsx delete mode 100644 src/sections/OurDoctors/HeaderTitle.jsx create mode 100644 src/sections/TopDoctorsSection.jsx create mode 100644 src/stories/Container.stories.jsx create mode 100644 src/stories/DoctorSlider.stories.jsx create mode 100644 src/stories/StarRating.stories.jsx create mode 100644 src/stories/assets/styles/slick.css create mode 100644 src/styles/slick.css diff --git a/src/App.jsx b/src/App.jsx index b3062f1..e563787 100644 --- a/src/App.jsx +++ b/src/App.jsx @@ -1,9 +1,15 @@ +import Container from "./containers/Container"; +import TopDoctorsSection from "./sections/TopDoctorsSection"; + const App = () => { return (
-

- Welcome to KlinicCon App -

+

Welcome to KlinicCon App

+
+ + + +
); }; diff --git a/src/assets/img_01.webp b/src/assets/temp/img_01.webp similarity index 100% rename from src/assets/img_01.webp rename to src/assets/temp/img_01.webp diff --git a/src/assets/img_02.webp b/src/assets/temp/img_02.webp similarity index 100% rename from src/assets/img_02.webp rename to src/assets/temp/img_02.webp diff --git a/src/assets/img_03.webp b/src/assets/temp/img_03.webp similarity index 100% rename from src/assets/img_03.webp rename to src/assets/temp/img_03.webp diff --git a/src/assets/img_04.webp b/src/assets/temp/img_04.webp similarity index 100% rename from src/assets/img_04.webp rename to src/assets/temp/img_04.webp diff --git a/src/assets/img_05.webp b/src/assets/temp/img_05.webp similarity index 100% rename from src/assets/img_05.webp rename to src/assets/temp/img_05.webp diff --git a/src/components/Paragraph.jsx b/src/components/Paragraph.jsx index 78d94ff..74bf774 100644 --- a/src/components/Paragraph.jsx +++ b/src/components/Paragraph.jsx @@ -1,13 +1,7 @@ import PropTypes from "prop-types"; const Paragraph = ({ children, className }) => { - return ( -

- {children} -

- ); + return

{children}

; }; Paragraph.propTypes = { diff --git a/src/sections/OurDoctors/StarRating.jsx b/src/components/StarRating.jsx similarity index 100% rename from src/sections/OurDoctors/StarRating.jsx rename to src/components/StarRating.jsx diff --git a/src/sections/OurDoctors/TeamSlider.jsx b/src/containers/DoctorSlider.jsx similarity index 64% rename from src/sections/OurDoctors/TeamSlider.jsx rename to src/containers/DoctorSlider.jsx index f849d12..e474a52 100644 --- a/src/sections/OurDoctors/TeamSlider.jsx +++ b/src/containers/DoctorSlider.jsx @@ -1,55 +1,17 @@ import Slider from "react-slick"; import "slick-carousel/slick/slick.css"; import "slick-carousel/slick/slick-theme.css"; -import image1 from "../../assets/img_01.webp"; -import image2 from "../../assets/img_02.webp"; -import image3 from "../../assets/img_03.webp"; -import image4 from "../../assets/img_04.webp"; -import image5 from "../../assets/img_05.webp"; import PropTypes from "prop-types"; -import StarRating from "./StarRating"; +import StarRating from "../components/StarRating"; -const teamMembers = [ - { - name: "Jubayer Al Hasan", - role: "Marketing Expert", - imageUrl: image1, - rating: 4, - }, - { - name: "Jannatul Ferdaus", - role: "Broker", - imageUrl: image2, - rating: 5, - }, - { - name: "Chris Matial", - role: "Broker", - imageUrl: image3, - rating: 3, - }, - { - name: "Mark Filo", - role: "CEO & Founder", - imageUrl: image4, - rating: 5, - }, - { - name: "Professor Dr D. Filo", - role: "CEO & Founder", - imageUrl: image5, - rating: 4, - }, -]; - -const TeamSlider = () => { +const DoctorSlider = ({ teamMembers = [] }) => { const settings = { dots: true, infinite: true, autoplay: true, speed: 500, slidesToShow: 4, - slidesToScroll: 3, + slidesToScroll: 2, responsive: [ { breakpoint: 1024, @@ -67,6 +29,7 @@ const TeamSlider = () => { breakpoint: 640, settings: { slidesToShow: 1, + slidesToScroll: 1, }, }, ], @@ -94,7 +57,8 @@ const TeamSlider = () => { ); }; -TeamSlider.propTypes = { + +DoctorSlider.propTypes = { teamMembers: PropTypes.arrayOf( PropTypes.shape({ name: PropTypes.string.isRequired, @@ -105,4 +69,4 @@ TeamSlider.propTypes = { ), }; -export default TeamSlider; +export default DoctorSlider; diff --git a/src/index.css b/src/index.css index 7967928..af96fb4 100644 --- a/src/index.css +++ b/src/index.css @@ -5,47 +5,3 @@ body { font-family: "Open Sans", Arial, sans-serif; } -.with-background::before { - content: ""; - position: absolute; - left: -40px; - right: -40px; - top: -35px; - height: 45%; - z-index: -1; - background: url("assets/shape.svg") no-repeat 50%; - background-size: cover; -} -.slick-dots li.slick-active button:before { - @apply opacity-100 text-orange-600 text-[14px]; -} -.slick-dots li button:before { - @apply opacity-100 text-black text-[14px]; -} -@layer components { - .doctor-section { - @apply relative; - - /* Left Line (Before) */ - &::before { - content: ""; - position: absolute; - width: calc(50% - 65px); - height: 2px; - background-color: #000; - bottom: 0; - left: 0; - } - - /* Right Line (After) */ - &::after { - content: ""; - position: absolute; - width: calc(50% - 65px); - height: 2px; - background-color: #000; - bottom: 0; - right: 0; - } - } -} diff --git a/src/main.jsx b/src/main.jsx index d13e088..2c5d34f 100644 --- a/src/main.jsx +++ b/src/main.jsx @@ -2,6 +2,7 @@ import React from "react"; import ReactDOM from "react-dom/client"; import App from "./App.jsx"; import "./index.css"; +import "./styles/slick.css"; import { createBrowserRouter, RouterProvider } from "react-router-dom"; const router = createBrowserRouter([ diff --git a/src/sections/OurDoctors/DoctorSectionWrapper.jsx b/src/sections/OurDoctors/DoctorSectionWrapper.jsx deleted file mode 100644 index 34ae821..0000000 --- a/src/sections/OurDoctors/DoctorSectionWrapper.jsx +++ /dev/null @@ -1,17 +0,0 @@ -import Paragraph from "../../components/Paragraph"; -import HeaderTitle from "./HeaderTitle"; -import TeamSlider from "./TeamSlider"; - -const DoctorSectionWrapper = () => { - return ( - <> - - - Lorem is placeholder text commonly used graphic - - - - ); -}; - -export default DoctorSectionWrapper; diff --git a/src/sections/OurDoctors/HeaderTitle.jsx b/src/sections/OurDoctors/HeaderTitle.jsx deleted file mode 100644 index 480bff7..0000000 --- a/src/sections/OurDoctors/HeaderTitle.jsx +++ /dev/null @@ -1,14 +0,0 @@ -import HeaderText from "../../components/HeaderText"; - -const HeaderTitle = () => { - return ( - - ); -}; - -export default HeaderTitle; diff --git a/src/sections/TopDoctorsSection.jsx b/src/sections/TopDoctorsSection.jsx new file mode 100644 index 0000000..df4ec64 --- /dev/null +++ b/src/sections/TopDoctorsSection.jsx @@ -0,0 +1,52 @@ +import Paragraph from "../components/Paragraph"; +import DoctorSlider from "../containers/DoctorSlider"; +import HeaderText from "../components/HeaderText"; +import image1 from "../assets/temp/img_01.webp"; +import image2 from "../assets/temp/img_02.webp"; +import image3 from "../assets/temp/img_03.webp"; +import image4 from "../assets/temp/img_04.webp"; +import image5 from "../assets/temp/img_05.webp"; + +const TopDoctorsSection = () => { + const teamMembers = [ + { + name: "Jubayer Al Hasan", + role: "Marketing Expert", + imageUrl: image1, + rating: 4, + }, + { + name: "Jannatul Ferdaus", + role: "Broker", + imageUrl: image2, + rating: 5, + }, + { + name: "Chris Matial", + role: "Broker", + imageUrl: image3, + rating: 3, + }, + { + name: "Mark Filo", + role: "CEO & Founder", + imageUrl: image4, + rating: 5, + }, + { + name: "Professor Dr D. Filo", + role: "CEO & Founder", + imageUrl: image5, + rating: 4, + }, + ]; + return ( + <> + + Lorem is placeholder text commonly used graphic + + + ); +}; + +export default TopDoctorsSection; diff --git a/src/stories/Container.stories.jsx b/src/stories/Container.stories.jsx new file mode 100644 index 0000000..bd40b46 --- /dev/null +++ b/src/stories/Container.stories.jsx @@ -0,0 +1,46 @@ +import Container from "../containers/Container"; + +export default { + title: "Components/Container", + component: Container, + tags: ["autodocs"], + argTypes: { + className: { control: "text" }, + children: { control: false }, + }, +}; + +// Default Container +export const Default = (args) => Default Content; + +Default.args = { + className: "", +}; + +// Container with Custom Padding +export const CustomPadding = (args) => Content with Custom Padding; + +CustomPadding.args = { + className: "p-8", +}; + +// Container with Background Color +export const WithBackgroundColor = (args) => Content with Background; + +WithBackgroundColor.args = { + className: "bg-gray-200", +}; + +// Container with Centered Text +export const CenteredText = (args) => Centered Text Content; + +CenteredText.args = { + className: "text-center", +}; + +// Container with Margin Adjustment +export const WithMarginAdjustment = (args) => Content with Margin Adjustment; + +WithMarginAdjustment.args = { + className: "my-10", +}; diff --git a/src/stories/DoctorSlider.stories.jsx b/src/stories/DoctorSlider.stories.jsx new file mode 100644 index 0000000..00b9f4f --- /dev/null +++ b/src/stories/DoctorSlider.stories.jsx @@ -0,0 +1,86 @@ +import "./assets/styles/slick.css"; +import image1 from "../assets/temp/img_01.webp"; +import image2 from "../assets/temp/img_02.webp"; +import image3 from "../assets/temp/img_03.webp"; +import image4 from "../assets/temp/img_04.webp"; +import image5 from "../assets/temp/img_05.webp"; +import DoctorSlider from "../containers/DoctorSlider"; + +export default { + title: "Components/DoctorSlider", + component: DoctorSlider, + tags: ["autodocs"], + argTypes: { + member1Name: { control: "text", name: "Member 1 Name" }, + member1Role: { control: "text", name: "Member 1 Role" }, + member1Rating: { control: "number", name: "Member 1 Rating" }, + member2Name: { control: "text", name: "Member 2 Name" }, + member2Role: { control: "text", name: "Member 2 Role" }, + member2Rating: { control: "number", name: "Member 2 Rating" }, + member3Name: { control: "text", name: "Member 3 Name" }, + member3Role: { control: "text", name: "Member 3 Role" }, + member3Rating: { control: "number", name: "Member 3 Rating" }, + member4Name: { control: "text", name: "Member 4 Name" }, + member4Role: { control: "text", name: "Member 4 Role" }, + member4Rating: { control: "number", name: "Member 4 Rating" }, + member5Name: { control: "text", name: "Member 5 Name" }, + member5Role: { control: "text", name: "Member 5 Role" }, + member5Rating: { control: "number", name: "Member 5 Rating" }, + }, +}; + +const Template = (args) => { + const teamMembers = [ + { + name: args.member1Name, + role: args.member1Role, + imageUrl: image1, + rating: args.member1Rating, + }, + { + name: args.member2Name, + role: args.member2Role, + imageUrl: image2, + rating: args.member2Rating, + }, + { + name: args.member3Name, + role: args.member3Role, + imageUrl: image3, + rating: args.member3Rating, + }, + { + name: args.member4Name, + role: args.member4Role, + imageUrl: image4, + rating: args.member4Rating, + }, + { + name: args.member5Name, + role: args.member5Role, + imageUrl: image5, + rating: args.member5Rating, + }, + ]; + + return ; +}; + +export const Default = Template.bind({}); +Default.args = { + member1Name: "Jubayer Al Hasan", + member1Role: "Marketing Expert", + member1Rating: 4, + member2Name: "Jannatul Ferdaus", + member2Role: "Broker", + member2Rating: 5, + member3Name: "Chris Matial", + member3Role: "Broker", + member3Rating: 3, + member4Name: "Mark Filo", + member4Role: "CEO & Founder", + member4Rating: 5, + member5Name: "Professor Dr D. Filo", + member5Role: "CEO & Founder", + member5Rating: 4, +}; diff --git a/src/stories/StarRating.stories.jsx b/src/stories/StarRating.stories.jsx new file mode 100644 index 0000000..bc88aab --- /dev/null +++ b/src/stories/StarRating.stories.jsx @@ -0,0 +1,41 @@ +import StarRating from "../components/StarRating"; +import "../styles/slick.css"; + +export default { + title: "Components/StarRating", + component: StarRating, + tags: ["autodocs"], + argTypes: { + rating: { + control: { + type: "number", + min: 0, + max: 5, + }, + }, + }, +}; + +// Default Star Rating +export const Default = (args) => ; +Default.args = { + rating: 3, // default rating +}; + +// 1-Star Rating +export const OneStar = (args) => ; +OneStar.args = { + rating: 1, +}; + +// 3-Star Rating +export const ThreeStars = (args) => ; +ThreeStars.args = { + rating: 3, +}; + +// 5-Star Rating +export const FiveStars = (args) => ; +FiveStars.args = { + rating: 5, +}; diff --git a/src/stories/assets/styles/slick.css b/src/stories/assets/styles/slick.css new file mode 100644 index 0000000..396fd0e --- /dev/null +++ b/src/stories/assets/styles/slick.css @@ -0,0 +1,21 @@ +.with-background::before { + content: ""; + position: absolute; + left: -40px; + right: -40px; + top: -35px; + height: 45%; + z-index: -1; + background: url("../../../assets/shape.svg") no-repeat 50%; + background-size: cover; +} +.slick-dots li.slick-active button:before { + opacity: 1 !important; + color: #f97316 !important; + font-size: 14px !important; +} +.slick-dots li button:before { + opacity: 1 !important; + color: #000 !important; + font-size: 14px !important; +} diff --git a/src/styles/slick.css b/src/styles/slick.css new file mode 100644 index 0000000..3a78598 --- /dev/null +++ b/src/styles/slick.css @@ -0,0 +1,43 @@ +.with-background::before { + content: ""; + position: absolute; + left: -40px; + right: -40px; + top: -35px; + height: 45%; + z-index: -1; + background: url("../assets/shape.svg") no-repeat 50%; + background-size: cover; +} +.slick-dots li.slick-active button:before { + @apply opacity-100 text-orange-600 text-[14px]; +} +.slick-dots li button:before { + @apply opacity-100 text-black text-[14px]; +} + +.doctor-section { + @apply relative; + + /* Left Line (Before) */ + &::before { + content: ""; + position: absolute; + width: calc(50% - 65px); + height: 2px; + background-color: #000; + bottom: 0; + left: 0; + } + + /* Right Line (After) */ + &::after { + content: ""; + position: absolute; + width: calc(50% - 65px); + height: 2px; + background-color: #000; + bottom: 0; + right: 0; + } +} diff --git a/tailwind.config.js b/tailwind.config.js index c7429c4..e1e1f22 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -2,11 +2,7 @@ const defaultColors = require("tailwindcss/colors"); /** @type {import('tailwindcss').Config} */ export default { - content: [ - "./index.html", - "./src/**/*.{js,ts,jsx,tsx}", - "./.storybook/**/*.{js,jsx,ts,tsx}", - ], + content: ["./index.html", "./src/**/*.{js,ts,jsx,tsx}", "./.storybook/**/*.{js,jsx,ts,tsx}"], theme: { extend: { colors: { @@ -21,5 +17,15 @@ export default { }, }, }, - plugins: [], + plugins: [ + function ({ addUtilities }) { + addUtilities({ + ".slick-dot-active": { + opacity: "1 !important", + color: "#f97316 !important", + fontSize: "14px !important", + }, + }); + }, + ], };