forgecad 0.6.3 → 0.7.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.
- package/README.md +2 -11
- package/dist/assets/{AdminPage-CeqCUUgu.js → AdminPage-DAu1C1ST.js} +250 -151
- package/dist/assets/{BlogPage-P_AJP0v9.js → BlogPage-CJEXL_zJ.js} +94 -70
- package/dist/assets/{DocsPage-CKRV2iq2.js → DocsPage-Gc_BCdqC.js} +269 -143
- package/dist/assets/EditorApp-D9bJvtf7.js +11338 -0
- package/dist/assets/{EditorApp-CnC2k4cW.css → EditorApp-DG1-oUSV.css} +459 -87
- package/dist/assets/{EmbedViewer-DBlzmQ5i.js → EmbedViewer-CEO8XbV8.js} +2 -4
- package/dist/assets/LandingPage-CdCuEOdC.js +451 -0
- package/dist/assets/PricingPage-BSrxu6d7.js +232 -0
- package/dist/assets/{SettingsPage-BqCh9JcC.js → SettingsPage-FUCSIRq6.js} +129 -5
- package/dist/assets/{evalWorker-Ql-aKwLA.js → evalWorker-KoR0SNKq.js} +6770 -2914
- package/dist/assets/{index-2hfs_ub0.css → index-CyVd1D4D.css} +227 -53
- package/dist/assets/{Viewport-CoB46f5R.js → index-wTEK39at.js} +31385 -6439
- package/dist/assets/{javascript-DCxGoE5Y.js → javascript-DAl8Gmyo.js} +1 -1
- package/dist/assets/{manifold-CqNMHHKO.js → manifold-B1sGWdYk.js} +4 -3
- package/dist/assets/{manifold-Cce9wRFz.js → manifold-D7o0N50J.js} +1 -1
- package/dist/assets/{manifold-D6BeHIOo.js → manifold-G5sBaXzi.js} +1 -1
- package/dist/assets/{reportWorker-sFEFonXf.js → reportWorker-DYcRHhv9.js} +6798 -3341
- package/dist/assets/{vendor-react-Dt7-aaJH.js → vendor-react-CG3i_wp0.js} +65 -8
- package/dist/docs-raw/generated/assembly.md +691 -112
- package/dist/docs-raw/generated/concepts.md +1225 -1400
- package/dist/docs-raw/generated/core.md +464 -1412
- package/dist/docs-raw/generated/curves.md +593 -117
- package/dist/docs-raw/generated/lib.md +38 -748
- package/dist/docs-raw/generated/output.md +139 -245
- package/dist/docs-raw/generated/sheet-metal.md +473 -21
- package/dist/docs-raw/generated/sketch.md +553 -349
- package/dist/docs-raw/generated/viewport.md +345 -303
- package/dist/docs-raw/generated/wood.md +104 -0
- package/dist/index.html +2 -2
- package/dist/sitemap.xml +6 -6
- package/dist-cli/chunk-PZ5AY32C.js +10 -0
- package/dist-cli/chunk-PZ5AY32C.js.map +1 -0
- package/dist-cli/forgecad.js +9435 -5407
- package/dist-cli/forgecad.js.map +1 -0
- package/dist-cli/solver-FV7TJZGI.js +365 -0
- package/dist-cli/solver-FV7TJZGI.js.map +1 -0
- package/dist-skill/CONTEXT.md +3186 -7145
- package/dist-skill/SKILL-dev.md +21 -63
- package/dist-skill/SKILL.md +12 -56
- package/dist-skill/docs/API/core/concepts.md +16 -98
- package/dist-skill/docs/CLI/export.md +91 -0
- package/dist-skill/docs/CLI/projects.md +107 -0
- package/dist-skill/docs/CLI/studio_publishing.md +52 -0
- package/dist-skill/docs/CLI/validation.md +66 -0
- package/dist-skill/docs/generated/assembly.md +691 -112
- package/dist-skill/docs/generated/core.md +464 -1412
- package/dist-skill/docs/generated/curves.md +593 -117
- package/dist-skill/docs/generated/lib.md +38 -748
- package/dist-skill/docs/generated/output.md +139 -245
- package/dist-skill/docs/generated/sheet-metal.md +473 -21
- package/dist-skill/docs/generated/sketch.md +553 -349
- package/dist-skill/docs/generated/viewport.md +345 -303
- package/dist-skill/docs/generated/wood.md +104 -0
- package/dist-skill/docs/guides/coordinate-system.md +11 -17
- package/dist-skill/docs/guides/geometry-conventions.md +13 -70
- package/dist-skill/docs/guides/modeling-recipes.md +22 -195
- package/dist-skill/docs/guides/positioning.md +88 -147
- package/dist-skill/docs-dev/API/core/concepts.md +51 -0
- package/dist-skill/docs-dev/API/core/sdf-advanced.md +92 -0
- package/dist-skill/docs-dev/API/core/sdf-primitives.md +58 -0
- package/dist-skill/docs-dev/API/core/sdf-workflow.md +42 -0
- package/dist-skill/docs-dev/CLI/export.md +91 -0
- package/dist-skill/docs-dev/CLI/projects.md +107 -0
- package/dist-skill/docs-dev/CLI/studio_publishing.md +52 -0
- package/dist-skill/docs-dev/CLI/validation.md +66 -0
- package/dist-skill/{docs → docs-dev}/blueprint-first.md +5 -0
- package/dist-skill/{docs → docs-dev}/coding-best-practices.md +6 -8
- package/dist-skill/{docs → docs-dev}/coding.md +1 -3
- package/dist-skill/docs-dev/generated/assembly.md +771 -0
- package/dist-skill/docs-dev/generated/core.md +775 -0
- package/dist-skill/docs-dev/generated/curves.md +688 -0
- package/dist-skill/docs-dev/generated/lib.md +50 -0
- package/dist-skill/docs-dev/generated/output.md +234 -0
- package/dist-skill/docs-dev/generated/sheet-metal.md +506 -0
- package/dist-skill/docs-dev/generated/sketch.md +801 -0
- package/dist-skill/docs-dev/generated/viewport.md +486 -0
- package/dist-skill/docs-dev/generated/wood.md +104 -0
- package/dist-skill/docs-dev/guides/coordinate-system.md +46 -0
- package/dist-skill/docs-dev/guides/geometry-conventions.md +52 -0
- package/dist-skill/docs-dev/guides/modeling-recipes.md +77 -0
- package/dist-skill/docs-dev/guides/positioning.md +151 -0
- package/dist-skill/{docs → docs-dev}/guides/skill-maintenance.md +21 -10
- package/dist-skill/{docs → docs-dev}/internals/compiler.md +5 -6
- package/dist-skill/{docs → docs-dev}/internals/constraint-solver-quality.md +0 -1
- package/dist-skill/{docs → docs-dev}/internals/constraint-solver.md +0 -1
- package/dist-skill/{docs → docs-dev}/internals/sketch-2d-pipeline.md +2 -3
- package/examples/api/attachTo-basics.forge.js +5 -5
- package/examples/api/boolean-operations.forge.js +3 -3
- package/examples/api/bounding-box-visualizer.forge.js +2 -2
- package/examples/api/clone-duplicate.forge.js +1 -1
- package/examples/api/colors-union-vs-array.forge.js +6 -6
- package/examples/api/connector-assembly.forge.js +4 -4
- package/examples/api/connector-basics.forge.js +2 -2
- package/examples/api/extrude-options.forge.js +4 -10
- package/examples/api/feature-created-faces.forge.js +6 -10
- package/examples/api/fillet-showcase.forge.js +1 -1
- package/examples/api/folded-service-panel-cover.forge.js +2 -2
- package/examples/api/group-test.forge.js +1 -1
- package/examples/api/group-vs-union.forge.js +1 -1
- package/examples/api/highlight-debug.forge.js +4 -0
- package/examples/api/js-module-pillars.js +1 -1
- package/examples/api/js-module-scene.js +2 -2
- package/examples/api/mesh-import-slats.forge.js +1 -1
- package/examples/api/pointAlong-orientation.forge.js +1 -1
- package/examples/api/profile-2020-b-slot6.forge.js +0 -1
- package/examples/api/route-perimeter-flange.forge.js +1 -1
- package/examples/api/sdf-rover-demo.forge.js +10 -10
- package/examples/api/sketch-on-face-demo.forge.js +2 -2
- package/examples/api/sketch-regions.forge.js +4 -4
- package/examples/api/transition-curves.forge.js +1 -1
- package/examples/api/variable-sweep-pure-sdf-test.forge.js +162 -0
- package/examples/api/variable-sweep-test.forge.js +2 -2
- package/examples/api/wood-joinery.forge.js +60 -0
- package/examples/compiler-corpus/enclosure-shell-cuts.forge.js +3 -3
- package/examples/compiler-corpus/fastener-plate-variants.forge.js +2 -2
- package/examples/experiments/drone-arm.forge.js +53 -0
- package/examples/furniture/adjustable-table.forge.js +2 -2
- package/examples/furniture/bathroom.forge.js +11 -11
- package/examples/furniture/chair.forge.js +1 -1
- package/examples/generative/crystal-growth.forge.js +2 -2
- package/examples/generative/frost-spires.forge.js +3 -3
- package/examples/generative/golden-spiral-tower.forge.js +3 -3
- package/examples/mechanical/3d-printer.forge.js +28 -28
- package/examples/mechanical/5-finger-robot-hand.forge.js +15 -15
- package/examples/mechanical/airplane-propeller.forge.js +2 -2
- package/examples/mechanical/fillet-enclosure.forge.js +1 -1
- package/examples/mechanical/headphone-hanger-v2.forge.js +2 -2
- package/examples/mechanical/robot_hand.forge.js +15 -15
- package/examples/mechanical/robot_hand_2.forge.js +9 -9
- package/examples/products/bottle.forge.js +1 -1
- package/examples/products/chess-set.forge.js +19 -19
- package/examples/products/classical-piano.forge.js +11 -11
- package/examples/products/clock.forge.js +12 -12
- package/examples/products/iphone.forge.js +8 -8
- package/examples/products/laptop.forge.js +15 -15
- package/examples/products/liquid-soap-dispenser.forge.js +18 -18
- package/examples/products/origami-fish.forge.js +8 -6
- package/examples/products/spiderman-cake.forge.js +4 -4
- package/examples/toolbox/bolted-joint.forge.js +2 -2
- package/package.json +7 -4
- package/dist/assets/EditorApp-B-vQvgam.js +0 -9888
- package/dist/assets/LandingPage-C5n9hDXI.js +0 -322
- package/dist/assets/PublishedModelPage-Dt7PCVBj.js +0 -146
- package/dist/assets/__vite-browser-external-CURh0WXD.js +0 -8
- package/dist/assets/deserializeRunResult-BLAFoiE0.js +0 -19365
- package/dist/assets/index-1CYp3zUp.js +0 -1455
- package/dist/docs-raw/CLI.md +0 -865
- package/dist-skill/docs/API/API.md +0 -1666
- package/dist-skill/docs/API/README.md +0 -37
- package/dist-skill/docs/API/assembly/assembly.md +0 -617
- package/dist-skill/docs/API/core/edge-queries.md +0 -130
- package/dist-skill/docs/API/core/parameters.md +0 -122
- package/dist-skill/docs/API/core/reserved-terms.md +0 -137
- package/dist-skill/docs/API/core/sdf.md +0 -326
- package/dist-skill/docs/API/core/skill-cli.md +0 -194
- package/dist-skill/docs/API/core/skill-guide.md +0 -205
- package/dist-skill/docs/API/core/specs.md +0 -186
- package/dist-skill/docs/API/core/topology.md +0 -372
- package/dist-skill/docs/API/entities.md +0 -268
- package/dist-skill/docs/API/output/bom.md +0 -58
- package/dist-skill/docs/API/output/brep-export.md +0 -87
- package/dist-skill/docs/API/output/dimensions.md +0 -67
- package/dist-skill/docs/API/output/export.md +0 -110
- package/dist-skill/docs/API/output/gcode.md +0 -195
- package/dist-skill/docs/API/runtime/viewport.md +0 -420
- package/dist-skill/docs/API/sheet-metal/sheet-metal.md +0 -185
- package/dist-skill/docs/API/sketch/anchor.md +0 -37
- package/dist-skill/docs/API/sketch/booleans.md +0 -91
- package/dist-skill/docs/API/sketch/core.md +0 -73
- package/dist-skill/docs/API/sketch/extrude.md +0 -62
- package/dist-skill/docs/API/sketch/on-face.md +0 -104
- package/dist-skill/docs/API/sketch/operations.md +0 -78
- package/dist-skill/docs/API/sketch/path.md +0 -75
- package/dist-skill/docs/API/sketch/primitives.md +0 -146
- package/dist-skill/docs/API/sketch/regions.md +0 -80
- package/dist-skill/docs/API/sketch/text.md +0 -108
- package/dist-skill/docs/API/sketch/transforms.md +0 -65
- package/dist-skill/docs/API/toolbox/fasteners.md +0 -129
- package/dist-skill/docs/CLI.md +0 -865
- package/dist-skill/docs/INDEX.md +0 -94
- package/dist-skill/docs/RELEASING.md +0 -55
- package/dist-skill/docs/cli-monetization.md +0 -111
- package/dist-skill/docs/deployment.md +0 -281
- package/dist-skill/docs/generated/concepts.md +0 -2112
- package/dist-skill/docs/internals/shape-from-slices.md +0 -152
- package/dist-skill/docs/platform/admin.md +0 -45
- package/dist-skill/docs/platform/architecture.md +0 -79
- package/dist-skill/docs/platform/auth.md +0 -110
- package/dist-skill/docs/platform/email.md +0 -67
- package/dist-skill/docs/platform/projects.md +0 -111
- package/dist-skill/docs/platform/sharing.md +0 -90
- package/dist-skill/docs/runbook.md +0 -345
|
@@ -102,6 +102,26 @@ button:disabled {
|
|
|
102
102
|
.fc-btn:active {
|
|
103
103
|
background: var(--fc-bgActive);
|
|
104
104
|
}
|
|
105
|
+
/* Card-style button: stacked title + description, full-width */
|
|
106
|
+
.fc-btn.fc-btn-card {
|
|
107
|
+
display: flex;
|
|
108
|
+
flex-direction: column;
|
|
109
|
+
align-items: flex-start;
|
|
110
|
+
white-space: normal;
|
|
111
|
+
width: 100%;
|
|
112
|
+
text-align: left;
|
|
113
|
+
padding: 8px 12px;
|
|
114
|
+
gap: 2px;
|
|
115
|
+
}
|
|
116
|
+
.fc-btn-card .fc-btn-card-title {
|
|
117
|
+
font-weight: 600;
|
|
118
|
+
line-height: 1.3;
|
|
119
|
+
}
|
|
120
|
+
.fc-btn-card .fc-btn-card-desc {
|
|
121
|
+
font-size: 11px;
|
|
122
|
+
color: var(--fc-textDim);
|
|
123
|
+
line-height: 1.3;
|
|
124
|
+
}
|
|
105
125
|
.fc-btn.active {
|
|
106
126
|
background: var(--fc-accent);
|
|
107
127
|
color: var(--fc-accentText);
|
|
@@ -191,15 +211,15 @@ button:disabled {
|
|
|
191
211
|
/* File button in center — acts as both filename display and command palette trigger */
|
|
192
212
|
.fc-toolbar-file {
|
|
193
213
|
max-width: 340px;
|
|
194
|
-
padding: 5px 12px
|
|
195
|
-
border-radius: 8px
|
|
196
|
-
gap: 8px
|
|
197
|
-
background: var(--fc-bg)
|
|
198
|
-
border-color: var(--fc-border)
|
|
214
|
+
padding: 5px 12px;
|
|
215
|
+
border-radius: 8px;
|
|
216
|
+
gap: 8px;
|
|
217
|
+
background: var(--fc-bg);
|
|
218
|
+
border-color: var(--fc-border);
|
|
199
219
|
}
|
|
200
220
|
.fc-toolbar-file:hover {
|
|
201
|
-
background: var(--fc-bgHover)
|
|
202
|
-
border-color: var(--fc-textDim)
|
|
221
|
+
background: var(--fc-bgHover);
|
|
222
|
+
border-color: var(--fc-textDim);
|
|
203
223
|
}
|
|
204
224
|
.fc-toolbar-filename {
|
|
205
225
|
color: var(--fc-text);
|
|
@@ -224,8 +244,8 @@ button:disabled {
|
|
|
224
244
|
.fc-toolbar-btn {
|
|
225
245
|
width: 32px;
|
|
226
246
|
height: 32px;
|
|
227
|
-
padding: 0
|
|
228
|
-
display: inline-flex
|
|
247
|
+
padding: 0;
|
|
248
|
+
display: inline-flex;
|
|
229
249
|
align-items: center;
|
|
230
250
|
justify-content: center;
|
|
231
251
|
font-size: 15px;
|
|
@@ -236,11 +256,11 @@ button:disabled {
|
|
|
236
256
|
/* Labeled toolbar button — icon + text, for primary actions */
|
|
237
257
|
.fc-toolbar-labeled {
|
|
238
258
|
height: 32px;
|
|
239
|
-
padding: 0 10px
|
|
240
|
-
display: inline-flex
|
|
259
|
+
padding: 0 10px;
|
|
260
|
+
display: inline-flex;
|
|
241
261
|
align-items: center;
|
|
242
262
|
justify-content: center;
|
|
243
|
-
gap: 5px
|
|
263
|
+
gap: 5px;
|
|
244
264
|
font-size: 14px;
|
|
245
265
|
flex-shrink: 0;
|
|
246
266
|
border-radius: 6px;
|
|
@@ -484,7 +504,9 @@ input[type="color"]::-webkit-color-swatch {
|
|
|
484
504
|
text-decoration: none;
|
|
485
505
|
font-size: 14px;
|
|
486
506
|
}
|
|
487
|
-
.fc-docs-nav-link:hover {
|
|
507
|
+
.fc-docs-nav-link:hover {
|
|
508
|
+
color: var(--fc-text);
|
|
509
|
+
}
|
|
488
510
|
.fc-docs-nav-cta {
|
|
489
511
|
padding: 6px 16px;
|
|
490
512
|
font-size: 14px;
|
|
@@ -495,7 +517,9 @@ input[type="color"]::-webkit-color-swatch {
|
|
|
495
517
|
text-decoration: none;
|
|
496
518
|
transition: opacity 0.15s;
|
|
497
519
|
}
|
|
498
|
-
.fc-docs-nav-cta:hover {
|
|
520
|
+
.fc-docs-nav-cta:hover {
|
|
521
|
+
opacity: 0.9;
|
|
522
|
+
}
|
|
499
523
|
|
|
500
524
|
/* --- Search trigger in nav --- */
|
|
501
525
|
.fc-docs-search-trigger {
|
|
@@ -509,7 +533,9 @@ input[type="color"]::-webkit-color-swatch {
|
|
|
509
533
|
color: var(--fc-textDim);
|
|
510
534
|
font-size: 13px;
|
|
511
535
|
cursor: pointer;
|
|
512
|
-
transition:
|
|
536
|
+
transition:
|
|
537
|
+
border-color 0.15s,
|
|
538
|
+
color 0.15s;
|
|
513
539
|
}
|
|
514
540
|
.fc-docs-search-trigger:hover {
|
|
515
541
|
border-color: var(--fc-accent);
|
|
@@ -522,7 +548,7 @@ input[type="color"]::-webkit-color-swatch {
|
|
|
522
548
|
background: var(--fc-bgHover);
|
|
523
549
|
border: 1px solid var(--fc-border);
|
|
524
550
|
border-radius: 3px;
|
|
525
|
-
font-family: var(--fc-mono,
|
|
551
|
+
font-family: var(--fc-mono, "SF Mono", "Fira Code", monospace);
|
|
526
552
|
color: var(--fc-textDim);
|
|
527
553
|
}
|
|
528
554
|
|
|
@@ -538,9 +564,16 @@ input[type="color"]::-webkit-color-swatch {
|
|
|
538
564
|
position: sticky;
|
|
539
565
|
top: 56px;
|
|
540
566
|
}
|
|
541
|
-
.fc-docs-sidebar::-webkit-scrollbar {
|
|
542
|
-
|
|
543
|
-
|
|
567
|
+
.fc-docs-sidebar::-webkit-scrollbar {
|
|
568
|
+
width: 4px;
|
|
569
|
+
}
|
|
570
|
+
.fc-docs-sidebar::-webkit-scrollbar-track {
|
|
571
|
+
background: transparent;
|
|
572
|
+
}
|
|
573
|
+
.fc-docs-sidebar::-webkit-scrollbar-thumb {
|
|
574
|
+
background: var(--fc-border);
|
|
575
|
+
border-radius: 2px;
|
|
576
|
+
}
|
|
544
577
|
|
|
545
578
|
.fc-docs-sidebar-group-title {
|
|
546
579
|
padding: 12px 20px 4px;
|
|
@@ -557,7 +590,10 @@ input[type="color"]::-webkit-color-swatch {
|
|
|
557
590
|
color: var(--fc-textMuted);
|
|
558
591
|
text-decoration: none;
|
|
559
592
|
border-left: 2px solid transparent;
|
|
560
|
-
transition:
|
|
593
|
+
transition:
|
|
594
|
+
color 0.1s,
|
|
595
|
+
background 0.1s,
|
|
596
|
+
border-color 0.1s;
|
|
561
597
|
}
|
|
562
598
|
.fc-docs-sidebar-link:hover {
|
|
563
599
|
color: var(--fc-text);
|
|
@@ -624,7 +660,9 @@ input[type="color"]::-webkit-color-swatch {
|
|
|
624
660
|
border: 1px solid var(--fc-border);
|
|
625
661
|
border-radius: 8px;
|
|
626
662
|
text-decoration: none;
|
|
627
|
-
transition:
|
|
663
|
+
transition:
|
|
664
|
+
border-color 0.15s,
|
|
665
|
+
background 0.15s;
|
|
628
666
|
}
|
|
629
667
|
.fc-docs-index-card:hover {
|
|
630
668
|
border-color: var(--fc-accent);
|
|
@@ -644,7 +682,7 @@ input[type="color"]::-webkit-color-swatch {
|
|
|
644
682
|
/* --- Doc content (markdown) --- */
|
|
645
683
|
.fc-docs-content {
|
|
646
684
|
padding: 40px 48px 80px;
|
|
647
|
-
max-width:
|
|
685
|
+
max-width: 860px;
|
|
648
686
|
margin: 0 auto;
|
|
649
687
|
line-height: 1.7;
|
|
650
688
|
color: var(--fc-text);
|
|
@@ -675,21 +713,32 @@ input[type="color"]::-webkit-color-swatch {
|
|
|
675
713
|
.fc-docs-content h4 {
|
|
676
714
|
font-size: 14px;
|
|
677
715
|
font-weight: 600;
|
|
678
|
-
margin:
|
|
716
|
+
margin: 24px 0 6px;
|
|
717
|
+
padding-top: 16px;
|
|
718
|
+
border-top: 1px solid color-mix(in srgb, var(--fc-border) 50%, transparent);
|
|
679
719
|
color: var(--fc-accent);
|
|
680
720
|
}
|
|
721
|
+
/* First h4 after a group heading or section start — no top border */
|
|
722
|
+
.fc-docs-content h3 + h4,
|
|
723
|
+
.fc-docs-content strong + h4,
|
|
724
|
+
.fc-docs-content p + h4:first-of-type {
|
|
725
|
+
border-top: none;
|
|
726
|
+
padding-top: 0;
|
|
727
|
+
}
|
|
681
728
|
.fc-docs-content p {
|
|
682
729
|
margin: 0 0 12px;
|
|
683
730
|
color: var(--fc-text);
|
|
684
731
|
}
|
|
685
|
-
.fc-docs-content ul,
|
|
732
|
+
.fc-docs-content ul,
|
|
733
|
+
.fc-docs-content ol {
|
|
686
734
|
padding-left: 24px;
|
|
687
735
|
margin: 0 0 12px;
|
|
688
736
|
}
|
|
689
737
|
.fc-docs-content li {
|
|
690
738
|
margin-bottom: 4px;
|
|
691
739
|
}
|
|
692
|
-
.fc-docs-content li > ul,
|
|
740
|
+
.fc-docs-content li > ul,
|
|
741
|
+
.fc-docs-content li > ol {
|
|
693
742
|
margin-top: 4px;
|
|
694
743
|
margin-bottom: 0;
|
|
695
744
|
}
|
|
@@ -736,8 +785,12 @@ input[type="color"]::-webkit-color-swatch {
|
|
|
736
785
|
animation: fc-docs-flash 1.5s ease-out;
|
|
737
786
|
}
|
|
738
787
|
@keyframes fc-docs-flash {
|
|
739
|
-
0% {
|
|
740
|
-
|
|
788
|
+
0% {
|
|
789
|
+
background: var(--fc-bgActive);
|
|
790
|
+
}
|
|
791
|
+
100% {
|
|
792
|
+
background: transparent;
|
|
793
|
+
}
|
|
741
794
|
}
|
|
742
795
|
|
|
743
796
|
/* Code blocks */
|
|
@@ -750,7 +803,7 @@ input[type="color"]::-webkit-color-swatch {
|
|
|
750
803
|
font-size: 13px;
|
|
751
804
|
line-height: 1.5;
|
|
752
805
|
margin: 0 0 16px;
|
|
753
|
-
font-family: var(--fc-mono,
|
|
806
|
+
font-family: var(--fc-mono, "JetBrains Mono", "Fira Code", "SF Mono", monospace);
|
|
754
807
|
}
|
|
755
808
|
.fc-docs-code code {
|
|
756
809
|
background: none;
|
|
@@ -767,7 +820,7 @@ input[type="color"]::-webkit-color-swatch {
|
|
|
767
820
|
border-radius: 4px;
|
|
768
821
|
padding: 1px 6px;
|
|
769
822
|
font-size: 0.9em;
|
|
770
|
-
font-family: var(--fc-mono,
|
|
823
|
+
font-family: var(--fc-mono, "JetBrains Mono", "Fira Code", "SF Mono", monospace);
|
|
771
824
|
color: var(--fc-accent);
|
|
772
825
|
}
|
|
773
826
|
|
|
@@ -841,25 +894,54 @@ input[type="color"]::-webkit-color-swatch {
|
|
|
841
894
|
Uses theme-aware CSS variables so tokens adapt to any app theme.
|
|
842
895
|
Default palette matches Tokyo Night. */
|
|
843
896
|
.fc-docs-content .hljs-keyword,
|
|
844
|
-
.fc-docs-content .hljs-tag {
|
|
897
|
+
.fc-docs-content .hljs-tag {
|
|
898
|
+
color: var(--fc-accent);
|
|
899
|
+
}
|
|
845
900
|
.fc-docs-content .hljs-string,
|
|
846
|
-
.fc-docs-content .hljs-template-variable {
|
|
901
|
+
.fc-docs-content .hljs-template-variable {
|
|
902
|
+
color: var(--fc-success, #9ece6a);
|
|
903
|
+
}
|
|
847
904
|
.fc-docs-content .hljs-number,
|
|
848
|
-
.fc-docs-content .hljs-literal {
|
|
905
|
+
.fc-docs-content .hljs-literal {
|
|
906
|
+
color: var(--fc-warning, #ff9e64);
|
|
907
|
+
}
|
|
849
908
|
.fc-docs-content .hljs-type,
|
|
850
909
|
.fc-docs-content .hljs-title.class_,
|
|
851
|
-
.fc-docs-content .hljs-built_in {
|
|
852
|
-
|
|
910
|
+
.fc-docs-content .hljs-built_in {
|
|
911
|
+
color: var(--fc-warning, #e0af68);
|
|
912
|
+
}
|
|
913
|
+
.fc-docs-content .hljs-comment {
|
|
914
|
+
color: var(--fc-textDim);
|
|
915
|
+
font-style: italic;
|
|
916
|
+
}
|
|
853
917
|
.fc-docs-content .hljs-attr,
|
|
854
|
-
.fc-docs-content .hljs-attribute {
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
.fc-docs-content .hljs-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
.fc-docs-content .hljs-
|
|
861
|
-
|
|
862
|
-
|
|
918
|
+
.fc-docs-content .hljs-attribute {
|
|
919
|
+
color: var(--fc-accent);
|
|
920
|
+
}
|
|
921
|
+
.fc-docs-content .hljs-params {
|
|
922
|
+
color: var(--fc-text);
|
|
923
|
+
}
|
|
924
|
+
.fc-docs-content .hljs-title.function_ {
|
|
925
|
+
color: var(--fc-accent);
|
|
926
|
+
}
|
|
927
|
+
.fc-docs-content .hljs-punctuation {
|
|
928
|
+
color: var(--fc-textMuted);
|
|
929
|
+
}
|
|
930
|
+
.fc-docs-content .hljs-property {
|
|
931
|
+
color: var(--fc-text);
|
|
932
|
+
}
|
|
933
|
+
.fc-docs-content .hljs-variable {
|
|
934
|
+
color: var(--fc-text);
|
|
935
|
+
}
|
|
936
|
+
.fc-docs-content .hljs-regexp {
|
|
937
|
+
color: var(--fc-error, #f7768e);
|
|
938
|
+
}
|
|
939
|
+
.fc-docs-content .hljs-meta {
|
|
940
|
+
color: var(--fc-textDim);
|
|
941
|
+
}
|
|
942
|
+
.fc-docs-content .hljs-selector-class {
|
|
943
|
+
color: var(--fc-accent);
|
|
944
|
+
}
|
|
863
945
|
|
|
864
946
|
/* --- Search overlay --- */
|
|
865
947
|
.fc-docs-search-overlay {
|
|
@@ -914,8 +996,13 @@ input[type="color"]::-webkit-color-swatch {
|
|
|
914
996
|
max-height: 400px;
|
|
915
997
|
overflow-y: auto;
|
|
916
998
|
}
|
|
917
|
-
.fc-docs-search-results::-webkit-scrollbar {
|
|
918
|
-
|
|
999
|
+
.fc-docs-search-results::-webkit-scrollbar {
|
|
1000
|
+
width: 4px;
|
|
1001
|
+
}
|
|
1002
|
+
.fc-docs-search-results::-webkit-scrollbar-thumb {
|
|
1003
|
+
background: var(--fc-border);
|
|
1004
|
+
border-radius: 2px;
|
|
1005
|
+
}
|
|
919
1006
|
|
|
920
1007
|
.fc-docs-search-result {
|
|
921
1008
|
padding: 10px 16px;
|
|
@@ -923,7 +1010,9 @@ input[type="color"]::-webkit-color-swatch {
|
|
|
923
1010
|
border-bottom: 1px solid var(--fc-border);
|
|
924
1011
|
transition: background 0.08s;
|
|
925
1012
|
}
|
|
926
|
-
.fc-docs-search-result:last-child {
|
|
1013
|
+
.fc-docs-search-result:last-child {
|
|
1014
|
+
border-bottom: none;
|
|
1015
|
+
}
|
|
927
1016
|
.fc-docs-search-result:hover,
|
|
928
1017
|
.fc-docs-search-result.selected {
|
|
929
1018
|
background: var(--fc-bgHover);
|
|
@@ -973,15 +1062,100 @@ input[type="color"]::-webkit-color-swatch {
|
|
|
973
1062
|
color: var(--fc-textMuted);
|
|
974
1063
|
}
|
|
975
1064
|
|
|
1065
|
+
/* --- On-this-page right sidebar --- */
|
|
1066
|
+
.fc-docs-toc {
|
|
1067
|
+
width: 220px;
|
|
1068
|
+
flex-shrink: 0;
|
|
1069
|
+
padding: 20px 12px 20px 0;
|
|
1070
|
+
overflow-y: auto;
|
|
1071
|
+
height: calc(100vh - 56px);
|
|
1072
|
+
position: sticky;
|
|
1073
|
+
top: 56px;
|
|
1074
|
+
border-left: 1px solid var(--fc-border);
|
|
1075
|
+
}
|
|
1076
|
+
.fc-docs-toc::-webkit-scrollbar {
|
|
1077
|
+
width: 4px;
|
|
1078
|
+
}
|
|
1079
|
+
.fc-docs-toc::-webkit-scrollbar-track {
|
|
1080
|
+
background: transparent;
|
|
1081
|
+
}
|
|
1082
|
+
.fc-docs-toc::-webkit-scrollbar-thumb {
|
|
1083
|
+
background: var(--fc-border);
|
|
1084
|
+
border-radius: 2px;
|
|
1085
|
+
}
|
|
1086
|
+
.fc-docs-toc-title {
|
|
1087
|
+
padding: 0 12px 8px;
|
|
1088
|
+
font-size: 11px;
|
|
1089
|
+
font-weight: 600;
|
|
1090
|
+
text-transform: uppercase;
|
|
1091
|
+
letter-spacing: 0.05em;
|
|
1092
|
+
color: var(--fc-textDim);
|
|
1093
|
+
}
|
|
1094
|
+
.fc-docs-toc-link {
|
|
1095
|
+
display: block;
|
|
1096
|
+
padding: 3px 12px;
|
|
1097
|
+
font-size: 12px;
|
|
1098
|
+
line-height: 1.4;
|
|
1099
|
+
color: var(--fc-textMuted);
|
|
1100
|
+
text-decoration: none;
|
|
1101
|
+
border-left: 2px solid transparent;
|
|
1102
|
+
overflow: hidden;
|
|
1103
|
+
text-overflow: ellipsis;
|
|
1104
|
+
white-space: nowrap;
|
|
1105
|
+
}
|
|
1106
|
+
.fc-docs-toc-link.indent {
|
|
1107
|
+
padding-left: 24px;
|
|
1108
|
+
font-size: 11.5px;
|
|
1109
|
+
}
|
|
1110
|
+
.fc-docs-toc-link:hover {
|
|
1111
|
+
color: var(--fc-text);
|
|
1112
|
+
}
|
|
1113
|
+
.fc-docs-toc-link.active {
|
|
1114
|
+
color: var(--fc-accent, #58a6ff);
|
|
1115
|
+
border-left-color: var(--fc-accent, #58a6ff);
|
|
1116
|
+
}
|
|
1117
|
+
|
|
1118
|
+
/* --- Sidebar toggle buttons --- */
|
|
1119
|
+
.fc-docs-nav-left {
|
|
1120
|
+
display: flex;
|
|
1121
|
+
align-items: center;
|
|
1122
|
+
gap: 8px;
|
|
1123
|
+
}
|
|
1124
|
+
.fc-docs-sidebar-toggle {
|
|
1125
|
+
display: flex;
|
|
1126
|
+
align-items: center;
|
|
1127
|
+
justify-content: center;
|
|
1128
|
+
width: 28px;
|
|
1129
|
+
height: 28px;
|
|
1130
|
+
border: 1px solid var(--fc-border);
|
|
1131
|
+
border-radius: 6px;
|
|
1132
|
+
background: transparent;
|
|
1133
|
+
color: var(--fc-textMuted);
|
|
1134
|
+
cursor: pointer;
|
|
1135
|
+
flex-shrink: 0;
|
|
1136
|
+
}
|
|
1137
|
+
.fc-docs-sidebar-toggle:hover {
|
|
1138
|
+
background: var(--fc-bgSurface);
|
|
1139
|
+
color: var(--fc-text);
|
|
1140
|
+
}
|
|
1141
|
+
|
|
976
1142
|
/* --- Project Selector --- */
|
|
977
1143
|
.fc-project-item:hover {
|
|
978
|
-
background: var(--fc-bgHover, rgba(255, 255, 255, 0.06))
|
|
1144
|
+
background: var(--fc-bgHover, rgba(255, 255, 255, 0.06));
|
|
979
1145
|
}
|
|
980
1146
|
|
|
981
|
-
/* --- Responsive ---
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
.fc-docs-
|
|
1147
|
+
/* --- Responsive ---
|
|
1148
|
+
Sidebars are toggled via JS (initial state based on viewport width).
|
|
1149
|
+
Only content padding and grid adjustments use media queries.
|
|
1150
|
+
*/
|
|
1151
|
+
@media (max-width: 900px) {
|
|
1152
|
+
.fc-docs-content {
|
|
1153
|
+
padding: 20px 16px 60px;
|
|
1154
|
+
}
|
|
1155
|
+
.fc-docs-index {
|
|
1156
|
+
padding: 20px 16px 60px;
|
|
1157
|
+
}
|
|
1158
|
+
.fc-docs-index-grid {
|
|
1159
|
+
grid-template-columns: 1fr;
|
|
1160
|
+
}
|
|
987
1161
|
}
|