Reduced some spacing on mobile

This commit is contained in:
Alexis
2025-04-23 21:41:32 +02:00
parent 707d4374ef
commit f1f140f2bc
6 changed files with 38 additions and 18 deletions

4
assets/_typography.css Normal file
View File

@@ -0,0 +1,4 @@
@theme inline {
--text-2xs: 0.7rem;
--text-2xs--line-height: 0.75rem;
}

View File

@@ -3,6 +3,7 @@
@config '../tailwind.config.js'; @config '../tailwind.config.js';
@import "./theme.css" layer(theme); @import "./theme.css" layer(theme);
@import "./_typography.css" layer(theme);
@import "./_colors.css" layer(theme); @import "./_colors.css" layer(theme);
@import "./_colors.css" layer(utilities); @import "./_colors.css" layer(utilities);

View File

@@ -24,7 +24,7 @@ const breakpoints = useBreakpoints(
<template> <template>
<UiButton <UiButton
class="max-md:fixed max-md:bottom-16 max-md:right-8 max-md:z-50 max-md:size-12 max-md:shadow" class="max-md:fixed max-md:bottom-8 max-md:right-8 max-md:z-50 max-md:size-14 max-md:rounded-xl"
:size="breakpoints.lg.value ? 'default' : 'icon'" :size="breakpoints.lg.value ? 'default' : 'icon'"
@click="toggleDialog" @click="toggleDialog"
> >

View File

@@ -3,6 +3,7 @@ import { cn } from "~/lib/utils"
import type { RPGDate } from "~/models/Date" import type { RPGDate } from "~/models/Date"
import type { CalendarEvent } from "~/models/CalendarEvent" import type { CalendarEvent } from "~/models/CalendarEvent"
import { useCalendar } from "~/stores/CalendarStore" import { useCalendar } from "~/stores/CalendarStore"
import { breakpointsTailwind, useBreakpoints } from "@vueuse/core"
import { import {
PhHourglassMedium, PhHourglassMedium,
@@ -24,6 +25,10 @@ const props = defineProps<{
isEndEvent?: boolean isEndEvent?: boolean
}>() }>()
const breakpoints = useBreakpoints(
breakpointsTailwind
)
// Ref for the popover // Ref for the popover
const eventDetails = ref<HTMLElement>() const eventDetails = ref<HTMLElement>()
@@ -64,9 +69,9 @@ function deployDeleteModal() {
<UiPopoverContent <UiPopoverContent
class="w-96 event-popover" class="w-96 event-popover"
:align="'center'" :align="'center'"
:align-offset="50" :align-offset="breakpoints.lg.value ? 50 : 25"
:side="'left'" :side="breakpoints.lg.value ? 'left' : 'top'"
:collision-padding="60" :collision-padding="breakpoints.lg.value ? 50 : 25"
:hide-when-detached="true" :hide-when-detached="true"
:class="cn( :class="cn(
event.category ? `element-${event.category.color}` : '', event.category ? `element-${event.category.color}` : '',

View File

@@ -55,7 +55,7 @@ onMounted(() => {
<UiPopover v-model:open="isPopoverDetailsOpen"> <UiPopover v-model:open="isPopoverDetailsOpen">
<UiPopoverTrigger as-child> <UiPopoverTrigger as-child>
<button <button
class="event-button text-xs px-2 py-1 block w-full text-left rounded-sm transition-colors outline-offset-1 cursor-pointer" class="event-button text-2xs md:text-xs px-[5px] py-[5px] md:px-2 md:py-1 block w-full text-left rounded-sm transition-colors outline-offset-1 cursor-pointer"
:class=" :class="
cn( cn(
`element-${event.category?.color}`, `element-${event.category?.color}`,

View File

@@ -1,7 +1,7 @@
<script lang="ts" setup> <script lang="ts" setup>
import type { RPGDate } from "~/models/Date" import type { RPGDate } from "~/models/Date"
import type { CalendarEvent } from "~/models/CalendarEvent" import type { CalendarEvent } from "~/models/CalendarEvent"
import { useElementBounding } from "@vueuse/core" import { breakpointsTailwind, useElementBounding } from "@vueuse/core"
import { storeToRefs } from "pinia" import { storeToRefs } from "pinia"
import { computed, ref, type ComputedRef } from "vue" import { computed, ref, type ComputedRef } from "vue"
@@ -15,9 +15,13 @@ const props = defineProps<{
const calendarTile = ref() const calendarTile = ref()
const calendarEventsList = ref() const calendarEventsList = ref()
const { defaultDate, selectDate, areDatesIdentical } = useCalendar() const { defaultDate, selectDate, areDatesIdentical, getFormattedDateTitle } = useCalendar()
const { selectedDate, currentEvents, isReadOnly } = storeToRefs(useCalendar()) const { selectedDate, currentEvents, isReadOnly } = storeToRefs(useCalendar())
const breakpoints = useBreakpoints(
breakpointsTailwind
)
/** /**
* All events with a startDate / endDate that starts or ends on the tile * All events with a startDate / endDate that starts or ends on the tile
*/ */
@@ -73,22 +77,22 @@ const eventsNotDisplayed: ComputedRef<number> = computed<number>(() => eventsFo
<template> <template>
<div <div
ref="calendarTile" ref="calendarTile"
class="tile relative text-xs p-2" class="tile relative p-1 md:p-2"
:class="{ :class="{
'text-slate-300 dark:text-slate-500': props.faded, 'text-slate-300 dark:text-slate-500': props.faded,
'text-slate-500 dark:text-slate-300': !props.faded 'text-slate-500 dark:text-slate-300': !props.faded
}" }"
> >
<button <button
class="relative z-10 group block w-full text-center cursor-pointer" class="relative z-10 group block w-full text-2xs md:text-xs text-center cursor-pointer"
@click="selectDate(date)" @click="selectDate(date)"
> >
<ClientOnly> <ClientOnly>
<span <span
class="inline-flex w-8 h-8 aspect-square items-center justify-center rounded-full border-2 border-transparent font-bold transition-colors group-hover:border-indigo-300 dark:group-hover:border-indigo-700" class="inline-flex size-7 md:size-8 aspect-square items-center justify-center rounded-full border-1 md:border-2 border-transparent font-bold transition-colors group-hover:border-indigo-300 dark:group-hover:border-indigo-700"
:class="{ :class="{
'text-white bg-slate-600 dark:bg-slate-800': isDefaultDate && !isSelectedDate, 'text-background bg-slate-600 dark:bg-slate-800': isDefaultDate && !isSelectedDate,
'text-white bg-indigo-500': isSelectedDate 'text-background bg-indigo-500': isSelectedDate
}" }"
> >
{{ date.day }} {{ date.day }}
@@ -99,7 +103,7 @@ const eventsNotDisplayed: ComputedRef<number> = computed<number>(() => eventsFo
<ClientOnly> <ClientOnly>
<ul <ul
ref="calendarEventsList" ref="calendarEventsList"
class="absolute top-12 bottom-2 inset-x-2 grid auto-rows-min gap-1 z-10 pointer-events-none transition-opacity" class="absolute top-9 md:top-12 bottom-1 md:bottom-2 inset-x-2 grid auto-rows-min gap-1 z-10 pointer-events-none transition-opacity"
:class="{ :class="{
'opacity-40': props.faded && !isSelectedDate 'opacity-40': props.faded && !isSelectedDate
}" }"
@@ -114,17 +118,23 @@ const eventsNotDisplayed: ComputedRef<number> = computed<number>(() => eventsFo
<UiPopover> <UiPopover>
<UiPopoverTrigger as-child> <UiPopoverTrigger as-child>
<button <button
class="text-xs px-2 py-1 block w-full text-left font-bold rounded-sm whitespace-nowrap overflow-hidden text-ellipsis cursor-pointer transition-colors hover:bg-slate-800" class="text-2xs md:text-xs px-[5px] py-[5px] md:px-2 md:py-1 block w-full text-left font-bold rounded-sm whitespace-nowrap overflow-hidden text-ellipsis cursor-pointer transition-colors hover:text-foreground hover:bg-foreground/10"
> >
{{ eventsNotDisplayed }} autre{{ eventsNotDisplayed > 1 ? 's' : '' }} {{ eventsNotDisplayed }} autre{{ eventsNotDisplayed > 1 ? 's' : '' }}
</button> </button>
</UiPopoverTrigger> </UiPopoverTrigger>
<UiPopoverContent class="w-80" :align="'center'" :side="'right'"> <UiPopoverContent
<div class="text-center mb-4"> class="w-80"
:align="'center'"
:align-offset="breakpoints.lg.value ? 50 : 25"
:collision-padding="breakpoints.lg.value ? 50 : 25"
:side="breakpoints.lg.value ? 'left' : 'bottom'"
>
<div class="text-center mb-2">
<span <span
class="inline-flex w-12 h-12 aspect-square items-center justify-center text-lg font-semibold text-slate-300 bg-slate-800 rounded-full" class="text-lg font-semibold rounded-full"
> >
{{ date.day }} {{ getFormattedDateTitle(date, true) }}
</span> </span>
</div> </div>
<ul class="grid auto-rows-min gap-1 z-10 pointer-events-none transition-opacity"> <ul class="grid auto-rows-min gap-1 z-10 pointer-events-none transition-opacity">