-
-
+
+
+
-
+
{{ label }}
-
-
+
+
+
+
Week {{ weekIndex }}
-
-
+
+
+
+
Day {{ dayIndex }}
+
+
+
+
+
+
-
+
@@ -415,12 +423,6 @@ onBeforeUnmount(() => {
gap: 8px;
}
-.calendar-lab-toolbar-left {
- display: inline-flex;
- align-items: center;
- gap: 6px;
-}
-
.calendar-lab-level-text {
font-size: 0.78rem;
color: color-mix(in oklab, var(--color-base-content) 72%, transparent);
@@ -444,180 +446,98 @@ onBeforeUnmount(() => {
will-change: transform;
}
-.calendar-lab-world {
- width: 1400px;
- height: 900px;
- position: relative;
-}
-
-.calendar-lab-node {
+.calendar-year {
position: absolute;
-}
-
-.calendar-lab-node-year {
left: 80px;
top: 50px;
width: 1240px;
height: 760px;
-}
-
-.calendar-lab-node-month {
- left: 250px;
- top: 145px;
- width: 740px;
- height: 430px;
-}
-
-.calendar-lab-node-week {
- left: 140px;
- top: 80px;
- width: 460px;
- height: 270px;
-}
-
-.calendar-lab-node-day {
- left: 90px;
- top: 55px;
- width: 280px;
- height: 165px;
-}
-
-.calendar-lab-node-active :deep(.calendar-lab-rect),
-.calendar-lab-node-target :deep(.calendar-lab-rect) {
- border-color: color-mix(in oklab, var(--color-primary) 85%, transparent);
- box-shadow:
- 0 0 0 2px color-mix(in oklab, var(--color-primary) 45%, transparent),
- 0 16px 36px color-mix(in oklab, var(--color-base-content) 10%, transparent);
-}
-
-.calendar-lab-node-hover :deep(.calendar-lab-rect) {
- border-color: color-mix(in oklab, var(--color-primary) 70%, transparent);
-}
-
-:deep(.calendar-lab-rect) {
- width: 100%;
- height: 100%;
border-radius: 14px;
border: 1px solid color-mix(in oklab, var(--color-base-content) 24%, transparent);
background: color-mix(in oklab, var(--color-base-100) 96%, transparent);
- padding: 12px;
- transform-origin: center center;
- transition:
- transform 200ms ease,
- border-color 180ms ease,
- box-shadow 180ms ease,
- background-color 180ms ease;
+ padding: 14px;
}
-:deep(.calendar-lab-header) {
- display: flex;
- align-items: flex-start;
- justify-content: space-between;
- gap: 8px;
- margin-bottom: 8px;
+.calendar-year-grid {
+ display: grid;
+ grid-template-columns: repeat(4, minmax(0, 1fr));
+ grid-template-rows: repeat(3, minmax(0, 1fr));
+ gap: 10px;
+ width: 100%;
+ height: 100%;
}
-:deep(.calendar-lab-title) {
- font-size: 0.84rem;
- font-weight: 700;
+.calendar-month-card,
+.calendar-week-card,
+.calendar-day-card {
+ border-radius: 12px;
+ border: 1px solid color-mix(in oklab, var(--color-base-content) 18%, transparent);
+ background: color-mix(in oklab, var(--color-base-200) 72%, transparent);
+ transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
+ min-width: 0;
+ min-height: 0;
+ padding: 8px;
}
-:deep(.calendar-lab-subtitle) {
- font-size: 0.7rem;
- color: color-mix(in oklab, var(--color-base-content) 65%, transparent);
+.calendar-month-card-selected,
+.calendar-week-card-selected,
+.calendar-day-card-selected {
+ border-color: color-mix(in oklab, var(--color-primary) 70%, transparent);
}
-:deep(.calendar-lab-loading),
-:deep(.calendar-lab-meta),
-:deep(.calendar-lab-hint) {
- margin-bottom: 8px;
+.calendar-card-label {
font-size: 0.72rem;
-}
-
-:deep(.calendar-lab-loading) {
- color: color-mix(in oklab, var(--color-warning) 85%, var(--color-base-content));
-}
-
-:deep(.calendar-lab-meta) {
- color: color-mix(in oklab, var(--color-success) 86%, var(--color-base-content));
-}
-
-:deep(.calendar-lab-hint) {
- color: color-mix(in oklab, var(--color-base-content) 68%, transparent);
-}
-
-:deep(.calendar-lab-grid-year) {
- display: grid;
- grid-template-columns: repeat(6, minmax(0, 1fr));
- gap: 6px;
-}
-
-:deep(.calendar-lab-chip),
-:deep(.calendar-lab-row),
-:deep(.calendar-lab-day),
-:deep(.calendar-lab-event) {
- border-radius: 9px;
- border: 1px solid color-mix(in oklab, var(--color-base-content) 16%, transparent);
- background: color-mix(in oklab, var(--color-base-200) 78%, transparent);
-}
-
-:deep(.calendar-lab-chip) {
- min-height: 28px;
- display: inline-flex;
- align-items: center;
- justify-content: center;
- font-size: 0.74rem;
font-weight: 600;
+ color: color-mix(in oklab, var(--color-base-content) 88%, transparent);
}
-:deep(.calendar-lab-grid-month) {
+.calendar-week-grid-wrap,
+.calendar-day-grid-wrap,
+.calendar-slot-grid-wrap {
+ width: 100%;
+ height: calc(100% - 20px);
+ margin-top: 6px;
+}
+
+.calendar-week-grid {
display: grid;
- grid-template-columns: 1fr;
- gap: 6px;
+ grid-template-columns: repeat(3, minmax(0, 1fr));
+ grid-template-rows: repeat(2, minmax(0, 1fr));
+ gap: 8px;
+ width: 100%;
+ height: 100%;
}
-:deep(.calendar-lab-row) {
- min-height: 60px;
- display: flex;
- align-items: center;
- padding: 0 8px;
- font-size: 0.75rem;
- font-weight: 600;
-}
-
-:deep(.calendar-lab-grid-week) {
+.calendar-day-grid {
display: grid;
grid-template-columns: repeat(7, minmax(0, 1fr));
gap: 6px;
+ width: 100%;
+ height: 100%;
}
-:deep(.calendar-lab-day) {
- min-height: 70px;
- display: inline-flex;
- align-items: center;
- justify-content: center;
- font-size: 0.72rem;
- font-weight: 600;
-}
-
-:deep(.calendar-lab-timeline) {
+.calendar-slot-grid {
display: grid;
- grid-template-columns: 1fr;
- gap: 6px;
+ grid-template-columns: repeat(4, minmax(0, 1fr));
+ grid-template-rows: repeat(3, minmax(0, 1fr));
+ gap: 5px;
+ width: 100%;
+ height: 100%;
}
-:deep(.calendar-lab-event) {
- min-height: 44px;
- padding: 6px 8px;
- display: flex;
- align-items: center;
- gap: 8px;
- font-size: 0.72rem;
+.calendar-slot {
+ border-radius: 8px;
+ border: 1px solid color-mix(in oklab, var(--color-base-content) 16%, transparent);
+ background: color-mix(in oklab, var(--color-base-100) 88%, transparent);
}
-:deep(.calendar-lab-event span) {
- font-weight: 700;
- min-width: 50px;
+.calendar-hover-target {
+ border-color: color-mix(in oklab, var(--color-primary) 70%, transparent);
+ box-shadow: 0 0 0 2px color-mix(in oklab, var(--color-primary) 36%, transparent) inset;
+}
+
+.calendar-prime-target {
+ transform: scale(1.05);
}
.calendar-zoom-inline {