diff --git a/frontend/public/tailwind.css b/frontend/public/tailwind.css index b7cb82e..8846232 100644 --- a/frontend/public/tailwind.css +++ b/frontend/public/tailwind.css @@ -7,13 +7,6 @@ "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; - --color-red-400: oklch(70.4% 0.191 22.216); - --color-red-500: oklch(63.7% 0.237 25.331); - --color-red-600: oklch(57.7% 0.245 27.325); - --color-red-900: oklch(39.6% 0.141 25.723); - --color-yellow-500: oklch(79.5% 0.184 86.047); - --color-green-500: oklch(72.3% 0.219 149.579); - --color-gray-500: oklch(55.1% 0.027 264.364); --color-black: #000; --color-white: #fff; --spacing: 0.25rem; @@ -25,18 +18,16 @@ --text-sm--line-height: calc(1.25 / 0.875); --text-lg: 1.125rem; --text-lg--line-height: calc(1.75 / 1.125); - --text-xl: 1.25rem; - --text-xl--line-height: calc(1.75 / 1.25); + --font-weight-normal: 400; --font-weight-medium: 500; --font-weight-semibold: 600; --font-weight-bold: 700; --tracking-wider: 0.05em; + --leading-tight: 1.25; --radius-md: 0.375rem; --radius-lg: 0.5rem; - --radius-xl: 0.75rem; --radius-2xl: 1rem; --blur-sm: 8px; - --blur-xl: 24px; --default-transition-duration: 150ms; --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); --default-font-family: var(--font-sans); @@ -514,6 +505,95 @@ } } } + .dropdown { + @layer daisyui.l1.l2.l3 { + position: relative; + display: inline-block; + position-area: var(--anchor-v, bottom) var(--anchor-h, span-right); + & > *:not(:has(~ [class*="dropdown-content"])):focus { + --tw-outline-style: none; + outline-style: none; + @media (forced-colors: active) { + outline: 2px solid transparent; + outline-offset: 2px; + } + } + .dropdown-content { + position: absolute; + } + &.dropdown-close .dropdown-content, &:not(details, .dropdown-open, .dropdown-hover:hover, :focus-within) .dropdown-content, &.dropdown-hover:not(:hover) [tabindex]:first-child:focus:not(:focus-visible) ~ .dropdown-content { + display: none; + transform-origin: top; + opacity: 0%; + scale: 95%; + } + &[popover], .dropdown-content { + z-index: 999; + @media (prefers-reduced-motion: no-preference) { + animation: dropdown 0.2s; + transition-property: opacity, scale, display; + transition-behavior: allow-discrete; + transition-duration: 0.2s; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + } + } + @starting-style { + &[popover], .dropdown-content { + scale: 95%; + opacity: 0; + } + } + &:not(.dropdown-close) { + &.dropdown-open, &:not(.dropdown-hover):focus, &:focus-within { + > [tabindex]:first-child { + pointer-events: none; + } + .dropdown-content { + opacity: 100%; + scale: 100%; + } + } + &.dropdown-hover:hover { + .dropdown-content { + opacity: 100%; + scale: 100%; + } + } + } + &:is(details) { + summary { + &::-webkit-details-marker { + display: none; + } + } + } + &:where([popover]) { + background: #0000; + } + &[popover] { + position: fixed; + color: inherit; + @supports not (position-area: bottom) { + margin: auto; + &.dropdown-close, &.dropdown-open:not(:popover-open) { + display: none; + transform-origin: top; + opacity: 0%; + scale: 95%; + } + &::backdrop { + background-color: color-mix(in oklab, #000 30%, #0000); + } + } + &.dropdown-close, &:not(.dropdown-open, :popover-open) { + display: none; + transform-origin: top; + opacity: 0%; + scale: 95%; + } + } + } + } .btn { :where(&) { @layer daisyui.l1.l2.l3 { @@ -940,6 +1020,20 @@ } } } + .navbar { + @layer daisyui.l1.l2.l3 { + display: flex; + width: 100%; + align-items: center; + padding: 0.5rem; + min-height: 4rem; + } + :where(&) { + @layer daisyui.l1.l2 { + position: relative; + } + } + } .drawer { @layer daisyui.l1.l2.l3 { position: relative; @@ -948,6 +1042,55 @@ grid-auto-columns: max-content auto; } } + .card { + @layer daisyui.l1.l2.l3 { + position: relative; + display: flex; + flex-direction: column; + border-radius: var(--radius-box); + outline-width: 2px; + transition: outline 0.2s ease-in-out; + outline: 0 solid #0000; + outline-offset: 2px; + &:focus { + --tw-outline-style: none; + outline-style: none; + @media (forced-colors: active) { + outline: 2px solid transparent; + outline-offset: 2px; + } + } + &:focus-visible { + outline-color: currentColor; + } + :where(figure:first-child) { + overflow: hidden; + border-start-start-radius: inherit; + border-start-end-radius: inherit; + border-end-start-radius: unset; + border-end-end-radius: unset; + } + :where(figure:last-child) { + overflow: hidden; + border-start-start-radius: unset; + border-start-end-radius: unset; + border-end-start-radius: inherit; + border-end-end-radius: inherit; + } + figure { + display: flex; + align-items: center; + justify-content: center; + } + &:has(> input:is(input[type="checkbox"], input[type="radio"])) { + cursor: pointer; + user-select: none; + } + &:has(> :checked) { + outline: 2px solid currentColor; + } + } + } .progress { @layer daisyui.l1.l2.l3 { position: relative; @@ -1010,6 +1153,44 @@ .inset-0 { inset: calc(var(--spacing) * 0); } + .dropdown-end { + @layer daisyui.l1.l2 { + --anchor-h: span-left; + :where(.dropdown-content) { + inset-inline-end: calc(0.25rem * 0); + translate: 0 0; + [dir="rtl"] & { + translate: 0 0; + } + } + &.dropdown-left { + --anchor-h: left; + --anchor-v: span-top; + .dropdown-content { + top: auto; + bottom: calc(0.25rem * 0); + } + } + &.dropdown-right { + --anchor-h: right; + --anchor-v: span-top; + .dropdown-content { + top: auto; + bottom: calc(0.25rem * 0); + } + } + } + } + .dropdown-top { + @layer daisyui.l1.l2 { + --anchor-v: top; + .dropdown-content { + top: auto; + bottom: 100%; + transform-origin: bottom; + } + } + } .modal-backdrop { @layer daisyui.l1.l2.l3 { grid-column-start: 1; @@ -1027,6 +1208,9 @@ .z-40 { z-index: 40; } + .z-\[1\] { + z-index: 1; + } .z-\[100\] { z-index: 100; } @@ -1061,6 +1245,36 @@ min-width: calc(0.25rem * 0); } } + .divider { + @layer daisyui.l1.l2.l3 { + display: flex; + height: calc(0.25rem * 4); + flex-direction: row; + align-items: center; + align-self: stretch; + white-space: nowrap; + margin: var(--divider-m, 1rem 0); + --divider-color: var(--color-base-content); + @supports (color: color-mix(in lab, red, red)) { + --divider-color: color-mix(in oklab, var(--color-base-content) 10%, transparent); + } + &:before, &:after { + content: ""; + height: calc(0.25rem * 0.5); + width: 100%; + flex-grow: 1; + background-color: var(--divider-color); + } + @media print { + &:before, &:after { + border: 0.5px solid; + } + } + &:not(:empty) { + gap: calc(0.25rem * 4); + } + } + } .filter { @layer daisyui.l1.l2.l3 { display: flex; @@ -1118,8 +1332,8 @@ } } } - .my-1 { - margin-block: calc(var(--spacing) * 1); + .my-0 { + margin-block: calc(var(--spacing) * 0); } .label { @layer daisyui.l1.l2.l3 { @@ -1160,15 +1374,6 @@ } } } - .join-item { - &:where(*:not(:first-child, :disabled, [disabled], .btn-disabled)) { - margin-inline-start: calc(var(--border, 1px) * -1); - margin-block-start: 0; - } - &:where(*:is(:disabled, [disabled], .btn-disabled)) { - border-width: var(--border, 1px) 0 var(--border, 1px) var(--border, 1px); - } - } .modal-action { @layer daisyui.l1.l2.l3 { margin-top: calc(0.25rem * 6); @@ -1183,9 +1388,6 @@ .mt-auto { margin-top: auto; } - .mb-1 { - margin-bottom: calc(var(--spacing) * 1); - } .mb-2 { margin-bottom: calc(var(--spacing) * 2); } @@ -1248,71 +1450,50 @@ height: var(--size); } } - .join { - display: inline-flex; - align-items: stretch; - --join-ss: 0; - --join-se: 0; - --join-es: 0; - --join-ee: 0; - :where(.join-item) { - border-start-start-radius: var(--join-ss, 0); - border-start-end-radius: var(--join-se, 0); - border-end-start-radius: var(--join-es, 0); - border-end-end-radius: var(--join-ee, 0); - * { - --join-ss: var(--radius-field); - --join-se: var(--radius-field); - --join-es: var(--radius-field); - --join-ee: var(--radius-field); - } + .navbar-end { + @layer daisyui.l1.l2.l3 { + display: inline-flex; + align-items: center; + width: 50%; + justify-content: flex-end; } - > .join-item:where(:first-child) { - --join-ss: var(--radius-field); - --join-se: 0; - --join-es: var(--radius-field); - --join-ee: 0; + } + .navbar-start { + @layer daisyui.l1.l2.l3 { + display: inline-flex; + align-items: center; + width: 50%; + justify-content: flex-start; } - :first-child:not(:last-child) { - :where(.join-item) { - --join-ss: var(--radius-field); - --join-se: 0; - --join-es: var(--radius-field); - --join-ee: 0; - } - } - > .join-item:where(:last-child) { - --join-ss: 0; - --join-se: var(--radius-field); - --join-es: 0; - --join-ee: var(--radius-field); - } - :last-child:not(:first-child) { - :where(.join-item) { - --join-ss: 0; - --join-se: var(--radius-field); - --join-es: 0; - --join-ee: var(--radius-field); - } - } - > .join-item:where(:only-child) { - --join-ss: var(--radius-field); - --join-se: var(--radius-field); - --join-es: var(--radius-field); - --join-ee: var(--radius-field); - } - :only-child { - :where(.join-item) { - --join-ss: var(--radius-field); - --join-se: var(--radius-field); - --join-es: var(--radius-field); - --join-ee: var(--radius-field); + } + .card-body { + @layer daisyui.l1.l2.l3 { + display: flex; + flex: auto; + flex-direction: column; + gap: calc(0.25rem * 2); + padding: var(--card-p, 1.5rem); + font-size: var(--card-fs, 0.875rem); + :where(p) { + flex-grow: 1; } } } + .line-clamp-2 { + overflow: hidden; + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-line-clamp: 2; + } .flex { display: flex; } + .grid { + display: grid; + } + .hidden { + display: none; + } .inline-block { display: inline-block; } @@ -1346,6 +1527,9 @@ height: var(--size); } } + .h-1\.5 { + height: calc(var(--spacing) * 1.5); + } .h-4 { height: calc(var(--spacing) * 4); } @@ -1385,15 +1569,15 @@ .w-5 { width: calc(var(--spacing) * 5); } - .w-8 { - width: calc(var(--spacing) * 8); - } .w-24 { width: calc(var(--spacing) * 24); } .w-48 { width: calc(var(--spacing) * 48); } + .w-52 { + width: calc(var(--spacing) * 52); + } .w-64 { width: calc(var(--spacing) * 64); } @@ -1421,12 +1605,15 @@ .transform { transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,); } - .cursor-context-menu { - cursor: context-menu; - } .cursor-pointer { cursor: pointer; } + .grid-cols-1 { + grid-template-columns: repeat(1, minmax(0, 1fr)); + } + .grid-cols-3 { + grid-template-columns: repeat(3, minmax(0, 1fr)); + } .flex-col { flex-direction: column; } @@ -1436,6 +1623,12 @@ .items-end { align-items: flex-end; } + .items-start { + align-items: flex-start; + } + .justify-between { + justify-content: space-between; + } .justify-center { justify-content: center; } @@ -1472,6 +1665,9 @@ .overflow-x-auto { overflow-x: auto; } + .overflow-y-auto { + overflow-y: auto; + } .rounded-box { border-radius: var(--radius-box); } @@ -1481,12 +1677,6 @@ .rounded-md { border-radius: var(--radius-md); } - .rounded-none { - border-radius: 0; - } - .rounded-xl { - border-radius: var(--radius-xl); - } .rounded-t-2xl { border-top-left-radius: var(--radius-2xl); border-top-right-radius: var(--radius-2xl); @@ -1507,6 +1697,10 @@ border-bottom-style: var(--tw-border-style); border-bottom-width: 1px; } + .border-l { + border-left-style: var(--tw-border-style); + border-left-width: 1px; + } .badge-ghost { @layer daisyui.l1.l2 { border-color: var(--color-base-200); @@ -1515,21 +1709,38 @@ background-image: none; } } + .badge-soft { + @layer daisyui.l1.l2 { + color: var(--badge-color, var(--color-base-content)); + background-color: var(--badge-color, var(--color-base-content)); + @supports (color: color-mix(in lab, red, red)) { + background-color: color-mix( in oklab, var(--badge-color, var(--color-base-content)) 8%, var(--color-base-100) ); + } + border-color: var(--badge-color, var(--color-base-content)); + @supports (color: color-mix(in lab, red, red)) { + border-color: color-mix( in oklab, var(--badge-color, var(--color-base-content)) 10%, var(--color-base-100) ); + } + background-image: none; + } + } .border-base-200 { border-color: var(--color-base-200); } + .border-base-200\/50 { + border-color: var(--color-base-200); + @supports (color: color-mix(in lab, red, red)) { + border-color: color-mix(in oklab, var(--color-base-200) 50%, transparent); + } + } .border-base-300 { border-color: var(--color-base-300); } - .border-white\/10 { - border-color: color-mix(in srgb, #fff 10%, transparent); + .border-white\/5 { + border-color: color-mix(in srgb, #fff 5%, transparent); @supports (color: color-mix(in lab, red, red)) { - border-color: color-mix(in oklab, var(--color-white) 10%, transparent); + border-color: color-mix(in oklab, var(--color-white) 5%, transparent); } } - .bg-\[\#111116\]\/95 { - background-color: color-mix(in oklab, #111116 95%, transparent); - } .bg-base-100 { background-color: var(--color-base-100); } @@ -1539,10 +1750,10 @@ .bg-primary { background-color: var(--color-primary); } - .bg-white\/10 { - background-color: color-mix(in srgb, #fff 10%, transparent); + .bg-primary\/10 { + background-color: var(--color-primary); @supports (color: color-mix(in lab, red, red)) { - background-color: color-mix(in oklab, var(--color-white) 10%, transparent); + background-color: color-mix(in oklab, var(--color-primary) 10%, transparent); } } .loading-spinner { @@ -1553,29 +1764,41 @@ .stroke-current { stroke: currentcolor; } - .checkbox-xs { - @layer daisyui.l1.l2 { - padding: 0.125rem; - --size: calc(var(--size-selector, 0.25rem) * 4); - } - } .p-0 { padding: calc(var(--spacing) * 0); } + .p-2 { + padding: calc(var(--spacing) * 2); + } + .p-3 { + padding: calc(var(--spacing) * 3); + } .p-4 { padding: calc(var(--spacing) * 4); } .p-6 { padding: calc(var(--spacing) * 6); } - .table-xs { + .menu-title { + @layer daisyui.l1.l2.l3 { + padding-inline: calc(0.25rem * 3); + padding-block: calc(0.25rem * 2); + color: var(--color-base-content); + @supports (color: color-mix(in lab, red, red)) { + color: color-mix(in oklab, var(--color-base-content) 40%, transparent); + } + font-size: 0.875rem; + font-weight: 600; + } + } + .table-sm { @layer daisyui.l1.l2 { :not(thead, tfoot) tr { - font-size: 0.6875rem; + font-size: 0.75rem; } :where(th, td) { - padding-inline: calc(0.25rem * 2); - padding-block: calc(0.25rem * 1); + padding-inline: calc(0.25rem * 3); + padding-block: calc(0.25rem * 2); } } } @@ -1586,26 +1809,33 @@ padding-inline: calc(0.25rem * 2.5 - var(--border)); } } - .px-3 { - padding-inline: calc(var(--spacing) * 3); + .badge-xs { + @layer daisyui.l1.l2 { + --size: calc(var(--size-selector, 0.25rem) * 4); + font-size: 0.625rem; + padding-inline: calc(0.25rem * 2 - var(--border)); + } } .px-4 { padding-inline: calc(var(--spacing) * 4); } - .py-1 { - padding-block: calc(var(--spacing) * 1); + .py-1\.5 { + padding-block: calc(var(--spacing) * 1.5); } .py-2 { padding-block: calc(var(--spacing) * 2); } - .py-2\.5 { - padding-block: calc(var(--spacing) * 2.5); - } .py-4 { padding-block: calc(var(--spacing) * 4); } - .text-left { - text-align: left; + .pt-1 { + padding-top: calc(var(--spacing) * 1); + } + .pb-20 { + padding-bottom: calc(var(--spacing) * 20); + } + .text-center { + text-align: center; } .text-right { text-align: right; @@ -1621,20 +1851,23 @@ font-size: var(--text-sm); line-height: var(--tw-leading, var(--text-sm--line-height)); } - .text-xl { - font-size: var(--text-xl); - line-height: var(--tw-leading, var(--text-xl--line-height)); - } .text-xs { font-size: var(--text-xs); line-height: var(--tw-leading, var(--text-xs--line-height)); } + .text-\[9px\] { + font-size: 9px; + } .text-\[10px\] { font-size: 10px; } .text-\[11px\] { font-size: 11px; } + .leading-tight { + --tw-leading: var(--leading-tight); + line-height: var(--leading-tight); + } .font-bold { --tw-font-weight: var(--font-weight-bold); font-weight: var(--font-weight-bold); @@ -1643,6 +1876,10 @@ --tw-font-weight: var(--font-weight-medium); font-weight: var(--font-weight-medium); } + .font-normal { + --tw-font-weight: var(--font-weight-normal); + font-weight: var(--font-weight-normal); + } .font-semibold { --tw-font-weight: var(--font-weight-semibold); font-weight: var(--font-weight-semibold); @@ -1673,6 +1910,12 @@ color: color-mix(in oklab, var(--color-base-content) 50%, transparent); } } + .text-base-content\/60 { + color: var(--color-base-content); + @supports (color: color-mix(in lab, red, red)) { + color: color-mix(in oklab, var(--color-base-content) 60%, transparent); + } + } .text-base-content\/70 { color: var(--color-base-content); @supports (color: color-mix(in lab, red, red)) { @@ -1682,32 +1925,17 @@ .text-error { color: var(--color-error); } - .text-gray-500 { - color: var(--color-gray-500); - } - .text-green-500 { - color: var(--color-green-500); - } .text-primary { color: var(--color-primary); } - .text-red-500 { - color: var(--color-red-500); - } - .text-red-600 { - color: var(--color-red-600); - } .text-success { color: var(--color-success); } .text-warning { color: var(--color-warning); } - .text-white { - color: var(--color-white); - } - .text-yellow-500 { - color: var(--color-yellow-500); + .capitalize { + text-transform: capitalize; } .uppercase { text-transform: uppercase; @@ -1715,14 +1943,24 @@ .opacity-0 { opacity: 0%; } + .opacity-10 { + opacity: 10%; + } + .opacity-60 { + opacity: 60%; + } .opacity-70 { opacity: 70%; } .opacity-80 { opacity: 80%; } - .shadow-2xl { - --tw-shadow: 0 25px 50px -12px var(--tw-shadow-color, rgb(0 0 0 / 0.25)); + .shadow { + --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1)); + box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); + } + .shadow-sm { + --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1)); box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); } .shadow-xl { @@ -1733,6 +1971,13 @@ --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor); box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); } + .ring-2 { + --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor); + box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); + } + .ring-primary { + --tw-ring-color: var(--color-primary); + } .btn-ghost { @layer daisyui.l1 { &:not(.btn-active, :hover, :active:focus, :focus-visible, input:checked:not(.filter .btn)) { @@ -1765,11 +2010,6 @@ -webkit-backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,); backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,); } - .backdrop-blur-xl { - --tw-backdrop-blur: blur(var(--blur-xl)); - -webkit-backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,); - backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,); - } .transition-all { transition-property: all; transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); @@ -1792,26 +2032,6 @@ --tw-duration: 300ms; transition-duration: 300ms; } - .btn-outline { - @layer daisyui.l1 { - &:not( .btn-active, :hover, :active:focus, :focus-visible, input:checked:not(.filter .btn), :disabled, [disabled], .btn-disabled ) { - --btn-shadow: ""; - --btn-bg: #0000; - --btn-fg: var(--btn-color); - --btn-border: var(--btn-color); - --btn-noise: none; - } - @media (hover: none) { - &:not(.btn-active, :active, :focus-visible, input:checked:not(.filter .btn)):hover { - --btn-shadow: ""; - --btn-bg: #0000; - --btn-fg: var(--btn-color); - --btn-border: var(--btn-color); - --btn-noise: none; - } - } - } - } .btn-sm { @layer daisyui.l1.l2 { --fontsize: 0.75rem; @@ -1826,6 +2046,30 @@ --size: calc(var(--size-field, 0.25rem) * 6); } } + .badge-error { + @layer daisyui.l1.l2 { + --badge-color: var(--color-error); + --badge-fg: var(--color-error-content); + } + } + .badge-primary { + @layer daisyui.l1.l2 { + --badge-color: var(--color-primary); + --badge-fg: var(--color-primary-content); + } + } + .badge-success { + @layer daisyui.l1.l2 { + --badge-color: var(--color-success); + --badge-fg: var(--color-success-content); + } + } + .badge-warning { + @layer daisyui.l1.l2 { + --badge-color: var(--color-warning); + --badge-fg: var(--color-warning-content); + } + } .btn-primary { @layer daisyui.l1.l2 { --btn-color: var(--color-primary); @@ -1857,6 +2101,16 @@ } } } + .hover\:bg-error\/10 { + &:hover { + @media (hover: hover) { + background-color: var(--color-error); + @supports (color: color-mix(in lab, red, red)) { + background-color: color-mix(in oklab, var(--color-error) 10%, transparent); + } + } + } + } .hover\:bg-primary\/90 { &:hover { @media (hover: hover) { @@ -1867,36 +2121,6 @@ } } } - .hover\:bg-red-500\/20 { - &:hover { - @media (hover: hover) { - background-color: color-mix(in srgb, oklch(63.7% 0.237 25.331) 20%, transparent); - @supports (color: color-mix(in lab, red, red)) { - background-color: color-mix(in oklab, var(--color-red-500) 20%, transparent); - } - } - } - } - .hover\:bg-red-900\/20 { - &:hover { - @media (hover: hover) { - background-color: color-mix(in srgb, oklch(39.6% 0.141 25.723) 20%, transparent); - @supports (color: color-mix(in lab, red, red)) { - background-color: color-mix(in oklab, var(--color-red-900) 20%, transparent); - } - } - } - } - .hover\:bg-white\/10 { - &:hover { - @media (hover: hover) { - background-color: color-mix(in srgb, #fff 10%, transparent); - @supports (color: color-mix(in lab, red, red)) { - background-color: color-mix(in oklab, var(--color-white) 10%, transparent); - } - } - } - } .hover\:text-primary { &:hover { @media (hover: hover) { @@ -1904,13 +2128,6 @@ } } } - .hover\:text-red-400 { - &:hover { - @media (hover: hover) { - color: var(--color-red-400); - } - } - } .focus-visible\:ring-2 { &:focus-visible { --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor); @@ -1929,6 +2146,31 @@ outline-style: none; } } + .active\:scale-\[0\.99\] { + &:active { + scale: 0.99; + } + } + .active\:bg-error { + &:active { + background-color: var(--color-error); + } + } + .active\:bg-primary { + &:active { + background-color: var(--color-primary); + } + } + .active\:text-error-content { + &:active { + color: var(--color-error-content); + } + } + .active\:text-primary-content { + &:active { + color: var(--color-primary-content); + } + } .disabled\:pointer-events-none { &:disabled { pointer-events: none; @@ -1963,6 +2205,16 @@ padding: calc(var(--spacing) * 4); } } + .md\:block { + @media (width >= 48rem) { + display: block; + } + } + .md\:hidden { + @media (width >= 48rem) { + display: none; + } + } .md\:items-center { @media (width >= 48rem) { align-items: center; @@ -1973,11 +2225,6 @@ border-radius: var(--radius-lg); } } - .md\:p-6 { - @media (width >= 48rem) { - padding: calc(var(--spacing) * 6); - } - } .lg\:drawer-open { @media (width >= 64rem) { @layer daisyui.l1.l2 { @@ -2317,6 +2564,10 @@ inherits: false; initial-value: solid; } +@property --tw-leading { + syntax: "*"; + inherits: false; +} @property --tw-font-weight { syntax: "*"; inherits: false; @@ -2493,6 +2744,7 @@ --tw-skew-y: initial; --tw-space-y-reverse: 0; --tw-border-style: solid; + --tw-leading: initial; --tw-font-weight: initial; --tw-tracking: initial; --tw-shadow: 0 0 #0000; diff --git a/frontend/src/app.rs b/frontend/src/app.rs index 2378b68..9fc22fc 100644 --- a/frontend/src/app.rs +++ b/frontend/src/app.rs @@ -17,7 +17,7 @@ pub fn App() -> impl IntoView { // Toolbar at the top -
+
} /> diff --git a/frontend/src/components/context_menu.rs b/frontend/src/components/context_menu.rs index 2fb58e7..d24c16f 100644 --- a/frontend/src/components/context_menu.rs +++ b/frontend/src/components/context_menu.rs @@ -68,57 +68,67 @@ pub fn ContextMenu( view! {
-
"Actions"
- - - - - -
- - - - +
}.into_view() } diff --git a/frontend/src/components/layout/sidebar.rs b/frontend/src/components/layout/sidebar.rs index 4827581..01e5463 100644 --- a/frontend/src/components/layout/sidebar.rs +++ b/frontend/src/components/layout/sidebar.rs @@ -19,10 +19,10 @@ pub fn Sidebar() -> impl IntoView { }; view! { -
-
-

"Filters"

+
+ -
-

"Trackers"

+
diff --git a/frontend/src/components/layout/statusbar.rs b/frontend/src/components/layout/statusbar.rs index c4ee9a5..2856b83 100644 --- a/frontend/src/components/layout/statusbar.rs +++ b/frontend/src/components/layout/statusbar.rs @@ -23,6 +23,34 @@ pub fn StatusBar() -> impl IntoView { + + - +