@veluai/velu 0.2.38 → 0.2.40

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.
Files changed (46) hide show
  1. package/dist/cli.js +42 -42
  2. package/docs/aalam.md +44 -0
  3. package/docs/mintlify-migration.md +9 -3
  4. package/docs/nila.md +13 -0
  5. package/docs/thulir.md +23 -0
  6. package/package.json +5 -2
  7. package/runtime/velu-ui/base.css +9 -0
  8. package/runtime/velu-ui/components/ApiReferencePage.jsx +4 -3
  9. package/runtime/velu-ui/components/ApiSamples.jsx +9 -2
  10. package/runtime/velu-ui/components/Callout.jsx +4 -1
  11. package/runtime/velu-ui/components/Chatbot.jsx +0 -16
  12. package/runtime/velu-ui/components/NavSelect.jsx +2 -1
  13. package/runtime/velu-ui/components/PageFooter.jsx +3 -22
  14. package/runtime/velu-ui/components/PageHeader.jsx +9 -21
  15. package/runtime/velu-ui/components/PageNav.jsx +98 -22
  16. package/runtime/velu-ui/components/PoweredBy.jsx +0 -20
  17. package/runtime/velu-ui/components/Sidebar.jsx +21 -9
  18. package/runtime/velu-ui/components/ThemeToggle.jsx +1 -0
  19. package/runtime/velu-ui/components/TocBar.jsx +21 -2
  20. package/runtime/velu-ui/components/VepaFooter.jsx +19 -17
  21. package/runtime/velu-ui/components/api-page.css +6 -3
  22. package/runtime/velu-ui/components/chatbot.css +5 -4
  23. package/runtime/velu-ui/components/docs-layout.css +99 -114
  24. package/runtime/velu-ui/components/page-footer.css +2 -3
  25. package/runtime/velu-ui/components/page-header.css +6 -0
  26. package/runtime/velu-ui/components/page-nav.css +192 -0
  27. package/runtime/velu-ui/components/sidebar.css +5 -13
  28. package/runtime/velu-ui/primitives/switcher.css +4 -0
  29. package/runtime/velu-ui/styles.css +3 -0
  30. package/runtime/velu-ui/themes/aalam.css +266 -0
  31. package/runtime/velu-ui/themes/nila.css +62 -0
  32. package/runtime/velu-ui/themes/thulir.css +428 -0
  33. package/schema/velu.schema.json +24 -3
  34. package/src/navigation.js +25 -4
  35. package/src/runtime/App.jsx +174 -108
  36. package/templates/starter/ai-tools/claude-code.mdx +1 -0
  37. package/templates/starter/ai-tools/cursor.mdx +1 -0
  38. package/templates/starter/api-reference/introduction.mdx +1 -0
  39. package/templates/starter/development.mdx +1 -0
  40. package/templates/starter/essentials/code.mdx +1 -0
  41. package/templates/starter/essentials/images.mdx +1 -0
  42. package/templates/starter/essentials/markdown.mdx +1 -0
  43. package/templates/starter/essentials/navigation.mdx +1 -0
  44. package/templates/starter/essentials/settings.mdx +1 -0
  45. package/templates/starter/index.mdx +1 -0
  46. package/templates/starter/quickstart.mdx +1 -0
@@ -48,3 +48,195 @@
48
48
  .velu-pagenav__card:hover .velu-pagenav__dir {
49
49
  color: var(--accent-color);
50
50
  }
51
+
52
+ /* Aalam / Maple pagination tray — featured destination card + optional
53
+ compact Previous. Scoped via .velu-pagenav--aalam so default/Thulir
54
+ cards stay untouched. */
55
+ .velu-pagenav--aalam {
56
+ display: flex;
57
+ align-items: stretch;
58
+ width: 100%;
59
+ margin-block: 2.5rem;
60
+ padding: 4px;
61
+ border-radius: 16px;
62
+ /* Maple: bg-gray-50/80 */
63
+ background: rgb(249 250 251 / 0.8);
64
+ font-size: 14px;
65
+ line-height: 20px;
66
+ text-decoration: none;
67
+ }
68
+
69
+ [data-theme='dark'] .velu-pagenav--aalam {
70
+ /* Maple: dark:bg-white/[0.03] */
71
+ background: rgb(255 255 255 / 0.03);
72
+ }
73
+
74
+ .velu-pagenav--aalam a {
75
+ color: inherit;
76
+ text-decoration: none;
77
+ }
78
+
79
+ .velu-pagenav__compact {
80
+ display: flex;
81
+ flex: none;
82
+ align-items: center;
83
+ justify-content: space-between;
84
+ gap: 6px;
85
+ padding: 0 24px 0 12px;
86
+ color: var(--muted-color);
87
+ font-weight: 500;
88
+ letter-spacing: -0.01em;
89
+ }
90
+
91
+ .velu-pagenav__compact svg {
92
+ flex: none;
93
+ /* Maple: text-gray-300 / dark:text-gray-700 */
94
+ color: #d1d5db;
95
+ transition: color 0.12s ease;
96
+ }
97
+
98
+ [data-theme='dark'] .velu-pagenav__compact svg {
99
+ color: #374151;
100
+ }
101
+
102
+ .velu-pagenav__compact:hover span {
103
+ color: var(--thulir-heading, var(--text-color));
104
+ }
105
+
106
+ .velu-pagenav__compact:hover svg {
107
+ /* Maple: group-hover:text-gray-600 / dark:group-hover:text-gray-400 */
108
+ color: #4b5563;
109
+ }
110
+
111
+ [data-theme='dark'] .velu-pagenav__compact:hover svg {
112
+ color: #9ca3af;
113
+ }
114
+
115
+ .velu-pagenav__featured {
116
+ display: block;
117
+ flex: 1 1 auto;
118
+ min-inline-size: 0;
119
+ }
120
+
121
+ .velu-pagenav__featured-inner {
122
+ display: flex;
123
+ align-items: center;
124
+ height: 64px;
125
+ border-radius: 12px;
126
+ background: var(--page-bg);
127
+ transition: box-shadow 0.12s ease;
128
+ }
129
+
130
+ .velu-pagenav__featured:hover .velu-pagenav__featured-inner {
131
+ /* Maple: hover:ring-1 hover:ring-gray-200 / dark:hover:ring-gray-800 */
132
+ box-shadow: 0 0 0 1px rgb(229 231 235);
133
+ }
134
+
135
+ [data-theme='dark'] .velu-pagenav__featured:hover .velu-pagenav__featured-inner {
136
+ box-shadow: 0 0 0 1px rgb(31 41 55);
137
+ }
138
+
139
+ .velu-pagenav__featured--next .velu-pagenav__featured-inner {
140
+ justify-content: flex-end;
141
+ }
142
+
143
+ .velu-pagenav__featured--prev .velu-pagenav__featured-inner {
144
+ justify-content: flex-start;
145
+ }
146
+
147
+ .velu-pagenav__meta {
148
+ display: flex;
149
+ flex-direction: column;
150
+ justify-content: center;
151
+ gap: 0;
152
+ min-inline-size: 0;
153
+ padding-inline: 20px;
154
+ }
155
+
156
+ .velu-pagenav__featured--next .velu-pagenav__meta {
157
+ align-items: flex-end;
158
+ text-align: end;
159
+ }
160
+
161
+ .velu-pagenav__featured--prev .velu-pagenav__meta {
162
+ align-items: flex-start;
163
+ text-align: start;
164
+ }
165
+
166
+ .velu-pagenav--aalam .velu-pagenav__title {
167
+ font-size: 14px;
168
+ line-height: 20px;
169
+ font-weight: 600;
170
+ /* Maple: text-gray-800 / dark:text-gray-200 */
171
+ color: var(--thulir-heading, var(--text-color));
172
+ }
173
+
174
+ .velu-pagenav__desc {
175
+ display: none;
176
+ width: 100%;
177
+ max-inline-size: 18rem;
178
+ overflow: hidden;
179
+ text-overflow: ellipsis;
180
+ white-space: nowrap;
181
+ color: var(--muted-color);
182
+ font-size: 14px;
183
+ line-height: 20px;
184
+ font-weight: 400;
185
+ }
186
+
187
+ @media (min-width: 1024px) {
188
+ .velu-pagenav__desc {
189
+ display: block;
190
+ }
191
+ }
192
+
193
+ .velu-pagenav__rule {
194
+ flex: none;
195
+ width: 1px;
196
+ height: 32px;
197
+ background: color-mix(in srgb, var(--muted-color) 14%, transparent);
198
+ }
199
+
200
+ [data-theme='dark'] .velu-pagenav__rule {
201
+ background: rgb(255 255 255 / 0.05);
202
+ }
203
+
204
+ .velu-pagenav--aalam .velu-pagenav__dir {
205
+ display: flex;
206
+ flex: none;
207
+ align-items: center;
208
+ gap: 6px;
209
+ color: var(--muted-color);
210
+ font-weight: 500;
211
+ letter-spacing: -0.01em;
212
+ }
213
+
214
+ .velu-pagenav__featured--next .velu-pagenav__dir {
215
+ padding: 0 12px 0 20px;
216
+ }
217
+
218
+ .velu-pagenav__featured--prev .velu-pagenav__dir {
219
+ padding: 0 20px 0 12px;
220
+ }
221
+
222
+ .velu-pagenav--aalam .velu-pagenav__dir svg {
223
+ flex: none;
224
+ color: #d1d5db;
225
+ transition: color 0.12s ease;
226
+ }
227
+
228
+ [data-theme='dark'] .velu-pagenav--aalam .velu-pagenav__dir svg {
229
+ color: #374151;
230
+ }
231
+
232
+ .velu-pagenav__featured:hover .velu-pagenav__dir span {
233
+ color: var(--thulir-heading, var(--text-color));
234
+ }
235
+
236
+ .velu-pagenav__featured:hover .velu-pagenav__dir svg {
237
+ color: #4b5563;
238
+ }
239
+
240
+ [data-theme='dark'] .velu-pagenav__featured:hover .velu-pagenav__dir svg {
241
+ color: #9ca3af;
242
+ }
@@ -79,29 +79,21 @@
79
79
  letter-spacing: 0.02em;
80
80
  text-transform: uppercase;
81
81
  }
82
- /* Fade zone just below the pinned heading: a gradient overlay
83
- (page-bg transparent) that sits directly under the sticky header
84
- and scrolls with it. Items sliding up pass behind it and fade out
85
- before they tuck under the (crisp) heading. Absolutely positioned
86
- so it adds no resting layout space; pointer-events:none so it never
87
- eats clicks. Hidden by default — only shown once the nav is actually
88
- scrolled (the layout toggles it via data-fade-top on the scroll
89
- region), so a section's first item isn't faded at rest. */
82
+ /* Softly cover rows as they pass beneath a pinned section label. The fade
83
+ derives from the sidebar surface so project CSS that recolors #sidebar also
84
+ recolors the sticky chrome. */
90
85
  .velu-sidebar__section::after {
91
86
  content: '';
92
87
  position: absolute;
93
88
  inset-inline: 0;
94
89
  inset-block-start: 100%;
95
- block-size: var(--s3);
90
+ block-size: var(--s-2);
91
+ pointer-events: none;
96
92
  background: linear-gradient(
97
93
  to bottom,
98
- var(--velu-sidebar-bg, var(--page-bg)),
99
94
  color-mix(in srgb, var(--velu-sidebar-bg, var(--page-bg)) 55%, transparent),
100
95
  transparent
101
96
  );
102
- pointer-events: none;
103
- opacity: 0;
104
- transition: opacity 0.15s ease;
105
97
  }
106
98
  /* When a heading becomes the newly-pinned one (data-stuck set by the
107
99
  runtime as you scroll past sections), fade + slide it in so the
@@ -13,6 +13,10 @@
13
13
  own lines (vertical). No media query. */
14
14
  .velu-switcher > * {
15
15
  flex-grow: 1;
16
+ /* Flex default `min-width: auto` refuses to shrink below content
17
+ size and can force the row (then the page) wider than the
18
+ viewport — the classic sticky-header horizontal-slide bug. */
19
+ min-inline-size: 0;
16
20
  flex-basis: calc(
17
21
  (var(--switcher-threshold, var(--measure)) - 100%) * 999
18
22
  );
@@ -64,3 +64,6 @@
64
64
  @import './components/toc-bar.css' layer(velu);
65
65
  @import './components/search.css' layer(velu);
66
66
  @import './themes/vepa.css' layer(velu);
67
+ @import './themes/thulir.css' layer(velu);
68
+ @import './themes/aalam.css' layer(velu);
69
+ @import './themes/nila.css' layer(velu);
@@ -0,0 +1,266 @@
1
+ /* Aalam: Maple layout. Desktop left column is one overflow-y-auto
2
+ scroller (logo, theme, search, anchors, groups) with a stable gutter. */
3
+ @container docs (min-width: 1024px) {
4
+ [data-site-theme='aalam'] { --velu-header-height: 48px; --velu-sidebar-width: 19rem; }
5
+ [data-site-theme='aalam'] .velu-header { position: fixed; top: 0; left: 19rem; width: calc(100% - 19rem); height: 48px; }
6
+ [data-site-theme='aalam'] .velu-header::before { content: ''; position: fixed; left: calc(19rem - 1px); top: 0; bottom: 0; width: 1px; background: var(--border-color); pointer-events: none; z-index: 1; }
7
+ [data-site-theme='aalam'] .velu-header__top { display: none; }
8
+ [data-site-theme='aalam'] .velu-header__tabs { height: 48px; padding-inline: 48px; }
9
+ [data-site-theme='aalam'] .velu-header__tab { height: 48px; }
10
+ [data-site-theme='aalam'] .velu-docs-layout__aside--left {
11
+ left: 0; top: 0; bottom: 0; width: 19rem;
12
+ padding: 0; border-right: 1px solid var(--border-color);
13
+ }
14
+ [data-site-theme='aalam'] .velu-docs-aside-stack {
15
+ overflow-y: auto;
16
+ overflow-x: hidden;
17
+ scrollbar-gutter: stable;
18
+ padding: 24px 28px;
19
+ gap: 0 !important;
20
+ scrollbar-width: thin;
21
+ scrollbar-color: rgb(0 0 0 / 0.15) transparent;
22
+ }
23
+ [data-theme='dark'] [data-site-theme='aalam'] .velu-docs-aside-stack {
24
+ scrollbar-color: rgb(255 255 255 / 0.2) transparent;
25
+ }
26
+ [data-site-theme='aalam'] .velu-docs-aside-stack::-webkit-scrollbar { width: 10px; }
27
+ [data-site-theme='aalam'] .velu-docs-aside-stack::-webkit-scrollbar-thumb {
28
+ background: rgb(0 0 0 / 0.15);
29
+ border-radius: 8px;
30
+ }
31
+ [data-theme='dark'] [data-site-theme='aalam'] .velu-docs-aside-stack::-webkit-scrollbar-thumb {
32
+ background: rgb(255 255 255 / 0.2);
33
+ }
34
+ [data-site-theme='aalam'] .velu-docs-nav-region { flex: none; min-block-size: 0; }
35
+ [data-site-theme='aalam'] .velu-docs-nav-scroll {
36
+ overflow: visible;
37
+ flex: none;
38
+ background-image: none;
39
+ scrollbar-width: auto;
40
+ }
41
+ [data-site-theme='aalam'] .velu-docs-nav-scroll::-webkit-scrollbar { display: unset; width: 0; height: 0; }
42
+ [data-site-theme='aalam'] .velu-docs-layout__drawer-head {
43
+ display: flex;
44
+ align-items: flex-start;
45
+ justify-content: space-between;
46
+ gap: 8px;
47
+ padding: 0;
48
+ }
49
+ [data-site-theme='aalam'] .velu-docs-layout__drawer-close { display: none; }
50
+ [data-site-theme='aalam'] .velu-docs-layout__drawer-brand {
51
+ display: block;
52
+ flex: none;
53
+ max-width: 12rem;
54
+ }
55
+ [data-site-theme='aalam'] .velu-docs-layout__drawer-brand .velu-header__mark { display: none; }
56
+ [data-site-theme='aalam'] .velu-docs-layout__drawer-brand .velu-header__wordmark {
57
+ display: block;
58
+ font-size: 30px;
59
+ line-height: 1.15;
60
+ font-weight: 700;
61
+ letter-spacing: -0.025em;
62
+ }
63
+ [data-site-theme='aalam'] .velu-docs-layout__drawer-head .velu-theme-toggle {
64
+ flex: none;
65
+ width: 3.25rem;
66
+ height: 1.75rem;
67
+ padding: 4px;
68
+ border-radius: 999px;
69
+ background: transparent;
70
+ }
71
+ [data-site-theme='aalam'] .velu-docs-layout__drawer-head .velu-theme-toggle::after {
72
+ content: '';
73
+ position: absolute;
74
+ top: 4px;
75
+ left: 4px;
76
+ width: 20px;
77
+ height: 20px;
78
+ border-radius: 50%;
79
+ background: color-mix(in srgb, var(--text-color) 10%, transparent);
80
+ transition: transform 0.2s ease;
81
+ pointer-events: none;
82
+ }
83
+ [data-theme='dark'] [data-site-theme='aalam'] .velu-docs-layout__drawer-head .velu-theme-toggle::after {
84
+ transform: translateX(1.4rem);
85
+ background: var(--page-bg);
86
+ }
87
+ [data-site-theme='aalam'] .velu-docs-layout__drawer-head .velu-theme-toggle__icon {
88
+ position: absolute;
89
+ top: 50%;
90
+ width: 12px;
91
+ height: 12px;
92
+ margin: -6px 0 0;
93
+ opacity: 1 !important;
94
+ transform: none !important;
95
+ z-index: 1;
96
+ }
97
+ [data-site-theme='aalam'] .velu-docs-layout__drawer-head .velu-theme-toggle__icon--sun {
98
+ left: 8px;
99
+ inset-inline-start: 8px;
100
+ color: var(--muted-color);
101
+ }
102
+ [data-site-theme='aalam'] .velu-docs-layout__drawer-head .velu-theme-toggle__icon--moon {
103
+ left: auto;
104
+ right: 8px;
105
+ inset-inline-start: auto;
106
+ inset-inline-end: 8px;
107
+ color: var(--muted-color);
108
+ }
109
+ [data-site-theme='aalam'] .velu-docs-aside-product,
110
+ [data-site-theme='aalam'] .velu-docs-aside-search { display: block; margin-top: 24px; width: 100%; }
111
+ [data-site-theme='aalam'] .velu-docs-aside-product + .velu-docs-aside-search { margin-top: 16px; }
112
+ [data-site-theme='aalam'] .velu-docs-aside-search .velu-search__trigger,
113
+ [data-site-theme='aalam'] .velu-docs-aside-search #search-bar-entry-sidebar { width: 100% !important; }
114
+ [data-site-theme='aalam'] .velu-sidebar { width: 100%; margin: 0; }
115
+ [data-site-theme='aalam'] .velu-docs-layout__center { margin-left: 19rem; margin-right: 312px; padding-top: 48px; }
116
+ [data-site-theme='aalam'] .velu-docs-layout__main { padding: 44px 32px 0; }
117
+ [data-site-theme='aalam'] .velu-docs-layout__article { max-inline-size: 576px; margin-inline: auto; }
118
+ [data-site-theme='aalam'] .velu-docs-layout__aside--right { top: 48px; right: 32px; width: 272px; }
119
+ [data-site-theme='aalam'] .velu-vepa-toc { padding-top: 40px; }
120
+ [data-site-theme='aalam'] > [data-velu-footer] { margin-left: 19rem; }
121
+ }
122
+ @container docs (min-width: 1024px) and (max-width: 1279px) {
123
+ [data-site-theme='aalam'] .velu-docs-layout__center { margin-right: 0; }
124
+ [data-site-theme='aalam'] .velu-toc-bar { inset-block-start: 48px; }
125
+ }
126
+ [data-site-theme='aalam'] .velu-docs-aside-product .velu-nav-select { display: block; width: 100%; }
127
+ [data-site-theme='aalam'] .velu-docs-aside-product .velu-nav-select__btn {
128
+ min-height: 32px;
129
+ height: 32px;
130
+ padding: 6px 10px;
131
+ border: 0;
132
+ border-radius: 12px;
133
+ font-size: 14px;
134
+ font-weight: 500;
135
+ line-height: 20px;
136
+ background: color-mix(in srgb, var(--text-color) 5%, transparent);
137
+ }
138
+ [data-site-theme='aalam'] .velu-docs-aside-product .velu-nav-select__btn:hover {
139
+ background: color-mix(in srgb, var(--text-color) 8%, transparent);
140
+ }
141
+ [data-site-theme='aalam'] .velu-docs-aside-footer {
142
+ flex: none;
143
+ position: relative;
144
+ z-index: 2;
145
+ width: 100%;
146
+ padding: 12px 16px;
147
+ border-top: 1px solid var(--border-color);
148
+ background: var(--page-bg);
149
+ }
150
+ [data-site-theme='aalam'] .velu-docs-aside-footer .velu-nav-select { display: block; width: 100%; }
151
+ [data-site-theme='aalam'] .velu-docs-aside-footer .velu-nav-select__btn {
152
+ min-height: 32px;
153
+ height: 32px;
154
+ padding: 6px 10px;
155
+ border: 0;
156
+ border-radius: 8px;
157
+ font-size: 14px;
158
+ font-weight: 500;
159
+ line-height: 20px;
160
+ background: transparent;
161
+ }
162
+ [data-site-theme='aalam'] .velu-docs-aside-footer .velu-nav-select__btn:hover {
163
+ background: color-mix(in srgb, var(--text-color) 5%, transparent);
164
+ }
165
+ [data-site-theme='aalam'] .velu-docs-aside-footer .velu-nav-select__menu {
166
+ inset-block-start: auto;
167
+ inset-block-end: calc(100% + 4px);
168
+ }
169
+ [data-site-theme='aalam'] .velu-sidebar__indicator { display: none; }
170
+ [data-site-theme='aalam'] .velu-sidebar__section {
171
+ position: static;
172
+ font-weight: 500;
173
+ padding: 0 0 10px 16px;
174
+ font: 500 14px/20px var(--font-sans);
175
+ color: var(--thulir-heading);
176
+ text-transform: none;
177
+ letter-spacing: 0;
178
+ background: transparent;
179
+ }
180
+ [data-site-theme='aalam'] .velu-sidebar__section::after { display: none; }
181
+ [data-site-theme='aalam'] .velu-sidebar__icon { inline-size: 16px; block-size: 16px; }
182
+ [data-site-theme='aalam'] .velu-sidebar__section .velu-sidebar__icon { inline-size: 14px; block-size: 14px; }
183
+ [data-site-theme='aalam'] .velu-sidebar__item,
184
+ [data-site-theme='aalam'] .velu-sidebar__subitem,
185
+ [data-site-theme='aalam'] .velu-api-sidebar__item {
186
+ min-height: 0;
187
+ margin-inline-start: 16px;
188
+ padding: 6px 12px 6px 16px;
189
+ width: calc(100% - 1rem);
190
+ box-sizing: border-box;
191
+ border-radius: 0;
192
+ border-left: 1px solid color-mix(in srgb, var(--text-color) 5%, transparent);
193
+ gap: 12px;
194
+ font: 400 14px/20px var(--font-sans);
195
+ background: transparent;
196
+ }
197
+ [data-site-theme='aalam'] :is(.velu-sidebar__item,.velu-api-sidebar__item):hover {
198
+ background: transparent;
199
+ border-left-color: color-mix(in srgb, var(--text-color) 20%, transparent);
200
+ color: var(--thulir-heading);
201
+ }
202
+ [data-site-theme='aalam'] :is(.velu-sidebar__item--active,.velu-api-sidebar__item--active) {
203
+ background: transparent;
204
+ color: var(--accent-color);
205
+ border-left-color: var(--accent-color);
206
+ font-weight: 500;
207
+ }
208
+ [data-site-theme='aalam'] .velu-sidebar__list,
209
+ [data-site-theme='aalam'] .velu-api-sidebar__list {
210
+ margin: 0 !important;
211
+ padding: 0 !important;
212
+ border: 0;
213
+ }
214
+ [data-site-theme='aalam'] .velu-sidebar > sidebar-group { margin-bottom: 0; margin-top: 32px; }
215
+ [data-site-theme='aalam'] .velu-api-sidebar {
216
+ width: 100%;
217
+ margin: 32px 0 0;
218
+ gap: 0 !important;
219
+ }
220
+ [data-site-theme='aalam'] .velu-api-sidebar__section {
221
+ position: static;
222
+ padding: 0 0 10px 16px;
223
+ font: 500 14px/20px var(--font-sans);
224
+ color: var(--thulir-heading);
225
+ text-transform: none;
226
+ letter-spacing: 0;
227
+ background: transparent;
228
+ }
229
+ [data-site-theme='aalam'] .velu-api-sidebar__list + .velu-api-sidebar__section {
230
+ margin-top: 32px;
231
+ }
232
+ [data-site-theme='aalam'] .velu-docs-anchors {
233
+ margin-top: 32px;
234
+ gap: 0;
235
+ padding: 0;
236
+ }
237
+ [data-site-theme='aalam'] .velu-docs-anchors__link {
238
+ padding-left: 16px;
239
+ margin-bottom: 12px;
240
+ gap: 14px;
241
+ font: 400 14px/24px var(--font-sans);
242
+ color: var(--text-color);
243
+ }
244
+ [data-site-theme='aalam'] .velu-docs-anchors__link:hover { color: var(--thulir-heading); }
245
+ [data-site-theme='aalam'] .velu-docs-anchors__icon { color: var(--muted-color); }
246
+ [data-site-theme='aalam'] .velu-docs-anchors__icon svg { width: 16px; height: 16px; }
247
+ [data-site-theme='aalam'] .velu-hero { margin-bottom: 32px; }
248
+ [data-site-theme='aalam'] :is(.velu-header,.velu-docs-layout__drawer-head) .vepa-footer-theme { display: flex; flex: none; align-items: center; gap: 0; padding: 3px; border: 1px solid var(--border-color); border-radius: 999px; }
249
+ [data-site-theme='aalam'] :is(.velu-header,.velu-docs-layout__drawer-head) .vepa-footer-theme button { display: flex; align-items: center; justify-content: center; width: 20px; height: 20px; padding: 0; border: 0; border-radius: 50%; color: var(--muted-color); background: transparent; cursor: pointer; }
250
+ [data-site-theme='aalam'] :is(.velu-header,.velu-docs-layout__drawer-head) .vepa-footer-theme button[aria-pressed='true'] { background: var(--surface-color); color: var(--text-color); }
251
+ [data-site-theme='aalam'] :is(.velu-header,.velu-docs-layout__drawer-head) .vepa-footer-theme svg { width: 12px; height: 12px; }
252
+ @container docs (max-width: 1023px) {
253
+ [data-site-theme='aalam'] .velu-header__col--actions > .vepa-footer-theme { display: none; }
254
+ [data-site-theme='aalam'] .velu-docs-aside-search { display: none; }
255
+ [data-site-theme='aalam'] .velu-docs-aside-product { margin: 16px 16px 0; }
256
+ }
257
+
258
+ /* Maple-style previous/next — tray chrome lives in page-nav.css;
259
+ theme only owns spacing against the article column. */
260
+ [data-site-theme='aalam'] .velu-pagenav--aalam {
261
+ margin-top: 48px;
262
+ margin-bottom: 48px;
263
+ }
264
+ [data-site-theme='aalam'][data-api='true'] .velu-pagenav--aalam {
265
+ margin-bottom: 40px;
266
+ }
@@ -0,0 +1,62 @@
1
+ /* Nila: Aspen's compact header and divided sidebar groups.
2
+ Shared components and accessible responsive navigation live in thulir.css. */
3
+ [data-site-theme='nila'] .velu-header__top { height: 56px; padding-inline: 36px; }
4
+ [data-site-theme='nila'] .velu-header__top::after { display: none; }
5
+ [data-site-theme='nila'] .velu-header__tabs { height: 40px; padding-inline: 36px; }
6
+ [data-site-theme='nila'] .velu-header__tab { height: 40px; }
7
+ [data-site-theme='nila'] #search-bar-entry { border: 0; border-radius: 999px; background: var(--surface-color); }
8
+ [data-site-theme='nila'] .velu-header__action:not(.velu-header__action--primary) { padding: 8px 14px; background: var(--surface-color); border-radius: 14px; }
9
+ [data-site-theme='nila'] .velu-sidebar__indicator { display: none; }
10
+ /* Keep reading content separate from the next/previous navigation. */
11
+ [data-site-theme='nila'] .velu-pagenav { margin-block-start: 48px; }
12
+ [data-site-theme='nila'] .velu-sidebar { gap: 0 !important; }
13
+ [data-site-theme='nila'] .velu-docs-nav-scroll { overflow-y: auto; background-image: none; scrollbar-color: transparent transparent; }
14
+ [data-site-theme='nila'] .velu-docs-nav-scroll { overflow-x: hidden; min-width: 0; }
15
+ [data-site-theme='nila'] .velu-sidebar__label { white-space: normal; overflow-wrap: anywhere; min-width: 0; }
16
+ [data-site-theme='nila'] .velu-sidebar__item { align-items: flex-start; }
17
+ [data-site-theme='nila'] .velu-sidebar__icon { flex: none; }
18
+ [data-site-theme='nila'] .velu-docs-nav-scroll:hover { scrollbar-color: var(--border-color) transparent; }
19
+ [data-site-theme='nila'] .velu-docs-nav-scroll::-webkit-scrollbar-track { background: transparent; }
20
+ [data-site-theme='nila'] .velu-docs-nav-scroll::-webkit-scrollbar-thumb { background: transparent; }
21
+ [data-site-theme='nila'] .velu-docs-nav-scroll:hover::-webkit-scrollbar-thumb { background: var(--border-color); }
22
+ [data-site-theme='nila'] .velu-sidebar__item--active { background: color-mix(in srgb, var(--accent-color) 10%, transparent); }
23
+ [data-site-theme='nila'] .velu-sidebar__section { font-size: 12px; font-weight: 600; line-height: 20px; }
24
+ [data-site-theme='nila'] .velu-sidebar > sidebar-group { margin-bottom: 16px; padding-bottom: 16px; }
25
+ [data-site-theme='nila'] .velu-sidebar > sidebar-group + sidebar-group { border-top: 1px solid var(--border-color); padding-top: 16px; }
26
+ [data-site-theme='nila'] .velu-sidebar__item { min-height: 32px; padding-block: 4px; }
27
+ @container docs (min-width: 1024px) {
28
+ [data-site-theme='nila'] .velu-header__col--brand > .velu-hide-on-mobile { display: flex; align-items: center; gap: 36px; }
29
+ [data-site-theme='nila'] .velu-header__col--brand { min-width: 0; flex-wrap: nowrap !important; }
30
+ [data-site-theme='nila'] .velu-header .velu-nav-select__btn { border: 0; background: transparent; padding: 4px 8px; font-size: 14px; }
31
+ [data-site-theme='nila'] .velu-header .velu-nav-select__btn-icon { display: none; }
32
+ [data-site-theme='nila'] .velu-docs-context:not(:has(.velu-docs-anchors)) { display: none !important; }
33
+ [data-site-theme='nila'] .velu-header { height: 96px; }
34
+ [data-site-theme='nila'] .velu-docs-layout__aside--left { left: 0; top: 96px; bottom: 0; width: 308px; padding: 16px 20px; border-right: 1px solid var(--border-color); }
35
+ [data-site-theme='nila'] .velu-sidebar { width: 268px; }
36
+ [data-site-theme='nila'] .velu-docs-layout__center { margin-left: 308px; margin-right: 324px; }
37
+ [data-site-theme='nila'] .velu-docs-layout__main { padding: 44px 32px 0; }
38
+ [data-site-theme='nila'] .velu-docs-layout__article { max-inline-size: 632px; margin-inline: auto; }
39
+ [data-site-theme='nila'] .velu-docs-layout__aside--right { top: 96px; right: 36px; width: 288px; }
40
+ [data-site-theme='nila'] > [data-velu-footer] { margin-left: 308px; }
41
+ }
42
+ @container docs (min-width: 1024px) and (max-width: 1399px) {
43
+ [data-site-theme='nila'] .velu-header__top { grid-template-columns: auto minmax(100px, 1fr) auto; gap: 20px !important; }
44
+ [data-site-theme='nila'] .velu-header__col--brand > .velu-hide-on-mobile { gap: 8px; }
45
+ [data-site-theme='nila'] .velu-header__col--center { width: 100%; }
46
+ }
47
+ @container docs (min-width: 1024px) and (max-width: 1279px) {
48
+ [data-site-theme='nila'] .velu-docs-layout__center { margin-right: 0; }
49
+ [data-site-theme='nila'] .velu-toc-bar { inset-block-start: 96px; }
50
+ }
51
+ @container docs (max-width: 1023px) {
52
+ [data-site-theme='nila'] .velu-hide-on-mobile { display: none; }
53
+ [data-site-theme='nila'] .velu-show-on-mobile { display: contents; }
54
+ [data-site-theme='nila'] .velu-docs-context { padding-inline: 16px; position: relative; z-index: 9; }
55
+ [data-site-theme='nila'] .velu-docs-context .velu-nav-select { width: 100%; min-width: 0; }
56
+ [data-site-theme='nila'] .velu-nav-select__menu { max-width: 100%; }
57
+ [data-site-theme='nila'] .velu-nav-select__item { white-space: normal; overflow-wrap: anywhere; }
58
+ [data-site-theme='nila'] .velu-header__top { height: 64px; padding-inline: 16px; }
59
+ [data-site-theme='nila'] .velu-header__tabs { height: 56px; padding-inline: 16px; }
60
+ [data-site-theme='nila'] .velu-header__tab { height: 56px; }
61
+ }
62
+