Style cleanup, header layout.
This commit is contained in:
		| @@ -25,17 +25,8 @@ body { | |||||||
|     Arial; |     Arial; | ||||||
|   background: var(--bg); |   background: var(--bg); | ||||||
|   color: var(--ink); |   color: var(--ink); | ||||||
|   /* Prevent body scrolling / unwanted scrollbars due to mobile browser UI chrome affecting vh */ |  | ||||||
|   overflow: hidden; |   overflow: hidden; | ||||||
| } | } | ||||||
|  |  | ||||||
| /* Ensure root app container doesn't introduce its own scrollbars */ |  | ||||||
| #app { |  | ||||||
|   height: 100%; |  | ||||||
|   width: 100%; |  | ||||||
|   overflow: hidden; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| header { | header { | ||||||
|   display: flex; |   display: flex; | ||||||
|   align-items: baseline; |   align-items: baseline; | ||||||
| @@ -44,12 +35,6 @@ header { | |||||||
|   flex-shrink: 0; |   flex-shrink: 0; | ||||||
| } | } | ||||||
|  |  | ||||||
| .header-controls { |  | ||||||
|   display: flex; |  | ||||||
|   align-items: center; |  | ||||||
|   gap: 0.75rem; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| .today-date { | .today-date { | ||||||
|   cursor: pointer; |   cursor: pointer; | ||||||
| } | } | ||||||
| @@ -59,8 +44,6 @@ header { | |||||||
| .today-button:hover { | .today-button:hover { | ||||||
|   opacity: 0.8; |   opacity: 0.8; | ||||||
| } | } | ||||||
|  |  | ||||||
| /* Header row */ |  | ||||||
| .calendar-header, | .calendar-header, | ||||||
| #calendar-header { | #calendar-header { | ||||||
|   display: grid; |   display: grid; | ||||||
|   | |||||||
| @@ -119,7 +119,7 @@ const weekdayNames = computed(() => { | |||||||
| <style scoped> | <style scoped> | ||||||
| .calendar-header { | .calendar-header { | ||||||
|   display: grid; |   display: grid; | ||||||
|   grid-template-columns: var(--week-w) repeat(7, 1fr) 3rem; |   grid-template-columns: var(--week-w) repeat(7, 1fr) var(--month-w); | ||||||
|   border-bottom: 2px solid var(--muted); |   border-bottom: 2px solid var(--muted); | ||||||
|   align-items: last baseline; |   align-items: last baseline; | ||||||
|   flex-shrink: 0; |   flex-shrink: 0; | ||||||
| @@ -135,7 +135,8 @@ const weekdayNames = computed(() => { | |||||||
| .dow { | .dow { | ||||||
|   text-transform: uppercase; |   text-transform: uppercase; | ||||||
|   text-align: center; |   text-align: center; | ||||||
|   font-weight: 500; |   font-weight: 600; | ||||||
|  |   font-size: 1.2em; | ||||||
| } | } | ||||||
| .dow.weekend { | .dow.weekend { | ||||||
|   color: var(--weekend); |   color: var(--weekend); | ||||||
|   | |||||||
| @@ -711,7 +711,7 @@ const recurrenceSummary = computed(() => { | |||||||
| } | } | ||||||
|  |  | ||||||
| .ec-btn { | .ec-btn { | ||||||
|   background: none; |   background: transparent; | ||||||
|   border: none; |   border: none; | ||||||
|   color: var(--ink); |   color: var(--ink); | ||||||
|   padding: 0.5em 0.8em; |   padding: 0.5em 0.8em; | ||||||
|   | |||||||
| @@ -3,7 +3,6 @@ | |||||||
|   <Transition name="header-controls" appear> |   <Transition name="header-controls" appear> | ||||||
|     <div v-if="isVisible" class="header-controls"> |     <div v-if="isVisible" class="header-controls"> | ||||||
|       <div class="today-date" @click="goToToday">{{ todayString }}</div> |       <div class="today-date" @click="goToToday">{{ todayString }}</div> | ||||||
|       <!-- Reference historyTick to ensure reactivity of canUndo/canRedo --> |  | ||||||
|       <button |       <button | ||||||
|         type="button" |         type="button" | ||||||
|         class="hist-btn" |         class="hist-btn" | ||||||
| @@ -42,7 +41,7 @@ | |||||||
|     :aria-label="isVisible ? 'Hide controls' : 'Show controls'" |     :aria-label="isVisible ? 'Hide controls' : 'Show controls'" | ||||||
|     :title="isVisible ? 'Hide controls' : 'Show controls'" |     :title="isVisible ? 'Hide controls' : 'Show controls'" | ||||||
|   > |   > | ||||||
|     ⋮ |     ⋯ | ||||||
|   </button> |   </button> | ||||||
| </template> | </template> | ||||||
|  |  | ||||||
| @@ -50,7 +49,6 @@ | |||||||
| import { computed, ref, onMounted, onBeforeUnmount } from 'vue' | import { computed, ref, onMounted, onBeforeUnmount } from 'vue' | ||||||
| import { useCalendarStore } from '@/stores/CalendarStore' | import { useCalendarStore } from '@/stores/CalendarStore' | ||||||
| import { formatTodayString } from '@/utils/date' | import { formatTodayString } from '@/utils/date' | ||||||
| import { addDays } from 'date-fns' |  | ||||||
|  |  | ||||||
| const calendarStore = useCalendarStore() | const calendarStore = useCalendarStore() | ||||||
|  |  | ||||||
| @@ -93,30 +91,22 @@ onBeforeUnmount(() => { | |||||||
| <style scoped> | <style scoped> | ||||||
| .header-controls { | .header-controls { | ||||||
|   display: flex; |   display: flex; | ||||||
|  |   justify-content: end; | ||||||
|   align-items: center; |   align-items: center; | ||||||
|   margin-left: auto; |   margin-right: 1.5rem; | ||||||
|   margin-right: 2.5em; |  | ||||||
|   gap: 0.6rem; |  | ||||||
|   min-height: 0; |  | ||||||
| } | } | ||||||
|  |  | ||||||
| .header-controls { |  | ||||||
|   display: flex; |  | ||||||
|   gap: 0.6rem; |  | ||||||
|   align-items: center; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| .toggle-btn { | .toggle-btn { | ||||||
|   position: fixed; |   position: fixed; | ||||||
|   top: 0; |   top: 0; | ||||||
|   right: 0; |   right: 0; | ||||||
|   background: none; |   background: transparent; | ||||||
|   border: none; |   border: none; | ||||||
|   color: var(--muted); |   color: var(--muted); | ||||||
|   padding: 0; |   padding: 0; | ||||||
|   margin: 0.5em; |   margin: 0.5em; | ||||||
|   cursor: pointer; |   cursor: pointer; | ||||||
|   font-size: 1.5rem; |   font-size: 1em; | ||||||
|  |   font-weight: 700; | ||||||
|   line-height: 1; |   line-height: 1; | ||||||
|   display: inline-flex; |   display: inline-flex; | ||||||
|   align-items: center; |   align-items: center; | ||||||
| @@ -126,17 +116,13 @@ onBeforeUnmount(() => { | |||||||
|   height: 1em; |   height: 1em; | ||||||
|   transition: all 0.2s ease; |   transition: all 0.2s ease; | ||||||
| } | } | ||||||
|  |  | ||||||
| .toggle-btn:hover { | .toggle-btn:hover { | ||||||
|   color: var(--strong); |   color: var(--strong); | ||||||
|   transform: scale(1.1); |  | ||||||
| } | } | ||||||
|  |  | ||||||
| .toggle-btn:active { | .toggle-btn:active { | ||||||
|   transform: scale(0.9); |   transform: scale(0.9); | ||||||
| } | } | ||||||
|  |  | ||||||
| /* Transition animations */ |  | ||||||
| .header-controls-enter-active, | .header-controls-enter-active, | ||||||
| .header-controls-leave-active { | .header-controls-leave-active { | ||||||
|   transition: all 0.3s ease; |   transition: all 0.3s ease; | ||||||
| @@ -209,17 +195,8 @@ onBeforeUnmount(() => { | |||||||
| } | } | ||||||
|  |  | ||||||
| .today-date { | .today-date { | ||||||
|   cursor: pointer; |  | ||||||
|   padding: 0.5rem; |  | ||||||
|   background: var(--today-btn-bg); |  | ||||||
|   color: var(--today-btn-text); |  | ||||||
|   border-radius: 4px; |  | ||||||
|   white-space: pre-line; |   white-space: pre-line; | ||||||
|   text-align: center; |   text-align: center; | ||||||
|   font-size: 0.9rem; |   margin-right: 2rem; | ||||||
| } |  | ||||||
|  |  | ||||||
| .today-date:hover { |  | ||||||
|   background: var(--today-btn-hover-bg); |  | ||||||
| } | } | ||||||
| </style> | </style> | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Leo Vasanko
					Leo Vasanko