@starci/grammar 0.4.8 → 0.4.9
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/LICENSE +21 -21
- package/README.md +43 -43
- package/dist/core/branch/Tabs/index.d.ts.map +1 -1
- package/dist/core/branch/Tabs/index.js +37 -9
- package/dist/core/branch/Tabs/index.js.map +1 -1
- package/dist/core/styles.css +128 -128
- package/package.json +1 -1
package/LICENSE
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2026 StarCi
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 StarCi
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,46 +1,46 @@
|
|
|
1
|
-
# `@starci/grammar`
|
|
2
|
-
|
|
1
|
+
# `@starci/grammar`
|
|
2
|
+
|
|
3
3
|
`@starci/grammar` separates one shared, business-free UI contract from sibling visual families.
|
|
4
4
|
Common owns typed props, semantics, renderer anatomy, universal states/scales, and the family
|
|
5
5
|
registry. Core, Heritage, and Offset Pop implement that contract with independently scoped visual
|
|
6
6
|
DNA. The package contains no routes, domain entities, product decisions, or feature-named shells.
|
|
7
|
-
|
|
8
|
-
## Public entry points
|
|
9
|
-
|
|
7
|
+
|
|
8
|
+
## Public entry points
|
|
9
|
+
|
|
10
10
|
- `@starci/grammar/common` — shared React renderers, presentation-state helpers, and their CSS. Anonymous layout/action owners include `WorkspaceShell`, `Sidebar`, `Link`, and `TextAction`.
|
|
11
11
|
- `@starci/grammar/core` — the StarCi Core family, its scoped root, DNA, and compatibility aliases.
|
|
12
12
|
- `@starci/grammar/heritage` and `@starci/grammar/offset-pop` — sibling family roots,
|
|
13
13
|
conformance receipts, and scoped visual overlays.
|
|
14
14
|
- `@starci/grammar/common/styles.css`, `@starci/grammar/core/styles.css`,
|
|
15
15
|
`@starci/grammar/heritage/styles.css`, and
|
|
16
|
-
`@starci/grammar/offset-pop/styles.css` — package stylesheets. Short `.css` export aliases are
|
|
17
|
-
also available.
|
|
18
|
-
|
|
19
|
-
Install the workspace package while developing locally:
|
|
20
|
-
|
|
21
|
-
```sh
|
|
22
|
-
npm install ./packages/grammar
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
Import components from the focused entry point:
|
|
26
|
-
|
|
27
|
-
```tsx
|
|
16
|
+
`@starci/grammar/offset-pop/styles.css` — package stylesheets. Short `.css` export aliases are
|
|
17
|
+
also available.
|
|
18
|
+
|
|
19
|
+
Install the workspace package while developing locally:
|
|
20
|
+
|
|
21
|
+
```sh
|
|
22
|
+
npm install ./packages/grammar
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
Import components from the focused entry point:
|
|
26
|
+
|
|
27
|
+
```tsx
|
|
28
28
|
import {
|
|
29
29
|
PageContainer,
|
|
30
|
-
PrimaryRailLayout,
|
|
31
|
-
SurfaceCard,
|
|
30
|
+
PrimaryRailLayout,
|
|
31
|
+
SurfaceCard,
|
|
32
32
|
} from "@starci/grammar/common"
|
|
33
33
|
import { CoreGrammarRoot } from "@starci/grammar/core"
|
|
34
34
|
import "@starci/grammar/core/styles.css"
|
|
35
|
-
|
|
36
|
-
export const ProductSurface = () => (
|
|
35
|
+
|
|
36
|
+
export const ProductSurface = () => (
|
|
37
37
|
<CoreGrammarRoot>
|
|
38
|
-
<PageContainer>
|
|
39
|
-
<PrimaryRailLayout
|
|
40
|
-
primary={<SurfaceCard ariaLabel="Main">...</SurfaceCard>}
|
|
41
|
-
rail={<SurfaceCard ariaLabel="Progress">...</SurfaceCard>}
|
|
42
|
-
/>
|
|
43
|
-
</PageContainer>
|
|
38
|
+
<PageContainer>
|
|
39
|
+
<PrimaryRailLayout
|
|
40
|
+
primary={<SurfaceCard ariaLabel="Main">...</SurfaceCard>}
|
|
41
|
+
rail={<SurfaceCard ariaLabel="Progress">...</SurfaceCard>}
|
|
42
|
+
/>
|
|
43
|
+
</PageContainer>
|
|
44
44
|
</CoreGrammarRoot>
|
|
45
45
|
)
|
|
46
46
|
```
|
|
@@ -56,24 +56,24 @@ Heritage and Offset Pop replace only the neutral family root; every other Common
|
|
|
56
56
|
contract is inherited. Each family stylesheet imports Common anatomy directly and never imports a
|
|
57
57
|
sibling family stylesheet.
|
|
58
58
|
|
|
59
|
-
`IncludedMark` is the purpose-named 20px outlined circle-check for included offering content; it
|
|
60
|
-
inherits foreground and never claims completion. `SurfaceCopyGroup` packages Core's compact `0.5rem`
|
|
61
|
-
title/explanation rhythm. A `SurfaceCard` without `wholeAction` identifies itself as `static`, which
|
|
62
|
-
is the appropriate comparison surface when its short facts must remain visible together.
|
|
63
|
-
|
|
59
|
+
`IncludedMark` is the purpose-named 20px outlined circle-check for included offering content; it
|
|
60
|
+
inherits foreground and never claims completion. `SurfaceCopyGroup` packages Core's compact `0.5rem`
|
|
61
|
+
title/explanation rhythm. A `SurfaceCard` without `wholeAction` identifies itself as `static`, which
|
|
62
|
+
is the appropriate comparison surface when its short facts must remain visible together.
|
|
63
|
+
|
|
64
64
|
Common components accept ordinary typed React props and keep semantic DOM and accessibility behavior.
|
|
65
65
|
The application translates business data into those props; a family changes presentation only.
|
|
66
66
|
`MediaFrame` presents an already selected asset and never decides whether to generate one. The
|
|
67
67
|
machine-checkable `COMMON_UI_RULE_IDS`/`defineGrammarRuleConformance` boundary verifies that each
|
|
68
68
|
family accounts for the canonical UI X-n catalog without copying the laws into package code.
|
|
69
|
-
|
|
70
|
-
## Package checks
|
|
71
|
-
|
|
72
|
-
```sh
|
|
73
|
-
npm run typecheck
|
|
74
|
-
npm test
|
|
75
|
-
npm pack --dry-run
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
The package requires Node.js 20 or newer and has peer dependencies on React 18+ and
|
|
79
|
-
`@heroui/react` 3.2+.
|
|
69
|
+
|
|
70
|
+
## Package checks
|
|
71
|
+
|
|
72
|
+
```sh
|
|
73
|
+
npm run typecheck
|
|
74
|
+
npm test
|
|
75
|
+
npm pack --dry-run
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
The package requires Node.js 20 or newer and has peer dependencies on React 18+ and
|
|
79
|
+
`@heroui/react` 3.2+.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/branch/Tabs/index.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAgD,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAUpF,mEAAmE;AACnE,MAAM,MAAM,OAAO,GAAG;IAClB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,CAAA;CAC/B,CAAA;AAED,8EAA8E;AAC9E,MAAM,MAAM,SAAS,GAAG;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,CAAA;IACtC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;IACzC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAA;IAC1C,4FAA4F;IAC5F,QAAQ,CAAC,eAAe,CAAC,EAAE,YAAY,GAAG,QAAQ,CAAA;IAClD,+EAA+E;IAC/E,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CACnC,CAAA;AAED,qFAAqF;AACrF,eAAO,MAAM,IAAI,GAAI,OAAO,SAAS,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/branch/Tabs/index.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAgD,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAUpF,mEAAmE;AACnE,MAAM,MAAM,OAAO,GAAG;IAClB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,CAAA;CAC/B,CAAA;AAED,8EAA8E;AAC9E,MAAM,MAAM,SAAS,GAAG;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,CAAA;IACtC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;IACzC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAA;IAC1C,4FAA4F;IAC5F,QAAQ,CAAC,eAAe,CAAC,EAAE,YAAY,GAAG,QAAQ,CAAA;IAClD,+EAA+E;IAC/E,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CACnC,CAAA;AAED,qFAAqF;AACrF,eAAO,MAAM,IAAI,GAAI,OAAO,SAAS,gCAwEpC,CAAA"}
|
|
@@ -10,19 +10,47 @@ export const Tabs = (props) => {
|
|
|
10
10
|
const frameRef = useRef(null);
|
|
11
11
|
useEffect(() => setIsClientReady(true), []);
|
|
12
12
|
useLayoutEffect(() => {
|
|
13
|
-
|
|
13
|
+
const frame = frameRef.current;
|
|
14
|
+
const panelId = props.panelId;
|
|
15
|
+
if (!isClientReady || frame === null || panelId === undefined)
|
|
14
16
|
return;
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
17
|
+
// HeroUI's collection may mount or update after this layout effect. Observe
|
|
18
|
+
// only the owned relationship, preserving the actual vendor value for cleanup.
|
|
19
|
+
const relationships = new Map();
|
|
20
|
+
const syncPanelIds = () => {
|
|
21
|
+
frame.querySelectorAll("[data-grammar-tab-id]").forEach((identity) => {
|
|
22
|
+
const itemId = identity.dataset.grammarTabId;
|
|
23
|
+
const tab = identity.closest("[role='tab']");
|
|
24
|
+
if (itemId === undefined || tab === null)
|
|
25
|
+
return;
|
|
26
|
+
const current = tab.getAttribute("aria-controls");
|
|
27
|
+
const previous = relationships.get(tab);
|
|
28
|
+
const expected = panelId(itemId);
|
|
29
|
+
const original = previous !== undefined && current === previous.applied ? previous.original : current;
|
|
30
|
+
relationships.set(tab, { original, applied: expected });
|
|
31
|
+
if (current !== expected)
|
|
32
|
+
tab.setAttribute("aria-controls", expected);
|
|
33
|
+
});
|
|
34
|
+
};
|
|
35
|
+
const observer = new MutationObserver(syncPanelIds);
|
|
36
|
+
observer.observe(frame, { childList: true, subtree: true, attributes: true, attributeFilter: ["aria-controls", "data-grammar-tab-id"] });
|
|
37
|
+
syncPanelIds();
|
|
38
|
+
return () => {
|
|
39
|
+
observer.disconnect();
|
|
40
|
+
relationships.forEach(({ original, applied }, tab) => {
|
|
41
|
+
if (tab.getAttribute("aria-controls") !== applied)
|
|
42
|
+
return;
|
|
43
|
+
if (original === null)
|
|
44
|
+
tab.removeAttribute("aria-controls");
|
|
45
|
+
else
|
|
46
|
+
tab.setAttribute("aria-controls", original);
|
|
47
|
+
});
|
|
48
|
+
};
|
|
49
|
+
}, [isClientReady, props.items, props.panelId, props.selectedKey]);
|
|
22
50
|
const inset = props.inset ?? "none";
|
|
23
51
|
const frameContract = inset === "page" ? "PADDING-5" : undefined;
|
|
24
52
|
if (!isClientReady)
|
|
25
53
|
return _jsx("div", { "aria-hidden": "true", className: tabsFrameClassName, "data-contract": frameContract, "data-grammar-tabs": "true", "data-grammar-tabs-client": "pending", "data-grammar-tabs-inset": inset, style: { minHeight: "3rem" } });
|
|
26
|
-
return _jsx("div", { ref: frameRef, className: tabsFrameClassName, "data-contract": frameContract, "data-grammar-tabs": "true", "data-grammar-tabs-client": "ready", "data-grammar-tabs-inset": inset, "data-grammar-tab-labels": props.labelVisibility ?? "responsive", children: _jsx(HorizontalScrollRegion, { className: tabsScrollClassName, "data-contract": "OVERFLOW-4", "data-grammar-tabs-overflow": "scroll", hideScrollBar: true, children: _jsx(HeroTabs, { variant: "secondary", selectedKey: props.selectedKey, onSelectionChange: (key) => props.onSelect?.(String(key)), className: tabsClassName ?? "", "data-contract": "FLOW-2", children: _jsx(HeroTabs.ListContainer, { children: _jsx(HeroTabs.List, { "aria-label": props.label, children: props.items.map((item) => (_jsxs(HeroTabs.Tab, { id: item.id, "aria-label": item.label, "
|
|
54
|
+
return _jsx("div", { ref: frameRef, className: tabsFrameClassName, "data-contract": frameContract, "data-grammar-tabs": "true", "data-grammar-tabs-client": "ready", "data-grammar-tabs-inset": inset, "data-grammar-tab-labels": props.labelVisibility ?? "responsive", children: _jsx(HorizontalScrollRegion, { className: tabsScrollClassName, "data-contract": "OVERFLOW-4", "data-grammar-tabs-overflow": "scroll", hideScrollBar: true, children: _jsx(HeroTabs, { variant: "secondary", selectedKey: props.selectedKey, onSelectionChange: (key) => props.onSelect?.(String(key)), className: tabsClassName ?? "", "data-contract": "FLOW-2", children: _jsx(HeroTabs.ListContainer, { children: _jsx(HeroTabs.List, { "aria-label": props.label, children: props.items.map((item) => (_jsxs(HeroTabs.Tab, { id: item.id, "aria-label": item.label, "data-contract": "PADDING-3", children: [_jsxs("span", { className: tabContentClassName, "data-contract": "GAP-2", "data-grammar-tab-id": item.id, children: [item.leading, _jsx("span", { className: tabLabelClassName, style: props.labelVisibility === "always" ? { display: "inline" } : undefined, children: item.label })] }), _jsx(HeroTabs.Indicator, {})] }, item.id))) }) }) }) }) });
|
|
27
55
|
};
|
|
28
56
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/branch/Tabs/index.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,IAAI,IAAI,QAAQ,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAkB,MAAM,OAAO,CAAA;AACpF,OAAO,EAAE,sBAAsB,EAAE,MAAM,iDAAiD,CAAA;AACxF,OAAO,EACH,mBAAmB,EACnB,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EAClB,mBAAmB,GACtB,MAAM,iBAAiB,CAAA;AAsBxB,qFAAqF;AACrF,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,KAAgB,EAAE,EAAE;IACrC,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IACzD,MAAM,QAAQ,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAA;IAC7C,SAAS,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAA;IAC3C,eAAe,CAAC,GAAG,EAAE;QACjB,IAAI,CAAC,aAAa,IAAI,KAAK,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/branch/Tabs/index.tsx"],"names":[],"mappings":"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"}
|
package/dist/core/styles.css
CHANGED
|
@@ -1,97 +1,97 @@
|
|
|
1
1
|
@import "../common/styles.css";
|
|
2
2
|
|
|
3
3
|
@layer starci-grammar-core {
|
|
4
|
-
/*
|
|
5
|
-
* StarCi visual DNA is opt-in through GrammarRoot. It supplies a complete,
|
|
6
|
-
* portable semantic theme while keeping product/UI laws out of CSS.
|
|
7
|
-
*/
|
|
4
|
+
/*
|
|
5
|
+
* StarCi visual DNA is opt-in through GrammarRoot. It supplies a complete,
|
|
6
|
+
* portable semantic theme while keeping product/UI laws out of CSS.
|
|
7
|
+
*/
|
|
8
8
|
.grammar-common-root[data-grammar-family="core"] {
|
|
9
|
-
color-scheme: light;
|
|
10
|
-
|
|
11
|
-
--starci-core-accent: #7547ff;
|
|
12
|
-
--starci-core-accent-foreground: oklch(100% 0 0);
|
|
13
|
-
--starci-core-focus: #7248ff;
|
|
14
|
-
--starci-core-canvas: oklch(97.02% 0.0015 354.13);
|
|
15
|
-
--starci-core-surface: oklch(100% 0.0008 354.13);
|
|
16
|
-
--starci-core-surface-secondary: oklch(95.24% 0.0012 354.13);
|
|
17
|
-
--starci-core-foreground: oklch(21.03% 0.0015 354.13);
|
|
18
|
-
--starci-core-muted: oklch(55.17% 0.003 354.13);
|
|
19
|
-
--starci-core-border: oklch(90% 0.0015 354.13);
|
|
20
|
-
--starci-core-separator: oklch(92% 0.0015 354.13);
|
|
21
|
-
--starci-core-success: oklch(73.29% 0.1941 162.85);
|
|
22
|
-
--starci-core-success-foreground: oklch(21.03% 0.0059 162.85);
|
|
23
|
-
--starci-core-warning: oklch(78.19% 0.159 84.37);
|
|
24
|
-
--starci-core-warning-foreground: oklch(21.03% 0.0059 84.37);
|
|
25
|
-
--starci-core-danger: oklch(65.32% 0.2335 37.78);
|
|
26
|
-
--starci-core-danger-foreground: oklch(99.11% 0 0);
|
|
27
|
-
--starci-core-info: oklch(72% 0.17 250);
|
|
28
|
-
--starci-core-info-foreground: oklch(21.03% 0.0059 250);
|
|
29
|
-
--starci-core-page-measure: 80rem;
|
|
30
|
-
--starci-core-reading-measure: 72ch;
|
|
9
|
+
color-scheme: light;
|
|
10
|
+
|
|
11
|
+
--starci-core-accent: #7547ff;
|
|
12
|
+
--starci-core-accent-foreground: oklch(100% 0 0);
|
|
13
|
+
--starci-core-focus: #7248ff;
|
|
14
|
+
--starci-core-canvas: oklch(97.02% 0.0015 354.13);
|
|
15
|
+
--starci-core-surface: oklch(100% 0.0008 354.13);
|
|
16
|
+
--starci-core-surface-secondary: oklch(95.24% 0.0012 354.13);
|
|
17
|
+
--starci-core-foreground: oklch(21.03% 0.0015 354.13);
|
|
18
|
+
--starci-core-muted: oklch(55.17% 0.003 354.13);
|
|
19
|
+
--starci-core-border: oklch(90% 0.0015 354.13);
|
|
20
|
+
--starci-core-separator: oklch(92% 0.0015 354.13);
|
|
21
|
+
--starci-core-success: oklch(73.29% 0.1941 162.85);
|
|
22
|
+
--starci-core-success-foreground: oklch(21.03% 0.0059 162.85);
|
|
23
|
+
--starci-core-warning: oklch(78.19% 0.159 84.37);
|
|
24
|
+
--starci-core-warning-foreground: oklch(21.03% 0.0059 84.37);
|
|
25
|
+
--starci-core-danger: oklch(65.32% 0.2335 37.78);
|
|
26
|
+
--starci-core-danger-foreground: oklch(99.11% 0 0);
|
|
27
|
+
--starci-core-info: oklch(72% 0.17 250);
|
|
28
|
+
--starci-core-info-foreground: oklch(21.03% 0.0059 250);
|
|
29
|
+
--starci-core-page-measure: 80rem;
|
|
30
|
+
--starci-core-reading-measure: 72ch;
|
|
31
31
|
--starci-core-page-inset: var(--grammar-page-inset);
|
|
32
32
|
--starci-core-region-gap: var(--grammar-region-gap);
|
|
33
33
|
--starci-core-section-gap: var(--grammar-section-gap);
|
|
34
34
|
--starci-core-inline-gap: var(--grammar-inline-gap);
|
|
35
35
|
--starci-core-row-gap: var(--grammar-row-gap);
|
|
36
|
-
--starci-core-surface-radius: 1rem;
|
|
37
|
-
--starci-core-control-radius: 0.75rem;
|
|
38
|
-
--starci-core-pill-radius: 999px;
|
|
39
|
-
--starci-core-surface-shadow: 0 8px 28px oklch(21.03% 0.0059 354.13 / 0.07);
|
|
40
|
-
--starci-core-motion-duration: 180ms;
|
|
41
|
-
--starci-core-motion-easing: cubic-bezier(0.2, 0, 0, 1);
|
|
42
|
-
|
|
43
|
-
/* HeroUI and existing Grammar anatomy resolve through the same DNA. */
|
|
44
|
-
--accent: var(--starci-core-accent);
|
|
45
|
-
--accent-foreground: var(--starci-core-accent-foreground);
|
|
46
|
-
--focus: var(--starci-core-focus);
|
|
47
|
-
--background: var(--starci-core-canvas);
|
|
48
|
-
--foreground: var(--starci-core-foreground);
|
|
49
|
-
--surface: var(--starci-core-surface);
|
|
50
|
-
--surface-foreground: var(--starci-core-foreground);
|
|
51
|
-
--surface-secondary: var(--starci-core-surface-secondary);
|
|
52
|
-
--surface-secondary-foreground: var(--starci-core-foreground);
|
|
53
|
-
--muted: var(--starci-core-muted);
|
|
54
|
-
--border: var(--starci-core-border);
|
|
55
|
-
--separator: var(--starci-core-separator);
|
|
56
|
-
--success: var(--starci-core-success);
|
|
57
|
-
--success-foreground: var(--starci-core-success-foreground);
|
|
58
|
-
--warning: var(--starci-core-warning);
|
|
59
|
-
--warning-foreground: var(--starci-core-warning-foreground);
|
|
60
|
-
--danger: var(--starci-core-danger);
|
|
61
|
-
--danger-foreground: var(--starci-core-danger-foreground);
|
|
62
|
-
--info: var(--starci-core-info);
|
|
63
|
-
--info-foreground: var(--starci-core-info-foreground);
|
|
64
|
-
--field-background: var(--starci-core-surface);
|
|
65
|
-
--field-border: transparent;
|
|
66
|
-
--field-foreground: var(--starci-core-foreground);
|
|
67
|
-
--field-placeholder: var(--starci-core-muted);
|
|
68
|
-
--radius: var(--starci-core-control-radius);
|
|
69
|
-
--field-radius: var(--starci-core-control-radius);
|
|
70
|
-
--shadow-surface: var(--starci-core-surface-shadow);
|
|
71
|
-
|
|
72
|
-
min-width: 0;
|
|
73
|
-
background: var(--starci-core-canvas);
|
|
74
|
-
color: var(--starci-core-foreground);
|
|
75
|
-
font-family: var(--starci-font-sans, ui-sans-serif, system-ui, sans-serif);
|
|
76
|
-
}
|
|
77
|
-
|
|
36
|
+
--starci-core-surface-radius: 1rem;
|
|
37
|
+
--starci-core-control-radius: 0.75rem;
|
|
38
|
+
--starci-core-pill-radius: 999px;
|
|
39
|
+
--starci-core-surface-shadow: 0 8px 28px oklch(21.03% 0.0059 354.13 / 0.07);
|
|
40
|
+
--starci-core-motion-duration: 180ms;
|
|
41
|
+
--starci-core-motion-easing: cubic-bezier(0.2, 0, 0, 1);
|
|
42
|
+
|
|
43
|
+
/* HeroUI and existing Grammar anatomy resolve through the same DNA. */
|
|
44
|
+
--accent: var(--starci-core-accent);
|
|
45
|
+
--accent-foreground: var(--starci-core-accent-foreground);
|
|
46
|
+
--focus: var(--starci-core-focus);
|
|
47
|
+
--background: var(--starci-core-canvas);
|
|
48
|
+
--foreground: var(--starci-core-foreground);
|
|
49
|
+
--surface: var(--starci-core-surface);
|
|
50
|
+
--surface-foreground: var(--starci-core-foreground);
|
|
51
|
+
--surface-secondary: var(--starci-core-surface-secondary);
|
|
52
|
+
--surface-secondary-foreground: var(--starci-core-foreground);
|
|
53
|
+
--muted: var(--starci-core-muted);
|
|
54
|
+
--border: var(--starci-core-border);
|
|
55
|
+
--separator: var(--starci-core-separator);
|
|
56
|
+
--success: var(--starci-core-success);
|
|
57
|
+
--success-foreground: var(--starci-core-success-foreground);
|
|
58
|
+
--warning: var(--starci-core-warning);
|
|
59
|
+
--warning-foreground: var(--starci-core-warning-foreground);
|
|
60
|
+
--danger: var(--starci-core-danger);
|
|
61
|
+
--danger-foreground: var(--starci-core-danger-foreground);
|
|
62
|
+
--info: var(--starci-core-info);
|
|
63
|
+
--info-foreground: var(--starci-core-info-foreground);
|
|
64
|
+
--field-background: var(--starci-core-surface);
|
|
65
|
+
--field-border: transparent;
|
|
66
|
+
--field-foreground: var(--starci-core-foreground);
|
|
67
|
+
--field-placeholder: var(--starci-core-muted);
|
|
68
|
+
--radius: var(--starci-core-control-radius);
|
|
69
|
+
--field-radius: var(--starci-core-control-radius);
|
|
70
|
+
--shadow-surface: var(--starci-core-surface-shadow);
|
|
71
|
+
|
|
72
|
+
min-width: 0;
|
|
73
|
+
background: var(--starci-core-canvas);
|
|
74
|
+
color: var(--starci-core-foreground);
|
|
75
|
+
font-family: var(--starci-font-sans, ui-sans-serif, system-ui, sans-serif);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
78
|
.grammar-common-root[data-grammar-family="core"][data-grammar-theme="dark"] {
|
|
79
|
-
color-scheme: dark;
|
|
80
|
-
--starci-core-canvas: oklch(12% 0.0015 354.13);
|
|
81
|
-
--starci-core-surface: oklch(21.03% 0.003 354.13);
|
|
82
|
-
--starci-core-surface-secondary: oklch(25.7% 0.0023 354.13);
|
|
83
|
-
--starci-core-foreground: oklch(99.11% 0.0015 354.13);
|
|
84
|
-
--starci-core-muted: oklch(70.5% 0.003 354.13);
|
|
85
|
-
--starci-core-border: oklch(28% 0.0015 354.13);
|
|
86
|
-
--starci-core-separator: oklch(25% 0.0015 354.13);
|
|
87
|
-
--starci-core-success: oklch(73.29% 0.1941 162.85);
|
|
88
|
-
--starci-core-success-foreground: oklch(21.03% 0.0059 162.85);
|
|
89
|
-
--starci-core-warning: oklch(82.03% 0.1392 88.38);
|
|
90
|
-
--starci-core-warning-foreground: oklch(21.03% 0.0059 88.38);
|
|
91
|
-
--starci-core-danger: oklch(59.4% 0.1973 36.67);
|
|
92
|
-
--starci-core-danger-foreground: oklch(99.11% 0 0);
|
|
93
|
-
--starci-core-info: oklch(72% 0.17 250);
|
|
94
|
-
--starci-core-info-foreground: oklch(21.03% 0.0059 250);
|
|
79
|
+
color-scheme: dark;
|
|
80
|
+
--starci-core-canvas: oklch(12% 0.0015 354.13);
|
|
81
|
+
--starci-core-surface: oklch(21.03% 0.003 354.13);
|
|
82
|
+
--starci-core-surface-secondary: oklch(25.7% 0.0023 354.13);
|
|
83
|
+
--starci-core-foreground: oklch(99.11% 0.0015 354.13);
|
|
84
|
+
--starci-core-muted: oklch(70.5% 0.003 354.13);
|
|
85
|
+
--starci-core-border: oklch(28% 0.0015 354.13);
|
|
86
|
+
--starci-core-separator: oklch(25% 0.0015 354.13);
|
|
87
|
+
--starci-core-success: oklch(73.29% 0.1941 162.85);
|
|
88
|
+
--starci-core-success-foreground: oklch(21.03% 0.0059 162.85);
|
|
89
|
+
--starci-core-warning: oklch(82.03% 0.1392 88.38);
|
|
90
|
+
--starci-core-warning-foreground: oklch(21.03% 0.0059 88.38);
|
|
91
|
+
--starci-core-danger: oklch(59.4% 0.1973 36.67);
|
|
92
|
+
--starci-core-danger-foreground: oklch(99.11% 0 0);
|
|
93
|
+
--starci-core-info: oklch(72% 0.17 250);
|
|
94
|
+
--starci-core-info-foreground: oklch(21.03% 0.0059 250);
|
|
95
95
|
}
|
|
96
96
|
|
|
97
97
|
/* StarCi labelled surfaces paint one material box around label and content. */
|
|
@@ -121,49 +121,49 @@
|
|
|
121
121
|
background: transparent;
|
|
122
122
|
box-shadow: none;
|
|
123
123
|
}
|
|
124
|
-
|
|
125
|
-
@media (prefers-color-scheme: dark) {
|
|
124
|
+
|
|
125
|
+
@media (prefers-color-scheme: dark) {
|
|
126
126
|
.grammar-common-root[data-grammar-family="core"][data-grammar-theme="system"] {
|
|
127
|
-
color-scheme: dark;
|
|
128
|
-
--starci-core-canvas: oklch(12% 0.0015 354.13);
|
|
129
|
-
--starci-core-surface: oklch(21.03% 0.003 354.13);
|
|
130
|
-
--starci-core-surface-secondary: oklch(25.7% 0.0023 354.13);
|
|
131
|
-
--starci-core-foreground: oklch(99.11% 0.0015 354.13);
|
|
132
|
-
--starci-core-muted: oklch(70.5% 0.003 354.13);
|
|
133
|
-
--starci-core-border: oklch(28% 0.0015 354.13);
|
|
134
|
-
--starci-core-separator: oklch(25% 0.0015 354.13);
|
|
135
|
-
--starci-core-success: oklch(73.29% 0.1941 162.85);
|
|
136
|
-
--starci-core-success-foreground: oklch(21.03% 0.0059 162.85);
|
|
137
|
-
--starci-core-warning: oklch(82.03% 0.1392 88.38);
|
|
138
|
-
--starci-core-warning-foreground: oklch(21.03% 0.0059 88.38);
|
|
139
|
-
--starci-core-danger: oklch(59.4% 0.1973 36.67);
|
|
140
|
-
--starci-core-danger-foreground: oklch(99.11% 0 0);
|
|
141
|
-
--starci-core-info: oklch(72% 0.17 250);
|
|
142
|
-
--starci-core-info-foreground: oklch(21.03% 0.0059 250);
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
@media (forced-colors: active) {
|
|
127
|
+
color-scheme: dark;
|
|
128
|
+
--starci-core-canvas: oklch(12% 0.0015 354.13);
|
|
129
|
+
--starci-core-surface: oklch(21.03% 0.003 354.13);
|
|
130
|
+
--starci-core-surface-secondary: oklch(25.7% 0.0023 354.13);
|
|
131
|
+
--starci-core-foreground: oklch(99.11% 0.0015 354.13);
|
|
132
|
+
--starci-core-muted: oklch(70.5% 0.003 354.13);
|
|
133
|
+
--starci-core-border: oklch(28% 0.0015 354.13);
|
|
134
|
+
--starci-core-separator: oklch(25% 0.0015 354.13);
|
|
135
|
+
--starci-core-success: oklch(73.29% 0.1941 162.85);
|
|
136
|
+
--starci-core-success-foreground: oklch(21.03% 0.0059 162.85);
|
|
137
|
+
--starci-core-warning: oklch(82.03% 0.1392 88.38);
|
|
138
|
+
--starci-core-warning-foreground: oklch(21.03% 0.0059 88.38);
|
|
139
|
+
--starci-core-danger: oklch(59.4% 0.1973 36.67);
|
|
140
|
+
--starci-core-danger-foreground: oklch(99.11% 0 0);
|
|
141
|
+
--starci-core-info: oklch(72% 0.17 250);
|
|
142
|
+
--starci-core-info-foreground: oklch(21.03% 0.0059 250);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
@media (forced-colors: active) {
|
|
147
147
|
.grammar-common-root[data-grammar-family="core"] {
|
|
148
|
-
--starci-core-accent: Highlight;
|
|
149
|
-
--starci-core-focus: Highlight;
|
|
150
|
-
--starci-core-canvas: Canvas;
|
|
151
|
-
--starci-core-surface: Canvas;
|
|
152
|
-
--starci-core-surface-secondary: Canvas;
|
|
153
|
-
--starci-core-foreground: CanvasText;
|
|
154
|
-
--starci-core-muted: GrayText;
|
|
155
|
-
--starci-core-border: CanvasText;
|
|
156
|
-
--starci-core-separator: CanvasText;
|
|
157
|
-
--starci-core-success: CanvasText;
|
|
158
|
-
--starci-core-success-foreground: Canvas;
|
|
159
|
-
--starci-core-warning: CanvasText;
|
|
160
|
-
--starci-core-warning-foreground: Canvas;
|
|
161
|
-
--starci-core-danger: CanvasText;
|
|
162
|
-
--starci-core-danger-foreground: Canvas;
|
|
163
|
-
--starci-core-info: CanvasText;
|
|
164
|
-
--starci-core-info-foreground: Canvas;
|
|
165
|
-
--starci-core-surface-shadow: none;
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
|
|
148
|
+
--starci-core-accent: Highlight;
|
|
149
|
+
--starci-core-focus: Highlight;
|
|
150
|
+
--starci-core-canvas: Canvas;
|
|
151
|
+
--starci-core-surface: Canvas;
|
|
152
|
+
--starci-core-surface-secondary: Canvas;
|
|
153
|
+
--starci-core-foreground: CanvasText;
|
|
154
|
+
--starci-core-muted: GrayText;
|
|
155
|
+
--starci-core-border: CanvasText;
|
|
156
|
+
--starci-core-separator: CanvasText;
|
|
157
|
+
--starci-core-success: CanvasText;
|
|
158
|
+
--starci-core-success-foreground: Canvas;
|
|
159
|
+
--starci-core-warning: CanvasText;
|
|
160
|
+
--starci-core-warning-foreground: Canvas;
|
|
161
|
+
--starci-core-danger: CanvasText;
|
|
162
|
+
--starci-core-danger-foreground: Canvas;
|
|
163
|
+
--starci-core-info: CanvasText;
|
|
164
|
+
--starci-core-info-foreground: Canvas;
|
|
165
|
+
--starci-core-surface-shadow: none;
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
|