From 5f421883a8aa92338bee1399532f359c5e986f41 Mon Sep 17 00:00:00 2001 From: Adam <2363879+adamdotdevin@users.noreply.github.com> Date: Thu, 12 Feb 2026 07:16:30 -0600 Subject: chore: style loading screen --- packages/ui/src/components/progress.css | 63 +++++++++++++++++++++++++++++++++ packages/ui/src/components/progress.tsx | 39 ++++++++++++++++++++ packages/ui/src/styles/index.css | 1 + packages/ui/src/styles/theme.css | 2 +- packages/ui/src/theme/themes/oc-1.json | 2 +- 5 files changed, 105 insertions(+), 2 deletions(-) create mode 100644 packages/ui/src/components/progress.css create mode 100644 packages/ui/src/components/progress.tsx (limited to 'packages/ui/src') diff --git a/packages/ui/src/components/progress.css b/packages/ui/src/components/progress.css new file mode 100644 index 000000000..c728912f7 --- /dev/null +++ b/packages/ui/src/components/progress.css @@ -0,0 +1,63 @@ +[data-component="progress"] { + display: flex; + flex-direction: column; + gap: 4px; + + [data-slot="progress-header"] { + display: flex; + align-items: center; + justify-content: space-between; + gap: 8px; + } + + [data-slot="progress-label"], + [data-slot="progress-value-label"] { + font-family: var(--font-family-sans); + font-size: var(--font-size-small); + font-weight: var(--font-weight-regular); + line-height: var(--line-height-large); + letter-spacing: var(--letter-spacing-normal); + } + + [data-slot="progress-label"] { + color: var(--text-base); + } + + [data-slot="progress-value-label"] { + color: var(--text-weak); + font-variant-numeric: tabular-nums; + } + + [data-slot="progress-track"] { + position: relative; + width: 100%; + height: 8px; + overflow: hidden; + border-radius: 999px; + border: 1px solid var(--border-weak-base); + background-color: var(--surface-base); + } + + [data-slot="progress-fill"] { + height: 100%; + width: var(--kb-progress-fill-width); + border-radius: inherit; + background-color: var(--border-active); + transition: width 200ms ease; + } + + &[data-indeterminate] [data-slot="progress-fill"] { + width: 35%; + animation: progress-indeterminate 1.3s ease-in-out infinite; + } +} + +@keyframes progress-indeterminate { + from { + transform: translateX(-100%); + } + + to { + transform: translateX(300%); + } +} diff --git a/packages/ui/src/components/progress.tsx b/packages/ui/src/components/progress.tsx new file mode 100644 index 000000000..bfe10a1d1 --- /dev/null +++ b/packages/ui/src/components/progress.tsx @@ -0,0 +1,39 @@ +import { Progress as Kobalte } from "@kobalte/core/progress" +import { Show, splitProps } from "solid-js" +import type { ComponentProps, ParentProps } from "solid-js" + +export interface ProgressProps extends ParentProps> { + hideLabel?: boolean + showValueLabel?: boolean +} + +export function Progress(props: ProgressProps) { + const [local, others] = splitProps(props, ["children", "class", "classList", "hideLabel", "showValueLabel"]) + + return ( + + +
+ + + {local.children} + + + + + +
+
+ + + +
+ ) +} diff --git a/packages/ui/src/styles/index.css b/packages/ui/src/styles/index.css index c85df7ba3..167eb64c8 100644 --- a/packages/ui/src/styles/index.css +++ b/packages/ui/src/styles/index.css @@ -36,6 +36,7 @@ @import "../components/message-part.css" layer(components); @import "../components/message-nav.css" layer(components); @import "../components/popover.css" layer(components); +@import "../components/progress.css" layer(components); @import "../components/progress-circle.css" layer(components); @import "../components/radio-group.css" layer(components); @import "../components/resize-handle.css" layer(components); diff --git a/packages/ui/src/styles/theme.css b/packages/ui/src/styles/theme.css index 951450d54..7ecac53fe 100644 --- a/packages/ui/src/styles/theme.css +++ b/packages/ui/src/styles/theme.css @@ -510,7 +510,7 @@ --icon-success-base: var(--apple-dark-7); --icon-success-hover: var(--apple-dark-8); --icon-success-active: var(--apple-dark-11); - --icon-warning-base: var(--amber-dark-7); + --icon-warning-base: var(--amber-dark-9); --icon-warning-hover: var(--amber-dark-8); --icon-warning-active: var(--amber-dark-11); --icon-critical-base: var(--ember-dark-9); diff --git a/packages/ui/src/theme/themes/oc-1.json b/packages/ui/src/theme/themes/oc-1.json index 7dfad9ec3..54a2bf674 100644 --- a/packages/ui/src/theme/themes/oc-1.json +++ b/packages/ui/src/theme/themes/oc-1.json @@ -444,7 +444,7 @@ "icon-success-base": "var(--apple-dark-9)", "icon-success-hover": "var(--apple-dark-10)", "icon-success-active": "var(--apple-dark-11)", - "icon-warning-base": "var(--amber-dark-7)", + "icon-warning-base": "var(--amber-dark-9)", "icon-warning-hover": "var(--amber-dark-8)", "icon-warning-active": "var(--amber-dark-11)", "icon-critical-base": "var(--ember-dark-9)", -- cgit v1.2.3