purgetss 7.7.0 → 7.7.1
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/README.md
CHANGED
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
- 23,300+ utility classes for styling Titanium views
|
|
18
18
|
- Parses XML files to generate a clean `app.tss` with only the classes your project uses
|
|
19
19
|
- Customizable defaults via `config.cjs`, with JIT classes for arbitrary values
|
|
20
|
-
- `brand` command for Titanium icons and branding assets,
|
|
20
|
+
- `brand` command for Titanium icons and branding assets, focused on the modern Titanium icon pipeline: Android adaptive icons, iOS icon variants, optional Android 12+ splash artwork, and a minimal `default.png` compatibility fallback
|
|
21
21
|
- Icon font support: Font Awesome, Material Icons, Material Symbols, Framework7-Icons
|
|
22
22
|
- `build-fonts` command generates `fonts.tss` with class definitions and fontFamily selectors
|
|
23
23
|
- `shades` command generates color shades from any hex color
|
|
@@ -384,6 +384,8 @@ Button: {
|
|
|
384
384
|
- `brand` regenerates `app/assets/android/default.png` in Alloy projects, or `Resources/android/default.png` in Classic projects, so older Android splash paths still have a fallback.
|
|
385
385
|
- `cleanup-legacy` no longer removes `default.png`.
|
|
386
386
|
- Branding help and docs now spell out the difference between Android launcher icons, Android 12+ `splash_icon.png`, and legacy Android splash assets.
|
|
387
|
+
- `--notes` is explicit that `tiapp.xml` is not auto-edited and that apps with an existing custom Android theme should merge splash snippets into that theme instead of replacing it.
|
|
388
|
+
- `brand` does not try to manage older Android splash theme assets such as `background.png` or `background.9.png`; if a project still depends on them, that remains manual by design.
|
|
387
389
|
|
|
388
390
|
See the full release notes in [CHANGELOG.md](./CHANGELOG.md).
|
|
389
391
|
|
package/bin/purgetss
CHANGED
|
@@ -273,18 +273,25 @@ The recommended workflow is: put files in ${chalk.cyan('purgetss/brand/')}, then
|
|
|
273
273
|
CLI flags always win over config values.
|
|
274
274
|
|
|
275
275
|
Generates:
|
|
276
|
-
${chalk.yellow('DefaultIcon.png')}
|
|
277
|
-
${chalk.yellow('DefaultIcon-Dark.png')}
|
|
278
|
-
${chalk.yellow('iTunesConnect.png')}
|
|
276
|
+
${chalk.yellow('DefaultIcon.png')}/${chalk.yellow('DefaultIcon-ios.png')} Root icons (alpha + flattened)
|
|
277
|
+
${chalk.yellow('DefaultIcon-Dark.png')}/${chalk.yellow('DefaultIcon-Tinted.png')} iOS 18+ variants (Apple HIG specs)
|
|
278
|
+
${chalk.yellow('iTunesConnect.png')}/${chalk.yellow('MarketplaceArtwork.png')} App Store + Play Store artwork
|
|
279
279
|
${chalk.yellow('mipmap-*/ic_launcher_{foreground,background,monochrome}.png')} Android adaptive × 5
|
|
280
|
-
${chalk.yellow('mipmap-*/ic_launcher.png')}
|
|
281
|
-
${chalk.yellow('mipmap-anydpi-v26/ic_launcher.xml')}
|
|
282
|
-
${chalk.yellow('drawable-*/splash_icon.png')}
|
|
283
|
-
${chalk.yellow('app/assets/android/default.png')}
|
|
280
|
+
${chalk.yellow('mipmap-*/ic_launcher.png')} Android legacy × 5
|
|
281
|
+
${chalk.yellow('mipmap-anydpi-v26/ic_launcher.xml')} Adaptive icon binder
|
|
282
|
+
${chalk.yellow('drawable-*/splash_icon.png')} Android 12+ splash icon (with ${chalk.cyan('--splash')})
|
|
283
|
+
${chalk.yellow('app/assets/android/default.png')} Android <12 compatibility fallback
|
|
284
284
|
|
|
285
285
|
Android dark/light mode is handled by the ${chalk.yellow('monochrome')} adaptive layer
|
|
286
286
|
(Android 13+ tints it from the wallpaper + theme). No separate dark file exists.
|
|
287
287
|
|
|
288
|
+
Scope:
|
|
289
|
+
${chalk.green('brand')} targets the modern Titanium icon pipeline: iOS app icons,
|
|
290
|
+
Android adaptive icons, and optional Android 12+ splash artwork.
|
|
291
|
+
Older Android splash themes such as ${chalk.yellow('background.png')} / ${chalk.yellow('background.9.png')}
|
|
292
|
+
are outside the normal scope of this command and should be managed manually
|
|
293
|
+
if a project still depends on them.
|
|
294
|
+
|
|
288
295
|
Examples:
|
|
289
296
|
${chalk.cyan('purgetss brand')} # uses purgetss/brand/logo.svg + config
|
|
290
297
|
${chalk.cyan('purgetss brand')} logo.svg # explicit logo path
|
package/dist/purgetss.ui.js
CHANGED
|
@@ -13,15 +13,7 @@ module.exports = {
|
|
|
13
13
|
}
|
|
14
14
|
},
|
|
15
15
|
brand: {
|
|
16
|
-
logos: {
|
|
17
|
-
// Optional overrides. If omitted, PurgeTSS auto-discovers files from purgetss/brand/:
|
|
18
|
-
// primary: './docs/logo.svg',
|
|
19
|
-
// androidLauncher: './docs/app-icon.svg',
|
|
20
|
-
// androidSplash: './docs/splash.svg',
|
|
21
|
-
// monochrome: './docs/logo-mono.svg',
|
|
22
|
-
// iosDark: './docs/logo-dark.svg',
|
|
23
|
-
// iosTinted: './docs/logo-tinted.svg'
|
|
24
|
-
},
|
|
16
|
+
logos: {}, // empty = auto-discovers from purgetss/brand/
|
|
25
17
|
padding: {
|
|
26
18
|
ios: '4%', // iOS aesthetic. Range: 2% bold — 8% conservative. No launcher mask.
|
|
27
19
|
androidLegacy: '10%', // legacy ic_launcher.png padding
|
|
@@ -31,15 +23,14 @@ module.exports = {
|
|
|
31
23
|
splash: false, // also generate splash_icon.png × 5
|
|
32
24
|
notification: false // also generate ic_stat_notify.png × 5
|
|
33
25
|
},
|
|
26
|
+
ios: {
|
|
27
|
+
dark: true, // generate iOS 18+ Dark appearance icon
|
|
28
|
+
tinted: true, // generate iOS 18+ Tinted appearance icon
|
|
29
|
+
darkBackground: null // null = transparent per Apple HIG
|
|
30
|
+
},
|
|
34
31
|
colors: {
|
|
35
32
|
background: '#FFFFFF' // Android adaptive bg + iOS/marketplace flatten
|
|
36
33
|
},
|
|
37
|
-
// Optional iOS overrides:
|
|
38
|
-
// ios: {
|
|
39
|
-
// dark: false,
|
|
40
|
-
// tinted: false,
|
|
41
|
-
// darkBackground: '#111111'
|
|
42
|
-
// },
|
|
43
34
|
confirmOverwrites: true // prompt before overwriting files (set false to skip)
|
|
44
35
|
},
|
|
45
36
|
images: {
|
package/package.json
CHANGED
|
@@ -23,15 +23,7 @@ import { projectsConfigJS, projectsPurge_TSS_Brand_Folder } from '../../shared/c
|
|
|
23
23
|
import { logger } from './branding-logger.js'
|
|
24
24
|
|
|
25
25
|
const BRAND_BLOCK = ` brand: {
|
|
26
|
-
logos: {
|
|
27
|
-
// Optional overrides. If omitted, PurgeTSS auto-discovers files from purgetss/brand/:
|
|
28
|
-
// primary: './docs/logo.svg',
|
|
29
|
-
// androidLauncher: './docs/app-icon.svg',
|
|
30
|
-
// androidSplash: './docs/splash.svg',
|
|
31
|
-
// monochrome: './docs/logo-mono.svg',
|
|
32
|
-
// iosDark: './docs/logo-dark.svg',
|
|
33
|
-
// iosTinted: './docs/logo-tinted.svg'
|
|
34
|
-
},
|
|
26
|
+
logos: {}, // empty = auto-discovers from purgetss/brand/
|
|
35
27
|
padding: {
|
|
36
28
|
ios: '4%', // iOS aesthetic. Range: 2% bold — 8% conservative. No launcher mask.
|
|
37
29
|
androidLegacy: '10%', // legacy ic_launcher.png padding
|
|
@@ -41,15 +33,14 @@ const BRAND_BLOCK = ` brand: {
|
|
|
41
33
|
splash: false, // also generate splash_icon.png × 5
|
|
42
34
|
notification: false // also generate ic_stat_notify.png × 5
|
|
43
35
|
},
|
|
36
|
+
ios: {
|
|
37
|
+
dark: true, // generate iOS 18+ Dark appearance icon
|
|
38
|
+
tinted: true, // generate iOS 18+ Tinted appearance icon
|
|
39
|
+
darkBackground: null // null = transparent per Apple HIG
|
|
40
|
+
},
|
|
44
41
|
colors: {
|
|
45
42
|
background: '#FFFFFF' // Android adaptive bg + iOS/marketplace flatten
|
|
46
43
|
},
|
|
47
|
-
// Optional iOS overrides:
|
|
48
|
-
// ios: {
|
|
49
|
-
// dark: false,
|
|
50
|
-
// tinted: false,
|
|
51
|
-
// darkBackground: '#111111'
|
|
52
|
-
// },
|
|
53
44
|
confirmOverwrites: true // prompt before overwriting files (set false to skip)
|
|
54
45
|
},
|
|
55
46
|
`
|
|
@@ -84,6 +84,10 @@ function printFullNotes(opts) {
|
|
|
84
84
|
logger.section('Configuration reminders')
|
|
85
85
|
console.log(' The tool does NOT auto-edit tiapp.xml. Snippets below are optional —')
|
|
86
86
|
console.log(' paste only what you need, after reviewing.')
|
|
87
|
+
console.log(' If your app already uses a custom Android theme, merge these changes')
|
|
88
|
+
console.log(' into that theme instead of replacing it blindly.')
|
|
89
|
+
console.log(' brand is designed around the modern Titanium icon pipeline, not around')
|
|
90
|
+
console.log(' older Android splash themes such as background.png / background.9.png.')
|
|
87
91
|
console.log()
|
|
88
92
|
console.log(` ${chalk.yellow('⚠')} ${chalk.yellow('tiapp.xml <application> tag may be self-closing')}`)
|
|
89
93
|
console.log(' If yours looks like:')
|
|
@@ -114,14 +118,18 @@ function printFullNotes(opts) {
|
|
|
114
118
|
console.log(' If you want the Android 12+ splash to use splash_icon instead of')
|
|
115
119
|
console.log(' ic_launcher, add a custom theme and point')
|
|
116
120
|
console.log(code(' <item name="android:windowSplashScreenAnimatedIcon">@drawable/splash_icon</item>'))
|
|
121
|
+
console.log(' If you still see a brief flash during splash exit, the artifact may')
|
|
122
|
+
console.log(' come from Titanium or the system splash transition rather than from')
|
|
123
|
+
console.log(' the generated PNG assets themselves.')
|
|
117
124
|
}
|
|
118
125
|
|
|
119
126
|
console.log()
|
|
120
127
|
console.log(` ${num(withSplash ? '4.' : '3.')} ${chalk.cyan('Android <12 legacy splash')}`)
|
|
121
|
-
console.log(' PurgeTSS brand
|
|
122
|
-
console.log(' a
|
|
123
|
-
console.log(' If your app uses a custom
|
|
124
|
-
console.log(' that custom theme still
|
|
128
|
+
console.log(' PurgeTSS brand still regenerates app/assets/android/default.png as')
|
|
129
|
+
console.log(' a compatibility fallback while Titanium continues to recognize it.')
|
|
130
|
+
console.log(' It is not the primary modern path. If your app uses a custom')
|
|
131
|
+
console.log(' windowBackground / background.9.png theme, that custom theme still')
|
|
132
|
+
console.log(' takes precedence and should be managed manually.')
|
|
125
133
|
|
|
126
134
|
if (withNotification) {
|
|
127
135
|
const colorsDir = projectType === 'classic'
|