@maccesar/titools 2.0.7 → 2.2.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.
- package/{AGENTS-TEMPLATE.md → AGENTS-VERCEL-RESEARCH.md} +16 -18
- package/README.md +250 -168
- package/agents/{ti-researcher.md → ti-pro.md} +10 -10
- package/bin/titools.js +16 -12
- package/lib/cleanup.js +95 -0
- package/lib/commands/agents.js +146 -70
- package/lib/commands/skills.js +349 -0
- package/lib/commands/uninstall.js +189 -154
- package/lib/commands/update.js +104 -21
- package/lib/config.js +26 -20
- package/lib/downloader.js +1 -1
- package/lib/installer.js +37 -97
- package/lib/platform.js +9 -5
- package/lib/prompts/checkboxCancel.js +264 -0
- package/lib/prompts/selectCancel.js +204 -0
- package/lib/symlink.js +19 -7
- package/lib/utils.js +17 -17
- package/package.json +10 -10
- package/skills/alloy-guides/SKILL.md +8 -30
- package/skills/alloy-guides/references/CLI_TASKS.md +14 -24
- package/skills/alloy-guides/references/CONCEPTS.md +5 -25
- package/skills/alloy-guides/references/CONTROLLERS.md +2 -19
- package/skills/alloy-guides/references/MODELS.md +40 -10
- package/skills/alloy-guides/references/PURGETSS.md +1 -11
- package/skills/alloy-guides/references/VIEWS_DYNAMIC.md +8 -14
- package/skills/alloy-guides/references/VIEWS_STYLES.md +14 -25
- package/skills/alloy-guides/references/VIEWS_WITHOUT_CONTROLLERS.md +2 -8
- package/skills/alloy-guides/references/VIEWS_XML.md +29 -40
- package/skills/alloy-guides/references/WIDGETS.md +1 -17
- package/skills/alloy-howtos/SKILL.md +1 -22
- package/skills/alloy-howtos/references/best_practices.md +0 -17
- package/skills/alloy-howtos/references/cli_reference.md +1 -23
- package/skills/alloy-howtos/references/config_files.md +86 -15
- package/skills/alloy-howtos/references/custom_tags.md +14 -13
- package/skills/alloy-howtos/references/debugging_troubleshooting.md +3 -22
- package/skills/alloy-howtos/references/samples.md +4 -14
- package/skills/purgetss/SKILL.md +11 -37
- package/skills/purgetss/references/EXAMPLES.md +106 -17
- package/skills/purgetss/references/animation-system.md +0 -67
- package/skills/purgetss/references/apply-directive.md +0 -18
- package/skills/purgetss/references/arbitrary-values.md +0 -25
- package/skills/purgetss/references/class-index.md +0 -46
- package/skills/purgetss/references/cli-commands.md +0 -41
- package/skills/purgetss/references/configurable-properties.md +0 -55
- package/skills/purgetss/references/custom-rules.md +0 -14
- package/skills/purgetss/references/customization-deep-dive.md +0 -49
- package/skills/purgetss/references/dynamic-component-creation.md +56 -37
- package/skills/purgetss/references/grid-layout.md +0 -32
- package/skills/purgetss/references/icon-fonts.md +0 -50
- package/skills/purgetss/references/installation-setup.md +61 -32
- package/skills/purgetss/references/migration-guide.md +127 -0
- package/skills/purgetss/references/opacity-modifier.md +0 -34
- package/skills/purgetss/references/performance-tips.md +261 -0
- package/skills/purgetss/references/platform-modifiers.md +0 -46
- package/skills/purgetss/references/smart-mappings.md +0 -12
- package/skills/purgetss/references/tikit-components.md +393 -0
- package/skills/purgetss/references/titanium-resets.md +1 -27
- package/skills/purgetss/references/ui-ux-design.md +467 -117
- package/skills/{alloy-expert → ti-expert}/SKILL.md +45 -54
- package/skills/ti-expert/references/alloy-builtins.md +387 -0
- package/skills/{alloy-expert → ti-expert}/references/alloy-structure.md +147 -40
- package/skills/ti-expert/references/anti-patterns.md +90 -0
- package/skills/ti-expert/references/cli-expert.md +109 -0
- package/skills/{alloy-expert → ti-expert}/references/code-conventions.md +182 -49
- package/skills/{alloy-expert → ti-expert}/references/controller-patterns.md +103 -93
- package/skills/{alloy-expert → ti-expert}/references/error-handling.md +12 -12
- package/skills/{alloy-expert → ti-expert}/references/examples.md +144 -85
- package/skills/{alloy-expert → ti-expert}/references/migration-patterns.md +38 -36
- package/skills/{alloy-expert → ti-expert}/references/patterns.md +8 -8
- package/skills/ti-expert/references/performance-listview.md +251 -0
- package/skills/{alloy-expert/references/performance-patterns.md → ti-expert/references/performance-optimization.md} +67 -283
- package/skills/{alloy-expert/references/security-patterns.md → ti-expert/references/security-device.md} +12 -295
- package/skills/ti-expert/references/security-fundamentals.md +284 -0
- package/skills/{alloy-expert → ti-expert}/references/state-management.md +10 -10
- package/skills/ti-expert/references/testing-e2e-ci.md +432 -0
- package/skills/ti-expert/references/testing-unit.md +433 -0
- package/skills/ti-expert/references/theming.md +394 -0
- package/skills/ti-guides/SKILL.md +1 -14
- package/skills/ti-guides/references/advanced-data-and-images.md +126 -10
- package/skills/ti-guides/references/app-distribution.md +48 -10
- package/skills/ti-guides/references/application-frameworks.md +9 -2
- package/skills/ti-guides/references/cli-reference.md +338 -82
- package/skills/ti-guides/references/coding-best-practices.md +14 -4
- package/skills/ti-guides/references/commonjs-advanced.md +103 -6
- package/skills/ti-guides/references/hello-world.md +5 -2
- package/skills/ti-guides/references/hyperloop-native-access.md +439 -46
- package/skills/ti-guides/references/javascript-primer.md +4 -3
- package/skills/ti-guides/references/resources.md +0 -1
- package/skills/ti-guides/references/style-and-conventions.md +57 -9
- package/skills/ti-guides/references/tiapp-config.md +48 -6
- package/skills/ti-howtos/SKILL.md +2 -27
- package/skills/ti-howtos/references/android-platform-deep-dives.md +41 -90
- package/skills/ti-howtos/references/automation-fastlane-appium.md +15 -14
- package/skills/ti-howtos/references/buffer-codec-streams.md +22 -22
- package/skills/ti-howtos/references/cross-platform-development.md +68 -37
- package/skills/ti-howtos/references/debugging-profiling.md +8 -53
- package/skills/ti-howtos/references/extending-titanium.md +12 -51
- package/skills/ti-howtos/references/google-maps-v2.md +30 -29
- package/skills/ti-howtos/references/ios-map-kit.md +19 -25
- package/skills/ti-howtos/references/ios-platform-deep-dives.md +95 -283
- package/skills/ti-howtos/references/local-data-sources.md +45 -37
- package/skills/ti-howtos/references/location-and-maps.md +47 -28
- package/skills/ti-howtos/references/media-apis.md +84 -27
- package/skills/ti-howtos/references/notification-services.md +40 -89
- package/skills/ti-howtos/references/remote-data-sources.md +21 -36
- package/skills/ti-howtos/references/tutorials.md +79 -39
- package/skills/ti-howtos/references/using-modules.md +4 -30
- package/skills/ti-howtos/references/web-content-integration.md +28 -45
- package/skills/ti-howtos/references/webpack-build-pipeline.md +54 -18
- package/skills/ti-ui/SKILL.md +1 -21
- package/skills/ti-ui/references/accessibility-deep-dive.md +71 -25
- package/skills/ti-ui/references/animation-and-matrices.md +0 -47
- package/skills/ti-ui/references/application-structures.md +0 -46
- package/skills/ti-ui/references/custom-fonts-styling.md +9 -57
- package/skills/ti-ui/references/event-handling.md +32 -40
- package/skills/ti-ui/references/gestures.md +0 -40
- package/skills/ti-ui/references/icons-and-splash-screens.md +21 -44
- package/skills/ti-ui/references/layouts-and-positioning.md +47 -39
- package/skills/ti-ui/references/listviews-and-performance.md +187 -73
- package/skills/ti-ui/references/orientation.md +57 -71
- package/skills/ti-ui/references/platform-ui-android.md +114 -48
- package/skills/ti-ui/references/platform-ui-ios.md +63 -38
- package/skills/ti-ui/references/scrolling-views.md +14 -23
- package/skills/ti-ui/references/tableviews.md +6 -56
- package/lib/commands/install.js +0 -188
- package/skills/alloy-expert/references/anti-patterns.md +0 -133
- package/skills/alloy-expert/references/testing.md +0 -872
- package/skills/ti-guides/references/alloy-cli-advanced.md +0 -84
- package/skills/ti-guides/references/alloy-data-mastery.md +0 -29
- package/skills/ti-guides/references/alloy-widgets-and-themes.md +0 -19
- /package/skills/{alloy-expert → ti-expert}/assets/ControllerAutoCleanup.js +0 -0
- /package/skills/{alloy-expert → ti-expert}/references/contracts.md +0 -0
|
@@ -14,47 +14,6 @@ PurgeTSS provides a comprehensive suite of CLI commands for project setup, asset
|
|
|
14
14
|
- **Improved Unicode Extraction**: Enhanced support for various Unicode formats and direct character mappings
|
|
15
15
|
:::
|
|
16
16
|
|
|
17
|
-
## Table of Contents
|
|
18
|
-
|
|
19
|
-
- [PurgeTSS CLI Commands Guide](#purgetss-cli-commands-guide)
|
|
20
|
-
- [Table of Contents](#table-of-contents)
|
|
21
|
-
- [Setup Commands](#setup-commands)
|
|
22
|
-
- [`purgetss init` (alias: `i`)](#purgetss-init-alias-i)
|
|
23
|
-
- [`purgetss create` (alias: `c`)](#purgetss-create-alias-c)
|
|
24
|
-
- [`purgetss install-dependencies` (alias: `id`)](#purgetss-install-dependencies-alias-id)
|
|
25
|
-
- [Development Commands](#development-commands)
|
|
26
|
-
- [`purgetss build` (alias: `b`)](#purgetss-build-alias-b)
|
|
27
|
-
- [`purgetss watch` (alias: `w`)](#purgetss-watch-alias-w)
|
|
28
|
-
- [Asset Commands](#asset-commands)
|
|
29
|
-
- [`purgetss icon-library` (alias: `il`)](#purgetss-icon-library-alias-il)
|
|
30
|
-
- [CommonJS Module](#commonjs-module)
|
|
31
|
-
- [Font Awesome Pro](#font-awesome-pro)
|
|
32
|
-
- [Font Awesome 7 Beta](#font-awesome-7-beta)
|
|
33
|
-
- [Font Example File](#font-example-file)
|
|
34
|
-
- [`purgetss build-fonts` (alias: `bf`)](#purgetss-build-fonts-alias-bf)
|
|
35
|
-
- [For Text Fonts (Google Fonts, etc.)](#for-text-fonts-google-fonts-etc)
|
|
36
|
-
- [For Icon Fonts (Custom Libraries)](#for-icon-fonts-custom-libraries)
|
|
37
|
-
- [CommonJS Module for Custom Fonts](#commonjs-module-for-custom-fonts)
|
|
38
|
-
- [Utility Commands](#utility-commands)
|
|
39
|
-
- [`purgetss shades` (alias: `s`)](#purgetss-shades-alias-s)
|
|
40
|
-
- [`purgetss color-module` (alias: `cm`)](#purgetss-color-module-alias-cm)
|
|
41
|
-
- [`purgetss module` (alias: `m`)](#purgetss-module-alias-m)
|
|
42
|
-
- [Maintenance Commands](#maintenance-commands)
|
|
43
|
-
- [`purgetss update` (alias: `u`)](#purgetss-update-alias-u)
|
|
44
|
-
- [`purgetss sudo-update` (alias: `su`)](#purgetss-sudo-update-alias-su)
|
|
45
|
-
- [Command Quick Reference](#command-quick-reference)
|
|
46
|
-
- [Advanced Usage](#advanced-usage)
|
|
47
|
-
- [Combining Commands for New Projects](#combining-commands-for-new-projects)
|
|
48
|
-
- [Setting Up an Existing Project](#setting-up-an-existing-project)
|
|
49
|
-
- [Quick Reference: New Project Setup Commands](#quick-reference-new-project-setup-commands)
|
|
50
|
-
- [Safelist for Large Projects](#safelist-for-large-projects)
|
|
51
|
-
- [Disabling Specific Classes](#disabling-specific-classes)
|
|
52
|
-
- [Troubleshooting Commands](#troubleshooting-commands)
|
|
53
|
-
- [Verifying Installation](#verifying-installation)
|
|
54
|
-
- [Debug Mode](#debug-mode)
|
|
55
|
-
|
|
56
|
-
---
|
|
57
|
-
|
|
58
17
|
## Setup Commands
|
|
59
18
|
|
|
60
19
|
### `purgetss init` (alias: `i`)
|
|
@@ -2,61 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
Complete list of all properties that can be customized in `config.cjs` under the `theme` section.
|
|
4
4
|
|
|
5
|
-
## Table of Contents
|
|
6
|
-
|
|
7
|
-
- [Configurable Properties Reference](#configurable-properties-reference)
|
|
8
|
-
- [Table of Contents](#table-of-contents)
|
|
9
|
-
- [Color Properties (50+ properties)](#color-properties-50-properties)
|
|
10
|
-
- [Background Colors](#background-colors)
|
|
11
|
-
- [Text Colors](#text-colors)
|
|
12
|
-
- [UI Element Colors](#ui-element-colors)
|
|
13
|
-
- [Border \& Separator Colors](#border--separator-colors)
|
|
14
|
-
- [Navigation \& Button Colors](#navigation--button-colors)
|
|
15
|
-
- [Indicator Colors](#indicator-colors)
|
|
16
|
-
- [Badge \& Notification Colors](#badge--notification-colors)
|
|
17
|
-
- [Miscellaneous Colors](#miscellaneous-colors)
|
|
18
|
-
- [Spacing \& Size Properties](#spacing--size-properties)
|
|
19
|
-
- [Dimensions](#dimensions)
|
|
20
|
-
- [Margin](#margin)
|
|
21
|
-
- [Padding](#padding)
|
|
22
|
-
- [Background Padding](#background-padding)
|
|
23
|
-
- [Content Size](#content-size)
|
|
24
|
-
- [Gaps](#gaps)
|
|
25
|
-
- [Border Properties](#border-properties)
|
|
26
|
-
- [Background Caps](#background-caps)
|
|
27
|
-
- [Positioning Properties](#positioning-properties)
|
|
28
|
-
- [Typography Properties](#typography-properties)
|
|
29
|
-
- [Layout Properties](#layout-properties)
|
|
30
|
-
- [Opacity \& Visibility](#opacity--visibility)
|
|
31
|
-
- [Transformation Properties](#transformation-properties)
|
|
32
|
-
- [Animation Properties](#animation-properties)
|
|
33
|
-
- [Z-Index \& Layering](#z-index--layering)
|
|
34
|
-
- [Shadow Properties](#shadow-properties)
|
|
35
|
-
- [Section Properties](#section-properties)
|
|
36
|
-
- [Separator Properties](#separator-properties)
|
|
37
|
-
- [Paging Properties](#paging-properties)
|
|
38
|
-
- [Zoom Properties](#zoom-properties)
|
|
39
|
-
- [Button Properties](#button-properties)
|
|
40
|
-
- [Left/Right Width](#leftright-width)
|
|
41
|
-
- [Cache Properties](#cache-properties)
|
|
42
|
-
- [Other Properties](#other-properties)
|
|
43
|
-
- [Quick Reference Table](#quick-reference-table)
|
|
44
|
-
- [Customizing in config.cjs](#customizing-in-configcjs)
|
|
45
|
-
- [Override Default Values](#override-default-values)
|
|
46
|
-
- [Extend Default Values](#extend-default-values)
|
|
47
|
-
- [Mix Override and Extend](#mix-override-and-extend)
|
|
48
|
-
- [Practical Examples](#practical-examples)
|
|
49
|
-
- [Complete Brand Color System](#complete-brand-color-system)
|
|
50
|
-
- [Custom Spacing Scale](#custom-spacing-scale)
|
|
51
|
-
- [Custom Font Family System](#custom-font-family-system)
|
|
52
|
-
- [Custom Border Radius Scale](#custom-border-radius-scale)
|
|
53
|
-
- [Complete Card Component via Ti Element](#complete-card-component-via-ti-element)
|
|
54
|
-
- [Button System with Variants](#button-system-with-variants)
|
|
55
|
-
- [Form Input System](#form-input-system)
|
|
56
|
-
- [Related References](#related-references)
|
|
57
|
-
|
|
58
|
-
---
|
|
59
|
-
|
|
60
5
|
## Color Properties (50+ properties)
|
|
61
6
|
|
|
62
7
|
All color properties inherit values from `theme.colors` and support a full color palette plus any custom colors you define.
|
|
@@ -6,20 +6,6 @@ Custom rules in PurgeTSS allow you to style **Titanium elements**, **IDs**, and
|
|
|
6
6
|
This feature is particularly useful for meeting visual and design requirements across multiple platforms (iOS and Android).
|
|
7
7
|
:::
|
|
8
8
|
|
|
9
|
-
## Table of Contents
|
|
10
|
-
|
|
11
|
-
- [Custom Rules for Ti Elements, IDs, and Classes](#custom-rules-for-ti-elements-ids-and-classes)
|
|
12
|
-
- [Table of Contents](#table-of-contents)
|
|
13
|
-
- [Naming Conventions](#naming-conventions)
|
|
14
|
-
- [Modifier Keys](#modifier-keys)
|
|
15
|
-
- [Platform, Device, and Conditional Blocks](#platform-device-and-conditional-blocks)
|
|
16
|
-
- [Property Values](#property-values)
|
|
17
|
-
- [Config Example](#config-example)
|
|
18
|
-
- [Generated TSS Output](#generated-tss-output)
|
|
19
|
-
- [Complete Styling Example](#complete-styling-example)
|
|
20
|
-
|
|
21
|
-
---
|
|
22
|
-
|
|
23
9
|
## Naming Conventions
|
|
24
10
|
|
|
25
11
|
| Target Type | Naming Convention | Example |
|
|
@@ -8,55 +8,6 @@ PurgeTSS allows for extreme customization through its configuration file, custom
|
|
|
8
8
|
**Legacy Mode Removed**: Legacy mode has been completely removed from PurgeTSS v7.2.x. All legacy-related options have been eliminated for a cleaner, modern codebase.
|
|
9
9
|
:::
|
|
10
10
|
|
|
11
|
-
## Table of Contents
|
|
12
|
-
|
|
13
|
-
- [PurgeTSS Deep Customization](#purgetss-deep-customization)
|
|
14
|
-
- [Table of Contents](#table-of-contents)
|
|
15
|
-
- [The `config.cjs` File](#the-configcjs-file)
|
|
16
|
-
- [File Structure](#file-structure)
|
|
17
|
-
- [Creating a Fresh config.cjs](#creating-a-fresh-configcjs)
|
|
18
|
-
- [The `purge` Section](#the-purge-section)
|
|
19
|
-
- [`mode` Property](#mode-property)
|
|
20
|
-
- [`method` Property](#method-property)
|
|
21
|
-
- [`options` Properties](#options-properties)
|
|
22
|
-
- [The `theme` Section](#the-theme-section)
|
|
23
|
-
- [Overriding vs Extending](#overriding-vs-extending)
|
|
24
|
-
- [Customizing Colors](#customizing-colors)
|
|
25
|
-
- [Color Object Syntax](#color-object-syntax)
|
|
26
|
-
- [Overriding Default Colors](#overriding-default-colors)
|
|
27
|
-
- [Extending the Palette](#extending-the-palette)
|
|
28
|
-
- [Customizing Spacing](#customizing-spacing)
|
|
29
|
-
- [Shared Spacing Behavior](#shared-spacing-behavior)
|
|
30
|
-
- [List of Customizable Properties](#list-of-customizable-properties)
|
|
31
|
-
- [Global Properties](#global-properties)
|
|
32
|
-
- [Color Properties (50+ properties)](#color-properties-50-properties)
|
|
33
|
-
- [Configurable Properties (80+ properties)](#configurable-properties-80-properties)
|
|
34
|
-
- [Custom Rules \& Ti Elements](#custom-rules--ti-elements)
|
|
35
|
-
- [Modifier Key](#modifier-key)
|
|
36
|
-
- [Default, Platform, Device, or Conditional Blocks](#default-platform-device-or-conditional-blocks)
|
|
37
|
-
- [Property Values](#property-values)
|
|
38
|
-
- [Complete Example](#complete-example)
|
|
39
|
-
- [The `@apply` Directive](#the-apply-directive)
|
|
40
|
-
- [Platform-Specific Classes with `@apply`](#platform-specific-classes-with-apply)
|
|
41
|
-
- [Correct Usage - With Platform Variant](#correct-usage---with-platform-variant)
|
|
42
|
-
- [Wrong Usage - Omitting Platform Variant](#wrong-usage---omitting-platform-variant)
|
|
43
|
-
- [Why Platform Variants Are Required](#why-platform-variants-are-required)
|
|
44
|
-
- [Combining Platform Variants](#combining-platform-variants)
|
|
45
|
-
- [String vs Array Syntax](#string-vs-array-syntax)
|
|
46
|
-
- [Platform \& Device Modifiers in XML](#platform--device-modifiers-in-xml)
|
|
47
|
-
- [Platform Modifiers](#platform-modifiers)
|
|
48
|
-
- [Device Modifiers](#device-modifiers)
|
|
49
|
-
- [Custom Conditional Modifiers](#custom-conditional-modifiers)
|
|
50
|
-
- [Icon Font Support](#icon-font-support)
|
|
51
|
-
- [Theme Extension Best Practices](#theme-extension-best-practices)
|
|
52
|
-
- [1. Use `extend` for Additions](#1-use-extend-for-additions)
|
|
53
|
-
- [2. Use Direct Properties for Overrides](#2-use-direct-properties-for-overrides)
|
|
54
|
-
- [3. Mix Both When Needed](#3-mix-both-when-needed)
|
|
55
|
-
- [Summary Checklist](#summary-checklist)
|
|
56
|
-
- [Related References](#related-references)
|
|
57
|
-
|
|
58
|
-
---
|
|
59
|
-
|
|
60
11
|
## The `config.cjs` File
|
|
61
12
|
|
|
62
13
|
By default, **PurgeTSS** will look for a `./purgetss/config.cjs` file where you can define customizations.
|
|
@@ -1,42 +1,5 @@
|
|
|
1
1
|
# Dynamic Component Creation with PurgeTSS
|
|
2
2
|
|
|
3
|
-
## Table of Contents
|
|
4
|
-
|
|
5
|
-
- [Dynamic Component Creation with PurgeTSS](#dynamic-component-creation-with-purgetss)
|
|
6
|
-
- [Table of Contents](#table-of-contents)
|
|
7
|
-
- [Overview](#overview)
|
|
8
|
-
- [Method 1: `$.UI.create()` (Recommended)](#method-1-uicreate-recommended)
|
|
9
|
-
- [Basic Syntax](#basic-syntax)
|
|
10
|
-
- [Complete Example: Theme Card](#complete-example-theme-card)
|
|
11
|
-
- [Supported Components](#supported-components)
|
|
12
|
-
- [Classes Format Options](#classes-format-options)
|
|
13
|
-
- [Platform Modifiers in Dynamic Components](#platform-modifiers-in-dynamic-components)
|
|
14
|
-
- [Arbitrary Values](#arbitrary-values)
|
|
15
|
-
- [Adding Children Dynamically](#adding-children-dynamically)
|
|
16
|
-
- [Method 2: `Alloy.createStyle()` + `applyProperties()`](#method-2-alloycreatestyle--applyproperties)
|
|
17
|
-
- [When to Use This Method](#when-to-use-this-method)
|
|
18
|
-
- [Basic Syntax](#basic-syntax-1)
|
|
19
|
-
- [Complete Example](#complete-example)
|
|
20
|
-
- [Classes Format](#classes-format)
|
|
21
|
-
- [Comparison: Which Method to Use?](#comparison-which-method-to-use)
|
|
22
|
-
- [Real-World Examples](#real-world-examples)
|
|
23
|
-
- [Example 1: Dynamic Form Fields](#example-1-dynamic-form-fields)
|
|
24
|
-
- [Example 2: Dynamic List Items](#example-2-dynamic-list-items)
|
|
25
|
-
- [Example 3: Dynamic Theme Switching](#example-3-dynamic-theme-switching)
|
|
26
|
-
- [Example 4: Dynamic Icon Grid](#example-4-dynamic-icon-grid)
|
|
27
|
-
- [Important Notes](#important-notes)
|
|
28
|
-
- [PurgeTSS Processes Classes During Build](#purgetss-processes-classes-during-build)
|
|
29
|
-
- [Class Verification](#class-verification)
|
|
30
|
-
- [Platform-Specific Best Practices](#platform-specific-best-practices)
|
|
31
|
-
- [Anti-Patterns to Avoid](#anti-patterns-to-avoid)
|
|
32
|
-
- [❌ Don't Use `Ti.UI.create()` with Manual Styles](#-dont-use-tiuicreate-with-manual-styles)
|
|
33
|
-
- [✅ Use `$.UI.create()` with PurgeTSS Classes](#-use-uicreate-with-purgetss-classes)
|
|
34
|
-
- [❌ Don't Mix Styles and Classes](#-dont-mix-styles-and-classes)
|
|
35
|
-
- [✅ Use Only Classes (or Only Styles)](#-use-only-classes-or-only-styles)
|
|
36
|
-
- [Summary](#summary)
|
|
37
|
-
|
|
38
|
-
---
|
|
39
|
-
|
|
40
3
|
## Overview
|
|
41
4
|
|
|
42
5
|
When creating components dynamically in Controllers (not declaratively in XML), PurgeTSS provides two powerful methods to apply utility classes:
|
|
@@ -416,6 +379,62 @@ if (OS_IOS) {
|
|
|
416
379
|
|
|
417
380
|
---
|
|
418
381
|
|
|
382
|
+
## Dynamic Styling with `classes` Property
|
|
383
|
+
|
|
384
|
+
You can change PurgeTSS classes dynamically at runtime using the `classes` property in `applyProperties()`:
|
|
385
|
+
|
|
386
|
+
```javascript
|
|
387
|
+
// Toggle status styling dynamically
|
|
388
|
+
function setStatus(isActive) {
|
|
389
|
+
$.statusLabel.applyProperties({
|
|
390
|
+
classes: isActive ? ['text-green-500'] : ['text-red-500'],
|
|
391
|
+
text: isActive ? L('active') : L('inactive')
|
|
392
|
+
})
|
|
393
|
+
}
|
|
394
|
+
```
|
|
395
|
+
|
|
396
|
+
### Conditional Styling Based on State
|
|
397
|
+
|
|
398
|
+
```javascript
|
|
399
|
+
// Loading state button
|
|
400
|
+
function setLoading(isLoading) {
|
|
401
|
+
$.submitBtn.applyProperties({
|
|
402
|
+
enabled: !isLoading,
|
|
403
|
+
title: isLoading ? L('saving') : L('save')
|
|
404
|
+
})
|
|
405
|
+
}
|
|
406
|
+
|
|
407
|
+
// Error state on form field
|
|
408
|
+
function showFieldError(field, errorLabel, hasError) {
|
|
409
|
+
$[field].applyProperties({
|
|
410
|
+
borderColor: hasError ? '#ef4444' : '#d1d5db'
|
|
411
|
+
})
|
|
412
|
+
$[errorLabel].applyProperties({
|
|
413
|
+
visible: hasError
|
|
414
|
+
})
|
|
415
|
+
}
|
|
416
|
+
```
|
|
417
|
+
|
|
418
|
+
### Visibility Toggle Pattern
|
|
419
|
+
|
|
420
|
+
```javascript
|
|
421
|
+
// Show/hide views based on state
|
|
422
|
+
function setState(state) {
|
|
423
|
+
const states = ['loadingState', 'contentState', 'errorState']
|
|
424
|
+
states.forEach(s => {
|
|
425
|
+
$[s].visible = s === state
|
|
426
|
+
})
|
|
427
|
+
}
|
|
428
|
+
```
|
|
429
|
+
|
|
430
|
+
:::tip When to Use `classes` vs `applyProperties`
|
|
431
|
+
- Use `classes` when you want to swap entire style sets (e.g., active/inactive states)
|
|
432
|
+
- Use `applyProperties` with direct values when changing individual properties (e.g., text, enabled)
|
|
433
|
+
- Combine both for complex state changes
|
|
434
|
+
:::
|
|
435
|
+
|
|
436
|
+
---
|
|
437
|
+
|
|
419
438
|
## Anti-Patterns to Avoid
|
|
420
439
|
|
|
421
440
|
### ❌ Don't Use `Ti.UI.create()` with Manual Styles
|
|
@@ -6,38 +6,6 @@ The PurgeTSS grid system is a layout tool with utilities to lay out columns and
|
|
|
6
6
|
**PurgeTSS grid does NOT work like CSS Grid.** Titanium lacks native CSS Grid support. The PurgeTSS grid system is an abstraction using `horizontal` and `vertical` layouts with percentage widths and margins.
|
|
7
7
|
:::
|
|
8
8
|
|
|
9
|
-
## Table of Contents
|
|
10
|
-
|
|
11
|
-
- [Grid Layout System](#grid-layout-system)
|
|
12
|
-
- [Table of Contents](#table-of-contents)
|
|
13
|
-
- [Basic Structure](#basic-structure)
|
|
14
|
-
- [Column Grid](#column-grid)
|
|
15
|
-
- [`.grid-cols-{n}`](#grid-cols-n)
|
|
16
|
-
- [`.col-span-{n}`](#col-span-n)
|
|
17
|
-
- [Row Grid](#row-grid)
|
|
18
|
-
- [`.grid-rows-{n}`](#grid-rows-n)
|
|
19
|
-
- [`.row-span-{n}`](#row-span-n)
|
|
20
|
-
- [Gutter Utilities](#gutter-utilities)
|
|
21
|
-
- [Available Gap Utilities](#available-gap-utilities)
|
|
22
|
-
- [Direction Utilities](#direction-utilities)
|
|
23
|
-
- [Alignment Utilities](#alignment-utilities)
|
|
24
|
-
- [Common Layout Patterns](#common-layout-patterns)
|
|
25
|
-
- [Two-Column Layout](#two-column-layout)
|
|
26
|
-
- [Three-Column Layout](#three-column-layout)
|
|
27
|
-
- [Sidebar + Main Content](#sidebar--main-content)
|
|
28
|
-
- [Asymmetric Layout](#asymmetric-layout)
|
|
29
|
-
- [Grid System Pitfalls and Solutions](#grid-system-pitfalls-and-solutions)
|
|
30
|
-
- [Problem: Gap Breaks Percentage Widths](#problem-gap-breaks-percentage-widths)
|
|
31
|
-
- [Problem: Grid Without w-screen](#problem-grid-without-w-screen)
|
|
32
|
-
- [Problem: Missing Gap Container](#problem-missing-gap-container)
|
|
33
|
-
- [When to Use Grid vs. Manual Layout](#when-to-use-grid-vs-manual-layout)
|
|
34
|
-
- [Use Grid System When:](#use-grid-system-when)
|
|
35
|
-
- [Use Manual Layout When:](#use-manual-layout-when)
|
|
36
|
-
- [Complete Utility Reference](#complete-utility-reference)
|
|
37
|
-
- [Real-World Example](#real-world-example)
|
|
38
|
-
|
|
39
|
-
---
|
|
40
|
-
|
|
41
9
|
## Basic Structure
|
|
42
10
|
|
|
43
11
|
This is the most basic layout for using the grid system:
|
|
@@ -19,56 +19,6 @@ Previous versions of PurgeTSS included several icon font libraries such as Boots
|
|
|
19
19
|
|
|
20
20
|
:::
|
|
21
21
|
|
|
22
|
-
## Table of Contents
|
|
23
|
-
|
|
24
|
-
- [Icon Fonts Libraries](#icon-fonts-libraries)
|
|
25
|
-
- [Table of Contents](#table-of-contents)
|
|
26
|
-
- [Installing Official Icon Fonts](#installing-official-icon-fonts)
|
|
27
|
-
- [Using Icon Fonts in XML](#using-icon-fonts-in-xml)
|
|
28
|
-
- [Font Awesome 7](#font-awesome-7)
|
|
29
|
-
- [Material Icons](#material-icons)
|
|
30
|
-
- [Material Symbols](#material-symbols)
|
|
31
|
-
- [Framework7 Icons](#framework7-icons)
|
|
32
|
-
- [Recreating Deleted Libraries](#recreating-deleted-libraries)
|
|
33
|
-
- [Step 1: Download the Libraries](#step-1-download-the-libraries)
|
|
34
|
-
- [Step 2: Place in fonts Folder](#step-2-place-in-fonts-folder)
|
|
35
|
-
- [Step 3: Run build-fonts Command](#step-3-run-build-fonts-command)
|
|
36
|
-
- [Generated fonts.tss Example](#generated-fontstss-example)
|
|
37
|
-
- [Renaming the Style Rule Name](#renaming-the-style-rule-name)
|
|
38
|
-
- [Using Custom Font Modules](#using-custom-font-modules)
|
|
39
|
-
- [Generated Module Structure](#generated-module-structure)
|
|
40
|
-
- [Usage in Controllers](#usage-in-controllers)
|
|
41
|
-
- [The --prefix Option](#the---prefix-option)
|
|
42
|
-
- [Example with Custom Prefix](#example-with-custom-prefix)
|
|
43
|
-
- [Icon Font Best Practices](#icon-font-best-practices)
|
|
44
|
-
- [1. Use Semantic Icon Names](#1-use-semantic-icon-names)
|
|
45
|
-
- [2. Combine with Styling Classes](#2-combine-with-styling-classes)
|
|
46
|
-
- [3. Use in Navigation](#3-use-in-navigation)
|
|
47
|
-
- [4. Dynamic Icons in Controllers](#4-dynamic-icons-in-controllers)
|
|
48
|
-
- [Font Assets Folder](#font-assets-folder)
|
|
49
|
-
- [Icon Sizing and Styling](#icon-sizing-and-styling)
|
|
50
|
-
- [Common Patterns](#common-patterns)
|
|
51
|
-
- [Icon with Text](#icon-with-text)
|
|
52
|
-
- [Circular Icon Button](#circular-icon-button)
|
|
53
|
-
- [Icon Badge](#icon-badge)
|
|
54
|
-
- [Social Media Icons](#social-media-icons)
|
|
55
|
-
- [Troubleshooting](#troubleshooting)
|
|
56
|
-
- [Icons Not Displaying](#icons-not-displaying)
|
|
57
|
-
- [Wrong Icon Character](#wrong-icon-character)
|
|
58
|
-
- [Icons Different on iOS vs Android](#icons-different-on-ios-vs-android)
|
|
59
|
-
- [Vendor-Specific Notes](#vendor-specific-notes)
|
|
60
|
-
- [Font Awesome 7](#font-awesome-7-1)
|
|
61
|
-
- [Font Awesome Pro](#font-awesome-pro)
|
|
62
|
-
- [Setting Up Font Awesome Pro](#setting-up-font-awesome-pro)
|
|
63
|
-
- [Pro Icon Styles](#pro-icon-styles)
|
|
64
|
-
- [Font Awesome 7 Beta](#font-awesome-7-beta)
|
|
65
|
-
- [Setting Up Font Awesome 7 Beta](#setting-up-font-awesome-7-beta)
|
|
66
|
-
- [Testing Beta Icons](#testing-beta-icons)
|
|
67
|
-
- [Material Icons vs Material Symbols](#material-icons-vs-material-symbols)
|
|
68
|
-
- [Complete Command Reference](#complete-command-reference)
|
|
69
|
-
|
|
70
|
-
---
|
|
71
|
-
|
|
72
22
|
## Installing Official Icon Fonts
|
|
73
23
|
|
|
74
24
|
Use the `icon-library` command to download and install official icon fonts:
|
|
@@ -2,38 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
PurgeTSS must be installed globally and initialized within each Titanium Alloy project to enable its utility-first workflow.
|
|
4
4
|
|
|
5
|
-
## Table of Contents
|
|
6
|
-
|
|
7
|
-
- [PurgeTSS Installation \& Setup](#purgetss-installation--setup)
|
|
8
|
-
- [Table of Contents](#table-of-contents)
|
|
9
|
-
- [Prerequisites](#prerequisites)
|
|
10
|
-
- [Global Installation](#global-installation)
|
|
11
|
-
- [Initial Project Setup](#initial-project-setup)
|
|
12
|
-
- [Running PurgeTSS for the First Time](#running-purgetss-for-the-first-time)
|
|
13
|
-
- [What Happens on First Run](#what-happens-on-first-run)
|
|
14
|
-
- [1. Auto-Run Hook Setup](#1-auto-run-hook-setup)
|
|
15
|
-
- [2. purgetss Folder Structure](#2-purgetss-folder-structure)
|
|
16
|
-
- [3. app.tss Backup](#3-apptss-backup)
|
|
17
|
-
- [Creating a Fresh config.cjs](#creating-a-fresh-configcjs)
|
|
18
|
-
- [Visual Studio Code Integration](#visual-studio-code-integration)
|
|
19
|
-
- [Quick Setup with install-dependencies](#quick-setup-with-install-dependencies)
|
|
20
|
-
- [Manual Extension Setup](#manual-extension-setup)
|
|
21
|
-
- [Extension Configuration](#extension-configuration)
|
|
22
|
-
- [Tailwind Config for VS Code](#tailwind-config-for-vs-code)
|
|
23
|
-
- [LiveView Development](#liveview-development)
|
|
24
|
-
- [Enabling LiveView](#enabling-liveview)
|
|
25
|
-
- [LiveView with TiKit Components](#liveview-with-tikit-components)
|
|
26
|
-
- [LiveView Development Workflow](#liveview-development-workflow)
|
|
27
|
-
- [Common LiveView Issues](#common-liveview-issues)
|
|
28
|
-
- [First Run Example](#first-run-example)
|
|
29
|
-
- [Quick Start with Example Files](#quick-start-with-example-files)
|
|
30
|
-
- [Troubleshooting](#troubleshooting)
|
|
31
|
-
- [PurgeTSS Not Running on Compile](#purgetss-not-running-on-compile)
|
|
32
|
-
- [Classes Not Appearing in IntelliSense](#classes-not-appearing-in-intellisense)
|
|
33
|
-
- [Missing Classes Report](#missing-classes-report)
|
|
34
|
-
|
|
35
|
-
---
|
|
36
|
-
|
|
37
5
|
## Prerequisites
|
|
38
6
|
|
|
39
7
|
:::caution Node.js 20+ Required
|
|
@@ -119,6 +87,67 @@ Alternatively, a better approach is to include your custom values in `config.cjs
|
|
|
119
87
|
|
|
120
88
|
Every time `purgetss` runs, it copies the content of `_app.tss` to `app.tss` (if it exists).
|
|
121
89
|
|
|
90
|
+
## Project Structure with PurgeTSS
|
|
91
|
+
|
|
92
|
+
Show the complete folder structure highlighting PurgeTSS-specific files:
|
|
93
|
+
|
|
94
|
+
```
|
|
95
|
+
app/
|
|
96
|
+
├── controllers/
|
|
97
|
+
├── views/ # XML views styled with PurgeTSS classes
|
|
98
|
+
├── styles/
|
|
99
|
+
│ ├── app.tss # GENERATED by PurgeTSS (Do not edit)
|
|
100
|
+
│ ├── _app.tss # YOUR custom styles (persists across runs)
|
|
101
|
+
│ └── fonts.tss # GENERATED by PurgeTSS build-fonts
|
|
102
|
+
├── widgets/ # Optional: reusable components
|
|
103
|
+
│ └── myWidget/
|
|
104
|
+
├── config.json # Set autoStyle: false for PurgeTSS
|
|
105
|
+
└── alloy.js
|
|
106
|
+
|
|
107
|
+
./purgetss/
|
|
108
|
+
├── config.cjs # PurgeTSS theme configuration
|
|
109
|
+
└── styles/
|
|
110
|
+
└── utilities.tss # All utility classes
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
### Key Files
|
|
114
|
+
|
|
115
|
+
| File | Role | Editable? |
|
|
116
|
+
| ----------------------- | -------------------------------------------------- | ------------ |
|
|
117
|
+
| `app/styles/app.tss` | Auto-generated by PurgeTSS with only used classes | ❌ Never edit |
|
|
118
|
+
| `app/styles/_app.tss` | Your custom styles, preserved across PurgeTSS runs | ✅ Yes |
|
|
119
|
+
| `app/styles/fonts.tss` | Auto-generated by `purgetss build-fonts` | ❌ Never edit |
|
|
120
|
+
| `./purgetss/config.cjs` | Theme configuration, custom colors, fonts | ✅ Yes |
|
|
121
|
+
|
|
122
|
+
### config.json for PurgeTSS
|
|
123
|
+
|
|
124
|
+
```json
|
|
125
|
+
{
|
|
126
|
+
"autoStyle": false
|
|
127
|
+
}
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
:::caution autoStyle Must Be false
|
|
131
|
+
When using PurgeTSS, set `autoStyle: false` in `config.json`. PurgeTSS handles all style generation.
|
|
132
|
+
:::
|
|
133
|
+
|
|
134
|
+
### PurgeTSS with Widgets
|
|
135
|
+
|
|
136
|
+
If widgets use PurgeTSS utility classes, enable widget processing:
|
|
137
|
+
|
|
138
|
+
```javascript
|
|
139
|
+
// ./purgetss/config.cjs
|
|
140
|
+
module.exports = {
|
|
141
|
+
purge: {
|
|
142
|
+
options: {
|
|
143
|
+
widgets: true // Enable PurgeTSS class processing for widgets
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
Without this setting, PurgeTSS will NOT process classes in widget files.
|
|
150
|
+
|
|
122
151
|
## Creating a Fresh config.cjs
|
|
123
152
|
|
|
124
153
|
If you need to start with a fresh `config.cjs` file, delete the existing one and run:
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
# Migrating to PurgeTSS
|
|
2
|
+
|
|
3
|
+
Guide for migrating existing Titanium Alloy apps from manual TSS styling to PurgeTSS utility-first workflow.
|
|
4
|
+
|
|
5
|
+
## Assessment Checklist
|
|
6
|
+
|
|
7
|
+
Before migrating, evaluate styling in the current codebase:
|
|
8
|
+
|
|
9
|
+
| Current State | Target State |
|
|
10
|
+
| -------------------------------------------- | ----------------------------------------- |
|
|
11
|
+
| Manual `.tss` files per controller | PurgeTSS utility classes in XML |
|
|
12
|
+
| Inline attributes (`backgroundColor="#fff"`) | PurgeTSS classes (`bg-white`) |
|
|
13
|
+
| `id`-based styles in `app.tss` | Class-based utility styling |
|
|
14
|
+
| Manual 2D Matrix animations | PurgeTSS Animation component |
|
|
15
|
+
| Platform conditionals in controllers | PurgeTSS platform modifiers (`ios:mt-10`) |
|
|
16
|
+
|
|
17
|
+
## Step 1: Initialize PurgeTSS
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
cd your-app
|
|
21
|
+
purgetss init
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
This creates the `./purgetss/` folder with `config.cjs` and sets up the auto-run hook.
|
|
25
|
+
|
|
26
|
+
## Step 2: Backup Existing Styles
|
|
27
|
+
|
|
28
|
+
PurgeTSS automatically backs up your existing `app.tss` to `_app.tss`. Your custom styles are preserved and will be merged during compilation.
|
|
29
|
+
|
|
30
|
+
## Step 3: Migrate Views Incrementally
|
|
31
|
+
|
|
32
|
+
Migrate one view at a time. Don't try to convert everything at once.
|
|
33
|
+
|
|
34
|
+
### Before (Manual TSS)
|
|
35
|
+
|
|
36
|
+
```xml
|
|
37
|
+
<!-- views/index.xml -->
|
|
38
|
+
<View id="header">
|
|
39
|
+
<Label id="title" text="Welcome" />
|
|
40
|
+
</View>
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
```tss
|
|
44
|
+
/* styles/index.tss */
|
|
45
|
+
"#header": { backgroundColor: "#fff", height: 60, top: 0 }
|
|
46
|
+
"#title": { color: "#333", font: { fontSize: 18, fontWeight: "bold" } }
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### After (PurgeTSS)
|
|
50
|
+
|
|
51
|
+
```xml
|
|
52
|
+
<!-- views/index.xml -->
|
|
53
|
+
<View class="top-0 h-16 bg-white">
|
|
54
|
+
<Label class="text-lg font-bold text-gray-800" text="Welcome" />
|
|
55
|
+
</View>
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
No manual TSS needed — delete the `#header` and `#title` styles.
|
|
59
|
+
|
|
60
|
+
## Step 4: Remove Manual TSS Files
|
|
61
|
+
|
|
62
|
+
Once a view is fully migrated to utility classes:
|
|
63
|
+
|
|
64
|
+
1. Remove corresponding entries from `_app.tss`
|
|
65
|
+
2. Delete any controller-specific `.tss` files (e.g., `styles/login.tss`)
|
|
66
|
+
3. Run `purgetss` to regenerate `app.tss`
|
|
67
|
+
|
|
68
|
+
## Common Style Translations
|
|
69
|
+
|
|
70
|
+
| Manual TSS | PurgeTSS Class |
|
|
71
|
+
| ------------------------------ | ----------------------- |
|
|
72
|
+
| `backgroundColor: "#ffffff"` | `bg-white` |
|
|
73
|
+
| `backgroundColor: "#f3f4f6"` | `bg-gray-100` |
|
|
74
|
+
| `color: "#1f2937"` | `text-gray-800` |
|
|
75
|
+
| `font: { fontSize: 18 }` | `text-lg` |
|
|
76
|
+
| `font: { fontWeight: "bold" }` | `font-bold` |
|
|
77
|
+
| `width: Ti.UI.FILL` | `w-screen` |
|
|
78
|
+
| `height: Ti.UI.SIZE` | `h-auto` |
|
|
79
|
+
| `height: 60` | `h-16` (64) or `h-(60)` |
|
|
80
|
+
| `top: 0` | `top-0` |
|
|
81
|
+
| `left: 16, right: 16` | `mx-4` |
|
|
82
|
+
| `top: 16` | `mt-4` |
|
|
83
|
+
| `borderRadius: 8` | `rounded-lg` |
|
|
84
|
+
| `opacity: 0.5` | `opacity-50` |
|
|
85
|
+
| `layout: "horizontal"` | `horizontal` |
|
|
86
|
+
| `layout: "vertical"` | `vertical` |
|
|
87
|
+
|
|
88
|
+
### Platform-Specific Translations
|
|
89
|
+
|
|
90
|
+
| Manual Code | PurgeTSS |
|
|
91
|
+
| ---------------------------------------- | -------------------------------- |
|
|
92
|
+
| `if (OS_IOS) { view.top = 40 }` | `class="ios:mt-10 mt-5"` |
|
|
93
|
+
| `if (OS_ANDROID) { view.elevation = 4 }` | `class="android:elevation-4"` |
|
|
94
|
+
| Tablet conditional in controller | `class="tablet:w-6/12 w-screen"` |
|
|
95
|
+
|
|
96
|
+
### Animation Translations
|
|
97
|
+
|
|
98
|
+
| Manual Animation | PurgeTSS Animation |
|
|
99
|
+
| -------------------------------------- | ------------------------------------------------------- |
|
|
100
|
+
| `Ti.UI.create2DMatrix()` + `animate()` | `<Animation module="purgetss.ui" class="..." />` |
|
|
101
|
+
| Manual opacity animation | `class="close:opacity-0 open:opacity-100 duration-300"` |
|
|
102
|
+
| Manual scale animation | `class="close:scale-100 open:scale-95 duration-150"` |
|
|
103
|
+
|
|
104
|
+
## Migration Pitfalls
|
|
105
|
+
|
|
106
|
+
| Pitfall | Consequence | Prevention |
|
|
107
|
+
| -------------------------------- | --------------------------------- | -------------------------------- |
|
|
108
|
+
| Editing `app.tss` directly | Changes overwritten on next build | Use `_app.tss` for custom styles |
|
|
109
|
+
| Migrating styles without testing | Broken layouts | Test each view on both platforms |
|
|
110
|
+
| Using `flex-row`/`justify-*` | Classes don't exist | Use `horizontal`/`vertical` |
|
|
111
|
+
| Using `p-*` on container Views | No padding on containers | Use `m-*` on children |
|
|
112
|
+
| Forgetting `autoStyle: false` | Style conflicts | Set in `config.json` |
|
|
113
|
+
| Using `w-[100px]` syntax | Wrong bracket style | Use `w-(100px)` with parentheses |
|
|
114
|
+
|
|
115
|
+
## Rollback Strategy
|
|
116
|
+
|
|
117
|
+
For each view migration:
|
|
118
|
+
|
|
119
|
+
1. **Create a branch** before starting
|
|
120
|
+
2. **Migrate one view** completely
|
|
121
|
+
3. **Test thoroughly** on both iOS and Android
|
|
122
|
+
4. **Keep legacy styles** in `_app.tss` until stable
|
|
123
|
+
5. **Delete legacy styles** only after confirming utility classes work
|
|
124
|
+
|
|
125
|
+
:::tip Migration Order
|
|
126
|
+
Start with simple views (static content, few elements) and progress to complex ones (forms, lists). This builds familiarity with PurgeTSS classes before tackling harder views.
|
|
127
|
+
:::
|
|
@@ -6,40 +6,6 @@ The opacity modifier allows you to add transparency to **ANY color property** by
|
|
|
6
6
|
You can add an **opacity modifier to ANY of the available color properties** by adding an **opacity value** between 0 and 100 to the end of the color name separated by a slash ( / ).
|
|
7
7
|
:::
|
|
8
8
|
|
|
9
|
-
## Table of Contents
|
|
10
|
-
|
|
11
|
-
- [Opacity Modifier](#opacity-modifier)
|
|
12
|
-
- [Table of Contents](#table-of-contents)
|
|
13
|
-
- [Basic Syntax](#basic-syntax)
|
|
14
|
-
- [How It Works](#how-it-works)
|
|
15
|
-
- [Usage in XML](#usage-in-xml)
|
|
16
|
-
- [Background Colors](#background-colors)
|
|
17
|
-
- [Text Colors](#text-colors)
|
|
18
|
-
- [Border Colors](#border-colors)
|
|
19
|
-
- [All Color Properties](#all-color-properties)
|
|
20
|
-
- [Usage with `@apply` Directive](#usage-with-apply-directive)
|
|
21
|
-
- [Complete List of Supported Color Properties](#complete-list-of-supported-color-properties)
|
|
22
|
-
- [Background Properties](#background-properties)
|
|
23
|
-
- [Text Properties](#text-properties)
|
|
24
|
-
- [Border Properties](#border-properties)
|
|
25
|
-
- [UI Element Properties](#ui-element-properties)
|
|
26
|
-
- [Navigation Properties](#navigation-properties)
|
|
27
|
-
- [Indicator Properties](#indicator-properties)
|
|
28
|
-
- [Tint Properties](#tint-properties)
|
|
29
|
-
- [Miscellaneous Properties](#miscellaneous-properties)
|
|
30
|
-
- [Opacity Value Reference](#opacity-value-reference)
|
|
31
|
-
- [Common Patterns](#common-patterns)
|
|
32
|
-
- [Hover/Active States](#hoveractive-states)
|
|
33
|
-
- [Disabled Appearance](#disabled-appearance)
|
|
34
|
-
- [Overlay/Backdrop](#overlaybackdrop)
|
|
35
|
-
- [Glassmorphism Effect](#glassmorphism-effect)
|
|
36
|
-
- [Gradient Fades](#gradient-fades)
|
|
37
|
-
- [Limitations](#limitations)
|
|
38
|
-
- [Performance Considerations](#performance-considerations)
|
|
39
|
-
- [Combining with Arbitrary Colors](#combining-with-arbitrary-colors)
|
|
40
|
-
|
|
41
|
-
---
|
|
42
|
-
|
|
43
9
|
## Basic Syntax
|
|
44
10
|
|
|
45
11
|
```xml
|