mirror of
https://github.com/upscayl/upscayl.git
synced 2026-02-19 11:55:37 -05:00
- 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.
336 lines
8.6 KiB
CSS
336 lines
8.6 KiB
CSS
@import "tailwindcss";
|
|
/*
|
|
---break--- */
|
|
@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 {
|
|
font-family: "Poppins";
|
|
src: url("../fonts/poppins/Poppins-Regular.ttf");
|
|
font-weight: normal;
|
|
font-style: normal;
|
|
}
|
|
@font-face {
|
|
font-family: "Poppins";
|
|
src: url("../fonts/poppins/Poppins-Medium.ttf");
|
|
font-weight: 500;
|
|
font-style: normal;
|
|
}
|
|
@font-face {
|
|
font-family: "Poppins";
|
|
src: url("../fonts/poppins/Poppins-SemiBold.ttf");
|
|
font-weight: 600;
|
|
font-style: normal;
|
|
}
|
|
@font-face {
|
|
font-family: "Poppins";
|
|
src: url("../fonts/poppins/Poppins-Bold.ttf");
|
|
font-weight: 700;
|
|
font-style: normal;
|
|
}
|
|
@font-face {
|
|
font-family: "Poppins";
|
|
src: url("../fonts/poppins/Poppins-ExtraBold.ttf");
|
|
font-weight: 800;
|
|
font-style: normal;
|
|
}
|
|
@font-face {
|
|
font-family: "Poppins";
|
|
src: url("../fonts/poppins/Poppins-Black.ttf");
|
|
font-weight: 900;
|
|
font-style: normal;
|
|
}
|
|
|
|
/* Tailwind v4 Theme Configuration */
|
|
@theme {
|
|
/* Spacing */
|
|
--spacing-128: 28rem;
|
|
|
|
/* Animations */
|
|
--animate-marquee: marquee 25s linear infinite;
|
|
--animate-marquee2: marquee2 25s linear infinite;
|
|
--animate-accordion-down: accordion-down 0.2s ease-out;
|
|
--animate-accordion-up: accordion-up 0.2s ease-out;
|
|
|
|
@keyframes marquee {
|
|
0% {
|
|
transform: translateX(0%);
|
|
}
|
|
100% {
|
|
transform: translateX(-100%);
|
|
}
|
|
}
|
|
@keyframes marquee2 {
|
|
0% {
|
|
transform: translateX(100%);
|
|
}
|
|
100% {
|
|
transform: translateX(0%);
|
|
}
|
|
}
|
|
@keyframes accordion-down {
|
|
from {
|
|
height: 0;
|
|
}
|
|
to {
|
|
height: var(--radix-accordion-content-height);
|
|
}
|
|
}
|
|
@keyframes accordion-up {
|
|
from {
|
|
height: var(--radix-accordion-content-height);
|
|
}
|
|
to {
|
|
height: 0;
|
|
}
|
|
}
|
|
}
|
|
|
|
/* 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: 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(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 */
|
|
@theme {
|
|
--font-sans: "Poppins", sans-serif;
|
|
}
|
|
|
|
/* Utilities */
|
|
.zoom-100 {
|
|
transform: scale(1);
|
|
}
|
|
.zoom-125 {
|
|
transform: scale(1.25);
|
|
}
|
|
.zoom-150 {
|
|
transform: scale(1.5);
|
|
}
|
|
.zoom-175 {
|
|
transform: scale(1.75);
|
|
}
|
|
.zoom-200 {
|
|
transform: scale(2);
|
|
}
|
|
|
|
.animate-step-in {
|
|
animation: animate-step-in 0.6s cubic-bezier(0.07, 0.43, 0.02, 1);
|
|
}
|
|
|
|
.mac-titlebar {
|
|
-webkit-app-region: drag;
|
|
}
|
|
|
|
.spinner {
|
|
animation: sk-rotateplane 2.2s infinite ease-in-out;
|
|
}
|
|
|
|
@keyframes animate-step-in {
|
|
0% {
|
|
opacity: 0;
|
|
transform: translateY(-10px);
|
|
}
|
|
80% {
|
|
opacity: 1;
|
|
}
|
|
100% {
|
|
opacity: 1;
|
|
transform: translateY(0px);
|
|
}
|
|
}
|
|
|
|
@keyframes sk-rotateplane {
|
|
0% {
|
|
transform: perspective(120px) rotateX(0deg) rotateY(0deg);
|
|
}
|
|
50% {
|
|
transform: perspective(120px) rotateX(-360.1deg) rotateY(0deg);
|
|
}
|
|
100% {
|
|
transform: perspective(120px) rotateX(-360deg) rotateY(-179.9deg);
|
|
}
|
|
}
|
|
|
|
/* Legacy Utility Overrides */
|
|
@layer utilities {
|
|
.react-select-container {
|
|
width: 10rem;
|
|
}
|
|
.full-width {
|
|
width: 100%;
|
|
}
|
|
|
|
.react-select-container .react-select__control {
|
|
border-radius: var(--rounded-field);
|
|
background-color: var(--color-primary);
|
|
height: 3rem;
|
|
cursor: pointer;
|
|
border: none !important;
|
|
box-shadow: none;
|
|
}
|
|
|
|
[data-theme="upscayl"] .react-select-container .react-select__control {
|
|
height: 2.5rem;
|
|
}
|
|
|
|
.react-select-container .react-select__single-value {
|
|
color: var(--color-primary-content);
|
|
font-size: 0.875rem;
|
|
font-weight: 600;
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
.react-select-container .react-select__menu {
|
|
background-color: var(--color-primary);
|
|
border-radius: 0.5rem;
|
|
padding: 0.25rem;
|
|
font-size: 0.875rem;
|
|
font-weight: 600;
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
.react-select-container .react-select__option {
|
|
background-color: var(--color-primary);
|
|
color: var(--color-primary-content);
|
|
margin-block: 0.25rem;
|
|
cursor: pointer;
|
|
border-radius: 0.375rem;
|
|
word-break: break-all;
|
|
}
|
|
|
|
.react-select-container .react-select__option--is-selected {
|
|
background-color: var(--color-accent);
|
|
color: var(--color-accent-content);
|
|
}
|
|
|
|
.outline-title {
|
|
text-shadow:
|
|
0px 0px 10px rgba(255, 255, 255, 0.5),
|
|
0px 0px 10px rgba(255, 255, 255, 1);
|
|
}
|
|
.outline-title-none {
|
|
text-shadow: none;
|
|
}
|
|
|
|
[data-theme="upscayl"] .btn {
|
|
@apply h-10 min-h-min! px-3 py-2 font-medium normal-case;
|
|
}
|
|
|
|
[data-theme="upscayl"] input[type="range"] {
|
|
@apply rounded-full;
|
|
}
|
|
|
|
[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-field);
|
|
}
|
|
|
|
[data-theme="upscayl"] .react-select-container .react-select__single-value {
|
|
@apply text-primary-content font-medium normal-case;
|
|
}
|
|
|
|
[data-theme="upscayl"]
|
|
.react-select-container
|
|
.react-select__input-container {
|
|
@apply text-primary-content text-xs font-medium normal-case;
|
|
}
|
|
|
|
[data-theme="upscayl"] .react-select-container .react-select__menu {
|
|
@apply bg-primary rounded-lg p-1 font-medium normal-case;
|
|
}
|
|
|
|
.__rcs-handle-button {
|
|
@apply border-white;
|
|
}
|
|
}
|