├── .eslintrc.json
├── .github
└── workflows
│ └── linters.yml
├── .gitignore
├── .hintrc
├── .stylelintrc.json
├── JS
├── about.js
└── featured.js
├── MIT.md
├── README.md
├── aboutlux.html
├── app.css
├── cap.code-workspace
├── images
├── Antigua-lux.jpg
├── Barbados-lux.png
├── Georgia-Tawley.jpg
├── Graclyn-Meadows.jpg
├── Grisella-Weich.jpg
├── James-Thompson.jpg
├── Jars-Landoh.jpg
├── Jessica-Darsey.jpg
├── Josh-Burke.jpg
├── Kevin-Pyke.JPG
├── LUX-DROP-MENU-MOBILE.png
├── LUX-REALTY-MOBILE.png
├── LUX-REALTY.png
├── Melony-Atkison.JPG
├── Menson-King.jpg
├── Mickia-Crowley.JPG
├── Ricka-Stevens.jpg
├── Stephanie-Phillips.jpeg
├── cap-background.jpg
├── checkered.png
├── checkered2.png
├── diamond.jpg
├── logo.jpg
└── orange-globe.png
└── index.html
/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "env": {
3 | "browser": true,
4 | "es6": true,
5 | "jest": true
6 | },
7 | "parser": "babel-eslint",
8 | "parserOptions": {
9 | "ecmaVersion": 2018,
10 | "sourceType": "module"
11 | },
12 | "extends": ["airbnb-base"],
13 | "rules": {
14 | "no-shadow": "off",
15 | "no-param-reassign": "off",
16 | "eol-last": "off",
17 | "import/extensions": [ 1, {
18 | "js": "always", "json": "always"
19 | }]
20 | },
21 | "ignorePatterns": [
22 | "dist/",
23 | "build/"
24 | ]
25 | }
26 |
--------------------------------------------------------------------------------
/.github/workflows/linters.yml:
--------------------------------------------------------------------------------
1 | name: Linters
2 |
3 | on: pull_request
4 |
5 | env:
6 | FORCE_COLOR: 1
7 |
8 | jobs:
9 | lighthouse:
10 | name: Lighthouse
11 | runs-on: ubuntu-18.04
12 | steps:
13 | - uses: actions/checkout@v2
14 | - uses: actions/setup-node@v1
15 | with:
16 | node-version: "12.x"
17 | - name: Setup Lighthouse
18 | run: npm install -g @lhci/cli@0.7.x
19 | - name: Lighthouse Report
20 | run: lhci autorun --upload.target=temporary-public-storage --collect.staticDistDir=.
21 | webhint:
22 | name: Webhint
23 | runs-on: ubuntu-18.04
24 | steps:
25 | - uses: actions/checkout@v2
26 | - uses: actions/setup-node@v1
27 | with:
28 | node-version: "12.x"
29 | - name: Setup Webhint
30 | run: |
31 | npm install --save-dev hint@6.x
32 | [ -f .hintrc ] || wget https://raw.githubusercontent.com/microverseinc/linters-config/master/html-css-js/.hintrc
33 | - name: Webhint Report
34 | run: npx hint .
35 | stylelint:
36 | name: Stylelint
37 | runs-on: ubuntu-18.04
38 | steps:
39 | - uses: actions/checkout@v2
40 | - uses: actions/setup-node@v1
41 | with:
42 | node-version: "12.x"
43 | - name: Setup Stylelint
44 | run: |
45 | npm install --save-dev stylelint@13.x stylelint-scss@3.x stylelint-config-standard@21.x stylelint-csstree-validator@1.x
46 | [ -f .stylelintrc.json ] || wget https://raw.githubusercontent.com/microverseinc/linters-config/master/html-css-js/.stylelintrc.json
47 | - name: Stylelint Report
48 | run: npx stylelint "**/*.{css,scss}"
49 | eslint:
50 | name: ESLint
51 | runs-on: ubuntu-18.04
52 | steps:
53 | - uses: actions/checkout@v2
54 | - uses: actions/setup-node@v1
55 | with:
56 | node-version: "12.x"
57 | - name: Setup ESLint
58 | run: |
59 | npm install --save-dev eslint@7.x eslint-config-airbnb-base@14.x eslint-plugin-import@2.x babel-eslint@10.x
60 | [ -f .eslintrc.json ] || wget https://raw.githubusercontent.com/microverseinc/linters-config/master/html-css-js/.eslintrc.json
61 | - name: ESLint Report
62 | run: npx eslint .
63 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | package-lock.json
3 | package.json
4 | .vscode
5 | cap.code-workspace
--------------------------------------------------------------------------------
/.hintrc:
--------------------------------------------------------------------------------
1 | {
2 | "connector": {
3 | "name": "local",
4 | "options": {
5 | "pattern": ["**", "!.git/**", "!node_modules/**"]
6 | }
7 | },
8 | "extends": ["development"],
9 | "formatters": ["stylish"],
10 | "hints": [
11 | "button-type",
12 | "disown-opener",
13 | "html-checker",
14 | "meta-charset-utf-8",
15 | "meta-viewport",
16 | "no-inline-styles:error"
17 | ]
18 | }
--------------------------------------------------------------------------------
/.stylelintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["stylelint-config-standard"],
3 | "plugins": ["stylelint-scss", "stylelint-csstree-validator"],
4 | "rules": {
5 | "at-rule-no-unknown": null,
6 | "scss/at-rule-no-unknown": true,
7 | "csstree/validator": true
8 | },
9 | "ignoreFiles": ["build/**", "dist/**", "**/reset*.css", "**/bootstrap*.css", "**/*.js", "**/*.jsx"]
10 | }
11 |
--------------------------------------------------------------------------------
/JS/about.js:
--------------------------------------------------------------------------------
1 | const navToggle = document.getElementById('nav-toggle');
2 | const navLinks = document.querySelector('.nav-menu');
3 | const scrollLinks = document.querySelectorAll('.nav-item');
4 | const closeBtn = document.getElementById('close-btn');
5 |
6 | navToggle.addEventListener('click', () => {
7 | navLinks.classList.add('show-links');
8 | closeBtn.classList.remove('hidden');
9 | });
10 |
11 | function removeActive() {
12 | scrollLinks.forEach((link) => {
13 | link.classList.remove('active');
14 | });
15 | }
16 |
17 | scrollLinks.forEach((link) => {
18 | link.addEventListener('click', (e) => {
19 | navLinks.classList.remove('show-links');
20 | removeActive();
21 | e.target.classList.add('active');
22 | });
23 | });
24 |
25 | closeBtn.addEventListener('click', () => {
26 | navLinks.classList.remove('show-links');
27 | closeBtn.classList.add('hidden');
28 | });
29 |
--------------------------------------------------------------------------------
/JS/featured.js:
--------------------------------------------------------------------------------
1 | const navToggle = document.getElementById('nav-toggle');
2 | const navLinks = document.querySelector('.nav-menu');
3 | const scrollLinks = document.querySelectorAll('.nav-item');
4 | const closeBtn = document.getElementById('close-btn');
5 |
6 | navToggle.addEventListener('click', () => {
7 | navLinks.classList.add('show-links');
8 | closeBtn.classList.remove('hidden');
9 | });
10 |
11 | function removeActive() {
12 | scrollLinks.forEach((link) => {
13 | link.classList.remove('active');
14 | });
15 | }
16 |
17 | scrollLinks.forEach((link) => {
18 | link.addEventListener('click', (e) => {
19 | navLinks.classList.remove('show-links');
20 | removeActive();
21 | e.target.classList.add('active');
22 | });
23 | });
24 |
25 | closeBtn.addEventListener('click', () => {
26 | navLinks.classList.remove('show-links');
27 | closeBtn.classList.add('hidden');
28 | });
29 |
30 | const data = [{
31 | img: './images/Graclyn-Meadows.jpg',
32 | name: 'Graclyn-Meadows',
33 | known: 'Realtor and Junior Partner.',
34 | info: 'Graclyn is a passionate and insightful leader with a proven track record of enabling clients to buy their dream homes.',
35 | },
36 | {
37 | img: './images/Grisella-Weich.jpg',
38 | name: 'Grisella-Weich',
39 | known: 'Realtor',
40 | info: 'Grisella grew up helping with her family\'s real estate business. Over the years, she got to learn the details of buying, selling, investing, and property management.',
41 | },
42 | {
43 | img: './images/James-Thompson.jpg',
44 | name: 'James Thompson',
45 | known: 'Chief Realtor and Partner',
46 | info: 'James earned his real estate license as a sophomore in college and joined Keller Williams Realty with Team Rich Richardson as a summer intern while pursuing a degree in Management. ',
47 | },
48 | {
49 | img: './images/Jars-Landoh.jpg',
50 | name: 'Jars-Landoh',
51 | known: 'President',
52 | info: 'Jars attended Georgia Tech where he was a President\'s Scholar and graduated Highest Honors with a degree in Chemical Engineering. He joined the KW Peachtree Road office in Brookhaven in May of 2008 after five years in the real estate industry. Thanks to his sales growth, he started The Jars-Landoh Group at the beginning of 2013.',
53 | },
54 | {
55 | img: './images/Jessica-Darsey.jpg',
56 | name: 'Jessica Darsey',
57 | known: 'Realtor',
58 | info: 'Jessica is an Atlanta native and Edgewood resident. Her local knowledge and love for this city drives her passion for connecting people with homes and properties all throughout the Atlanta area. She joined The Jars-Landoh Group after working with the team on her own home buying and selling journey.',
59 | },
60 | {
61 | img: './images/Josh-Burke.jpg',
62 | name: 'Josh-Burke',
63 | known: 'Realtor',
64 | info: 'Born and raised in Georgia, Josh is a true southerner at heart. When it comes to a city with both southern charm and adventure, Atlanta is on the mind! He calls Atlanta home because there is never a dull moment.',
65 | },
66 | {
67 | img: './images/Kevin-Pyke.JPG',
68 | name: 'Kevin Pyke',
69 | known: 'Realtor',
70 | info: 'Kevin comes to Atlanta from the Mountains of Northeast Georgia. Throughout his early life, Kevin worked in the country club service industry. What he loved most about that work was building and sustaining firm client relationships.',
71 | },
72 | {
73 | img: './images/Melony-Atkison.JPG',
74 | name: 'Melony Atkison',
75 | known: 'Listing Specialist and Partner',
76 | info: 'As the Lead Listing Specialist and Partner of The Jars-Landoh Group, Melony dedicates herself to providing an unmatched client experience. Named one of REALTOR Magazine’s “30 Under 30” and a “Top Luxury Listing Agent” by The Atlantan, Melony has garnered a reputation for being the best in the business.',
77 | },
78 | {
79 | img: './images/Menson-King.jpg',
80 | name: 'Menson-King',
81 | known: 'Realtor',
82 | info: 'As a lifetime resident of metro Atlanta, Menson King has grown just as dynamically as our beloved city. The son of a developer and a real estate agent, Menson learned about real estate at a young age, and he largely credits that background to becoming one of Atlanta’s up-and-coming agents today.',
83 | },
84 | {
85 | img: './images/Ricka-Stevens.jpg',
86 | name: 'Ricka Stevens',
87 | known: 'Realtor',
88 | info: 'Ricka grew up with a dad in the Air Force and lived in Arizona, Texas, and Japan before her family settled in the Atlanta area in 2000. She graduated from Georgia Southern University with a bachelor’s degree in Business Administration.',
89 | },
90 | {
91 | img: './images/Stephanie-Phillips.jpeg',
92 | name: 'Stephanie Phillips',
93 | known: 'Realtor',
94 | info: 'Stephanie is an Atlanta Realtor with an unmatched passion for helping her clients. After earning her major in English and minor in Spanish, Courtney worked on the administrative side of real estate before becoming licensed herself.',
95 | },
96 | {
97 | img: './images/Mickia-Crowley.JPG',
98 | name: 'Mickia Crowley',
99 | known: 'Realtor',
100 | info: 'Mickia fell in love with Atlanta, it\'s vibrant multicultural communities, beautiful green spaces, and entrepreneurial spirit. She knew this would be her forever home.',
101 | },
102 | {
103 | img: './images/Georgia-Tawley.jpg',
104 | name: 'Georgia-Tawley',
105 | known: 'Realtor',
106 | info: 'A born and raised Atlanta native, Georgia got her start in real estate in 2016. Having worked as an assistant, a listing coordinator, and a buyer\'s agent, she knows all the ins and outs of the real estate world.',
107 | },
108 | ];
109 |
110 | const featuredSpeaker = document.querySelector('.featured-speakers');
111 | const loadMore = document.querySelector('.load-more');
112 | const loadMoreBtn = document.querySelector('.load-more-btn');
113 | let initialLoad = 0;
114 |
115 | function printCards() {
116 | for (let i = initialLoad; i < initialLoad + 4; i += 1) {
117 | const markup = `
118 |
119 |
120 |
121 |
122 |
${data[i].name}
123 | ${data[i].known}
124 |
125 |
${data[i].info}
126 |
127 |
128 |
`;
129 | featuredSpeaker.innerHTML += markup;
130 | if (initialLoad === data.length - 4) {
131 | loadMoreBtn.classList.add('hidden');
132 | }
133 | }
134 | initialLoad += 4;
135 | }
136 | printCards();
137 |
138 | loadMore.addEventListener('click', printCards);
139 |
140 | function countDown() {
141 | const now = new Date();
142 | const eventDate = new Date(2022, 4, 30, 4);
143 | const currentTime = now.getTime();
144 | const eventTime = eventDate.getTime();
145 |
146 | const remTime = eventTime - currentTime;
147 | let s = Math.floor(remTime / 1000);
148 | let m = Math.floor(s / 60);
149 | let h = Math.floor(m / 60);
150 | const d = Math.floor(h / 24);
151 |
152 | h %= 24;
153 | m %= 60;
154 | s %= 60;
155 |
156 | h = h < 10 ? `0${h}` : h;
157 | m = m < 10 ? `0${m}` : m;
158 | s = s < 10 ? `0${s}` : s;
159 | document.getElementById('days').textContent = d;
160 | document.getElementById('hours').textContent = h;
161 | document.getElementById('minutes').textContent = m;
162 | document.getElementById('seconds').textContent = s;
163 |
164 | setTimeout(countDown, 1000);
165 | }
166 | countDown();
--------------------------------------------------------------------------------
/MIT.md:
--------------------------------------------------------------------------------
1 | ## Copyright 2021, [STEVE W DAMES JR]
2 |
3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this [LUX REALTY] and associated documentation files, to deal in the [LUX REALTY] without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the [LUX REALTY], and to permit persons to whom the [LUX REALTY] is furnished to do so, subject to the following conditions:
4 |
5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the [LUX REALTY].
6 |
7 | THE [LUX REALTY] IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE [LUX REALTY] OR THE USE OR OTHER DEALINGS IN THE [LUX REALTY].
8 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | 
2 |
3 | # LUX REALTY
4 |
5 | > Luxury property is only a call and a consultation away.
6 |
7 |
8 | Additional description about the project and its features.
9 |
10 | # Screenshots
11 | 
12 | 
13 | 
14 |
15 |
16 | ## Built With
17 |
18 | - HTML | CSS | JavaScript
19 |
20 | ## Video Explanation
21 |
22 | [Watch Now](https://www.loom.com/share/12f50a8ab8774f1ab369794c0e02ee95)
23 |
24 | ## Live Demo
25 |
26 | [Live Demo Link](https://stevewdamesjr.github.io/html-css-js-capstone/)
27 |
28 |
29 | ## Getting Started
30 |
31 |
32 | To get a local copy up and running follow these simple example steps.
33 |
34 | ### Prerequisites
35 | - Text Editor | Git and Github set up
36 |
37 | ### Setup
38 | - Clone repository and open with text editor
39 |
40 | ### Usage
41 | - View Portfolio
42 |
43 |
44 | ## Author
45 |
46 | 👤 **STEVE W DAMES JR**
47 |
48 | - GitHub: [@githubhandle](https://github.com/steveWDamesJr)
49 | - Twitter: [@twitterhandle](https://twitter.com/Steve88312331)
50 | - LinkedIn: [LinkedIn](https://www.linkedin.com/in/steve-w-dames-jr/)
51 |
52 |
53 | ## 🤝 Contributing
54 |
55 | Contributions, issues, and feature requests are welcome!
56 |
57 | Feel free to check the [issues page](../../issues/).
58 |
59 | ## Show your support
60 |
61 | Give a ⭐️ if you like this project!
62 |
63 | ## Acknowledgments
64 |
65 | - Inspiration:
66 | Cindy Shin
67 | GUI & Graphic Designer
68 | Seoul, Korea, Republic of
69 | - Logo Design attribution:
70 | House Vectors by Vecteezy
71 | - Photos:
72 | - Photo by Stephan Bechert on Unsplash
73 | - Photo by Avi Werde on Unsplash
74 | - Photo by Ярослав Алексеенко on Unsplash
75 | - Hat tip to anyone whose code was used
76 | - etc
77 |
78 | ## 📝 License
79 |
80 | This project is [MIT](./MIT.md) licensed.
81 |
--------------------------------------------------------------------------------
/aboutlux.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
13 |
14 | ABOUT LUX REALTY
15 |
16 |
17 |
18 |
19 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
"Hello! Luxury Property seekers"
76 |
Annual Open House Event 2022
77 |
78 | Lorem ipsum dolor sit amet consectetur adipisicing elit. Ipsa nemo consequuntur sapiente nam, sint asperiores
79 | vitae, ad adipisci doloremque voluptas sit exercitationem voluptates odio voluptatibus incidunt? Suscipit ex
80 | pariatur cum.
81 | Vitae recusandae, esse quaerat, molestias omnis distinctio cum unde tenetur nulla pariatur quibusdam vero aut.
82 | Obcaecati dignissimos, quidem tenetur rerum cum doloribus. Voluptas labore, obcaecati tempora earum aperiam
83 | provident sed.
84 |
85 |
86 |
87 |
88 |
Please contact us per Email for any further questions about LUX REALTY Open House 2022!
89 |
90 |
91 |
luxrealty@live.bs
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
101 |
102 |
103 |
Lux Realty
104 |
Open House Logo
105 |
106 |
The logo of Lux Realty Open House 2022 was decided through the logo competition from 10. August to 11. September.
79 | Real Estate Dreams become reality this spring with a selection of homes and property to satisfy even the most
80 | demanding and exquisite tastes. We don't just sell property, we ensure that every property is specifically
81 | tailored to the exacting requirements of our clientele. Whatever your treasure, you are bound to find it with
82 | us. See you there; it's bound to be the best decision you've ever made for generations to come!
83 |
84 |
85 |
86 |
04.30.2022(SAT) ~ 31(SUN) 8 AM ~ 4 PM
87 |
@Luxhome Cay, Nassau, Bahamas
88 |
89 |
90 |
91 |
92 |
Countdown To Your Event:
93 |
94 |
95 |
Days
96 |
Hours
97 |
Minutes
98 |
Seconds
99 |
100 |
101 |
115
102 |
13
103 |
2
104 |
42
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
Main Program
116 |
117 |
118 |
119 |
120 |
121 |
Open House with Lux Realty
122 |
123 | Come and see these waterfront properties in all their Tropical glory!
124 |
125 |
126 |
127 |
128 |
Art Expose
129 |
130 | Enter the free art Gallery, savour world-class wine and sample decadent hand-picked cheeses.
131 |
132 |
133 |
134 |
135 |
World Class Brokers
136 |
137 | Secure your investment with professional brokers from leading insurance companies.
138 |
139 |
140 |
141 |
142 |
Furniture and Appliance
143 |
Find top names in civilian equipment and furnishings ready to accent your new home.
144 |
145 |
146 |
147 |
Luxury Pools
148 |
149 | Only the most creative pool designs are on the display at this years event.
150 |
151 |
152 |
153 |
154 |
Giveaways
155 |
156 | A chance to take home over a $100,000 in cash and prizes.
157 |