From 03f36ca87dc6a3b6fd3c1250842b9afac3189968 Mon Sep 17 00:00:00 2001 From: Karn-x7 Date: Thu, 2 Jan 2025 23:14:17 +0530 Subject: [PATCH] feature add the name in navbar --- .../PictoPy.thumbnails/PictoPy_Logo.png | Bin 0 -> 76397 bytes frontend/.prettierrc | 12 +- frontend/postcss.config.js | 6 +- frontend/src-tauri/tauri.conf.json | 10 +- frontend/src/App.css | 56 ++++---- .../Album/ImageManagementDialog.tsx | 2 +- .../src/components/Album/ImageSelection.tsx | 2 +- .../FolderPicker/DeleteSelectedImagePage.tsx | 2 +- .../LoadingScreen/LoadingScreen.tsx | 32 +++-- frontend/src/components/Media/MediaView.tsx | 2 +- .../components/Navigation/Navbar/Navbar.tsx | 110 +++++++++++---- .../components/Navigation/Sidebar/Sidebar.tsx | 2 +- frontend/src/components/ui/404/404.tsx | 2 +- frontend/src/components/ui/button.tsx | 16 ++- frontend/src/features/Setup/Setup.tsx | 2 +- frontend/src/pages/SettingsPage/Settings.tsx | 2 +- frontend/tailwind.config.cjs | 70 +++++----- frontend/tailwind.config.js | 127 ++++++++++-------- 18 files changed, 267 insertions(+), 188 deletions(-) create mode 100644 backend/images/PictoPy.thumbnails/PictoPy_Logo.png diff --git a/backend/images/PictoPy.thumbnails/PictoPy_Logo.png b/backend/images/PictoPy.thumbnails/PictoPy_Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..940fd2362042dd0a5b476771fc28e4be2e9f8670 GIT binary patch literal 76397 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 P-$$t_YbiA-SVa5}1E#@& literal 0 HcmV?d00001 diff --git a/frontend/.prettierrc b/frontend/.prettierrc index 59b6c78b..2bb6a340 100644 --- a/frontend/.prettierrc +++ b/frontend/.prettierrc @@ -1,7 +1,7 @@ { - "semi": true, - "singleQuote": true, - "tabWidth": 2, - "trailingComma": "all", - "plugins": ["prettier-plugin-tailwindcss"] - } \ No newline at end of file + "semi": true, + "singleQuote": true, + "tabWidth": 2, + "trailingComma": "all", + "plugins": ["prettier-plugin-tailwindcss"] +} diff --git a/frontend/postcss.config.js b/frontend/postcss.config.js index 0486115b..8e53f9d1 100644 --- a/frontend/postcss.config.js +++ b/frontend/postcss.config.js @@ -1,7 +1,7 @@ -const postcssConfig = { +const postcssConfig = { plugins: { tailwindcss: {}, autoprefixer: {}, }, -} -export default postcssConfig \ No newline at end of file +}; +export default postcssConfig; diff --git a/frontend/src-tauri/tauri.conf.json b/frontend/src-tauri/tauri.conf.json index 6eae9883..6db42328 100644 --- a/frontend/src-tauri/tauri.conf.json +++ b/frontend/src-tauri/tauri.conf.json @@ -23,9 +23,7 @@ "plugins": { "updater": { "active": true, - "endpoints": [ - "https://server.com//api/v1/tauri/update" - ], + "endpoints": ["https://server.com//api/v1/tauri/update"], "dialog": true, "pubkey": "dW50cnVzdGVkIGNvbW1lbnQ6IG1pbmlzaWduIHB1YmxpYyBrZXk6IEI3ODc5QjNDMERGMzlCMUEKUldRYW0vTU5QSnVIdHplYktOV3hKKzdmSGd6ZVN3eTg4Q2ExbmVTbk4yN0pMWjZLYXl1M1ZzN3AK" } @@ -43,12 +41,10 @@ ], "security": { "assetProtocol": { - "scope": [ - "**" - ], + "scope": ["**"], "enable": true }, "csp": null } } -} \ No newline at end of file +} diff --git a/frontend/src/App.css b/frontend/src/App.css index 8f255c12..da2d7a50 100644 --- a/frontend/src/App.css +++ b/frontend/src/App.css @@ -2,10 +2,10 @@ @tailwind components; @tailwind utilities; - @layer base { - :root { - --background: 0 0% 100%; - --foreground: 0 0% 0%; +@layer base { + :root { + --background: 0 0% 100%; + --foreground: 0 0% 0%; --card: 0 0% 100%; --card-foreground: 222.2 84% 4.9%; @@ -32,39 +32,38 @@ --input: 214.3 31.8% 91.4%; --ring: 222.2 84% 4.9%; - --radius: 0.5rem; - } + --radius: 0.5rem; + } - .dark { - --background: 221, 39%, 11%; - --foreground: 0 0% 100%; + .dark { + --background: 221, 39%, 11%; + --foreground: 0 0% 100%; - --card: 222.2 84% 4.9%; - --card-foreground: 210 40% 98%; + --card: 222.2 84% 4.9%; + --card-foreground: 210 40% 98%; - --popover: 222.2 84% 4.9%; - --popover-foreground: 210 40% 98%; + --popover: 222.2 84% 4.9%; + --popover-foreground: 210 40% 98%; - --primary: 210 40% 98%; - --primary-foreground: 222.2 47.4% 11.2%; + --primary: 210 40% 98%; + --primary-foreground: 222.2 47.4% 11.2%; - --secondary: 217.2 32.6% 17.5%; - --secondary-foreground: 210 40% 98%; + --secondary: 217.2 32.6% 17.5%; + --secondary-foreground: 210 40% 98%; - --muted: 217.2 32.6% 17.5%; - --muted-foreground: 215 20.2% 65.1%; + --muted: 217.2 32.6% 17.5%; + --muted-foreground: 215 20.2% 65.1%; - --accent: 217.2 32.6% 17.5%; - --accent-foreground: 210 40% 98%; + --accent: 217.2 32.6% 17.5%; + --accent-foreground: 210 40% 98%; - --destructive: 0 62.8% 30.6%; - --destructive-foreground: 210 40% 98%; + --destructive: 0 62.8% 30.6%; + --destructive-foreground: 210 40% 98%; - --border: 217.2 32.6% 17.5%; - --input: 217.2 32.6% 17.5%; - --ring: 212.7 26.8% 83.9%; - } - + --border: 217.2 32.6% 17.5%; + --input: 217.2 32.6% 17.5%; + --ring: 212.7 26.8% 83.9%; + } } @layer base { @@ -83,4 +82,3 @@ -ms-overflow-style: none; scrollbar-width: none; } - diff --git a/frontend/src/components/Album/ImageManagementDialog.tsx b/frontend/src/components/Album/ImageManagementDialog.tsx index 435931a7..00c91bca 100644 --- a/frontend/src/components/Album/ImageManagementDialog.tsx +++ b/frontend/src/components/Album/ImageManagementDialog.tsx @@ -104,7 +104,7 @@ const ImageManagementDialog: React.FC = ({ diff --git a/frontend/src/components/Album/ImageSelection.tsx b/frontend/src/components/Album/ImageSelection.tsx index e3a563e7..a1e584ea 100644 --- a/frontend/src/components/Album/ImageSelection.tsx +++ b/frontend/src/components/Album/ImageSelection.tsx @@ -99,7 +99,7 @@ const ImageSelectionPage: React.FC = ({ return (
= ({ return (
{ - return( -
-
- -
-
- ) + return ( +
+
+ +
+
+ ); }; diff --git a/frontend/src/components/Media/MediaView.tsx b/frontend/src/components/Media/MediaView.tsx index e3fbdcc1..e9e45073 100644 --- a/frontend/src/components/Media/MediaView.tsx +++ b/frontend/src/components/Media/MediaView.tsx @@ -184,4 +184,4 @@ const MediaView: React.FC = ({ ); }; -export default MediaView; \ No newline at end of file +export default MediaView; diff --git a/frontend/src/components/Navigation/Navbar/Navbar.tsx b/frontend/src/components/Navigation/Navbar/Navbar.tsx index 07695fbb..a6f5c786 100644 --- a/frontend/src/components/Navigation/Navbar/Navbar.tsx +++ b/frontend/src/components/Navigation/Navbar/Navbar.tsx @@ -1,45 +1,102 @@ +import React, { useState, useEffect, useCallback } from 'react'; import { ThemeToggle } from '@/components/ThemeToggle'; -export function Navbar(props: { title?: string }) { +interface NavbarProps { + title?: string; + onNameChange?: (name: string) => void; +} + +export function Navbar({ title, onNameChange }: NavbarProps) { + const [isEditing, setIsEditing] = useState(false); + const [name, setName] = useState(title || ''); + const [showPlaceholder, setShowPlaceholder] = useState(!title); + + useEffect(() => { + const storedName = localStorage.getItem('pictopy-username'); + if (storedName) { + setName(storedName); + setShowPlaceholder(false); + } + }, []); + + const handleNameSubmit = useCallback( + (e: React.KeyboardEvent) => { + if (e.key === 'Enter') { + const inputValue = (e.target as HTMLInputElement).value.trim(); + if (inputValue) { + setName(inputValue); + setShowPlaceholder(false); + setIsEditing(false); + localStorage.setItem('pictopy-username', inputValue); + onNameChange?.(inputValue); + } + } + }, + [onNameChange], + ); + + const handleNameClick = useCallback(() => { + if (!isEditing) { + setIsEditing(true); + } + }, [isEditing]); + + const handleBlur = useCallback( + (e: React.FocusEvent) => { + const inputValue = e.target.value.trim(); + if (inputValue) { + setName(inputValue); + setShowPlaceholder(false); + localStorage.setItem('pictopy-username', inputValue); + onNameChange?.(inputValue); + } + setIsEditing(false); + }, + [onNameChange], + ); + return (
-
-
+
+
PictoPy Logo - + PictoPy
-
- - Welcome {props.title || 'User'} - - -
-
-
+
-
- PictoPy Logo - - PictoPy +
+ + Welcome{' '} + {isEditing || showPlaceholder ? ( + + ) : ( + + )}
-
-
- - Welcome {props.title || 'User'} -
@@ -47,3 +104,4 @@ export function Navbar(props: { title?: string }) { ); } +export default Navbar; diff --git a/frontend/src/components/Navigation/Sidebar/Sidebar.tsx b/frontend/src/components/Navigation/Sidebar/Sidebar.tsx index d1e8135f..e75dad23 100644 --- a/frontend/src/components/Navigation/Sidebar/Sidebar.tsx +++ b/frontend/src/components/Navigation/Sidebar/Sidebar.tsx @@ -40,7 +40,7 @@ const Sidebar = () => { return (
= ({ message }) => {

Go Home diff --git a/frontend/src/components/ui/button.tsx b/frontend/src/components/ui/button.tsx index eb7c1ef3..5777a53c 100644 --- a/frontend/src/components/ui/button.tsx +++ b/frontend/src/components/ui/button.tsx @@ -9,11 +9,16 @@ const buttonVariants = cva( { variants: { variant: { - default: 'bg-primary text-primary-foreground hover:bg-primary/90 active:bg-primary/80 focus:ring-primary dark:bg-primary-dark dark:text-primary-foreground-dark dark:hover:bg-primary-dark/90 dark:active:bg-primary-dark/80', - destructive: 'bg-destructive text-destructive-foreground hover:bg-destructive/90 active:bg-destructive/80 focus:ring-destructive dark:bg-destructive-dark dark:text-destructive-foreground-dark dark:hover:bg-destructive-dark/90 dark:active:bg-destructive-dark/80', - outline: 'border border-input hover:bg-accent hover:text-accent-foreground active:bg-accent/90 focus:ring-accent dark:bg-accent-dark dark:text-accent-foreground-dark dark:border-input-dark', - secondary: 'bg-secondary text-secondary-foreground hover:bg-secondary/80 active:bg-secondary/70 focus:ring-secondary dark:bg-secondary-dark dark:text-secondary-foreground-dark dark:hover:bg-secondary-dark/80 dark:active:bg-secondary-dark/70', - ghost: 'hover:bg-accent hover:text-accent-foreground active:bg-accent/90 focus:ring-accent dark:hover:bg-accent-dark dark:text-accent-foreground-dark', + default: + 'bg-primary text-primary-foreground hover:bg-primary/90 active:bg-primary/80 focus:ring-primary dark:bg-primary-dark dark:text-primary-foreground-dark dark:hover:bg-primary-dark/90 dark:active:bg-primary-dark/80', + destructive: + 'bg-destructive text-destructive-foreground hover:bg-destructive/90 active:bg-destructive/80 focus:ring-destructive dark:bg-destructive-dark dark:text-destructive-foreground-dark dark:hover:bg-destructive-dark/90 dark:active:bg-destructive-dark/80', + outline: + 'border border-input hover:bg-accent hover:text-accent-foreground active:bg-accent/90 focus:ring-accent dark:bg-accent-dark dark:text-accent-foreground-dark dark:border-input-dark', + secondary: + 'bg-secondary text-secondary-foreground hover:bg-secondary/80 active:bg-secondary/70 focus:ring-secondary dark:bg-secondary-dark dark:text-secondary-foreground-dark dark:hover:bg-secondary-dark/80 dark:active:bg-secondary-dark/70', + ghost: + 'hover:bg-accent hover:text-accent-foreground active:bg-accent/90 focus:ring-accent dark:hover:bg-accent-dark dark:text-accent-foreground-dark', link: 'text-primary underline-offset-4 hover:underline active:text-primary/80 focus:ring-primary dark:text-primary-dark dark:hover:underline', }, size: { @@ -51,4 +56,3 @@ const Button = React.forwardRef( Button.displayName = 'Button'; export { Button, buttonVariants }; - diff --git a/frontend/src/features/Setup/Setup.tsx b/frontend/src/features/Setup/Setup.tsx index cb559ba6..6be18ddb 100644 --- a/frontend/src/features/Setup/Setup.tsx +++ b/frontend/src/features/Setup/Setup.tsx @@ -11,7 +11,7 @@ export const SetupScreen: React.FC = ({ }) => (
-
+

Pictopy

diff --git a/frontend/src/pages/SettingsPage/Settings.tsx b/frontend/src/pages/SettingsPage/Settings.tsx index 9867798f..25941ac3 100644 --- a/frontend/src/pages/SettingsPage/Settings.tsx +++ b/frontend/src/pages/SettingsPage/Settings.tsx @@ -37,7 +37,7 @@ const Settings: React.FC = () => { return (
-
+

Current Folder Path diff --git a/frontend/tailwind.config.cjs b/frontend/tailwind.config.cjs index 0a0ebfa6..fe12db56 100644 --- a/frontend/tailwind.config.cjs +++ b/frontend/tailwind.config.cjs @@ -1,77 +1,77 @@ /** @type {import('tailwindcss').Config} */ module.exports = { - darkMode: ["class"], + darkMode: ['class'], content: [ './pages/**/*.{ts,tsx}', './components/**/*.{ts,tsx}', './app/**/*.{ts,tsx}', './src/**/*.{ts,tsx}', ], - prefix: "", + prefix: '', theme: { container: { center: true, - padding: "2rem", + padding: '2rem', screens: { - "2xl": "1400px", + '2xl': '1400px', }, }, extend: { colors: { - border: "hsl(var(--border))", - input: "hsl(var(--input))", - ring: "hsl(var(--ring))", - background: "hsl(var(--background))", - foreground: "hsl(var(--foreground))", + border: 'hsl(var(--border))', + input: 'hsl(var(--input))', + ring: 'hsl(var(--ring))', + background: 'hsl(var(--background))', + foreground: 'hsl(var(--foreground))', primary: { - DEFAULT: "hsl(var(--primary))", - foreground: "hsl(var(--primary-foreground))", + DEFAULT: 'hsl(var(--primary))', + foreground: 'hsl(var(--primary-foreground))', }, secondary: { - DEFAULT: "hsl(var(--secondary))", - foreground: "hsl(var(--secondary-foreground))", + DEFAULT: 'hsl(var(--secondary))', + foreground: 'hsl(var(--secondary-foreground))', }, destructive: { - DEFAULT: "hsl(var(--destructive))", - foreground: "hsl(var(--destructive-foreground))", + DEFAULT: 'hsl(var(--destructive))', + foreground: 'hsl(var(--destructive-foreground))', }, muted: { - DEFAULT: "hsl(var(--muted))", - foreground: "hsl(var(--muted-foreground))", + DEFAULT: 'hsl(var(--muted))', + foreground: 'hsl(var(--muted-foreground))', }, accent: { - DEFAULT: "hsl(var(--accent))", - foreground: "hsl(var(--accent-foreground))", + DEFAULT: 'hsl(var(--accent))', + foreground: 'hsl(var(--accent-foreground))', }, popover: { - DEFAULT: "hsl(var(--popover))", - foreground: "hsl(var(--popover-foreground))", + DEFAULT: 'hsl(var(--popover))', + foreground: 'hsl(var(--popover-foreground))', }, card: { - DEFAULT: "hsl(var(--card))", - foreground: "hsl(var(--card-foreground))", + DEFAULT: 'hsl(var(--card))', + foreground: 'hsl(var(--card-foreground))', }, }, borderRadius: { - lg: "var(--radius)", - md: "calc(var(--radius) - 2px)", - sm: "calc(var(--radius) - 4px)", + lg: 'var(--radius)', + md: 'calc(var(--radius) - 2px)', + sm: 'calc(var(--radius) - 4px)', }, keyframes: { - "accordion-down": { - from: { height: "0" }, - to: { height: "var(--radix-accordion-content-height)" }, + 'accordion-down': { + from: { height: '0' }, + to: { height: 'var(--radix-accordion-content-height)' }, }, - "accordion-up": { - from: { height: "var(--radix-accordion-content-height)" }, - to: { height: "0" }, + 'accordion-up': { + from: { height: 'var(--radix-accordion-content-height)' }, + to: { height: '0' }, }, }, animation: { - "accordion-down": "accordion-down 0.2s ease-out", - "accordion-up": "accordion-up 0.2s ease-out", + 'accordion-down': 'accordion-down 0.2s ease-out', + 'accordion-up': 'accordion-up 0.2s ease-out', }, }, }, - plugins: [require("tailwindcss-animate")], + plugins: [require('tailwindcss-animate')], }; diff --git a/frontend/tailwind.config.js b/frontend/tailwind.config.js index 7ab2522c..892a9301 100644 --- a/frontend/tailwind.config.js +++ b/frontend/tailwind.config.js @@ -1,102 +1,113 @@ /** @type {import('tailwindcss').Config} */ +const tailwindcssAnimate = require('tailwindcss-animate'); + module.exports = { - darkMode: ["class"], // Enable dark mode + darkMode: ['class'], content: [ './pages/**/*.{ts,tsx}', './components/**/*.{ts,tsx}', './app/**/*.{ts,tsx}', './src/**/*.{ts,tsx}', ], - prefix: "", + prefix: '', theme: { container: { center: true, - padding: "2rem", + padding: '2rem', screens: { - "2xl": "1400px", + '2xl': '1400px', }, }, extend: { colors: { - border: "hsl(var(--border))", - input: "hsl(var(--input))", - ring: "hsl(var(--ring))", - background: "hsl(var(--background))", - foreground: "hsl(var(--foreground))", + border: 'hsl(var(--border))', + input: 'hsl(var(--input))', + ring: 'hsl(var(--ring))', + background: 'hsl(var(--background))', + foreground: 'hsl(var(--foreground))', primary: { - DEFAULT: "hsl(var(--primary))", - foreground: "hsl(var(--primary-foreground))", + DEFAULT: 'hsl(var(--primary))', + foreground: 'hsl(var(--primary-foreground))', }, secondary: { - DEFAULT: "hsl(var(--secondary))", - foreground: "hsl(var(--secondary-foreground))", + DEFAULT: 'hsl(var(--secondary))', + foreground: 'hsl(var(--secondary-foreground))', }, destructive: { - DEFAULT: "hsl(var(--destructive))", - foreground: "hsl(var(--destructive-foreground))", + DEFAULT: 'hsl(var(--destructive))', + foreground: 'hsl(var(--destructive-foreground))', }, muted: { - DEFAULT: "hsl(var(--muted))", - foreground: "hsl(var(--muted-foreground))", + DEFAULT: 'hsl(var(--muted))', + foreground: 'hsl(var(--muted-foreground))', }, accent: { - DEFAULT: "hsl(var(--accent))", - foreground: "hsl(var(--accent-foreground))", + DEFAULT: 'hsl(var(--accent))', + foreground: 'hsl(var(--accent-foreground))', }, popover: { - DEFAULT: "hsl(var(--popover))", - foreground: "hsl(var(--popover-foreground))", + DEFAULT: 'hsl(var(--popover))', + foreground: 'hsl(var(--popover-foreground))', }, card: { - DEFAULT: "hsl(var(--card))", - foreground: "hsl(var(--card-foreground))", + DEFAULT: 'hsl(var(--card))', + foreground: 'hsl(var(--card-foreground))', }, - // Custom gradient colors for buttons - gradientFrom: "#6366F1", // Indigo - gradientVia: "#8B5CF6", // Purple - gradientTo: "#EC4899", // Pink - // Dark mode-specific gradients - gradientFromDark: "#4F46E5", - gradientViaDark: "#7C3AED", - gradientToDark: "#BE185D", - }, - borderRadius: { - lg: "var(--radius)", - md: "calc(var(--radius) - 2px)", - sm: "calc(var(--radius) - 4px)", + gradientFrom: '#6366F1', + gradientVia: '#8B5CF6', + gradientTo: '#EC4899', + gradientFromDark: '#4F46E5', + gradientViaDark: '#7C3AED', + gradientToDark: '#BE185D', }, boxShadow: { - lg: "0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)", - xl: "0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)", - darkLg: "0 10px 15px -3px rgba(0, 0, 0, 0.5), 0 4px 6px -2px rgba(0, 0, 0, 0.3)", + lg: '0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)', + xl: '0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)', + darkLg: + '0 10px 15px -3px rgba(0, 0, 0, 0.5), 0 4px 6px -2px rgba(0, 0, 0, 0.3)', }, keyframes: { - "accordion-down": { - from: { height: "0" }, - to: { height: "var(--radix-accordion-content-height)" }, + 'accordion-down': { + from: { height: '0' }, + to: { height: 'var(--radix-accordion-content-height)' }, }, - "accordion-up": { - from: { height: "var(--radix-accordion-content-height)" }, - to: { height: "0" }, + 'accordion-up': { + from: { height: 'var(--radix-accordion-content-height)' }, + to: { height: '0' }, }, - // Smooth hover animation - "button-hover": { - "0%": { transform: "scale(1)", boxShadow: "0 4px 6px rgba(0, 0, 0, 0.1)" }, - "100%": { transform: "scale(1.05)", boxShadow: "0 6px 10px rgba(0, 0, 0, 0.2)" }, + 'button-hover': { + '0%': { + transform: 'scale(1)', + boxShadow: '0 4px 6px rgba(0, 0, 0, 0.1)', + }, + '100%': { + transform: 'scale(1.05)', + boxShadow: '0 6px 10px rgba(0, 0, 0, 0.2)', + }, }, - // Reverse hover for dark mode - "button-hover-dark": { - "0%": { transform: "scale(1)", boxShadow: "0 4px 6px rgba(255, 255, 255, 0.1)" }, - "100%": { transform: "scale(1.05)", boxShadow: "0 6px 10px rgba(255, 255, 255, 0.15)" }, + 'button-hover-dark': { + '0%': { + transform: 'scale(1)', + boxShadow: '0 4px 6px rgba(255, 255, 255, 0.1)', + }, + '100%': { + transform: 'scale(1.05)', + boxShadow: '0 6px 10px rgba(255, 255, 255, 0.15)', + }, }, }, animation: { - "accordion-down": "accordion-down 0.2s ease-out", - "accordion-up": "accordion-up 0.2s ease-out", - "button-hover": "button-hover 0.3s ease-in-out", - "button-hover-dark": "button-hover-dark 0.3s ease-in-out", + 'accordion-down': 'accordion-down 0.2s ease-out', + 'accordion-up': 'accordion-up 0.2s ease-out', + 'button-hover': 'button-hover 0.3s ease-in-out', + 'button-hover-dark': 'button-hover-dark 0.3s ease-in-out', }, }, + borderRadius: { + lg: 'var(--radius)', + md: 'calc(var(--radius) - 2px)', + sm: 'calc(var(--radius) - 4px)', + }, }, - plugins: [require("tailwindcss-animate")], + plugins: [tailwindcssAnimate], };