|
1 | 1 | <template> |
2 | | - <v-responsive class="py-16"> |
| 2 | + <v-responsive class="py-10"> |
3 | 3 | <HomeBgGradient /> |
4 | 4 |
|
5 | 5 | <v-container> |
6 | | - <div class="mb-10"> |
| 6 | + <div class="mb-16"> |
7 | 7 | <p class="text-primary font-weight-bold mb-0"> |
8 | 8 | Tools & Resources |
9 | 9 | </p> |
|
19 | 19 | </v-responsive> |
20 | 20 | </div> |
21 | 21 |
|
22 | | - <v-row align="center" class="text-left"> |
| 22 | + <v-row |
| 23 | + v-for="(tooling, i) in toolings" |
| 24 | + :key="tooling.name" |
| 25 | + align="center" |
| 26 | + class="text-left" |
| 27 | + justify="space-between" |
| 28 | + > |
23 | 29 | <v-col |
24 | | - class="d-none d-md-block" |
| 30 | + :order-md="!isAlternateSection(i) ? '3' : '1'" |
25 | 31 | cols="12" |
26 | 32 | md="6" |
| 33 | + order="3" |
27 | 34 | > |
28 | | - <v-img |
29 | | - :height="$vuetify.display.smAndDown ? 250 : 500" |
30 | | - :max-width="$vuetify.display.smAndDown ? '100%' : 500" |
31 | | - rounded="xl" |
32 | | - src="https://cdn.vuetifyjs.com/docs/images/logos/vuetify-logo-light-atom.svg" |
33 | | - width="100%" |
34 | | - /> |
| 35 | + <p class="text-primary font-weight-bold mb-3"> |
| 36 | + {{ tooling.title }} |
| 37 | + </p> |
| 38 | + |
| 39 | + <h5 class="font-weight-bold text-h5 mb-1">{{ tooling.name }}</h5> |
| 40 | + |
| 41 | + <h6 class="text-h6 font-weight-regular text-medium-emphasis my-4"> |
| 42 | + {{ tooling.description }} |
| 43 | + </h6> |
| 44 | + |
| 45 | + <v-btn |
| 46 | + class="text-none my-2" |
| 47 | + color="primary" |
| 48 | + rounded="lg" |
| 49 | + size="large" |
| 50 | + flat |
| 51 | + > |
| 52 | + Get Started |
| 53 | + </v-btn> |
35 | 54 | </v-col> |
36 | 55 |
|
37 | 56 | <v-col |
| 57 | + :class="{ |
| 58 | + 'justify-center': smAndDown, |
| 59 | + 'justify-start': !smAndDown && !isAlternateSection(i), |
| 60 | + 'justify-end': !smAndDown && isAlternateSection(i), |
| 61 | + }" |
| 62 | + class="d-flex" |
38 | 63 | cols="12" |
39 | 64 | md="6" |
| 65 | + order="2" |
40 | 66 | > |
41 | | - <div |
42 | | - v-for="tooling in toolings" |
43 | | - :key="tooling.name" |
44 | | - class="pb-4" |
45 | | - > |
46 | | - <div class="font-weight-bold mb-1">{{ tooling.name }}</div> |
47 | | - |
48 | | - <p class="text-medium-emphasis mb-0"> |
49 | | - {{ tooling.description }} |
50 | | - </p> |
51 | | - |
52 | | - <v-btn |
53 | | - class="mb-4 text-none px-0" |
54 | | - color="primary" |
55 | | - height="30" |
56 | | - variant="text" |
57 | | - > |
58 | | - Learn More |
59 | | - </v-btn> |
| 67 | + <v-img |
| 68 | + :src="tooling.image" |
| 69 | + height="250" |
| 70 | + max-width="80%" |
| 71 | + rounded="xl" |
| 72 | + width="100%" |
| 73 | + /> |
| 74 | + </v-col> |
60 | 75 |
|
61 | | - <v-divider v-if="tooling !== toolings[toolings.length - 1]" /> |
62 | | - </div> |
| 76 | + <v-col cols="12" order="4"> |
| 77 | + <v-divider |
| 78 | + v-if="i !== toolings.length - 1" |
| 79 | + class="my-10" |
| 80 | + color="primary" |
| 81 | + /> |
63 | 82 | </v-col> |
64 | 83 | </v-row> |
65 | 84 | </v-container> |
66 | | - |
67 | 85 | </v-responsive> |
68 | 86 | </template> |
69 | 87 |
|
70 | 88 | <script setup lang="ts"> |
| 89 | + const theme = useTheme() |
| 90 | + const { smAndDown } = useDisplay() |
| 91 | +
|
| 92 | + const isDark = computed(() => theme.current.value.dark) |
| 93 | +
|
71 | 94 | const toolings = computed(() => [ |
72 | 95 | { |
73 | | - name: 'Figma UI Kit', |
74 | | - description: `Fully optimized for Figma and based on Material Design - Vuetify UI Kit`, |
| 96 | + title: 'Figma UI Kit', |
| 97 | + name: 'Build beautiful Vuetify components with Figma UI Kit', |
| 98 | + // TODO: Use proper image |
| 99 | + image: 'https://upload.wikimedia.org/wikipedia/commons/3/33/Figma-logo.svg', |
| 100 | + description: `Fully optimized for Figma and based on Material Design - Vuetify UI Kit. You can use it to create your own Vuetify components and use them in your projects.`, |
75 | 101 | }, |
76 | 102 | { |
77 | | - name: '@vuetify/create', |
78 | | - description: `Scaffold your next Vuetify application with just a few commands. Perfect for getting started with Vuetify.`, |
| 103 | + title: 'Write Clean code', |
| 104 | + name: 'Vuetify ESLint Plugin will keep your code clean and consistent', |
| 105 | + // TODO: Use proper image |
| 106 | + image: 'https://cdn.vuetifyjs.com/docs/images/logos/vuetify-logo-light-atom.svg', |
| 107 | + description: `Version upgrade automation eslint plugin, to keep your code clean and consistent! You can use it to keep your code clean and consistent.`, |
79 | 108 | }, |
80 | 109 | { |
81 | | - name: '@vuetify/eslint-plugin', |
82 | | - description: `Version upgrade automation eslint plugin, to keep your code clean and consistent!`, |
| 110 | + title: 'Scaffold your application', |
| 111 | + name: 'Vuetify Create will scaffold your next application', |
| 112 | + // TODO: Use proper image |
| 113 | + image: `https://cdn.vuetifyjs.com/docs/images/logos/vcreate-logo-${isDark.value ? 'dark' : 'light'}.png`, |
| 114 | + description: `Scaffold your next Vuetify application with just a few commands. Perfect for getting started with Vuetify. You can use it to create your own Vuetify components and use them in your projects.`, |
83 | 115 | }, |
84 | 116 | { |
85 | | - name: '@vuetify/eslint-config', |
86 | | - description: `An opinionated eslint config for Vuetify, crafted to keep your code clean and consistent!`, |
| 117 | + title: 'Vuetify ESLint Config', |
| 118 | + name: 'Vuetify ESLint Config to keep your code clean and consistent', |
| 119 | + description: `An opinionated eslint config for Vuetify, crafted to keep your code clean and consistent! You can use it to keep your code clean and consistent.`, |
| 120 | + // TODO: Use proper image |
| 121 | + image: 'https://upload.wikimedia.org/wikipedia/commons/thumb/e/e3/ESLint_logo.svg/1200px-ESLint_logo.svg.png', |
87 | 122 | }, |
88 | 123 | ]) |
| 124 | +
|
| 125 | + function isAlternateSection (index: number) { |
| 126 | + return index % 2 !== 0 |
| 127 | + } |
89 | 128 | </script> |
0 commit comments