refactor: update component styles and dependencies

- Modified component styles to use 'rounded-field' instead of 'rounded-btn' for consistency.
- Updated 'lucide-react' and 'react-resizable-panels' versions in package.json and package-lock.json.
- Adjusted paths in components.json for Tailwind CSS and global styles.
- Added new themes to the SelectTheme component for enhanced customization options.
This commit is contained in:
anna7261
2026-01-04 18:29:47 -04:00
parent aa7d4eb5dd
commit 5a2672651d
15 changed files with 153 additions and 340 deletions

View File

@@ -4,13 +4,12 @@
"rsc": false,
"tsx": true,
"tailwind": {
"config": "tailwind.config.js",
"css": "renderer/styles/globals.css",
"baseColor": "slate",
"config": "",
"css": "src/styles/globals.css",
"baseColor": "neutral",
"cssVariables": true,
"prefix": ""
},
"iconLibrary": "lucide",
"aliases": {
"components": "@/components",
"utils": "@/lib/utils",
@@ -18,5 +17,5 @@
"lib": "@/lib",
"hooks": "@/hooks"
},
"registries": {}
"iconLibrary": "lucide"
}

38
package-lock.json generated
View File

@@ -28,20 +28,20 @@
"firebase": "^11.1.0",
"gray-matter": "^4.0.3",
"jotai": "^2.11.0",
"lucide-react": "^0.561.0",
"lucide-react": "^0.562.0",
"next-themes": "^0.4.6",
"posthog-js": "^1.203.2",
"react-compare-slider": "^3.1.0",
"react-error-boundary": "^6.0.0",
"react-markdown": "^10.1.0",
"react-resizable-panels": "^4.0.10",
"react-resizable-panels": "^4.2.1",
"react-select": "^5.10.2",
"react-tooltip": "^5.30.0",
"remark-gfm": "^4.0.0",
"sonner": "^2.0.7",
"tailwind-merge": "^3.4.0",
"tailwindcss-animate": "^1.0.7",
"theme-change": "^2.5.0"
"theme-change": "^2.5.0",
"tw-animate-css": "^1.4.0"
},
"devDependencies": {
"@electron/notarize": "^2.5.0",
@@ -8136,9 +8136,9 @@
}
},
"node_modules/lucide-react": {
"version": "0.561.0",
"resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.561.0.tgz",
"integrity": "sha512-Y59gMY38tl4/i0qewcqohPdEbieBy7SovpBL9IFebhc2mDd8x4PZSOsiFRkpPcOq6bj1r/mjH/Rk73gSlIJP2A==",
"version": "0.562.0",
"resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.562.0.tgz",
"integrity": "sha512-82hOAu7y0dbVuFfmO4bYF1XEwYk/mEbM5E+b1jgci/udUBEE/R7LF5Ip0CCEmXe8AybRM8L+04eP+LGZeDvkiw==",
"license": "ISC",
"peerDependencies": {
"react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0"
@@ -10198,9 +10198,9 @@
}
},
"node_modules/react-resizable-panels": {
"version": "4.0.10",
"resolved": "https://registry.npmjs.org/react-resizable-panels/-/react-resizable-panels-4.0.10.tgz",
"integrity": "sha512-uEgCPsBqpH5lOH0kdrwKuh/2+qmucgO3A71chgvzNUsJb8HpD/u22xnJATyosN7jzIWsg/Xx4J612hjrPnLo6A==",
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/react-resizable-panels/-/react-resizable-panels-4.2.1.tgz",
"integrity": "sha512-UYyiZNjd3P12BqQYihojqdVs4ovMBWFO68RQp/O1HGiUKdltNu9hacZEm4PVD/UpYpz5p9V+YBtOZo+CvGKmkQ==",
"license": "MIT",
"peerDependencies": {
"react": "^18.0.0 || ^19.0.0",
@@ -11013,15 +11013,6 @@
"integrity": "sha512-4+Z+0yiYyEtUVCScyfHCxOYP06L5Ne+JiHhY2IjR2KWMIWhJOYZKLSGZaP5HkZ8+bY0cxfzwDE5uOmzFXyIwxw==",
"license": "MIT"
},
"node_modules/tailwindcss-animate": {
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/tailwindcss-animate/-/tailwindcss-animate-1.0.7.tgz",
"integrity": "sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==",
"license": "MIT",
"peerDependencies": {
"tailwindcss": ">=3.0.0 || insiders"
}
},
"node_modules/tapable": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.0.tgz",
@@ -11252,6 +11243,15 @@
"integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
"license": "0BSD"
},
"node_modules/tw-animate-css": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/tw-animate-css/-/tw-animate-css-1.4.0.tgz",
"integrity": "sha512-7bziOlRqH0hJx80h/3mbicLW7o8qLsH5+RaLR2t+OHM3D0JlWGODQKQ4cxbK7WlvmUxpcj6Kgu6EKqjrGFe3QQ==",
"license": "MIT",
"funding": {
"url": "https://github.com/sponsors/Wombosvideo"
}
},
"node_modules/type-fest": {
"version": "0.13.1",
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz",

View File

@@ -247,20 +247,20 @@
"firebase": "^11.1.0",
"gray-matter": "^4.0.3",
"jotai": "^2.11.0",
"lucide-react": "^0.561.0",
"lucide-react": "^0.562.0",
"next-themes": "^0.4.6",
"posthog-js": "^1.203.2",
"react-compare-slider": "^3.1.0",
"react-error-boundary": "^6.0.0",
"react-markdown": "^10.1.0",
"react-resizable-panels": "^4.0.10",
"react-resizable-panels": "^4.2.1",
"react-select": "^5.10.2",
"react-tooltip": "^5.30.0",
"remark-gfm": "^4.0.0",
"sonner": "^2.0.7",
"tailwind-merge": "^3.4.0",
"tailwindcss-animate": "^1.0.7",
"theme-change": "^2.5.0"
"theme-change": "^2.5.0",
"tw-animate-css": "^1.4.0"
},
"volta": {
"node": "22.21.1"

View File

@@ -306,7 +306,7 @@ const MainContent = ({
{batchMode &&
upscaledBatchFolderPath.length === 0 &&
batchFolderPath.length > 0 && (
<p className="select-none text-base-content">
<p className="text-base-content select-none">
<span className="font-bold">
{t("APP.PROGRESS.BATCH.SELECTED_FOLDER_TITLE")}
</span>{" "}
@@ -317,11 +317,11 @@ const MainContent = ({
{batchMode && upscaledBatchFolderPath.length > 0 && (
<div className="z-50 flex flex-col items-center">
<p className="select-none py-4 font-bold text-base-content">
<p className="text-base-content py-4 font-bold select-none">
{t("APP.PROGRESS.BATCH.DONE_TITLE")}
</p>
<button
className="bg-gradient-blue btn btn-primary rounded-btn p-3 font-medium text-white/90 transition-colors"
className="bg-gradient-blue btn btn-primary rounded-field p-3 font-medium text-white/90 transition-colors"
onClick={openFolderHandler}
>
{t("APP.PROGRESS.BATCH.OPEN_UPSCAYLED_FOLDER_TITLE")}

View File

@@ -6,18 +6,18 @@ function InstructionsCard({ version, batchMode }) {
const t = useAtomValue(translationAtom);
return (
<div className="flex flex-col items-center gap-4 rounded-btn bg-base-200 p-4">
<div className="rounded-field bg-base-200 flex flex-col items-center gap-4 p-4">
<p className="text-lg font-semibold">
{batchMode
? t("APP.RIGHT_PANE_INFO.SELECT_FOLDER")
: t("APP.RIGHT_PANE_INFO.SELECT_IMAGE")}
</p>
{batchMode ? (
<p className="w-full text-center text-base-content/80 md:w-96">
<p className="text-base-content/80 w-full text-center md:w-96">
{t("APP.RIGHT_PANE_INFO.SELECT_FOLDER_DESCRIPTION")}
</p>
) : (
<div className="flex flex-col gap-1 text-center text-sm text-base-content/70">
<div className="text-base-content/70 flex flex-col gap-1 text-center text-sm">
<p>{t("APP.RIGHT_PANE_INFO.SELECT_IMAGES_DESCRIPTION")}</p>
<p>{t("APP.RIGHT_PANE_INFO.PASTE_IMAGE_DESCRIPTION")}</p>
</div>

View File

@@ -53,19 +53,19 @@ const MoreOptionsDrawer = ({
onDoubleClick={(e) => {
e.stopPropagation();
}}
className={`fixed right-0 top-0 z-50 h-screen w-md bg-base-100 text-base-content shadow-xl shadow-base-300 transition-all duration-500 ${
className={`bg-base-100 text-base-content shadow-base-300 fixed top-0 right-0 z-50 h-screen w-md shadow-xl transition-all duration-500 ${
openSidebar ? "right-0" : "-right-full translate-x-full"
}`}
>
<div
className={`group absolute right-full top-1/2 z-50 flex cursor-pointer items-center gap-2 rounded-btn rounded-r-none bg-base-100 p-4 transition-all duration-500`}
className={`group rounded-field bg-base-100 absolute top-1/2 right-full z-50 flex cursor-pointer items-center gap-2 rounded-r-none p-4 transition-all duration-500`}
onClick={() => {
setOpenSidebar(!openSidebar);
}}
>
<EllipsisIcon
className={cn(
"animate text-xl text-base-content",
"animate text-base-content text-xl",
openSidebar ? "rotate-90" : "rotate-0",
)}
/>
@@ -119,7 +119,7 @@ const MoreOptionsDrawer = ({
</div>
<div className="mt-5 flex min-h-0 flex-1 flex-col gap-2">
<p className="text-sm font-semibold uppercase text-base-content">
<p className="text-base-content text-sm font-semibold uppercase">
Stats
</p>
@@ -128,7 +128,7 @@ const MoreOptionsDrawer = ({
<div className="stat-title">
{t("APP.MORE_OPTIONS_DRAWER.TOTAL_UPSCAYLS")}
</div>
<div className="stat-value text-2xl text-base-content">
<div className="stat-value text-base-content text-2xl">
{userStats.totalUpscayls}
</div>
</div>
@@ -137,7 +137,7 @@ const MoreOptionsDrawer = ({
<div className="stat-title">
{t("APP.MORE_OPTIONS_DRAWER.TOTAL_BATCH_UPSCAYLS")}
</div>
<div className="stat-value text-2xl text-base-content">
<div className="stat-value text-base-content text-2xl">
{userStats.batchUpscayls}
</div>
</div>
@@ -146,7 +146,7 @@ const MoreOptionsDrawer = ({
<div className="stat-title">
{t("APP.MORE_OPTIONS_DRAWER.TOTAL_IMAGE_UPSCAYLS")}
</div>
<div className="stat-value text-2xl text-base-content">
<div className="stat-value text-base-content text-2xl">
{userStats.imageUpscayls}
</div>
</div>
@@ -155,7 +155,7 @@ const MoreOptionsDrawer = ({
<div className="stat-title">
{t("APP.MORE_OPTIONS_DRAWER.TOTAL_DOUBLE_UPSCAYLS")}
</div>
<div className="stat-value text-2xl text-base-content">
<div className="stat-value text-base-content text-2xl">
{userStats.doubleUpscayls}
</div>
</div>
@@ -164,7 +164,7 @@ const MoreOptionsDrawer = ({
<div className="stat-title">
{t("APP.MORE_OPTIONS_DRAWER.AVERAGE_UPSCAYL_TIME")}
</div>
<div className="stat-value text-2xl text-base-content">
<div className="stat-value text-base-content text-2xl">
{formatDuration(userStats.averageUpscaylTime / 1000)}
</div>
</div>
@@ -173,7 +173,7 @@ const MoreOptionsDrawer = ({
<div className="stat-title">
{t("APP.MORE_OPTIONS_DRAWER.LAST_UPSCAYL_DURATION")}
</div>
<div className="stat-value text-2xl text-base-content">
<div className="stat-value text-base-content text-2xl">
{formatDuration(userStats.lastUpscaylDuration / 1000)}
</div>
</div>
@@ -182,7 +182,7 @@ const MoreOptionsDrawer = ({
<div className="stat-title">
{t("APP.MORE_OPTIONS_DRAWER.LAST_USED_AT")}
</div>
<div className="stat-value text-2xl text-base-content">
<div className="stat-value text-base-content text-2xl">
{new Date(userStats.lastUsedAt).toLocaleString()}
</div>
</div>

View File

@@ -49,8 +49,8 @@ function ProgressBar({
// }, [progress]);
return (
<div className="absolute z-50 flex h-full w-full flex-col items-center justify-center bg-base-300/50 backdrop-blur-lg">
<div className="flex flex-col items-center gap-2 rounded-btn bg-base-100/50 p-4 backdrop-blur-lg">
<div className="bg-base-300/50 absolute z-50 flex h-full w-full flex-col items-center justify-center backdrop-blur-lg">
<div className="rounded-field bg-base-100/50 flex flex-col items-center gap-2 p-4 backdrop-blur-lg">
<UpscaylSVGLogo className="spinner h-12 w-12" />
<p className="rounded-full px-2 pb-2 font-bold">
@@ -70,7 +70,7 @@ function ProgressBar({
<p className="text-sm font-bold">{progress}</p>
)}
<p className="animate-pulse rounded-full px-2 pb-3 text-xs font-medium text-neutral-content/50">
<p className="text-neutral-content/50 animate-pulse rounded-full px-2 pb-3 text-xs font-medium">
{t("APP.PROGRESS_BAR.IN_PROGRESS_TITLE")}
</p>
</div>

View File

@@ -225,7 +225,7 @@ function SettingsTab({
{FEATURE_FLAGS.SHOW_UPSCAYL_CLOUD_INFO && (
<>
<button
className="rounded-btn bg-success shadow-success/40 mx-5 mb-5 animate-pulse p-1 text-sm text-slate-50 shadow-lg"
className="rounded-field bg-success shadow-success/40 mx-5 mb-5 animate-pulse p-1 text-sm text-slate-50 shadow-lg"
onClick={() => {
setShow(true);
}}

View File

@@ -35,7 +35,7 @@ export function LogArea({
</button>
</div>
<code
className="relative flex h-52 max-h-52 flex-col gap-3 overflow-y-auto break-all rounded-btn rounded-r-none bg-base-200 p-4 text-xs"
className="rounded-field bg-base-200 relative flex h-52 max-h-52 flex-col gap-3 overflow-y-auto p-4 text-xs break-all"
ref={ref}
>
{logData.length === 0 && (

View File

@@ -35,6 +35,12 @@ const SelectTheme = ({ hideLabel }: { hideLabel?: boolean }) => {
{ label: "night", value: "night" },
{ label: "coffee", value: "coffee" },
{ label: "winter", value: "winter" },
{ label: "dim", value: "dim" },
{ label: "nord", value: "nord" },
{ label: "sunset", value: "sunset" },
{ label: "caramellatte", value: "caramellatte" },
{ label: "abyss", value: "abyss" },
{ label: "silk", value: "silk" },
];
const t = useAtomValue(translationAtom);

View File

@@ -44,7 +44,7 @@ const SelectModelDialog = () => {
<div className="flex flex-col gap-4">
<Dialog open={open} onOpenChange={setOpen}>
<DialogTrigger asChild>
<button className="btn btn-primary border-border justify-start">
<button className="btn btn-primary justify-start">
<SwatchBookIcon className="mr-2 h-5 w-5" />
{selectedModelId in MODELS
? t(
@@ -53,7 +53,7 @@ const SelectModelDialog = () => {
: selectedModelId}
</button>
</DialogTrigger>
<DialogContent className="z-50 sm:max-w-lg">
<DialogContent className="z-50 max-h-screen sm:max-w-lg">
<DialogHeader>
<DialogTitle>{t("APP.MODEL_SELECTION.DESCRIPTION")}</DialogTitle>
</DialogHeader>
@@ -136,10 +136,7 @@ const SelectModelDialog = () => {
open={!!zoomedModel}
onOpenChange={(open) => !open && setZoomedModel(null)}
>
<DialogContent
className="h-screen w-screen max-w-full p-0"
hideCloseButton
>
<DialogContent className="h-screen w-screen max-w-full p-0">
<div className="relative flex h-full w-full items-center justify-center bg-black">
<div className="flex h-full w-full">
<div className="relative h-full w-1/2">

View File

@@ -116,7 +116,7 @@ function UpscaylSteps({
<div className="flex flex-row items-center gap-2">
<input
type="checkbox"
className="toggle"
className="toggle toggle-primary-content"
defaultChecked={batchMode}
onClick={() => {
if (!rememberOutputFolder) {
@@ -127,7 +127,7 @@ function UpscaylSteps({
}}
></input>
<p
className="mr-1 inline-block cursor-help text-sm"
className="text-sm"
data-tooltip-id="tooltip"
data-tooltip-content={t("APP.BATCH_MODE.DESCRIPTION")}
>
@@ -214,7 +214,7 @@ function UpscaylSteps({
</div>
{!outputPath && FEATURE_FLAGS.APP_STORE_BUILD && (
<div className="text-xs">
<span className="rounded-btn bg-base-200 text-base-content/50 px-2 font-medium uppercase">
<span className="rounded-field bg-base-200 text-base-content/50 px-2 font-medium uppercase">
{t("APP.OUTPUT_PATH_SELECTION.NOT_SELECTED")}
</span>
</div>

View File

@@ -11,7 +11,7 @@ const Tabs = ({ selectedTab, setSelectedTab }: TabsProps) => {
const t = useAtomValue(translationAtom);
return (
<div className="tabs-boxed tabs mx-auto mb-2">
<div className="tabs tabs-box mx-auto mb-2">
<a
className={`tab ${selectedTab === 0 && "tab-active"}`}
onClick={() => {

View File

@@ -1,11 +1,55 @@
@import "tailwindcss";
/*
---break--- */
@custom-variant dark (&:is(.dark *));
@plugin "daisyui";
@plugin "tailwindcss-animate";
@plugin "daisyui" {
themes:
dark, light, cupcake, bumblebee, emerald, corporate, synthwave, retro,
cyberpunk, valentine, halloween, garden, forest, aqua, lofi, pastel,
fantasy, wireframe, black, luxury, dracula, cmyk, autumn, business, acid,
lemonade, night, coffee, winter, dim, nord, sunset, caramellatte, abyss,
silk;
}
@plugin "daisyui/theme" {
name: "upscayl";
default: true;
prefersdark: true;
color-scheme: "dark";
--color-base-100: oklch(27.95% 0.0368 260);
--color-base-200: oklch(20.77% 0.0398 265.8);
--color-base-300: oklch(12.88% 0.0406 264.7);
--color-base-content: oklch(100% 0 0);
--color-primary: oklch(37.17% 0.0392 257.3);
--color-primary-content: oklch(100% 0 0);
--color-secondary: oklch(51.06% 0.2301 277);
--color-secondary-content: oklch(100% 0 0);
--color-accent: oklch(49.07% 0.2412 292.6);
--color-accent-content: oklch(100% 0 0);
--color-neutral: oklch(44.55% 0.0374 257.3);
--color-neutral-content: oklch(100% 0 0);
--color-info: oklch(87.1% 0.079 241.68);
--color-info-content: oklch(40% 0.079 241.68);
--color-success: oklch(83.9% 0.201 136.87);
--color-success-content: oklch(30% 0.201 136.87);
--color-warning: oklch(83.9% 0.165 80);
--color-warning-content: oklch(40% 0.165 80);
--color-error: oklch(75.1% 0.199 22.37);
--color-error-content: oklch(20% 0.199 22.37);
--radius-selector: 2rem;
--radius-field: 2rem;
--radius-box: 1rem;
--size-selector: 0.25rem;
--size-field: 0.25rem;
--border: 1px;
--depth: 0;
--noise: 0;
}
@plugin "@tailwindcss/typography";
@plugin "tailwind-scrollbar";
@import "tw-animate-css";
@custom-variant dark (&:is(.dark *));
/* Fonts */
@font-face {
@@ -88,212 +132,53 @@
height: 0;
}
}
/* Border Radius - Linked to DaisyUI variable */
--radius-lg: var(--rounded-btn);
--radius-md: calc(var(--rounded-btn) - 2px);
--radius-sm: calc(var(--rounded-btn) - 4px);
/* Shadcn Color Mapping to DaisyUI Variables */
--color-border: var(--color-primary);
--color-input: var(--color-base-content);
--color-ring: var(--color-base-content);
--color-background: var(--color-base-100);
--color-foreground: var(--color-base-content);
--color-primary: var(--color-primary);
--color-primary-foreground: var(--color-primary-content);
--color-secondary: var(--color-secondary);
--color-secondary-foreground: var(--color-secondary-content);
--color-destructive: var(--color-error);
--color-destructive-foreground: var(--color-error-content);
--color-muted: var(--color-base-300);
--color-muted-foreground: var(--color-base-content);
--color-accent: var(--color-accent);
--color-accent-foreground: var(--color-accent-content);
--color-popover: var(--color-base-100);
--color-popover-foreground: var(--color-base-content);
--color-card: var(--color-base-100);
--color-card-foreground: var(--color-base-content);
}
/* Container Utility Override */
@utility container {
margin-inline: auto;
padding-inline: 2rem;
@media (width >= 1400px) {
max-width: 1400px;
}
}
/* 1. Global Mappings: Connect Shadcn to whatever the CURRENT DaisyUI theme is */
:root {
/* Map Shadcn Variables to the generic DaisyUI variables */
/* This allows Shadcn to adapt to ANY DaisyUI theme automatically */
--background: var(--color-base-100);
--foreground: var(--color-base-content);
--primary: var(--color-primary);
--primary-foreground: var(--color-primary-content);
--secondary: var(--color-secondary);
--secondary-foreground: var(--color-secondary-content);
--destructive: var(--color-error);
--destructive-foreground: var(--color-error-content);
--muted: var(--color-base-300);
--muted-foreground: var(--color-base-content);
--accent: var(--color-accent);
--accent-foreground: var(--color-accent-content);
--popover: var(--color-base-100);
--popover-foreground: var(--color-base-content);
--card: var(--color-base-100);
--card-foreground: var(--color-base-content);
--border: var(--color-primary);
--input: var(--color-base-content);
--ring: var(--color-base-content);
--radius: var(--rounded-btn);
/* Default fallback for radius if a theme doesn't define it */
--rounded-btn: 0.5rem;
}
/* 2. Specific Definition for "Upscayl" Theme */
[data-theme="upscayl"] {
color-scheme: dark;
/* Colors */
--color-primary: #334155;
--color-primary-content: #ffffff;
--color-secondary: #4f46e5;
--color-secondary-content: #ffffff;
--color-accent: #6d28d9;
--color-accent-content: #ffffff;
--color-neutral: #475569;
--color-neutral-content: #ffffff;
--color-base-100: #1e293b;
--color-base-200: #0f172a;
--color-base-300: #020617;
--color-base-content: #ffffff;
--color-error: #ef4444;
--color-error-content: #ffffff;
/* Settings */
--rounded-btn: 2rem;
--rounded-badge: 2rem;
--animation-btn: 0.5s;
--animation-input: 0.5s;
--btn-text-case: uppercase;
--btn-focus-scale: 0.95;
--border-btn: 1px;
--tab-border: 1px;
--tab-radius: 0.5rem;
--background: oklch(1 0 0);
--foreground: oklch(0.129 0.042 264.695);
--card: oklch(1 0 0);
--card-foreground: oklch(0.129 0.042 264.695);
--popover: oklch(1 0 0);
--popover-foreground: oklch(0.129 0.042 264.695);
--primary: oklch(0.208 0.042 265.755);
--primary-foreground: oklch(0.984 0.003 247.858);
--secondary: oklch(0.968 0.007 247.896);
--secondary-foreground: oklch(0.208 0.042 265.755);
--muted: oklch(0.968 0.007 247.896);
--muted-foreground: oklch(0.554 0.046 257.417);
--accent: oklch(0.968 0.007 247.896);
--accent-foreground: oklch(0.208 0.042 265.755);
--destructive: oklch(0.577 0.245 27.325);
--destructive-foreground: hsl(210 40% 98%);
--border: oklch(0.929 0.013 255.508);
--input: oklch(0.929 0.013 255.508);
--ring: oklch(0.704 0.04 256.788);
--radius: 0.625rem;
--chart-1: oklch(0.646 0.222 41.116);
--chart-2: oklch(0.6 0.118 184.704);
--chart-3: oklch(0.398 0.07 227.392);
--chart-4: oklch(0.828 0.189 84.429);
--chart-5: oklch(0.769 0.188 70.08);
--sidebar: oklch(0.984 0.003 247.858);
--sidebar-foreground: oklch(0.129 0.042 264.695);
--sidebar-primary: oklch(0.208 0.042 265.755);
--sidebar-primary-foreground: oklch(0.984 0.003 247.858);
--sidebar-accent: oklch(0.968 0.007 247.896);
--sidebar-accent-foreground: oklch(0.208 0.042 265.755);
--sidebar-border: oklch(0.929 0.013 255.508);
--sidebar-ring: oklch(0.704 0.04 256.788);
--background: oklch(var(--color-base-100));
--foreground: oklch(var(--color-base-content));
--card: oklch(var(--color-base-100));
--card-foreground: oklch(var(--color-base-content));
--popover: oklch(var(--color-base-100));
--popover-foreground: oklch(var(--color-base-content));
--primary: oklch(var(--color-primary));
--primary-foreground: oklch(var(--color-primary-content));
--secondary: oklch(var(--color-secondary));
--secondary-foreground: oklch(var(--color-secondary-content));
--muted: oklch(var(--color-base-300));
--muted-foreground: oklch(var(--color-base-content));
--accent: oklch(var(--color-accent));
--accent-foreground: oklch(var(--color-accent-content));
--destructive: oklch(var(--color-error));
--destructive-foreground: oklch(var(--color-error-content));
--input: oklch(var(--color-base-content));
--ring: oklch(var(--color-base-content));
--radius: var(--rounded-field);
}
.dark {
--background: oklch(0.129 0.042 264.695);
--foreground: oklch(0.984 0.003 247.858);
--card: oklch(0.208 0.042 265.755);
--card-foreground: oklch(0.984 0.003 247.858);
--popover: oklch(0.208 0.042 265.755);
--popover-foreground: oklch(0.984 0.003 247.858);
--primary: oklch(0.929 0.013 255.508);
--primary-foreground: oklch(0.208 0.042 265.755);
--secondary: oklch(0.279 0.041 260.031);
--secondary-foreground: oklch(0.984 0.003 247.858);
--muted: oklch(0.279 0.041 260.031);
--muted-foreground: oklch(0.704 0.04 256.788);
--accent: oklch(0.279 0.041 260.031);
--accent-foreground: oklch(0.984 0.003 247.858);
--destructive: oklch(0.704 0.191 22.216);
--destructive-foreground: hsl(210 40% 98%);
--border: oklch(1 0 0 / 10%);
--input: oklch(1 0 0 / 15%);
--ring: oklch(0.551 0.027 264.364);
--chart-1: oklch(0.488 0.243 264.376);
--chart-2: oklch(0.696 0.17 162.48);
--chart-3: oklch(0.769 0.188 70.08);
--chart-4: oklch(0.627 0.265 303.9);
--chart-5: oklch(0.645 0.246 16.439);
--sidebar: oklch(0.208 0.042 265.755);
--sidebar-foreground: oklch(0.984 0.003 247.858);
--sidebar-primary: oklch(0.488 0.243 264.376);
--sidebar-primary-foreground: oklch(0.984 0.003 247.858);
--sidebar-accent: oklch(0.279 0.041 260.031);
--sidebar-accent-foreground: oklch(0.984 0.003 247.858);
--sidebar-border: oklch(1 0 0 / 10%);
--sidebar-ring: oklch(0.551 0.027 264.364);
--background: oklch(var(--color-base-100));
--foreground: oklch(var(--color-base-content));
--card: oklch(var(--color-base-200));
--card-foreground: oklch(var(--color-base-content));
--popover: oklch(var(--color-base-200));
--popover-foreground: oklch(var(--color-base-content));
--primary: oklch(var(--color-primary));
--primary-foreground: oklch(var(--color-primary-content));
--secondary: oklch(var(--color-secondary));
--secondary-foreground: oklch(var(--color-secondary-content));
--muted: oklch(var(--color-base-300));
--muted-foreground: oklch(var(--color-base-content));
--accent: oklch(var(--color-accent));
--accent-foreground: oklch(var(--color-accent-content));
--destructive: oklch(var(--color-error));
--destructive-foreground: oklch(var(--color-error-content));
--input: oklch(var(--color-base-content));
--ring: oklch(var(--color-base-content));
--radius: var(--rounded-field);
}
/* Upscayl Custom Theme Fonts */
@@ -326,29 +211,6 @@
-webkit-app-region: drag;
}
.checkerboard {
background-color: rgba(255, 255, 255);
background-image:
linear-gradient(
45deg,
#000 25%,
transparent 25%,
transparent 75%,
#000 75%,
#000
),
linear-gradient(
-45deg,
#000 25%,
transparent 25%,
transparent 75%,
#000 75%,
#000
);
background-size: 40px 40px;
background-repeat: repeat;
}
.spinner {
animation: sk-rotateplane 2.2s infinite ease-in-out;
}
@@ -389,7 +251,7 @@
}
.react-select-container .react-select__control {
border-radius: var(--rounded-btn);
border-radius: var(--rounded-field);
background-color: var(--color-primary);
height: 3rem;
cursor: pointer;
@@ -450,7 +312,7 @@
[data-theme="upscayl"] .react-select-container .react-select__control {
@apply bg-primary h-10 cursor-pointer border-0! border-none! border-transparent! shadow-none;
border-radius: var(--rounded-btn);
border-radius: var(--rounded-field);
}
[data-theme="upscayl"] .react-select-container .react-select__single-value {
@@ -471,54 +333,3 @@
@apply border-white;
}
}
@theme inline {
--radius-sm: calc(var(--radius) - 4px);
--radius-md: calc(var(--radius) - 2px);
--radius-lg: var(--radius);
--radius-xl: calc(var(--radius) + 4px);
--radius-2xl: calc(var(--radius) + 8px);
--radius-3xl: calc(var(--radius) + 12px);
--radius-4xl: calc(var(--radius) + 16px);
--color-background: var(--background);
--color-foreground: var(--foreground);
--color-card: var(--card);
--color-card-foreground: var(--card-foreground);
--color-popover: var(--popover);
--color-popover-foreground: var(--popover-foreground);
--color-primary: var(--primary);
--color-primary-foreground: var(--primary-foreground);
--color-secondary: var(--secondary);
--color-secondary-foreground: var(--secondary-foreground);
--color-muted: var(--muted);
--color-muted-foreground: var(--muted-foreground);
--color-accent: var(--accent);
--color-accent-foreground: var(--accent-foreground);
--color-destructive: var(--destructive);
--color-border: var(--border);
--color-input: var(--input);
--color-ring: var(--ring);
--color-chart-1: var(--chart-1);
--color-chart-2: var(--chart-2);
--color-chart-3: var(--chart-3);
--color-chart-4: var(--chart-4);
--color-chart-5: var(--chart-5);
--color-sidebar: var(--sidebar);
--color-sidebar-foreground: var(--sidebar-foreground);
--color-sidebar-primary: var(--sidebar-primary);
--color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
--color-sidebar-accent: var(--sidebar-accent);
--color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
--color-sidebar-border: var(--sidebar-border);
--color-sidebar-ring: var(--sidebar-ring);
}
/*
---break--- */
@layer base {
* {
@apply border-border outline-ring/50;
}
body {
@apply bg-background text-foreground;
}
}

View File

@@ -85,9 +85,9 @@
// },
// },
// borderRadius: {
// lg: daisyuiColorObj["--rounded-btn"],
// md: Number(daisyuiColorObj["--rounded-btn"]) - 2 + "px",
// sm: Number(daisyuiColorObj["--rounded-btn"]) - 4 + "px",
// lg: daisyuiColorObj["--rounded-field"],
// md: Number(daisyuiColorObj["--rounded-field"]) - 2 + "px",
// sm: Number(daisyuiColorObj["--rounded-field"]) - 4 + "px",
// },
// },
// },
@@ -104,7 +104,7 @@
// "base-100": "#1e293b",
// "base-200": "#0f172a",
// "base-300": "#020617",
// "--rounded-btn": "2rem", // border radius rounded-btn utility class, used in buttons and similar element
// "--rounded-field": "2rem", // border radius rounded-field utility class, used in buttons and similar element
// "--rounded-badge": "2rem", // border radius rounded-badge utility class, used in badges and similar
// "--animation-btn": "0.5s", // duration of animation when you click on button
// "--animation-input": "0.5s", // duration of animation for inputs like checkbox, toggle, radio, etc