|
@@ -4,7 +4,13 @@
|
|
|
<Image :src="icon" :width="75" :height="46" mode="widthFix" />
|
|
<Image :src="icon" :width="75" :height="46" mode="widthFix" />
|
|
|
</slot>
|
|
</slot>
|
|
|
<Width :width="15" />
|
|
<Width :width="15" />
|
|
|
- <Text :text="title" fontConfig="h4" :color="active ? 'text.titleLight' : 'text.title'" fontFamily="SongtiSCBlack" />
|
|
|
|
|
|
|
+ <Text
|
|
|
|
|
+ :text="title"
|
|
|
|
|
+ :color="active ? 'text.titleLight' : 'text.title'"
|
|
|
|
|
+ :innerClass="titleColorAnim && !active ? 'home-title-color-anim' : ''"
|
|
|
|
|
+ fontConfig="h4"
|
|
|
|
|
+ fontFamily="SongtiSCBlack"
|
|
|
|
|
+ />
|
|
|
</Touchable>
|
|
</Touchable>
|
|
|
</template>
|
|
</template>
|
|
|
|
|
|
|
@@ -12,7 +18,6 @@
|
|
|
import Image from '@/components/basic/Image.vue';
|
|
import Image from '@/components/basic/Image.vue';
|
|
|
import Text from '@/components/basic/Text.vue';
|
|
import Text from '@/components/basic/Text.vue';
|
|
|
import Touchable from '@/components/feedback/Touchable.vue';
|
|
import Touchable from '@/components/feedback/Touchable.vue';
|
|
|
-import FlexRow from '@/components/layout/FlexRow.vue';
|
|
|
|
|
import Width from '@/components/layout/space/Width.vue';
|
|
import Width from '@/components/layout/space/Width.vue';
|
|
|
|
|
|
|
|
const props = defineProps({
|
|
const props = defineProps({
|
|
@@ -32,6 +37,39 @@ const props = defineProps({
|
|
|
type: Boolean,
|
|
type: Boolean,
|
|
|
default: false,
|
|
default: false,
|
|
|
},
|
|
},
|
|
|
|
|
+ titleColorAnim: {
|
|
|
|
|
+ type: Boolean,
|
|
|
|
|
+ default: false,
|
|
|
|
|
+ },
|
|
|
});
|
|
});
|
|
|
const emit = defineEmits(['click']);
|
|
const emit = defineEmits(['click']);
|
|
|
-</script>
|
|
|
|
|
|
|
+
|
|
|
|
|
+defineOptions({
|
|
|
|
|
+ options: {
|
|
|
|
|
+ styleIsolation: 'shared',
|
|
|
|
|
+ },
|
|
|
|
|
+});
|
|
|
|
|
+</script>
|
|
|
|
|
+
|
|
|
|
|
+<style>
|
|
|
|
|
+@keyframes titleColorAnim {
|
|
|
|
|
+ 0% {
|
|
|
|
|
+ background-position: 0% 50%;
|
|
|
|
|
+ }
|
|
|
|
|
+ 50% {
|
|
|
|
|
+ background-position: 100% 50%;
|
|
|
|
|
+ }
|
|
|
|
|
+ 100% {
|
|
|
|
|
+ background-position: 200% 50%;
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+.home-title-color-anim {
|
|
|
|
|
+ background: linear-gradient(90deg, #62422f, #55989a, #62422f);
|
|
|
|
|
+ background-size: 300% 100%;
|
|
|
|
|
+ -webkit-background-clip: text;
|
|
|
|
|
+ background-clip: text;
|
|
|
|
|
+ -webkit-text-fill-color: transparent;
|
|
|
|
|
+ color: transparent;
|
|
|
|
|
+ animation: titleColorAnim 2s ease-in-out infinite;
|
|
|
|
|
+}
|
|
|
|
|
+</style>
|