From ba4d9361e8e5c7a1becfd6b681a3d340f9d1364b Mon Sep 17 00:00:00 2001 From: Xavier Saliniere Date: Sun, 28 Dec 2025 19:42:20 -0500 Subject: [PATCH 1/4] fix(tabs): remove content top margin --- src/components/ui/tabs.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/ui/tabs.tsx b/src/components/ui/tabs.tsx index 7785d9a..19b99f6 100644 --- a/src/components/ui/tabs.tsx +++ b/src/components/ui/tabs.tsx @@ -118,7 +118,7 @@ function TabsContent({ return ( ); From 1bc478075ccddd2a8a20f72e20e811b2681d6b1e Mon Sep 17 00:00:00 2001 From: Xavier Saliniere Date: Sun, 28 Dec 2025 19:43:33 -0500 Subject: [PATCH 2/4] fix(input): fix input size classes and label padding --- src/__cosmos__/fixtures/Input.fixture.tsx | 12 ++++---- src/components/ui/input.tsx | 37 +++++++++++++++-------- 2 files changed, 31 insertions(+), 18 deletions(-) diff --git a/src/__cosmos__/fixtures/Input.fixture.tsx b/src/__cosmos__/fixtures/Input.fixture.tsx index 966b377..588c128 100644 --- a/src/__cosmos__/fixtures/Input.fixture.tsx +++ b/src/__cosmos__/fixtures/Input.fixture.tsx @@ -58,11 +58,11 @@ export default function InputFixture() { title="Input Sizes" code={`
-

Large (Default)

+

Large

-

Medium

+

Medium (Default)

@@ -73,13 +73,13 @@ export default function InputFixture() { >
-

- Large (Default) -

+

Large

-

Medium

+

+ Medium (Default) +

diff --git a/src/components/ui/input.tsx b/src/components/ui/input.tsx index b844d4e..76b06f6 100644 --- a/src/components/ui/input.tsx +++ b/src/components/ui/input.tsx @@ -16,7 +16,7 @@ const Input = React.forwardRef( { className, variant = 'underlined', - size = 'large', + size = 'medium', label, supportingText, error, @@ -32,26 +32,39 @@ const Input = React.forwardRef( const getSizeClasses = () => { switch (size) { case 'large': - return 'lsd:w-52'; + return 'lsd:text-lg'; case 'medium': - return 'lsd:w-44'; + return 'lsd:text-base'; case 'small': - return 'lsd:w-40'; + return 'lsd:text-sm'; default: - return 'lsd:w-52'; + return 'lsd:text-base'; } }; const getPaddingClasses = () => { switch (size) { case 'large': - return 'lsd:px-4 lsd:py-4'; + return 'lsd:py-4'; case 'medium': - return 'lsd:px-3 lsd:py-3'; + return 'lsd:py-3'; case 'small': - return 'lsd:px-3 lsd:py-3'; + return 'lsd:py-2'; default: - return 'lsd:px-4 lsd:py-4'; + return 'lsd:py-3'; + } + }; + + const getLabelSizeClasses = () => { + switch (size) { + case 'large': + return 'lsd:text-base'; + case 'medium': + return 'lsd:text-sm'; + case 'small': + return 'lsd:text-xs'; + default: + return 'lsd:text-sm'; } }; @@ -60,7 +73,7 @@ const Input = React.forwardRef( {label && ( @@ -80,8 +93,8 @@ const Input = React.forwardRef( type={type} id={finalId} className={cn( - 'file:lsd:text-lsd-text placeholder:lsd:text-lsd-text-primary placeholder:lsd:opacity-30 selection:lsd:bg-lsd-primary selection:lsd:text-lsd-surface-primary lsd:border-none lsd:outline-none lsd:bg-transparent lsd:text-lsd-text-primary lsd:w-full lsd:h-full lsd:text-base file:lsd:inline-flex file:lsd:h-7 file:lsd:border-0 file:lsd:bg-transparent file:lsd:text-base file:lsd:font-medium lsd:disabled:pointer-events-none lsd:disabled:cursor-not-allowed lsd:disabled:opacity-34', - 'focus-visible:lsd:outline-none', + 'file:lsd:text-lsd-text placeholder:lsd:text-lsd-text-primary placeholder:lsd:opacity-30 selection:lsd:bg-lsd-primary selection:lsd:text-lsd-surface-primary lsd:border-none lsd:outline-none lsd:bg-transparent lsd:text-lsd-text-primary lsd:w-full lsd:h-full file:lsd:inline-flex file:lsd:h-7 file:lsd:border-0 file:lsd:bg-transparent file:lsd:text-base file:lsd:font-medium lsd:disabled:pointer-events-none lsd:disabled:cursor-not-allowed lsd:disabled:opacity-34', + 'focus-visible:lsd:outline-none lsd:px-4', error && 'lsd:line-through', getPaddingClasses(), )} From f6986414fe8e38431888cac6cefdf18eca2a516c Mon Sep 17 00:00:00 2001 From: Xavier Saliniere Date: Sun, 28 Dec 2025 20:09:51 -0500 Subject: [PATCH 3/4] refactor(input): rename getPaddingClasses to getVerticalPaddingClasses --- src/components/ui/input.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/ui/input.tsx b/src/components/ui/input.tsx index 76b06f6..4c46ea2 100644 --- a/src/components/ui/input.tsx +++ b/src/components/ui/input.tsx @@ -42,7 +42,7 @@ const Input = React.forwardRef( } }; - const getPaddingClasses = () => { + const getVerticalPaddingClasses = () => { switch (size) { case 'large': return 'lsd:py-4'; @@ -96,7 +96,7 @@ const Input = React.forwardRef( 'file:lsd:text-lsd-text placeholder:lsd:text-lsd-text-primary placeholder:lsd:opacity-30 selection:lsd:bg-lsd-primary selection:lsd:text-lsd-surface-primary lsd:border-none lsd:outline-none lsd:bg-transparent lsd:text-lsd-text-primary lsd:w-full lsd:h-full file:lsd:inline-flex file:lsd:h-7 file:lsd:border-0 file:lsd:bg-transparent file:lsd:text-base file:lsd:font-medium lsd:disabled:pointer-events-none lsd:disabled:cursor-not-allowed lsd:disabled:opacity-34', 'focus-visible:lsd:outline-none lsd:px-4', error && 'lsd:line-through', - getPaddingClasses(), + getVerticalPaddingClasses(), )} {...props} /> From 8a628e3cd4e905c241506af6b738e3b293ac993a Mon Sep 17 00:00:00 2001 From: Xavier Saliniere Date: Sun, 28 Dec 2025 20:15:09 -0500 Subject: [PATCH 4/4] refactor(input): rename getSizeClasses to getTextSizeClasses and apply it on input El directly --- src/components/ui/input.tsx | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/components/ui/input.tsx b/src/components/ui/input.tsx index 4c46ea2..a6b0de6 100644 --- a/src/components/ui/input.tsx +++ b/src/components/ui/input.tsx @@ -29,16 +29,16 @@ const Input = React.forwardRef( const inputId = React.useId(); const finalId = id || inputId; - const getSizeClasses = () => { + const getTextSizeClasses = () => { switch (size) { case 'large': - return 'lsd:text-lg'; + return 'lsd:text-lg file:lsd:text-lg'; case 'medium': - return 'lsd:text-base'; + return 'lsd:text-base file:lsd:text-base'; case 'small': - return 'lsd:text-sm'; + return 'lsd:text-sm file:lsd:text-sm'; default: - return 'lsd:text-base'; + return 'lsd:text-base file:lsd:text-base'; } }; @@ -85,7 +85,6 @@ const Input = React.forwardRef( ? 'lsd:border lsd:border-lsd-border-primary lsd:rounded' : 'lsd:border lsd:border-transparent lsd:border-b-lsd-border-primary', error && 'lsd:border-lsd-destructive', - getSizeClasses(), )} > ( type={type} id={finalId} className={cn( - 'file:lsd:text-lsd-text placeholder:lsd:text-lsd-text-primary placeholder:lsd:opacity-30 selection:lsd:bg-lsd-primary selection:lsd:text-lsd-surface-primary lsd:border-none lsd:outline-none lsd:bg-transparent lsd:text-lsd-text-primary lsd:w-full lsd:h-full file:lsd:inline-flex file:lsd:h-7 file:lsd:border-0 file:lsd:bg-transparent file:lsd:text-base file:lsd:font-medium lsd:disabled:pointer-events-none lsd:disabled:cursor-not-allowed lsd:disabled:opacity-34', + 'file:lsd:text-lsd-text placeholder:lsd:text-lsd-text-primary placeholder:lsd:opacity-30 selection:lsd:bg-lsd-primary selection:lsd:text-lsd-surface-primary lsd:border-none lsd:outline-none lsd:bg-transparent lsd:text-lsd-text-primary lsd:w-full lsd:h-full file:lsd:inline-flex file:lsd:h-7 file:lsd:border-0 file:lsd:bg-transparent file:lsd:font-medium lsd:disabled:pointer-events-none lsd:disabled:cursor-not-allowed lsd:disabled:opacity-34', 'focus-visible:lsd:outline-none lsd:px-4', error && 'lsd:line-through', + getTextSizeClasses(), getVerticalPaddingClasses(), )} {...props}