@mgks/docmd 0.3.6 → 0.3.8

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 (53) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +86 -77
  3. package/bin/docmd.js +13 -16
  4. package/bin/postinstall.js +4 -4
  5. package/package.json +19 -16
  6. package/src/assets/css/docmd-highlight-dark.css +86 -1
  7. package/src/assets/css/docmd-highlight-light.css +86 -1
  8. package/src/assets/css/docmd-main.css +544 -464
  9. package/src/assets/css/docmd-theme-retro.css +105 -106
  10. package/src/assets/css/docmd-theme-ruby.css +92 -92
  11. package/src/assets/css/docmd-theme-sky.css +63 -64
  12. package/src/assets/favicon.ico +0 -0
  13. package/src/assets/images/docmd-logo-dark.png +0 -0
  14. package/src/assets/images/docmd-logo-light.png +0 -0
  15. package/src/assets/js/docmd-image-lightbox.js +2 -2
  16. package/src/assets/js/docmd-main.js +14 -6
  17. package/src/assets/js/docmd-mermaid.js +1 -1
  18. package/src/assets/js/docmd-search.js +1 -1
  19. package/src/commands/build.js +71 -370
  20. package/src/commands/dev.js +199 -72
  21. package/src/commands/init.js +135 -134
  22. package/src/commands/live.js +145 -0
  23. package/src/core/asset-manager.js +72 -0
  24. package/src/core/config-loader.js +2 -2
  25. package/src/core/config-validator.js +1 -1
  26. package/src/core/file-processor.js +13 -9
  27. package/src/core/fs-utils.js +40 -0
  28. package/src/core/html-formatter.js +97 -0
  29. package/src/core/html-generator.js +61 -65
  30. package/src/core/icon-renderer.js +1 -1
  31. package/src/core/logger.js +1 -1
  32. package/src/core/markdown/containers.js +1 -1
  33. package/src/core/markdown/renderers.js +1 -1
  34. package/src/core/markdown/rules.js +1 -2
  35. package/src/core/markdown/setup.js +1 -1
  36. package/src/core/navigation-helper.js +1 -1
  37. package/src/index.js +12 -0
  38. package/src/live/core.js +5 -1
  39. package/src/live/index.html +16 -1
  40. package/src/live/live.css +157 -68
  41. package/src/plugins/analytics.js +1 -1
  42. package/src/plugins/seo.js +26 -36
  43. package/src/plugins/sitemap.js +2 -2
  44. package/src/templates/layout.ejs +50 -81
  45. package/src/templates/navigation.ejs +23 -76
  46. package/src/templates/no-style.ejs +115 -129
  47. package/src/templates/partials/theme-init.js +1 -1
  48. package/src/templates/toc.ejs +6 -35
  49. package/docmd.config.js +0 -175
  50. package/scripts/build-live.js +0 -157
  51. package/scripts/test-live.js +0 -54
  52. package/src/assets/images/docmd-logo.png +0 -0
  53. package/src/live/templates.js +0 -9
@@ -1,11 +1,89 @@
1
- /* Source file from the docmd project — https://github.com/mgks/docmd */
1
+ /* Source file from the docmd project — https://github.com/docmd-io/docmd */
2
2
 
3
3
  /*
4
- * docmd Retro Theme
4
+ * Retro Theme
5
5
  * Inspired by 1980s-90s computing aesthetics
6
6
  * Features: Neon colors, scanlines, terminal styling, glow effects
7
7
  */
8
8
 
9
+ :root {
10
+ --retro-primary: #0a0a0a;
11
+ --retro-secondary: #1a1a1a;
12
+ --retro-bg-light: #0f0f0f;
13
+ --retro-text: #00ff41;
14
+ --retro-text-secondary: #ffb000;
15
+ --retro-text-muted: #888;
16
+ --retro-accent: #0ff;
17
+ --retro-danger: #ff1493;
18
+ --retro-warning: #ffb000;
19
+ --retro-success: #00ff41;
20
+ --retro-info: #06f;
21
+ --retro-border: #333;
22
+ --retro-border-bright: #0ff;
23
+ --retro-glow: 0 0 10px currentColor;
24
+ --retro-glow-soft: 0 0 5px currentColor;
25
+ --retro-shadow: 0 0 20px #00ffff4d;
26
+ --retro-font-family: 'Fira Code', 'Courier New', Consolas, monospace;
27
+ --retro-font-family-alt: 'Share Tech Mono', 'Courier New', monospace;
28
+ --retro-spacing: 1rem;
29
+ --retro-spacing-small: .5rem;
30
+ --retro-spacing-large: 2rem
31
+ }
32
+
33
+ html[data-theme=light] {
34
+ --retro-primary: #f0f0f0;
35
+ --retro-secondary: #e0e0e0;
36
+ --retro-bg-light: #f5f5f5;
37
+ --retro-text: #2d5d2d;
38
+ --retro-text-secondary: #8b4500;
39
+ --retro-text-muted: #666;
40
+ --retro-accent: #066;
41
+ --retro-danger: #b71c42;
42
+ --retro-warning: #b8860b;
43
+ --retro-success: #228b22;
44
+ --retro-info: #4169e1;
45
+ --retro-border: #ccc;
46
+ --retro-border-bright: #066;
47
+ --retro-glow: 0 0 5px currentColor;
48
+ --retro-glow-soft: 0 0 3px currentColor;
49
+ --retro-shadow: 0 0 15px #0663
50
+ }
51
+
52
+ * {
53
+ box-sizing: border-box
54
+ }
55
+
56
+ body {
57
+ color: var(--retro-text);
58
+ line-height: 1.6;
59
+ margin: 0;
60
+ padding: 0;
61
+ min-height: 100vh;
62
+ overflow-x: hidden
63
+ }
64
+
65
+ body::before {
66
+ content: '';
67
+ position: fixed;
68
+ top: 0;
69
+ left: 0;
70
+ width: 100%;
71
+ height: 100%;
72
+ background: linear-gradient(transparent 50%, #00ff4108 50%);
73
+ background-size: 100% 4px;
74
+ pointer-events: none;
75
+ z-index: 1000;
76
+ animation: .1s linear infinite scanlines
77
+ }
78
+
79
+ html[data-theme=light]::before {
80
+ background: linear-gradient(transparent 50%, #2d5d2d05 50%)
81
+ }
82
+
83
+ html[data-theme=light] .page-header {
84
+ box-shadow: 0 2px 10px #0663
85
+ }
86
+
9
87
  a,
10
88
  h1,
11
89
  h2,
@@ -70,84 +148,6 @@ h6 {
70
148
  font-family: var(--retro-font-family)
71
149
  }
72
150
 
73
- :root {
74
- --retro-primary: #0a0a0a;
75
- --retro-secondary: #1a1a1a;
76
- --retro-bg-light: #0f0f0f;
77
- --retro-text: #00ff41;
78
- --retro-text-secondary: #ffb000;
79
- --retro-text-muted: #888888;
80
- --retro-accent: #00ffff;
81
- --retro-danger: #ff1493;
82
- --retro-warning: #ffb000;
83
- --retro-success: #00ff41;
84
- --retro-info: #0066ff;
85
- --retro-border: #333333;
86
- --retro-border-bright: #00ffff;
87
- --retro-glow: 0 0 10px currentColor;
88
- --retro-glow-soft: 0 0 5px currentColor;
89
- --retro-shadow: 0 0 20px rgba(0, 255, 255, 0.3);
90
- --retro-font-family: 'Fira Code', 'Courier New', 'Consolas', monospace;
91
- --retro-font-family-alt: 'Share Tech Mono', 'Courier New', monospace;
92
- --retro-spacing: 1rem;
93
- --retro-spacing-small: 0.5rem;
94
- --retro-spacing-large: 2rem
95
- }
96
-
97
- html[data-theme=light] {
98
- --retro-primary: #f0f0f0;
99
- --retro-secondary: #e0e0e0;
100
- --retro-bg-light: #f5f5f5;
101
- --retro-text: #2d5d2d;
102
- --retro-text-secondary: #8b4500;
103
- --retro-text-muted: #666666;
104
- --retro-accent: #006666;
105
- --retro-danger: #b71c42;
106
- --retro-warning: #b8860b;
107
- --retro-success: #228b22;
108
- --retro-info: #4169e1;
109
- --retro-border: #cccccc;
110
- --retro-border-bright: #006666;
111
- --retro-glow: 0 0 5px currentColor;
112
- --retro-glow-soft: 0 0 3px currentColor;
113
- --retro-shadow: 0 0 15px rgba(0, 102, 102, 0.2)
114
- }
115
-
116
- * {
117
- box-sizing: border-box
118
- }
119
-
120
- body {
121
- color: var(--retro-text);
122
- line-height: 1.6;
123
- margin: 0;
124
- padding: 0;
125
- min-height: 100vh;
126
- overflow-x: hidden
127
- }
128
-
129
- body::before {
130
- content: '';
131
- position: fixed;
132
- top: 0;
133
- left: 0;
134
- width: 100%;
135
- height: 100%;
136
- background: linear-gradient(transparent 50%, rgba(0, 255, 65, .03) 50%);
137
- background-size: 100% 4px;
138
- pointer-events: none;
139
- z-index: 1000;
140
- animation: .1s linear infinite scanlines
141
- }
142
-
143
- html[data-theme=light]::before {
144
- background: linear-gradient(transparent 50%, rgba(45, 93, 45, .02) 50%)
145
- }
146
-
147
- html[data-theme=light] .page-header {
148
- box-shadow: 0 2px 10px rgba(0, 102, 102, .2)
149
- }
150
-
151
151
  .page-container {
152
152
  animation: 3s infinite flicker
153
153
  }
@@ -230,7 +230,7 @@ code {
230
230
  padding: .2rem .4rem;
231
231
  border-radius: 3px;
232
232
  border: 1px solid var(--retro-border);
233
- box-shadow: inset 0 0 5px rgba(0, 255, 65, .2)
233
+ box-shadow: inset 0 0 5px #00ff4133
234
234
  }
235
235
 
236
236
  .page-header,
@@ -255,7 +255,7 @@ pre::before {
255
255
 
256
256
  html[data-theme=light] code {
257
257
  color: var(--retro-text-secondary) !important;
258
- box-shadow: inset 0 0 5px rgba(45, 93, 45, .2)
258
+ box-shadow: inset 0 0 5px #2d5d2d33
259
259
  }
260
260
 
261
261
  pre::before {
@@ -271,7 +271,7 @@ pre::before {
271
271
  .page-header {
272
272
  background: linear-gradient(45deg, var(--retro-secondary), var(--retro-bg-light));
273
273
  border-bottom: 2px solid var(--retro-border-bright);
274
- box-shadow: 0 2px 10px rgba(0, 255, 255, .3)
274
+ box-shadow: 0 2px 10px #00ffff4d
275
275
  }
276
276
 
277
277
  .page-header::after {
@@ -287,7 +287,7 @@ pre::before {
287
287
  .sidebar {
288
288
  background: var(--retro-secondary);
289
289
  border-right: 2px solid var(--retro-border-bright);
290
- box-shadow: 2px 0 10px rgba(0, 255, 255, .2)
290
+ box-shadow: 2px 0 10px #0ff3
291
291
  }
292
292
 
293
293
  .sidebar-nav a {
@@ -301,14 +301,14 @@ pre::before {
301
301
  .sidebar-nav a:hover {
302
302
  background: var(--retro-bg-light);
303
303
  border-left: 4px solid var(--retro-accent);
304
- box-shadow: inset 0 0 10px rgba(0, 255, 255, .2)
304
+ box-shadow: inset 0 0 10px #0ff3
305
305
  }
306
306
 
307
307
  html[data-theme=light] .sidebar-nav a.active,
308
308
  html[data-theme=light] .sidebar-nav a:hover {
309
309
  background: var(--retro-bg-light);
310
310
  border-left: 4px solid var(--retro-accent);
311
- box-shadow: inset 0 0 10px rgba(0, 102, 102, .2)
311
+ box-shadow: inset 0 0 10px #0663
312
312
  }
313
313
 
314
314
  .btn,
@@ -324,7 +324,7 @@ button {
324
324
  position: relative;
325
325
  text-decoration: none;
326
326
  display: inline-block;
327
- box-shadow: 0 4px 15px rgba(0, 255, 255, .3)
327
+ box-shadow: 0 4px 15px #00ffff4d
328
328
  }
329
329
 
330
330
  .btn:hover,
@@ -357,7 +357,7 @@ th {
357
357
  .docmd-button:hover,
358
358
  button:hover {
359
359
  color: var(--retro-danger);
360
- box-shadow: 0 6px 20px rgba(255, 20, 147, .4);
360
+ box-shadow: 0 6px 20px #ff149366;
361
361
  transform: translateY(-2px)
362
362
  }
363
363
 
@@ -365,7 +365,7 @@ button:hover {
365
365
  .docmd-button:active,
366
366
  button:active {
367
367
  transform: translateY(0);
368
- box-shadow: 0 2px 10px rgba(0, 255, 255, .5)
368
+ box-shadow: 0 2px 10px #00ffff80
369
369
  }
370
370
 
371
371
  .docmd-container {
@@ -389,23 +389,23 @@ button:active {
389
389
 
390
390
  .docmd-container.callout.info {
391
391
  border-color: var(--retro-info);
392
- box-shadow: 0 0 15px rgba(0, 102, 255, .3)
392
+ box-shadow: 0 0 15px #0066ff4d
393
393
  }
394
394
 
395
395
  .docmd-container.callout.warning {
396
396
  border-color: var(--retro-warning);
397
- box-shadow: 0 0 15px rgba(255, 176, 0, .3)
397
+ box-shadow: 0 0 15px #ffb0004d
398
398
  }
399
399
 
400
400
  .docmd-container.callout.danger {
401
401
  border-color: var(--retro-danger);
402
- box-shadow: 0 0 15px rgba(255, 20, 147, .3)
402
+ box-shadow: 0 0 15px #ff14934d
403
403
  }
404
404
 
405
405
  .docmd-container.callout.success,
406
406
  .docmd-container.callout.tip {
407
407
  border-color: var(--retro-success);
408
- box-shadow: 0 0 15px rgba(0, 255, 65, .3)
408
+ box-shadow: 0 0 15px #00ff414d
409
409
  }
410
410
 
411
411
  .docmd-tabs-nav,
@@ -461,7 +461,7 @@ th {
461
461
  .docmd-container.card {
462
462
  background: linear-gradient(145deg, var(--retro-secondary), var(--retro-bg-light));
463
463
  border: 1px solid var(--retro-border-bright);
464
- box-shadow: 0 4px 15px rgba(0, 255, 255, .2), inset 0 0 10px rgba(0, 255, 65, .1)
464
+ box-shadow: 0 4px 15px #0ff3 inset 0 0 10px #00ff411a
465
465
  }
466
466
 
467
467
  .docmd-tabs {
@@ -472,7 +472,7 @@ th {
472
472
 
473
473
  .theme-toggle-button,
474
474
  img {
475
- box-shadow: 0 0 10px rgba(0, 255, 255, .3)
475
+ box-shadow: 0 0 10px #00ffff4d
476
476
  }
477
477
 
478
478
  .docmd-tabs::before {
@@ -514,14 +514,14 @@ th {
514
514
 
515
515
  .docmd-tabs-nav-item:hover {
516
516
  background: var(--retro-bg-light);
517
- box-shadow: inset 0 0 10px rgba(0, 255, 255, .2)
517
+ box-shadow: inset 0 0 10px #0ff3
518
518
  }
519
519
 
520
520
  .docmd-tabs-nav-item.active {
521
521
  background: var(--retro-primary);
522
522
  color: var(--retro-accent);
523
523
  border-bottom: 2px solid var(--retro-accent);
524
- box-shadow: 0 0 15px rgba(0, 255, 255, .5)
524
+ box-shadow: 0 0 15px #00ffff80
525
525
  }
526
526
 
527
527
  .docmd-container.steps,
@@ -596,7 +596,7 @@ table {
596
596
  font-weight: 700;
597
597
  font-size: 1.2rem;
598
598
  text-shadow: none;
599
- box-shadow: 0 0 10px rgba(0, 255, 255, .5), inset 0 0 5px rgba(0, 0, 0, .3);
599
+ box-shadow: 0 0 10px #00ffff80 inset 0 0 5px #0000004d;
600
600
  animation: 2s ease-in-out infinite pulse-glow
601
601
  }
602
602
 
@@ -657,11 +657,11 @@ td {
657
657
 
658
658
  tr:hover {
659
659
  background: var(--retro-bg-light);
660
- box-shadow: inset 0 0 10px rgba(0, 255, 65, .1)
660
+ box-shadow: inset 0 0 10px #00ff411a
661
661
  }
662
662
 
663
663
  html[data-theme=light] tr:hover {
664
- box-shadow: inset 0 0 10px rgba(45, 93, 45, .1)
664
+ box-shadow: inset 0 0 10px #2d5d2d1a
665
665
  }
666
666
 
667
667
  .theme-toggle-button {
@@ -676,15 +676,15 @@ html[data-theme=light] tr:hover {
676
676
  .theme-toggle-button:hover {
677
677
  background: var(--retro-accent);
678
678
  color: var(--retro-primary);
679
- box-shadow: 0 0 15px rgba(0, 255, 255, .6)
679
+ box-shadow: 0 0 15px #0ff9
680
680
  }
681
681
 
682
682
  html[data-theme=light] .theme-toggle-button {
683
- box-shadow: 0 0 10px rgba(0, 102, 102, .3)
683
+ box-shadow: 0 0 10px #0066664d
684
684
  }
685
685
 
686
686
  html[data-theme=light] .theme-toggle-button:hover {
687
- box-shadow: 0 0 15px rgba(0, 102, 102, .6)
687
+ box-shadow: 0 0 15px #0669
688
688
  }
689
689
 
690
690
  .terminal-cursor::after {
@@ -774,7 +774,6 @@ html[data-theme=light] .theme-toggle-button:hover {
774
774
  }
775
775
  }
776
776
 
777
-
778
777
  @keyframes scanlines {
779
778
  0% {
780
779
  transform: translateY(0)
@@ -859,10 +858,10 @@ html[data-theme=light] .theme-toggle-button:hover {
859
858
 
860
859
  0%,
861
860
  100% {
862
- box-shadow: 0 0 10px rgba(0, 255, 255, .5), inset 0 0 5px rgba(0, 0, 0, .3)
861
+ box-shadow: 0 0 10px #00ffff80 inset 0 0 5px #0000004d
863
862
  }
864
863
 
865
864
  50% {
866
- box-shadow: 0 0 20px rgba(0, 255, 255, .8), inset 0 0 10px rgba(0, 0, 0, .5)
865
+ box-shadow: 0 0 20px #0ffc inset 0 0 10px #00000080
867
866
  }
868
867
  }
@@ -1,92 +1,17 @@
1
- /* Source file from the docmd project — https://github.com/mgks/docmd */
1
+ /* Source file from the docmd project — https://github.com/docmd-io/docmd */
2
2
 
3
3
  /*
4
- * docmd Ruby Theme
4
+ * Ruby Theme
5
5
  * Inspired by the beauty of gemstones
6
6
  * Features: Deep ruby red, elegant serif fonts, subtle gem-like effects
7
7
  */
8
8
 
9
- @import url(https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;500;600;700&family=Source+Sans+Pro:wght@300;400;600;700&display=swap);
10
-
11
- .docmd-container,
12
- .sidebar,
13
- pre,
14
- table {
15
- box-shadow: var(--shadow-sm)
16
- }
17
-
18
- h1,
19
- h2 {
20
- padding-bottom: .5rem
21
- }
22
-
23
- .sidebar nav li a.active,
24
- pre {
25
- border-left: 3px solid var(--ruby-primary)
26
- }
27
-
28
- pre,
29
- table {
30
- margin: 1.5em 0
31
- }
32
-
33
- a:hover,
34
- th {
35
- color: var(--ruby-primary-dark)
36
- }
37
-
38
- .sidebar-header,
39
- th {
40
- border-bottom: 2px solid var(--ruby-border)
41
- }
42
-
43
- td,
44
- th {
45
- padding: .75rem 1rem
46
- }
47
-
48
- .content-area a:not(.button):not(.no-underline)::after,
49
- .docmd-container::before,
50
- h1::after {
51
- background: linear-gradient(90deg, var(--ruby-primary), var(--ruby-accent));
52
- position: absolute;
53
- left: 0
54
- }
55
-
56
- .callout,
57
- .docmd-container,
58
- .steps,
59
- .steps h4,
60
- a,
61
- h1 {
62
- position: relative
63
- }
64
-
65
- .callout-info .callout-title,
66
- .docmd-container.steps-reset ol.steps-list>li.step-item::before,
67
- .sidebar nav li a:hover {
68
- color: var(--ruby-primary)
69
- }
70
-
71
- .card .card-content,
72
- .card .card-title {
73
- padding: 1rem 1.5rem
74
- }
75
-
76
- figure img,
77
- img {
78
- max-width: 100%
79
- }
80
-
81
- .image-gallery img,
82
- .image-gallery.zoom img {
83
- transition: transform .3s
84
- }
9
+ @import "https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;500;600;700&family=Source+Sans+Pro:wght@300;400;600;700&display=swap";
85
10
 
86
11
  :root {
87
12
  --ruby-font-family-sans: "Source Sans Pro", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
88
13
  --ruby-font-family-serif: "Playfair Display", Georgia, "Times New Roman", serif;
89
- --ruby-font-family-mono: "JetBrains Mono", "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace
14
+ --ruby-font-family-mono: "JetBrains Mono", SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace
90
15
  }
91
16
 
92
17
  :root[data-theme=light] {
@@ -98,7 +23,7 @@ img {
98
23
  --ruby-text: #2d2d2d;
99
24
  --ruby-text-light: #5a5a5a;
100
25
  --ruby-text-lightest: #757575;
101
- --ruby-background: #ffffff;
26
+ --ruby-background: #fff;
102
27
  --ruby-background-alt: #fafafa;
103
28
  --ruby-border: #e0e0e0;
104
29
  --ruby-border-light: #f0f0f0;
@@ -114,9 +39,9 @@ img {
114
39
  --code-text: var(--ruby-primary-dark);
115
40
  --header-bg: var(--ruby-background);
116
41
  --header-border: var(--ruby-border);
117
- --shadow-sm: 0 2px 4px rgba(179, 0, 0, 0.05);
118
- --shadow-md: 0 4px 8px rgba(179, 0, 0, 0.1);
119
- --shadow-lg: 0 8px 16px rgba(179, 0, 0, 0.15);
42
+ --shadow-sm: 0 2px 4px #b300000d;
43
+ --shadow-md: 0 4px 8px #b300001a;
44
+ --shadow-lg: 0 8px 16px #b3000026;
120
45
  --image-border-color: var(--ruby-border);
121
46
  --image-shadow: var(--shadow-md);
122
47
  --image-caption-bg: var(--ruby-background-alt);
@@ -124,7 +49,7 @@ img {
124
49
  --image-hover-transform: translateY(-3px);
125
50
  --image-hover-shadow: var(--shadow-lg);
126
51
  --image-border-radius: 6px;
127
- --image-transition: all 0.3s ease
52
+ --image-transition: all .3s ease
128
53
  }
129
54
 
130
55
  :root[data-theme=dark] {
@@ -134,7 +59,7 @@ img {
134
59
  --ruby-accent: #ce93d8;
135
60
  --ruby-accent-light: #2a1a2a;
136
61
  --ruby-text: #f0f0f0;
137
- --ruby-text-light: #c0c0c0;
62
+ --ruby-text-light: silver;
138
63
  --ruby-text-lightest: #a0a0a0;
139
64
  --ruby-background: #1a0a0a;
140
65
  --ruby-background-alt: #2a1515;
@@ -152,17 +77,17 @@ img {
152
77
  --code-text: var(--ruby-text);
153
78
  --header-bg: var(--ruby-background);
154
79
  --header-border: var(--ruby-border);
155
- --shadow-sm: 0 2px 4px rgba(0, 0, 0, 0.3);
156
- --shadow-md: 0 4px 8px rgba(0, 0, 0, 0.4);
157
- --shadow-lg: 0 8px 16px rgba(0, 0, 0, 0.5);
80
+ --shadow-sm: 0 2px 4px #0000004d;
81
+ --shadow-md: 0 4px 8px #0006;
82
+ --shadow-lg: 0 8px 16px #00000080;
158
83
  --image-border-color: var(--ruby-border);
159
- --image-shadow: 0 4px 8px rgba(0, 0, 0, 0.5);
84
+ --image-shadow: 0 4px 8px #00000080;
160
85
  --image-caption-bg: var(--ruby-background-alt);
161
86
  --image-caption-text: var(--ruby-text-light);
162
87
  --image-hover-transform: translateY(-3px);
163
- --image-hover-shadow: 0 6px 12px rgba(0, 0, 0, 0.7);
88
+ --image-hover-shadow: 0 6px 12px #000000b3;
164
89
  --image-border-radius: 6px;
165
- --image-transition: all 0.3s ease
90
+ --image-transition: all .3s ease
166
91
  }
167
92
 
168
93
  body {
@@ -171,6 +96,81 @@ body {
171
96
  letter-spacing: .01em
172
97
  }
173
98
 
99
+ .docmd-container,
100
+ .sidebar,
101
+ pre,
102
+ table {
103
+ box-shadow: var(--shadow-sm)
104
+ }
105
+
106
+ h1,
107
+ h2 {
108
+ padding-bottom: .5rem
109
+ }
110
+
111
+ .sidebar nav li a.active,
112
+ pre {
113
+ border-left: 3px solid var(--ruby-primary)
114
+ }
115
+
116
+ pre,
117
+ table {
118
+ margin: 1.5em 0
119
+ }
120
+
121
+ a:hover,
122
+ th {
123
+ color: var(--ruby-primary-dark)
124
+ }
125
+
126
+ .sidebar-header,
127
+ th {
128
+ border-bottom: 2px solid var(--ruby-border)
129
+ }
130
+
131
+ td,
132
+ th {
133
+ padding: .75rem 1rem
134
+ }
135
+
136
+ .content-area a:not(.button):not(.no-underline)::after,
137
+ .docmd-container::before,
138
+ h1::after {
139
+ background: linear-gradient(90deg, var(--ruby-primary), var(--ruby-accent));
140
+ position: absolute;
141
+ left: 0
142
+ }
143
+
144
+ .callout,
145
+ .docmd-container,
146
+ .steps,
147
+ .steps h4,
148
+ a,
149
+ h1 {
150
+ position: relative
151
+ }
152
+
153
+ .callout-info .callout-title,
154
+ .docmd-container.steps-reset ol.steps-list>li.step-item::before,
155
+ .sidebar nav li a:hover {
156
+ color: var(--ruby-primary)
157
+ }
158
+
159
+ .card .card-content,
160
+ .card .card-title {
161
+ padding: 1rem 1.5rem
162
+ }
163
+
164
+ figure img,
165
+ img {
166
+ max-width: 100%
167
+ }
168
+
169
+ .image-gallery img,
170
+ .image-gallery.zoom img {
171
+ transition: transform .3s
172
+ }
173
+
174
174
  .callout-title,
175
175
  .card .card-title,
176
176
  .steps h4,
@@ -306,7 +306,7 @@ table {
306
306
  table {
307
307
  width: 100%;
308
308
  border-collapse: separate;
309
- border-spacing: 0px
309
+ border-spacing: 0
310
310
  }
311
311
 
312
312
  th {