mirror of
https://github.com/solidtime-io/solidtime.git
synced 2026-08-15 19:52:15 +01:00
improve dark mode color palette; rework font weights throughout the
interface
This commit is contained in:
@@ -32,7 +32,7 @@ const sizeClasses = {
|
||||
:disabled="loading"
|
||||
:class="
|
||||
twMerge(
|
||||
'bg-button-secondary-background border border-button-secondary-border hover:bg-button-secondary-background-hover shadow-sm transition text-text-primary rounded-lg font-semibold inline-flex items-center space-x-1.5 focus-visible:outline-none focus-visible:border-transparent focus-visible:ring-2 focus-visible:ring-ring focus:border-transparent disabled:opacity-25 ease-in-out',
|
||||
'bg-button-secondary-background border border-button-secondary-border hover:bg-button-secondary-background-hover shadow-sm transition text-text-primary rounded-lg font-medium inline-flex items-center space-x-1.5 focus-visible:outline-none focus-visible:border-transparent focus-visible:ring-2 focus-visible:ring-ring focus:border-transparent disabled:opacity-25 ease-in-out',
|
||||
sizeClasses[props.size],
|
||||
props.class
|
||||
)
|
||||
|
||||
@@ -22,7 +22,7 @@ const emit = defineEmits<{
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div class="flex items-center justify-between bg-background px-2 py-1.5">
|
||||
<div class="flex items-center justify-between bg-default-background px-2 py-1.5">
|
||||
<!-- Left: Navigation -->
|
||||
<div class="flex items-center gap-1">
|
||||
<Button
|
||||
|
||||
@@ -494,7 +494,7 @@ function getEventDurationSeconds(dayEvent: DayEvent, dayStr: string): number {
|
||||
<div
|
||||
class="fc-header-scroll flex border-b border-border shrink-0 sticky top-0 z-10 bg-default-background">
|
||||
<div
|
||||
class="shrink-0 bg-background border-r border-border"
|
||||
class="shrink-0 bg-default-background border-r border-border"
|
||||
:style="{
|
||||
width: TIME_AXIS_WIDTH + 'px',
|
||||
minWidth: TIME_AXIS_WIDTH + 'px',
|
||||
@@ -526,7 +526,7 @@ function getEventDurationSeconds(dayEvent: DayEvent, dayStr: string): number {
|
||||
<div ref="scrollerRef" class="fc-scroller">
|
||||
<div class="flex min-w-0">
|
||||
<div
|
||||
class="shrink-0 bg-background border-r border-border"
|
||||
class="shrink-0 bg-default-background border-r border-border"
|
||||
:style="{
|
||||
width: TIME_AXIS_WIDTH + 'px',
|
||||
minWidth: TIME_AXIS_WIDTH + 'px',
|
||||
@@ -553,7 +553,7 @@ function getEventDurationSeconds(dayEvent: DayEvent, dayStr: string): number {
|
||||
class="flex-1 min-w-0 relative"
|
||||
@pointerdown="guardedSlotPointerDown($event)">
|
||||
<div
|
||||
class="bg-background relative"
|
||||
class="bg-default-background relative"
|
||||
:style="{ height: totalGridHeight + 'px' }">
|
||||
<div
|
||||
class="absolute inset-0 grid"
|
||||
|
||||
@@ -32,10 +32,10 @@ const displaysPlaceholder = computed(() => {
|
||||
|
||||
<template>
|
||||
<div class="relative min-w-0 text-ellipsis whitespace-nowrap overflow-hidden">
|
||||
<div class="relative text-sm font-medium min-w-0">
|
||||
<div class="relative text-sm min-w-0">
|
||||
<div
|
||||
:class="[
|
||||
'opacity-0 h-4 text-sm whitespace-pre font-medium min-w-0 pl-1.5 @lg:pl-3 pr-1',
|
||||
'opacity-0 h-4 text-sm whitespace-pre min-w-0 pl-1.5 @lg:pl-3 pr-1',
|
||||
{ 'min-w-[130px]': displaysPlaceholder },
|
||||
]">
|
||||
{{ liveDataValue }}
|
||||
@@ -44,7 +44,7 @@ const displaysPlaceholder = computed(() => {
|
||||
data-testid="time_entry_description"
|
||||
:value="liveDataValue"
|
||||
placeholder="Add a description"
|
||||
class="absolute px-0 h-full min-w-0 pl-1.5 @lg:pl-3 pr-1 left-0 top-0 w-full text-sm text-text-primary font-medium bg-transparent focus-visible:ring-0 rounded-lg border-0"
|
||||
class="absolute px-0 h-full min-w-0 pl-1.5 @lg:pl-3 pr-1 left-0 top-0 w-full text-sm text-text-primary bg-transparent focus-visible:ring-0 rounded-lg border-0"
|
||||
@blur="onChange"
|
||||
@input="onInput"
|
||||
@keydown.enter="onChange" />
|
||||
|
||||
@@ -36,15 +36,13 @@ const organization = inject<ComputedRef<Organization>>('organization');
|
||||
:class="
|
||||
twMerge(
|
||||
'text-text-secondary px-1 bg-transparent text-center hover:bg-card-background rounded-lg border border-transparent hover:border-card-border focus-visible:outline-none focus:outline-none focus-visible:ring-2 focus-visible:text-text-primary focus-visible:ring-ring focus-visible:bg-tertiary',
|
||||
showDate
|
||||
? 'text-xs py-1.5 font-semibold'
|
||||
: 'text-sm py-1.5 font-medium',
|
||||
showDate ? 'text-xs py-1.5 font-medium' : 'text-sm py-1.5 font-normal',
|
||||
organization?.time_format === '12-hours' ? 'w-[160px]' : 'w-[100px]',
|
||||
open && 'border-card-border bg-card-background'
|
||||
)
|
||||
">
|
||||
{{ formatStartEnd(start, end, organization?.time_format) }}
|
||||
<span v-if="showDate" class="text-text-tertiary font-medium"
|
||||
<span v-if="showDate" class="text-text-tertiary font-normal"
|
||||
>{{ formatDateLocalized(start, organization?.date_format) }}
|
||||
</span>
|
||||
</button>
|
||||
|
||||
@@ -148,8 +148,7 @@ async function handleDeleteTimeEntry() {
|
||||
:task="timeEntry.task_id"
|
||||
@changed="updateProjectAndTask"></TimeTrackerProjectTaskDropdown>
|
||||
</div>
|
||||
<div
|
||||
class="hidden @lg:flex items-center font-medium space-x-1 @lg:space-x-2 shrink-0">
|
||||
<div class="hidden @lg:flex items-center space-x-1 @lg:space-x-2 shrink-0">
|
||||
<div v-if="showMember && members" class="text-sm px-2">
|
||||
{{ memberName }}
|
||||
</div>
|
||||
|
||||
@@ -47,14 +47,14 @@ function selectUnselectAll(value: boolean) {
|
||||
class="group-hover:block hidden"
|
||||
@update:checked="selectUnselectAll"></Checkbox>
|
||||
</div>
|
||||
<span class="font-medium text-text-secondary">
|
||||
<span class="text-text-primary">
|
||||
{{ formatWeekday(date) }}
|
||||
</span>
|
||||
<span class="text-text-tertiary ml-2">
|
||||
<span class="text-text-secondary ml-2">
|
||||
{{ formatDate(date, organization?.date_format) }}
|
||||
</span>
|
||||
</div>
|
||||
<div class="text-text-secondary pr-2 @lg:pr-[92px]">
|
||||
<div class="text-text-primary pr-2 @lg:pr-[92px]">
|
||||
<span class="font-medium">
|
||||
{{
|
||||
formatHumanReadableDuration(
|
||||
|
||||
@@ -215,7 +215,7 @@ useSelectEvents(
|
||||
v-model="tempDescription"
|
||||
placeholder="What are you working on?"
|
||||
data-testid="time_entry_description"
|
||||
class="w-full rounded-l-lg py-4 sm:py-2.5 px-3.5 border-b border-b-card-background-separator @2xl:px-4 text-base text-text-primary bg-transparent border-none placeholder-text-secondary font-medium focus:ring-0 transition"
|
||||
class="w-full rounded-l-lg py-4 sm:py-2.5 px-3.5 border-b border-b-card-background-separator @2xl:px-4 text-base text-text-primary bg-transparent border-none placeholder-text-secondary focus:ring-0 transition"
|
||||
type="text"
|
||||
@keydown.enter="startTimerIfNotActive"
|
||||
@keydown.esc="showDropdown = false"
|
||||
|
||||
Reference in New Issue
Block a user