@app-studio/web 0.9.79 → 0.9.81
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/dist/components/Accordion/Accordion/Accordion.type.d.ts +1 -1
- package/dist/components/Accordion/Accordion/Accordion.view.d.ts +1 -1
- package/dist/components/Badge/Badge/Badge.type.d.ts +1 -1
- package/dist/components/Card/Card/Card.style.d.ts +0 -4
- package/dist/components/Card/Card/Card.type.d.ts +1 -1
- package/dist/components/ChatInput/ChatInput/ChatInput.type.d.ts +1 -1
- package/dist/components/ColorPicker/ColorPicker/ColorPicker.type.d.ts +1 -1
- package/dist/components/EmojiPicker/EmojiPicker/EmojiPicker.type.d.ts +1 -1
- package/dist/components/Form/ColorInput/ColorInput/ColorInput.type.d.ts +1 -1
- package/dist/components/Form/Switch/Switch/Switch.style.d.ts +3 -6
- package/dist/components/Form/TagInput/TagInput/TagInput.type.d.ts +1 -1
- package/dist/components/Form/TextArea/TextArea/TextArea.type.d.ts +1 -1
- package/dist/components/Input/Input.type.d.ts +1 -1
- package/dist/components/Message/Message/Message.type.d.ts +1 -1
- package/dist/components/Modal/Modal/Modal.props.d.ts +2 -2
- package/dist/components/Slider/Slider/Slider.type.d.ts +1 -1
- package/dist/components/Title/Title/Title.props.d.ts +0 -5
- package/dist/components/Toggle/Toggle/Toggle.type.d.ts +1 -1
- package/dist/components/ToggleGroup/ToggleGroup/ToggleGroup.type.d.ts +1 -1
- package/dist/pages/tabs.page.d.ts +1 -1
- package/dist/providers/index.d.ts +5 -0
- package/dist/web.cjs.development.js +170 -155
- package/dist/web.cjs.development.js.map +1 -1
- package/dist/web.cjs.production.min.js +1 -1
- package/dist/web.cjs.production.min.js.map +1 -1
- package/dist/web.esm.js +170 -155
- package/dist/web.esm.js.map +1 -1
- package/dist/web.umd.development.js +170 -155
- package/dist/web.umd.development.js.map +1 -1
- package/dist/web.umd.production.min.js +1 -1
- package/dist/web.umd.production.min.js.map +1 -1
- package/docs/components/Background.mdx +133 -134
- package/docs/components/Button.mdx +154 -131
- package/docs/components/Chart.mdx +93 -368
- package/docs/components/ProgressBar.mdx +77 -394
- package/docs/components/Title.mdx +102 -290
- package/package.json +1 -1
- package/docs/components/ChatInput.mdx +0 -1039
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Title
|
|
2
2
|
|
|
3
|
-
Displays customizable titles with highlighting, responsive sizing, and
|
|
3
|
+
Displays customizable titles with highlighting, responsive sizing, animation effects, and multi-line support.
|
|
4
4
|
|
|
5
5
|
### **Import**
|
|
6
6
|
```tsx
|
|
@@ -13,9 +13,6 @@ import React from 'react';
|
|
|
13
13
|
import { Vertical } from 'app-studio';
|
|
14
14
|
import { Title } from '@app-studio/web';
|
|
15
15
|
|
|
16
|
-
/**
|
|
17
|
-
* Default Title examples showing different sizes
|
|
18
|
-
*/
|
|
19
16
|
export const DefaultTitle = () => {
|
|
20
17
|
return (
|
|
21
18
|
<Vertical gap={32}>
|
|
@@ -23,257 +20,86 @@ export const DefaultTitle = () => {
|
|
|
23
20
|
<Title size="sm">Small Title (sm)</Title>
|
|
24
21
|
<Title size="md">Medium Title (md)</Title>
|
|
25
22
|
<Title size="lg">Large Title (lg)</Title>
|
|
26
|
-
<Title size="xl">Extra Large Title</Title>
|
|
23
|
+
<Title size="xl">Extra Large Title (xl)</Title>
|
|
27
24
|
</Vertical>
|
|
28
25
|
);
|
|
29
26
|
};
|
|
30
27
|
```
|
|
31
28
|
|
|
32
|
-
### **
|
|
33
|
-
|
|
29
|
+
### **Line Breaks**
|
|
30
|
+
Use the pipe character `|` to force a line break within the title text.
|
|
34
31
|
|
|
35
|
-
|
|
36
|
-
|
|
32
|
+
```tsx
|
|
33
|
+
import React from 'react';
|
|
34
|
+
import { Title } from '@app-studio/web';
|
|
35
|
+
|
|
36
|
+
export const MultiLineTitle = () => (
|
|
37
|
+
<Title size="lg" highlightText="Breaking">
|
|
38
|
+
This title is | Breaking Lines | manually
|
|
39
|
+
</Title>
|
|
40
|
+
);
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
### **highlightText & Style**
|
|
46
|
+
Highlight specific words within the title text.
|
|
47
|
+
|
|
48
|
+
- **highlightText:** `string | string[]` - Text to match and highlight.
|
|
49
|
+
- **highlightStyle:** `HighlightStyle` - Visual style (`background`, `gradient`, `underline`, `glow`, `outline`).
|
|
50
|
+
- **highlightColor:** `string` - Primary highlight color.
|
|
51
|
+
- **highlightSecondaryColor:** `string` - Secondary color for gradients.
|
|
37
52
|
|
|
38
53
|
```tsx
|
|
39
54
|
import React from 'react';
|
|
40
55
|
import { Vertical } from 'app-studio';
|
|
41
56
|
import { Title } from '@app-studio/web';
|
|
42
57
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
<
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
{/* Title with animation that plays 3 times */}
|
|
66
|
-
<Title
|
|
67
|
-
animate={{
|
|
68
|
-
from: { transform: 'scale(0.8)' },
|
|
69
|
-
to: { transform: 'scale(1)' },
|
|
70
|
-
duration: '0.8s',
|
|
71
|
-
timingFunction: 'ease-in-out',
|
|
72
|
-
}}
|
|
73
|
-
animationLoop={3}
|
|
74
|
-
highlightText="Three"
|
|
75
|
-
highlightStyle="gradient"
|
|
76
|
-
highlightColor="theme.primary"
|
|
77
|
-
highlightSecondaryColor="theme.secondary"
|
|
78
|
-
>
|
|
79
|
-
Animation Plays Three Times
|
|
80
|
-
</Title>
|
|
81
|
-
|
|
82
|
-
{/* Title with infinite animation loop */}
|
|
83
|
-
<Title
|
|
84
|
-
animate={{
|
|
85
|
-
from: { transform: 'translateX(-10px)' },
|
|
86
|
-
to: { transform: 'translateX(10px)' },
|
|
87
|
-
duration: '2s',
|
|
88
|
-
timingFunction: 'ease-in-out',
|
|
89
|
-
direction: 'alternate',
|
|
90
|
-
}}
|
|
91
|
-
animationLoop="infinite"
|
|
92
|
-
highlightText="Infinite"
|
|
93
|
-
highlightStyle="glow"
|
|
94
|
-
highlightColor="theme.accent"
|
|
95
|
-
>
|
|
96
|
-
Animation Loops Infinitely
|
|
97
|
-
</Title>
|
|
98
|
-
|
|
99
|
-
{/* Highlight animation with different loop control */}
|
|
100
|
-
<Title
|
|
101
|
-
highlightAnimate={{
|
|
102
|
-
from: { transform: 'rotate(-5deg)' },
|
|
103
|
-
to: { transform: 'rotate(5deg)' },
|
|
104
|
-
duration: '1s',
|
|
105
|
-
timingFunction: 'ease-in-out',
|
|
106
|
-
direction: 'alternate',
|
|
107
|
-
}}
|
|
108
|
-
highlightAnimationLoop="infinite"
|
|
109
|
-
highlightText="Wiggling"
|
|
110
|
-
highlightStyle="outline"
|
|
111
|
-
highlightColor="theme.warning"
|
|
112
|
-
>
|
|
113
|
-
Title with Wiggling Highlight
|
|
114
|
-
</Title>
|
|
115
|
-
|
|
116
|
-
{/* Both title and highlight with different loop controls */}
|
|
117
|
-
<Title
|
|
118
|
-
animate={{
|
|
119
|
-
from: { opacity: 0.5 },
|
|
120
|
-
to: { opacity: 1 },
|
|
121
|
-
duration: '2s',
|
|
122
|
-
timingFunction: 'ease-in-out',
|
|
123
|
-
direction: 'alternate',
|
|
124
|
-
}}
|
|
125
|
-
animationLoop="infinite"
|
|
126
|
-
highlightAnimate={{
|
|
127
|
-
from: { backgroundColor: 'theme.primary' },
|
|
128
|
-
to: { backgroundColor: 'theme.secondary' },
|
|
129
|
-
duration: '1.5s',
|
|
130
|
-
timingFunction: 'ease-in-out',
|
|
131
|
-
direction: 'alternate',
|
|
132
|
-
}}
|
|
133
|
-
highlightAnimationLoop="infinite"
|
|
134
|
-
highlightText="Pulsing"
|
|
135
|
-
highlightStyle="background"
|
|
136
|
-
>
|
|
137
|
-
Title with Pulsing Background and Highlight
|
|
138
|
-
</Title>
|
|
139
|
-
|
|
140
|
-
{/* Bounce animation with limited loops */}
|
|
141
|
-
<Title
|
|
142
|
-
animate={{
|
|
143
|
-
from: { transform: 'translateY(0)' },
|
|
144
|
-
'20%': { transform: 'translateY(-30px)' },
|
|
145
|
-
'40%': { transform: 'translateY(0)' },
|
|
146
|
-
'60%': { transform: 'translateY(-15px)' },
|
|
147
|
-
'80%': { transform: 'translateY(0)' },
|
|
148
|
-
to: { transform: 'translateY(0)' },
|
|
149
|
-
duration: '2s',
|
|
150
|
-
timingFunction: 'ease-in-out',
|
|
151
|
-
}}
|
|
152
|
-
animationLoop={2}
|
|
153
|
-
highlightText="Bounce"
|
|
154
|
-
highlightStyle="background"
|
|
155
|
-
highlightColor="theme.success"
|
|
156
|
-
>
|
|
157
|
-
Bounce Animation (2 Times)
|
|
158
|
-
</Title>
|
|
159
|
-
|
|
160
|
-
{/* Typewriter with infinite highlight animation */}
|
|
161
|
-
<Title
|
|
162
|
-
highlightAnimate={{
|
|
163
|
-
from: { textShadow: '0 0 5px theme.primary' },
|
|
164
|
-
to: { textShadow: '0 0 20px theme.primary' },
|
|
165
|
-
duration: '1.5s',
|
|
166
|
-
timingFunction: 'ease-in-out',
|
|
167
|
-
direction: 'alternate',
|
|
168
|
-
}}
|
|
169
|
-
highlightAnimationLoop="infinite"
|
|
170
|
-
highlightText="glowing"
|
|
171
|
-
highlightStyle="glow"
|
|
172
|
-
highlightColor="theme.primary"
|
|
173
|
-
highlightTypewriter={true}
|
|
174
|
-
highlightTypewriterDuration={2000}
|
|
175
|
-
>
|
|
176
|
-
Typewriter with glowing highlight
|
|
177
|
-
</Title>
|
|
178
|
-
</Vertical>
|
|
179
|
-
);
|
|
180
|
-
};
|
|
58
|
+
export const HighlightStyles = () => (
|
|
59
|
+
<Vertical gap={20}>
|
|
60
|
+
<Title highlightText="Background" highlightStyle="background">
|
|
61
|
+
Background Highlight
|
|
62
|
+
</Title>
|
|
63
|
+
<Title
|
|
64
|
+
highlightText="Gradient"
|
|
65
|
+
highlightStyle="gradient"
|
|
66
|
+
highlightColor="#705CFF"
|
|
67
|
+
highlightSecondaryColor="#FFC75C"
|
|
68
|
+
>
|
|
69
|
+
Gradient Highlight
|
|
70
|
+
</Title>
|
|
71
|
+
<Title highlightText="Underline" highlightStyle="underline">
|
|
72
|
+
Underline Highlight
|
|
73
|
+
</Title>
|
|
74
|
+
<Title highlightText="Glow" highlightStyle="glow" highlightColor="#10B981">
|
|
75
|
+
Glow Highlight
|
|
76
|
+
</Title>
|
|
77
|
+
</Vertical>
|
|
78
|
+
);
|
|
181
79
|
```
|
|
182
80
|
|
|
183
|
-
### **
|
|
184
|
-
|
|
81
|
+
### **animationLoop**
|
|
82
|
+
Controls the loop behavior of title and highlight animations.
|
|
185
83
|
|
|
186
|
-
- **Type:** `
|
|
187
|
-
- **Default:** `
|
|
84
|
+
- **Type:** `number | 'infinite'`
|
|
85
|
+
- **Default:** `1`
|
|
188
86
|
|
|
189
87
|
```tsx
|
|
190
88
|
import React from 'react';
|
|
191
89
|
import { Title } from '@app-studio/web';
|
|
192
|
-
import { Vertical } from 'app-studio';
|
|
193
90
|
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
highlightColor="theme.primary"
|
|
207
|
-
>
|
|
208
|
-
Responsive XL Title (H1 scale)
|
|
209
|
-
</Title>
|
|
210
|
-
|
|
211
|
-
<Title
|
|
212
|
-
size="lg"
|
|
213
|
-
responsive={true}
|
|
214
|
-
highlightText="Responsive"
|
|
215
|
-
highlightStyle="gradient"
|
|
216
|
-
highlightColor="theme.primary"
|
|
217
|
-
highlightSecondaryColor="theme.secondary"
|
|
218
|
-
>
|
|
219
|
-
Responsive LG Title (H2 scale)
|
|
220
|
-
</Title>
|
|
221
|
-
|
|
222
|
-
<Title
|
|
223
|
-
size="md"
|
|
224
|
-
responsive={true}
|
|
225
|
-
highlightText="Responsive"
|
|
226
|
-
highlightStyle="underline"
|
|
227
|
-
highlightColor="theme.accent"
|
|
228
|
-
>
|
|
229
|
-
Responsive MD Title (H3 scale)
|
|
230
|
-
</Title>
|
|
231
|
-
|
|
232
|
-
<Title
|
|
233
|
-
size="sm"
|
|
234
|
-
responsive={true}
|
|
235
|
-
highlightText="Responsive"
|
|
236
|
-
highlightStyle="glow"
|
|
237
|
-
highlightColor="theme.primary"
|
|
238
|
-
>
|
|
239
|
-
Responsive SM Title (T1 scale)
|
|
240
|
-
</Title>
|
|
241
|
-
|
|
242
|
-
<Title
|
|
243
|
-
size="xs"
|
|
244
|
-
responsive={true}
|
|
245
|
-
highlightText="Responsive"
|
|
246
|
-
highlightStyle="outline"
|
|
247
|
-
highlightColor="theme.secondary"
|
|
248
|
-
>
|
|
249
|
-
Responsive XS Title (S1 scale)
|
|
250
|
-
</Title>
|
|
251
|
-
|
|
252
|
-
{/* Legacy example using manual media queries */}
|
|
253
|
-
<Title
|
|
254
|
-
media={{
|
|
255
|
-
mobile: {
|
|
256
|
-
fontSize: 32,
|
|
257
|
-
lineHeight: '100%',
|
|
258
|
-
},
|
|
259
|
-
tablet: {
|
|
260
|
-
fontSize: 48,
|
|
261
|
-
lineHeight: '110%',
|
|
262
|
-
},
|
|
263
|
-
desktop: {
|
|
264
|
-
fontSize: 64,
|
|
265
|
-
lineHeight: '120%',
|
|
266
|
-
},
|
|
267
|
-
}}
|
|
268
|
-
highlightText="Manual"
|
|
269
|
-
highlightStyle="background"
|
|
270
|
-
highlightColor="theme.primary"
|
|
271
|
-
>
|
|
272
|
-
Manual Media Queries Title
|
|
273
|
-
</Title>
|
|
274
|
-
</Vertical>
|
|
275
|
-
);
|
|
276
|
-
};
|
|
91
|
+
export const AnimatedLoopTitle = () => (
|
|
92
|
+
<Title
|
|
93
|
+
animate={{
|
|
94
|
+
from: { transform: 'translateY(10px)', opacity: 0 },
|
|
95
|
+
to: { transform: 'translateY(0)', opacity: 1 },
|
|
96
|
+
duration: '1s'
|
|
97
|
+
}}
|
|
98
|
+
animationLoop="infinite"
|
|
99
|
+
>
|
|
100
|
+
Infinitely Bouncing Title
|
|
101
|
+
</Title>
|
|
102
|
+
);
|
|
277
103
|
```
|
|
278
104
|
|
|
279
105
|
### **highlightTypewriter**
|
|
@@ -281,91 +107,77 @@ Adds a typewriter effect to the highlighted text.
|
|
|
281
107
|
|
|
282
108
|
- **Type:** `boolean`
|
|
283
109
|
- **Default:** `false`
|
|
110
|
+
- **related:** `highlightTypewriterDuration` (ms)
|
|
284
111
|
|
|
285
112
|
```tsx
|
|
286
113
|
import React from 'react';
|
|
287
114
|
import { Title } from '@app-studio/web';
|
|
288
|
-
import { Vertical } from 'app-studio';
|
|
289
115
|
|
|
290
116
|
export const TypewriterTitle = () => (
|
|
291
|
-
<
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
highlightSecondaryColor="theme.secondary"
|
|
300
|
-
>
|
|
301
|
-
Title with
|
|
302
|
-
</Title>
|
|
303
|
-
</Vertical>
|
|
117
|
+
<Title
|
|
118
|
+
highlightText="Typewriter output"
|
|
119
|
+
highlightTypewriter
|
|
120
|
+
highlightTypewriterDuration={2000}
|
|
121
|
+
highlightStyle="background"
|
|
122
|
+
>
|
|
123
|
+
Displaying: Typewriter output
|
|
124
|
+
</Title>
|
|
304
125
|
);
|
|
305
126
|
```
|
|
306
127
|
|
|
307
128
|
### **highlightSlide**
|
|
308
|
-
Adds a
|
|
129
|
+
Adds a sliding entry effect to the highlighted text words.
|
|
309
130
|
|
|
310
131
|
- **Type:** `boolean`
|
|
311
132
|
- **Default:** `false`
|
|
133
|
+
- **related:** `highlightSlideDuration`, `highlightSlideStagger`, `highlightSlideSequential`
|
|
312
134
|
|
|
313
135
|
```tsx
|
|
314
136
|
import React from 'react';
|
|
315
137
|
import { Title } from '@app-studio/web';
|
|
316
|
-
import { Vertical } from 'app-studio';
|
|
317
138
|
|
|
318
139
|
export const SlideTitle = () => (
|
|
319
|
-
<
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
>
|
|
328
|
-
Title with
|
|
329
|
-
</Title>
|
|
330
|
-
|
|
331
|
-
<Title
|
|
332
|
-
size="md"
|
|
333
|
-
highlightText={["Slide", "Effect", "Multiple"]}
|
|
334
|
-
highlightSlide={true}
|
|
335
|
-
highlightSlideSequential={true}
|
|
336
|
-
highlightSlideStagger={200}
|
|
337
|
-
highlightStyle="underline"
|
|
338
|
-
highlightColor="theme.primary"
|
|
339
|
-
>
|
|
340
|
-
Sequential
|
|
341
|
-
</Title>
|
|
342
|
-
</Vertical>
|
|
140
|
+
<Title
|
|
141
|
+
highlightText={["Slide", "Effect", "Demo"]}
|
|
142
|
+
highlightSlide
|
|
143
|
+
highlightSlideSequential={true}
|
|
144
|
+
highlightStyle="underline"
|
|
145
|
+
>
|
|
146
|
+
Welcome to the Slide Effect Demo
|
|
147
|
+
</Title>
|
|
343
148
|
);
|
|
344
149
|
```
|
|
345
150
|
|
|
151
|
+
### **responsive**
|
|
152
|
+
Enables automatic responsive sizing adjustments based on screen width.
|
|
153
|
+
|
|
154
|
+
- **Type:** `boolean`
|
|
155
|
+
- **Default:** `false`
|
|
156
|
+
|
|
157
|
+
```tsx
|
|
158
|
+
<Title size="xl" responsive>
|
|
159
|
+
Responsive Title
|
|
160
|
+
</Title>
|
|
161
|
+
```
|
|
162
|
+
|
|
346
163
|
### **alternateHighlightText**
|
|
347
164
|
Cycles through an array of strings, replacing the highlighted text.
|
|
348
165
|
|
|
349
166
|
- **Type:** `string[]`
|
|
167
|
+
- **related:** `alternateAnimation`, `alternateDuration`
|
|
350
168
|
|
|
351
169
|
```tsx
|
|
352
170
|
import React from 'react';
|
|
353
171
|
import { Title } from '@app-studio/web';
|
|
354
|
-
import { Vertical } from 'app-studio';
|
|
355
172
|
|
|
356
|
-
export const
|
|
357
|
-
<
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
highlightColor="theme.success"
|
|
366
|
-
>
|
|
367
|
-
Title with Rotating Words:
|
|
368
|
-
</Title>
|
|
369
|
-
</Vertical>
|
|
173
|
+
export const RotatingTitle = () => (
|
|
174
|
+
<Title
|
|
175
|
+
highlightText="Design"
|
|
176
|
+
alternateHighlightText={['Develop', 'Deploy', 'Scale']}
|
|
177
|
+
alternateAnimation
|
|
178
|
+
highlightStyle="gradient"
|
|
179
|
+
>
|
|
180
|
+
We help you Design better apps.
|
|
181
|
+
</Title>
|
|
370
182
|
);
|
|
371
183
|
```
|