@tenphi/tasty 0.0.0-snapshot.d2dcdeb → 0.0.0-snapshot.d4ccea8
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 +181 -131
- package/dist/{ssr/async-storage.js → async-storage-DKK-wTD4.js} +2 -2
- package/dist/async-storage-DKK-wTD4.js.map +1 -0
- package/dist/babel-eMs_zZjM.d.ts +83 -0
- package/dist/{ssr/collector.js → collector-BjkQEtbh.js} +111 -38
- package/dist/collector-BjkQEtbh.js.map +1 -0
- package/dist/{ssr/collector.d.ts → collector-DzeNxHOq.d.ts} +58 -7
- package/dist/config-DMslHK_e.d.ts +1298 -0
- package/dist/config-DX126v_w.js +12318 -0
- package/dist/config-DX126v_w.js.map +1 -0
- package/dist/{ssr/context.js → context-CA8YKeMn.js} +11 -3
- package/dist/context-CA8YKeMn.js.map +1 -0
- package/dist/core/index.d.ts +5 -34
- package/dist/core/index.js +6 -27
- package/dist/core-CMn-Tj2X.js +1573 -0
- package/dist/core-CMn-Tj2X.js.map +1 -0
- package/dist/{zero/extractor.js → css-writer-C8ShXK5R.js} +148 -24
- package/dist/css-writer-C8ShXK5R.js.map +1 -0
- package/dist/{ssr/format-global-rules.js → format-global-rules-DklyaXv-.js} +2 -2
- package/dist/format-global-rules-DklyaXv-.js.map +1 -0
- package/dist/{ssr/format-rules.js → format-rules-BkstDvlN.js} +59 -2
- package/dist/format-rules-BkstDvlN.js.map +1 -0
- package/dist/{ssr/hydrate.js → hydrate-DXXWZgm0.js} +4 -12
- package/dist/hydrate-DXXWZgm0.js.map +1 -0
- package/dist/index-BcsaHo8x.d.ts +1568 -0
- package/dist/index-CC0wykKn.d.ts +1909 -0
- package/dist/index.d.ts +5 -51
- package/dist/index.js +922 -36
- package/dist/index.js.map +1 -0
- package/dist/keyframes-Z0YLVOWq.js +493 -0
- package/dist/keyframes-Z0YLVOWq.js.map +1 -0
- package/dist/{utils/merge-styles.d.ts → merge-styles-BTFAkYSD.d.ts} +3 -3
- package/dist/{utils/merge-styles.js → merge-styles-Dpueyn82.js} +3 -4
- package/dist/merge-styles-Dpueyn82.js.map +1 -0
- package/dist/{utils/resolve-recipes.js → resolve-recipes-B2Vjr7ET.js} +4 -6
- package/dist/resolve-recipes-B2Vjr7ET.js.map +1 -0
- package/dist/ssr/astro-client.js +1 -1
- package/dist/ssr/astro-client.js.map +1 -1
- package/dist/ssr/astro-middleware-static.d.ts +16 -0
- package/dist/ssr/astro-middleware-static.js +18 -0
- package/dist/ssr/astro-middleware-static.js.map +1 -0
- package/dist/ssr/astro-middleware.d.ts +8 -6
- package/dist/ssr/astro-middleware.js +10 -10
- package/dist/ssr/astro-middleware.js.map +1 -1
- package/dist/ssr/astro.d.ts +2 -17
- package/dist/ssr/astro.js +29 -21
- package/dist/ssr/astro.js.map +1 -1
- package/dist/ssr/index.d.ts +37 -4
- package/dist/ssr/index.js +5 -5
- package/dist/ssr/index.js.map +1 -1
- package/dist/ssr/next.d.ts +2 -3
- package/dist/ssr/next.js +7 -8
- package/dist/ssr/next.js.map +1 -1
- package/dist/static/index.d.ts +91 -5
- package/dist/static/index.js +49 -3
- package/dist/static/index.js.map +1 -0
- package/dist/static/inject.js.map +1 -1
- package/dist/zero/babel.d.ts +2 -81
- package/dist/zero/babel.js +45 -29
- package/dist/zero/babel.js.map +1 -1
- package/dist/zero/index.d.ts +81 -3
- package/dist/zero/index.js +2 -3
- package/dist/zero/next.d.ts +1 -1
- package/dist/zero/next.js +1 -1
- package/dist/zero/next.js.map +1 -1
- package/docs/README.md +18 -10
- package/docs/adoption.md +56 -31
- package/docs/ai-agents.md +224 -0
- package/docs/comparison.md +69 -40
- package/docs/configuration.md +501 -72
- package/docs/debug.md +22 -18
- package/docs/design-system.md +43 -24
- package/docs/dsl.md +512 -179
- package/docs/getting-started.md +60 -39
- package/docs/injector.md +110 -32
- package/docs/methodology.md +68 -36
- package/docs/migration-v3.md +285 -0
- package/docs/pipeline.md +741 -0
- package/docs/plugins.md +353 -0
- package/docs/react-api.md +164 -40
- package/docs/runtime-benchmarks.md +216 -0
- package/docs/ssr.md +92 -81
- package/docs/styles.md +65 -16
- package/docs/tasty-static.md +149 -99
- package/package.json +49 -21
- package/tasty.config.ts +6 -0
- package/dist/_virtual/_rolldown/runtime.js +0 -7
- package/dist/chunks/cacheKey.d.ts +0 -1
- package/dist/chunks/cacheKey.js +0 -77
- package/dist/chunks/cacheKey.js.map +0 -1
- package/dist/chunks/definitions.d.ts +0 -37
- package/dist/chunks/definitions.js +0 -258
- package/dist/chunks/definitions.js.map +0 -1
- package/dist/chunks/index.d.ts +0 -1
- package/dist/chunks/renderChunk.d.ts +0 -1
- package/dist/chunks/renderChunk.js +0 -59
- package/dist/chunks/renderChunk.js.map +0 -1
- package/dist/compute-styles.d.ts +0 -31
- package/dist/compute-styles.js +0 -335
- package/dist/compute-styles.js.map +0 -1
- package/dist/config.d.ts +0 -407
- package/dist/config.js +0 -587
- package/dist/config.js.map +0 -1
- package/dist/counter-style/index.js +0 -51
- package/dist/counter-style/index.js.map +0 -1
- package/dist/debug.d.ts +0 -89
- package/dist/debug.js +0 -453
- package/dist/debug.js.map +0 -1
- package/dist/font-face/index.js +0 -63
- package/dist/font-face/index.js.map +0 -1
- package/dist/hooks/index.d.ts +0 -7
- package/dist/hooks/useCounterStyle.d.ts +0 -36
- package/dist/hooks/useCounterStyle.js +0 -65
- package/dist/hooks/useCounterStyle.js.map +0 -1
- package/dist/hooks/useFontFace.d.ts +0 -45
- package/dist/hooks/useFontFace.js +0 -66
- package/dist/hooks/useFontFace.js.map +0 -1
- package/dist/hooks/useGlobalStyles.d.ts +0 -46
- package/dist/hooks/useGlobalStyles.js +0 -88
- package/dist/hooks/useGlobalStyles.js.map +0 -1
- package/dist/hooks/useKeyframes.d.ts +0 -58
- package/dist/hooks/useKeyframes.js +0 -55
- package/dist/hooks/useKeyframes.js.map +0 -1
- package/dist/hooks/useProperty.d.ts +0 -81
- package/dist/hooks/useProperty.js +0 -96
- package/dist/hooks/useProperty.js.map +0 -1
- package/dist/hooks/useRawCSS.d.ts +0 -22
- package/dist/hooks/useRawCSS.js +0 -103
- package/dist/hooks/useRawCSS.js.map +0 -1
- package/dist/hooks/useStyles.d.ts +0 -40
- package/dist/hooks/useStyles.js +0 -31
- package/dist/hooks/useStyles.js.map +0 -1
- package/dist/injector/index.d.ts +0 -182
- package/dist/injector/index.js +0 -185
- package/dist/injector/index.js.map +0 -1
- package/dist/injector/injector.d.ts +0 -198
- package/dist/injector/injector.js +0 -651
- package/dist/injector/injector.js.map +0 -1
- package/dist/injector/sheet-manager.d.ts +0 -132
- package/dist/injector/sheet-manager.js +0 -699
- package/dist/injector/sheet-manager.js.map +0 -1
- package/dist/injector/types.d.ts +0 -235
- package/dist/keyframes/index.js +0 -206
- package/dist/keyframes/index.js.map +0 -1
- package/dist/parser/classify.js +0 -319
- package/dist/parser/classify.js.map +0 -1
- package/dist/parser/const.js +0 -60
- package/dist/parser/const.js.map +0 -1
- package/dist/parser/lru.js +0 -109
- package/dist/parser/lru.js.map +0 -1
- package/dist/parser/parser.d.ts +0 -25
- package/dist/parser/parser.js +0 -115
- package/dist/parser/parser.js.map +0 -1
- package/dist/parser/tokenizer.js +0 -69
- package/dist/parser/tokenizer.js.map +0 -1
- package/dist/parser/types.d.ts +0 -51
- package/dist/parser/types.js +0 -46
- package/dist/parser/types.js.map +0 -1
- package/dist/pipeline/conditions.d.ts +0 -134
- package/dist/pipeline/conditions.js +0 -406
- package/dist/pipeline/conditions.js.map +0 -1
- package/dist/pipeline/exclusive.js +0 -230
- package/dist/pipeline/exclusive.js.map +0 -1
- package/dist/pipeline/index.d.ts +0 -55
- package/dist/pipeline/index.js +0 -708
- package/dist/pipeline/index.js.map +0 -1
- package/dist/pipeline/materialize.js +0 -1103
- package/dist/pipeline/materialize.js.map +0 -1
- package/dist/pipeline/parseStateKey.d.ts +0 -15
- package/dist/pipeline/parseStateKey.js +0 -446
- package/dist/pipeline/parseStateKey.js.map +0 -1
- package/dist/pipeline/simplify.js +0 -515
- package/dist/pipeline/simplify.js.map +0 -1
- package/dist/pipeline/warnings.js +0 -18
- package/dist/pipeline/warnings.js.map +0 -1
- package/dist/plugins/index.d.ts +0 -2
- package/dist/plugins/okhsl-plugin.d.ts +0 -35
- package/dist/plugins/okhsl-plugin.js +0 -97
- package/dist/plugins/okhsl-plugin.js.map +0 -1
- package/dist/plugins/types.d.ts +0 -87
- package/dist/properties/index.js +0 -222
- package/dist/properties/index.js.map +0 -1
- package/dist/properties/property-type-resolver.d.ts +0 -24
- package/dist/properties/property-type-resolver.js +0 -90
- package/dist/properties/property-type-resolver.js.map +0 -1
- package/dist/rsc-cache.js +0 -79
- package/dist/rsc-cache.js.map +0 -1
- package/dist/ssr/async-storage.d.ts +0 -17
- package/dist/ssr/async-storage.js.map +0 -1
- package/dist/ssr/collect-auto-properties.js +0 -58
- package/dist/ssr/collect-auto-properties.js.map +0 -1
- package/dist/ssr/collector.js.map +0 -1
- package/dist/ssr/context.js.map +0 -1
- package/dist/ssr/format-global-rules.js.map +0 -1
- package/dist/ssr/format-keyframes.js +0 -69
- package/dist/ssr/format-keyframes.js.map +0 -1
- package/dist/ssr/format-property.js +0 -49
- package/dist/ssr/format-property.js.map +0 -1
- package/dist/ssr/format-rules.js.map +0 -1
- package/dist/ssr/hydrate.d.ts +0 -29
- package/dist/ssr/hydrate.js.map +0 -1
- package/dist/ssr/ssr-collector-ref.js +0 -29
- package/dist/ssr/ssr-collector-ref.js.map +0 -1
- package/dist/states/index.d.ts +0 -49
- package/dist/states/index.js +0 -170
- package/dist/states/index.js.map +0 -1
- package/dist/static/tastyStatic.d.ts +0 -46
- package/dist/static/tastyStatic.js +0 -30
- package/dist/static/tastyStatic.js.map +0 -1
- package/dist/static/types.d.ts +0 -49
- package/dist/static/types.js +0 -24
- package/dist/static/types.js.map +0 -1
- package/dist/styles/border.d.ts +0 -25
- package/dist/styles/border.js +0 -120
- package/dist/styles/border.js.map +0 -1
- package/dist/styles/color.d.ts +0 -14
- package/dist/styles/color.js +0 -26
- package/dist/styles/color.js.map +0 -1
- package/dist/styles/const.js +0 -17
- package/dist/styles/const.js.map +0 -1
- package/dist/styles/createStyle.js +0 -79
- package/dist/styles/createStyle.js.map +0 -1
- package/dist/styles/dimension.js +0 -109
- package/dist/styles/dimension.js.map +0 -1
- package/dist/styles/directional.js +0 -133
- package/dist/styles/directional.js.map +0 -1
- package/dist/styles/display.d.ts +0 -30
- package/dist/styles/display.js +0 -73
- package/dist/styles/display.js.map +0 -1
- package/dist/styles/fade.d.ts +0 -15
- package/dist/styles/fade.js +0 -62
- package/dist/styles/fade.js.map +0 -1
- package/dist/styles/fill.d.ts +0 -42
- package/dist/styles/fill.js +0 -51
- package/dist/styles/fill.js.map +0 -1
- package/dist/styles/flow.d.ts +0 -16
- package/dist/styles/flow.js +0 -12
- package/dist/styles/flow.js.map +0 -1
- package/dist/styles/gap.d.ts +0 -31
- package/dist/styles/gap.js +0 -38
- package/dist/styles/gap.js.map +0 -1
- package/dist/styles/height.d.ts +0 -17
- package/dist/styles/height.js +0 -19
- package/dist/styles/height.js.map +0 -1
- package/dist/styles/index.d.ts +0 -1
- package/dist/styles/index.js +0 -8
- package/dist/styles/index.js.map +0 -1
- package/dist/styles/inset.d.ts +0 -24
- package/dist/styles/inset.js +0 -34
- package/dist/styles/inset.js.map +0 -1
- package/dist/styles/list.d.ts +0 -16
- package/dist/styles/list.js +0 -100
- package/dist/styles/list.js.map +0 -1
- package/dist/styles/margin.d.ts +0 -24
- package/dist/styles/margin.js +0 -32
- package/dist/styles/margin.js.map +0 -1
- package/dist/styles/outline.d.ts +0 -29
- package/dist/styles/outline.js +0 -55
- package/dist/styles/outline.js.map +0 -1
- package/dist/styles/padding.d.ts +0 -24
- package/dist/styles/padding.js +0 -32
- package/dist/styles/padding.js.map +0 -1
- package/dist/styles/placement.d.ts +0 -37
- package/dist/styles/placement.js +0 -74
- package/dist/styles/placement.js.map +0 -1
- package/dist/styles/predefined.d.ts +0 -71
- package/dist/styles/predefined.js +0 -237
- package/dist/styles/predefined.js.map +0 -1
- package/dist/styles/preset.d.ts +0 -52
- package/dist/styles/preset.js +0 -127
- package/dist/styles/preset.js.map +0 -1
- package/dist/styles/radius.d.ts +0 -12
- package/dist/styles/radius.js +0 -83
- package/dist/styles/radius.js.map +0 -1
- package/dist/styles/scrollMargin.d.ts +0 -24
- package/dist/styles/scrollMargin.js +0 -32
- package/dist/styles/scrollMargin.js.map +0 -1
- package/dist/styles/scrollbar.d.ts +0 -25
- package/dist/styles/scrollbar.js +0 -51
- package/dist/styles/scrollbar.js.map +0 -1
- package/dist/styles/shadow.d.ts +0 -14
- package/dist/styles/shadow.js +0 -25
- package/dist/styles/shadow.js.map +0 -1
- package/dist/styles/shared.js +0 -17
- package/dist/styles/shared.js.map +0 -1
- package/dist/styles/transition.d.ts +0 -14
- package/dist/styles/transition.js +0 -159
- package/dist/styles/transition.js.map +0 -1
- package/dist/styles/types.d.ts +0 -564
- package/dist/styles/width.d.ts +0 -17
- package/dist/styles/width.js +0 -19
- package/dist/styles/width.js.map +0 -1
- package/dist/tasty.d.ts +0 -134
- package/dist/tasty.js +0 -248
- package/dist/tasty.js.map +0 -1
- package/dist/types.d.ts +0 -184
- package/dist/utils/cache-wrapper.js +0 -21
- package/dist/utils/cache-wrapper.js.map +0 -1
- package/dist/utils/case-converter.js +0 -8
- package/dist/utils/case-converter.js.map +0 -1
- package/dist/utils/color-math.d.ts +0 -46
- package/dist/utils/color-math.js +0 -749
- package/dist/utils/color-math.js.map +0 -1
- package/dist/utils/color-space.d.ts +0 -5
- package/dist/utils/color-space.js +0 -228
- package/dist/utils/color-space.js.map +0 -1
- package/dist/utils/colors.d.ts +0 -5
- package/dist/utils/colors.js +0 -10
- package/dist/utils/colors.js.map +0 -1
- package/dist/utils/css-types.d.ts +0 -7
- package/dist/utils/deps-equal.js +0 -15
- package/dist/utils/deps-equal.js.map +0 -1
- package/dist/utils/dotize.d.ts +0 -26
- package/dist/utils/dotize.js +0 -122
- package/dist/utils/dotize.js.map +0 -1
- package/dist/utils/filter-base-props.d.ts +0 -15
- package/dist/utils/filter-base-props.js +0 -45
- package/dist/utils/filter-base-props.js.map +0 -1
- package/dist/utils/get-display-name.d.ts +0 -7
- package/dist/utils/get-display-name.js +0 -10
- package/dist/utils/get-display-name.js.map +0 -1
- package/dist/utils/has-keys.js +0 -13
- package/dist/utils/has-keys.js.map +0 -1
- package/dist/utils/hash.js +0 -14
- package/dist/utils/hash.js.map +0 -1
- package/dist/utils/is-dev-env.js +0 -19
- package/dist/utils/is-dev-env.js.map +0 -1
- package/dist/utils/is-valid-element-type.js +0 -15
- package/dist/utils/is-valid-element-type.js.map +0 -1
- package/dist/utils/merge-styles.js.map +0 -1
- package/dist/utils/mod-attrs.d.ts +0 -6
- package/dist/utils/mod-attrs.js +0 -20
- package/dist/utils/mod-attrs.js.map +0 -1
- package/dist/utils/process-tokens.d.ts +0 -17
- package/dist/utils/process-tokens.js +0 -83
- package/dist/utils/process-tokens.js.map +0 -1
- package/dist/utils/resolve-recipes.d.ts +0 -17
- package/dist/utils/resolve-recipes.js.map +0 -1
- package/dist/utils/selector-transform.js +0 -32
- package/dist/utils/selector-transform.js.map +0 -1
- package/dist/utils/string.js +0 -8
- package/dist/utils/string.js.map +0 -1
- package/dist/utils/styles.d.ts +0 -99
- package/dist/utils/styles.js +0 -220
- package/dist/utils/styles.js.map +0 -1
- package/dist/utils/typography.d.ts +0 -58
- package/dist/utils/typography.js +0 -51
- package/dist/utils/typography.js.map +0 -1
- package/dist/utils/warnings.d.ts +0 -16
- package/dist/utils/warnings.js +0 -16
- package/dist/utils/warnings.js.map +0 -1
- package/dist/zero/css-writer.d.ts +0 -45
- package/dist/zero/css-writer.js +0 -73
- package/dist/zero/css-writer.js.map +0 -1
- package/dist/zero/extractor.d.ts +0 -24
- package/dist/zero/extractor.js.map +0 -1
- package/docs/PIPELINE.md +0 -519
package/docs/debug.md
CHANGED
|
@@ -12,6 +12,8 @@ In development mode (`isDevEnv()` returns `true`), `tastyDebug` is automatically
|
|
|
12
12
|
|
|
13
13
|
All methods **log to the console by default**. Pass `{ raw: true }` to suppress logging and only return data.
|
|
14
14
|
|
|
15
|
+
> **Note (2.0.0+):** Class names use a content-addressed base36 hash format (e.g. `t3a5f`) instead of the previous sequential `t{number}` format. Cross-environment hydration reads the rendered class list from `window.__TASTY__` (the legacy `window.__TASTY_SSR_CACHE__` global was removed in 2.0.0).
|
|
16
|
+
|
|
15
17
|
---
|
|
16
18
|
|
|
17
19
|
## Quick Start
|
|
@@ -66,18 +68,18 @@ Retrieves CSS text for a given target. Logs the result with rule count and size.
|
|
|
66
68
|
|---|---|
|
|
67
69
|
| `'all'` | All tasty CSS (component + global + raw) |
|
|
68
70
|
| `'active'` | CSS for classes currently in the DOM |
|
|
69
|
-
| `'unused'` | CSS
|
|
71
|
+
| `'unused'` | CSS for injected classes no element carries (cached but not rendered) |
|
|
70
72
|
| `'global'` | Only global CSS (from `injectGlobal`) |
|
|
71
73
|
| `'page'` | All CSS on the page (including non-tasty) |
|
|
72
|
-
| `'
|
|
73
|
-
| `['
|
|
74
|
+
| `'t3a5f'` | CSS for a specific tasty class (class names are `t` + base36 hash) |
|
|
75
|
+
| `['t3a5f', 't9k2']` | CSS for multiple tasty classes |
|
|
74
76
|
| `'.my-button'` | CSS affecting a DOM element (by selector) |
|
|
75
77
|
| `element` | CSS affecting a DOM element (by reference) |
|
|
76
78
|
|
|
77
79
|
**Extra options:**
|
|
78
80
|
|
|
79
81
|
```typescript
|
|
80
|
-
interface
|
|
82
|
+
interface CSSOptions extends DebugOptions {
|
|
81
83
|
prettify?: boolean; // Format output (default: true)
|
|
82
84
|
source?: boolean; // Read original CSS instead of live CSSOM (default: false, dev-mode only)
|
|
83
85
|
}
|
|
@@ -88,11 +90,11 @@ interface CssOptions extends DebugOptions {
|
|
|
88
90
|
tastyDebug.css('active');
|
|
89
91
|
|
|
90
92
|
// Specific class, silent
|
|
91
|
-
const css = tastyDebug.css('
|
|
93
|
+
const css = tastyDebug.css('t3a5f', { raw: true });
|
|
92
94
|
|
|
93
95
|
// Compare original vs browser-parsed CSS (dev mode only)
|
|
94
|
-
tastyDebug.css('
|
|
95
|
-
tastyDebug.css('
|
|
96
|
+
tastyDebug.css('t3a5f'); // live CSSOM
|
|
97
|
+
tastyDebug.css('t3a5f', { source: true }); // original output
|
|
96
98
|
|
|
97
99
|
// Shadow DOM
|
|
98
100
|
tastyDebug.css('all', { root: shadowRoot });
|
|
@@ -109,14 +111,14 @@ Inspects a DOM element and returns detailed information about its tasty styles,
|
|
|
109
111
|
```typescript
|
|
110
112
|
interface InspectResult {
|
|
111
113
|
element?: Element | null;
|
|
112
|
-
classes: string[];
|
|
113
|
-
chunks:
|
|
114
|
-
css: string;
|
|
115
|
-
size: number;
|
|
116
|
-
rules: number;
|
|
114
|
+
classes: string[]; // Tasty classes on the element
|
|
115
|
+
chunks: DebugChunkInfo[]; // Chunk assignment per class
|
|
116
|
+
css: string; // Prettified CSS
|
|
117
|
+
size: number; // CSS size in characters
|
|
118
|
+
rules: number; // Number of CSS rule blocks
|
|
117
119
|
}
|
|
118
120
|
|
|
119
|
-
interface
|
|
121
|
+
interface DebugChunkInfo {
|
|
120
122
|
className: string;
|
|
121
123
|
chunkName: string | null; // e.g., 'appearance', 'font', 'dimension'
|
|
122
124
|
}
|
|
@@ -125,11 +127,11 @@ interface ChunkInfo {
|
|
|
125
127
|
```typescript
|
|
126
128
|
tastyDebug.inspect('.my-card');
|
|
127
129
|
// Logs: inspect div — 3 classes, 5 rules, 1.2KB
|
|
128
|
-
// Chunks:
|
|
130
|
+
// Chunks: t3a5f→appearance, t9k2→font, tb71→dimension
|
|
129
131
|
|
|
130
132
|
// Silent
|
|
131
133
|
const result = tastyDebug.inspect('.my-card', { raw: true });
|
|
132
|
-
console.log(result.classes); // ['
|
|
134
|
+
console.log(result.classes); // ['t3a5f', 't9k2', 'tb71']
|
|
133
135
|
console.log(result.rules); // 5
|
|
134
136
|
```
|
|
135
137
|
|
|
@@ -239,7 +241,9 @@ tastyDebug.cache();
|
|
|
239
241
|
|
|
240
242
|
### `cleanup(opts?): void`
|
|
241
243
|
|
|
242
|
-
|
|
244
|
+
Removes every injected style that is neither carried by an element nor pinned by
|
|
245
|
+
an outstanding `inject()` handle — the same set `summary()` reports as unused.
|
|
246
|
+
Equivalent to `gc({ force: true })`.
|
|
243
247
|
|
|
244
248
|
```typescript
|
|
245
249
|
tastyDebug.cleanup();
|
|
@@ -291,10 +295,10 @@ tastyDebug.summary({ root: shadowRoot });
|
|
|
291
295
|
tastyDebug.inspect('.my-button');
|
|
292
296
|
|
|
293
297
|
// 2. See CSS for a specific class
|
|
294
|
-
tastyDebug.css('
|
|
298
|
+
tastyDebug.css('t3a5f');
|
|
295
299
|
|
|
296
300
|
// 3. Compare original vs browser-parsed (dev mode)
|
|
297
|
-
tastyDebug.css('
|
|
301
|
+
tastyDebug.css('t3a5f', { source: true });
|
|
298
302
|
```
|
|
299
303
|
|
|
300
304
|
### Checking cache efficiency
|
package/docs/design-system.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# Building a Design System
|
|
2
2
|
|
|
3
|
-
This guide
|
|
3
|
+
This guide shows how to build shared React components whose styles stay predictable as states, variants, themes, and responsive rules accumulate. You will define tokens, state aliases, recipes, primitive APIs, and compound components with sub-elements.
|
|
4
4
|
|
|
5
|
-
It assumes you have already decided to adopt Tasty. The goal is not
|
|
5
|
+
It assumes you have already decided to adopt Tasty. The goal is not only to centralize values, but to give your design system one state model and a governed component-facing styling API. For evaluation criteria and incremental rollout, see the [Adoption Guide](adoption.md). For the recommended component architecture, see [Methodology](methodology.md).
|
|
6
6
|
|
|
7
7
|
---
|
|
8
8
|
|
|
@@ -43,8 +43,8 @@ configure({
|
|
|
43
43
|
'#border': '#e0e0e0',
|
|
44
44
|
|
|
45
45
|
// Unit values
|
|
46
|
-
|
|
47
|
-
|
|
46
|
+
$gap: '8px',
|
|
47
|
+
$radius: '4px',
|
|
48
48
|
'$border-width': '1px',
|
|
49
49
|
'$outline-width': '2px',
|
|
50
50
|
},
|
|
@@ -91,8 +91,18 @@ import { configure } from '@tenphi/tasty';
|
|
|
91
91
|
|
|
92
92
|
configure({
|
|
93
93
|
presets: {
|
|
94
|
-
h1: {
|
|
95
|
-
|
|
94
|
+
h1: {
|
|
95
|
+
fontSize: '2rem',
|
|
96
|
+
lineHeight: '1.2',
|
|
97
|
+
letterSpacing: '-0.02em',
|
|
98
|
+
fontWeight: 700,
|
|
99
|
+
},
|
|
100
|
+
t2: {
|
|
101
|
+
fontSize: '0.875rem',
|
|
102
|
+
lineHeight: '1.5',
|
|
103
|
+
letterSpacing: 'normal',
|
|
104
|
+
fontWeight: 400,
|
|
105
|
+
},
|
|
96
106
|
},
|
|
97
107
|
});
|
|
98
108
|
```
|
|
@@ -117,14 +127,22 @@ Then use `preset: 'h1'` or `preset: 't2'` in any component's styles.
|
|
|
117
127
|
|
|
118
128
|
### Registering brand fonts
|
|
119
129
|
|
|
120
|
-
Register your design system's custom fonts via `configure({
|
|
130
|
+
Register your design system's custom fonts via `configure({ fontFaces })` so every component can reference them:
|
|
121
131
|
|
|
122
132
|
```ts
|
|
123
133
|
configure({
|
|
124
|
-
|
|
134
|
+
fontFaces: {
|
|
125
135
|
'Brand Sans': [
|
|
126
|
-
{
|
|
127
|
-
|
|
136
|
+
{
|
|
137
|
+
src: 'url("/fonts/brand-regular.woff2") format("woff2")',
|
|
138
|
+
fontWeight: 400,
|
|
139
|
+
fontDisplay: 'swap',
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
src: 'url("/fonts/brand-bold.woff2") format("woff2")',
|
|
143
|
+
fontWeight: 700,
|
|
144
|
+
fontDisplay: 'swap',
|
|
145
|
+
},
|
|
128
146
|
],
|
|
129
147
|
},
|
|
130
148
|
});
|
|
@@ -144,7 +162,8 @@ configure({
|
|
|
144
162
|
'@mobile': '@media(w < 768px)',
|
|
145
163
|
'@tablet': '@media(768px <= w < 1024px)',
|
|
146
164
|
'@desktop': '@media(w >= 1024px)',
|
|
147
|
-
'@dark':
|
|
165
|
+
'@dark':
|
|
166
|
+
'@root(schema=dark) | (!@root(schema) & @media(prefers-color-scheme: dark))',
|
|
148
167
|
'@reduced-motion': '@media(prefers-reduced-motion: reduce)',
|
|
149
168
|
},
|
|
150
169
|
});
|
|
@@ -185,7 +204,7 @@ configure({
|
|
|
185
204
|
'input-reset': {
|
|
186
205
|
border: 'none',
|
|
187
206
|
outline: 'none',
|
|
188
|
-
fill: '
|
|
207
|
+
fill: '#clear',
|
|
189
208
|
font: true,
|
|
190
209
|
preset: 't3',
|
|
191
210
|
},
|
|
@@ -211,7 +230,7 @@ const ProfileCard = tasty({
|
|
|
211
230
|
});
|
|
212
231
|
```
|
|
213
232
|
|
|
214
|
-
Use the `/` separator when a recipe should be applied
|
|
233
|
+
Use the `/` separator when a recipe should be applied _after_ local styles (post-merge), so recipe states take priority:
|
|
215
234
|
|
|
216
235
|
```tsx
|
|
217
236
|
const Input = tasty({
|
|
@@ -283,12 +302,12 @@ Product engineers use these to compose layouts without writing CSS:
|
|
|
283
302
|
|
|
284
303
|
Match the prop set to the component's role:
|
|
285
304
|
|
|
286
|
-
| Component category
|
|
287
|
-
|
|
288
|
-
| Layout containers (`Space`, `Box`, `Grid`) | `FLOW_STYLES` — flow, gap, align, justify, padding, fill
|
|
289
|
-
| Positioned elements (`Button`, `Badge`)
|
|
290
|
-
| Text elements
|
|
291
|
-
| Compound components
|
|
305
|
+
| Component category | Recommended styleProps |
|
|
306
|
+
| ------------------------------------------ | -------------------------------------------------------------- |
|
|
307
|
+
| Layout containers (`Space`, `Box`, `Grid`) | `FLOW_STYLES` — flow, gap, align, justify, padding, fill |
|
|
308
|
+
| Positioned elements (`Button`, `Badge`) | `POSITION_STYLES` — placeSelf, gridArea, order |
|
|
309
|
+
| Text elements | `['preset', 'color']` or a custom subset |
|
|
310
|
+
| Compound components | Typically none — styling happens via sub-elements and wrapping |
|
|
292
311
|
|
|
293
312
|
Exposing too many props weakens the design system's constraints. See [Methodology — styleProps as the public API](methodology.md#styleprops-as-the-public-api) for the rationale.
|
|
294
313
|
|
|
@@ -335,9 +354,7 @@ Usage:
|
|
|
335
354
|
```tsx
|
|
336
355
|
<Card>
|
|
337
356
|
<Card.Title>Monthly Revenue</Card.Title>
|
|
338
|
-
<Card.Content>
|
|
339
|
-
$1.2M — up 12% from last month.
|
|
340
|
-
</Card.Content>
|
|
357
|
+
<Card.Content>$1.2M — up 12% from last month.</Card.Content>
|
|
341
358
|
<Card.Footer>
|
|
342
359
|
<Button>Details</Button>
|
|
343
360
|
</Card.Footer>
|
|
@@ -365,13 +382,15 @@ A design system works best when the rules for customization are explicit. Tasty
|
|
|
365
382
|
2. **Use modProps** — control component states through typed props instead of `mods`:
|
|
366
383
|
|
|
367
384
|
```tsx
|
|
368
|
-
<Button isLoading size="large">
|
|
385
|
+
<Button isLoading size="large">
|
|
386
|
+
Submit
|
|
387
|
+
</Button>
|
|
369
388
|
```
|
|
370
389
|
|
|
371
390
|
3. **Pass tokens** — inject runtime values through the `tokens` prop for per-instance customization:
|
|
372
391
|
|
|
373
392
|
```tsx
|
|
374
|
-
<ProgressBar tokens={{
|
|
393
|
+
<ProgressBar tokens={{ $progress: `${percent}%` }} />
|
|
375
394
|
```
|
|
376
395
|
|
|
377
396
|
4. **Create styled wrappers** — extend a component's styles with `tasty(Base, { styles })`:
|