@knowcode/doc-builder 1.9.1 → 1.9.2
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/CHANGELOG.md +29 -0
- package/README.md +1 -0
- package/html/README.html +150 -33
- package/html/css/notion-style.css +394 -13
- package/html/documentation-index.html +128 -10
- package/html/guides/authentication-default-change.html +131 -7
- package/html/guides/authentication-guide.html +142 -19
- package/html/guides/claude-workflow-guide.html +138 -22
- package/html/guides/documentation-standards.html +134 -11
- package/html/guides/html-embedding-guide.html +450 -0
- package/html/guides/image-modal-guide.html +133 -10
- package/html/guides/phosphor-icons-guide.html +151 -27
- package/html/guides/private-directory-authentication.html +131 -7
- package/html/guides/public-site-deployment.html +131 -7
- package/html/guides/search-engine-verification-guide.html +131 -7
- package/html/guides/seo-guide.html +131 -7
- package/html/guides/seo-optimization-guide.html +160 -38
- package/html/guides/troubleshooting-guide.html +142 -19
- package/html/guides/windows-setup-guide.html +162 -38
- package/html/image-modal-test.html +126 -8
- package/html/index.html +150 -33
- package/html/js/auth.js +118 -39
- package/html/js/main.js +259 -25
- package/html/private/cache-control-anti-pattern.html +136 -12
- package/html/private/launch/README.html +145 -15
- package/html/private/launch/auth-cleanup-summary.html +154 -24
- package/html/private/launch/bubble-plugin-specification.html +137 -7
- package/html/private/launch/go-to-market-strategy.html +139 -9
- package/html/private/launch/launch-announcements.html +153 -24
- package/html/private/launch/vercel-deployment-auth-setup.html +139 -9
- package/html/private/next-steps-walkthrough.html +138 -14
- package/html/private/supabase-auth-implementation-completed.html +144 -21
- package/html/private/supabase-auth-implementation-plan.html +137 -14
- package/html/private/supabase-auth-integration-plan.html +143 -21
- package/html/private/supabase-auth-setup-guide.html +140 -16
- package/html/private/test-private-doc.html +131 -7
- package/html/private/user-management-tooling.html +131 -7
- package/html/prompts/markdown-document-standards.html +135 -12
- package/html/sitemap.xml +58 -46
- package/html/vercel-cli-setup-guide.html +129 -11
- package/html/vercel-first-time-setup-guide.html +126 -8
- package/lib/config.js +2 -0
- package/package.json +1 -1
|
@@ -289,7 +289,8 @@ pre code {
|
|
|
289
289
|
}
|
|
290
290
|
}
|
|
291
291
|
|
|
292
|
-
.logout-btn
|
|
292
|
+
.logout-btn,
|
|
293
|
+
.auth-btn {
|
|
293
294
|
background: none;
|
|
294
295
|
border: none;
|
|
295
296
|
font-size: var(--text-lg);
|
|
@@ -312,6 +313,13 @@ pre code {
|
|
|
312
313
|
transform: translateY(-1px);
|
|
313
314
|
}
|
|
314
315
|
|
|
316
|
+
.auth-btn:hover {
|
|
317
|
+
background: var(--color-bg-tertiary);
|
|
318
|
+
opacity: 1;
|
|
319
|
+
color: var(--color-text-primary);
|
|
320
|
+
transform: translateY(-1px);
|
|
321
|
+
}
|
|
322
|
+
|
|
315
323
|
/* Sidebar */
|
|
316
324
|
.sidebar {
|
|
317
325
|
position: relative;
|
|
@@ -319,7 +327,7 @@ pre code {
|
|
|
319
327
|
background: var(--color-bg-secondary);
|
|
320
328
|
border-right: 1px solid var(--color-border-default);
|
|
321
329
|
overflow: hidden;
|
|
322
|
-
transition: width var(--duration-normal);
|
|
330
|
+
transition: width var(--duration-normal), transform 0.3s ease, margin-left 0.3s ease;
|
|
323
331
|
min-width: 200px;
|
|
324
332
|
max-width: 500px;
|
|
325
333
|
user-select: none;
|
|
@@ -330,6 +338,14 @@ pre code {
|
|
|
330
338
|
height: 100%;
|
|
331
339
|
}
|
|
332
340
|
|
|
341
|
+
/* Desktop sidebar closed state */
|
|
342
|
+
@media (min-width: 769px) {
|
|
343
|
+
.sidebar.closed {
|
|
344
|
+
transform: translateX(-100%);
|
|
345
|
+
margin-left: calc(var(--sidebar-width) * -1);
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
|
|
333
349
|
/* Banner adjustment no longer needed with relative positioning */
|
|
334
350
|
|
|
335
351
|
|
|
@@ -682,12 +698,65 @@ th {
|
|
|
682
698
|
background: var(--color-bg-secondary);
|
|
683
699
|
border-bottom: 1px solid var(--color-border-default);
|
|
684
700
|
color: var(--color-text-primary);
|
|
701
|
+
vertical-align: top !important;
|
|
685
702
|
}
|
|
686
703
|
|
|
687
704
|
td {
|
|
688
705
|
padding: var(--space-3) var(--space-4);
|
|
689
706
|
border-bottom: 1px solid var(--color-border-default);
|
|
690
707
|
color: var(--color-text-primary);
|
|
708
|
+
vertical-align: top !important;
|
|
709
|
+
}
|
|
710
|
+
|
|
711
|
+
/* Ensure all table cell content is top-aligned */
|
|
712
|
+
table th,
|
|
713
|
+
table td {
|
|
714
|
+
vertical-align: top !important;
|
|
715
|
+
}
|
|
716
|
+
|
|
717
|
+
/* Ensure nested elements in table cells don't affect alignment */
|
|
718
|
+
table td > *,
|
|
719
|
+
table th > * {
|
|
720
|
+
vertical-align: top;
|
|
721
|
+
}
|
|
722
|
+
|
|
723
|
+
/* Remove top margin from first element in table cells */
|
|
724
|
+
td > *:first-child,
|
|
725
|
+
th > *:first-child {
|
|
726
|
+
margin-top: 0 !important;
|
|
727
|
+
}
|
|
728
|
+
|
|
729
|
+
/* Remove bottom margin from last element in table cells */
|
|
730
|
+
td > *:last-child,
|
|
731
|
+
th > *:last-child {
|
|
732
|
+
margin-bottom: 0 !important;
|
|
733
|
+
}
|
|
734
|
+
|
|
735
|
+
/* Specifically target common block elements that might be first in cells */
|
|
736
|
+
td > h1:first-child,
|
|
737
|
+
td > h2:first-child,
|
|
738
|
+
td > h3:first-child,
|
|
739
|
+
td > h4:first-child,
|
|
740
|
+
td > h5:first-child,
|
|
741
|
+
td > h6:first-child,
|
|
742
|
+
td > p:first-child,
|
|
743
|
+
td > ul:first-child,
|
|
744
|
+
td > ol:first-child,
|
|
745
|
+
td > blockquote:first-child,
|
|
746
|
+
td > pre:first-child,
|
|
747
|
+
th > h1:first-child,
|
|
748
|
+
th > h2:first-child,
|
|
749
|
+
th > h3:first-child,
|
|
750
|
+
th > h4:first-child,
|
|
751
|
+
th > h5:first-child,
|
|
752
|
+
th > h6:first-child,
|
|
753
|
+
th > p:first-child,
|
|
754
|
+
th > ul:first-child,
|
|
755
|
+
th > ol:first-child,
|
|
756
|
+
th > blockquote:first-child,
|
|
757
|
+
th > pre:first-child {
|
|
758
|
+
margin-top: 0 !important;
|
|
759
|
+
padding-top: 0 !important;
|
|
691
760
|
}
|
|
692
761
|
|
|
693
762
|
tr:last-child td {
|
|
@@ -942,6 +1011,20 @@ tr:hover {
|
|
|
942
1011
|
cursor: pointer;
|
|
943
1012
|
color: var(--color-text-primary);
|
|
944
1013
|
padding: var(--space-2);
|
|
1014
|
+
border-radius: var(--radius-small);
|
|
1015
|
+
transition: all var(--duration-fast) var(--easing-out);
|
|
1016
|
+
}
|
|
1017
|
+
|
|
1018
|
+
.menu-toggle:hover {
|
|
1019
|
+
background: var(--color-bg-secondary);
|
|
1020
|
+
color: var(--color-text-primary);
|
|
1021
|
+
}
|
|
1022
|
+
|
|
1023
|
+
/* Show menu toggle on desktop when menu starts closed or is closed */
|
|
1024
|
+
@media (min-width: 769px) {
|
|
1025
|
+
body.menu-starts-closed .menu-toggle {
|
|
1026
|
+
display: block;
|
|
1027
|
+
}
|
|
945
1028
|
}
|
|
946
1029
|
|
|
947
1030
|
/* Responsive Design */
|
|
@@ -954,19 +1037,39 @@ tr:hover {
|
|
|
954
1037
|
|
|
955
1038
|
/* Hide sidebar on mobile */
|
|
956
1039
|
.sidebar {
|
|
957
|
-
position:
|
|
1040
|
+
position: fixed;
|
|
958
1041
|
top: calc(var(--header-height) + var(--breadcrumb-height));
|
|
959
1042
|
left: 0;
|
|
960
1043
|
height: calc(100vh - var(--header-height) - var(--breadcrumb-height));
|
|
961
|
-
z-index:
|
|
1044
|
+
z-index: 1002; /* Above header and floating button */
|
|
962
1045
|
transform: translateX(-100%);
|
|
963
1046
|
transition: transform var(--duration-normal) var(--easing-out);
|
|
1047
|
+
box-shadow: 2px 0 8px rgba(0, 0, 0, 0.15); /* Add shadow for depth */
|
|
964
1048
|
}
|
|
965
1049
|
|
|
966
1050
|
.sidebar.open {
|
|
967
1051
|
transform: translateX(0);
|
|
968
1052
|
}
|
|
969
1053
|
|
|
1054
|
+
/* Mobile menu overlay */
|
|
1055
|
+
.sidebar-overlay {
|
|
1056
|
+
display: none;
|
|
1057
|
+
position: fixed;
|
|
1058
|
+
top: 0;
|
|
1059
|
+
left: 0;
|
|
1060
|
+
right: 0;
|
|
1061
|
+
bottom: 0;
|
|
1062
|
+
background: rgba(0, 0, 0, 0.5);
|
|
1063
|
+
z-index: 1001; /* Below sidebar but above content */
|
|
1064
|
+
opacity: 0;
|
|
1065
|
+
transition: opacity var(--duration-normal);
|
|
1066
|
+
}
|
|
1067
|
+
|
|
1068
|
+
.sidebar-overlay.active {
|
|
1069
|
+
display: block;
|
|
1070
|
+
opacity: 1;
|
|
1071
|
+
}
|
|
1072
|
+
|
|
970
1073
|
.main-wrapper {
|
|
971
1074
|
margin-left: 0;
|
|
972
1075
|
margin-top: var(--header-height); /* Only account for fixed header on mobile */
|
|
@@ -974,7 +1077,7 @@ tr:hover {
|
|
|
974
1077
|
|
|
975
1078
|
.content {
|
|
976
1079
|
margin-left: 0;
|
|
977
|
-
padding: var(--space-
|
|
1080
|
+
padding: var(--space-3) var(--space-4); /* Reduced top/bottom padding on mobile */
|
|
978
1081
|
}
|
|
979
1082
|
|
|
980
1083
|
.menu-toggle {
|
|
@@ -988,13 +1091,13 @@ tr:hover {
|
|
|
988
1091
|
padding: var(--space-4);
|
|
989
1092
|
border-radius: var(--radius-lg);
|
|
990
1093
|
overflow-x: auto;
|
|
991
|
-
margin: var(--space-
|
|
1094
|
+
margin: var(--space-2) 0;
|
|
992
1095
|
}
|
|
993
1096
|
|
|
994
1097
|
/* Mermaid Full Screen Viewer */
|
|
995
1098
|
.mermaid-container {
|
|
996
1099
|
position: relative;
|
|
997
|
-
margin: var(--space-
|
|
1100
|
+
margin: var(--space-3) 0;
|
|
998
1101
|
border: 1px solid var(--color-border-default);
|
|
999
1102
|
border-radius: var(--radius-lg);
|
|
1000
1103
|
overflow: hidden;
|
|
@@ -1056,7 +1159,7 @@ tr:hover {
|
|
|
1056
1159
|
}
|
|
1057
1160
|
|
|
1058
1161
|
.mermaid-wrapper {
|
|
1059
|
-
padding: var(--space-
|
|
1162
|
+
padding: var(--space-3);
|
|
1060
1163
|
overflow: auto;
|
|
1061
1164
|
max-height: 600px;
|
|
1062
1165
|
}
|
|
@@ -1578,6 +1681,62 @@ tr:hover {
|
|
|
1578
1681
|
|
|
1579
1682
|
/* Remove custom positioning variables - tooltips always go right */
|
|
1580
1683
|
|
|
1684
|
+
/* Floating Menu Button */
|
|
1685
|
+
.floating-menu-toggle {
|
|
1686
|
+
position: fixed;
|
|
1687
|
+
bottom: var(--space-6);
|
|
1688
|
+
right: var(--space-6);
|
|
1689
|
+
width: 56px;
|
|
1690
|
+
height: 56px;
|
|
1691
|
+
border-radius: 50%;
|
|
1692
|
+
background: var(--color-accent-blue);
|
|
1693
|
+
color: white;
|
|
1694
|
+
border: none;
|
|
1695
|
+
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15), 0 2px 4px rgba(0, 0, 0, 0.1);
|
|
1696
|
+
display: flex;
|
|
1697
|
+
align-items: center;
|
|
1698
|
+
justify-content: center;
|
|
1699
|
+
font-size: 1.25rem;
|
|
1700
|
+
cursor: pointer;
|
|
1701
|
+
z-index: 1001; /* Above sidebar */
|
|
1702
|
+
opacity: 0;
|
|
1703
|
+
transform: scale(0.8) translateY(20px);
|
|
1704
|
+
transition: all var(--duration-normal) var(--easing-out);
|
|
1705
|
+
-webkit-tap-highlight-color: transparent;
|
|
1706
|
+
}
|
|
1707
|
+
|
|
1708
|
+
.floating-menu-toggle.visible {
|
|
1709
|
+
opacity: 1;
|
|
1710
|
+
transform: scale(1) translateY(0);
|
|
1711
|
+
}
|
|
1712
|
+
|
|
1713
|
+
.floating-menu-toggle:hover {
|
|
1714
|
+
transform: scale(1.1) translateY(0);
|
|
1715
|
+
box-shadow: 0 6px 16px rgba(0, 0, 0, 0.2), 0 3px 6px rgba(0, 0, 0, 0.15);
|
|
1716
|
+
}
|
|
1717
|
+
|
|
1718
|
+
.floating-menu-toggle:active {
|
|
1719
|
+
transform: scale(0.95) translateY(0);
|
|
1720
|
+
}
|
|
1721
|
+
|
|
1722
|
+
.floating-menu-toggle i {
|
|
1723
|
+
transition: transform var(--duration-fast) var(--easing-out);
|
|
1724
|
+
}
|
|
1725
|
+
|
|
1726
|
+
.floating-menu-toggle:hover i {
|
|
1727
|
+
transform: rotate(90deg);
|
|
1728
|
+
}
|
|
1729
|
+
|
|
1730
|
+
/* Dark mode styles for floating button */
|
|
1731
|
+
.dark-mode .floating-menu-toggle {
|
|
1732
|
+
background: var(--color-accent-blue);
|
|
1733
|
+
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3), 0 2px 4px rgba(0, 0, 0, 0.2);
|
|
1734
|
+
}
|
|
1735
|
+
|
|
1736
|
+
.dark-mode .floating-menu-toggle:hover {
|
|
1737
|
+
box-shadow: 0 6px 16px rgba(0, 0, 0, 0.4), 0 3px 6px rgba(0, 0, 0, 0.3);
|
|
1738
|
+
}
|
|
1739
|
+
|
|
1581
1740
|
/* Mobile adjustments */
|
|
1582
1741
|
@media (max-width: 768px) {
|
|
1583
1742
|
/* Disable tooltips on mobile to prevent overlap issues */
|
|
@@ -1596,7 +1755,7 @@ tr:hover {
|
|
|
1596
1755
|
/* Sidebar positioning handled in earlier media query */
|
|
1597
1756
|
|
|
1598
1757
|
.content {
|
|
1599
|
-
padding: var(--space-4);
|
|
1758
|
+
padding: var(--space-3) var(--space-4); /* Consistent reduced padding on mobile */
|
|
1600
1759
|
}
|
|
1601
1760
|
|
|
1602
1761
|
.content-inner {
|
|
@@ -1609,10 +1768,7 @@ tr:hover {
|
|
|
1609
1768
|
padding: 0 var(--space-4);
|
|
1610
1769
|
}
|
|
1611
1770
|
|
|
1612
|
-
|
|
1613
|
-
position: relative;
|
|
1614
|
-
top: 0;
|
|
1615
|
-
}
|
|
1771
|
+
/* Keep preview banner fixed on mobile */
|
|
1616
1772
|
|
|
1617
1773
|
/* Keep breadcrumbs fixed on mobile to prevent double spacing */
|
|
1618
1774
|
}
|
|
@@ -1827,4 +1983,229 @@ tr:hover {
|
|
|
1827
1983
|
background: #451a1a;
|
|
1828
1984
|
border-color: #7f1d1d;
|
|
1829
1985
|
color: #fca5a5;
|
|
1986
|
+
}
|
|
1987
|
+
|
|
1988
|
+
/* Phosphor Icons Alignment */
|
|
1989
|
+
.ph {
|
|
1990
|
+
display: inline-block;
|
|
1991
|
+
vertical-align: middle;
|
|
1992
|
+
line-height: 1;
|
|
1993
|
+
position: relative;
|
|
1994
|
+
top: -0.05em; /* Slight upward adjustment for better baseline alignment */
|
|
1995
|
+
}
|
|
1996
|
+
|
|
1997
|
+
/* Ensure icons in headings are properly aligned */
|
|
1998
|
+
h1 .ph, h2 .ph, h3 .ph, h4 .ph, h5 .ph, h6 .ph {
|
|
1999
|
+
font-size: 0.85em; /* Slightly smaller in headings */
|
|
2000
|
+
line-height: 1;
|
|
2001
|
+
top: -0.05em;
|
|
2002
|
+
}
|
|
2003
|
+
|
|
2004
|
+
/* Icons in lists need special handling */
|
|
2005
|
+
li .ph {
|
|
2006
|
+
margin-right: 0.3em;
|
|
2007
|
+
font-size: 1.1em;
|
|
2008
|
+
line-height: 1;
|
|
2009
|
+
vertical-align: middle;
|
|
2010
|
+
top: -0.05em;
|
|
2011
|
+
}
|
|
2012
|
+
|
|
2013
|
+
/* Icons in tables */
|
|
2014
|
+
td .ph, th .ph {
|
|
2015
|
+
line-height: 1;
|
|
2016
|
+
vertical-align: middle;
|
|
2017
|
+
top: -0.05em;
|
|
2018
|
+
}
|
|
2019
|
+
|
|
2020
|
+
/* Icons in navigation */
|
|
2021
|
+
.nav-item .ph,
|
|
2022
|
+
.nav-title .ph {
|
|
2023
|
+
vertical-align: middle;
|
|
2024
|
+
line-height: 1;
|
|
2025
|
+
top: 0; /* Navigation items are flex, so no adjustment needed */
|
|
2026
|
+
}
|
|
2027
|
+
|
|
2028
|
+
/* Icon size adjustments for better visual balance */
|
|
2029
|
+
.content p .ph {
|
|
2030
|
+
font-size: 1.1em; /* Slightly larger than text for visual balance */
|
|
2031
|
+
}
|
|
2032
|
+
|
|
2033
|
+
/* Special handling for inline code with icons */
|
|
2034
|
+
code .ph {
|
|
2035
|
+
font-size: 0.9em;
|
|
2036
|
+
vertical-align: middle;
|
|
2037
|
+
line-height: 1;
|
|
2038
|
+
top: 0;
|
|
2039
|
+
}
|
|
2040
|
+
|
|
2041
|
+
/* Additional fine-tuning for specific contexts */
|
|
2042
|
+
.content-inner .ph {
|
|
2043
|
+
/* Remove the transform as we're now using consistent vertical-align: middle */
|
|
2044
|
+
}
|
|
2045
|
+
|
|
2046
|
+
/* ============================================================================
|
|
2047
|
+
Private Navigation Visibility
|
|
2048
|
+
============================================================================ */
|
|
2049
|
+
|
|
2050
|
+
/* Hide private navigation sections by default */
|
|
2051
|
+
.private-nav {
|
|
2052
|
+
display: none;
|
|
2053
|
+
}
|
|
2054
|
+
|
|
2055
|
+
/* Show private navigation when user is authenticated */
|
|
2056
|
+
body.authenticated .private-nav {
|
|
2057
|
+
display: block;
|
|
2058
|
+
}
|
|
2059
|
+
|
|
2060
|
+
/* Smooth transition for authentication state changes */
|
|
2061
|
+
.nav-section {
|
|
2062
|
+
transition: opacity 0.2s ease-in-out;
|
|
2063
|
+
}
|
|
2064
|
+
|
|
2065
|
+
/* Optional: Add a lock icon to private sections */
|
|
2066
|
+
.private-nav .nav-title::after {
|
|
2067
|
+
content: ' 🔒';
|
|
2068
|
+
font-size: 0.8em;
|
|
2069
|
+
}
|
|
2070
|
+
|
|
2071
|
+
/* ============================================================================
|
|
2072
|
+
Image Modal System
|
|
2073
|
+
============================================================================ */
|
|
2074
|
+
|
|
2075
|
+
/* Style all content images to be clickable */
|
|
2076
|
+
.content img {
|
|
2077
|
+
cursor: pointer;
|
|
2078
|
+
transition: all var(--duration-normal) var(--easing-out);
|
|
2079
|
+
border-radius: var(--radius-md);
|
|
2080
|
+
max-width: 100%;
|
|
2081
|
+
height: auto;
|
|
2082
|
+
}
|
|
2083
|
+
|
|
2084
|
+
.content img:hover {
|
|
2085
|
+
opacity: 0.9;
|
|
2086
|
+
transform: scale(1.02);
|
|
2087
|
+
box-shadow: var(--shadow-lg);
|
|
2088
|
+
}
|
|
2089
|
+
|
|
2090
|
+
/* Modal overlay - hidden by default */
|
|
2091
|
+
.image-modal {
|
|
2092
|
+
display: none;
|
|
2093
|
+
position: fixed;
|
|
2094
|
+
top: 0;
|
|
2095
|
+
left: 0;
|
|
2096
|
+
width: 100%;
|
|
2097
|
+
height: 100%;
|
|
2098
|
+
background: rgba(0, 0, 0, 0.9);
|
|
2099
|
+
z-index: 10000;
|
|
2100
|
+
cursor: pointer;
|
|
2101
|
+
opacity: 0;
|
|
2102
|
+
transition: opacity var(--duration-normal) var(--easing-out);
|
|
2103
|
+
}
|
|
2104
|
+
|
|
2105
|
+
/* Show modal when active */
|
|
2106
|
+
.image-modal.active {
|
|
2107
|
+
display: flex;
|
|
2108
|
+
align-items: center;
|
|
2109
|
+
justify-content: center;
|
|
2110
|
+
opacity: 1;
|
|
2111
|
+
}
|
|
2112
|
+
|
|
2113
|
+
/* Modal content container */
|
|
2114
|
+
.image-modal-content {
|
|
2115
|
+
position: relative;
|
|
2116
|
+
max-width: 95%;
|
|
2117
|
+
max-height: 95%;
|
|
2118
|
+
margin: auto;
|
|
2119
|
+
cursor: default;
|
|
2120
|
+
}
|
|
2121
|
+
|
|
2122
|
+
/* Modal image */
|
|
2123
|
+
.image-modal-img {
|
|
2124
|
+
width: auto;
|
|
2125
|
+
height: auto;
|
|
2126
|
+
max-width: 100%;
|
|
2127
|
+
max-height: 100vh;
|
|
2128
|
+
border-radius: var(--radius-lg);
|
|
2129
|
+
box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5);
|
|
2130
|
+
cursor: default;
|
|
2131
|
+
}
|
|
2132
|
+
|
|
2133
|
+
/* Close button */
|
|
2134
|
+
.image-modal-close {
|
|
2135
|
+
position: absolute;
|
|
2136
|
+
top: -50px;
|
|
2137
|
+
right: 0;
|
|
2138
|
+
background: rgba(255, 255, 255, 0.1);
|
|
2139
|
+
border: 2px solid rgba(255, 255, 255, 0.3);
|
|
2140
|
+
color: white;
|
|
2141
|
+
width: 40px;
|
|
2142
|
+
height: 40px;
|
|
2143
|
+
border-radius: 50%;
|
|
2144
|
+
cursor: pointer;
|
|
2145
|
+
display: flex;
|
|
2146
|
+
align-items: center;
|
|
2147
|
+
justify-content: center;
|
|
2148
|
+
font-size: 20px;
|
|
2149
|
+
font-weight: bold;
|
|
2150
|
+
transition: all var(--duration-fast) var(--easing-out);
|
|
2151
|
+
backdrop-filter: blur(10px);
|
|
2152
|
+
}
|
|
2153
|
+
|
|
2154
|
+
.image-modal-close:hover {
|
|
2155
|
+
background: rgba(255, 255, 255, 0.2);
|
|
2156
|
+
border-color: rgba(255, 255, 255, 0.5);
|
|
2157
|
+
transform: scale(1.1);
|
|
2158
|
+
}
|
|
2159
|
+
|
|
2160
|
+
/* Image caption in modal */
|
|
2161
|
+
.image-modal-caption {
|
|
2162
|
+
position: absolute;
|
|
2163
|
+
bottom: -50px;
|
|
2164
|
+
left: 0;
|
|
2165
|
+
right: 0;
|
|
2166
|
+
background: rgba(0, 0, 0, 0.7);
|
|
2167
|
+
color: white;
|
|
2168
|
+
padding: var(--space-3) var(--space-4);
|
|
2169
|
+
border-radius: var(--radius-md);
|
|
2170
|
+
font-size: var(--text-sm);
|
|
2171
|
+
text-align: center;
|
|
2172
|
+
backdrop-filter: blur(10px);
|
|
2173
|
+
}
|
|
2174
|
+
|
|
2175
|
+
/* Dark theme adjustments */
|
|
2176
|
+
[data-theme="dark"] .image-modal {
|
|
2177
|
+
background: rgba(0, 0, 0, 0.95);
|
|
2178
|
+
}
|
|
2179
|
+
|
|
2180
|
+
[data-theme="dark"] .image-modal-close {
|
|
2181
|
+
background: rgba(255, 255, 255, 0.15);
|
|
2182
|
+
border-color: rgba(255, 255, 255, 0.4);
|
|
2183
|
+
}
|
|
2184
|
+
|
|
2185
|
+
[data-theme="dark"] .image-modal-close:hover {
|
|
2186
|
+
background: rgba(255, 255, 255, 0.25);
|
|
2187
|
+
border-color: rgba(255, 255, 255, 0.6);
|
|
2188
|
+
}
|
|
2189
|
+
|
|
2190
|
+
/* Mobile responsive adjustments */
|
|
2191
|
+
@media (max-width: 768px) {
|
|
2192
|
+
.image-modal-content {
|
|
2193
|
+
max-width: 98%;
|
|
2194
|
+
max-height: 98%;
|
|
2195
|
+
}
|
|
2196
|
+
|
|
2197
|
+
.image-modal-close {
|
|
2198
|
+
top: -40px;
|
|
2199
|
+
width: 35px;
|
|
2200
|
+
height: 35px;
|
|
2201
|
+
font-size: 18px;
|
|
2202
|
+
}
|
|
2203
|
+
|
|
2204
|
+
.image-modal-caption {
|
|
2205
|
+
bottom: -40px;
|
|
2206
|
+
font-size: var(--text-xs);
|
|
2207
|
+
padding: var(--space-2) var(--space-3);
|
|
2208
|
+
}
|
|
2209
|
+
}
|
|
2210
|
+
opacity: 0.6;
|
|
1830
2211
|
}
|