@netfoundry/docusaurus-theme 0.1.7 → 0.1.9

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/css/legacy.css CHANGED
@@ -86,8 +86,6 @@
86
86
  --ziti-code-block-border-color: rgb(197, 199, 201);
87
87
  --ziti-code-block-font-color: rgb(57, 58, 52);
88
88
  --ifm-code-padding-horizontal: 7px;
89
- --nf-tab-color: 222, 222, 222;
90
- --nf-tab-color-rgb: rgb(var(--nf-tab-color));
91
89
  }
92
90
  @media (max-height: 1024px) {
93
91
  /*for smaller screens, reduce space definitions*/
@@ -140,7 +138,6 @@ html[data-theme="dark"] {
140
138
  --ziti-code-block-background-color: rgb(33, 47, 77);
141
139
  --ziti-code-block-border-color: rgb(33, 47, 77);
142
140
  --ziti-code-block-font-color: rgb(148, 163, 184);
143
- --nf-tab-color: 67, 72, 98;
144
141
  }
145
142
 
146
143
  html[data-theme=dark] #Wizardly code {
@@ -1994,59 +1991,21 @@ li a code {
1994
1991
  color: rgba(117, 82, 136, 0.98);
1995
1992
  }
1996
1993
 
1997
- .tabItem_node_modules {
1998
- background-color: rgba(117, 82, 136, 0.2) !important;
1999
- border: 1px solid rgba(117, 82, 136, 0.98);
2000
- color: rgba(117, 82, 136, 0.98);
2001
-
2002
- }
2003
-
2004
- [class*="tabItem_"] {
2005
- background-color: rgb(142,142,142, .2);
2006
- position: relative;
2007
- padding: 5px 10px;
2008
- border-radius: 7px;
2009
- }
2010
- [class*="tabItem_"][role="tabpanel"] {
2011
- background-color: var(--nf-tab-color-rgb);
2012
- padding: 1em 0.5em;
2013
- }
2014
-
2015
-
2016
- .tabs__item:hover {
2017
- background-color: rgba(var(--nf-tab-color), 0.5);
2018
- }
2019
-
2020
- .tabs__item {
2021
- background-color: rgba(225,225,225, 0.3);
2022
- border-bottom-left-radius: 0;
2023
- border-bottom-right-radius: 0;
2024
- margin-right: 10px;
2025
- pointer-events: all;
2026
- }
2027
-
2028
- [hidden] {
2029
- display: none !important;
2030
- }
2031
-
2032
- .tabs {
2033
- padding-left: 10px;
2034
- }
2035
-
2036
- .tabs__item.tabs__item--active {
2037
- background-color: var(--nf-tab-color-rgb);
2038
- border-bottom-width: 0;
2039
- pointer-events: none;
2040
- }
1994
+ /* ==========================================================================
1995
+ TABS - Default minimal styling
1996
+ For custom tab styles, import one of:
1997
+ - tabs-v1-gradient.css (Gradient pills)
1998
+ - tabs-v2-glass.css (Glassmorphism)
1999
+ - tabs-v3-minimal.css (Apple-style minimal)
2000
+ - tabs-v4-segmented.css (iOS segmented control)
2001
+ =============== =========================================================== */
2041
2002
 
2042
2003
  .margin-top--md {
2043
2004
  margin-top: 0 !important;
2044
2005
  }
2045
2006
 
2046
- @layer docusaurus.infima {
2047
- .margin-top--md {
2048
- margin-top: 0 !important;
2049
- }
2007
+ [hidden] {
2008
+ display: none !important;
2050
2009
  }
2051
2010
 
2052
2011
  #Wizardly div {
@@ -2351,3 +2310,13 @@ aside nav {
2351
2310
  margin-bottom: 70px; /* with the hide menu button on small screens, it obscures the last menu item without this */
2352
2311
  }
2353
2312
  }
2313
+
2314
+ /*
2315
+ starting with docusaurus 3.8 they have implemented css layers. these layers need to be
2316
+ overridden here to ensure styles are applied properly
2317
+ */
2318
+ @layer docusaurus.infima {
2319
+ .margin-top--md {
2320
+ margin-top: 0 !important;
2321
+ }
2322
+ }
@@ -0,0 +1,92 @@
1
+ /* ==========================================================================
2
+ TABS V1 - Gradient Pills
3
+ Floating pill tabs with gradient container, no underline
4
+ ========================================================================== */
5
+
6
+ :root {
7
+ --nf-tabs-bg: linear-gradient(135deg, #f8fafc 0%, #e2e8f0 100%);
8
+ --nf-tabs-border: rgba(0, 0, 0, 0.06);
9
+ --nf-tab-bg: rgba(255, 255, 255, 0.5);
10
+ --nf-tab-bg-hover: rgba(255, 255, 255, 0.8);
11
+ --nf-tab-bg-active: #ffffff;
12
+ --nf-tab-text: #64748b;
13
+ --nf-tab-text-hover: #334155;
14
+ --nf-tab-text-active: #0068f9;
15
+ --nf-tab-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
16
+ --nf-tab-shadow-active: 0 4px 12px -2px rgba(0, 104, 249, 0.25), 0 2px 4px rgba(0, 0, 0, 0.05);
17
+ --nf-tab-panel-bg: #ffffff;
18
+ --nf-tab-panel-border: rgba(0, 0, 0, 0.06);
19
+ --nf-tab-panel-shadow: 0 4px 24px -4px rgba(0, 0, 0, 0.1);
20
+ }
21
+
22
+ html[data-theme="dark"] {
23
+ --nf-tabs-bg: linear-gradient(135deg, #1e293b 0%, #0f172a 100%);
24
+ --nf-tabs-border: rgba(255, 255, 255, 0.06);
25
+ --nf-tab-bg: rgba(255, 255, 255, 0.03);
26
+ --nf-tab-bg-hover: rgba(255, 255, 255, 0.08);
27
+ --nf-tab-bg-active: rgba(21, 142, 237, 0.2);
28
+ --nf-tab-text: #94a3b8;
29
+ --nf-tab-text-hover: #cbd5e1;
30
+ --nf-tab-text-active: #38bdf8;
31
+ --nf-tab-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
32
+ --nf-tab-shadow-active: 0 4px 12px -2px rgba(21, 142, 237, 0.3), 0 0 0 1px rgba(56, 189, 248, 0.2);
33
+ --nf-tab-panel-bg: rgba(30, 41, 59, 0.8);
34
+ --nf-tab-panel-border: rgba(255, 255, 255, 0.06);
35
+ --nf-tab-panel-shadow: 0 4px 24px -4px rgba(0, 0, 0, 0.4);
36
+ }
37
+
38
+ .tabs {
39
+ display: flex;
40
+ flex-wrap: wrap;
41
+ gap: 8px;
42
+ padding: 8px;
43
+ margin-bottom: 0;
44
+ background: var(--nf-tabs-bg);
45
+ border-radius: 16px 16px 0 0;
46
+ border: 1px solid var(--nf-tabs-border);
47
+ border-bottom: none;
48
+ }
49
+
50
+ .tabs__item {
51
+ padding: 10px 20px;
52
+ font-size: 0.875rem;
53
+ font-weight: 500;
54
+ color: var(--nf-tab-text);
55
+ background: var(--nf-tab-bg);
56
+ border: none;
57
+ border-radius: 10px;
58
+ cursor: pointer;
59
+ transition: all 0.2s ease;
60
+ box-shadow: var(--nf-tab-shadow);
61
+ }
62
+
63
+ .tabs__item:hover {
64
+ color: var(--nf-tab-text-hover);
65
+ background: var(--nf-tab-bg-hover);
66
+ transform: translateY(-1px);
67
+ }
68
+
69
+ .tabs__item.tabs__item--active {
70
+ color: var(--nf-tab-text-active);
71
+ background: var(--nf-tab-bg-active);
72
+ font-weight: 600;
73
+ box-shadow: var(--nf-tab-shadow-active);
74
+ transform: translateY(-2px);
75
+ }
76
+
77
+ [class*="tabItem_"][role="tabpanel"] {
78
+ background: var(--nf-tab-panel-bg);
79
+ border: 1px solid var(--nf-tab-panel-border);
80
+ border-radius: 0 0 16px 16px;
81
+ padding: 1.5rem;
82
+ box-shadow: var(--nf-tab-panel-shadow);
83
+ animation: fadeSlideIn 0.25s ease-out;
84
+ }
85
+
86
+ @keyframes fadeSlideIn {
87
+ from { opacity: 0; transform: translateY(-8px); }
88
+ to { opacity: 1; transform: translateY(0); }
89
+ }
90
+
91
+ .margin-top--md { margin-top: 0 !important; }
92
+ [hidden] { display: none !important; }
@@ -0,0 +1,116 @@
1
+ /* ==========================================================================
2
+ TABS V2 - Glassmorphism
3
+ Frosted glass effect with blur, floating aesthetic
4
+ ========================================================================== */
5
+
6
+ :root {
7
+ --nf-tabs-bg: rgba(255, 255, 255, 0.7);
8
+ --nf-tabs-blur: 12px;
9
+ --nf-tabs-border: rgba(255, 255, 255, 0.3);
10
+ --nf-tab-bg: transparent;
11
+ --nf-tab-bg-hover: rgba(0, 104, 249, 0.08);
12
+ --nf-tab-bg-active: rgba(0, 104, 249, 0.12);
13
+ --nf-tab-text: #475569;
14
+ --nf-tab-text-hover: #0068f9;
15
+ --nf-tab-text-active: #0068f9;
16
+ --nf-tab-glow: 0 0 20px rgba(0, 104, 249, 0.15);
17
+ --nf-tab-panel-bg: rgba(255, 255, 255, 0.85);
18
+ --nf-tab-panel-blur: 16px;
19
+ --nf-tab-panel-border: rgba(255, 255, 255, 0.4);
20
+ --nf-tab-panel-shadow: 0 8px 32px rgba(0, 0, 0, 0.08);
21
+ }
22
+
23
+ html[data-theme="dark"] {
24
+ --nf-tabs-bg: rgba(15, 23, 42, 0.75);
25
+ --nf-tabs-blur: 12px;
26
+ --nf-tabs-border: rgba(255, 255, 255, 0.08);
27
+ --nf-tab-bg: transparent;
28
+ --nf-tab-bg-hover: rgba(56, 189, 248, 0.1);
29
+ --nf-tab-bg-active: rgba(56, 189, 248, 0.15);
30
+ --nf-tab-text: #94a3b8;
31
+ --nf-tab-text-hover: #38bdf8;
32
+ --nf-tab-text-active: #38bdf8;
33
+ --nf-tab-glow: 0 0 30px rgba(56, 189, 248, 0.2);
34
+ --nf-tab-panel-bg: rgba(15, 23, 42, 0.8);
35
+ --nf-tab-panel-blur: 16px;
36
+ --nf-tab-panel-border: rgba(255, 255, 255, 0.06);
37
+ --nf-tab-panel-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
38
+ }
39
+
40
+ .tabs {
41
+ display: flex;
42
+ flex-wrap: wrap;
43
+ gap: 4px;
44
+ padding: 6px;
45
+ margin-bottom: 0;
46
+ background: var(--nf-tabs-bg);
47
+ backdrop-filter: blur(var(--nf-tabs-blur));
48
+ -webkit-backdrop-filter: blur(var(--nf-tabs-blur));
49
+ border-radius: 14px 14px 0 0;
50
+ border: 1px solid var(--nf-tabs-border);
51
+ border-bottom: none;
52
+ }
53
+
54
+ .tabs__item {
55
+ position: relative;
56
+ padding: 12px 24px;
57
+ font-size: 0.875rem;
58
+ font-weight: 500;
59
+ letter-spacing: 0.01em;
60
+ color: var(--nf-tab-text);
61
+ background: var(--nf-tab-bg);
62
+ border: none;
63
+ border-radius: 10px;
64
+ cursor: pointer;
65
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
66
+ }
67
+
68
+ .tabs__item:hover {
69
+ color: var(--nf-tab-text-hover);
70
+ background: var(--nf-tab-bg-hover);
71
+ }
72
+
73
+ .tabs__item.tabs__item--active {
74
+ color: var(--nf-tab-text-active);
75
+ background: var(--nf-tab-bg-active);
76
+ font-weight: 600;
77
+ box-shadow: var(--nf-tab-glow);
78
+ }
79
+
80
+ /* Subtle dot indicator for active tab */
81
+ .tabs__item.tabs__item--active::before {
82
+ content: '';
83
+ position: absolute;
84
+ top: 6px;
85
+ right: 6px;
86
+ width: 6px;
87
+ height: 6px;
88
+ background: currentColor;
89
+ border-radius: 50%;
90
+ opacity: 0.8;
91
+ animation: pulse 2s infinite;
92
+ }
93
+
94
+ @keyframes pulse {
95
+ 0%, 100% { transform: scale(1); opacity: 0.8; }
96
+ 50% { transform: scale(1.2); opacity: 0.5; }
97
+ }
98
+
99
+ [class*="tabItem_"][role="tabpanel"] {
100
+ background: var(--nf-tab-panel-bg);
101
+ backdrop-filter: blur(var(--nf-tab-panel-blur));
102
+ -webkit-backdrop-filter: blur(var(--nf-tab-panel-blur));
103
+ border: 1px solid var(--nf-tab-panel-border);
104
+ border-radius: 0 0 14px 14px;
105
+ padding: 1.75rem;
106
+ box-shadow: var(--nf-tab-panel-shadow);
107
+ animation: glassReveal 0.35s ease-out;
108
+ }
109
+
110
+ @keyframes glassReveal {
111
+ from { opacity: 0; transform: scale(0.98); }
112
+ to { opacity: 1; transform: scale(1); }
113
+ }
114
+
115
+ .margin-top--md { margin-top: 0 !important; }
116
+ [hidden] { display: none !important; }
@@ -0,0 +1,86 @@
1
+ /* ==========================================================================
2
+ TABS V3 - Minimal / Apple-style
3
+ Ultra clean, typography-focused, subtle and refined
4
+ ========================================================================== */
5
+
6
+ :root {
7
+ --nf-tab-text: #86868b;
8
+ --nf-tab-text-hover: #1d1d1f;
9
+ --nf-tab-text-active: #1d1d1f;
10
+ --nf-tab-border: #d2d2d7;
11
+ --nf-tab-panel-bg: #fafafa;
12
+ --nf-tab-panel-border: #e5e5e5;
13
+ }
14
+
15
+ html[data-theme="dark"] {
16
+ --nf-tab-text: #86868b;
17
+ --nf-tab-text-hover: #f5f5f7;
18
+ --nf-tab-text-active: #f5f5f7;
19
+ --nf-tab-border: #424245;
20
+ --nf-tab-panel-bg: rgba(28, 28, 30, 0.6);
21
+ --nf-tab-panel-border: #38383a;
22
+ }
23
+
24
+ .tabs {
25
+ display: flex;
26
+ flex-wrap: wrap;
27
+ gap: 0;
28
+ padding: 0;
29
+ margin-bottom: 0;
30
+ background: transparent;
31
+ border: none;
32
+ border-bottom: 1px solid var(--nf-tab-border);
33
+ }
34
+
35
+ .tabs__item {
36
+ position: relative;
37
+ padding: 12px 20px;
38
+ font-size: 0.9375rem;
39
+ font-weight: 400;
40
+ color: var(--nf-tab-text);
41
+ background: transparent;
42
+ border: none;
43
+ border-radius: 0;
44
+ cursor: pointer;
45
+ transition: color 0.2s ease;
46
+ }
47
+
48
+ .tabs__item:hover {
49
+ color: var(--nf-tab-text-hover);
50
+ background: transparent;
51
+ }
52
+
53
+ .tabs__item.tabs__item--active {
54
+ color: var(--nf-tab-text-active);
55
+ font-weight: 600;
56
+ background: transparent;
57
+ }
58
+
59
+ /* Clean bottom highlight bar */
60
+ .tabs__item.tabs__item--active::after {
61
+ content: '';
62
+ position: absolute;
63
+ bottom: -1px;
64
+ left: 0;
65
+ right: 0;
66
+ height: 2px;
67
+ background: var(--nf-tab-text-active);
68
+ border-radius: 2px 2px 0 0;
69
+ }
70
+
71
+ [class*="tabItem_"][role="tabpanel"] {
72
+ background: var(--nf-tab-panel-bg);
73
+ border: 1px solid var(--nf-tab-panel-border);
74
+ border-top: none;
75
+ border-radius: 0 0 8px 8px;
76
+ padding: 1.5rem;
77
+ animation: minimalFade 0.2s ease;
78
+ }
79
+
80
+ @keyframes minimalFade {
81
+ from { opacity: 0; }
82
+ to { opacity: 1; }
83
+ }
84
+
85
+ .margin-top--md { margin-top: 0 !important; }
86
+ [hidden] { display: none !important; }
@@ -0,0 +1,85 @@
1
+ /* ==========================================================================
2
+ TABS V4 - Segmented Control
3
+ iOS-style segmented control with sliding background
4
+ ========================================================================== */
5
+
6
+ :root {
7
+ --nf-tabs-bg: #e5e5ea;
8
+ --nf-tab-text: #3a3a3c;
9
+ --nf-tab-text-active: #000000;
10
+ --nf-tab-slider-bg: #ffffff;
11
+ --nf-tab-slider-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.08);
12
+ --nf-tab-panel-bg: #ffffff;
13
+ --nf-tab-panel-border: #e5e5ea;
14
+ --nf-tab-panel-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
15
+ }
16
+
17
+ html[data-theme="dark"] {
18
+ --nf-tabs-bg: #2c2c2e;
19
+ --nf-tab-text: #98989d;
20
+ --nf-tab-text-active: #ffffff;
21
+ --nf-tab-slider-bg: #636366;
22
+ --nf-tab-slider-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
23
+ --nf-tab-panel-bg: #1c1c1e;
24
+ --nf-tab-panel-border: #38383a;
25
+ --nf-tab-panel-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
26
+ }
27
+
28
+ .tabs {
29
+ display: inline-flex;
30
+ flex-wrap: wrap;
31
+ gap: 0;
32
+ padding: 3px;
33
+ margin-bottom: 0;
34
+ background: var(--nf-tabs-bg);
35
+ border-radius: 10px;
36
+ border: none;
37
+ position: relative;
38
+ }
39
+
40
+ .tabs__item {
41
+ position: relative;
42
+ padding: 8px 16px;
43
+ font-size: 0.8125rem;
44
+ font-weight: 500;
45
+ color: var(--nf-tab-text);
46
+ background: transparent;
47
+ border: none;
48
+ border-radius: 8px;
49
+ cursor: pointer;
50
+ transition: color 0.2s ease;
51
+ z-index: 1;
52
+ min-width: 80px;
53
+ text-align: center;
54
+ }
55
+
56
+ .tabs__item:hover {
57
+ color: var(--nf-tab-text-active);
58
+ background: transparent;
59
+ }
60
+
61
+ .tabs__item.tabs__item--active {
62
+ color: var(--nf-tab-text-active);
63
+ font-weight: 600;
64
+ background: var(--nf-tab-slider-bg);
65
+ box-shadow: var(--nf-tab-slider-shadow);
66
+ transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
67
+ }
68
+
69
+ [class*="tabItem_"][role="tabpanel"] {
70
+ background: var(--nf-tab-panel-bg);
71
+ border: 1px solid var(--nf-tab-panel-border);
72
+ border-radius: 12px;
73
+ padding: 1.5rem;
74
+ margin-top: 12px;
75
+ box-shadow: var(--nf-tab-panel-shadow);
76
+ animation: segmentSlide 0.25s ease-out;
77
+ }
78
+
79
+ @keyframes segmentSlide {
80
+ from { opacity: 0; transform: translateX(-8px); }
81
+ to { opacity: 1; transform: translateX(0); }
82
+ }
83
+
84
+ .margin-top--md { margin-top: 0 !important; }
85
+ [hidden] { display: none !important; }
@@ -0,0 +1,99 @@
1
+ /* ==========================================================================
2
+ TABS V5 - Neon Cyberpunk
3
+ Glowing edges, electric colors, dark-first aesthetic
4
+ ========================================================================== */
5
+
6
+ :root {
7
+ --nf-tabs-bg: #0a0a0f;
8
+ --nf-tab-text: #6b7280;
9
+ --nf-tab-text-hover: #a78bfa;
10
+ --nf-tab-text-active: #f0abfc;
11
+ --nf-tab-glow: #c084fc;
12
+ --nf-tab-glow-secondary: #22d3ee;
13
+ --nf-tab-panel-bg: linear-gradient(145deg, #0f0f18 0%, #0a0a0f 100%);
14
+ --nf-tab-panel-border: rgba(192, 132, 252, 0.2);
15
+ }
16
+
17
+ html[data-theme="dark"] {
18
+ --nf-tabs-bg: #0a0a0f;
19
+ --nf-tab-text: #6b7280;
20
+ --nf-tab-text-hover: #a78bfa;
21
+ --nf-tab-text-active: #f0abfc;
22
+ --nf-tab-glow: #c084fc;
23
+ --nf-tab-glow-secondary: #22d3ee;
24
+ --nf-tab-panel-bg: linear-gradient(145deg, #0f0f18 0%, #0a0a0f 100%);
25
+ --nf-tab-panel-border: rgba(192, 132, 252, 0.2);
26
+ }
27
+
28
+ html:not([data-theme="dark"]) {
29
+ --nf-tabs-bg: #fafafa;
30
+ --nf-tab-text: #71717a;
31
+ --nf-tab-text-hover: #7c3aed;
32
+ --nf-tab-text-active: #9333ea;
33
+ --nf-tab-glow: #a855f7;
34
+ --nf-tab-glow-secondary: #06b6d4;
35
+ --nf-tab-panel-bg: linear-gradient(145deg, #ffffff 0%, #f4f4f5 100%);
36
+ --nf-tab-panel-border: rgba(168, 85, 247, 0.25);
37
+ }
38
+
39
+ .tabs {
40
+ display: flex;
41
+ flex-wrap: wrap;
42
+ gap: 6px;
43
+ padding: 10px 12px;
44
+ background: var(--nf-tabs-bg);
45
+ border-radius: 4px 4px 0 0;
46
+ border: 1px solid rgba(128, 128, 128, 0.15);
47
+ border-bottom: none;
48
+ }
49
+
50
+ .tabs__item {
51
+ position: relative;
52
+ padding: 10px 22px;
53
+ font-size: 0.85rem;
54
+ font-weight: 500;
55
+ letter-spacing: 0.05em;
56
+ text-transform: uppercase;
57
+ color: var(--nf-tab-text);
58
+ background: transparent;
59
+ border: 1px solid transparent;
60
+ border-radius: 4px;
61
+ cursor: pointer;
62
+ transition: all 0.2s ease;
63
+ }
64
+
65
+ .tabs__item:hover {
66
+ color: var(--nf-tab-text-hover);
67
+ border-color: rgba(128, 128, 128, 0.3);
68
+ text-shadow: 0 0 12px var(--nf-tab-glow);
69
+ }
70
+
71
+ .tabs__item.tabs__item--active {
72
+ color: var(--nf-tab-text-active);
73
+ border-color: var(--nf-tab-glow);
74
+ background: rgba(192, 132, 252, 0.08);
75
+ box-shadow:
76
+ 0 0 10px rgba(192, 132, 252, 0.3),
77
+ 0 0 20px rgba(192, 132, 252, 0.15),
78
+ inset 0 0 15px rgba(192, 132, 252, 0.05);
79
+ text-shadow: 0 0 20px var(--nf-tab-glow);
80
+ }
81
+
82
+ [class*="tabItem_"][role="tabpanel"] {
83
+ background: var(--nf-tab-panel-bg);
84
+ border: 1px solid var(--nf-tab-panel-border);
85
+ border-radius: 0 0 4px 4px;
86
+ padding: 1.5rem;
87
+ box-shadow:
88
+ 0 4px 20px rgba(0, 0, 0, 0.2),
89
+ inset 0 1px 0 rgba(255, 255, 255, 0.03);
90
+ animation: neonFade 0.3s ease;
91
+ }
92
+
93
+ @keyframes neonFade {
94
+ from { opacity: 0; filter: brightness(1.5); }
95
+ to { opacity: 1; filter: brightness(1); }
96
+ }
97
+
98
+ .margin-top--md { margin-top: 0 !important; }
99
+ [hidden] { display: none !important; }
@@ -0,0 +1,89 @@
1
+ /* ==========================================================================
2
+ TABS V6 - Neumorphism
3
+ Soft UI with embossed/debossed shadows, tactile feel
4
+ ========================================================================== */
5
+
6
+ :root {
7
+ --nf-neu-bg: #e4e8ec;
8
+ --nf-neu-shadow-dark: #c8ccd0;
9
+ --nf-neu-shadow-light: #ffffff;
10
+ --nf-tab-text: #6b7280;
11
+ --nf-tab-text-active: #374151;
12
+ --nf-tab-accent: #3b82f6;
13
+ --nf-tab-panel-bg: #e4e8ec;
14
+ }
15
+
16
+ html[data-theme="dark"] {
17
+ --nf-neu-bg: #2a2d35;
18
+ --nf-neu-shadow-dark: #1e2028;
19
+ --nf-neu-shadow-light: #363942;
20
+ --nf-tab-text: #9ca3af;
21
+ --nf-tab-text-active: #e5e7eb;
22
+ --nf-tab-accent: #60a5fa;
23
+ --nf-tab-panel-bg: #2a2d35;
24
+ }
25
+
26
+ .tabs {
27
+ display: flex;
28
+ flex-wrap: wrap;
29
+ gap: 12px;
30
+ padding: 16px;
31
+ background: var(--nf-neu-bg);
32
+ border-radius: 20px 20px 0 0;
33
+ border: none;
34
+ box-shadow:
35
+ inset 4px 4px 8px var(--nf-neu-shadow-dark),
36
+ inset -4px -4px 8px var(--nf-neu-shadow-light);
37
+ }
38
+
39
+ .tabs__item {
40
+ padding: 12px 24px;
41
+ font-size: 0.875rem;
42
+ font-weight: 500;
43
+ color: var(--nf-tab-text);
44
+ background: var(--nf-neu-bg);
45
+ border: none;
46
+ border-radius: 12px;
47
+ cursor: pointer;
48
+ transition: all 0.2s ease;
49
+ box-shadow:
50
+ 4px 4px 8px var(--nf-neu-shadow-dark),
51
+ -4px -4px 8px var(--nf-neu-shadow-light);
52
+ }
53
+
54
+ .tabs__item:hover {
55
+ color: var(--nf-tab-accent);
56
+ }
57
+
58
+ .tabs__item:active {
59
+ box-shadow:
60
+ inset 3px 3px 6px var(--nf-neu-shadow-dark),
61
+ inset -3px -3px 6px var(--nf-neu-shadow-light);
62
+ }
63
+
64
+ .tabs__item.tabs__item--active {
65
+ color: var(--nf-tab-accent);
66
+ font-weight: 600;
67
+ box-shadow:
68
+ inset 4px 4px 8px var(--nf-neu-shadow-dark),
69
+ inset -4px -4px 8px var(--nf-neu-shadow-light);
70
+ }
71
+
72
+ [class*="tabItem_"][role="tabpanel"] {
73
+ background: var(--nf-tab-panel-bg);
74
+ border: none;
75
+ border-radius: 0 0 20px 20px;
76
+ padding: 1.75rem;
77
+ box-shadow:
78
+ inset 4px 4px 8px var(--nf-neu-shadow-dark),
79
+ inset -4px -4px 8px var(--nf-neu-shadow-light);
80
+ animation: neuReveal 0.25s ease-out;
81
+ }
82
+
83
+ @keyframes neuReveal {
84
+ from { opacity: 0; transform: scale(0.98); }
85
+ to { opacity: 1; transform: scale(1); }
86
+ }
87
+
88
+ .margin-top--md { margin-top: 0 !important; }
89
+ [hidden] { display: none !important; }