Improve classes

This commit is contained in:
2025-10-23 21:36:15 +03:30
parent 037be3c0ef
commit 5f9aa5b61b
12 changed files with 25 additions and 25 deletions
+1 -1
View File
@@ -3,7 +3,7 @@
<template> <template>
<router-link <router-link
to="/add" to="/add"
class="card relative w-full h-full flex items-center justify-center aspect-[2/3] bg-white/40 backdrop-blur-md border-2 border-dashed border-gray-300 rounded-lg shadow-sm hover:shadow-md hover:border-gray-400 transition-all duration-300" class="card relative w-full h-full flex items-center justify-center aspect-2/3 bg-white/40 backdrop-blur-md border-2 border-dashed border-gray-300 rounded-lg shadow-sm hover:shadow-md hover:border-gray-400 transition-all duration-300"
v-motion-fade-visible-once v-motion-fade-visible-once
> >
<!-- Plus icon --> <!-- Plus icon -->
+4 -4
View File
@@ -30,7 +30,7 @@ const imageSource = computed(() => {
<router-link <router-link
:to="{ name: 'details', params: { type: props.movie.MediaType, id: props.movie.Id } }" :to="{ name: 'details', params: { type: props.movie.MediaType, id: props.movie.Id } }"
> >
<figure class="overflow-hidden flex items-center justify-center aspect-[2/3] bg-gray-50"> <figure class="overflow-hidden flex items-center justify-center aspect-2/3 bg-gray-50">
<span v-if="!loaded" class="loading loading-ring loading-lg text-primary"></span> <span v-if="!loaded" class="loading loading-ring loading-lg text-primary"></span>
<div v-else-if="imageLoadFailed" class="flex items-center justify-center"> <div v-else-if="imageLoadFailed" class="flex items-center justify-center">
@@ -72,7 +72,7 @@ const imageSource = computed(() => {
:to="{ name: 'details', params: { type: props.movie.MediaType, id: props.movie.Id } }" :to="{ name: 'details', params: { type: props.movie.MediaType, id: props.movie.Id } }"
> >
<h2 <h2
class="card-title text-base font-semibold bg-gradient-to-r from-gray-700 to-gray-500 bg-clip-text text-transparent" class="card-title text-base font-semibold bg-linear-to-r from-gray-700 to-gray-500 bg-clip-text text-transparent"
> >
{{ props.movie.Title }} {{ props.movie.Title }}
</h2> </h2>
@@ -83,7 +83,7 @@ const imageSource = computed(() => {
<button <button
v-motion-fade-visible-once v-motion-fade-visible-once
v-if="!alreadyAdded" v-if="!alreadyAdded"
class="btn btn-sm px-4 bg-gradient-to-r from-gray-100 to-gray-200 border border-gray-300 text-gray-700 hover:from-gray-200 hover:to-gray-300 hover:text-gray-900 transition" class="btn btn-sm px-4 bg-linear-to-r from-gray-100 to-gray-200 border border-gray-300 text-gray-700 hover:from-gray-200 hover:to-gray-300 hover:text-gray-900 transition"
@click="store.addMedia(props.movie)" @click="store.addMedia(props.movie)"
> >
Add Add
@@ -91,7 +91,7 @@ const imageSource = computed(() => {
<button <button
v-motion-fade-visible-once v-motion-fade-visible-once
v-else v-else
class="btn btn-sm px-4 bg-gradient-to-r from-red-50 to-red-100 border border-red-200 text-red-600 hover:from-red-100 hover:to-red-200 hover:text-red-700 transition" class="btn btn-sm px-4 bg-linear-to-r from-red-50 to-red-100 border border-red-200 text-red-600 hover:from-red-100 hover:to-red-200 hover:text-red-700 transition"
@click="store.removeMedia(props.movie.Id)" @click="store.removeMedia(props.movie.Id)"
> >
Remove Remove
+7 -7
View File
@@ -37,7 +37,7 @@ const alreadyAdded = computed(() =>
v-motion-fade-visible-once v-motion-fade-visible-once
> >
<!-- Poster --> <!-- Poster -->
<figure class="flex-shrink-0"> <figure class="shrink-0">
<span v-if="!imageLoaded" class="loading loading-ring loading-lg text-primary"></span> <span v-if="!imageLoaded" class="loading loading-ring loading-lg text-primary"></span>
<img <img
v-show="imageLoaded" v-show="imageLoaded"
@@ -85,19 +85,19 @@ const alreadyAdded = computed(() =>
<span <span
v-for="g in props.type === 'movie' ? props.movie!.Genres : props.tvSeries!.Genres" v-for="g in props.type === 'movie' ? props.movie!.Genres : props.tvSeries!.Genres"
:key="g.id" :key="g.id"
class="px-3 py-1 rounded-md text-sm bg-gradient-to-r from-gray-100 to-gray-200 text-gray-700 border border-gray-300" class="px-3 py-1 rounded-md text-sm bg-linear-to-r from-gray-100 to-gray-200 text-gray-700 border border-gray-300"
> >
{{ g.name }} {{ g.name }}
</span> </span>
<span <span
v-if="props.type === 'movie'" v-if="props.type === 'movie'"
class="px-3 py-1 rounded-md text-sm bg-gradient-to-r from-gray-100 to-gray-200 text-gray-700 border border-gray-300" class="px-3 py-1 rounded-md text-sm bg-linear-to-r from-gray-100 to-gray-200 text-gray-700 border border-gray-300"
> >
Runtime: {{ props.movie!.Runtime }} min Runtime: {{ props.movie!.Runtime }} min
</span> </span>
<span <span
v-if="props.type === 'tv'" v-if="props.type === 'tv'"
class="px-3 py-1 rounded-md text-sm bg-gradient-to-r from-gray-100 to-gray-200 text-gray-700 border border-gray-300" class="px-3 py-1 rounded-md text-sm bg-linear-to-r from-gray-100 to-gray-200 text-gray-700 border border-gray-300"
> >
Seasons: {{ props.tvSeries!.NumberOfSeasons }} Seasons: {{ props.tvSeries!.NumberOfSeasons }}
</span> </span>
@@ -108,14 +108,14 @@ const alreadyAdded = computed(() =>
<template v-if="(props.movie && props.media) || (props.tvSeries && props.media)"> <template v-if="(props.movie && props.media) || (props.tvSeries && props.media)">
<button <button
v-if="!alreadyAdded" v-if="!alreadyAdded"
class="btn px-6 bg-gradient-to-r from-gray-100 to-gray-200 border border-gray-300 text-gray-700 hover:from-gray-200 hover:to-gray-300" class="btn px-6 bg-linear-to-r from-gray-100 to-gray-200 border border-gray-300 text-gray-700 hover:from-gray-200 hover:to-gray-300"
@click="store.addMedia(props.media)" @click="store.addMedia(props.media)"
> >
Add to list Add to list
</button> </button>
<button <button
v-else v-else
class="btn px-6 bg-gradient-to-r from-red-50 to-red-100 border border-red-200 text-red-600 hover:from-red-100 hover:to-red-200" class="btn px-6 bg-linear-to-r from-red-50 to-red-100 border border-red-200 text-red-600 hover:from-red-100 hover:to-red-200"
@click="store.removeMedia(props.media.Id)" @click="store.removeMedia(props.media.Id)"
> >
Remove from library Remove from library
@@ -132,7 +132,7 @@ const alreadyAdded = computed(() =>
}" }"
> >
<button <button
class="btn relative flex items-center gap-2 px-6 bg-gradient-to-r from-indigo-500 to-violet-500 text-white border-0 shadow-md hover:opacity-90 transition" class="btn relative flex items-center gap-2 px-6 bg-linear-to-r from-indigo-500 to-violet-500 text-white border-0 shadow-md hover:opacity-90 transition"
> >
<svg <svg
xmlns="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg"
+1 -1
View File
@@ -39,7 +39,7 @@ const emit = defineEmits<{ (e: 'loaded', id: string): void; (e: 'loadMore'): voi
<div v-if="props.isSearch && props.movies.length > 0" class="flex justify-center mt-8"> <div v-if="props.isSearch && props.movies.length > 0" class="flex justify-center mt-8">
<button <button
class="btn px-6 bg-gradient-to-r from-gray-100 to-gray-200 border border-gray-300 text-gray-700 hover:from-gray-200 hover:to-gray-300 hover:text-gray-900 disabled:opacity-50" class="btn px-6 bg-linear-to-r from-gray-100 to-gray-200 border border-gray-300 text-gray-700 hover:from-gray-200 hover:to-gray-300 hover:text-gray-900 disabled:opacity-50"
@click="emit('loadMore')" @click="emit('loadMore')"
:disabled="props.loadingMore" :disabled="props.loadingMore"
> >
+2 -2
View File
@@ -36,7 +36,7 @@
<!-- Logo --> <!-- Logo -->
<RouterLink <RouterLink
class="btn btn-ghost normal-case text-2xl font-bold bg-gradient-to-r from-gray-700 to-gray-500 bg-clip-text text-transparent" class="btn btn-ghost normal-case text-2xl font-bold bg-linear-to-r from-gray-700 to-gray-500 bg-clip-text text-transparent"
to="/" to="/"
> >
To Vue To Vue
@@ -65,7 +65,7 @@
<!-- Right --> <!-- Right -->
<div class="navbar-end"> <div class="navbar-end">
<RouterLink <RouterLink
class="btn px-5 bg-gradient-to-r from-gray-100 to-gray-200 border border-gray-300 text-gray-700 hover:from-gray-200 hover:to-gray-300" class="btn px-5 bg-linear-to-r from-gray-100 to-gray-200 border border-gray-300 text-gray-700 hover:from-gray-200 hover:to-gray-300"
to="/list" to="/list"
> >
Go to library Go to library
+1 -1
View File
@@ -48,7 +48,7 @@ function onSubmit() {
<!-- <!--
<button <button
type="submit" type="submit"
class="px-4 py-2 bg-gradient-to-r from-gray-100 to-gray-200 class="px-4 py-2 bg-linear-to-r from-gray-100 to-gray-200
border-l border-gray-200 text-gray-600 hover:text-gray-800 border-l border-gray-200 text-gray-600 hover:text-gray-800
transition" transition"
> >
+1 -1
View File
@@ -88,7 +88,7 @@ watch(searchQuery, () => {
<div class="container mx-auto px-4 py-12" v-motion-fade-visible-once> <div class="container mx-auto px-4 py-12" v-motion-fade-visible-once>
<!-- Title --> <!-- Title -->
<h1 <h1
class="text-4xl font-extrabold text-center mb-10 bg-gradient-to-r from-gray-700 to-gray-500 bg-clip-text text-transparent" class="text-4xl font-extrabold text-center mb-10 bg-linear-to-r from-gray-700 to-gray-500 bg-clip-text text-transparent"
> >
Add a Movie Add a Movie
</h1> </h1>
+1 -1
View File
@@ -64,7 +64,7 @@ onMounted(async () => {
<!-- Details --> <!-- Details -->
<MediaDetails <MediaDetails
v-else-if="movieDetails || tvSeriesDetails" v-else-if="movieDetails || tvSeriesDetails"
:type="(route.params.type as 'movie' | 'tv')" :type="route.params.type === 'movie' ? 'movie' : 'tv'"
:media="media" :media="media"
:movie="movieDetails" :movie="movieDetails"
:tv-series="tvSeriesDetails" :tv-series="tvSeriesDetails"
+1 -1
View File
@@ -14,7 +14,7 @@
<RouterLink <RouterLink
to="/add" to="/add"
class="btn px-8 py-3 text-lg font-medium bg-gradient-to-r from-gray-100 to-gray-200 border border-gray-300 text-gray-700 hover:from-gray-200 hover:to-gray-300 hover:text-gray-900 transition" class="btn px-8 py-3 text-lg font-medium bg-linear-to-r from-gray-100 to-gray-200 border border-gray-300 text-gray-700 hover:from-gray-200 hover:to-gray-300 hover:text-gray-900 transition"
> >
Get Started Get Started
</RouterLink> </RouterLink>
+1 -1
View File
@@ -8,7 +8,7 @@ const store = useMediaStore()
<template> <template>
<div class="container mx-auto px-4 py-12" v-motion-fade-visible-once> <div class="container mx-auto px-4 py-12" v-motion-fade-visible-once>
<h1 <h1
class="text-4xl font-extrabold text-center mb-10 bg-gradient-to-r from-gray-700 to-gray-500 bg-clip-text text-transparent" class="text-4xl font-extrabold text-center mb-10 bg-linear-to-r from-gray-700 to-gray-500 bg-clip-text text-transparent"
> >
Movie Library Movie Library
</h1> </h1>
+3 -3
View File
@@ -2,11 +2,11 @@
<template> <template>
<div <div
class="min-h-screen flex flex-col items-center justify-center bg-gradient-to-b from-gray-50 to-white px-4" class="min-h-screen flex flex-col items-center justify-center bg-linear-to-b from-gray-50 to-white px-4"
> >
<!-- Big 404 --> <!-- Big 404 -->
<h1 <h1
class="text-8xl font-extrabold mb-4 bg-gradient-to-r from-gray-700 to-gray-500 bg-clip-text text-transparent" class="text-8xl font-extrabold mb-4 bg-linear-to-r from-gray-700 to-gray-500 bg-clip-text text-transparent"
> >
404 404
</h1> </h1>
@@ -19,7 +19,7 @@
<!-- Button back home --> <!-- Button back home -->
<RouterLink <RouterLink
to="/" to="/"
class="btn px-6 py-3 bg-gradient-to-r from-gray-100 to-gray-200 border border-gray-300 text-gray-700 hover:from-gray-200 hover:to-gray-300 hover:text-gray-900 transition" class="btn px-6 py-3 bg-linear-to-r from-gray-100 to-gray-200 border border-gray-300 text-gray-700 hover:from-gray-200 hover:to-gray-300 hover:text-gray-900 transition"
> >
Back to Home Back to Home
</RouterLink> </RouterLink>
+2 -2
View File
@@ -9,7 +9,7 @@ const isLoaded = ref(false)
</script> </script>
<template> <template>
<div class="flex justify-center min-h-auto px-4 py-12 bg-gradient-to-b from-gray-50 to-white"> <div class="flex justify-center min-h-auto px-4 py-12 bg-linear-to-b from-gray-50 to-white">
<div <div
class="w-full max-w-6xl bg-white/70 backdrop-blur-md border border-gray-200/60 shadow-md rounded-xl p-4 lg:p-8 transition flex flex-col items-center" class="w-full max-w-6xl bg-white/70 backdrop-blur-md border border-gray-200/60 shadow-md rounded-xl p-4 lg:p-8 transition flex flex-col items-center"
v-motion-fade-visible-once v-motion-fade-visible-once
@@ -18,7 +18,7 @@ const isLoaded = ref(false)
<div class="flex items-center gap-3 mb-6"> <div class="flex items-center gap-3 mb-6">
<h1 class="text-3xl font-bold text-gray-700"> <h1 class="text-3xl font-bold text-gray-700">
Watch <br /> Watch <br />
<span class="bg-gradient-to-r from-indigo-500 to-cyan-400 bg-clip-text text-transparent"> <span class="bg-linear-to-r from-indigo-500 to-cyan-400 bg-clip-text text-transparent">
{{ movieName }} {{ movieName }}
</span> </span>
</h1> </h1>