@fangxinyan/lumina 0.6.11 → 0.6.12

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.
@@ -1,6 +1,8 @@
1
1
  /* ============ Card ============ */
2
2
  .card {
3
- background: var(--bg);
3
+ --card-bg: var(--bg);
4
+ --card-loading-bg: color-mix(in srgb, var(--bg) 72%, var(--bg-sunken));
5
+ background: var(--card-bg);
4
6
  border-radius: var(--r-lg);
5
7
  box-shadow: var(--neu-shadow-panel);
6
8
  padding: var(--gap-5);
@@ -66,7 +68,7 @@
66
68
  border-radius: var(--r-md);
67
69
  display: grid;
68
70
  place-items: center;
69
- background: color-mix(in srgb, var(--bg) 72%, var(--bg-sunken));
71
+ background: var(--card-loading-bg);
70
72
  box-shadow:
71
73
  inset calc(var(--shadow-inset-offset) * 0.45) calc(var(--shadow-inset-offset) * 0.45) calc(var(--shadow-inset-blur) * 0.45) color-mix(in oklch, var(--shadow-dark) 55%, transparent),
72
74
  inset calc(var(--shadow-inset-offset) * -0.45) calc(var(--shadow-inset-offset) * -0.45) calc(var(--shadow-inset-blur) * 0.45) color-mix(in oklch, var(--shadow-light) 72%, transparent);
package/dist/Card.cjs CHANGED
@@ -1,11 +1,11 @@
1
1
  'use strict';
2
2
 
3
- var chunkOUSJMIZX_cjs = require('./chunk-OUSJMIZX.cjs');
3
+ var chunkKZZ5Y56R_cjs = require('./chunk-KZZ5Y56R.cjs');
4
4
  require('./chunk-MZCKPLHQ.cjs');
5
5
 
6
6
 
7
7
 
8
8
  Object.defineProperty(exports, "Card", {
9
9
  enumerable: true,
10
- get: function () { return chunkOUSJMIZX_cjs.Card; }
10
+ get: function () { return chunkKZZ5Y56R_cjs.Card; }
11
11
  });
package/dist/Card.d.cts CHANGED
@@ -7,6 +7,8 @@ type CardBodyProps = Omit<React.HTMLAttributes<HTMLDivElement>, "children" | "cl
7
7
  interface CardProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "title"> {
8
8
  /** Visual variant. `raised` protrudes; `sunken` recesses; `flat` is subtle. */
9
9
  variant?: "raised" | "sunken" | "flat";
10
+ /** Custom card background. Accepts CSS colors, theme tokens, color-mix and gradients. */
11
+ background?: React.CSSProperties["background"];
10
12
  /** Inner padding. */
11
13
  padding?: "none" | "sm" | "md" | "lg";
12
14
  /** When true, the card raises and lifts on hover. */
package/dist/Card.d.ts CHANGED
@@ -7,6 +7,8 @@ type CardBodyProps = Omit<React.HTMLAttributes<HTMLDivElement>, "children" | "cl
7
7
  interface CardProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "title"> {
8
8
  /** Visual variant. `raised` protrudes; `sunken` recesses; `flat` is subtle. */
9
9
  variant?: "raised" | "sunken" | "flat";
10
+ /** Custom card background. Accepts CSS colors, theme tokens, color-mix and gradients. */
11
+ background?: React.CSSProperties["background"];
10
12
  /** Inner padding. */
11
13
  padding?: "none" | "sm" | "md" | "lg";
12
14
  /** When true, the card raises and lifts on hover. */
package/dist/Card.js CHANGED
@@ -1,2 +1,2 @@
1
- export { Card } from './chunk-HEBBQZUT.js';
1
+ export { Card } from './chunk-RBDBEXUU.js';
2
2
  import './chunk-3GJZRYTD.js';
@@ -3,7 +3,7 @@
3
3
  var chunkMZCKPLHQ_cjs = require('./chunk-MZCKPLHQ.cjs');
4
4
  require('./tokens-RGFJKRC7.css');
5
5
  require('./shared-NJHRNLRH.css');
6
- require('./Card-4DKCXWFU.css');
6
+ require('./Card-W3ATFUJW.css');
7
7
  var React = require('react');
8
8
  var jsxRuntime = require('react/jsx-runtime');
9
9
 
@@ -35,6 +35,7 @@ var Card = React__namespace.forwardRef(
35
35
  title,
36
36
  description,
37
37
  actions,
38
+ background,
38
39
  fill = false,
39
40
  bodyLayout,
40
41
  bodyClassName = "",
@@ -43,6 +44,7 @@ var Card = React__namespace.forwardRef(
43
44
  loading = false,
44
45
  loadingOverlay,
45
46
  className = "",
47
+ style,
46
48
  children,
47
49
  ...rest
48
50
  }, ref) => {
@@ -62,7 +64,11 @@ var Card = React__namespace.forwardRef(
62
64
  loading && "loading",
63
65
  bodyClassName
64
66
  ].filter(Boolean).join(" ");
65
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { ref, className: cls, "aria-busy": loading || void 0, ...rest, children: [
67
+ const cardStyle = background ? {
68
+ "--card-bg": background,
69
+ ...style
70
+ } : style;
71
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { ref, className: cls, style: cardStyle, "aria-busy": loading || void 0, ...rest, children: [
66
72
  (title || description || actions) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "card-head", children: [
67
73
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "card-titles", children: [
68
74
  title && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "card-title", children: title }),
@@ -1,7 +1,7 @@
1
1
  import { Spin } from './chunk-3GJZRYTD.js';
2
2
  import './tokens-RGFJKRC7.css';
3
3
  import './shared-NJHRNLRH.css';
4
- import './Card-4DKCXWFU.css';
4
+ import './Card-W3ATFUJW.css';
5
5
  import * as React from 'react';
6
6
  import { jsxs, jsx } from 'react/jsx-runtime';
7
7
 
@@ -13,6 +13,7 @@ var Card = React.forwardRef(
13
13
  title,
14
14
  description,
15
15
  actions,
16
+ background,
16
17
  fill = false,
17
18
  bodyLayout,
18
19
  bodyClassName = "",
@@ -21,6 +22,7 @@ var Card = React.forwardRef(
21
22
  loading = false,
22
23
  loadingOverlay,
23
24
  className = "",
25
+ style,
24
26
  children,
25
27
  ...rest
26
28
  }, ref) => {
@@ -40,7 +42,11 @@ var Card = React.forwardRef(
40
42
  loading && "loading",
41
43
  bodyClassName
42
44
  ].filter(Boolean).join(" ");
43
- return /* @__PURE__ */ jsxs("div", { ref, className: cls, "aria-busy": loading || void 0, ...rest, children: [
45
+ const cardStyle = background ? {
46
+ "--card-bg": background,
47
+ ...style
48
+ } : style;
49
+ return /* @__PURE__ */ jsxs("div", { ref, className: cls, style: cardStyle, "aria-busy": loading || void 0, ...rest, children: [
44
50
  (title || description || actions) && /* @__PURE__ */ jsxs("div", { className: "card-head", children: [
45
51
  /* @__PURE__ */ jsxs("div", { className: "card-titles", children: [
46
52
  title && /* @__PURE__ */ jsx("div", { className: "card-title", children: title }),
package/dist/index.cjs CHANGED
@@ -29,7 +29,7 @@ var chunkN4JH6HHA_cjs = require('./chunk-N4JH6HHA.cjs');
29
29
  var chunk3NSBPQBT_cjs = require('./chunk-3NSBPQBT.cjs');
30
30
  var chunkPEFIXNAV_cjs = require('./chunk-PEFIXNAV.cjs');
31
31
  var chunk4N64ZL5M_cjs = require('./chunk-4N64ZL5M.cjs');
32
- var chunkOUSJMIZX_cjs = require('./chunk-OUSJMIZX.cjs');
32
+ var chunkKZZ5Y56R_cjs = require('./chunk-KZZ5Y56R.cjs');
33
33
  var chunkMZCKPLHQ_cjs = require('./chunk-MZCKPLHQ.cjs');
34
34
  var chunkAA2FRQUQ_cjs = require('./chunk-AA2FRQUQ.cjs');
35
35
  var chunk5KGGB3EH_cjs = require('./chunk-5KGGB3EH.cjs');
@@ -51,7 +51,7 @@ var chunkHTW62OMX_cjs = require('./chunk-HTW62OMX.cjs');
51
51
  var chunkGJAEGIPM_cjs = require('./chunk-GJAEGIPM.cjs');
52
52
 
53
53
  // src/index.ts
54
- var VERSION = "0.6.11";
54
+ var VERSION = "0.6.12";
55
55
 
56
56
  Object.defineProperty(exports, "Tabs", {
57
57
  enumerable: true,
@@ -271,7 +271,7 @@ Object.defineProperty(exports, "List", {
271
271
  });
272
272
  Object.defineProperty(exports, "Card", {
273
273
  enumerable: true,
274
- get: function () { return chunkOUSJMIZX_cjs.Card; }
274
+ get: function () { return chunkKZZ5Y56R_cjs.Card; }
275
275
  });
276
276
  Object.defineProperty(exports, "Spin", {
277
277
  enumerable: true,
package/dist/index.d.cts CHANGED
@@ -49,6 +49,6 @@ import 'react/jsx-runtime';
49
49
  import 'react';
50
50
 
51
51
  /** Package version — bumped by release scripts. */
52
- declare const VERSION = "0.6.11";
52
+ declare const VERSION = "0.6.12";
53
53
 
54
54
  export { VERSION };
package/dist/index.d.ts CHANGED
@@ -49,6 +49,6 @@ import 'react/jsx-runtime';
49
49
  import 'react';
50
50
 
51
51
  /** Package version — bumped by release scripts. */
52
- declare const VERSION = "0.6.11";
52
+ declare const VERSION = "0.6.12";
53
53
 
54
54
  export { VERSION };
package/dist/index.js CHANGED
@@ -27,7 +27,7 @@ export { Form, FormItem, useForm } from './chunk-ACZA7HHP.js';
27
27
  export { Image, ImageGrid, LayeredImage, SpriteImage } from './chunk-GEANNF4T.js';
28
28
  export { InputNumber } from './chunk-3VXBSLPT.js';
29
29
  export { List } from './chunk-Q77BWQNG.js';
30
- export { Card } from './chunk-HEBBQZUT.js';
30
+ export { Card } from './chunk-RBDBEXUU.js';
31
31
  export { Spin } from './chunk-3GJZRYTD.js';
32
32
  export { Cascader } from './chunk-FPII6I52.js';
33
33
  export { Checkbox } from './chunk-PHONNUK2.js';
@@ -49,6 +49,6 @@ export { Calendar } from './chunk-W72IIGOV.js';
49
49
  export { AimOutlined, AppstoreOutlined, BarChartOutlined, BlockOutlined, BorderOutlined, CameraOutlined, CaretDownOutlined, CaretUpOutlined, CheckCircleFilled, CheckCircleOutlined, CheckOutlined, ClockCircleFilled, CloseCircleOutlined, CloseOutlined, CopyOutlined, DashboardOutlined, DeleteOutlined, DownOutlined, EnvironmentOutlined, ExclamationCircleOutlined, FolderOpenOutlined, ICON_NAMES, Icon, LeftOutlined, LoadingOutlined, MinusCircleOutlined, MinusOutlined, NAMED_ICON_MAP, PictureOutlined, PlusOutlined, QqOutlined, ReloadOutlined, RightOutlined, RobotOutlined, SearchOutlined, SettingOutlined, StarFilled, StarOutlined, SwapOutlined, SwapRightOutlined, SyncOutlined, ThunderboltOutlined, TranslationOutlined, UnorderedListOutlined, UserOutlined, isIconName, renderIconSlot, resolveIconName } from './chunk-SNX4FZYB.js';
50
50
 
51
51
  // src/index.ts
52
- var VERSION = "0.6.11";
52
+ var VERSION = "0.6.12";
53
53
 
54
54
  export { VERSION };
package/dist/styles.css CHANGED
@@ -1136,7 +1136,9 @@ input, textarea, select { font-family: inherit; color: inherit; }
1136
1136
  /* center is default (both flex: 1) */
1137
1137
  /* ============ Card ============ */
1138
1138
  .card {
1139
- background: var(--bg);
1139
+ --card-bg: var(--bg);
1140
+ --card-loading-bg: color-mix(in srgb, var(--bg) 72%, var(--bg-sunken));
1141
+ background: var(--card-bg);
1140
1142
  border-radius: var(--r-lg);
1141
1143
  box-shadow: var(--neu-shadow-panel);
1142
1144
  padding: var(--gap-5);
@@ -1199,7 +1201,7 @@ input, textarea, select { font-family: inherit; color: inherit; }
1199
1201
  border-radius: var(--r-md);
1200
1202
  display: grid;
1201
1203
  place-items: center;
1202
- background: color-mix(in srgb, var(--bg) 72%, var(--bg-sunken));
1204
+ background: var(--card-loading-bg);
1203
1205
  box-shadow:
1204
1206
  inset calc(var(--shadow-inset-offset) * 0.45) calc(var(--shadow-inset-offset) * 0.45) calc(var(--shadow-inset-blur) * 0.45) color-mix(in oklch, var(--shadow-dark) 55%, transparent),
1205
1207
  inset calc(var(--shadow-inset-offset) * -0.45) calc(var(--shadow-inset-offset) * -0.45) calc(var(--shadow-inset-blur) * 0.45) color-mix(in oklch, var(--shadow-light) 72%, transparent);
package/docs/llms/card.md CHANGED
@@ -28,6 +28,26 @@ hoverable 在鼠标悬浮时轻微上移并加强阴影,适合可点击的卡片
28
28
  <Card hoverable>可点击卡片</Card>
29
29
  ```
30
30
 
31
+ ### 自定义背景色
32
+
33
+ background 可覆盖卡片根节点背景,纯色、主题 token、color-mix 与渐变都走同一个字段。
34
+
35
+ ```tsx
36
+ <Card background="color-mix(in oklch, var(--accent-soft) 70%, var(--bg))">
37
+ 主题强调底色
38
+ </Card>
39
+ ```
40
+
41
+ ### 渐变背景
42
+
43
+ background 支持完整 CSS 背景值,适合给看板、概览指标或状态卡片做轻量分层。
44
+
45
+ ```tsx
46
+ <Card background="linear-gradient(135deg, var(--bg-raised), var(--accent-soft))">
47
+ 渐变卡片
48
+ </Card>
49
+ ```
50
+
31
51
  ### 带标题
32
52
 
33
53
  带标题、描述、操作区。
@@ -76,6 +96,7 @@ loading 会在正文区域显示中性 overlay;默认 Spin 跟随主题色,l
76
96
  | Prop | 类型 | 默认 | 说明 |
77
97
  | --- | --- | --- | --- |
78
98
  | variant | `"raised" | "flat" | "sunken"` | `"raised"` | 视觉变体 |
99
+ | background | `CSSProperties["background"]` | — | 自定义卡片根节点背景,支持主题 token / color-mix / linear-gradient / radial-gradient 等 CSS 背景值 |
79
100
  | padding | `"none" | "sm" | "md" | "lg"` | `"md"` | 内边距 |
80
101
  | hoverable | `boolean` | `false` | 悬浮时抬起 |
81
102
  | title | `ReactNode` | — | 标题 |
package/docs/llms.md CHANGED
@@ -3,7 +3,7 @@
3
3
  > 拟态风格的 React 18 组件库,目标是 Electron 桌面应用。**写给 AI 编程助手**的按需文档 —— 每个组件单独一个 `.md`,避免一次性读取全部。示例源自 playground 的 demo,可直接复制运行。
4
4
 
5
5
  - **包名**: `@fangxinyan/lumina`
6
- - **版本**: `0.6.11`
6
+ - **版本**: `0.6.12`
7
7
  - **React 最低版本**: 18
8
8
  - **环境**: 带打包器的 React 工程(Vite / Next.js / Webpack / Remix / Electron + Vite 等)
9
9
  - **零运行时依赖**: 只依赖 `react` / `react-dom` (peer deps)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fangxinyan/lumina",
3
- "version": "0.6.11",
3
+ "version": "0.6.12",
4
4
  "description": "Lumina — Neumorphic component library for Electron & React apps",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",