@latte-macchiat-io/latte-vanilla-components 0.0.200 → 0.0.202

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@latte-macchiat-io/latte-vanilla-components",
3
- "version": "0.0.200",
3
+ "version": "0.0.202",
4
4
  "description": "Beautiful components for amazing projects, with a touch of Vanilla 🥤",
5
5
  "type": "module",
6
6
  "main": "./src/index.ts",
@@ -1,4 +1,2 @@
1
- // export { Actions } from '.';
2
- // export type { ActionsProps } from '.';
3
-
4
- // export { styles as ActionsStyles } from './styles.css';
1
+ export { Actions, type ActionsProps } from './';
2
+ export { type ActionsVariants } from './styles.css';
@@ -1,20 +1,12 @@
1
- 'use client';
2
-
3
1
  import { clsx } from 'clsx';
4
- import { forwardRef } from 'react';
5
2
 
6
3
  import { actionsRecipe, type ActionsVariants } from './styles.css';
7
4
 
8
5
  export type ActionsProps = React.HTMLAttributes<HTMLDivElement> &
9
6
  ActionsVariants & {
10
- css?: string;
11
7
  children: React.ReactNode;
12
8
  };
13
9
 
14
- export const Actions = forwardRef<HTMLDivElement, ActionsProps>(({ align, direction, css, className, children }, ref) => (
15
- <div ref={ref} className={clsx(actionsRecipe({ align, direction }), css, className)}>
16
- {children}
17
- </div>
18
- ));
19
-
20
- Actions.displayName = 'Actions';
10
+ export const Actions = ({ align, direction, className, children }: ActionsProps) => (
11
+ <div className={clsx(actionsRecipe({ align, direction }), className)}>{children}</div>
12
+ );
@@ -0,0 +1,35 @@
1
+ import type { Meta, StoryObj } from '@storybook/react-vite';
2
+ import React from 'react';
3
+
4
+ import { Button } from '../Button';
5
+ import { Actions } from '.';
6
+
7
+ // More on how to set up stories at: https://storybook.js.org/docs/writing-stories#default-export
8
+ const meta: Meta<typeof Actions> = {
9
+ title: 'Latte Components / 1. Global / Actions',
10
+ component: Actions,
11
+ parameters: {
12
+ // Optional parameter to center the component in the Canvas. More info: https://storybook.js.org/docs/configure/story-layout
13
+ layout: 'centered',
14
+ },
15
+ // This component will have an automatically generated Autodocs entry: https://storybook.js.org/docs/writing-docs/autodocs
16
+ tags: ['autodocs'],
17
+ // More on argTypes: https://storybook.js.org/docs/api/argtypes
18
+ argTypes: {},
19
+ // Use `fn` to spy on the onClick arg, which will appear in the actions panel once invoked: https://storybook.js.org/docs/essentials/actions#action-args
20
+ };
21
+
22
+ export default meta;
23
+ type Story = StoryObj<typeof meta>;
24
+
25
+ // More on writing stories with args: https://storybook.js.org/docs/writing-stories/args
26
+ export const Default: Story = {
27
+ args: {
28
+ children: (
29
+ <>
30
+ <Button>hello</Button>
31
+ <Button>hello</Button>
32
+ </>
33
+ ),
34
+ },
35
+ };
@@ -35,6 +35,7 @@ export const actionsRecipe = recipe({
35
35
  justifyContent: 'flex-end',
36
36
  },
37
37
  },
38
+
38
39
  direction: {
39
40
  row: {
40
41
  flexDirection: 'row',
@@ -0,0 +1,40 @@
1
+ const themeActionsBase = {
2
+ actions: {
3
+ gap: {
4
+ mobile: '15px',
5
+ sm: '15px',
6
+ md: '30px',
7
+ lg: '30px',
8
+ xl: '50px',
9
+ '2xl': '50px',
10
+ },
11
+ paddingTop: {
12
+ mobile: '15px',
13
+ sm: '15px',
14
+ md: '30px',
15
+ lg: '30px',
16
+ xl: '50px',
17
+ '2xl': '50px',
18
+ },
19
+ paddingBottom: {
20
+ mobile: '15px',
21
+ sm: '15px',
22
+ md: '30px',
23
+ lg: '30px',
24
+ xl: '50px',
25
+ '2xl': '50px',
26
+ },
27
+ },
28
+ };
29
+
30
+ export const themeActionsLight = {
31
+ actions: {
32
+ ...themeActionsBase.actions,
33
+ },
34
+ };
35
+
36
+ export const themeActionsDark = {
37
+ actions: {
38
+ ...themeActionsBase.actions,
39
+ },
40
+ };
@@ -1,5 +1,2 @@
1
- // export { Button } from './Button';
2
- // export type { ButtonProps } from '.';
3
- // export { Type as ButtonType, Size as ButtonSize, Style as ButtonStyle, Variant as ButtonVariant } from './types';
4
-
5
- // export { styles as ButtonStyles } from './styles.css';
1
+ export { Button, type ButtonProps } from './';
2
+ export { type ButtonVariants } from './styles.css';
@@ -1,29 +1,32 @@
1
1
  'use client';
2
2
 
3
3
  import { clsx } from 'clsx';
4
- import { type ComponentPropsWithoutRef, forwardRef } from 'react';
5
4
 
6
5
  import { buttonRecipe, type ButtonVariants } from './styles.css';
7
6
 
8
- export type ButtonProps = ComponentPropsWithoutRef<'button'> &
7
+ export type ButtonProps = React.HTMLAttributes<HTMLButtonElement> &
9
8
  ButtonVariants & {
10
9
  css?: string;
11
10
  isPending?: boolean;
12
11
  isDisabled?: boolean;
12
+ translation?: {
13
+ isPendingLabel: string;
14
+ };
13
15
  };
14
16
 
15
- export const Button = forwardRef<HTMLButtonElement, ButtonProps>(
16
- ({ variant, style, size, fullWidth, isPending = false, isDisabled, css, className, children, onClick }, ref) => {
17
- return (
18
- <button
19
- ref={ref}
20
- onClick={onClick}
21
- disabled={isDisabled || isPending}
22
- className={clsx(buttonRecipe({ variant, style, size, fullWidth }), css, className)}>
23
- {isPending ? 'Loading…' : children}
24
- </button>
25
- );
26
- }
17
+ export const Button = ({
18
+ size,
19
+ style,
20
+ variant,
21
+ onClick,
22
+ children,
23
+ fullWidth,
24
+ className,
25
+ isPending = false,
26
+ isDisabled = false,
27
+ translation = { isPendingLabel: 'Loading...' },
28
+ }: ButtonProps) => (
29
+ <button onClick={onClick} disabled={isDisabled || isPending} className={clsx(buttonRecipe({ variant, style, size, fullWidth }), className)}>
30
+ {isPending ? translation.isPendingLabel : children}
31
+ </button>
27
32
  );
28
-
29
- Button.displayName = 'Button';
@@ -1,235 +1,28 @@
1
1
  import type { Meta, StoryObj } from '@storybook/react-vite';
2
- import React from 'react';
3
- import { Section } from '../Section';
2
+
4
3
  import { Button } from '.';
5
4
 
5
+ // More on how to set up stories at: https://storybook.js.org/docs/writing-stories#default-export
6
6
  const meta: Meta<typeof Button> = {
7
- title: 'Interactive Components/Button',
7
+ title: 'Latte Components / 1. Global / Button',
8
8
  component: Button,
9
9
  parameters: {
10
+ // Optional parameter to center the component in the Canvas. More info: https://storybook.js.org/docs/configure/story-layout
10
11
  layout: 'centered',
11
- docs: {
12
- description: {
13
- component: `
14
- The Button component is a versatile, accessible button that supports multiple variants, sizes, and states.
15
-
16
- ## Features
17
- - Multiple variants (primary, secondary, ghost, destructive)
18
- - Different sizes (small, medium, large)
19
- - Full width option
20
- - Loading/pending state
21
- - Fully accessible (ARIA compliant)
22
- - Theme-aware colors
23
- - TypeScript support
24
- `,
25
- },
26
- },
27
12
  },
13
+ // This component will have an automatically generated Autodocs entry: https://storybook.js.org/docs/writing-docs/autodocs
28
14
  tags: ['autodocs'],
29
- argTypes: {
30
- variant: {
31
- control: 'select',
32
- options: ['primary', 'secondary', 'ghost', 'destructive'],
33
- description: 'Visual style of the button',
34
- },
35
- size: {
36
- control: 'select',
37
- options: ['small', 'medium', 'large'],
38
- description: 'Size of the button',
39
- },
40
- fullWidth: {
41
- control: 'boolean',
42
- description: 'Whether the button should take full width of its container',
43
- },
44
- isPending: {
45
- control: 'boolean',
46
- description: 'Shows loading state',
47
- },
48
- disabled: {
49
- control: 'boolean',
50
- description: 'Disables the button',
51
- },
52
- children: {
53
- control: 'text',
54
- description: 'Button content',
55
- },
56
- },
15
+ // More on argTypes: https://storybook.js.org/docs/api/argtypes
16
+ argTypes: {},
17
+ // Use `fn` to spy on the onClick arg, which will appear in the actions panel once invoked: https://storybook.js.org/docs/essentials/actions#action-args
57
18
  };
58
19
 
59
20
  export default meta;
60
- type Story = StoryObj<typeof Button>;
61
-
62
- // Basic Stories
63
- export const Primary: Story = {
64
- args: {
65
- variant: 'primary',
66
- children: 'Primary Button',
67
- },
68
- };
69
-
70
- export const Secondary: Story = {
71
- args: {
72
- variant: 'secondary',
73
- children: 'Secondary Button',
74
- },
75
- };
76
-
77
- // Size Variants
78
- export const Small: Story = {
79
- args: {
80
- variant: 'primary',
81
- size: 'sm',
82
- children: 'Small Button',
83
- },
84
- };
21
+ type Story = StoryObj<typeof meta>;
85
22
 
86
- export const Medium: Story = {
23
+ // More on writing stories with args: https://storybook.js.org/docs/writing-stories/args
24
+ export const Default: Story = {
87
25
  args: {
88
- variant: 'primary',
89
- size: 'md',
90
- children: 'Medium Button',
91
- },
92
- };
93
-
94
- export const Large: Story = {
95
- args: {
96
- variant: 'primary',
97
- size: 'lg',
98
- children: 'Large Button',
99
- },
100
- };
101
-
102
- // States
103
- export const Loading: Story = {
104
- args: {
105
- variant: 'primary',
106
- children: 'Loading Button',
107
- isPending: true,
108
- },
109
- };
110
-
111
- export const Disabled: Story = {
112
- args: {
113
- variant: 'primary',
114
- children: 'Disabled Button',
115
- disabled: true,
116
- },
117
- };
118
-
119
- export const FullWidth: Story = {
120
- args: {
121
- variant: 'primary',
122
- children: 'Full Width Button',
123
- fullWidth: true,
124
- },
125
- parameters: {
126
- layout: 'padded',
127
- },
128
- };
129
-
130
- // All Variants Showcase
131
- export const AllVariants: Story = {
132
- render: () => (
133
- <Section>
134
- <div style={{ display: 'flex', gap: '1rem', flexWrap: 'wrap', alignItems: 'center' }}>
135
- <Button variant="primary">Primary</Button>
136
- <Button variant="secondary">Secondary</Button>
137
- </div>
138
- </Section>
139
- ),
140
- parameters: {
141
- docs: {
142
- description: {
143
- story: 'All available button variants displayed together.',
144
- },
145
- },
146
- },
147
- };
148
-
149
- // All Sizes Showcase
150
- export const AllSizes: Story = {
151
- render: () => (
152
- <Section>
153
- <div style={{ display: 'flex', gap: '1rem', alignItems: 'center' }}>
154
- <Button variant="primary" size="sm">
155
- Small
156
- </Button>
157
- <Button variant="primary" size="md">
158
- Medium
159
- </Button>
160
- <Button variant="primary" size="lg">
161
- Large
162
- </Button>
163
- </div>
164
- </Section>
165
- ),
166
- parameters: {
167
- docs: {
168
- description: {
169
- story: 'All available button sizes displayed together.',
170
- },
171
- },
172
- },
173
- };
174
-
175
- // Interactive Example
176
- export const InteractiveExample: Story = {
177
- render: () => (
178
- <Section>
179
- <div style={{ display: 'grid', gap: '2rem' }}>
180
- <div>
181
- <h3>Call to Action</h3>
182
- <div style={{ display: 'flex', gap: '1rem' }}>
183
- <Button variant="primary" size="lg">
184
- Get Started
185
- </Button>
186
- <Button variant="secondary" size="lg">
187
- Learn More
188
- </Button>
189
- </div>
190
- </div>
191
-
192
- <div>
193
- <h3>Form Actions</h3>
194
- <div style={{ display: 'flex', gap: '0.5rem' }}>
195
- <Button variant="primary">Save</Button>
196
- <Button variant="secondary">Cancel</Button>
197
- </div>
198
- </div>
199
-
200
- <div>
201
- <h3>Navigation</h3>
202
- <div style={{ display: 'flex', gap: '0.5rem' }}>
203
- <Button variant="primary">Next →</Button>
204
- </div>
205
- </div>
206
- </div>
207
- </Section>
208
- ),
209
- parameters: {
210
- docs: {
211
- description: {
212
- story: 'Real-world usage examples showing different button combinations.',
213
- },
214
- },
215
- },
216
- };
217
-
218
- // With Custom Styling
219
- export const WithCustomStyling: Story = {
220
- render: () => (
221
- <Section>
222
- <div style={{ display: 'flex', gap: '1rem', flexDirection: 'column' }}>
223
- <Button variant="primary">Rounded Button</Button>
224
- <Button variant="secondary">Large Text Button</Button>
225
- </div>
226
- </Section>
227
- ),
228
- parameters: {
229
- docs: {
230
- description: {
231
- story: 'Buttons with custom styling using sprinkles utilities.',
232
- },
233
- },
26
+ children: 'Button',
234
27
  },
235
28
  };
@@ -0,0 +1,149 @@
1
+ const themeButtonBase = {
2
+ button: {
3
+ minWidth: '100',
4
+ fontWeight: '500',
5
+ letterSpacing: '0.2',
6
+ borderRadius: '15px',
7
+ fontFamily: 'system-ui, sans-serif',
8
+ transition: 'all 0.3s ease-in-out',
9
+
10
+ size: {
11
+ small: {
12
+ paddingTop: {
13
+ mobile: '5px',
14
+ sm: '5px',
15
+ md: '5px',
16
+ lg: '5px',
17
+ xl: '5px',
18
+ '2xl': '5px',
19
+ },
20
+ paddingLeft: {
21
+ mobile: '5px',
22
+ sm: '5px',
23
+ md: '5px',
24
+ lg: '5px',
25
+ xl: '5px',
26
+ '2xl': '5px',
27
+ },
28
+ paddingRight: {
29
+ mobile: '5px',
30
+ sm: '5px',
31
+ md: '5px',
32
+ lg: '5px',
33
+ xl: '5px',
34
+ '2xl': '5px',
35
+ },
36
+ paddingBottom: {
37
+ mobile: '5px',
38
+ sm: '5px',
39
+ md: '5px',
40
+ lg: '5px',
41
+ xl: '5px',
42
+ '2xl': '5px',
43
+ },
44
+ },
45
+ medium: {
46
+ paddingTop: {
47
+ mobile: '5px',
48
+ sm: '5px',
49
+ md: '10px',
50
+ lg: '10px',
51
+ xl: '15px',
52
+ '2xl': '15px',
53
+ },
54
+ paddingLeft: {
55
+ mobile: '5px',
56
+ sm: '5px',
57
+ md: '10px',
58
+ lg: '10px',
59
+ xl: '15px',
60
+ '2xl': '15px',
61
+ },
62
+ paddingRight: {
63
+ mobile: '5px',
64
+ sm: '5px',
65
+ md: '10px',
66
+ lg: '10px',
67
+ xl: '15px',
68
+ '2xl': '15px',
69
+ },
70
+ paddingBottom: {
71
+ mobile: '5px',
72
+ sm: '5px',
73
+ md: '10px',
74
+ lg: '10px',
75
+ xl: '15px',
76
+ '2xl': '15px',
77
+ },
78
+ },
79
+ large: {
80
+ paddingTop: {
81
+ mobile: '10px',
82
+ sm: '10px',
83
+ md: '15px',
84
+ lg: '15px',
85
+ xl: '20px',
86
+ '2xl': '20px',
87
+ },
88
+ paddingLeft: {
89
+ mobile: '10px',
90
+ sm: '10px',
91
+ md: '15px',
92
+ lg: '15px',
93
+ xl: '20px',
94
+ '2xl': '20px',
95
+ },
96
+ paddingRight: {
97
+ mobile: '10px',
98
+ sm: '10px',
99
+ md: '15px',
100
+ lg: '15px',
101
+ xl: '20px',
102
+ '2xl': '20px',
103
+ },
104
+ paddingBottom: {
105
+ mobile: '10px',
106
+ sm: '10px',
107
+ md: '15px',
108
+ lg: '15px',
109
+ xl: '20px',
110
+ '2xl': '20px',
111
+ },
112
+ },
113
+ },
114
+ },
115
+ };
116
+
117
+ export const themeButtonLight = {
118
+ button: {
119
+ ...themeButtonBase.button,
120
+
121
+ variant: {
122
+ primary: {
123
+ color: '#FF7377',
124
+ backgroundColor: '#FF7377',
125
+ },
126
+ secondary: {
127
+ color: '#FF7377',
128
+ backgroundColor: '#FF7377',
129
+ },
130
+ },
131
+ },
132
+ };
133
+
134
+ export const themeButtonDark = {
135
+ button: {
136
+ ...themeButtonBase.button,
137
+
138
+ variant: {
139
+ primary: {
140
+ color: '#FF7377',
141
+ backgroundColor: '#FF7377',
142
+ },
143
+ secondary: {
144
+ color: '#FF7377',
145
+ backgroundColor: '#FF7377',
146
+ },
147
+ },
148
+ },
149
+ };
@@ -227,5 +227,3 @@ export const Carousel = forwardRef<HTMLDivElement, CarouselProps>(
227
227
  );
228
228
  }
229
229
  );
230
-
231
- Carousel.displayName = 'Carousel';
@@ -32,5 +32,3 @@ export const Columns = forwardRef<HTMLDivElement, ColumnsProps>(({ align, vAlign
32
32
  </div>
33
33
  );
34
34
  });
35
-
36
- Columns.displayName = 'Columns';
@@ -198,5 +198,3 @@ export const ConsentCookie = forwardRef<HTMLDivElement, ConsentCookieProps>(
198
198
  );
199
199
  }
200
200
  );
201
-
202
- ConsentCookie.displayName = 'ConsentCookie';
@@ -15,5 +15,3 @@ export const Footer = forwardRef<HTMLDivElement, FooterProps>(({ children, css,
15
15
  </footer>
16
16
  );
17
17
  });
18
-
19
- Footer.displayName = 'Footer';
@@ -123,5 +123,3 @@ export const Form = forwardRef<HTMLFormElement, FormProps>(
123
123
  );
124
124
  }
125
125
  );
126
-
127
- Form.displayName = 'Form';
@@ -133,5 +133,3 @@ export const Row = forwardRef<HTMLDivElement, RowProps>(
133
133
  );
134
134
  }
135
135
  );
136
-
137
- Row.displayName = 'Row';
@@ -135,5 +135,3 @@ export const Input = forwardRef<HTMLInputElement, InputProps>(
135
135
  );
136
136
  }
137
137
  );
138
-
139
- Input.displayName = 'Input';
@@ -129,5 +129,3 @@ export const Label = forwardRef<HTMLLabelElement, LabelProps>(
129
129
  );
130
130
  }
131
131
  );
132
-
133
- Label.displayName = 'Label';
@@ -131,5 +131,3 @@ export const Textarea = forwardRef<HTMLTextAreaElement, TextareaProps>(
131
131
  );
132
132
  }
133
133
  );
134
-
135
- Textarea.displayName = 'Textarea';
@@ -49,5 +49,3 @@ export const Header = forwardRef<HTMLDivElement, HeaderProps>(
49
49
  );
50
50
  }
51
51
  );
52
-
53
- Header.displayName = 'Header';
@@ -47,5 +47,3 @@ export const KeyNumber = forwardRef<HTMLDivElement, KeyNumberProps>(
47
47
  );
48
48
  }
49
49
  );
50
-
51
- KeyNumber.displayName = 'KeyNumber';
@@ -76,5 +76,3 @@ export const LanguageSwitcher = forwardRef<HTMLDivElement, LanguageSwitcherProps
76
76
  );
77
77
  }
78
78
  );
79
-
80
- LanguageSwitcher.displayName = 'LanguageSwitcher';
@@ -38,5 +38,3 @@ export const Modal = forwardRef<HTMLDivElement, ModalProps>(({ triggerLabel, css
38
38
  </>
39
39
  );
40
40
  });
41
-
42
- Modal.displayName = 'Modal';
@@ -18,5 +18,3 @@ export const Nav = forwardRef<HTMLDivElement, NavProps>(({ children, css, classN
18
18
  </div>
19
19
  );
20
20
  });
21
-
22
- Nav.displayName = 'Nav';
@@ -13,5 +13,3 @@ export const NavLegal = forwardRef<HTMLDivElement, NavLegalProps>(({ css, classN
13
13
  {children}
14
14
  </div>
15
15
  ));
16
-
17
- NavLegal.displayName = 'NavLegal';
@@ -28,5 +28,3 @@ export const NavSocial = forwardRef<HTMLDivElement, NavSocialProps>(({ navSocial
28
28
  </div>
29
29
  );
30
30
  });
31
-
32
- NavSocial.displayName = 'NavSocial';
@@ -16,5 +16,3 @@ export const Section = forwardRef<HTMLElement, SectionProps>(
16
16
  </section>
17
17
  )
18
18
  );
19
-
20
- Section.displayName = 'Section';
@@ -1,7 +1,5 @@
1
1
  'use client';
2
2
 
3
- /* eslint-disable jsx-a11y/media-has-caption */
4
-
5
3
  import { clsx } from 'clsx';
6
4
  import { forwardRef, useEffect, useRef, useState } from 'react';
7
5
  import {
@@ -113,5 +111,3 @@ export const Video = forwardRef<HTMLDivElement, VideoProps>(
113
111
  );
114
112
  }
115
113
  );
116
-
117
- Video.displayName = 'Video';
package/src/index.ts CHANGED
@@ -10,8 +10,8 @@ export { breakpoints, queries } from './styles/mediaqueries';
10
10
  // Components
11
11
  export { ThemeToggle } from './components/ThemeToggle';
12
12
 
13
- export { Button, type ButtonProps } from './components/Button';
14
- export { type ButtonVariants } from './components/Button/styles.css';
13
+ export * from './components/Button/export';
14
+ export * from './components/Actions/export';
15
15
 
16
16
  export { Section, type SectionProps } from './components/Section';
17
17
  export { type SectionVariants } from './components/Section/styles.css';
@@ -35,9 +35,6 @@ export { Logo, type LogoProps } from './components/Logo';
35
35
 
36
36
  export { Columns, type ColumnsProps } from './components/Columns';
37
37
 
38
- export { Actions, type ActionsProps } from './components/Actions';
39
- export { type ActionsVariants } from './components/Actions/styles.css';
40
-
41
38
  export { Carousel, type CarouselProps } from './components/Carousel';
42
39
  export { type CarouselVariants } from './components/Carousel/styles.css';
43
40
 
@@ -1,3 +1,6 @@
1
+ import { themeActionsDark, themeActionsLight } from '../components/Actions/theme';
2
+ import { themeButtonDark, themeButtonLight } from '../components/Button/theme';
3
+
1
4
  // Base theme values that can be imported and extended by apps
2
5
  export const baseLightTheme = {
3
6
  colors: {
@@ -208,157 +211,8 @@ export const baseLightTheme = {
208
211
  },
209
212
  },
210
213
 
211
- actions: {
212
- gap: {
213
- mobile: '15px',
214
- sm: '15px',
215
- md: '30px',
216
- lg: '30px',
217
- xl: '50px',
218
- '2xl': '50px',
219
- },
220
- paddingTop: {
221
- mobile: '15px',
222
- sm: '15px',
223
- md: '30px',
224
- lg: '30px',
225
- xl: '50px',
226
- '2xl': '50px',
227
- },
228
- paddingBottom: {
229
- mobile: '15px',
230
- sm: '15px',
231
- md: '30px',
232
- lg: '30px',
233
- xl: '50px',
234
- '2xl': '50px',
235
- },
236
- },
237
-
238
- button: {
239
- minWidth: '100',
240
- fontWeight: '500',
241
- letterSpacing: '0.2',
242
- borderRadius: '15px',
243
- fontFamily: 'system-ui, sans-serif',
244
- transition: 'all 0.3s ease-in-out',
245
-
246
- variant: {
247
- primary: {
248
- color: '#FF7377',
249
- backgroundColor: '#FF7377',
250
- },
251
- secondary: {
252
- color: '#FF7377',
253
- backgroundColor: '#FF7377',
254
- },
255
- },
256
-
257
- size: {
258
- small: {
259
- paddingTop: {
260
- mobile: '5px',
261
- sm: '5px',
262
- md: '5px',
263
- lg: '5px',
264
- xl: '5px',
265
- '2xl': '5px',
266
- },
267
- paddingLeft: {
268
- mobile: '5px',
269
- sm: '5px',
270
- md: '5px',
271
- lg: '5px',
272
- xl: '5px',
273
- '2xl': '5px',
274
- },
275
- paddingRight: {
276
- mobile: '5px',
277
- sm: '5px',
278
- md: '5px',
279
- lg: '5px',
280
- xl: '5px',
281
- '2xl': '5px',
282
- },
283
- paddingBottom: {
284
- mobile: '5px',
285
- sm: '5px',
286
- md: '5px',
287
- lg: '5px',
288
- xl: '5px',
289
- '2xl': '5px',
290
- },
291
- },
292
- medium: {
293
- paddingTop: {
294
- mobile: '5px',
295
- sm: '5px',
296
- md: '10px',
297
- lg: '10px',
298
- xl: '15px',
299
- '2xl': '15px',
300
- },
301
- paddingLeft: {
302
- mobile: '5px',
303
- sm: '5px',
304
- md: '10px',
305
- lg: '10px',
306
- xl: '15px',
307
- '2xl': '15px',
308
- },
309
- paddingRight: {
310
- mobile: '5px',
311
- sm: '5px',
312
- md: '10px',
313
- lg: '10px',
314
- xl: '15px',
315
- '2xl': '15px',
316
- },
317
- paddingBottom: {
318
- mobile: '5px',
319
- sm: '5px',
320
- md: '10px',
321
- lg: '10px',
322
- xl: '15px',
323
- '2xl': '15px',
324
- },
325
- },
326
- large: {
327
- paddingTop: {
328
- mobile: '10px',
329
- sm: '10px',
330
- md: '15px',
331
- lg: '15px',
332
- xl: '20px',
333
- '2xl': '20px',
334
- },
335
- paddingLeft: {
336
- mobile: '10px',
337
- sm: '10px',
338
- md: '15px',
339
- lg: '15px',
340
- xl: '20px',
341
- '2xl': '20px',
342
- },
343
- paddingRight: {
344
- mobile: '10px',
345
- sm: '10px',
346
- md: '15px',
347
- lg: '15px',
348
- xl: '20px',
349
- '2xl': '20px',
350
- },
351
- paddingBottom: {
352
- mobile: '10px',
353
- sm: '10px',
354
- md: '15px',
355
- lg: '15px',
356
- xl: '20px',
357
- '2xl': '20px',
358
- },
359
- },
360
- },
361
- },
214
+ ...themeActionsLight,
215
+ ...themeButtonLight,
362
216
 
363
217
  icon: {
364
218
  color: '#FF7377',
@@ -851,161 +705,12 @@ export const baseDarkTheme = {
851
705
  },
852
706
  },
853
707
 
854
- button: {
855
- minWidth: '100',
856
- fontWeight: '500',
857
- letterSpacing: '0.2',
858
- borderRadius: '15px',
859
- fontFamily: 'system-ui, sans-serif',
860
- transition: 'all 0.3s ease-in-out',
861
-
862
- variant: {
863
- primary: {
864
- color: '#FF7377',
865
- backgroundColor: '#FF7377',
866
- },
867
- secondary: {
868
- color: '#FF7377',
869
- backgroundColor: '#FF7377',
870
- },
871
- },
872
-
873
- size: {
874
- small: {
875
- paddingTop: {
876
- mobile: '5px',
877
- sm: '5px',
878
- md: '5px',
879
- lg: '5px',
880
- xl: '5px',
881
- '2xl': '5px',
882
- },
883
- paddingLeft: {
884
- mobile: '5px',
885
- sm: '5px',
886
- md: '5px',
887
- lg: '5px',
888
- xl: '5px',
889
- '2xl': '5px',
890
- },
891
- paddingRight: {
892
- mobile: '5px',
893
- sm: '5px',
894
- md: '5px',
895
- lg: '5px',
896
- xl: '5px',
897
- '2xl': '5px',
898
- },
899
- paddingBottom: {
900
- mobile: '5px',
901
- sm: '5px',
902
- md: '5px',
903
- lg: '5px',
904
- xl: '5px',
905
- '2xl': '5px',
906
- },
907
- },
908
- medium: {
909
- paddingTop: {
910
- mobile: '5px',
911
- sm: '5px',
912
- md: '10px',
913
- lg: '10px',
914
- xl: '15px',
915
- '2xl': '15px',
916
- },
917
- paddingLeft: {
918
- mobile: '5px',
919
- sm: '5px',
920
- md: '10px',
921
- lg: '10px',
922
- xl: '15px',
923
- '2xl': '15px',
924
- },
925
- paddingRight: {
926
- mobile: '5px',
927
- sm: '5px',
928
- md: '10px',
929
- lg: '10px',
930
- xl: '15px',
931
- '2xl': '15px',
932
- },
933
- paddingBottom: {
934
- mobile: '5px',
935
- sm: '5px',
936
- md: '10px',
937
- lg: '10px',
938
- xl: '15px',
939
- '2xl': '15px',
940
- },
941
- },
942
- large: {
943
- paddingTop: {
944
- mobile: '10px',
945
- sm: '10px',
946
- md: '15px',
947
- lg: '15px',
948
- xl: '20px',
949
- '2xl': '20px',
950
- },
951
- paddingLeft: {
952
- mobile: '10px',
953
- sm: '10px',
954
- md: '15px',
955
- lg: '15px',
956
- xl: '20px',
957
- '2xl': '20px',
958
- },
959
- paddingRight: {
960
- mobile: '10px',
961
- sm: '10px',
962
- md: '15px',
963
- lg: '15px',
964
- xl: '20px',
965
- '2xl': '20px',
966
- },
967
- paddingBottom: {
968
- mobile: '10px',
969
- sm: '10px',
970
- md: '15px',
971
- lg: '15px',
972
- xl: '20px',
973
- '2xl': '20px',
974
- },
975
- },
976
- },
977
- },
978
-
979
708
  icon: {
980
709
  color: '#FF7377',
981
710
  },
982
711
 
983
- actions: {
984
- gap: {
985
- mobile: '15px',
986
- sm: '15px',
987
- md: '30px',
988
- lg: '30px',
989
- xl: '50px',
990
- '2xl': '50px',
991
- },
992
- paddingTop: {
993
- mobile: '15px',
994
- sm: '15px',
995
- md: '30px',
996
- lg: '30px',
997
- xl: '50px',
998
- '2xl': '50px',
999
- },
1000
- paddingBottom: {
1001
- mobile: '15px',
1002
- sm: '15px',
1003
- md: '30px',
1004
- lg: '30px',
1005
- xl: '50px',
1006
- '2xl': '50px',
1007
- },
1008
- },
712
+ ...themeActionsDark,
713
+ ...themeButtonDark,
1009
714
 
1010
715
  modal: {
1011
716
  border: 'none',