@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.
@@ -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; }
@@ -0,0 +1,81 @@
1
+ /* ==========================================================================
2
+ TABS V7 - Brutalist
3
+ Raw, bold, unapologetic. Heavy borders, stark contrast
4
+ ========================================================================== */
5
+
6
+ :root {
7
+ --nf-brutal-bg: #ffffff;
8
+ --nf-brutal-border: #000000;
9
+ --nf-brutal-accent: #ff3366;
10
+ --nf-brutal-text: #000000;
11
+ --nf-brutal-text-muted: #666666;
12
+ --nf-brutal-shadow: 4px 4px 0 #000000;
13
+ --nf-brutal-panel-bg: #f5f5f5;
14
+ }
15
+
16
+ html[data-theme="dark"] {
17
+ --nf-brutal-bg: #000000;
18
+ --nf-brutal-border: #ffffff;
19
+ --nf-brutal-accent: #00ff88;
20
+ --nf-brutal-text: #ffffff;
21
+ --nf-brutal-text-muted: #999999;
22
+ --nf-brutal-shadow: 4px 4px 0 #ffffff;
23
+ --nf-brutal-panel-bg: #111111;
24
+ }
25
+
26
+ .tabs {
27
+ display: flex;
28
+ flex-wrap: wrap;
29
+ gap: 0;
30
+ padding: 0;
31
+ background: var(--nf-brutal-bg);
32
+ border: 3px solid var(--nf-brutal-border);
33
+ border-bottom: none;
34
+ border-radius: 0;
35
+ }
36
+
37
+ .tabs__item {
38
+ padding: 14px 28px;
39
+ font-size: 0.9rem;
40
+ font-weight: 700;
41
+ text-transform: uppercase;
42
+ letter-spacing: 0.08em;
43
+ color: var(--nf-brutal-text-muted);
44
+ background: transparent;
45
+ border: none;
46
+ border-right: 3px solid var(--nf-brutal-border);
47
+ border-radius: 0;
48
+ cursor: pointer;
49
+ transition: all 0.1s ease;
50
+ }
51
+
52
+ .tabs__item:last-child {
53
+ border-right: none;
54
+ }
55
+
56
+ .tabs__item:hover {
57
+ color: var(--nf-brutal-text);
58
+ background: var(--nf-brutal-accent);
59
+ }
60
+
61
+ .tabs__item.tabs__item--active {
62
+ color: var(--nf-brutal-bg);
63
+ background: var(--nf-brutal-text);
64
+ }
65
+
66
+ [class*="tabItem_"][role="tabpanel"] {
67
+ background: var(--nf-brutal-panel-bg);
68
+ border: 3px solid var(--nf-brutal-border);
69
+ border-radius: 0;
70
+ padding: 1.5rem;
71
+ box-shadow: var(--nf-brutal-shadow);
72
+ animation: brutalSlam 0.15s ease-out;
73
+ }
74
+
75
+ @keyframes brutalSlam {
76
+ from { transform: translateY(-10px); opacity: 0; }
77
+ to { transform: translateY(0); opacity: 1; }
78
+ }
79
+
80
+ .margin-top--md { margin-top: 0 !important; }
81
+ [hidden] { display: none !important; }
@@ -0,0 +1,114 @@
1
+ /* ==========================================================================
2
+ TABS V8 - Floating Cards
3
+ Each tab as independent floating card, elevation on select
4
+ ========================================================================== */
5
+
6
+ :root {
7
+ --nf-float-bg: transparent;
8
+ --nf-card-bg: #ffffff;
9
+ --nf-card-bg-hover: #f8fafc;
10
+ --nf-card-bg-active: #ffffff;
11
+ --nf-card-text: #64748b;
12
+ --nf-card-text-active: #0f172a;
13
+ --nf-card-border: rgba(0, 0, 0, 0.08);
14
+ --nf-card-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
15
+ --nf-card-shadow-hover: 0 4px 12px rgba(0, 0, 0, 0.08);
16
+ --nf-card-shadow-active: 0 8px 24px rgba(0, 0, 0, 0.12);
17
+ --nf-card-accent: linear-gradient(135deg, #0068f9 0%, #00d4ff 100%);
18
+ --nf-panel-bg: #ffffff;
19
+ --nf-panel-shadow: 0 4px 24px rgba(0, 0, 0, 0.08);
20
+ }
21
+
22
+ html[data-theme="dark"] {
23
+ --nf-float-bg: transparent;
24
+ --nf-card-bg: #1e293b;
25
+ --nf-card-bg-hover: #334155;
26
+ --nf-card-bg-active: #1e293b;
27
+ --nf-card-text: #94a3b8;
28
+ --nf-card-text-active: #f1f5f9;
29
+ --nf-card-border: rgba(255, 255, 255, 0.06);
30
+ --nf-card-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
31
+ --nf-card-shadow-hover: 0 4px 12px rgba(0, 0, 0, 0.3);
32
+ --nf-card-shadow-active: 0 8px 24px rgba(0, 0, 0, 0.4);
33
+ --nf-card-accent: linear-gradient(135deg, #38bdf8 0%, #818cf8 100%);
34
+ --nf-panel-bg: #1e293b;
35
+ --nf-panel-shadow: 0 4px 24px rgba(0, 0, 0, 0.3);
36
+ }
37
+
38
+ .tabs {
39
+ display: flex;
40
+ flex-wrap: wrap;
41
+ gap: 10px;
42
+ padding: 8px 4px;
43
+ background: var(--nf-float-bg);
44
+ border: none;
45
+ border-radius: 0;
46
+ margin-bottom: 10px;
47
+ }
48
+
49
+ .tabs__item {
50
+ position: relative;
51
+ padding: 14px 24px;
52
+ font-size: 0.875rem;
53
+ font-weight: 500;
54
+ color: var(--nf-card-text);
55
+ background: var(--nf-card-bg);
56
+ border: 1px solid var(--nf-card-border);
57
+ border-radius: 12px;
58
+ cursor: pointer;
59
+ box-shadow: var(--nf-card-shadow);
60
+ transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
61
+ overflow: hidden;
62
+ }
63
+
64
+ .tabs__item::before {
65
+ content: '';
66
+ position: absolute;
67
+ top: 0;
68
+ left: 0;
69
+ right: 0;
70
+ height: 3px;
71
+ background: var(--nf-card-accent);
72
+ transform: scaleX(0);
73
+ transition: transform 0.25s ease;
74
+ }
75
+
76
+ .tabs__item:hover {
77
+ color: var(--nf-card-text-active);
78
+ background: var(--nf-card-bg-hover);
79
+ box-shadow: var(--nf-card-shadow-hover);
80
+ transform: translateY(-2px);
81
+ }
82
+
83
+ .tabs__item:hover::before {
84
+ transform: scaleX(0.5);
85
+ }
86
+
87
+ .tabs__item.tabs__item--active {
88
+ color: var(--nf-card-text-active);
89
+ background: var(--nf-card-bg-active);
90
+ font-weight: 600;
91
+ box-shadow: var(--nf-card-shadow-active);
92
+ transform: translateY(-4px);
93
+ }
94
+
95
+ .tabs__item.tabs__item--active::before {
96
+ transform: scaleX(1);
97
+ }
98
+
99
+ [class*="tabItem_"][role="tabpanel"] {
100
+ background: var(--nf-panel-bg);
101
+ border: 1px solid var(--nf-card-border);
102
+ border-radius: 16px;
103
+ padding: 1.75rem;
104
+ box-shadow: var(--nf-panel-shadow);
105
+ animation: floatUp 0.3s ease-out;
106
+ }
107
+
108
+ @keyframes floatUp {
109
+ from { opacity: 0; transform: translateY(12px); }
110
+ to { opacity: 1; transform: translateY(0); }
111
+ }
112
+
113
+ .margin-top--md { margin-top: 0 !important; }
114
+ [hidden] { display: none !important; }
@@ -0,0 +1,104 @@
1
+ /* ==========================================================================
2
+ TABS V9 - Sliding Line
3
+ Clean text tabs with animated line that slides between items
4
+ ========================================================================== */
5
+
6
+ :root {
7
+ --nf-line-bg: transparent;
8
+ --nf-line-border: #e5e7eb;
9
+ --nf-line-text: #6b7280;
10
+ --nf-line-text-hover: #374151;
11
+ --nf-line-text-active: #111827;
12
+ --nf-line-accent: #0068f9;
13
+ --nf-line-accent-glow: rgba(0, 104, 249, 0.15);
14
+ --nf-panel-bg: #fafafa;
15
+ --nf-panel-border: #e5e7eb;
16
+ }
17
+
18
+ html[data-theme="dark"] {
19
+ --nf-line-bg: transparent;
20
+ --nf-line-border: #374151;
21
+ --nf-line-text: #9ca3af;
22
+ --nf-line-text-hover: #d1d5db;
23
+ --nf-line-text-active: #f9fafb;
24
+ --nf-line-accent: #38bdf8;
25
+ --nf-line-accent-glow: rgba(56, 189, 248, 0.15);
26
+ --nf-panel-bg: #1f2937;
27
+ --nf-panel-border: #374151;
28
+ }
29
+
30
+ .tabs {
31
+ display: flex;
32
+ flex-wrap: wrap;
33
+ gap: 0;
34
+ padding: 0;
35
+ background: var(--nf-line-bg);
36
+ border: none;
37
+ border-bottom: 2px solid var(--nf-line-border);
38
+ border-radius: 0;
39
+ position: relative;
40
+ }
41
+
42
+ .tabs__item {
43
+ position: relative;
44
+ padding: 16px 28px;
45
+ font-size: 0.9375rem;
46
+ font-weight: 500;
47
+ color: var(--nf-line-text);
48
+ background: transparent;
49
+ border: none;
50
+ border-radius: 0;
51
+ cursor: pointer;
52
+ transition: color 0.2s ease;
53
+ }
54
+
55
+ .tabs__item:hover {
56
+ color: var(--nf-line-text-hover);
57
+ }
58
+
59
+ .tabs__item.tabs__item--active {
60
+ color: var(--nf-line-text-active);
61
+ font-weight: 600;
62
+ }
63
+
64
+ /* Animated underline */
65
+ .tabs__item::after {
66
+ content: '';
67
+ position: absolute;
68
+ bottom: -2px;
69
+ left: 50%;
70
+ width: 0;
71
+ height: 3px;
72
+ background: var(--nf-line-accent);
73
+ border-radius: 3px 3px 0 0;
74
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
75
+ transform: translateX(-50%);
76
+ }
77
+
78
+ .tabs__item:hover::after {
79
+ width: 30%;
80
+ background: var(--nf-line-text-hover);
81
+ }
82
+
83
+ .tabs__item.tabs__item--active::after {
84
+ width: calc(100% - 24px);
85
+ background: var(--nf-line-accent);
86
+ box-shadow: 0 0 12px var(--nf-line-accent-glow);
87
+ }
88
+
89
+ [class*="tabItem_"][role="tabpanel"] {
90
+ background: var(--nf-panel-bg);
91
+ border: 1px solid var(--nf-panel-border);
92
+ border-top: none;
93
+ border-radius: 0 0 10px 10px;
94
+ padding: 1.5rem;
95
+ animation: lineSlide 0.25s ease-out;
96
+ }
97
+
98
+ @keyframes lineSlide {
99
+ from { opacity: 0; transform: translateX(-10px); }
100
+ to { opacity: 1; transform: translateX(0); }
101
+ }
102
+
103
+ .margin-top--md { margin-top: 0 !important; }
104
+ [hidden] { display: none !important; }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@netfoundry/docusaurus-theme",
3
- "version": "0.1.7",
3
+ "version": "0.1.9",
4
4
  "description": "NetFoundry Docusaurus theme with shared layout, footer, and styling",
5
5
  "main": "dist/src/index.js",
6
6
  "types": "dist/src/index.d.ts",