@publier/shell 0.3.0 → 0.4.0

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.
@@ -0,0 +1 @@
1
+ const e=/* @__PURE__ */ `almond.aspen.atrium.broadsheet.canopy.catppuccin.dark.dusk.emerald.enterprise.folio.hearth.lattice.light.maple.marigold.meridian.monolith.neutral.nocturne.ocean.prism.purple.ruby.solar.vitepress`.split(`.`);function t(){return e}function n(t){return e.includes(t)}const r=[`display-xl`,`display-lg`,`display-md`,`heading-lg`,`heading-md`,`heading-sm`,`title`,`body-lg`,`body-md`,`body-sm`,`caption`,`label`,`button`,`code`],i=[`size`,`weight`,`line-height`,`tracking`];export{t as a,n as i,i as n,r,e as t};
@@ -5,7 +5,7 @@
5
5
  * Node-side introspection (reading CSS files, computing contrast) lives in
6
6
  * `./loader.ts` to keep `node:fs` out of the browser bundle path.
7
7
  */
8
- declare const AVAILABLE_THEMES: readonly ['almond', 'aspen', 'catppuccin', 'dark', 'dusk', 'emerald', 'enterprise', 'hearth', 'light', 'maple', 'neutral', 'ocean', 'purple', 'ruby', 'solar', 'vitepress'];
8
+ declare const AVAILABLE_THEMES: readonly ['almond', 'aspen', 'atrium', 'broadsheet', 'canopy', 'catppuccin', 'dark', 'dusk', 'emerald', 'enterprise', 'folio', 'hearth', 'lattice', 'light', 'maple', 'marigold', 'meridian', 'monolith', 'neutral', 'nocturne', 'ocean', 'prism', 'purple', 'ruby', 'solar', 'vitepress'];
9
9
  type ThemePreset = (typeof AVAILABLE_THEMES)[number];
10
10
  /** Return a read-only copy of the built-in preset list. */
11
11
  declare function listPresets(): readonly ThemePreset[];
@@ -1,3 +1,3 @@
1
- import { i as listPresets, n as ThemePreset, r as isValidPreset, t as AVAILABLE_THEMES } from "../presets-PH6ZjfE7.mjs";
1
+ import { i as listPresets, n as ThemePreset, r as isValidPreset, t as AVAILABLE_THEMES } from "../presets-Cl3HtWjB.mjs";
2
2
  export declare const PRESET_CSS_PATH: '@publier/shell/tailwind/preset.css';
3
3
  export { AVAILABLE_THEMES, type ThemePreset, isValidPreset, listPresets };
@@ -1 +1 @@
1
- import{a as e,i as t,t as n}from"../presets-D_MQnAtK.mjs";const r=`@publier/shell/tailwind/preset.css`;export{n as AVAILABLE_THEMES,r as PRESET_CSS_PATH,t as isValidPreset,e as listPresets};
1
+ import{a as e,i as t,t as n}from"../presets-BHvXbtBH.mjs";const r=`@publier/shell/tailwind/preset.css`;export{n as AVAILABLE_THEMES,r as PRESET_CSS_PATH,t as isValidPreset,e as listPresets};
@@ -4,7 +4,7 @@
4
4
  * Reads built-in preset files from disk. Node-only (uses `node:fs` via native).
5
5
  * Theme resolution / override composition lives in `./override.ts`.
6
6
  */
7
- import { i as listPresets, n as ThemePreset, r as isValidPreset, t as AVAILABLE_THEMES } from "../presets-PH6ZjfE7.mjs";
7
+ import { i as listPresets, n as ThemePreset, r as isValidPreset, t as AVAILABLE_THEMES } from "../presets-Cl3HtWjB.mjs";
8
8
  /** Shape of a parsed `theme.yaml`. Fields match `content-spec/theme.schema.json`. */
9
9
  interface ThemeYaml {
10
10
  /**
@@ -1,2 +1,2 @@
1
- import{a as e,i as t,n,r,t as i}from"../presets-D_MQnAtK.mjs";import{tailwindComposeThemeCss as a,tailwindReadPresetCss as o,tailwindResolveTheme as s}from"@publier/native";import{fileURLToPath as c}from"node:url";const l=[`colors`,`typography`,`layout`,`prose`,`code`,`spacing`,`radius`,`elevation`,`motion`,`variants`],u={colors:[`primary`,`primary-content`,`secondary`,`secondary-content`,`accent`,`accent-content`,`neutral`,`neutral-content`,`base-100`,`base-200`,`base-300`,`base-content`,`info`,`info-content`,`success`,`success-content`,`warning`,`warning-content`,`error`,`error-content`],typography:[`heading`,`body`,`mono`,`body-weight`,`heading-weight`,...r.flatMap(e=>n.map(t=>`scale-${e}-${t}`))],layout:[`nav-height`,`sidebar-width`,`toc-width`,`page-max-width`],prose:[`content-gap-y`,`line-height`,`heading-line-height`],code:[`block-radius`,`inline-radius`,`inline-padding-y`,`inline-padding-x`],spacing:[`xxs`,`xs`,`sm`,`md`,`base`,`lg`,`xl`,`xxl`,`section`],radius:[`button`,`control`,`card`,`panel`,`chip`],elevation:[`flat`,`raised`,`overlay`],motion:[`duration-fast`,`duration-base`,`duration-slow`,`easing`],variants:[`nav`,`button`,`card`,`hero`,`section`]};function d(e){if(!e||typeof e!=`object`||Array.isArray(e))return{preset:void 0,overrides:{},overrideCss:``,errors:[]};let t=s(JSON.stringify(e));return{preset:t.preset??void 0,overrides:t.overrides,overrideCss:t.overrideCss,errors:t.errors.map(e=>({code:e.code,message:e.message,path:e.path}))}}function f(e){let t=Object.keys(e).sort();return t.length===0?``:`:root[data-theme="light"], :root[data-theme="dark"] {\n${t.map(t=>`\t${t}: ${e[t]};`).join(`
1
+ import{a as e,i as t,n,r,t as i}from"../presets-BHvXbtBH.mjs";import{tailwindComposeThemeCss as a,tailwindReadPresetCss as o,tailwindResolveTheme as s}from"@publier/native";import{fileURLToPath as c}from"node:url";const l=[`colors`,`typography`,`layout`,`prose`,`code`,`spacing`,`radius`,`elevation`,`motion`,`variants`],u={colors:[`primary`,`primary-content`,`secondary`,`secondary-content`,`accent`,`accent-content`,`neutral`,`neutral-content`,`base-100`,`base-200`,`base-300`,`base-content`,`info`,`info-content`,`success`,`success-content`,`warning`,`warning-content`,`error`,`error-content`],typography:[`heading`,`body`,`mono`,`body-weight`,`heading-weight`,...r.flatMap(e=>n.map(t=>`scale-${e}-${t}`))],layout:[`nav-height`,`sidebar-width`,`toc-width`,`page-max-width`],prose:[`content-gap-y`,`line-height`,`heading-line-height`],code:[`block-radius`,`inline-radius`,`inline-padding-y`,`inline-padding-x`],spacing:[`xxs`,`xs`,`sm`,`md`,`base`,`lg`,`xl`,`xxl`,`section`],radius:[`button`,`control`,`card`,`panel`,`chip`],elevation:[`flat`,`raised`,`overlay`],motion:[`duration-fast`,`duration-base`,`duration-slow`,`easing`],variants:[`nav`,`button`,`card`,`hero`,`section`]};function d(e){if(!e||typeof e!=`object`||Array.isArray(e))return{preset:void 0,overrides:{},overrideCss:``,errors:[]};let t=s(JSON.stringify(e));return{preset:t.preset??void 0,overrides:t.overrides,overrideCss:t.overrideCss,errors:t.errors.map(e=>({code:e.code,message:e.message,path:e.path}))}}function f(e){let t=Object.keys(e).sort();return t.length===0?``:`:root[data-theme="light"], :root[data-theme="dark"] {\n${t.map(t=>`\t${t}: ${e[t]};`).join(`
2
2
  `)}\n}\n`}function p(e,t){let n=d(e),r=t.defaultPreset;return n.preset!==void 0&&(t.isValidPreset(n.preset)?r=n.preset:n.errors.push({code:`unknown-preset`,message:`Unknown preset "${n.preset}". Theme will fall back to "${t.defaultPreset}".`,path:`preset`})),{...n,preset:r}}function m(e,t){return a(e,t)}const h=c(new URL(`./themes/`,import.meta.url));function g(e){return`${h}${e}.css`}async function _(e){return o(h,e)}export{i as AVAILABLE_THEMES,u as THEME_KEYS,l as THEME_SECTIONS,m as composeThemeCss,t as isValidPreset,e as listPresets,_ as loadPresetCss,g as presetPath,f as renderOverrideCss,d as resolveTheme,p as resolveThemeWithPreset};
@@ -0,0 +1,223 @@
1
+ :root, [data-theme="light"] {
2
+ color-scheme: light;
3
+
4
+ --color-base-100: #ffffff;
5
+ --color-base-200: #f5f5f7;
6
+ --color-base-300: #f0f0f0;
7
+ --color-base-content: #1d1d1f;
8
+ --color-primary: #06726e;
9
+ --color-primary-content: #ffffff;
10
+ --color-secondary: #1d1d1f;
11
+ --color-secondary-content: #ffffff;
12
+ --color-accent: #06726e;
13
+ --color-accent-content: #ffffff;
14
+ --color-neutral: #1d1d1f;
15
+ --color-neutral-content: #ffffff;
16
+ --color-error: #c4001a;
17
+ --color-error-content: #ffffff;
18
+
19
+ --radius-selector: 9999px;
20
+ --radius-field: 8px;
21
+ --radius-box: 18px;
22
+ --border: 1px;
23
+ --depth: 0;
24
+ --noise: 0;
25
+ }
26
+
27
+ [data-theme="dark"] {
28
+ color-scheme: dark;
29
+
30
+ --color-base-100: #000000;
31
+ --color-base-200: #272729;
32
+ --color-base-300: #38383a;
33
+ --color-base-content: #f5f5f7;
34
+ --color-primary: #60ccc5;
35
+ --color-primary-content: #071f1e;
36
+ --color-secondary: #a1a1a6;
37
+ --color-secondary-content: #000000;
38
+ --color-accent: #60ccc5;
39
+ --color-accent-content: #071f1e;
40
+ --color-neutral: #f5f5f7;
41
+ --color-neutral-content: #000000;
42
+ --color-error: #ff6961;
43
+ --color-error-content: #000000;
44
+
45
+ --radius-selector: 9999px;
46
+ --radius-field: 8px;
47
+ --radius-box: 18px;
48
+ --border: 1px;
49
+ --depth: 0;
50
+ --noise: 0;
51
+ }
52
+
53
+ @media (prefers-color-scheme: dark) {
54
+ :root:not([data-theme]) {
55
+ color-scheme: dark;
56
+
57
+ --color-base-100: #000000;
58
+ --color-base-200: #272729;
59
+ --color-base-300: #38383a;
60
+ --color-base-content: #f5f5f7;
61
+ --color-primary: #60ccc5;
62
+ --color-primary-content: #071f1e;
63
+ --color-secondary: #a1a1a6;
64
+ --color-secondary-content: #000000;
65
+ --color-accent: #60ccc5;
66
+ --color-accent-content: #071f1e;
67
+ --color-neutral: #f5f5f7;
68
+ --color-neutral-content: #000000;
69
+ --color-error: #ff6961;
70
+ --color-error-content: #000000;
71
+
72
+ --radius-selector: 9999px;
73
+ --radius-field: 8px;
74
+ --radius-box: 18px;
75
+ --border: 1px;
76
+ --depth: 0;
77
+ --noise: 0;
78
+ }
79
+ }
80
+
81
+ :root {
82
+
83
+ --publier-scale-display-xl-size: 4rem;
84
+ --publier-scale-display-xl-weight: 600;
85
+ --publier-scale-display-xl-line-height: 1.05;
86
+ --publier-scale-display-xl-tracking: -0.02em;
87
+ --publier-scale-display-lg-size: 3rem;
88
+ --publier-scale-display-lg-weight: 600;
89
+ --publier-scale-display-lg-line-height: 1.08;
90
+ --publier-scale-display-lg-tracking: -0.02em;
91
+ --publier-scale-display-md-size: 2.125rem;
92
+ --publier-scale-display-md-weight: 600;
93
+ --publier-scale-display-md-line-height: 1.15;
94
+ --publier-scale-display-md-tracking: -0.015em;
95
+ --publier-scale-heading-lg-size: 1.75rem;
96
+ --publier-scale-heading-lg-weight: 600;
97
+ --publier-scale-heading-lg-line-height: 1.2;
98
+ --publier-scale-heading-lg-tracking: -0.01em;
99
+ --publier-scale-heading-md-size: 1.3125rem;
100
+ --publier-scale-heading-md-weight: 500;
101
+ --publier-scale-heading-md-line-height: 1.25;
102
+ --publier-scale-heading-md-tracking: -0.01em;
103
+ --publier-scale-heading-sm-size: 1.1875rem;
104
+ --publier-scale-heading-sm-weight: 600;
105
+ --publier-scale-heading-sm-line-height: 1.25;
106
+ --publier-scale-heading-sm-tracking: 0;
107
+ --publier-scale-title-size: 1.0625rem;
108
+ --publier-scale-title-weight: 600;
109
+ --publier-scale-title-line-height: 1.3;
110
+ --publier-scale-title-tracking: 0;
111
+ --publier-scale-body-lg-size: 1.3125rem;
112
+ --publier-scale-body-lg-weight: 400;
113
+ --publier-scale-body-lg-line-height: 1.5;
114
+ --publier-scale-body-lg-tracking: 0;
115
+ --publier-scale-body-md-size: 1.0625rem;
116
+ --publier-scale-body-md-weight: 400;
117
+ --publier-scale-body-md-line-height: 1.5;
118
+ --publier-scale-body-md-tracking: 0;
119
+ --publier-scale-body-sm-size: 0.875rem;
120
+ --publier-scale-body-sm-weight: 400;
121
+ --publier-scale-body-sm-line-height: 1.45;
122
+ --publier-scale-body-sm-tracking: 0;
123
+ --publier-scale-caption-size: 0.8125rem;
124
+ --publier-scale-caption-weight: 400;
125
+ --publier-scale-caption-line-height: 1.35;
126
+ --publier-scale-caption-tracking: 0;
127
+ --publier-scale-label-size: 0.875rem;
128
+ --publier-scale-label-weight: 500;
129
+ --publier-scale-label-line-height: 1.3;
130
+ --publier-scale-label-tracking: 0;
131
+ --publier-scale-button-size: 1.0625rem;
132
+ --publier-scale-button-weight: 500;
133
+ --publier-scale-button-line-height: 1.2;
134
+ --publier-scale-button-tracking: 0;
135
+ --publier-scale-code-size: 0.875rem;
136
+ --publier-scale-code-weight: 400;
137
+ --publier-scale-code-line-height: 1.6;
138
+ --publier-scale-code-tracking: 0;
139
+
140
+ --publier-font-weight-body: 400;
141
+ --publier-font-weight-heading: 600;
142
+
143
+ --publier-space-xxs: 0.25rem;
144
+ --publier-space-xs: 0.5rem;
145
+ --publier-space-sm: 0.75rem;
146
+ --publier-space-md: 1rem;
147
+ --publier-space-base: 1.25rem;
148
+ --publier-space-lg: 1.5rem;
149
+ --publier-space-xl: 2rem;
150
+ --publier-space-xxl: 3rem;
151
+ --publier-space-section: 5rem;
152
+
153
+ --publier-radius-button: 9999px;
154
+ --publier-radius-control: 8px;
155
+ --publier-radius-card: 18px;
156
+ --publier-radius-panel: 28px;
157
+ --publier-radius-chip: 9999px;
158
+ --publier-control-radius: 8px;
159
+ --publier-surface-radius: 18px;
160
+ --publier-card-radius: 18px;
161
+ --publier-nav-item-radius: 9999px;
162
+ --publier-code-block-radius: 8px;
163
+ --publier-code-inline-radius: 6px;
164
+
165
+ --publier-elevation-flat: none;
166
+ --publier-elevation-raised: 0 0 0 1px rgb(0 0 0 / 0.02), 0 6px 20px rgb(0 0 0 / 0.08);
167
+ --publier-elevation-overlay: 0 0 0 1px rgb(0 0 0 / 0.02), 0 6px 20px rgb(0 0 0 / 0.08);
168
+
169
+ --publier-motion-duration-fast: 120ms;
170
+ --publier-motion-duration-base: 180ms;
171
+ --publier-motion-duration-slow: 300ms;
172
+ --publier-motion-easing: cubic-bezier(0.25, 0.1, 0.25, 1);
173
+
174
+ --publier-nav-height: 4.5rem;
175
+ --publier-page-max-width: 75rem;
176
+ --publier-layout-width: 1200px;
177
+ --publier-shadow-color: 0 0 0;
178
+ }
179
+
180
+ :root,
181
+ :root[data-theme="light"] {
182
+ --color-pl-muted: #6e6e73;
183
+ --color-pl-muted-bg: #e8e8ed;
184
+ --color-pl-subtle: #6e6e73;
185
+ --color-pl-card: #ffffff;
186
+ --color-pl-card-hover: #ffffff;
187
+ --color-pl-popover: #ffffff;
188
+ --color-pl-border: #e0e0e0;
189
+ --color-pl-border-strong: #d2d2d7;
190
+ --color-pl-ring: #1d1d1f;
191
+ --color-pl-sidebar-accent: #f5f5f7;
192
+ --color-pl-sidebar-active: #e8fbfa;
193
+ --color-pl-sidebar-active-fg: #06726e;
194
+
195
+ --menu-active-bg: var(--color-pl-sidebar-active);
196
+ --menu-active-color: var(--color-pl-sidebar-active-fg);
197
+ --menu-hover-bg: var(--color-pl-sidebar-accent);
198
+ --menu-hover-color: var(--color-pl-sidebar-accent-fg);
199
+ }
200
+
201
+ :root[data-theme="dark"],
202
+ .dark {
203
+ --color-pl-muted: #a1a1a6;
204
+ --color-pl-muted-bg: #272729;
205
+ --color-pl-subtle: #a1a1a6;
206
+ --color-pl-card: #272729;
207
+ --color-pl-card-hover: #272729;
208
+ --color-pl-popover: #272729;
209
+ --color-pl-border: #38383a;
210
+ --color-pl-border-strong: #4a4a4d;
211
+ --color-pl-ring: #f5f5f7;
212
+ --color-pl-sidebar-accent: #272729;
213
+ --color-pl-sidebar-active: color-mix(in oklch, #60ccc5 14%, transparent);
214
+ --color-pl-sidebar-active-fg: #60ccc5;
215
+
216
+ --publier-elevation-raised: 0 0 0 1px #38383a, 0 6px 20px rgb(0 0 0 / 0.5);
217
+ --publier-elevation-overlay: 0 0 0 1px #38383a, 0 6px 20px rgb(0 0 0 / 0.5);
218
+
219
+ --menu-active-bg: var(--color-pl-sidebar-active);
220
+ --menu-active-color: var(--color-pl-sidebar-active-fg);
221
+ --menu-hover-bg: var(--color-pl-sidebar-accent);
222
+ --menu-hover-color: var(--color-pl-sidebar-accent-fg);
223
+ }
@@ -0,0 +1,223 @@
1
+ :root, [data-theme="light"] {
2
+ color-scheme: light;
3
+
4
+ --color-base-100: #ffffff;
5
+ --color-base-200: #f5f5f5;
6
+ --color-base-300: #e0e0e0;
7
+ --color-base-content: #000000;
8
+ --color-primary: #af004e;
9
+ --color-primary-content: #ffffff;
10
+ --color-secondary: #333333;
11
+ --color-secondary-content: #ffffff;
12
+ --color-accent: #af004e;
13
+ --color-accent-content: #ffffff;
14
+ --color-neutral: #000000;
15
+ --color-neutral-content: #ffffff;
16
+ --color-error: #b3261e;
17
+ --color-error-content: #ffffff;
18
+
19
+ --radius-selector: 0px;
20
+ --radius-field: 0px;
21
+ --radius-box: 0px;
22
+ --border: 1px;
23
+ --depth: 0;
24
+ --noise: 0;
25
+ }
26
+
27
+ [data-theme="dark"] {
28
+ color-scheme: dark;
29
+
30
+ --color-base-100: #121212;
31
+ --color-base-200: #1c1c1c;
32
+ --color-base-300: #3a3a3a;
33
+ --color-base-content: #f5f5f5;
34
+ --color-primary: #fe85a4;
35
+ --color-primary-content: #121212;
36
+ --color-secondary: #a3a3a3;
37
+ --color-secondary-content: #121212;
38
+ --color-accent: #fe85a4;
39
+ --color-accent-content: #121212;
40
+ --color-neutral: #f5f5f5;
41
+ --color-neutral-content: #121212;
42
+ --color-error: #ff8a80;
43
+ --color-error-content: #121212;
44
+
45
+ --radius-selector: 0px;
46
+ --radius-field: 0px;
47
+ --radius-box: 0px;
48
+ --border: 1px;
49
+ --depth: 0;
50
+ --noise: 0;
51
+ }
52
+
53
+ @media (prefers-color-scheme: dark) {
54
+ :root:not([data-theme]) {
55
+ color-scheme: dark;
56
+
57
+ --color-base-100: #121212;
58
+ --color-base-200: #1c1c1c;
59
+ --color-base-300: #3a3a3a;
60
+ --color-base-content: #f5f5f5;
61
+ --color-primary: #fe85a4;
62
+ --color-primary-content: #121212;
63
+ --color-secondary: #a3a3a3;
64
+ --color-secondary-content: #121212;
65
+ --color-accent: #fe85a4;
66
+ --color-accent-content: #121212;
67
+ --color-neutral: #f5f5f5;
68
+ --color-neutral-content: #121212;
69
+ --color-error: #ff8a80;
70
+ --color-error-content: #121212;
71
+
72
+ --radius-selector: 0px;
73
+ --radius-field: 0px;
74
+ --radius-box: 0px;
75
+ --border: 1px;
76
+ --depth: 0;
77
+ --noise: 0;
78
+ }
79
+ }
80
+
81
+ :root {
82
+
83
+ --publier-scale-display-xl-size: 4rem;
84
+ --publier-scale-display-xl-weight: 700;
85
+ --publier-scale-display-xl-line-height: 1;
86
+ --publier-scale-display-xl-tracking: -0.03em;
87
+ --publier-scale-display-lg-size: 3rem;
88
+ --publier-scale-display-lg-weight: 700;
89
+ --publier-scale-display-lg-line-height: 1.02;
90
+ --publier-scale-display-lg-tracking: -0.03em;
91
+ --publier-scale-display-md-size: 2.25rem;
92
+ --publier-scale-display-md-weight: 700;
93
+ --publier-scale-display-md-line-height: 1.05;
94
+ --publier-scale-display-md-tracking: -0.025em;
95
+ --publier-scale-heading-lg-size: 1.75rem;
96
+ --publier-scale-heading-lg-weight: 700;
97
+ --publier-scale-heading-lg-line-height: 1.1;
98
+ --publier-scale-heading-lg-tracking: -0.02em;
99
+ --publier-scale-heading-md-size: 1.375rem;
100
+ --publier-scale-heading-md-weight: 700;
101
+ --publier-scale-heading-md-line-height: 1.15;
102
+ --publier-scale-heading-md-tracking: -0.015em;
103
+ --publier-scale-heading-sm-size: 1.125rem;
104
+ --publier-scale-heading-sm-weight: 700;
105
+ --publier-scale-heading-sm-line-height: 1.2;
106
+ --publier-scale-heading-sm-tracking: -0.01em;
107
+ --publier-scale-title-size: 1rem;
108
+ --publier-scale-title-weight: 700;
109
+ --publier-scale-title-line-height: 1.25;
110
+ --publier-scale-title-tracking: 0;
111
+ --publier-scale-body-lg-size: 1.1875rem;
112
+ --publier-scale-body-lg-weight: 400;
113
+ --publier-scale-body-lg-line-height: 1.5;
114
+ --publier-scale-body-lg-tracking: 0;
115
+ --publier-scale-body-md-size: 1rem;
116
+ --publier-scale-body-md-weight: 400;
117
+ --publier-scale-body-md-line-height: 1.5;
118
+ --publier-scale-body-md-tracking: 0;
119
+ --publier-scale-body-sm-size: 0.875rem;
120
+ --publier-scale-body-sm-weight: 400;
121
+ --publier-scale-body-sm-line-height: 1.43;
122
+ --publier-scale-body-sm-tracking: 0;
123
+ --publier-scale-caption-size: 0.75rem;
124
+ --publier-scale-caption-weight: 400;
125
+ --publier-scale-caption-line-height: 1.33;
126
+ --publier-scale-caption-tracking: 0;
127
+ --publier-scale-label-size: 0.75rem;
128
+ --publier-scale-label-weight: 700;
129
+ --publier-scale-label-line-height: 1.33;
130
+ --publier-scale-label-tracking: 0.08em;
131
+ --publier-scale-button-size: 0.9375rem;
132
+ --publier-scale-button-weight: 700;
133
+ --publier-scale-button-line-height: 1.25;
134
+ --publier-scale-button-tracking: 0.02em;
135
+ --publier-scale-code-size: 0.875rem;
136
+ --publier-scale-code-weight: 400;
137
+ --publier-scale-code-line-height: 1.6;
138
+ --publier-scale-code-tracking: 0;
139
+
140
+ --publier-font-weight-body: 400;
141
+ --publier-font-weight-heading: 700;
142
+
143
+ --publier-space-xxs: 0.125rem;
144
+ --publier-space-xs: 0.25rem;
145
+ --publier-space-sm: 0.5rem;
146
+ --publier-space-md: 0.75rem;
147
+ --publier-space-base: 1rem;
148
+ --publier-space-lg: 1.5rem;
149
+ --publier-space-xl: 2rem;
150
+ --publier-space-xxl: 3rem;
151
+ --publier-space-section: 4rem;
152
+
153
+ --publier-radius-button: 0px;
154
+ --publier-radius-control: 0px;
155
+ --publier-radius-card: 0px;
156
+ --publier-radius-panel: 0px;
157
+ --publier-radius-chip: 0px;
158
+ --publier-control-radius: 0px;
159
+ --publier-surface-radius: 0px;
160
+ --publier-card-radius: 0px;
161
+ --publier-nav-item-radius: 0px;
162
+ --publier-code-block-radius: 0px;
163
+ --publier-code-inline-radius: 0px;
164
+
165
+ --publier-elevation-flat: none;
166
+ --publier-elevation-raised: 0 0 0 1px #000000;
167
+ --publier-elevation-overlay: 0 0 0 2px #000000;
168
+
169
+ --publier-motion-duration-fast: 120ms;
170
+ --publier-motion-duration-base: 150ms;
171
+ --publier-motion-duration-slow: 240ms;
172
+ --publier-motion-easing: cubic-bezier(0.2, 0, 0, 1);
173
+
174
+ --publier-nav-height: 4.5rem;
175
+ --publier-page-max-width: 44rem;
176
+ --publier-layout-width: 1200px;
177
+ --publier-shadow-color: 0 0 0;
178
+ }
179
+
180
+ :root,
181
+ :root[data-theme="light"] {
182
+ --color-pl-muted: #757575;
183
+ --color-pl-muted-bg: #ebebeb;
184
+ --color-pl-subtle: #757575;
185
+ --color-pl-card: #ffffff;
186
+ --color-pl-card-hover: #ffffff;
187
+ --color-pl-popover: #ffffff;
188
+ --color-pl-border: #e0e0e0;
189
+ --color-pl-border-strong: #000000;
190
+ --color-pl-ring: #000000;
191
+ --color-pl-sidebar-accent: #f5f5f5;
192
+ --color-pl-sidebar-active: #ffeef1;
193
+ --color-pl-sidebar-active-fg: #af004e;
194
+
195
+ --menu-active-bg: var(--color-pl-sidebar-active);
196
+ --menu-active-color: var(--color-pl-sidebar-active-fg);
197
+ --menu-hover-bg: var(--color-pl-sidebar-accent);
198
+ --menu-hover-color: var(--color-pl-sidebar-accent-fg);
199
+ }
200
+
201
+ :root[data-theme="dark"],
202
+ .dark {
203
+ --color-pl-muted: #a3a3a3;
204
+ --color-pl-muted-bg: #1c1c1c;
205
+ --color-pl-subtle: #a3a3a3;
206
+ --color-pl-card: #1c1c1c;
207
+ --color-pl-card-hover: #1c1c1c;
208
+ --color-pl-popover: #1c1c1c;
209
+ --color-pl-border: #3a3a3a;
210
+ --color-pl-border-strong: #f5f5f5;
211
+ --color-pl-ring: #f5f5f5;
212
+ --color-pl-sidebar-accent: #1c1c1c;
213
+ --color-pl-sidebar-active: color-mix(in oklch, #fe85a4 14%, transparent);
214
+ --color-pl-sidebar-active-fg: #fe85a4;
215
+
216
+ --publier-elevation-raised: 0 0 0 1px #f5f5f5;
217
+ --publier-elevation-overlay: 0 0 0 2px #f5f5f5;
218
+
219
+ --menu-active-bg: var(--color-pl-sidebar-active);
220
+ --menu-active-color: var(--color-pl-sidebar-active-fg);
221
+ --menu-hover-bg: var(--color-pl-sidebar-accent);
222
+ --menu-hover-color: var(--color-pl-sidebar-accent-fg);
223
+ }