beacon-ui 3.4.2 → 3.4.4
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/CHANGELOG.md +27 -0
- package/README.md +3 -8
- package/assets/README.md +1 -2
- package/dist/components/Card.d.ts.map +1 -1
- package/dist/components/Card.js +31 -42
- package/dist/utils/patternPaths.d.ts +80 -13
- package/dist/utils/patternPaths.d.ts.map +1 -1
- package/dist/utils/patternPaths.js +150 -74
- package/package.json +1 -1
- package/tokens/generated/brand-dark.css +4 -0
- package/tokens/generated/brand-light.css +4 -0
- package/tokens/generated/index.css +25 -1
- package/tokens/generated/primitives.css +9 -1
- package/tokens/generated/semantic.css +8 -0
- package/assets/patterns/Cotton_pt.png +0 -0
- package/assets/patterns/Cube_pt.png +0 -0
- package/assets/patterns/Default_pt.png +0 -0
- package/assets/patterns/Denim_pt.png +0 -0
- package/assets/patterns/Diagonal_pt.png +0 -0
- package/assets/patterns/Dots_pt.png +0 -0
- package/assets/patterns/Ellipticleloop_pt.png +0 -0
- package/assets/patterns/Maths_pt.png +0 -0
- package/assets/patterns/Mosaic_pt.png +0 -0
- package/assets/patterns/README.md +0 -40
- package/assets/patterns/Rough_Paper_pt.png +0 -0
- package/assets/patterns/Smudge_pt.png +0 -0
- package/assets/patterns/Squares_pt.png +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,33 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [3.4.4] - 2026-01-05
|
|
9
|
+
|
|
10
|
+
### Changed
|
|
11
|
+
- Migrated background patterns from image-based to CSS-based implementation for better performance and scalability
|
|
12
|
+
- All pattern classes now use design token variables (`--util-pattern-ink-1` through `--util-pattern-ink-4`) for theme-aware styling
|
|
13
|
+
- Patterns automatically adapt to light and dark themes using the design token system
|
|
14
|
+
|
|
15
|
+
### Added
|
|
16
|
+
- Pattern ink color tokens (`Pattern_Ink_1` through `Pattern_Ink_4`) added to brand token collection for both light and dark themes
|
|
17
|
+
- New Utility section in documentation with Background Patterns page showcasing all available CSS patterns
|
|
18
|
+
- Comprehensive pattern library with 33 CSS-based patterns organized by category (Dot, Line, Grid, Ring, Wave, Texture, Shape)
|
|
19
|
+
|
|
20
|
+
### Removed
|
|
21
|
+
- Removed image-based pattern assets (`public/images/patterns/` and `packages/beacon-ui/assets/patterns/`)
|
|
22
|
+
- Removed pattern image copying from build scripts
|
|
23
|
+
|
|
24
|
+
### Fixed
|
|
25
|
+
- Pattern variables now persist across token rebuilds by being defined in source token JSON files
|
|
26
|
+
- All pattern classes updated to use token-based variables instead of hardcoded values
|
|
27
|
+
|
|
28
|
+
## [3.4.3] - 2026-01-04
|
|
29
|
+
|
|
30
|
+
### Added
|
|
31
|
+
- Tabs component with Tab and TabItem subcomponents for navigation and content organization
|
|
32
|
+
- TabItem supports horizontal and vertical placement, default and pill styles, multiple sizes, and icon support
|
|
33
|
+
- Tab component supports equal width distribution and configurable corner radius for pill style
|
|
34
|
+
|
|
8
35
|
## [3.4.2] - 2026-01-03
|
|
9
36
|
|
|
10
37
|
### Added
|
package/README.md
CHANGED
|
@@ -493,14 +493,9 @@ Components adapt seamlessly across breakpoints:
|
|
|
493
493
|
|
|
494
494
|
## Assets (Images)
|
|
495
495
|
|
|
496
|
-
The package includes static assets (images) for
|
|
496
|
+
The package includes static assets (images) for avatars and previews. These are located in `assets/` directory.
|
|
497
497
|
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
The Card component uses background pattern images. To use them:
|
|
501
|
-
|
|
502
|
-
1. Copy pattern images from `node_modules/beacon-ui/assets/patterns/` to your `public/images/patterns/` directory
|
|
503
|
-
2. The Card component will automatically reference them via `/images/patterns/` paths
|
|
498
|
+
**Note:** Background patterns are now CSS-based and don't require image files. See the [Background Patterns documentation](/utility/bg-patterns) for details.
|
|
504
499
|
|
|
505
500
|
### Automatic Setup
|
|
506
501
|
|
|
@@ -509,7 +504,7 @@ Add a postinstall script to your `package.json`:
|
|
|
509
504
|
```json
|
|
510
505
|
{
|
|
511
506
|
"scripts": {
|
|
512
|
-
"postinstall": "mkdir -p public/images/
|
|
507
|
+
"postinstall": "mkdir -p public/images/avatars public/images/preview && cp -r node_modules/beacon-ui/assets/avatars/* public/images/avatars/ && cp -r node_modules/beacon-ui/assets/preview/* public/images/preview/"
|
|
513
508
|
}
|
|
514
509
|
}
|
|
515
510
|
```
|
package/assets/README.md
CHANGED
|
@@ -4,7 +4,6 @@ This directory contains static assets (images) used by the Beacon UI components.
|
|
|
4
4
|
|
|
5
5
|
## Structure
|
|
6
6
|
|
|
7
|
-
- **patterns/** - Background pattern images for Card component
|
|
8
7
|
- **avatars/** - Avatar placeholder images
|
|
9
8
|
- **preview/** - Preview/demo images for documentation examples
|
|
10
9
|
|
|
@@ -13,7 +12,7 @@ This directory contains static assets (images) used by the Beacon UI components.
|
|
|
13
12
|
These assets are part of the `beacon-ui` package. For Next.js applications:
|
|
14
13
|
|
|
15
14
|
1. The assets are automatically copied to `public/images/` during build via the `copy:assets` script
|
|
16
|
-
2. Components reference them via `/images/
|
|
15
|
+
2. Components reference them via `/images/avatars/`, `/images/preview/` paths
|
|
17
16
|
3. For non-Next.js applications, copy these assets to your public/assets directory manually
|
|
18
17
|
|
|
19
18
|
## Package Distribution
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Card.d.ts","sourceRoot":"","sources":["../../src/components/Card.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,MAAM,OAAO,CAAC;AAG9C,OAAO,
|
|
1
|
+
{"version":3,"file":"Card.d.ts","sourceRoot":"","sources":["../../src/components/Card.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,MAAM,OAAO,CAAC;AAG9C,OAAO,EAAuB,KAAK,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAC9E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEjD,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,aAAa,GAAG,UAAU,CAAC;AAChE,MAAM,MAAM,UAAU,GAAG,GAAG,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;AAW5E,MAAM,WAAW,SAAU,SAAQ,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAC3E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAChC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAoBD,wBAAgB,IAAI,CAAC,EACnB,OAAa,EACb,MAAM,EACN,MAAkB,EAClB,MAAM,EACN,YAAgB,EAChB,aAAqB,EACrB,WAA2B,EAC3B,WAAmB,EACnB,UAAiB,EACjB,QAAQ,EACR,SAAS,EACT,KAAK,EACL,GAAG,EACH,GAAG,IAAI,EACR,EAAE,SAAS,2CA0FX"}
|
package/dist/components/Card.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
3
|
import { useThemeSafe } from "../providers/ThemeProvider";
|
|
4
4
|
import { ArrowDownFallSlotIcon } from "../icons";
|
|
5
|
-
import {
|
|
5
|
+
import { getPatternClassName } from "../utils/patternPaths";
|
|
6
6
|
const CORNER_RADIUS_MAP = {
|
|
7
7
|
0: "var(--corner-radius-none)",
|
|
8
8
|
1: "var(--corner-radius-100)",
|
|
@@ -28,7 +28,7 @@ function getHeightValue(height) {
|
|
|
28
28
|
// Allow strings like "200px", "100%", "auto", "fill", etc.
|
|
29
29
|
return height;
|
|
30
30
|
}
|
|
31
|
-
export function Card({ padding = 400, height, status = "default", shadow, cornerRadius = 4, showBgPattern = false, patternType = "
|
|
31
|
+
export function Card({ padding = 400, height, status = "default", shadow, cornerRadius = 4, showBgPattern = false, patternType = "grid-nested", showOverlay = false, showBorder = true, children, className, style, ref, ...rest }) {
|
|
32
32
|
useThemeSafe();
|
|
33
33
|
const isDefault = status === "default";
|
|
34
34
|
const isHighlighted = status === "highlighted";
|
|
@@ -45,11 +45,18 @@ export function Card({ padding = 400, height, status = "default", shadow, corner
|
|
|
45
45
|
padding: getSpacingToken(padding),
|
|
46
46
|
borderRadius: CORNER_RADIUS_MAP[cornerRadius],
|
|
47
47
|
position: "relative",
|
|
48
|
-
backgroundColor: "var(--bg-page-primary)",
|
|
49
48
|
...(heightValue && { height: heightValue }),
|
|
50
49
|
...(shadow && { boxShadow: getShadowToken(shadow) }),
|
|
51
50
|
...style,
|
|
52
51
|
};
|
|
52
|
+
// Set background-color only if pattern is not shown, or set it in a way that doesn't override the pattern
|
|
53
|
+
if (!showBgPattern) {
|
|
54
|
+
cardStyles.backgroundColor = "var(--bg-page-primary)";
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
// When pattern is shown, set background-color so pattern appears on top
|
|
58
|
+
cardStyles.backgroundColor = "var(--bg-page-primary)";
|
|
59
|
+
}
|
|
53
60
|
if (showBorder) {
|
|
54
61
|
if (isSelected) {
|
|
55
62
|
cardStyles.border = "var(--border-width-25) solid var(--border-primary)";
|
|
@@ -59,47 +66,29 @@ export function Card({ padding = 400, height, status = "default", shadow, corner
|
|
|
59
66
|
}
|
|
60
67
|
}
|
|
61
68
|
const overlayGradient = "var(--bg-page-primary)";
|
|
62
|
-
//
|
|
63
|
-
|
|
64
|
-
//
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
69
|
+
// Get pattern CSS class name
|
|
70
|
+
const patternClassName = showBgPattern ? getPatternClassName(patternType) : "";
|
|
71
|
+
// Build className with pattern class if needed
|
|
72
|
+
const combinedClassName = [className, patternClassName].filter(Boolean).join(" ");
|
|
73
|
+
// Handle overlay and pattern backgrounds
|
|
74
|
+
// When both are present, we need to combine them using CSS multiple backgrounds
|
|
75
|
+
// The pattern class provides background-image, so we need to get it and combine with overlay
|
|
76
|
+
if (showOverlay && showBgPattern) {
|
|
77
|
+
// Don't set backgroundImage here - let the CSS class handle the pattern
|
|
78
|
+
// The overlay will be added via a pseudo-element or we combine backgrounds
|
|
79
|
+
// For now, we'll let the pattern class work and add overlay separately
|
|
80
|
+
// Actually, CSS multiple backgrounds won't work easily with classes
|
|
81
|
+
// So we'll use a wrapper approach or accept that overlay might cover pattern slightly
|
|
82
|
+
// The pattern should still be visible through the gradient
|
|
75
83
|
}
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
cardStyles.
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
// First value applies to first background (overlay), second to pattern
|
|
82
|
-
cardStyles.backgroundRepeat = "no-repeat, repeat";
|
|
83
|
-
cardStyles.backgroundSize = patternConfig.backgroundSize
|
|
84
|
-
? `100% 100%, ${patternConfig.backgroundSize}`
|
|
85
|
-
: "100% 100%, auto";
|
|
86
|
-
cardStyles.backgroundPosition = patternConfig.backgroundPosition
|
|
87
|
-
? `center, ${patternConfig.backgroundPosition}`
|
|
88
|
-
: "center, top left";
|
|
89
|
-
}
|
|
90
|
-
else if (showBgPattern) {
|
|
91
|
-
const patternConfig = getPatternConfig(patternType);
|
|
92
|
-
cardStyles.backgroundRepeat = "repeat";
|
|
93
|
-
cardStyles.backgroundSize = patternConfig.backgroundSize || "auto";
|
|
94
|
-
cardStyles.backgroundPosition = patternConfig.backgroundPosition || "top left";
|
|
95
|
-
}
|
|
96
|
-
else if (showOverlay) {
|
|
97
|
-
cardStyles.backgroundRepeat = "no-repeat";
|
|
98
|
-
cardStyles.backgroundSize = "100% 100%";
|
|
99
|
-
cardStyles.backgroundPosition = "center";
|
|
100
|
-
}
|
|
84
|
+
else if (showOverlay) {
|
|
85
|
+
cardStyles.backgroundImage = `linear-gradient(to bottom, rgba(255,255,255,0) 26.827%, ${overlayGradient} 86.384%)`;
|
|
86
|
+
cardStyles.backgroundRepeat = "no-repeat";
|
|
87
|
+
cardStyles.backgroundSize = "100% 100%";
|
|
88
|
+
cardStyles.backgroundPosition = "center";
|
|
101
89
|
}
|
|
102
|
-
|
|
90
|
+
// If only pattern is shown, the CSS class will handle it via className
|
|
91
|
+
return (_jsx("div", { ref: ref, className: combinedClassName, style: cardStyles, ...rest, children: children || (_jsx("div", { style: {
|
|
103
92
|
backgroundColor: "var(--bg-warning-tonal)",
|
|
104
93
|
border: "var(--border-width-25) dashed var(--border-warning)",
|
|
105
94
|
padding: "var(--spacing-200) 8px",
|
|
@@ -1,28 +1,95 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Background pattern configurations
|
|
3
|
-
* Patterns are
|
|
4
|
-
*
|
|
3
|
+
* Patterns are CSS-based and use design tokens for theme-aware styling
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* // Using patterns in React components
|
|
7
|
+
* import { getPatternClassName } from 'beacon-ui/utils/patternPaths';
|
|
8
|
+
*
|
|
9
|
+
* function MyComponent() {
|
|
10
|
+
* return (
|
|
11
|
+
* <div className={getPatternClassName('dot-node')}>
|
|
12
|
+
* Content with pattern background
|
|
13
|
+
* </div>
|
|
14
|
+
* );
|
|
15
|
+
* }
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* // Using patterns with CSS classes directly in HTML/JSX
|
|
19
|
+
* <div className="dot-node">
|
|
20
|
+
* Content with pattern background
|
|
21
|
+
* </div>
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* // Using patterns in any container element
|
|
25
|
+
* <section className="dot-subtle">
|
|
26
|
+
* <h2>Section Title</h2>
|
|
27
|
+
* <p>Content with subtle dot pattern background</p>
|
|
28
|
+
* </section>
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* // Combining patterns with other CSS classes
|
|
32
|
+
* const patternClass = getPatternClassName('tex-woven');
|
|
33
|
+
* const className = 'my-container ' + patternClass;
|
|
34
|
+
* <div className={className}>
|
|
35
|
+
* Content with woven texture pattern
|
|
36
|
+
* </div>
|
|
37
|
+
*
|
|
38
|
+
* @remarks
|
|
39
|
+
* All pattern classes are defined in the global CSS and use design tokens
|
|
40
|
+
* (--pattern-ink-1 through --pattern-ink-4) for theme-aware styling.
|
|
41
|
+
* Patterns automatically adapt to light and dark themes.
|
|
42
|
+
*
|
|
43
|
+
* Available pattern categories:
|
|
44
|
+
* - Dot: dot-subtle, dot-halftone, dot-polka, dot-stars, dot-node, dot-striped
|
|
45
|
+
* - Line: line-vertical, line-horizontal, line-stacked, line-hashrate, line-diagonal
|
|
46
|
+
* - Grid: grid-soft, grid-offset, grid-graph, grid-nested, grid-datacenter, grid-plus, grid-minimal-plus
|
|
47
|
+
* - Ring: ring-concentric, ring-outline, ring-quarter, ring-orbital, ring-radar, ring-noise
|
|
48
|
+
* - Wave: wave-scallop, wave-stripe
|
|
49
|
+
* - Texture: tex-woven, tex-herringbone, tex-brick, tex-paper
|
|
50
|
+
* - Shape: shape-checker, shape-triangle, shape-zigzag, shape-bracket
|
|
5
51
|
*/
|
|
6
|
-
export type PatternType = "default" | "cubes" | "mathematics" | "dots" | "diagonal" | "smudge" | "paper" | "denim" | "squares" | "mosaic" | "cotton";
|
|
52
|
+
export type PatternType = "default" | "dot-subtle" | "dot-halftone" | "dot-polka" | "dot-stars" | "dot-node" | "dot-striped" | "line-vertical" | "line-horizontal" | "line-stacked" | "line-hashrate" | "line-diagonal" | "grid-soft" | "grid-offset" | "grid-graph" | "grid-nested" | "grid-datacenter" | "grid-plus" | "grid-minimal-plus" | "ring-concentric" | "ring-outline" | "ring-quarter" | "ring-orbital" | "ring-radar" | "ring-noise" | "wave-scallop" | "wave-stripe" | "tex-woven" | "tex-herringbone" | "tex-brick" | "tex-paper" | "shape-checker" | "shape-triangle" | "shape-zigzag" | "shape-bracket" | "cubes" | "mathematics" | "dots" | "diagonal" | "smudge" | "paper" | "denim" | "squares" | "mosaic" | "cotton";
|
|
7
53
|
export interface PatternConfig {
|
|
8
|
-
|
|
9
|
-
backgroundSize: string;
|
|
10
|
-
backgroundPosition?: string;
|
|
11
|
-
inset?: string;
|
|
54
|
+
className: string;
|
|
12
55
|
}
|
|
13
56
|
/**
|
|
14
|
-
* Pattern configurations with
|
|
15
|
-
* Images are stored in the package assets and copied to public/images/patterns/ during build
|
|
16
|
-
* They are referenced via /images/patterns/ paths in the consuming application
|
|
57
|
+
* Pattern configurations with CSS class names
|
|
17
58
|
*/
|
|
18
59
|
export declare const PATTERN_CONFIGS: Record<PatternType, PatternConfig>;
|
|
19
60
|
/**
|
|
20
61
|
* Get pattern configuration by type
|
|
62
|
+
* Handles legacy pattern names by mapping them to new CSS patterns
|
|
21
63
|
*/
|
|
22
64
|
export declare function getPatternConfig(type?: PatternType): PatternConfig;
|
|
23
65
|
/**
|
|
24
|
-
* Get pattern
|
|
25
|
-
*
|
|
66
|
+
* Get pattern CSS class name
|
|
67
|
+
*
|
|
68
|
+
* Use this function to get the CSS class name for a pattern type.
|
|
69
|
+
* The returned class name can be applied to any HTML element to add a background pattern.
|
|
70
|
+
*
|
|
71
|
+
* @param type - The pattern type to get the class name for
|
|
72
|
+
* @returns The CSS class name for the pattern, or empty string for "default"
|
|
73
|
+
*
|
|
74
|
+
* @example
|
|
75
|
+
* // In a React component
|
|
76
|
+
* import { getPatternClassName } from 'beacon-ui/utils/patternPaths';
|
|
77
|
+
*
|
|
78
|
+
* function MyComponent() {
|
|
79
|
+
* const patternClass = getPatternClassName('dot-node');
|
|
80
|
+
* return <div className={patternClass}>Content</div>;
|
|
81
|
+
* }
|
|
82
|
+
*
|
|
83
|
+
* @example
|
|
84
|
+
* // In a template string
|
|
85
|
+
* const patternClass = getPatternClassName('grid-nested');
|
|
86
|
+
* const className = 'container ' + patternClass;
|
|
87
|
+
*
|
|
88
|
+
* @example
|
|
89
|
+
* // Conditional pattern application
|
|
90
|
+
* const patternClass = showPattern ? getPatternClassName('tex-woven') : '';
|
|
91
|
+
* const cardClassName = 'card ' + patternClass;
|
|
92
|
+
* <div className={cardClassName}>Card content</div>
|
|
26
93
|
*/
|
|
27
|
-
export declare function
|
|
94
|
+
export declare function getPatternClassName(type: PatternType): string;
|
|
28
95
|
//# sourceMappingURL=patternPaths.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"patternPaths.d.ts","sourceRoot":"","sources":["../../src/utils/patternPaths.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"patternPaths.d.ts","sourceRoot":"","sources":["../../src/utils/patternPaths.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AAEH,MAAM,MAAM,WAAW,GACnB,SAAS,GAET,YAAY,GACZ,cAAc,GACd,WAAW,GACX,WAAW,GACX,UAAU,GACV,aAAa,GAEb,eAAe,GACf,iBAAiB,GACjB,cAAc,GACd,eAAe,GACf,eAAe,GAEf,WAAW,GACX,aAAa,GACb,YAAY,GACZ,aAAa,GACb,iBAAiB,GACjB,WAAW,GACX,mBAAmB,GAEnB,iBAAiB,GACjB,cAAc,GACd,cAAc,GACd,cAAc,GACd,YAAY,GACZ,YAAY,GAEZ,cAAc,GACd,aAAa,GAEb,WAAW,GACX,iBAAiB,GACjB,WAAW,GACX,WAAW,GAEX,eAAe,GACf,gBAAgB,GAChB,cAAc,GACd,eAAe,GAEf,OAAO,GACP,aAAa,GACb,MAAM,GACN,UAAU,GACV,QAAQ,GACR,OAAO,GACP,OAAO,GACP,SAAS,GACT,QAAQ,GACR,QAAQ,CAAC;AAEb,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;CACnB;AAkBD;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,WAAW,EAAE,aAAa,CAwD9D,CAAC;AAEF;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,GAAE,WAAuB,GAAG,aAAa,CAI7E;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,CAG7D"}
|
|
@@ -1,92 +1,168 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Background pattern configurations
|
|
3
|
-
* Patterns are
|
|
4
|
-
*
|
|
3
|
+
* Patterns are CSS-based and use design tokens for theme-aware styling
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* // Using patterns in React components
|
|
7
|
+
* import { getPatternClassName } from 'beacon-ui/utils/patternPaths';
|
|
8
|
+
*
|
|
9
|
+
* function MyComponent() {
|
|
10
|
+
* return (
|
|
11
|
+
* <div className={getPatternClassName('dot-node')}>
|
|
12
|
+
* Content with pattern background
|
|
13
|
+
* </div>
|
|
14
|
+
* );
|
|
15
|
+
* }
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* // Using patterns with CSS classes directly in HTML/JSX
|
|
19
|
+
* <div className="dot-node">
|
|
20
|
+
* Content with pattern background
|
|
21
|
+
* </div>
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* // Using patterns in any container element
|
|
25
|
+
* <section className="dot-subtle">
|
|
26
|
+
* <h2>Section Title</h2>
|
|
27
|
+
* <p>Content with subtle dot pattern background</p>
|
|
28
|
+
* </section>
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* // Combining patterns with other CSS classes
|
|
32
|
+
* const patternClass = getPatternClassName('tex-woven');
|
|
33
|
+
* const className = 'my-container ' + patternClass;
|
|
34
|
+
* <div className={className}>
|
|
35
|
+
* Content with woven texture pattern
|
|
36
|
+
* </div>
|
|
37
|
+
*
|
|
38
|
+
* @remarks
|
|
39
|
+
* All pattern classes are defined in the global CSS and use design tokens
|
|
40
|
+
* (--pattern-ink-1 through --pattern-ink-4) for theme-aware styling.
|
|
41
|
+
* Patterns automatically adapt to light and dark themes.
|
|
42
|
+
*
|
|
43
|
+
* Available pattern categories:
|
|
44
|
+
* - Dot: dot-subtle, dot-halftone, dot-polka, dot-stars, dot-node, dot-striped
|
|
45
|
+
* - Line: line-vertical, line-horizontal, line-stacked, line-hashrate, line-diagonal
|
|
46
|
+
* - Grid: grid-soft, grid-offset, grid-graph, grid-nested, grid-datacenter, grid-plus, grid-minimal-plus
|
|
47
|
+
* - Ring: ring-concentric, ring-outline, ring-quarter, ring-orbital, ring-radar, ring-noise
|
|
48
|
+
* - Wave: wave-scallop, wave-stripe
|
|
49
|
+
* - Texture: tex-woven, tex-herringbone, tex-brick, tex-paper
|
|
50
|
+
* - Shape: shape-checker, shape-triangle, shape-zigzag, shape-bracket
|
|
5
51
|
*/
|
|
6
52
|
/**
|
|
7
|
-
*
|
|
8
|
-
|
|
9
|
-
|
|
53
|
+
* Legacy pattern name mapping to new CSS pattern classes
|
|
54
|
+
*/
|
|
55
|
+
const LEGACY_PATTERN_MAP = {
|
|
56
|
+
cubes: "grid-nested",
|
|
57
|
+
mathematics: "grid-graph",
|
|
58
|
+
dots: "dot-subtle",
|
|
59
|
+
diagonal: "line-diagonal",
|
|
60
|
+
smudge: "ring-noise",
|
|
61
|
+
paper: "tex-paper",
|
|
62
|
+
denim: "tex-woven",
|
|
63
|
+
squares: "grid-soft",
|
|
64
|
+
mosaic: "grid-nested",
|
|
65
|
+
cotton: "tex-woven",
|
|
66
|
+
};
|
|
67
|
+
/**
|
|
68
|
+
* Pattern configurations with CSS class names
|
|
10
69
|
*/
|
|
11
70
|
export const PATTERN_CONFIGS = {
|
|
12
71
|
default: {
|
|
13
|
-
|
|
14
|
-
backgroundSize: "128px 128px",
|
|
15
|
-
},
|
|
16
|
-
cubes: {
|
|
17
|
-
imageUrl: "/images/patterns/Cube_pt.png",
|
|
18
|
-
backgroundSize: "33.5px 50px",
|
|
19
|
-
backgroundPosition: "top left",
|
|
20
|
-
},
|
|
21
|
-
mathematics: {
|
|
22
|
-
imageUrl: "/images/patterns/Maths_pt.png",
|
|
23
|
-
backgroundSize: "64px 128px",
|
|
24
|
-
backgroundPosition: "top left",
|
|
25
|
-
inset: "0 -322px -322px 0",
|
|
26
|
-
},
|
|
27
|
-
dots: {
|
|
28
|
-
imageUrl: "/images/patterns/Dots_pt.png",
|
|
29
|
-
backgroundSize: "186px 186px",
|
|
30
|
-
backgroundPosition: "top left",
|
|
31
|
-
inset: "0 -322px -322px 0",
|
|
32
|
-
},
|
|
33
|
-
diagonal: {
|
|
34
|
-
imageUrl: "/images/patterns/Diagonal_pt.png",
|
|
35
|
-
backgroundSize: "7px 7px",
|
|
36
|
-
backgroundPosition: "top left",
|
|
37
|
-
inset: "0 -322px -322px 0",
|
|
38
|
-
},
|
|
39
|
-
smudge: {
|
|
40
|
-
imageUrl: "/images/patterns/Smudge_pt.png",
|
|
41
|
-
backgroundSize: "200px 200px",
|
|
42
|
-
backgroundPosition: "top left",
|
|
43
|
-
inset: "0 -322px -322px 0",
|
|
44
|
-
},
|
|
45
|
-
paper: {
|
|
46
|
-
imageUrl: "/images/patterns/Rough_Paper_pt.png",
|
|
47
|
-
backgroundSize: "158px 158px",
|
|
48
|
-
backgroundPosition: "top left",
|
|
49
|
-
inset: "0 -322px -322px 0",
|
|
50
|
-
},
|
|
51
|
-
denim: {
|
|
52
|
-
imageUrl: "/images/patterns/Denim_pt.png",
|
|
53
|
-
backgroundSize: "210px 163px",
|
|
54
|
-
backgroundPosition: "top left",
|
|
55
|
-
inset: "0 -322px -322px 0",
|
|
56
|
-
},
|
|
57
|
-
squares: {
|
|
58
|
-
imageUrl: "/images/patterns/Squares_pt.png",
|
|
59
|
-
backgroundSize: "32px 32px",
|
|
60
|
-
backgroundPosition: "top left",
|
|
61
|
-
inset: "0 -322px -322px 0",
|
|
62
|
-
},
|
|
63
|
-
mosaic: {
|
|
64
|
-
imageUrl: "/images/patterns/Mosaic_pt.png",
|
|
65
|
-
backgroundSize: "355px 288px",
|
|
66
|
-
backgroundPosition: "top left",
|
|
67
|
-
inset: "0 -322px -322px 0",
|
|
68
|
-
},
|
|
69
|
-
cotton: {
|
|
70
|
-
imageUrl: "/images/patterns/Cotton_pt.png",
|
|
71
|
-
backgroundSize: "157.5px 157.5px",
|
|
72
|
-
backgroundPosition: "top left",
|
|
73
|
-
inset: "0 -322px -322px 0",
|
|
72
|
+
className: "",
|
|
74
73
|
},
|
|
74
|
+
// Dot patterns
|
|
75
|
+
"dot-subtle": { className: "dot-subtle" },
|
|
76
|
+
"dot-halftone": { className: "dot-halftone" },
|
|
77
|
+
"dot-polka": { className: "dot-polka" },
|
|
78
|
+
"dot-stars": { className: "dot-stars" },
|
|
79
|
+
"dot-node": { className: "dot-node" },
|
|
80
|
+
"dot-striped": { className: "dot-striped" },
|
|
81
|
+
// Line patterns
|
|
82
|
+
"line-vertical": { className: "line-vertical" },
|
|
83
|
+
"line-horizontal": { className: "line-horizontal" },
|
|
84
|
+
"line-stacked": { className: "line-stacked" },
|
|
85
|
+
"line-hashrate": { className: "line-hashrate" },
|
|
86
|
+
"line-diagonal": { className: "line-diagonal" },
|
|
87
|
+
// Grid patterns
|
|
88
|
+
"grid-soft": { className: "grid-soft" },
|
|
89
|
+
"grid-offset": { className: "grid-offset" },
|
|
90
|
+
"grid-graph": { className: "grid-graph" },
|
|
91
|
+
"grid-nested": { className: "grid-nested" },
|
|
92
|
+
"grid-datacenter": { className: "grid-datacenter" },
|
|
93
|
+
"grid-plus": { className: "grid-plus" },
|
|
94
|
+
"grid-minimal-plus": { className: "grid-minimal-plus" },
|
|
95
|
+
// Ring patterns
|
|
96
|
+
"ring-concentric": { className: "ring-concentric" },
|
|
97
|
+
"ring-outline": { className: "ring-outline" },
|
|
98
|
+
"ring-quarter": { className: "ring-quarter" },
|
|
99
|
+
"ring-orbital": { className: "ring-orbital" },
|
|
100
|
+
"ring-radar": { className: "ring-radar" },
|
|
101
|
+
"ring-noise": { className: "ring-noise" },
|
|
102
|
+
// Wave patterns
|
|
103
|
+
"wave-scallop": { className: "wave-scallop" },
|
|
104
|
+
"wave-stripe": { className: "wave-stripe" },
|
|
105
|
+
// Texture patterns
|
|
106
|
+
"tex-woven": { className: "tex-woven" },
|
|
107
|
+
"tex-herringbone": { className: "tex-herringbone" },
|
|
108
|
+
"tex-brick": { className: "tex-brick" },
|
|
109
|
+
"tex-paper": { className: "tex-paper" },
|
|
110
|
+
// Shape patterns
|
|
111
|
+
"shape-checker": { className: "shape-checker" },
|
|
112
|
+
"shape-triangle": { className: "shape-triangle" },
|
|
113
|
+
"shape-zigzag": { className: "shape-zigzag" },
|
|
114
|
+
"shape-bracket": { className: "shape-bracket" },
|
|
115
|
+
// Legacy patterns (mapped to new CSS patterns)
|
|
116
|
+
cubes: { className: "grid-nested" },
|
|
117
|
+
mathematics: { className: "grid-graph" },
|
|
118
|
+
dots: { className: "dot-subtle" },
|
|
119
|
+
diagonal: { className: "line-diagonal" },
|
|
120
|
+
smudge: { className: "ring-noise" },
|
|
121
|
+
paper: { className: "tex-paper" },
|
|
122
|
+
denim: { className: "tex-woven" },
|
|
123
|
+
squares: { className: "grid-soft" },
|
|
124
|
+
mosaic: { className: "grid-nested" },
|
|
125
|
+
cotton: { className: "tex-woven" },
|
|
75
126
|
};
|
|
76
127
|
/**
|
|
77
128
|
* Get pattern configuration by type
|
|
129
|
+
* Handles legacy pattern names by mapping them to new CSS patterns
|
|
78
130
|
*/
|
|
79
131
|
export function getPatternConfig(type = "default") {
|
|
80
|
-
|
|
132
|
+
// Map legacy pattern names to new CSS patterns
|
|
133
|
+
const mappedType = LEGACY_PATTERN_MAP[type] || type;
|
|
134
|
+
return PATTERN_CONFIGS[mappedType] || PATTERN_CONFIGS.default;
|
|
81
135
|
}
|
|
82
136
|
/**
|
|
83
|
-
* Get pattern
|
|
84
|
-
*
|
|
137
|
+
* Get pattern CSS class name
|
|
138
|
+
*
|
|
139
|
+
* Use this function to get the CSS class name for a pattern type.
|
|
140
|
+
* The returned class name can be applied to any HTML element to add a background pattern.
|
|
141
|
+
*
|
|
142
|
+
* @param type - The pattern type to get the class name for
|
|
143
|
+
* @returns The CSS class name for the pattern, or empty string for "default"
|
|
144
|
+
*
|
|
145
|
+
* @example
|
|
146
|
+
* // In a React component
|
|
147
|
+
* import { getPatternClassName } from 'beacon-ui/utils/patternPaths';
|
|
148
|
+
*
|
|
149
|
+
* function MyComponent() {
|
|
150
|
+
* const patternClass = getPatternClassName('dot-node');
|
|
151
|
+
* return <div className={patternClass}>Content</div>;
|
|
152
|
+
* }
|
|
153
|
+
*
|
|
154
|
+
* @example
|
|
155
|
+
* // In a template string
|
|
156
|
+
* const patternClass = getPatternClassName('grid-nested');
|
|
157
|
+
* const className = 'container ' + patternClass;
|
|
158
|
+
*
|
|
159
|
+
* @example
|
|
160
|
+
* // Conditional pattern application
|
|
161
|
+
* const patternClass = showPattern ? getPatternClassName('tex-woven') : '';
|
|
162
|
+
* const cardClassName = 'card ' + patternClass;
|
|
163
|
+
* <div className={cardClassName}>Card content</div>
|
|
85
164
|
*/
|
|
86
|
-
export function
|
|
165
|
+
export function getPatternClassName(type) {
|
|
87
166
|
const config = getPatternConfig(type);
|
|
88
|
-
|
|
89
|
-
return "";
|
|
90
|
-
}
|
|
91
|
-
return config.imageUrl;
|
|
167
|
+
return config.className || "";
|
|
92
168
|
}
|
package/package.json
CHANGED
|
@@ -74,6 +74,10 @@
|
|
|
74
74
|
--static-primary-black: var(--color-primary-900);
|
|
75
75
|
--static-white: var(--color-alpha-neutral-white-1000);
|
|
76
76
|
--static-black: var(--color-alpha-neutral-black-1000);
|
|
77
|
+
--util-pattern-ink-1: var(--color-alpha-neutral-white-70);
|
|
78
|
+
--util-pattern-ink-2: var(--color-alpha-neutral-white-40);
|
|
79
|
+
--util-pattern-ink-3: var(--color-alpha-neutral-white-30);
|
|
80
|
+
--util-pattern-ink-4: var(--color-alpha-neutral-black-40);
|
|
77
81
|
--util-overlay-dull: var(--color-alpha-neutral-black-200);
|
|
78
82
|
--util-overlay-light: var(--color-alpha-neutral-black-300);
|
|
79
83
|
--util-overlay-medium: var(--color-alpha-neutral-black-500);
|
|
@@ -74,6 +74,10 @@
|
|
|
74
74
|
--static-primary-black: var(--color-primary-900);
|
|
75
75
|
--static-white: var(--color-alpha-neutral-white-1000);
|
|
76
76
|
--static-black: var(--color-alpha-neutral-black-1000);
|
|
77
|
+
--util-pattern-ink-1: var(--color-alpha-neutral-black-120);
|
|
78
|
+
--util-pattern-ink-2: var(--color-alpha-neutral-black-80);
|
|
79
|
+
--util-pattern-ink-3: var(--color-alpha-neutral-black-60);
|
|
80
|
+
--util-pattern-ink-4: var(--color-alpha-neutral-white-20);
|
|
77
81
|
--util-overlay-dull: var(--color-alpha-neutral-black-200);
|
|
78
82
|
--util-overlay-light: var(--color-alpha-neutral-black-300);
|
|
79
83
|
--util-overlay-medium: var(--color-alpha-neutral-black-500);
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
--color-blue-500: #0b6cf4;
|
|
20
20
|
--color-blue-600: #0957c3;
|
|
21
21
|
--color-blue-700: #004296;
|
|
22
|
-
--color-blue-800: #
|
|
22
|
+
--color-blue-800: #002150;
|
|
23
23
|
--color-blue-900: #021939;
|
|
24
24
|
--color-chromatic-100: #f1f4fe;
|
|
25
25
|
--color-chromatic-200: #c4c8d7;
|
|
@@ -65,7 +65,11 @@
|
|
|
65
65
|
--color-orange-700: #7c4a15;
|
|
66
66
|
--color-orange-800: #593815;
|
|
67
67
|
--color-black-0: #00000000;
|
|
68
|
+
--color-black-40: #0000000a;
|
|
69
|
+
--color-black-60: #0000000f;
|
|
70
|
+
--color-black-80: #00000014;
|
|
68
71
|
--color-black-100: #0000001a;
|
|
72
|
+
--color-black-120: #0000001f;
|
|
69
73
|
--color-black-200: #00000033;
|
|
70
74
|
--color-black-300: #0000004d;
|
|
71
75
|
--color-black-400: #00000066;
|
|
@@ -75,6 +79,10 @@
|
|
|
75
79
|
--color-black-800: #000000cc;
|
|
76
80
|
--color-black-1000: #000000;
|
|
77
81
|
--color-white-0: #ffffff00;
|
|
82
|
+
--color-white-20: #ffffff05;
|
|
83
|
+
--color-white-30: #ffffff08;
|
|
84
|
+
--color-white-40: #ffffff0a;
|
|
85
|
+
--color-white-70: #ffffff12;
|
|
78
86
|
--color-white-100: #ffffff1a;
|
|
79
87
|
--color-white-200: #ffffff33;
|
|
80
88
|
--color-white-300: #ffffff4d;
|
|
@@ -198,6 +206,10 @@
|
|
|
198
206
|
--color-critical-700: var(--color-red-700);
|
|
199
207
|
--color-critical-800: var(--color-red-800);
|
|
200
208
|
--color-alpha-neutral-white-0: var(--color-white-0);
|
|
209
|
+
--color-alpha-neutral-white-20: var(--color-white-20);
|
|
210
|
+
--color-alpha-neutral-white-30: var(--color-white-30);
|
|
211
|
+
--color-alpha-neutral-white-40: var(--color-white-40);
|
|
212
|
+
--color-alpha-neutral-white-70: var(--color-white-70);
|
|
201
213
|
--color-alpha-neutral-white-100: var(--color-white-100);
|
|
202
214
|
--color-alpha-neutral-white-200: var(--color-white-200);
|
|
203
215
|
--color-alpha-neutral-white-300: var(--color-white-300);
|
|
@@ -208,6 +220,10 @@
|
|
|
208
220
|
--color-alpha-neutral-white-800: var(--color-white-800);
|
|
209
221
|
--color-alpha-neutral-white-1000: var(--color-white-1000);
|
|
210
222
|
--color-alpha-neutral-black-0: var(--color-black-0);
|
|
223
|
+
--color-alpha-neutral-black-40: var(--color-black-40);
|
|
224
|
+
--color-alpha-neutral-black-60: var(--color-black-60);
|
|
225
|
+
--color-alpha-neutral-black-80: var(--color-black-80);
|
|
226
|
+
--color-alpha-neutral-black-120: var(--color-black-120);
|
|
211
227
|
--color-alpha-neutral-black-100: var(--color-black-100);
|
|
212
228
|
--color-alpha-neutral-black-200: var(--color-black-200);
|
|
213
229
|
--color-alpha-neutral-black-300: var(--color-black-300);
|
|
@@ -332,6 +348,10 @@
|
|
|
332
348
|
--static-primary-black: var(--color-primary-900);
|
|
333
349
|
--static-white: var(--color-alpha-neutral-white-1000);
|
|
334
350
|
--static-black: var(--color-alpha-neutral-black-1000);
|
|
351
|
+
--util-pattern-ink-1: var(--color-alpha-neutral-black-120);
|
|
352
|
+
--util-pattern-ink-2: var(--color-alpha-neutral-black-80);
|
|
353
|
+
--util-pattern-ink-3: var(--color-alpha-neutral-black-60);
|
|
354
|
+
--util-pattern-ink-4: var(--color-alpha-neutral-white-20);
|
|
335
355
|
--util-overlay-dull: var(--color-alpha-neutral-black-200);
|
|
336
356
|
--util-overlay-light: var(--color-alpha-neutral-black-300);
|
|
337
357
|
--util-overlay-medium: var(--color-alpha-neutral-black-500);
|
|
@@ -419,6 +439,10 @@
|
|
|
419
439
|
--static-primary-black: var(--color-primary-900);
|
|
420
440
|
--static-white: var(--color-alpha-neutral-white-1000);
|
|
421
441
|
--static-black: var(--color-alpha-neutral-black-1000);
|
|
442
|
+
--util-pattern-ink-1: var(--color-alpha-neutral-white-70);
|
|
443
|
+
--util-pattern-ink-2: var(--color-alpha-neutral-white-40);
|
|
444
|
+
--util-pattern-ink-3: var(--color-alpha-neutral-white-30);
|
|
445
|
+
--util-pattern-ink-4: var(--color-alpha-neutral-black-40);
|
|
422
446
|
--util-overlay-dull: var(--color-alpha-neutral-black-200);
|
|
423
447
|
--util-overlay-light: var(--color-alpha-neutral-black-300);
|
|
424
448
|
--util-overlay-medium: var(--color-alpha-neutral-black-500);
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
--color-blue-500: #0b6cf4;
|
|
17
17
|
--color-blue-600: #0957c3;
|
|
18
18
|
--color-blue-700: #004296;
|
|
19
|
-
--color-blue-800: #
|
|
19
|
+
--color-blue-800: #002150;
|
|
20
20
|
--color-blue-900: #021939;
|
|
21
21
|
--color-chromatic-100: #f1f4fe;
|
|
22
22
|
--color-chromatic-200: #c4c8d7;
|
|
@@ -62,7 +62,11 @@
|
|
|
62
62
|
--color-orange-700: #7c4a15;
|
|
63
63
|
--color-orange-800: #593815;
|
|
64
64
|
--color-black-0: #00000000;
|
|
65
|
+
--color-black-40: #0000000a;
|
|
66
|
+
--color-black-60: #0000000f;
|
|
67
|
+
--color-black-80: #00000014;
|
|
65
68
|
--color-black-100: #0000001a;
|
|
69
|
+
--color-black-120: #0000001f;
|
|
66
70
|
--color-black-200: #00000033;
|
|
67
71
|
--color-black-300: #0000004d;
|
|
68
72
|
--color-black-400: #00000066;
|
|
@@ -72,6 +76,10 @@
|
|
|
72
76
|
--color-black-800: #000000cc;
|
|
73
77
|
--color-black-1000: #000000;
|
|
74
78
|
--color-white-0: #ffffff00;
|
|
79
|
+
--color-white-20: #ffffff05;
|
|
80
|
+
--color-white-30: #ffffff08;
|
|
81
|
+
--color-white-40: #ffffff0a;
|
|
82
|
+
--color-white-70: #ffffff12;
|
|
75
83
|
--color-white-100: #ffffff1a;
|
|
76
84
|
--color-white-200: #ffffff33;
|
|
77
85
|
--color-white-300: #ffffff4d;
|
|
@@ -78,6 +78,10 @@
|
|
|
78
78
|
--color-critical-700: var(--color-red-700);
|
|
79
79
|
--color-critical-800: var(--color-red-800);
|
|
80
80
|
--color-alpha-neutral-white-0: var(--color-white-0);
|
|
81
|
+
--color-alpha-neutral-white-20: var(--color-white-20);
|
|
82
|
+
--color-alpha-neutral-white-30: var(--color-white-30);
|
|
83
|
+
--color-alpha-neutral-white-40: var(--color-white-40);
|
|
84
|
+
--color-alpha-neutral-white-70: var(--color-white-70);
|
|
81
85
|
--color-alpha-neutral-white-100: var(--color-white-100);
|
|
82
86
|
--color-alpha-neutral-white-200: var(--color-white-200);
|
|
83
87
|
--color-alpha-neutral-white-300: var(--color-white-300);
|
|
@@ -88,6 +92,10 @@
|
|
|
88
92
|
--color-alpha-neutral-white-800: var(--color-white-800);
|
|
89
93
|
--color-alpha-neutral-white-1000: var(--color-white-1000);
|
|
90
94
|
--color-alpha-neutral-black-0: var(--color-black-0);
|
|
95
|
+
--color-alpha-neutral-black-40: var(--color-black-40);
|
|
96
|
+
--color-alpha-neutral-black-60: var(--color-black-60);
|
|
97
|
+
--color-alpha-neutral-black-80: var(--color-black-80);
|
|
98
|
+
--color-alpha-neutral-black-120: var(--color-black-120);
|
|
91
99
|
--color-alpha-neutral-black-100: var(--color-black-100);
|
|
92
100
|
--color-alpha-neutral-black-200: var(--color-black-200);
|
|
93
101
|
--color-alpha-neutral-black-300: var(--color-black-300);
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
# Pattern Images
|
|
2
|
-
|
|
3
|
-
This directory contains background pattern images used by the Card component.
|
|
4
|
-
|
|
5
|
-
## Usage
|
|
6
|
-
|
|
7
|
-
These images are part of the `beacon-ui` package and are stored in `packages/beacon-ui/assets/patterns/`.
|
|
8
|
-
|
|
9
|
-
For the documentation site, they are automatically copied to `public/images/patterns/` during build via the `copy:assets` script.
|
|
10
|
-
|
|
11
|
-
For consuming applications:
|
|
12
|
-
|
|
13
|
-
1. Copy the pattern images from `node_modules/beacon-ui/assets/patterns/` to your application's `public/images/patterns/` directory
|
|
14
|
-
2. The Card component will automatically reference them via `/images/patterns/` paths
|
|
15
|
-
|
|
16
|
-
## Pattern Files
|
|
17
|
-
|
|
18
|
-
- `Cube_pt.png` - Cubes pattern
|
|
19
|
-
- `Maths_pt.png` - Mathematics pattern
|
|
20
|
-
- `Dots_pt.png` - Dots pattern
|
|
21
|
-
- `Diagonal_pt.png` - Diagonal lines pattern
|
|
22
|
-
- `Smudge_pt.png` - Charcoal smudge pattern
|
|
23
|
-
- `Rough_Paper_pt.png` - Rough paper pattern
|
|
24
|
-
- `Denim_pt.png` - Denim pattern
|
|
25
|
-
- `Squares_pt.png` - Squares pattern
|
|
26
|
-
- `Mosaic_pt.png` - Mosaic pattern
|
|
27
|
-
- `Cotton_pt.png` - Cotton pattern
|
|
28
|
-
|
|
29
|
-
## Automatic Setup (Optional)
|
|
30
|
-
|
|
31
|
-
You can add a postinstall script to your `package.json` to automatically copy these images:
|
|
32
|
-
|
|
33
|
-
```json
|
|
34
|
-
{
|
|
35
|
-
"scripts": {
|
|
36
|
-
"postinstall": "mkdir -p public/images/patterns && cp -r node_modules/beacon-ui/assets/patterns/* public/images/patterns/"
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
```
|
|
40
|
-
|
|
Binary file
|
|
Binary file
|
|
Binary file
|