|
130 | 130 | <!-- Header end --> |
131 | 131 |
|
132 | 132 | <!-- Hire me modal start --> |
133 | | - <transition name="fade"> |
134 | | - <div v-show="modal" class="fixed inset-0 z-30"> |
135 | | - <!-- background --> |
136 | | - <div |
137 | | - v-show="modal" |
138 | | - @click="showModal()" |
139 | | - class="bg-filter bg-black bg-opacity-50 fixed inset-0 w-full h-full z-20" |
140 | | - ></div> |
141 | | - <!-- --> |
142 | | - <main |
143 | | - class="flex flex-col items-center justify-center h-full w-full" |
144 | | - > |
145 | | - <transition name="fade-up-down"> |
146 | | - <div |
147 | | - v-show="modal" |
148 | | - class="modal-wrapper flex items-center z-30" |
149 | | - > |
150 | | - <div |
151 | | - class="modal max-w-md mx-5 xl:max-w-xl lg:max-w-xl md:max-w-xl bg-secondary-light dark:bg-primary-dark max-h-screen shadow-lg flex-row rounded-xl relative" |
152 | | - > |
153 | | - <div |
154 | | - class="modal-header flex justify-between gap-10 p-5 border-b border-ternary-light dark:border-ternary-dark" |
155 | | - > |
156 | | - <h5 |
157 | | - class=" text-primary-dark dark:text-primary-light text-2xl" |
158 | | - > |
159 | | - What project are you looking for? |
160 | | - </h5> |
161 | | - <button |
162 | | - class="px-4 font-bold text-primary-dark dark:text-primary-light" |
163 | | - @click="showModal()" |
164 | | - > |
165 | | - X |
166 | | - </button> |
167 | | - </div> |
168 | | - <div |
169 | | - class="modal-body p-5 w-full h-full overflow-y-auto " |
170 | | - > |
171 | | - <form class="max-w-xl m-4 text-left"> |
172 | | - <div class=""> |
173 | | - <input |
174 | | - class="w-full px-5 py-2 border-1 border-gray-200 dark:border-secondary-dark rounded-lg text-md dark:font-medium bg-secondary-light dark:bg-ternary-dark text-primary-dark dark:text-ternary-light" |
175 | | - id="name" |
176 | | - name="name" |
177 | | - type="text" |
178 | | - required="" |
179 | | - placeholder="Name" |
180 | | - aria-label="Name" |
181 | | - /> |
182 | | - </div> |
183 | | - <div class="mt-6"> |
184 | | - <input |
185 | | - class="w-full px-5 py-2 border-1 border-gray-200 dark:border-secondary-dark rounded-lg text-md dark:font-medium bg-secondary-light dark:bg-ternary-dark text-primary-dark dark:text-ternary-light" |
186 | | - id="email" |
187 | | - name="email" |
188 | | - type="text" |
189 | | - required="" |
190 | | - placeholder="Email" |
191 | | - aria-label="Email" |
192 | | - /> |
193 | | - </div> |
194 | | - <div class="mt-6"> |
195 | | - <select |
196 | | - class="w-full px-5 py-2 border-1 border-gray-200 dark:border-secondary-dark rounded-lg text-md dark:font-medium bg-secondary-light dark:bg-ternary-dark text-primary-dark dark:text-ternary-light" |
197 | | - id="subject" |
198 | | - name="subject" |
199 | | - type="text" |
200 | | - required="" |
201 | | - aria-label="Project Category" |
202 | | - > |
203 | | - <option |
204 | | - v-for="category in categories" |
205 | | - :key="category.id" |
206 | | - :value="category.value" |
207 | | - >{{ category.name }}</option |
208 | | - > |
209 | | - </select> |
210 | | - </div> |
211 | | - |
212 | | - <div class="mt-6"> |
213 | | - <textarea |
214 | | - class="w-full px-5 py-2 border-1 border-gray-200 dark:border-secondary-dark rounded-lg text-md dark:font-medium bg-secondary-light dark:bg-ternary-dark text-primary-dark dark:text-ternary-light" |
215 | | - id="message" |
216 | | - name="message" |
217 | | - cols="14" |
218 | | - rows="6" |
219 | | - aria-label="Details" |
220 | | - placeholder="Project description" |
221 | | - ></textarea> |
222 | | - </div> |
223 | | - |
224 | | - <div class="mt-6"> |
225 | | - <button |
226 | | - class="px-6 py-2.5 text-white font-medium tracking-wider bg-indigo-500 hover:bg-indigo-600 rounded-lg focus:ring-1 focus:ring-indigo-900" |
227 | | - type="submit" |
228 | | - aria-label="Submit Request" |
229 | | - > |
230 | | - Send Request |
231 | | - </button> |
232 | | - </div> |
233 | | - </form> |
234 | | - </div> |
235 | | - <div |
236 | | - class="modal-footer py-3 px-5 border0-t text-right" |
237 | | - > |
238 | | - <button |
239 | | - class="px-6 py-2 bg-indigo-400 hover:bg-indigo-500 rounded-lg font-bold text-primary-light focus:ring-1 focus:ring-indigo-900" |
240 | | - @click="showModal()" |
241 | | - aria-label="Close Modal" |
242 | | - > |
243 | | - Close |
244 | | - </button> |
245 | | - </div> |
246 | | - </div> |
247 | | - </div> |
248 | | - </transition> |
249 | | - </main> |
250 | | - </div> |
251 | | - </transition> |
| 133 | + <HireMeModal |
| 134 | + :showModal="showModal" |
| 135 | + :modal="modal" |
| 136 | + :categories="categories" |
| 137 | + aria-modal="Hire Me Modal" |
| 138 | + /> |
252 | 139 | <!-- Hire me modal end --> |
253 | 140 | </nav> |
254 | 141 | </template> |
255 | 142 |
|
256 | 143 | <script> |
257 | | -import ThemeSwitcher from '@/components/ThemeSwitcher'; |
| 144 | +import ThemeSwitcher from './ThemeSwitcher'; |
| 145 | +import HireMeModal from './HireMeModal.vue'; |
258 | 146 | import feather from 'feather-icons'; |
259 | 147 |
|
260 | 148 | export default { |
261 | 149 | components: { |
262 | 150 | ThemeSwitcher, |
| 151 | + HireMeModal, |
263 | 152 | }, |
264 | 153 | data() { |
265 | 154 | return { |
@@ -329,43 +218,4 @@ export default { |
329 | 218 | @apply dark:text-indigo-400; |
330 | 219 | @apply font-medium; |
331 | 220 | } |
332 | | -
|
333 | | -.modal-body { |
334 | | - max-height: 500px; |
335 | | -} |
336 | | -.bg-gray-800-opacity { |
337 | | - background-color: #2d374850; |
338 | | -} |
339 | | -@media screen and (max-width: 768px) { |
340 | | - .modal-body { |
341 | | - max-height: 400px; |
342 | | - } |
343 | | -} |
344 | | -.fade-up-down-enter-active { |
345 | | - transition: all 0.3s ease; |
346 | | -} |
347 | | -.fade-up-down-leave-active { |
348 | | - transition: all 0.3s ease; |
349 | | -} |
350 | | -.fade-up-down-enter { |
351 | | - transform: translateY(10%); |
352 | | - opacity: 0; |
353 | | -} |
354 | | -.fade-up-down-leave-to { |
355 | | - transform: translateY(10%); |
356 | | - opacity: 0; |
357 | | -} |
358 | | -
|
359 | | -.fade-enter-active { |
360 | | - -webkit-transition: opacity 2s; |
361 | | - transition: opacity 0.3s; |
362 | | -} |
363 | | -.fade-leave-active { |
364 | | - transition: opacity 0.3s; |
365 | | -} |
366 | | -
|
367 | | -.fade-enter, |
368 | | -.fade-leave-to { |
369 | | - opacity: 0; |
370 | | -} |
371 | 221 | </style> |
0 commit comments