feat: added colored share card
This commit is contained in:
		
							parent
							
								
									5222bd5d04
								
							
						
					
					
						commit
						ab7483b5c2
					
				
							
								
								
									
										61
									
								
								src/components/ColoredCard.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										61
									
								
								src/components/ColoredCard.vue
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,61 @@ | ||||
| <template> | ||||
|   <n-card class="colored-card"> | ||||
|     <n-space justify="space-between" align="center"> | ||||
|       <n-icon class="icon" size="40" :component="icon" /> | ||||
|     </n-space> | ||||
|     <n-h3 class="title"> | ||||
|       <n-ellipsis>{{ title }}</n-ellipsis> | ||||
|     </n-h3> | ||||
| 
 | ||||
|     <div class="description"> | ||||
|       <n-ellipsis :line-clamp="2" :tooltip="false"> | ||||
|         <slot /> | ||||
|       </n-ellipsis> | ||||
|     </div> | ||||
|   </n-card> | ||||
| </template> | ||||
| 
 | ||||
| <script setup lang="ts"> | ||||
| import { toRefs, type Component } from 'vue'; | ||||
| 
 | ||||
| const props = defineProps<{ icon: Component; title: string }>(); | ||||
| const { icon, title } = toRefs(props); | ||||
| </script> | ||||
| 
 | ||||
| <style lang="less" scoped> | ||||
| .colored-card { | ||||
|   background: rgb(37, 99, 108); | ||||
|   background: linear-gradient(48deg, rgba(37, 99, 108, 1) 0%, rgba(59, 149, 111, 1) 60%, rgba(20, 160, 88, 1) 100%); | ||||
|   color: #fff; | ||||
| 
 | ||||
|   &:hover { | ||||
|     border-color: var(--n-color-target); | ||||
|   } | ||||
| 
 | ||||
|   .icon { | ||||
|     opacity: 0.7; | ||||
|   } | ||||
| 
 | ||||
|   .title { | ||||
|     color: #fff; | ||||
| 
 | ||||
|     margin: 5px 0; | ||||
|   } | ||||
| 
 | ||||
|   .description { | ||||
|     opacity: 0.8; | ||||
| 
 | ||||
|     margin: 5px 0; | ||||
| 
 | ||||
|     ::v-deep(a) { | ||||
|       color: inherit; | ||||
|       text-decoration: underline; | ||||
|       font-weight: bold; | ||||
| 
 | ||||
|       &:hover { | ||||
|         color: rgb(20, 20, 20); | ||||
|       } | ||||
|     } | ||||
|   } | ||||
| } | ||||
| </style> | ||||
| @ -1,6 +1,8 @@ | ||||
| <script setup lang="ts"> | ||||
| import { toolsWithCategory } from '@/tools'; | ||||
| import { Heart } from '@vicons/tabler'; | ||||
| import { useHead } from '@vueuse/head'; | ||||
| import ColoredCard from '../components/ColoredCard.vue'; | ||||
| import ToolCard from '../components/ToolCard.vue'; | ||||
| 
 | ||||
| useHead({ title: 'IT Tools - Handy online tools for developers' }); | ||||
| @ -9,6 +11,27 @@ useHead({ title: 'IT Tools - Handy online tools for developers' }); | ||||
| <template> | ||||
|   <div class="home-page"> | ||||
|     <n-grid x-gap="12" y-gap="12" cols="1 400:2 800:3 1200:4 2000:8"> | ||||
|       <n-gi> | ||||
|         <colored-card title="You like it-tools?" :icon="Heart"> | ||||
|           Give us a star on | ||||
|           <a | ||||
|             href="https://github.com/CorentinTh/it-tools" | ||||
|             rel="noopener" | ||||
|             target="_blank" | ||||
|             aria-label="IT-Tools' github repository" | ||||
|             >github</a | ||||
|           > | ||||
|           or follow us on | ||||
|           <a | ||||
|             href="https://twitter.com/ittoolsdottech" | ||||
|             rel="noopener" | ||||
|             target="_blank" | ||||
|             aria-label="IT-Tools' twitter account" | ||||
|             >twitter</a | ||||
|           >! Thank you | ||||
|           <n-icon :component="Heart" /> | ||||
|         </colored-card> | ||||
|       </n-gi> | ||||
|       <n-gi v-for="tool in toolsWithCategory" :key="tool.name"> | ||||
|         <tool-card :tool="tool" /> | ||||
|       </n-gi> | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user