@maccesar/titools 2.2.11 → 2.3.0

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.
Files changed (99) hide show
  1. package/README.md +255 -713
  2. package/bin/titools.js +1 -1
  3. package/lib/commands/update.js +5 -6
  4. package/lib/config.js +1 -0
  5. package/lib/downloader.js +10 -0
  6. package/package.json +1 -1
  7. package/skills/alloy-guides/SKILL.md +46 -48
  8. package/skills/alloy-guides/references/CONTROLLERS.md +4 -6
  9. package/skills/alloy-guides/references/MODELS.md +340 -184
  10. package/skills/alloy-guides/references/VIEWS_DYNAMIC.md +3 -4
  11. package/skills/alloy-guides/references/VIEWS_STYLES.md +44 -46
  12. package/skills/alloy-guides/references/VIEWS_WITHOUT_CONTROLLERS.md +4 -5
  13. package/skills/alloy-guides/references/VIEWS_XML.md +51 -17
  14. package/skills/alloy-guides/references/WIDGETS.md +1 -1
  15. package/skills/alloy-howtos/SKILL.md +12 -13
  16. package/skills/alloy-howtos/references/cli_reference.md +40 -41
  17. package/skills/alloy-howtos/references/samples.md +3 -4
  18. package/skills/purgetss/SKILL.md +369 -356
  19. package/skills/purgetss/references/EXAMPLES.md +24 -25
  20. package/skills/purgetss/references/animation-advanced.md +555 -0
  21. package/skills/purgetss/references/animation-system.md +395 -995
  22. package/skills/purgetss/references/apply-directive.md +111 -141
  23. package/skills/purgetss/references/arbitrary-values.md +206 -480
  24. package/skills/purgetss/references/class-categories.md +277 -0
  25. package/skills/purgetss/references/class-index.md +1 -420
  26. package/skills/purgetss/references/cli-commands.md +446 -556
  27. package/skills/purgetss/references/configurable-properties.md +163 -599
  28. package/skills/purgetss/references/custom-rules.md +33 -76
  29. package/skills/purgetss/references/customization-deep-dive.md +319 -518
  30. package/skills/purgetss/references/dynamic-component-creation.md +33 -37
  31. package/skills/purgetss/references/grid-layout.md +42 -371
  32. package/skills/purgetss/references/icon-fonts.md +82 -475
  33. package/skills/purgetss/references/installation-setup.md +159 -331
  34. package/skills/purgetss/references/migration-guide.md +54 -109
  35. package/skills/purgetss/references/opacity-modifier.md +25 -222
  36. package/skills/purgetss/references/performance-tips.md +2 -2
  37. package/skills/purgetss/references/platform-modifiers.md +21 -407
  38. package/skills/purgetss/references/tikit-components.md +237 -104
  39. package/skills/purgetss/references/titanium-resets.md +20 -21
  40. package/skills/purgetss/references/ui-ux-design.md +171 -1702
  41. package/skills/ti-api/SKILL.md +109 -0
  42. package/skills/ti-api/references/api-android.md +675 -0
  43. package/skills/ti-api/references/api-app-platform.md +636 -0
  44. package/skills/ti-api/references/api-core.md +764 -0
  45. package/skills/ti-api/references/api-data-network.md +641 -0
  46. package/skills/ti-api/references/api-media.md +655 -0
  47. package/skills/ti-api/references/api-modules-ble-bluetooth.md +657 -0
  48. package/skills/ti-api/references/api-modules-coremotion-urlsession.md +411 -0
  49. package/skills/ti-api/references/api-modules-map.md +632 -0
  50. package/skills/ti-api/references/api-modules-nfc.md +725 -0
  51. package/skills/ti-api/references/api-modules-social-misc.md +526 -0
  52. package/skills/ti-api/references/api-services.md +700 -0
  53. package/skills/ti-api/references/api-ui-android.md +499 -0
  54. package/skills/ti-api/references/api-ui-extras.md +702 -0
  55. package/skills/ti-api/references/api-ui-ios-animator.md +378 -0
  56. package/skills/ti-api/references/api-ui-ios.md +756 -0
  57. package/skills/ti-api/references/api-ui-lists.md +581 -0
  58. package/skills/ti-api/references/api-ui-text-input.md +607 -0
  59. package/skills/ti-api/references/api-ui-views.md +572 -0
  60. package/skills/ti-api/references/api-ui-windows-navigation.md +676 -0
  61. package/skills/ti-api/references/api-xml-global.md +743 -0
  62. package/skills/ti-expert/SKILL.md +106 -138
  63. package/skills/ti-expert/references/adaptive-layouts.md +414 -0
  64. package/skills/ti-expert/references/alloy-builtins.md +16 -20
  65. package/skills/ti-expert/references/alloy-structure.md +40 -42
  66. package/skills/ti-expert/references/anti-patterns.md +34 -0
  67. package/skills/ti-expert/references/architecture-tiers.md +248 -0
  68. package/skills/ti-expert/references/code-conventions.md +5 -3
  69. package/skills/ti-expert/references/error-handling.md +14 -7
  70. package/skills/ti-expert/references/examples.md +4 -2
  71. package/skills/ti-expert/references/performance-optimization.md +26 -24
  72. package/skills/ti-expert/references/security-device.md +17 -14
  73. package/skills/ti-expert/references/security-fundamentals.md +60 -101
  74. package/skills/ti-expert/references/state-management.md +15 -14
  75. package/skills/ti-expert/references/testing-e2e-ci.md +30 -21
  76. package/skills/ti-expert/references/theming.md +12 -20
  77. package/skills/ti-guides/SKILL.md +13 -17
  78. package/skills/ti-guides/references/advanced-data-and-images.md +30 -10
  79. package/skills/ti-guides/references/application-frameworks.md +3 -3
  80. package/skills/ti-guides/references/coding-best-practices.md +31 -2
  81. package/skills/ti-guides/references/commonjs-advanced.md +46 -4
  82. package/skills/ti-guides/references/hello-world.md +9 -13
  83. package/skills/ti-guides/references/hyperloop-native-access.md +4 -1
  84. package/skills/ti-guides/references/javascript-primer.md +13 -5
  85. package/skills/ti-guides/references/resources.md +0 -2
  86. package/skills/ti-guides/references/style-and-conventions.md +1 -0
  87. package/skills/ti-guides/references/tiapp-config.md +0 -32
  88. package/skills/ti-howtos/SKILL.md +43 -45
  89. package/skills/ti-howtos/references/buffer-codec-streams.md +25 -3
  90. package/skills/ti-howtos/references/debugging-profiling.md +14 -25
  91. package/skills/ti-howtos/references/google-maps-v2.md +3 -3
  92. package/skills/ti-howtos/references/ios-map-kit.md +8 -1
  93. package/skills/ti-howtos/references/notification-services.md +0 -1
  94. package/skills/ti-howtos/references/webpack-build-pipeline.md +3 -0
  95. package/skills/ti-ui/SKILL.md +47 -49
  96. package/skills/ti-ui/references/application-structures.md +3 -2
  97. package/skills/ti-ui/references/orientation.md +17 -9
  98. package/skills/ti-ui/references/platform-ui-ios.md +63 -0
  99. package/skills/ti-ui/references/scrolling-views.md +39 -0
@@ -1,599 +1,163 @@
1
- # Configurable Properties Reference
2
-
3
- Complete list of all properties that can be customized in `config.cjs` under the `theme` section.
4
-
5
- ## Color Properties (50+ properties)
6
-
7
- All color properties inherit values from `theme.colors` and support a full color palette plus any custom colors you define.
8
-
9
- ### Background Colors
10
- - `backgroundColor` - Main background color
11
- - `backgroundDisabledColor` - Background when disabled
12
- - `backgroundFocusedColor` - Background when focused
13
- - `backgroundSelectedColor` - Background when selected
14
- - `backgroundGradient` - Gradient backgrounds (uses `from-*` and `to-*` classes)
15
-
16
- **Class examples:** `bg-white`, `bg-red-500`, `bg-brand-600`
17
-
18
- ### Text Colors
19
- - `color` / `textColor` - Main text color
20
- - `titleColor` / `titleTextColor` - Title text color
21
- - `subtitleColor` / `subtitleTextColor` - Subtitle text color
22
- - `hintTextColor` - Placeholder/hint text color
23
-
24
- **Class examples:** `text-gray-900`, `text-white`, `text-brand-500`
25
-
26
- ### UI Element Colors
27
- - `selectedColor` - Color when selected
28
- - `selectedTextColor` - Text color when selected
29
- - `selectedBackgroundColor` - Background when selected
30
- - `selectedButtonColor` - Button color when selected
31
- - `selectedSubtitleColor` - Subtitle color when selected
32
- - `disabledColor` - Color for disabled state
33
- - `highlightedColor` - Color when highlighted
34
-
35
- ### Border & Separator Colors
36
- - `borderColor` - Border color
37
- - `separatorColor` - Separator line color
38
- - `barColor` - Toolbar/tab bar color
39
-
40
- ### Navigation & Button Colors
41
- - `tintColor` / `tint` - Main tint color
42
- - `navTintColor` - Navigation bar tint
43
- - `activeTintColor` - Tint when active
44
- - `onTintColor` - Tint for "on" state
45
- - `thumbTintColor` - Slider thumb tint
46
- - `trackTintColor` - Slider track tint
47
-
48
- ### Indicator Colors
49
- - `indicatorColor` - General indicator color
50
- - `pageIndicatorColor` - Page scroll indicator
51
- - `currentPageIndicatorColor` - Current page indicator
52
- - `pagingControlColor` - Paging control color
53
-
54
- ### Badge & Notification Colors
55
- - `badgeColor` - Badge background/text color
56
-
57
- ### Miscellaneous Colors
58
- - `shadowColor` / `viewShadowColor` - Drop shadow color
59
- - `iconColor` - Icon color
60
- - `imageTouchFeedbackColor` - Image touch feedback color
61
- - `keyboardToolbarColor` - Keyboard toolbar color
62
- - `pullBackgroundColor` - Pull-to-refresh background
63
- - `tabsBackgroundColor` - Tab bar background
64
- - `tabsBackgroundSelectedColor` - Selected tab background
65
- - `touchFeedbackColor` - Touch feedback ripple color
66
- - `statusBarBackgroundColor` - Status bar color
67
- - `lightColor` - Light theme color
68
- - `activeTitleColor` - Active title color
69
- - `dateTimeColor` - Date/time picker color
70
- - `resultsBackgroundColor` - Search results background
71
- - `resultsSeparatorColor` - Search results separator
72
-
73
- ## Spacing & Size Properties
74
-
75
- All spacing properties inherit from `theme.spacing` and support the default spacing scale plus custom values.
76
-
77
- ### Dimensions
78
- - `width` / `w` - Element width
79
- - `height` / `h` - Element height
80
-
81
- **Class examples:** `w-64`, `h-screen`, `w-1/2`
82
-
83
- ### Margin
84
- - `horizontalMargin` - Horizontal margins
85
- - `verticalMargin` - Vertical margins
86
-
87
- ### Padding
88
- - `padding` / `p` - All sides padding
89
- - `paddingTop` / `pt` - Top padding
90
- - `paddingRight` / `pr` - Right padding
91
- - `paddingBottom` / `pb` - Bottom padding
92
- - `paddingLeft` / `pl` - Left padding
93
-
94
- **Class examples:** `p-4`, `px-8`, `py-2`, `pt-4`, `pr-8`, `pb-4`, `pl-8`
95
-
96
- ### Background Padding
97
- - `backgroundPaddingTop` - Background top padding
98
- - `backgroundPaddingBottom` - Background bottom padding
99
- - `backgroundPaddingLeft` - Background left padding
100
- - `backgroundPaddingRight` - Background right padding
101
-
102
- ### Content Size
103
- - `contentWidth` - Content width
104
- - `contentHeight` - Content height
105
-
106
- ### Gaps
107
- - `gap` - Gap between grid/flex items (all sides)
108
- - `gap-x` - Horizontal gap
109
- - `gap-y` - Vertical gap
110
-
111
- ## Border Properties
112
-
113
- - `borderWidth` - Border thickness
114
- - `borderRadius` - Rounded corners
115
-
116
- **Class examples:** `border-2`, `rounded-lg`, `rounded-full`
117
-
118
- ### Background Caps
119
- - `backgroundTopCap` - Background top cap size
120
- - `backgroundLeftCap` - Background left cap size
121
-
122
- ## Positioning Properties
123
-
124
- - `top` - Top position
125
- - `right` / `r` - Right position
126
- - `bottom` - Bottom position
127
- - `left` / `l` - Left position
128
- - `xOffset` - X axis offset
129
- - `yOffset` - Y axis offset
130
-
131
- **Class examples:** `top-4`, `right-8`, `bottom-0`, `left-auto`, `right-0`
132
-
133
- ## Typography Properties
134
-
135
- - `fontFamily` - Font family
136
- - `fontSize` / `textSize` - Font size
137
- - `font` - Font weight/style
138
- - `lineHeightMultiple` - Line height multiplier
139
- - `lines` - Maximum lines
140
- - `maxLines` - Maximum lines (alias)
141
- - `minimumFontSize` - Minimum font size for auto-shrink
142
-
143
- **Class examples:** `font-sans`, `text-xl`, `font-bold`, `leading-relaxed`
144
-
145
- ## Layout Properties
146
-
147
- - `columnCount` - Multi-column layout count
148
- - `rowCount` - Row layout count
149
- - `rowHeight` - Height of each row
150
- - `maxRowHeight` - Maximum row height
151
- - `minRowHeight` - Minimum row height
152
-
153
- ## Opacity & Visibility
154
-
155
- - `opacity` - Element opacity (0-1)
156
-
157
- **Class examples:** `opacity-50`, `opacity-100`
158
-
159
- ## Transformation Properties
160
-
161
- - `rotate` - Rotation angle (degrees)
162
- - `scale` - Scale factor
163
- - `scaleX` - X axis scale
164
- - `scaleY` - Y axis scale
165
- - `origin` - Transform origin point
166
-
167
- **Class examples:** `rotate-45`, `scale-110`, `origin-center`
168
-
169
- ## Animation Properties
170
-
171
- - `duration` - Animation duration (milliseconds)
172
- - `delay` - Animation delay (milliseconds)
173
- - `repeat` / `repeatCount` - Repeat count
174
- - `timeout` - Timeout duration
175
- - `countDownDuration` - Countdown timer duration
176
-
177
- **Class examples:** `duration-300`, `delay-150`, `repeat-3`
178
-
179
- ## Z-Index & Layering
180
-
181
- - `zIndex` / `z` - Stack order
182
-
183
- **Class examples:** `z-10`, `z-50`, `z-auto`
184
-
185
- ## Shadow Properties
186
-
187
- - `shadowRadius` - Shadow blur radius
188
- - `elevation` - Android elevation (shadow)
189
-
190
- ## Section Properties
191
-
192
- - `sectionHeaderTopPadding` - Section header padding
193
-
194
- ## Separator Properties
195
-
196
- - `separatorHeight` - Separator line height
197
-
198
- ## Paging Properties
199
-
200
- - `pagingControlHeight` - Paging control height
201
- - `pagingControlAlpha` - Paging control opacity
202
- - `pagingControlTimeout` - Paging auto-scroll timeout
203
-
204
- ## Zoom Properties
205
-
206
- - `zoomScale` - Current zoom level
207
- - `minZoomScale` - Minimum zoom
208
- - `maxZoomScale` - Maximum zoom
209
- - `scalesPageToFit` - Auto-scale to fit
210
-
211
- ## Button Properties
212
-
213
- - `leftButtonPadding` - Left button padding
214
- - `rightButtonPadding` - Right button padding
215
-
216
- ## Left/Right Width
217
-
218
- - `leftWidth` / `lw` - Left width
219
- - `rightWidth` / `rw` - Right width
220
-
221
- ## Cache Properties
222
-
223
- - `cacheSize` - Cache size limit
224
-
225
- ## Other Properties
226
-
227
- - `activeTab` - Active tab index
228
- - `indentionLevel` - Indentation level
229
- - `keyboardToolbarHeight` - Keyboard toolbar height
230
- - `shiftMode` - Shift mode for text fields
231
-
232
- ## Quick Reference Table
233
-
234
- | Category | Property | Class Prefix Example |
235
- | -------------- | --------------------- | ---------------------------------------- |
236
- | **Background** | backgroundColor | `bg-*` |
237
- | | backgroundGradient | `from-*`, `to-*` |
238
- | **Text** | color/textColor | `text-*` |
239
- | | hintTextColor | `placeholder-*` |
240
- | **Border** | borderColor | `border-*` |
241
- | | borderWidth | `border-*` |
242
- | | borderRadius | `rounded-*` |
243
- | **Spacing** | margin | `m-*`, `mt-*`, `mb-*`, `ml-*`, `mr-*` |
244
- | | padding | `p-*`, `pt-*`, `pb-*`, `pl-*`, `pr-*` |
245
- | **Dimensions** | width | `w-*` |
246
- | | height | `h-*` |
247
- | **Position** | top/right/bottom/left | `top-*`, `right-*`, `bottom-*`, `left-*` |
248
- | **Typography** | fontFamily | `font-*` |
249
- | | fontSize | `text-*`, `text-size-*` |
250
- | **Transform** | rotate | `rotate-*` |
251
- | | scale | `scale-*` |
252
- | **Animation** | duration | `duration-*` |
253
- | | delay | `delay-*` |
254
- | **Z-Index** | zIndex | `z-*` |
255
-
256
- ## Customizing in config.cjs
257
-
258
- ### Override Default Values
259
-
260
- ```javascript
261
- theme: {
262
- spacing: {
263
- sm: 8,
264
- md: 12,
265
- lg: 16,
266
- }
267
- }
268
- ```
269
-
270
- ### Extend Default Values
271
-
272
- ```javascript
273
- theme: {
274
- extend: {
275
- colors: {
276
- brand: '#007AFF',
277
- },
278
- spacing: {
279
- '72': '18rem',
280
- '84': '21rem',
281
- }
282
- }
283
- }
284
- ```
285
-
286
- ### Mix Override and Extend
287
-
288
- ```javascript
289
- theme: {
290
- // Override default opacity
291
- opacity: {
292
- 15: '0.15',
293
- 35: '0.35',
294
- },
295
- // Extend colors
296
- extend: {
297
- colors: {
298
- brand: '#007AFF',
299
- }
300
- }
301
- }
302
- ```
303
-
304
- ## Practical Examples
305
-
306
- ### Complete Brand Color System
307
-
308
- ```javascript
309
- // config.cjs
310
- module.exports = {
311
- theme: {
312
- extend: {
313
- colors: {
314
- brand: {
315
- 50: '#edfaff',
316
- 100: '#d6f2ff',
317
- 200: '#b5eaff',
318
- 300: '#83dfff',
319
- 400: '#48cbff',
320
- 500: '#1eacff',
321
- 600: '#068eff',
322
- 700: '#007aff', // Primary
323
- 800: '#085dc5',
324
- 900: '#0d519b',
325
- 950: '#0e315d',
326
- DEFAULT: '#007aff' // Allows 'bg-brand' without shade
327
- },
328
- success: '#22c55e',
329
- warning: '#f59e0b',
330
- error: '#ef4444',
331
- info: '#3b82f6'
332
- }
333
- }
334
- }
335
- }
336
- ```
337
-
338
- **Usage:**
339
- ```xml
340
- <Button class="bg-brand text-white" />
341
- <Button class="bg-brand-700 text-brand-100" />
342
- <Label class="text-success" text="Saved!" />
343
- <Label class="text-error" text="Error occurred" />
344
- ```
345
-
346
- ### Custom Spacing Scale
347
-
348
- ```javascript
349
- // config.cjs
350
- module.exports = {
351
- theme: {
352
- spacing: {
353
- // Mobile-first spacing
354
- 'xs': 4,
355
- 'sm': 8,
356
- 'md': 16,
357
- 'lg': 24,
358
- 'xl': 32,
359
- '2xl': 48,
360
- '3xl': 64,
361
- // Screen percentages
362
- 'screen-10': '10%',
363
- 'screen-25': '25%',
364
- 'screen-50': '50%'
365
- }
366
- }
367
- }
368
- ```
369
-
370
- **Generated classes:**
371
- ```tss
372
- /* Width */
373
- '.w-xs': { width: 4 }
374
- '.w-sm': { width: 8 }
375
- '.w-screen-50': { width: '50%' }
376
-
377
- /* Margin */
378
- '.m-md': { top: 16, right: 16, bottom: 16, left: 16 }
379
- '.mt-lg': { top: 24 }
380
-
381
- /* Padding */
382
- '.p-xl': { padding: { top: 32, right: 32, bottom: 32, left: 32 } }
383
- ```
384
-
385
- ### Custom Font Family System
386
-
387
- ```javascript
388
- // config.cjs
389
- module.exports = {
390
- theme: {
391
- fontFamily: {
392
- 'sans': 'Roboto-Regular',
393
- 'sans-medium': 'Roboto-Medium',
394
- 'sans-bold': 'Roboto-Bold',
395
- 'serif': 'Merriweather-Regular',
396
- 'mono': 'FiraCode-Regular',
397
- 'display': 'Montserrat-Bold'
398
- }
399
- }
400
- }
401
- ```
402
-
403
- **Usage:**
404
- ```xml
405
- <Label class="font-sans text-lg" />
406
- <Label class="font-display text-3xl" />
407
- <Label class="font-mono text-sm" />
408
- ```
409
-
410
- ### Custom Border Radius Scale
411
-
412
- ```javascript
413
- // config.cjs
414
- module.exports = {
415
- theme: {
416
- borderRadius: {
417
- 'none': 0,
418
- 'sm': 4,
419
- 'DEFAULT': 8,
420
- 'md': 12,
421
- 'lg': 16,
422
- 'xl': 24,
423
- '2xl': 32,
424
- 'card': 20,
425
- 'button': 12,
426
- 'input': 8
427
- }
428
- }
429
- }
430
- ```
431
-
432
- **Usage:**
433
- ```xml
434
- <View class="rounded-card bg-white" />
435
- <Button class="rounded-button bg-brand" />
436
- <TextField class="rounded-input border-gray-300" />
437
- ```
438
-
439
- ### Complete Card Component via Ti Element
440
-
441
- ```javascript
442
- // config.cjs
443
- module.exports = {
444
- purge: { mode: 'all' }, // Required for Ti Elements
445
- theme: {
446
- // Style all Views with specific patterns
447
- View: {
448
- DEFAULT: {
449
- width: 'Ti.UI.SIZE',
450
- height: 'Ti.UI.SIZE'
451
- }
452
- },
453
- // Custom card class
454
- '.card': {
455
- DEFAULT: {
456
- backgroundColor: '#ffffff',
457
- borderRadius: 16,
458
- borderWidth: 1,
459
- borderColor: '#e5e7eb'
460
- },
461
- ios: {
462
- clipMode: 'Ti.UI.iOS.CLIP_MODE_ENABLED'
463
- },
464
- android: {
465
- elevation: 4
466
- }
467
- },
468
- '.card-header': {
469
- apply: 'p-4 border-b border-gray-200'
470
- },
471
- '.card-body': {
472
- apply: 'p-4'
473
- },
474
- '.card-footer': {
475
- apply: 'p-4 border-t border-gray-100 bg-gray-50'
476
- }
477
- }
478
- }
479
- ```
480
-
481
- **Usage:**
482
- ```xml
483
- <View class="card m-4">
484
- <View class="card-header vertical">
485
- <Label class="text-lg font-bold text-gray-900" text="Card Title" />
486
- </View>
487
- <View class="card-body vertical">
488
- <Label class="text-gray-600" text="Card content goes here" />
489
- </View>
490
- <View class="card-footer">
491
- <Button class="bg-brand rounded-lg text-white" title="Action" />
492
- </View>
493
- </View>
494
- ```
495
-
496
- ### Button System with Variants
497
-
498
- ```javascript
499
- // config.cjs
500
- module.exports = {
501
- theme: {
502
- extend: {
503
- colors: {
504
- brand: { 500: '#007aff', 600: '#0066dd', 100: '#e0f0ff' }
505
- }
506
- },
507
- // Base button
508
- '.btn': {
509
- apply: 'font-bold rounded-lg h-12 px-6'
510
- },
511
- // Variants
512
- '.btn-primary': {
513
- apply: 'bg-brand-500 text-white'
514
- },
515
- '.btn-secondary': {
516
- apply: 'bg-gray-200 text-gray-800'
517
- },
518
- '.btn-outline': {
519
- apply: 'border-2 border-brand-500 text-brand-500 bg-transparent'
520
- },
521
- '.btn-ghost': {
522
- apply: 'bg-transparent text-brand-500'
523
- },
524
- // Sizes
525
- '.btn-sm': {
526
- apply: 'h-8 px-3 text-sm'
527
- },
528
- '.btn-lg': {
529
- apply: 'h-14 px-8 text-lg'
530
- }
531
- }
532
- }
533
- ```
534
-
535
- **Usage:**
536
- ```xml
537
- <Button class="btn btn-primary" title="Submit" />
538
- <Button class="btn btn-outline" title="Cancel" />
539
- <Button class="btn btn-secondary btn-sm" title="Small" />
540
- <Button class="btn btn-primary btn-lg" title="Large Action" />
541
- ```
542
-
543
- ### Form Input System
544
-
545
- ```javascript
546
- // config.cjs
547
- module.exports = {
548
- theme: {
549
- TextField: {
550
- DEFAULT: {
551
- height: 48,
552
- borderRadius: 8,
553
- borderWidth: 1,
554
- borderColor: '#d1d5db',
555
- paddingLeft: 16,
556
- paddingRight: 16,
557
- backgroundColor: '#ffffff',
558
- color: '#111827',
559
- hintTextColor: '#9ca3af'
560
- },
561
- android: {
562
- touchFeedback: true
563
- }
564
- },
565
- TextArea: {
566
- DEFAULT: {
567
- borderRadius: 8,
568
- borderWidth: 1,
569
- borderColor: '#d1d5db',
570
- padding: { top: 12, right: 16, bottom: 12, left: 16 },
571
- backgroundColor: '#ffffff',
572
- color: '#111827',
573
- hintTextColor: '#9ca3af'
574
- }
575
- },
576
- '.input-error': {
577
- apply: 'border-red-500 bg-red-50'
578
- },
579
- '.input-success': {
580
- apply: 'border-green-500 bg-green-50'
581
- }
582
- }
583
- }
584
- ```
585
-
586
- **Usage:**
587
- ```xml
588
- <TextField hintText="Email address" />
589
- <TextField class="input-error" hintText="Invalid email" />
590
- <TextArea hintText="Your message..." />
591
- ```
592
-
593
- ## Related References
594
-
595
- - [Deep Customization](customization-deep-dive.md) - Config.cjs structure and usage
596
- - [Arbitrary Values](arbitrary-values.md) - Using custom values with parentheses notation
597
- - [Platform Modifiers](platform-modifiers.md) - Platform-specific customization
598
- - [Apply Directive](apply-directive.md) - Extracting utility combinations
599
- - [Custom Rules](custom-rules.md) - Styling Ti Elements, IDs, and classes
1
+ # Configurable Properties
2
+
3
+ This reference lists all customizable properties from the official PurgeTSS configuration guide. Add these under `theme` in `config.cjs` to override defaults, or under `theme.extend` to add new values while keeping defaults.
4
+
5
+ ## Global Properties
6
+
7
+ - All color properties inherit from `theme.colors`.
8
+ - All spacing properties inherit from `theme.spacing`.
9
+
10
+ You can customize any of the following properties individually by adding them in the `theme` section of your `config.cjs` file, or by extending them in the `theme.extend` section.
11
+
12
+ ## Color Properties
13
+
14
+ - `activeTintColor`
15
+ - `activeTitleColor`
16
+ - `backgroundColor`
17
+ - `backgroundDisabledColor`
18
+ - `backgroundFocusedColor`
19
+ - `backgroundGradient`
20
+ - `backgroundSelectedColor`
21
+ - `backgroundSelectedGradient`
22
+ - `badgeColor`
23
+ - `barColor`
24
+ - `borderColor`
25
+ - `color`
26
+ - `colors`
27
+ - `contentScrimColor`
28
+ - `currentPageIndicatorColor`
29
+ - `dateTimeColor`
30
+ - `disabledColor`
31
+ - `highlightedColor`
32
+ - `hintTextColor`
33
+ - `iconColor`
34
+ - `imageTouchFeedbackColor`
35
+ - `indicatorColor`
36
+ - `keyboardToolbarColor`
37
+ - `lightColor`
38
+ - `navigationIconColor`
39
+ - `navTintColor`
40
+ - `onTintColor`
41
+ - `pageIndicatorColor`
42
+ - `pagingControlColor`
43
+ - `pullBackgroundColor`
44
+ - `resultsBackgroundColor`
45
+ - `resultsSeparatorColor`
46
+ - `selectedBackgroundColor`
47
+ - `selectedButtonColor`
48
+ - `selectedColor`
49
+ - `selectedSubtitleColor`
50
+ - `selectedTextColor`
51
+ - `separatorColor`
52
+ - `shadowColor`
53
+ - `statusBarBackgroundColor`
54
+ - `subtitleColor`
55
+ - `subtitleTextColor`
56
+ - `tabsBackgroundColor`
57
+ - `tabsBackgroundSelectedColor`
58
+ - `thumbTintColor`
59
+ - `tint`
60
+ - `tintColor`
61
+ - `titleAttributes`
62
+ - `titleColor`
63
+ - `titleTextColor`
64
+ - `touchFeedbackColor`
65
+ - `trackTintColor`
66
+ - `viewShadowColor`
67
+
68
+ > **ℹ️ `backgroundGradient`**
69
+ > For custom gradient rules, `backgroundGradient.colors` can use arrays of `{ color, offset }` objects. PurgeTSS v7.4.0 fixed serialization for those nested object arrays in `utilities.tss`.
70
+
71
+ ## Configurable Properties
72
+
73
+ - `activeTab`
74
+ - `backgroundLeftCap`
75
+ - `backgroundPaddingBottom`
76
+ - `backgroundPaddingLeft`
77
+ - `backgroundPaddingRight`
78
+ - `backgroundPaddingTop`
79
+ - `backgroundTopCap`
80
+ - `borderRadius`
81
+ - `borderWidth`
82
+ - `bottom`
83
+ - `cacheSize`
84
+ - `columnCount`
85
+ - `contentHeight`
86
+ - `contentWidth`
87
+ - `countDownDuration`
88
+ - `delay`
89
+ - `duration`
90
+ - `elevation`
91
+ - `fontSize`
92
+ - `height`
93
+ - `horizontalMargin`
94
+ - `indentionLevel`
95
+ - `keyboardToolbarHeight`
96
+ - `left`
97
+ - `leftButtonPadding`
98
+ - `leftTrackLeftCap`
99
+ - `leftTrackTopCap`
100
+ - `leftWidth`
101
+ - `lineHeightMultiple`
102
+ - `lines`
103
+ - `lineSpacing`
104
+ - `maxElevation`
105
+ - `maximumLineHeight`
106
+ - `maxLines`
107
+ - `maxRowHeight`
108
+ - `maxZoomScale`
109
+ - `minimumFontSize`
110
+ - `minimumLineHeight`
111
+ - `minRowHeight`
112
+ - `minZoomScale`
113
+ - `opacity`
114
+ - `padding`
115
+ - `paddingBottom`
116
+ - `paddingLeft`
117
+ - `paddingRight`
118
+ - `paddingTop`
119
+ - `pageHeight`
120
+ - `pageWidth`
121
+ - `pagingControlAlpha`
122
+ - `pagingControlHeight`
123
+ - `pagingControlTimeout`
124
+ - `paragraphSpacingAfter`
125
+ - `paragraphSpacingBefore`
126
+ - `repeat`
127
+ - `repeatCount`
128
+ - `right`
129
+ - `rightButtonPadding`
130
+ - `rightTrackLeftCap`
131
+ - `rightTrackTopCap`
132
+ - `rightWidth`
133
+ - `rotate`
134
+ - `rowCount`
135
+ - `rowHeight`
136
+ - `scale`
137
+ - `scalesPageToFit`
138
+ - `scaleX`
139
+ - `scaleY`
140
+ - `sectionHeaderTopPadding`
141
+ - `separatorHeight`
142
+ - `shadowRadius`
143
+ - `shiftMode`
144
+ - `timeout`
145
+ - `top`
146
+ - `uprightHeight`
147
+ - `uprightWidth`
148
+ - `verticalMargin`
149
+ - `width`
150
+ - `xOffset`
151
+ - `yOffset`
152
+ - `zIndex`
153
+ - `zoomScale`
154
+
155
+ > **WARNING: Titanium Padding Constraint**
156
+ > Titanium does not support native `padding` on `View`, `Window`, `ScrollView`, or `TableView`. Even if `padding*` is configurable, use margins on children for those elements.
157
+
158
+ > **WARNING: Width Fill Constraint**
159
+ > For full-width Titanium layouts, prefer `w-screen` (`Ti.UI.FILL`) instead of `w-full` (`100%`).
160
+
161
+ ## Custom Rules and Ti Elements
162
+
163
+ Create your own custom rules and include Ti Elements with any number of attributes or conditional statements. See [Custom Rules](./custom-rules.md) for rule syntax and examples.